summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--.gitignore397
-rw-r--r--compiler/ast.nim15
-rw-r--r--compiler/ccgcalls.nim2
-rw-r--r--compiler/ccgexprs.nim6
-rw-r--r--compiler/ccgstmts.nim7
-rw-r--r--compiler/ccgutils.nim2
-rw-r--r--compiler/cgen.nim46
-rw-r--r--compiler/cgendata.nim2
-rw-r--r--compiler/commands.nim5
-rw-r--r--compiler/docgen.nim284
-rw-r--r--compiler/evals.nim4
-rw-r--r--compiler/extccomp.nim37
-rw-r--r--compiler/jsgen.nim2
-rw-r--r--compiler/lists.nim18
-rw-r--r--compiler/main.nim62
-rw-r--r--compiler/nimconf.nim5
-rw-r--r--compiler/nimrod.dot591
-rw-r--r--compiler/nimrod.nim26
-rw-r--r--compiler/nimrod.nimrod.cfg (renamed from compiler/nimrod.cfg)1
-rw-r--r--compiler/options.nim2
-rw-r--r--compiler/pragmas.nim8
-rw-r--r--compiler/renderer.nim9
-rw-r--r--compiler/ropes.nim5
-rw-r--r--compiler/sem.nim50
-rw-r--r--compiler/semexprs.nim18
-rw-r--r--compiler/seminst.nim5
-rw-r--r--compiler/semstmts.nim2
-rw-r--r--compiler/semthreads.nim3
-rw-r--r--compiler/semtypes.nim9
-rw-r--r--compiler/sigmatch.nim248
-rw-r--r--compiler/testability.nim5
-rw-r--r--compiler/types.nim25
-rw-r--r--compiler/wordrecg.nim5
-rw-r--r--config/nimrod.cfg10
-rw-r--r--doc/idetools.txt20
-rw-r--r--doc/intern.txt2
-rw-r--r--doc/manual.txt18
-rw-r--r--doc/nimrodc.txt13
-rw-r--r--doc/tut1.txt54
-rw-r--r--doc/tut2.txt279
-rw-r--r--examples/cairoex.nim15
-rw-r--r--examples/cgi/cgi_server.py11
-rw-r--r--examples/cgi/cgi_stacktrace.nim5
-rw-r--r--examples/cgi/example.nim7
-rw-r--r--examples/gtk/ex1.nim14
-rw-r--r--examples/gtk/ex2.nim22
-rw-r--r--examples/gtk/ex3.nim34
-rw-r--r--examples/gtk/ex4.nim29
-rw-r--r--examples/gtk/ex5.nim24
-rw-r--r--examples/gtk/ex6.nim50
-rw-r--r--examples/gtk/ex7.nim46
-rw-r--r--examples/gtk/ex8.nim29
-rw-r--r--examples/gtk/ex9.nim49
-rw-r--r--examples/luaex.nim15
-rw-r--r--examples/pythonex.nim11
-rw-r--r--examples/tclex.nim25
-rw-r--r--examples/x11ex.nim71
-rw-r--r--install.txt6
-rw-r--r--koch.nim2
-rw-r--r--lib/core/macros.nim38
-rw-r--r--lib/impure/db_postgres.nim15
-rw-r--r--lib/packages/docutils/rstgen.nim112
-rw-r--r--lib/pure/actors.nimrod.cfg (renamed from lib/pure/actors.cfg)0
-rw-r--r--lib/pure/asyncio.nim7
-rw-r--r--lib/pure/browsers.nim4
-rw-r--r--lib/pure/cgi.nim36
-rw-r--r--lib/pure/endians.nim14
-rw-r--r--lib/pure/fsmonitor.nim10
-rw-r--r--lib/pure/htmlparser.nim30
-rw-r--r--lib/pure/httpclient.nim3
-rw-r--r--lib/pure/os.nim334
-rw-r--r--lib/pure/osproc.nim73
-rw-r--r--lib/pure/parseopt.nim5
-rw-r--r--lib/pure/parseopt2.nim148
-rw-r--r--lib/pure/strutils.nim4
-rw-r--r--lib/pure/unicode.nim4
-rw-r--r--lib/pure/unittest.nim14
-rw-r--r--lib/system.nim91
-rw-r--r--lib/system/alloc.nim2
-rw-r--r--lib/system/channels.nim3
-rw-r--r--lib/system/excpt.nim44
-rw-r--r--lib/system/gc.nim16
-rw-r--r--lib/system/mmdisp.nim3
-rw-r--r--lib/system/threads.nim5
-rw-r--r--lib/windows/winlean.nim30
-rw-r--r--lib/wrappers/cairo/cairo.nim733
-rw-r--r--lib/wrappers/cairo/cairo_pragma.nim16
-rw-r--r--lib/wrappers/cairo/cairoft.nim36
-rw-r--r--lib/wrappers/cairo/cairowin32.nim37
-rw-r--r--lib/wrappers/cairo/cairoxlib.nim41
-rw-r--r--lib/wrappers/gtk/atk.nim1308
-rw-r--r--lib/wrappers/gtk/gdk2.nim3873
-rw-r--r--lib/wrappers/gtk/gdk2pixbuf.nim271
-rw-r--r--lib/wrappers/gtk/gdkglext.nim554
-rw-r--r--lib/wrappers/gtk/glib2.nim4540
-rw-r--r--lib/wrappers/gtk/gtk2.nim17064
-rw-r--r--lib/wrappers/gtk/gtkglext.nim53
-rw-r--r--lib/wrappers/gtk/gtkhtml.nim523
-rw-r--r--lib/wrappers/gtk/libglade2.nim111
-rw-r--r--lib/wrappers/gtk/pango.nim1160
-rw-r--r--lib/wrappers/gtk/pangoutils.nim42
-rw-r--r--lib/wrappers/lua/lauxlib.nim208
-rw-r--r--lib/wrappers/lua/lua.nim364
-rw-r--r--lib/wrappers/lua/lualib.nim64
-rw-r--r--lib/wrappers/opengl/gl.nim1536
-rw-r--r--lib/wrappers/opengl/glext.nim4673
-rw-r--r--lib/wrappers/opengl/glu.nim335
-rw-r--r--lib/wrappers/opengl/glut.nim438
-rw-r--r--lib/wrappers/opengl/glx.nim153
-rw-r--r--lib/wrappers/opengl/opengl.nim9708
-rw-r--r--lib/wrappers/opengl/wingl.nim368
-rw-r--r--lib/wrappers/python.nim1587
-rw-r--r--lib/wrappers/tcl.nim865
-rw-r--r--lib/wrappers/x11/cursorfont.nim110
-rw-r--r--lib/wrappers/x11/keysym.nim1926
-rw-r--r--lib/wrappers/x11/x.nim401
-rw-r--r--lib/wrappers/x11/x11pragma.nim20
-rw-r--r--lib/wrappers/x11/xatom.nim81
-rw-r--r--lib/wrappers/x11/xcms.nim396
-rw-r--r--lib/wrappers/x11/xf86dga.nim235
-rw-r--r--lib/wrappers/x11/xf86vmode.nim229
-rw-r--r--lib/wrappers/x11/xi.nim307
-rw-r--r--lib/wrappers/x11/xinerama.nim25
-rw-r--r--lib/wrappers/x11/xkb.nim2387
-rw-r--r--lib/wrappers/x11/xkblib.nim661
-rw-r--r--lib/wrappers/x11/xlib.nim2027
-rw-r--r--lib/wrappers/x11/xrandr.nim194
-rw-r--r--lib/wrappers/x11/xrender.nim241
-rw-r--r--lib/wrappers/x11/xresource.nim200
-rw-r--r--lib/wrappers/x11/xshm.nim77
-rw-r--r--lib/wrappers/x11/xutil.nim412
-rw-r--r--lib/wrappers/x11/xv.nim84
-rw-r--r--lib/wrappers/x11/xvlib.nim234
-rw-r--r--tests/compile/tgeneric.nim8
-rw-r--r--tests/compile/ttempl3.nim2
-rw-r--r--tests/reject/twrongiter.nim13
-rw-r--r--tests/run/tdrdobbs_examples.nim134
-rw-r--r--tests/run/tvarious1.nim14
-rw-r--r--tests/showoff/tformatopt.nim57
-rw-r--r--tests/showoff/thello2.nim11
-rw-r--r--tests/showoff/thtml1.nim11
-rw-r--r--tests/showoff/thtml2.nim37
-rw-r--r--tests/showoff/tonce.nim22
-rw-r--r--tests/showoff/tquasiquote.nim14
-rw-r--r--tests/system/params.nim18
-rw-r--r--tests/tester.nim12
-rw-r--r--tinyc/tccgen.c2
-rw-r--r--tools/niminst/buildbat.tmpl4
-rw-r--r--tools/niminst/buildsh.tmpl4
-rw-r--r--tools/niminst/niminst.nim15
-rw-r--r--tools/noprefix.nim32
-rw-r--r--web/assets/images/link_aporia.pngbin1585 -> 1526 bytes
-rw-r--r--web/assets/images/link_forum.pngbin1107 -> 1048 bytes
-rw-r--r--web/assets/images/link_nimbuild.pngbin955 -> 896 bytes
-rw-r--r--web/assets/images/logo.pngbin125152 -> 101053 bytes
-rw-r--r--web/assets/images/quote.pngbin1062 -> 1045 bytes
-rw-r--r--web/assets/images/sidebar.pngbin1029 -> 971 bytes
-rw-r--r--web/assets/images/sidebar_h2.pngbin2104 -> 2044 bytes
-rw-r--r--web/assets/images/sidebar_head.pngbin39194 -> 34993 bytes
-rw-r--r--web/assets/images/site_foot.pngbin4039 -> 3109 bytes
-rw-r--r--web/assets/images/site_neck.pngbin391 -> 317 bytes
-rw-r--r--web/community.txt2
-rw-r--r--web/news.txt8
-rw-r--r--web/nimrod.ini5
164 files changed, 2585 insertions, 62560 deletions
diff --git a/.gitignore b/.gitignore
index 536ec9d24..15272385f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -58,12 +58,16 @@ examples/cross_calculator/android/tags
 # Generated files.
 /compile.json
 /compiler/c2nim/c2nim
+/compiler/nimrod.dot
 /compiler/pas2nim/pas2nim
 /compiler/service
 /examples/allany
 /examples/cairoex
 /examples/cgiex
+/examples/cgi/cgi_stacktrace
+/examples/cgi/example
 /examples/curlex
+/examples/debugging
 /examples/docstrings
 /examples/filterex
 /examples/fizzbuzz
@@ -89,6 +93,12 @@ examples/cross_calculator/android/tags
 /examples/pythonex
 /examples/sdlex
 /examples/statcsv
+/examples/talk/dsl
+/examples/talk/formatoptimizer
+/examples/talk/hoisting
+/examples/talk/lazyeval
+/examples/talk/quasiquote
+/examples/talk/tags
 /examples/tclex
 /examples/transff
 /examples/tunit
@@ -96,10 +106,13 @@ examples/cross_calculator/android/tags
 /examples/x11ex
 /lib/libnimrtl.dylib
 /lib/libserver.dylib
+/lib/packages/docutils/highlite
 /lib/pure/actors
 /lib/pure/algorithm
 /lib/pure/asyncio
 /lib/pure/base64
+/lib/pure/basic2d
+/lib/pure/basic3d
 /lib/pure/browsers
 /lib/pure/cgi
 /lib/pure/collections/sequtils
@@ -111,6 +124,7 @@ examples/cross_calculator/android/tags
 /lib/pure/encodings
 /lib/pure/endians
 /lib/pure/events
+/lib/pure/fsmonitor
 /lib/pure/ftpclient
 /lib/pure/gentabs
 /lib/pure/hashes
@@ -127,19 +141,23 @@ examples/cross_calculator/android/tags
 /lib/pure/math
 /lib/pure/md5
 /lib/pure/memfiles
+/lib/pure/mersenne
 /lib/pure/mimetypes
 /lib/pure/nimprof
+/lib/pure/numeric
 /lib/pure/oids
 /lib/pure/os
 /lib/pure/osproc
 /lib/pure/parsecfg
 /lib/pure/parsecsv
 /lib/pure/parseopt
+/lib/pure/parseopt2
 /lib/pure/parsesql
 /lib/pure/parseurl
 /lib/pure/parseutils
 /lib/pure/parsexml
 /lib/pure/pegs
+/lib/pure/poly
 /lib/pure/redis
 /lib/pure/romans
 /lib/pure/ropes
@@ -167,9 +185,9 @@ examples/cross_calculator/android/tags
 /run.json
 /testresults.html
 /testresults.json
-/tests/caas/SymbolProcRun.*/
 /tests/caas/absurd_nesting
 /tests/caas/completion_dot_syntax_main
+/tests/caasdriver
 /tests/caas/forward_declarations
 /tests/caas/idetools_api
 /tests/caas/imported
@@ -178,5 +196,380 @@ examples/cross_calculator/android/tags
 /tests/caas/issue_477_dynamic_dispatch
 /tests/caas/its_full_of_procs
 /tests/caas/main
-/tests/caasdriver
+/tests/caas/SymbolProcRun.*/
+/tests/ccg/tmissingbracket
+/tests/compile/talias
+/tests/compile/tambsym2
+/tests/compile/tarrindx
+/tests/compile/tassign
+/tests/compile/tbindoverload
+/tests/compile/tcan_alias_generic
+/tests/compile/tcan_alias_specialised_generic
+/tests/compile/tcan_inherit_generic
+/tests/compile/tcan_specialise_generic
+/tests/compile/tccgen1
+/tests/compile/tclosure4
+/tests/compile/tclosurebug2
+/tests/compile/tcmdline
+/tests/compile/tcodegenbug1
+/tests/compile/tcolonisproc
+/tests/compile/tcolors
+/tests/compile/tcommontype
+/tests/compile/tcompiles
+/tests/compile/tcomputedgoto
+/tests/compile/tconsteval
+/tests/compile/tconstraints
+/tests/compile/tconvcolors
+/tests/compile/tcputime
+/tests/compile/tdefaultprocparam
+/tests/compile/tdictdestruct
+/tests/compile/tdiscardable
+/tests/compile/tdllvar
+/tests/compile/tdumpast
+/tests/compile/tdumpast2
+/tests/compile/techo
+/tests/compile/teffects1
+/tests/compile/temptyecho
+/tests/compile/tendian
+/tests/compile/tenum
+/tests/compile/tenum2
+/tests/compile/tenum3
+/tests/compile/teval1
+/tests/compile/texport
+/tests/compile/tfib
+/tests/compile/tforwardgeneric
+/tests/compile/tforwty
+/tests/compile/tforwty2
+/tests/compile/tgeneric
+/tests/compile/tgeneric2
+/tests/compile/tgeneric3
+/tests/compile/tgeneric4
+/tests/compile/tgenericmatcher
+/tests/compile/tgenericmatcher2
+/tests/compile/tgenericprocvar
+/tests/compile/tgenericprop
+/tests/compile/tgenericrefs
+/tests/compile/tgenerictmpl
+/tests/compile/tgenericvariant
+/tests/compile/tgensymgeneric
+/tests/compile/tgetstartmilsecs
+/tests/compile/tglobalforvar
+/tests/compile/thallo
+/tests/compile/theaproots
+/tests/compile/thexrange
+/tests/compile/thygienictempl
+/tests/compile/tident
+/tests/compile/timplicititems
+/tests/compile/timplictderef
+/tests/compile/tinheritref
+/tests/compile/tio
+/tests/compile/tircbot
+/tests/compile/titer
+/tests/compile/titer2
+/tests/compile/titer_no_tuple_unpack
+/tests/compile/titerovl
+/tests/compile/tlastmod
+/tests/compile/tlinearscanend
+/tests/compile/tloops
+/tests/compile/tmacro1
+/tests/compile/tmacro2
+/tests/compile/tmacroaspragma
+/tests/compile/tmacrostmt
+/tests/compile/tmandelbrot
+/tests/compile/tmarshal
+/tests/compile/tmath
+/tests/compile/tmatrix1
+/tests/compile/tmatrix2
+/tests/compile/tmongo
+/tests/compile/tnamedparamanonproc
+/tests/compile/tnamedparams
+/tests/compile/tnestedproc
+/tests/compile/tnew
+/tests/compile/tnewsets
+/tests/compile/tnewuns
+/tests/compile/tnoargopenarray
+/tests/compile/tnoforward
+/tests/compile/tobjconstr2
+/tests/compile/tobjcov
+/tests/compile/tobject2
+/tests/compile/tobject3
+/tests/compile/tobjects
+/tests/compile/toop
+/tests/compile/toptions
+/tests/compile/tos
+/tests/compile/toverprc
+/tests/compile/tparedef
+/tests/compile/tparscfg
+/tests/compile/tparsefloat
+/tests/compile/tparsopt
+/tests/compile/tposix
+/tests/compile/tprep
+/tests/compile/tprocvars
+/tests/compile/tpush
+/tests/compile/tquicksort
+/tests/compile/tquit
+/tests/compile/tradix
+/tests/compile/treadln
+/tests/compile/treadx
+/tests/compile/trecmod
+/tests/compile/trecmod2
+/tests/compile/trectuple
+/tests/compile/trectuples
+/tests/compile/tredef
+/tests/compile/trepr
+/tests/compile/tsecondarrayproperty
+/tests/compile/tseq2
+/tests/compile/tseqcon2
+/tests/compile/tshadow_magic_type
+/tests/compile/tsizeof
+/tests/compile/tslurp
+/tests/compile/tsockets
+/tests/compile/tsortcall
+/tests/compile/tspecialised_is_equivalent
+/tests/compile/tstrace
+/tests/compile/tstrdesc
+/tests/compile/tstrdist
+/tests/compile/tstreams
+/tests/compile/tstrset
+/tests/compile/tstrtabs
+/tests/compile/ttableconstr
+/tests/compile/ttempl
+/tests/compile/ttempl3
+/tests/compile/ttempl4
+/tests/compile/ttempl5
+/tests/compile/ttemplreturntype
+/tests/compile/tthread_generic
+/tests/compile/ttime
+/tests/compile/ttuple1
+/tests/compile/ttypeclasses
+/tests/compile/ttypeconverter1
+/tests/compile/tuserpragma
+/tests/compile/tvoid
+/tests/compile/twalker
+/tests/compile/typalias
+/tests/dll/client
+/tests/gc/closureleak
+/tests/gc/cycleleak
+/tests/gc/gcbench
+/tests/gc/gcleak
+/tests/gc/gcleak2
+/tests/gc/gcleak3
+/tests/gc/gctest
+/tests/gc/weakrefs
+/tests/manyloc/argument_parser/ex_wget
+/tests/manyloc/nake/nakefile
+/tests/manyloc/packages/noconflicts
+/tests/manyloc/standalone/barebone
+/tests/patterns/targlist
+/tests/patterns/tcse
+/tests/patterns/thoist
+/tests/patterns/tmatrix
+/tests/patterns/tnoalias
+/tests/patterns/tnoendlessrec
+/tests/patterns/tor
+/tests/patterns/tpartial
+/tests/patterns/tstar
+/tests/patterns/tstmtlist
+/tests/reject/t99bott
+/tests/reject/tcheckedfield1
+/tests/reject/tdeprecated
+/tests/reject/tdisallowif
+/tests/reject/tuninit1
+/tests/rodfiles/aconv
+/tests/rodfiles/bconv
+/tests/rodfiles/bmethods
+/tests/rodfiles/bmethods2
+/tests/rodfiles/deada
+/tests/rodfiles/deada2
+/tests/rodfiles/hallo
+/tests/rodfiles/hallo2
+/tests/rodfiles/tgeneric1
+/tests/rodfiles/tgeneric2
+/tests/run/tack
+/tests/run/tactiontable
+/tests/run/tambsym2
+/tests/run/tambsys
+/tests/run/tanontuples
+/tests/run/tarray
+/tests/run/tarray2
+/tests/run/tarray3
+/tests/run/tarraycons
+/tests/run/tassert
+/tests/run/tastoverload1
+/tests/run/tasynciossl
+/tests/run/tasyncudp
+/tests/run/tbind1
+/tests/run/tbind3
+/tests/run/tbintre2
+/tests/run/tbintree
+/tests/run/tborrow
+/tests/run/tbug499771
+/tests/run/tbug511622
+/tests/run/tcase_setconstr
+/tests/run/tcasestm
+/tests/run/tcgbug
+/tests/run/tclosure2
+/tests/run/tclosure3
+/tests/run/tcnstseq
+/tests/run/tcnstseq2
+/tests/run/tcnstseq3
+/tests/run/tconcat
+/tests/run/tconstr2
+/tests/run/tcontinue
+/tests/run/tcontinuexc
+/tests/run/tcopy
+/tests/run/tcountup
+/tests/run/tcritbits
+/tests/run/tcurrncy
+/tests/run/tdestructor
+/tests/run/tdrdobbs_examples
+/tests/run/temit
+/tests/run/tenumhole
+/tests/run/tenumitems
+/tests/run/teventemitter
+/tests/run/tevents
+/tests/run/texceptions
+/tests/run/texcpt1
+/tests/run/texcsub
+/tests/run/texplicitgeneric1
+/tests/run/tfieldindex
+/tests/run/tfielditerator
+/tests/run/tfielditerator2
+/tests/run/tfilter
+/tests/run/tfinally
+/tests/run/tfinally2
+/tests/run/tfinally3
+/tests/run/tfinalobj
+/tests/run/tfloat1
+/tests/run/tfloat2
+/tests/run/tfloat3
+/tests/run/tformat
+/tests/run/tfriends
+/tests/run/tgenericassign
+/tests/run/tgenericassigntuples
+/tests/run/tgenericconverter
+/tests/run/tgenericprocvar
+/tests/run/tgenerics1
+/tests/run/tgensym
+/tests/run/tglobal
+/tests/run/thashes
+/tests/run/thexlit
+/tests/run/thintoff
+/tests/run/tidgen
+/tests/run/tindent1
+/tests/run/tinit
+/tests/run/tinterf
+/tests/run/tints
+/tests/run/tisopr
+/tests/run/titer3
+/tests/run/titer5
+/tests/run/titer6
+/tests/run/titer7
+/tests/run/titer8
+/tests/run/titer9
+/tests/run/titerslice
+/tests/run/titervaropenarray
+/tests/run/tkoeniglookup
+/tests/run/tlet
+/tests/run/tlists
+/tests/run/tlocals
+/tests/run/tlowhigh
+/tests/run/tmacro2
+/tests/run/tmacro3
+/tests/run/tmacro4
+/tests/run/tmacros1
+/tests/run/tmath
+/tests/run/tmatrix
+/tests/run/tmemoization
+/tests/run/tmethods1
+/tests/run/tmixin
+/tests/run/tmoditer
+/tests/run/tmultim1
+/tests/run/tmultim2
+/tests/run/tmultim3
+/tests/run/tmultim4
+/tests/run/tmultim6
+/tests/run/tnamedenumfields
+/tests/run/tnestif
+/tests/run/tnestprc
+/tests/run/tnewderef
+/tests/run/tnodeadlocks
+/tests/run/tobjasgn
+/tests/run/tobjconstr
+/tests/run/tobject
+/tests/run/tofopr
+/tests/run/tonraise
+/tests/run/toop1
+/tests/run/topenarrayrepr
+/tests/run/topenlen
+/tests/run/toprprec
+/tests/run/toverflw
+/tests/run/toverflw2
+/tests/run/toverl2
+/tests/run/toverl3
+/tests/run/toverwr
+/tests/run/tovfint
+/tests/run/tpatterns
+/tests/run/tpegs
+/tests/run/tpos
+/tests/run/tprecedence
+/tests/run/tprintf
+/tests/run/tprocvar
+/tests/run/tquotewords
+/tests/run/tregex
+/tests/run/treguse
+/tests/run/trepr
+/tests/run/treraise
+/tests/run/tromans
+/tests/run/tseqcon
+/tests/run/tseqtuple
+/tests/run/tsequtils
+/tests/run/tsets
+/tests/run/tsets2
+/tests/run/tsidee2
+/tests/run/tsidee3
+/tests/run/tsimmeth
+/tests/run/tsimplesort
+/tests/run/tslices
+/tests/run/tsortdev
+/tests/run/tsplit
+/tests/run/tstempl
+/tests/run/tstmtexprs
+/tests/run/tstrange
+/tests/run/tstringinterp
+/tests/run/tstrlits
+/tests/run/tstrutil
+/tests/run/tsubrange
+/tests/run/tsubrange2
+/tests/run/ttables
+/tests/run/ttables2
+/tests/run/ttoseq
+/tests/run/ttypedesc1
+/tests/run/tunhandledexc
+/tests/run/tunidecode
+/tests/run/tunittests
+/tests/run/tuserassert
+/tests/run/tvarargs_vs_generic
+/tests/run/tvardecl
+/tests/run/tvariantasgn
+/tests/run/tvariantstack
+/tests/run/tvarious1
+/tests/run/tvarnums
+/tests/run/tvarres1
+/tests/run/tvarres2
+/tests/run/tvartup
+/tests/run/tvtable
+/tests/run/twrongexc
+/tests/run/txmlgen
+/tests/run/txmltree
+/tests/run/tzeroarray
+/tests/system/helpers/readall_echo
+/tests/system/io
+/tests/system/params
+/tests/tester
+/tests/threads/tactors
+/tests/threads/tactors2
+/tests/threads/tthreadanalysis2
+/tests/threads/tthreadanalysis3
+/tests/threads/tthreadheapviolation1
 /tools/nimgrep
diff --git a/compiler/ast.nim b/compiler/ast.nim
index 5a5d87d06..0790df0c4 100644
--- a/compiler/ast.nim
+++ b/compiler/ast.nim
@@ -238,7 +238,7 @@ type
     sfMainModule,     # module is the main module
     sfSystemModule,   # module is the system module
     sfNoReturn,       # proc never returns (an exit proc)
-    sfAddrTaken,      # the variable's address is taken (ex- or implicitely);
+    sfAddrTaken,      # the variable's address is taken (ex- or implicitly);
                       # *OR*: a proc is indirectly called (used as first class)
     sfCompilerProc,   # proc is a compiler proc, that is a C proc that is
                       # needed for the code generator
@@ -257,7 +257,7 @@ type
                       # for interfacing with C++, JS
     sfNamedParamCall, # symbol needs named parameter call syntax in target
                       # language; for interfacing with Objective C
-    sfDiscardable,    # returned value may be discarded implicitely
+    sfDiscardable,    # returned value may be discarded implicitly
     sfDestructor,     # proc is destructor
     sfGenSym          # symbol is 'gensym'ed; do not add to symbol table
 
@@ -335,12 +335,19 @@ type
     tyConst, tyMutable, tyVarargs, 
     tyIter, # unused
     tyProxy # used as errornous type (for idetools)
-    tyTypeClass,
+    tyTypeClass
+    tyAnd
+    tyOr
+    tyNot
+    tyAnything
+    tyParametricTypeClass # structured similarly to tyGenericInst
+                          # lastSon is the body of the type class
 
 const
   tyPureObject* = tyTuple
   GcTypeKinds* = {tyRef, tySequence, tyString}
   tyError* = tyProxy # as an errornous node should match everything
+  tyTypeClasses* = {tyTypeClass, tyParametricTypeClass, tyAnd, tyOr, tyNot, tyAnything}
 
 type
   TTypeKinds* = set[TTypeKind]
@@ -377,6 +384,7 @@ type
                       # used as return types for return type inference)
     tfAll,            # type class requires all constraints to be met (default)
     tfAny,            # type class requires any constraint to be met
+    tfNot,            # type class with a negative check
     tfCapturesEnv,    # whether proc really captures some environment
     tfByCopy,         # pass object/tuple by copy (C backend)
     tfByRef,          # pass object/tuple by reference (C backend)
@@ -1416,3 +1424,4 @@ proc isAtom*(n: PNode): bool {.inline.} =
 proc isEmptyType*(t: PType): bool {.inline.} =
   ## 'void' and 'stmt' types are often equivalent to 'nil' these days:
   result = t == nil or t.kind in {tyEmpty, tyStmt}
+
diff --git a/compiler/ccgcalls.nim b/compiler/ccgcalls.nim
index 1d6df3c15..07fba95a3 100644
--- a/compiler/ccgcalls.nim
+++ b/compiler/ccgcalls.nim
@@ -290,6 +290,7 @@ proc genCall(p: BProc, e: PNode, d: var TLoc) =
     genNamedParamCall(p, e, d)
   else:
     genPrefixCall(p, nil, e, d)
+  postStmtActions(p)
   when false:
     if d.s == onStack and containsGarbageCollectedRef(d.t): keepAlive(p, d)
 
@@ -303,6 +304,7 @@ proc genAsgnCall(p: BProc, le, ri: PNode, d: var TLoc) =
     genNamedParamCall(p, ri, d)
   else:
     genPrefixCall(p, le, ri, d)
+  postStmtActions(p)
   when false:
     if d.s == onStack and containsGarbageCollectedRef(d.t): keepAlive(p, d)
 
diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim
index 15f7f0f34..daa0c8d88 100644
--- a/compiler/ccgexprs.nim
+++ b/compiler/ccgexprs.nim
@@ -254,6 +254,7 @@ proc genGenericAsgn(p: BProc, dest, src: TLoc, flags: TAssignmentFlags) =
   if needToCopy notin flags or 
       tfShallow in skipTypes(dest.t, abstractVarRange).flags:
     if dest.s == OnStack or not usesNativeGC():
+      useStringh(p.module)
       linefmt(p, cpsStmts,
            "memcpy((void*)$1, (NIM_CONST void*)$2, sizeof($3));$n",
            addrLoc(dest), addrLoc(src), rdLoc(dest))
@@ -330,6 +331,7 @@ proc genAssignment(p: BProc, dest, src: TLoc, flags: TAssignmentFlags) =
     if needsComplexAssignment(dest.t):
       genGenericAsgn(p, dest, src, flags)
     else:
+      useStringh(p.module)
       linefmt(p, cpsStmts,
            "memcpy((void*)$1, (NIM_CONST void*)$2, sizeof($1));$n",
            rdLoc(dest), rdLoc(src))
@@ -341,11 +343,13 @@ proc genAssignment(p: BProc, dest, src: TLoc, flags: TAssignmentFlags) =
            "#genericAssignOpenArray((void*)$1, (void*)$2, $1Len0, $3);$n",
            addrLoc(dest), addrLoc(src), genTypeInfo(p.module, dest.t))
     else:
+      useStringh(p.module)
       linefmt(p, cpsStmts,
            "memcpy((void*)$1, (NIM_CONST void*)$2, sizeof($1[0])*$1Len0);$n",
            rdLoc(dest), rdLoc(src))
   of tySet:
     if mapType(ty) == ctArray:
+      useStringh(p.module)
       linefmt(p, cpsStmts, "memcpy((void*)$1, (NIM_CONST void*)$2, $3);$n",
               rdLoc(dest), rdLoc(src), toRope(getSize(dest.t)))
     else:
@@ -1391,6 +1395,7 @@ proc genSetOp(p: BProc, e: PNode, d: var TLoc, op: TMagic) =
       lineF(p, cpsStmts, lookupOpr[op],
            [rdLoc(i), toRope(size), rdLoc(d), rdLoc(a), rdLoc(b)])
     of mEqSet:
+      useStringh(p.module)
       binaryExprChar(p, e, d, "(memcmp($1, $2, " & $(size) & ")==0)")
     of mMulSet, mPlusSet, mMinusSet, mSymDiffSet:
       # we inline the simple for loop for better code generation:
@@ -1642,6 +1647,7 @@ proc genSetConstr(p: BProc, e: PNode, d: var TLoc) =
     if d.k == locNone: getTemp(p, e.typ, d)
     if getSize(e.typ) > 8:
       # big set:
+      useStringh(p.module)
       lineF(p, cpsStmts, "memset($1, 0, sizeof($1));$n", [rdLoc(d)])
       for i in countup(0, sonsLen(e) - 1):
         if e.sons[i].kind == nkRange:
diff --git a/compiler/ccgstmts.nim b/compiler/ccgstmts.nim
index 75cabf414..ac4bbb79f 100644
--- a/compiler/ccgstmts.nim
+++ b/compiler/ccgstmts.nim
@@ -906,7 +906,12 @@ proc genPragma(p: BProc, n: PNode) =
     of wEmit: genEmit(p, it)
     of wBreakpoint: genBreakPoint(p, it)
     of wWatchpoint: genWatchpoint(p, it)
-    else: nil
+    of wInjectStmt: 
+      var p = newProc(nil, p.module)
+      p.options = p.options - {optLineTrace, optStackTrace}
+      genStmts(p, it.sons[1])
+      p.module.injectStmt = p.s(cpsStmts)
+    else: discard
 
 proc FieldDiscriminantCheckNeeded(p: BProc, asgn: PNode): bool = 
   if optFieldCheck in p.options:
diff --git a/compiler/ccgutils.nim b/compiler/ccgutils.nim
index c37754511..310f7204a 100644
--- a/compiler/ccgutils.nim
+++ b/compiler/ccgutils.nim
@@ -86,7 +86,7 @@ proc GetUniqueType*(key: PType): PType =
     if result == nil:
       gCanonicalTypes[k] = key
       result = key
-  of tyTypeDesc, tyTypeClass:
+  of tyTypeDesc, tyTypeClasses:
     InternalError("value expected, but got a type")
   of tyGenericParam:
     InternalError("GetUniqueType")
diff --git a/compiler/cgen.nim b/compiler/cgen.nim
index 910e675e1..6ccef5fde 100644
--- a/compiler/cgen.nim
+++ b/compiler/cgen.nim
@@ -72,6 +72,11 @@ proc isSimpleConst(typ: PType): bool =
       {tyTuple, tyObject, tyArray, tyArrayConstr, tySet, tySequence} and not
       (t.kind == tyProc and t.callConv == ccClosure)
 
+proc useStringh(m: BModule) =
+  if not m.includesStringh:
+    m.includesStringh = true
+    discard lists.IncludeStr(m.headerFiles, "<string.h>")
+
 proc useHeader(m: BModule, sym: PSym) = 
   if lfHeader in sym.loc.Flags: 
     assert(sym.annex != nil)
@@ -284,6 +289,9 @@ proc genLineDir(p: BProc, t: PNode) =
     linefmt(p, cpsStmts, "nimln($1, $2);$n",
             line.toRope, t.info.quotedFilename)
 
+proc postStmtActions(p: BProc) {.inline.} =
+  app(p.s(cpsStmts), p.module.injectStmt)
+
 proc accessThreadLocalVar(p: BProc, s: PSym)
 proc emulatedThreadVars(): bool {.inline.}
 
@@ -358,19 +366,24 @@ proc resetLoc(p: BProc, loc: var TLoc) =
       # field, so disabling this should be safe:
       genObjectInit(p, cpsStmts, loc.t, loc, true)
     else:
+      useStringh(p.module)
       linefmt(p, cpsStmts, "memset((void*)$1, 0, sizeof($2));$n",
               addrLoc(loc), rdLoc(loc))
       # XXX: We can be extra clever here and call memset only 
       # on the bytes following the m_type field?
       genObjectInit(p, cpsStmts, loc.t, loc, true)
 
-proc constructLoc(p: BProc, loc: TLoc, section = cpsStmts) =
+proc constructLoc(p: BProc, loc: TLoc, isTemp = false) =
   if not isComplexValueType(skipTypes(loc.t, abstractRange)):
-    linefmt(p, section, "$1 = 0;$n", rdLoc(loc))
+    linefmt(p, cpsStmts, "$1 = 0;$n", rdLoc(loc))
   else:
-    linefmt(p, section, "memset((void*)$1, 0, sizeof($2));$n",
-            addrLoc(loc), rdLoc(loc))
-    genObjectInit(p, section, loc.t, loc, true)
+    if not isTemp or containsGarbageCollectedRef(loc.t):
+      # don't use memset for temporary values for performance if we can
+      # avoid it:
+      useStringh(p.module)
+      linefmt(p, cpsStmts, "memset((void*)$1, 0, sizeof($2));$n",
+              addrLoc(loc), rdLoc(loc))
+    genObjectInit(p, cpsStmts, loc.t, loc, true)
 
 proc initLocalVar(p: BProc, v: PSym, immediateAsgn: bool) =
   if sfNoInit notin v.flags:
@@ -396,7 +409,7 @@ proc getTemp(p: BProc, t: PType, result: var TLoc) =
   result.t = getUniqueType(t)
   result.s = OnStack
   result.flags = {}
-  constructLoc(p, result)
+  constructLoc(p, result, isTemp=true)
 
 proc keepAlive(p: BProc, toKeepAlive: TLoc) =
   when false:
@@ -418,6 +431,7 @@ proc keepAlive(p: BProc, toKeepAlive: TLoc) =
     if not isComplexValueType(skipTypes(toKeepAlive.t, abstractVarRange)):
       linefmt(p, cpsStmts, "$1 = $2;$n", rdLoc(result), rdLoc(toKeepAlive))
     else:
+      useStringh(p.module)
       linefmt(p, cpsStmts,
            "memcpy((void*)$1, (NIM_CONST void*)$2, sizeof($3));$n",
            addrLoc(result), addrLoc(toKeepAlive), rdLoc(result))
@@ -933,9 +947,9 @@ proc genMainProc(m: BModule) =
   const 
     CommonMainBody =
         "\tsystemDatInit();$n" &
+        "\tsystemInit();$n" &
         "$1" &
         "$2" &
-        "\tsystemInit();$n" &
         "$3" &
         "$4"
     PosixNimMain = 
@@ -1108,6 +1122,9 @@ proc newPostInitProc(m: BModule): BProc =
   # little hack so that unique temporaries are generated:
   result.labels = 200_000
 
+proc initProcOptions(m: BModule): TOptions = 
+  if sfSystemModule in m.module.flags: gOptions-{optStackTrace} else: gOptions
+
 proc rawNewModule(module: PSym, filename: string): BModule =
   new(result)
   InitLinkedList(result.headerFiles)
@@ -1120,7 +1137,7 @@ proc rawNewModule(module: PSym, filename: string): BModule =
   result.module = module
   result.typeInfoMarker = initIntSet()
   result.initProc = newProc(nil, result)
-  result.initProc.options = gOptions
+  result.initProc.options = initProcOptions(result)
   result.preInitProc = newPreInitProc(result)
   result.postInitProc = newPostInitProc(result)
   initNodeTable(result.dataCache)
@@ -1128,7 +1145,12 @@ proc rawNewModule(module: PSym, filename: string): BModule =
   result.forwardedProcs = @[]
   result.typeNodesName = getTempName()
   result.nimTypesName = getTempName()
-  result.PreventStackTrace = sfSystemModule in module.flags
+  # no line tracing for the init sections of the system module so that we
+  # don't generate a TFrame which can confuse the stack botton initialization:
+  if sfSystemModule in module.flags:
+    result.PreventStackTrace = true
+    excl(result.preInitProc.options, optStackTrace)
+    excl(result.postInitProc.options, optStackTrace)
 
 proc nullify[T](arr: var T) =
   for i in low(arr)..high(arr):
@@ -1141,7 +1163,7 @@ proc resetModule*(m: var BModule) =
   m.declaredProtos = initIntSet()
   initIdTable(m.forwTypeCache)
   m.initProc = newProc(nil, m)
-  m.initProc.options = gOptions
+  m.initProc.options = initProcOptions(m)
   m.preInitProc = newPreInitProc(m)
   m.postInitProc = newPostInitProc(m)
   initNodeTable(m.dataCache)
@@ -1231,7 +1253,7 @@ proc myProcess(b: PPassContext, n: PNode): PNode =
   result = n
   if b == nil or passes.skipCodegen(n): return
   var m = BModule(b)
-  m.initProc.options = gOptions
+  m.initProc.options = initProcOptions(m)
   genStmts(m.initProc, n)
 
 proc finishModule(m: BModule) = 
@@ -1318,7 +1340,7 @@ proc myClose(b: PPassContext, n: PNode): PNode =
   if b == nil or passes.skipCodegen(n): return 
   var m = BModule(b)
   if n != nil: 
-    m.initProc.options = gOptions
+    m.initProc.options = initProcOptions(m)
     genStmts(m.initProc, n)
   # cached modules need to registered too: 
   registerModuleToMain(m.module)
diff --git a/compiler/cgendata.nim b/compiler/cgendata.nim
index b5888d0f4..a803c0ba1 100644
--- a/compiler/cgendata.nim
+++ b/compiler/cgendata.nim
@@ -91,6 +91,7 @@ type
     FrameDeclared*: bool      # hack for ROD support so that we don't declare
                               # a frame var twice in an init proc
     isHeaderFile*: bool       # C source file is the header file
+    includesStringh*: bool    # C source file already includes ``<string.h>``
     cfilename*: string        # filename of the module (including path,
                               # without extension)
     typeCache*: TIdTable      # cache the generated types
@@ -110,6 +111,7 @@ type
     labels*: natural          # for generating unique module-scope names
     extensionLoaders*: array['0'..'9', PRope] # special procs for the
                                               # OpenGL wrapper
+    injectStmt*: PRope
 
 var
   mainModProcs*, mainModInit*, mainDatInit*: PRope # parts of the main module
diff --git a/compiler/commands.nim b/compiler/commands.nim
index d3266930b..fa7841275 100644
--- a/compiler/commands.nim
+++ b/compiler/commands.nim
@@ -249,10 +249,13 @@ proc processSwitch(switch, arg: string, pass: TCmdlinePass, info: TLineInfo) =
     expectArg(switch, arg, pass, info)
     addPath(processPath(arg), info)
   of "babelpath":
-    if pass in {passCmd2, passPP}:
+    if pass in {passCmd2, passPP} and not options.gNoBabelPath:
       expectArg(switch, arg, pass, info)
       let path = processPath(arg, notRelativeToProj=true)
       babelpath(path, info)
+  of "nobabelpath":
+    expectNoArg(switch, arg, pass, info)
+    options.gNoBabelPath = true
   of "excludepath":
     expectArg(switch, arg, pass, info)
     let path = processPath(arg)
diff --git a/compiler/docgen.nim b/compiler/docgen.nim
index 9929b4bd9..d44018a2b 100644
--- a/compiler/docgen.nim
+++ b/compiler/docgen.nim
@@ -11,10 +11,10 @@
 # semantic checking is done for the code. Cross-references are generated
 # by knowing how the anchors are going to be named.
 
-import 
-  ast, strutils, strtabs, options, msgs, os, ropes, idents, 
-  wordrecg, syntaxes, renderer, lexer, rstast, rst, rstgen, times, highlite, 
-  importer, sempass2
+import
+  ast, strutils, strtabs, options, msgs, os, ropes, idents,
+  wordrecg, syntaxes, renderer, lexer, rstast, rst, rstgen, times, highlite,
+  importer, sempass2, json
 
 type
   TSections = array[TSymKind, PRope]
@@ -25,7 +25,7 @@ type
     indexValFilename: string
 
   PDoc* = ref TDocumentor
-  
+
 proc compilerMsgHandler(filename: string, line, col: int,
                         msgKind: rst.TMsgKind, arg: string) {.procvar.} =
   # translate msg kind:
@@ -41,69 +41,69 @@ proc compilerMsgHandler(filename: string, line, col: int,
   of mwUnknownSubstitution: k = warnUnknownSubstitutionX
   of mwUnsupportedLanguage: k = warnLanguageXNotSupported
   GlobalError(newLineInfo(filename, line, col), k, arg)
-  
+
 proc parseRst(text, filename: string,
               line, column: int, hasToc: var bool,
               rstOptions: TRstParseOptions): PRstNode =
   result = rstParse(text, filename, line, column, hasToc, rstOptions,
                     options.FindFile, compilerMsgHandler)
 
-proc newDocumentor*(filename: string, config: PStringTable): PDoc = 
+proc newDocumentor*(filename: string, config: PStringTable): PDoc =
   new(result)
   initRstGenerator(result[], (if gCmd != cmdRst2Tex: outHtml else: outLatex),
                    options.gConfigVars, filename, {roSupportRawDirective},
                    options.FindFile, compilerMsgHandler)
   result.id = 100
 
-proc dispA(dest: var PRope, xml, tex: string, args: openarray[PRope]) = 
+proc dispA(dest: var PRope, xml, tex: string, args: openarray[PRope]) =
   if gCmd != cmdRst2Tex: appf(dest, xml, args)
   else: appf(dest, tex, args)
-  
-proc getVarIdx(varnames: openarray[string], id: string): int = 
-  for i in countup(0, high(varnames)): 
-    if cmpIgnoreStyle(varnames[i], id) == 0: 
+
+proc getVarIdx(varnames: openarray[string], id: string): int =
+  for i in countup(0, high(varnames)):
+    if cmpIgnoreStyle(varnames[i], id) == 0:
       return i
   result = -1
 
-proc ropeFormatNamedVars(frmt: TFormatStr, varnames: openarray[string], 
-                         varvalues: openarray[PRope]): PRope = 
+proc ropeFormatNamedVars(frmt: TFormatStr, varnames: openarray[string],
+                         varvalues: openarray[PRope]): PRope =
   var i = 0
   var L = len(frmt)
   result = nil
   var num = 0
-  while i < L: 
-    if frmt[i] == '$': 
+  while i < L:
+    if frmt[i] == '$':
       inc(i)                  # skip '$'
       case frmt[i]
-      of '#': 
+      of '#':
         app(result, varvalues[num])
         inc(num)
         inc(i)
-      of '$': 
+      of '$':
         app(result, "$")
         inc(i)
-      of '0'..'9': 
+      of '0'..'9':
         var j = 0
-        while true: 
+        while true:
           j = (j * 10) + Ord(frmt[i]) - ord('0')
           inc(i)
-          if (i > L + 0 - 1) or not (frmt[i] in {'0'..'9'}): break 
+          if (i > L + 0 - 1) or not (frmt[i] in {'0'..'9'}): break
         if j > high(varvalues) + 1: internalError("ropeFormatNamedVars")
         num = j
         app(result, varvalues[j - 1])
-      of 'A'..'Z', 'a'..'z', '\x80'..'\xFF': 
+      of 'A'..'Z', 'a'..'z', '\x80'..'\xFF':
         var id = ""
-        while true: 
+        while true:
           add(id, frmt[i])
           inc(i)
-          if not (frmt[i] in {'A'..'Z', '_', 'a'..'z', '\x80'..'\xFF'}): break 
+          if not (frmt[i] in {'A'..'Z', '_', 'a'..'z', '\x80'..'\xFF'}): break
         var idx = getVarIdx(varnames, id)
         if idx >= 0: app(result, varvalues[idx])
         else: rawMessage(errUnkownSubstitionVar, id)
-      of '{': 
+      of '{':
         var id = ""
         inc(i)
-        while frmt[i] != '}': 
+        while frmt[i] != '}':
           if frmt[i] == '\0': rawMessage(errTokenExpected, "}")
           add(id, frmt[i])
           inc(i)
@@ -124,17 +124,17 @@ proc genComment(d: PDoc, n: PNode): string =
   var dummyHasToc: bool
   if n.comment != nil and startsWith(n.comment, "##"):
     renderRstToOut(d[], parseRst(n.comment, toFilename(n.info),
-                               toLineNumber(n.info), toColumn(n.info), 
+                               toLineNumber(n.info), toColumn(n.info),
                                dummyHasToc, d.options + {roSkipPounds}), result)
 
-proc genRecComment(d: PDoc, n: PNode): PRope = 
+proc genRecComment(d: PDoc, n: PNode): PRope =
   if n == nil: return nil
   result = genComment(d, n).toRope
-  if result == nil: 
+  if result == nil:
     if n.kind notin {nkEmpty..nkNilLit}:
       for i in countup(0, len(n)-1):
         result = genRecComment(d, n.sons[i])
-        if result != nil: return 
+        if result != nil: return
   else:
     n.comment = nil
 
@@ -158,10 +158,10 @@ proc extractDocComment*(s: PSym, d: PDoc = nil): string =
     else:
       result = n.comment.substr(2).replace("\n##", "\n").strip
 
-proc isVisible(n: PNode): bool = 
+proc isVisible(n: PNode): bool =
   result = false
-  if n.kind == nkPostfix: 
-    if n.len == 2 and n.sons[0].kind == nkIdent: 
+  if n.kind == nkPostfix:
+    if n.len == 2 and n.sons[0].kind == nkIdent:
       var v = n.sons[0].ident
       result = v.id == ord(wStar) or v.id == ord(wMinus)
   elif n.kind == nkSym:
@@ -171,36 +171,36 @@ proc isVisible(n: PNode): bool =
     result = {sfExported, sfFromGeneric, sfForward}*n.sym.flags == {sfExported}
   elif n.kind == nkPragmaExpr:
     result = isVisible(n.sons[0])
-    
-proc getName(d: PDoc, n: PNode, splitAfter = -1): string = 
+
+proc getName(d: PDoc, n: PNode, splitAfter = -1): string =
   case n.kind
   of nkPostfix: result = getName(d, n.sons[1], splitAfter)
   of nkPragmaExpr: result = getName(d, n.sons[0], splitAfter)
   of nkSym: result = esc(d.target, n.sym.renderDefinitionName, splitAfter)
   of nkIdent: result = esc(d.target, n.ident.s, splitAfter)
-  of nkAccQuoted: 
-    result = esc(d.target, "`") 
+  of nkAccQuoted:
+    result = esc(d.target, "`")
     for i in 0.. <n.len: result.add(getName(d, n[i], splitAfter))
     result.add esc(d.target, "`")
   else:
     internalError(n.info, "getName()")
     result = ""
 
-proc getRstName(n: PNode): PRstNode = 
+proc getRstName(n: PNode): PRstNode =
   case n.kind
   of nkPostfix: result = getRstName(n.sons[1])
   of nkPragmaExpr: result = getRstName(n.sons[0])
   of nkSym: result = newRstNode(rnLeaf, n.sym.renderDefinitionName)
   of nkIdent: result = newRstNode(rnLeaf, n.ident.s)
-  of nkAccQuoted: 
+  of nkAccQuoted:
     result = getRstName(n.sons[0])
     for i in 1 .. <n.len: result.text.add(getRstName(n[i]).text)
   else:
     internalError(n.info, "getRstName()")
     result = nil
 
-proc genItem(d: PDoc, n, nameNode: PNode, k: TSymKind) = 
-  if not isVisible(nameNode): return 
+proc genItem(d: PDoc, n, nameNode: PNode, k: TSymKind) =
+  if not isVisible(nameNode): return
   var name = toRope(getName(d, nameNode))
   var result: PRope = nil
   var literal = ""
@@ -208,73 +208,89 @@ proc genItem(d: PDoc, n, nameNode: PNode, k: TSymKind) =
   var comm = genRecComment(d, n)  # call this here for the side-effect!
   var r: TSrcGen
   initTokRender(r, n, {renderNoBody, renderNoComments, renderDocComments})
-  while true: 
+  while true:
     getNextTok(r, kind, literal)
     case kind
-    of tkEof: 
-      break 
-    of tkComment: 
-      dispA(result, "<span class=\"Comment\">$1</span>", "\\spanComment{$1}", 
+    of tkEof:
+      break
+    of tkComment:
+      dispA(result, "<span class=\"Comment\">$1</span>", "\\spanComment{$1}",
             [toRope(esc(d.target, literal))])
-    of tokKeywordLow..tokKeywordHigh: 
-      dispA(result, "<span class=\"Keyword\">$1</span>", "\\spanKeyword{$1}", 
+    of tokKeywordLow..tokKeywordHigh:
+      dispA(result, "<span class=\"Keyword\">$1</span>", "\\spanKeyword{$1}",
             [toRope(literal)])
-    of tkOpr: 
-      dispA(result, "<span class=\"Operator\">$1</span>", "\\spanOperator{$1}", 
+    of tkOpr:
+      dispA(result, "<span class=\"Operator\">$1</span>", "\\spanOperator{$1}",
             [toRope(esc(d.target, literal))])
-    of tkStrLit..tkTripleStrLit: 
-      dispA(result, "<span class=\"StringLit\">$1</span>", 
+    of tkStrLit..tkTripleStrLit:
+      dispA(result, "<span class=\"StringLit\">$1</span>",
             "\\spanStringLit{$1}", [toRope(esc(d.target, literal))])
-    of tkCharLit: 
-      dispA(result, "<span class=\"CharLit\">$1</span>", "\\spanCharLit{$1}", 
+    of tkCharLit:
+      dispA(result, "<span class=\"CharLit\">$1</span>", "\\spanCharLit{$1}",
             [toRope(esc(d.target, literal))])
-    of tkIntLit..tkUInt64Lit: 
-      dispA(result, "<span class=\"DecNumber\">$1</span>", 
+    of tkIntLit..tkUInt64Lit:
+      dispA(result, "<span class=\"DecNumber\">$1</span>",
             "\\spanDecNumber{$1}", [toRope(esc(d.target, literal))])
-    of tkFloatLit..tkFloat128Lit: 
-      dispA(result, "<span class=\"FloatNumber\">$1</span>", 
+    of tkFloatLit..tkFloat128Lit:
+      dispA(result, "<span class=\"FloatNumber\">$1</span>",
             "\\spanFloatNumber{$1}", [toRope(esc(d.target, literal))])
-    of tkSymbol: 
-      dispA(result, "<span class=\"Identifier\">$1</span>", 
+    of tkSymbol:
+      dispA(result, "<span class=\"Identifier\">$1</span>",
             "\\spanIdentifier{$1}", [toRope(esc(d.target, literal))])
-    of tkSpaces, tkInvalid: 
+    of tkSpaces, tkInvalid:
       app(result, literal)
-    of tkParLe, tkParRi, tkBracketLe, tkBracketRi, tkCurlyLe, tkCurlyRi, 
-       tkBracketDotLe, tkBracketDotRi, tkCurlyDotLe, tkCurlyDotRi, tkParDotLe, 
-       tkParDotRi, tkComma, tkSemiColon, tkColon, tkEquals, tkDot, tkDotDot, 
-       tkAccent, tkColonColon, 
-       tkGStrLit, tkGTripleStrLit, tkInfixOpr, tkPrefixOpr, tkPostfixOpr: 
-      dispA(result, "<span class=\"Other\">$1</span>", "\\spanOther{$1}", 
+    of tkParLe, tkParRi, tkBracketLe, tkBracketRi, tkCurlyLe, tkCurlyRi,
+       tkBracketDotLe, tkBracketDotRi, tkCurlyDotLe, tkCurlyDotRi, tkParDotLe,
+       tkParDotRi, tkComma, tkSemiColon, tkColon, tkEquals, tkDot, tkDotDot,
+       tkAccent, tkColonColon,
+       tkGStrLit, tkGTripleStrLit, tkInfixOpr, tkPrefixOpr, tkPostfixOpr:
+      dispA(result, "<span class=\"Other\">$1</span>", "\\spanOther{$1}",
             [toRope(esc(d.target, literal))])
   inc(d.id)
-  app(d.section[k], ropeFormatNamedVars(getConfigVar("doc.item"), 
-                                        ["name", "header", "desc", "itemID"], 
+  app(d.section[k], ropeFormatNamedVars(getConfigVar("doc.item"),
+                                        ["name", "header", "desc", "itemID"],
                                         [name, result, comm, toRope(d.id)]))
-  app(d.toc[k], ropeFormatNamedVars(getConfigVar("doc.item.toc"), 
+  app(d.toc[k], ropeFormatNamedVars(getConfigVar("doc.item.toc"),
                                     ["name", "header", "desc", "itemID"], [
       toRope(getName(d, nameNode, d.splitAfter)), result, comm, toRope(d.id)]))
   setIndexTerm(d[], $d.id, getName(d, nameNode))
 
-proc checkForFalse(n: PNode): bool = 
+proc genJSONItem(d: PDoc, n, nameNode: PNode, k: TSymKind): PJsonNode =
+  if not isVisible(nameNode): return
+  var
+    name = getName(d, nameNode)
+    comm = genRecComment(d, n).ropeToStr()
+    r: TSrcGen
+
+  initTokRender(r, n, {renderNoBody, renderNoComments, renderDocComments})
+
+  result = %{ "name": %name, "type": %($k) }
+
+  if comm != nil and comm != "":
+    result["description"] = %comm
+  if r.buf != nil:
+    result["code"] = %r.buf
+
+proc checkForFalse(n: PNode): bool =
   result = n.kind == nkIdent and IdentEq(n.ident, "false")
-  
-proc traceDeps(d: PDoc, n: PNode) = 
+
+proc traceDeps(d: PDoc, n: PNode) =
   const k = skModule
   if d.section[k] != nil: app(d.section[k], ", ")
-  dispA(d.section[k], 
-        "<a class=\"reference external\" href=\"$1.html\">$1</a>", 
+  dispA(d.section[k],
+        "<a class=\"reference external\" href=\"$1.html\">$1</a>",
         "$1", [toRope(getModuleName(n))])
 
-proc generateDoc*(d: PDoc, n: PNode) = 
+proc generateDoc*(d: PDoc, n: PNode) =
   case n.kind
   of nkCommentStmt: app(d.modDesc, genComment(d, n))
-  of nkProcDef: 
+  of nkProcDef:
     when useEffectSystem: documentRaises(n)
     genItem(d, n, n.sons[namePos], skProc)
   of nkMethodDef:
     when useEffectSystem: documentRaises(n)
     genItem(d, n, n.sons[namePos], skMethod)
-  of nkIteratorDef: 
+  of nkIteratorDef:
     when useEffectSystem: documentRaises(n)
     genItem(d, n, n.sons[namePos], skIterator)
   of nkMacroDef: genItem(d, n, n.sons[namePos], skMacro)
@@ -284,27 +300,69 @@ proc generateDoc*(d: PDoc, n: PNode) =
     genItem(d, n, n.sons[namePos], skConverter)
   of nkTypeSection, nkVarSection, nkLetSection, nkConstSection:
     for i in countup(0, sonsLen(n) - 1):
-      if n.sons[i].kind != nkCommentStmt: 
+      if n.sons[i].kind != nkCommentStmt:
         # order is always 'type var let const':
-        genItem(d, n.sons[i], n.sons[i].sons[0], 
+        genItem(d, n.sons[i], n.sons[i].sons[0],
                 succ(skType, ord(n.kind)-ord(nkTypeSection)))
-  of nkStmtList: 
+  of nkStmtList:
     for i in countup(0, sonsLen(n) - 1): generateDoc(d, n.sons[i])
-  of nkWhenStmt: 
+  of nkWhenStmt:
     # generate documentation for the first branch only:
     if not checkForFalse(n.sons[0].sons[0]):
       generateDoc(d, lastSon(n.sons[0]))
   of nkImportStmt:
-    for i in 0 .. sonsLen(n)-1: traceDeps(d, n.sons[i]) 
+    for i in 0 .. sonsLen(n)-1: traceDeps(d, n.sons[i])
   of nkFromStmt, nkImportExceptStmt: traceDeps(d, n.sons[0])
   else: nil
 
-proc genSection(d: PDoc, kind: TSymKind) = 
+proc generateJson(d: PDoc, n: PNode, jArray: PJsonNode = nil): PJsonNode =
+  case n.kind
+  of nkCommentStmt:
+    if n.comment != nil and startsWith(n.comment, "##"):
+      let stripped = n.comment.substr(2).strip
+      result = %{ "comment": %stripped }
+  of nkProcDef:
+    when useEffectSystem: documentRaises(n)
+    result = genJSONItem(d, n, n.sons[namePos], skProc)
+  of nkMethodDef:
+    when useEffectSystem: documentRaises(n)
+    result = genJSONItem(d, n, n.sons[namePos], skMethod)
+  of nkIteratorDef:
+    when useEffectSystem: documentRaises(n)
+    result = genJSONItem(d, n, n.sons[namePos], skIterator)
+  of nkMacroDef:
+    result = genJSONItem(d, n, n.sons[namePos], skMacro)
+  of nkTemplateDef:
+    result = genJSONItem(d, n, n.sons[namePos], skTemplate)
+  of nkConverterDef:
+    when useEffectSystem: documentRaises(n)
+    result = genJSONItem(d, n, n.sons[namePos], skConverter)
+  of nkTypeSection, nkVarSection, nkLetSection, nkConstSection:
+    for i in countup(0, sonsLen(n) - 1):
+      if n.sons[i].kind != nkCommentStmt:
+        # order is always 'type var let const':
+        result = genJSONItem(d, n.sons[i], n.sons[i].sons[0],
+                succ(skType, ord(n.kind)-ord(nkTypeSection)))
+  of nkStmtList:
+    var elem = jArray
+    if elem == nil: elem = newJArray()
+    for i in countup(0, sonsLen(n) - 1):
+      var r = generateJson(d, n.sons[i], elem)
+      if r != nil:
+        elem.add(r)
+        if result == nil: result = elem
+  of nkWhenStmt:
+    # generate documentation for the first branch only:
+    if not checkForFalse(n.sons[0].sons[0]) and jArray != nil:
+      discard generateJson(d, lastSon(n.sons[0]), jArray)
+  else: nil
+
+proc genSection(d: PDoc, kind: TSymKind) =
   const sectionNames: array[skModule..skTemplate, string] = [
-    "Imports", "Types", "Vars", "Lets", "Consts", "Vars", "Procs", "Methods", 
+    "Imports", "Types", "Vars", "Lets", "Consts", "Vars", "Procs", "Methods",
     "Iterators", "Converters", "Macros", "Templates"
   ]
-  if d.section[kind] == nil: return 
+  if d.section[kind] == nil: return
   var title = sectionNames[kind].toRope
   d.section[kind] = ropeFormatNamedVars(getConfigVar("doc.section"), [
       "sectionid", "sectionTitle", "sectionTitleID", "content"], [
@@ -313,7 +371,7 @@ proc genSection(d: PDoc, kind: TSymKind) =
       "sectionid", "sectionTitle", "sectionTitleID", "content"], [
       ord(kind).toRope, title, toRope(ord(kind) + 50), d.toc[kind]])
 
-proc genOutFile(d: PDoc): PRope = 
+proc genOutFile(d: PDoc): PRope =
   var
     code, content: PRope
     title = ""
@@ -321,7 +379,7 @@ proc genOutFile(d: PDoc): PRope =
   var tmp = ""
   renderTocEntries(d[], j, 1, tmp)
   var toc = tmp.toRope
-  for i in countup(low(TSymKind), high(TSymKind)): 
+  for i in countup(low(TSymKind), high(TSymKind)):
     genSection(d, i)
     app(toc, d.toc[i])
   if toc != nil:
@@ -329,30 +387,30 @@ proc genOutFile(d: PDoc): PRope =
   for i in countup(low(TSymKind), high(TSymKind)): app(code, d.section[i])
   if d.meta[metaTitle].len != 0: title = d.meta[metaTitle]
   else: title = "Module " & extractFilename(changeFileExt(d.filename, ""))
-  
+
   let bodyname = if d.hasToc: "doc.body_toc" else: "doc.body_no_toc"
-  content = ropeFormatNamedVars(getConfigVar(bodyname), ["title", 
+  content = ropeFormatNamedVars(getConfigVar(bodyname), ["title",
       "tableofcontents", "moduledesc", "date", "time", "content"],
-      [title.toRope, toc, d.modDesc, toRope(getDateStr()), 
+      [title.toRope, toc, d.modDesc, toRope(getDateStr()),
       toRope(getClockStr()), code])
-  if optCompileOnly notin gGlobalOptions: 
+  if optCompileOnly notin gGlobalOptions:
     # XXX what is this hack doing here? 'optCompileOnly' means raw output!?
-    code = ropeFormatNamedVars(getConfigVar("doc.file"), ["title", 
-        "tableofcontents", "moduledesc", "date", "time", 
-        "content", "author", "version"], 
-        [title.toRope, toc, d.modDesc, toRope(getDateStr()), 
-                     toRope(getClockStr()), content, d.meta[metaAuthor].toRope, 
+    code = ropeFormatNamedVars(getConfigVar("doc.file"), ["title",
+        "tableofcontents", "moduledesc", "date", "time",
+        "content", "author", "version"],
+        [title.toRope, toc, d.modDesc, toRope(getDateStr()),
+                     toRope(getClockStr()), content, d.meta[metaAuthor].toRope,
                      d.meta[metaVersion].toRope])
-  else: 
+  else:
     code = content
   result = code
 
 proc generateIndex*(d: PDoc) =
   if optGenIndex in gGlobalOptions:
-    writeIndexFile(d[], splitFile(options.outFile).dir / 
+    writeIndexFile(d[], splitFile(options.outFile).dir /
                         splitFile(d.filename).name & indexExt)
 
-proc writeOutput*(d: PDoc, filename, outExt: string, useWarning = false) = 
+proc writeOutput*(d: PDoc, filename, outExt: string, useWarning = false) =
   var content = genOutFile(d)
   if optStdout in gGlobalOptions:
     writeRope(stdout, content)
@@ -361,7 +419,7 @@ proc writeOutput*(d: PDoc, filename, outExt: string, useWarning = false) =
 
 proc CommandDoc*() =
   var ast = parseFile(gProjectMainIdx)
-  if ast == nil: return 
+  if ast == nil: return
   var d = newDocumentor(gProjectFull, options.gConfigVars)
   d.hasToc = true
   generateDoc(d, ast)
@@ -388,12 +446,26 @@ proc CommandRst2TeX*() =
   splitter = "\\-"
   CommandRstAux(gProjectFull, TexExt)
 
+proc CommandJSON*() =
+  var ast = parseFile(gProjectMainIdx)
+  if ast == nil: return
+  var d = newDocumentor(gProjectFull, options.gConfigVars)
+  d.hasToc = true
+  var json = generateJson(d, ast)
+  var content = newRope(pretty(json))
+
+  if optStdout in gGlobalOptions:
+    writeRope(stdout, content)
+  else:
+    echo getOutFile(gProjectFull, JsonExt)
+    writeRope(content, getOutFile(gProjectFull, JsonExt), useWarning = false)
+
 proc CommandBuildIndex*() =
   var content = mergeIndexes(gProjectFull).toRope
-  
-  let code = ropeFormatNamedVars(getConfigVar("doc.file"), ["title", 
-      "tableofcontents", "moduledesc", "date", "time", 
-      "content", "author", "version"], 
-      ["Index".toRope, nil, nil, toRope(getDateStr()), 
+
+  let code = ropeFormatNamedVars(getConfigVar("doc.file"), ["title",
+      "tableofcontents", "moduledesc", "date", "time",
+      "content", "author", "version"],
+      ["Index".toRope, nil, nil, toRope(getDateStr()),
                    toRope(getClockStr()), content, nil, nil])
   writeRope(code, getOutFile("theindex", HtmlExt))
diff --git a/compiler/evals.nim b/compiler/evals.nim
index 7e2c8a41d..b4ea973e8 100644
--- a/compiler/evals.nim
+++ b/compiler/evals.nim
@@ -550,9 +550,7 @@ proc evalSym(c: PEvalContext, n: PNode, flags: TEvalFlags): PNode =
   of skProc, skConverter, skMacro, skType:
     result = n
     #result = s.getBody
-  of skForVar:
-    result = evalGlobalVar(c, s, flags)
-  of skVar, skLet, skTemp, skResult:
+  of skVar, skLet, skForVar, skTemp, skResult:
     if sfGlobal notin s.flags:
       result = evalVariable(c.tos, s, flags)
     else:
diff --git a/compiler/extccomp.nim b/compiler/extccomp.nim
index 13eb972f6..bbbbbfb8e 100644
--- a/compiler/extccomp.nim
+++ b/compiler/extccomp.nim
@@ -463,9 +463,9 @@ proc getCompileOptions: string =
 proc getLinkOptions: string =
   result = linkOptions
   for linkedLib in items(cLinkedLibs):
-    result.add(cc[ccompiler].linkLibCmd % linkedLib.quoteIfContainsWhite)
+    result.add(cc[ccompiler].linkLibCmd % linkedLib.quoteShell)
   for libDir in items(cLibs):
-    result.add([cc[ccompiler].linkDirCmd, libDir.quoteIfContainsWhite])
+    result.add([cc[ccompiler].linkDirCmd, libDir.quoteShell])
 
 proc needsExeExt(): bool {.inline.} =
   result = (optGenScript in gGlobalOptions and targetOS == osWindows) or
@@ -485,10 +485,10 @@ proc getCompileCFileCmd*(cfilename: string, isExternal = false): string =
   var includeCmd, compilePattern: string
   if not noAbsolutePaths(): 
     # compute include paths:
-    includeCmd = cc[c].includeCmd & quoteIfContainsWhite(libpath)
+    includeCmd = cc[c].includeCmd & quoteShell(libpath)
 
     for includeDir in items(cIncludes):
-      includeCmd.add([cc[c].includeCmd, includeDir.quoteIfContainsWhite])
+      includeCmd.add([cc[c].includeCmd, includeDir.quoteShell])
 
     compilePattern = JoinPath(ccompilerpath, exe)
   else: 
@@ -501,17 +501,17 @@ proc getCompileCFileCmd*(cfilename: string, isExternal = false): string =
                   toObjFile(cfile) 
                 else: 
                   completeCFilePath(toObjFile(cfile))
-  cfile = quoteIfContainsWhite(AddFileExt(cfile, cExt))
-  objfile = quoteIfContainsWhite(objfile)
-  result = quoteIfContainsWhite(compilePattern % [
+  cfile = quoteShell(AddFileExt(cfile, cExt))
+  objfile = quoteShell(objfile)
+  result = quoteShell(compilePattern % [
     "file", cfile, "objfile", objfile, "options", options, 
     "include", includeCmd, "nimrod", getPrefixDir(), "lib", libpath])
   add(result, ' ')
   addf(result, cc[c].compileTmpl, [
     "file", cfile, "objfile", objfile, 
     "options", options, "include", includeCmd, 
-    "nimrod", quoteIfContainsWhite(getPrefixDir()), 
-    "lib", quoteIfContainsWhite(libpath)])
+    "nimrod", quoteShell(getPrefixDir()), 
+    "lib", quoteShell(libpath)])
 
 proc footprint(filename: string): TCrc32 =
   result = crcFromFile(filename) ><
@@ -590,7 +590,7 @@ proc CallCCompiler*(projectfile: string) =
     while it != nil:
       let objFile = if noAbsolutePaths(): it.data.extractFilename else: it.data
       add(objfiles, ' ')
-      add(objfiles, quoteIfContainsWhite(
+      add(objfiles, quoteShell(
           addFileExt(objFile, cc[ccompiler].objExt)))
       it = PStrEntry(it.next)
 
@@ -602,8 +602,8 @@ proc CallCCompiler*(projectfile: string) =
       var linkerExe = getConfigVar(c, ".linkerexe")
       if len(linkerExe) == 0: linkerExe = cc[c].linkerExe
       if needsExeExt(): linkerExe = addFileExt(linkerExe, "exe")
-      if noAbsolutePaths(): linkCmd = quoteIfContainsWhite(linkerExe)
-      else: linkCmd = quoteIfContainsWhite(JoinPath(ccompilerpath, linkerExe))
+      if noAbsolutePaths(): linkCmd = quoteShell(linkerExe)
+      else: linkCmd = quoteShell(JoinPath(ccompilerpath, linkerExe))
       if optGenGuiApp in gGlobalOptions: buildGui = cc[c].buildGui
       else: buildGui = ""
       var exefile: string
@@ -614,20 +614,21 @@ proc CallCCompiler*(projectfile: string) =
         exefile = splitFile(projectFile).name & platform.os[targetOS].exeExt
         buildDll = ""
       if options.outFile.len > 0: 
-        exefile = options.outFile
+        exefile = options.outFile.expandTilde
       if not noAbsolutePaths():
-        exefile = joinPath(splitFile(projectFile).dir, exefile)
-      exefile = quoteIfContainsWhite(exefile)
+        if not exeFile.isAbsolute():
+          exefile = joinPath(splitFile(projectFile).dir, exefile)
+      exefile = quoteShell(exefile)
       let linkOptions = getLinkOptions()
-      linkCmd = quoteIfContainsWhite(linkCmd % ["builddll", builddll,
+      linkCmd = quoteShell(linkCmd % ["builddll", builddll,
           "buildgui", buildgui, "options", linkOptions, "objfiles", objfiles,
           "exefile", exefile, "nimrod", getPrefixDir(), "lib", libpath])
       linkCmd.add ' '
       addf(linkCmd, cc[c].linkTmpl, ["builddll", builddll,
           "buildgui", buildgui, "options", linkOptions,
           "objfiles", objfiles, "exefile", exefile,
-          "nimrod", quoteIfContainsWhite(getPrefixDir()),
-          "lib", quoteIfContainsWhite(libpath)])
+          "nimrod", quoteShell(getPrefixDir()),
+          "lib", quoteShell(libpath)])
       if optCompileOnly notin gGlobalOptions: execExternalProgram(linkCmd)
   else:
     linkCmd = ""
diff --git a/compiler/jsgen.nim b/compiler/jsgen.nim
index 54ee43069..a3c88824d 100644
--- a/compiler/jsgen.nim
+++ b/compiler/jsgen.nim
@@ -130,7 +130,7 @@ proc mapType(typ: PType): TJSTypeKind =
     result = etyObject
   of tyNil: result = etyNull
   of tyGenericInst, tyGenericParam, tyGenericBody, tyGenericInvokation, tyNone, 
-     tyForward, tyEmpty, tyExpr, tyStmt, tyTypeDesc, tyTypeClass: 
+     tyForward, tyEmpty, tyExpr, tyStmt, tyTypeDesc, tyTypeClasses: 
     result = etyNone
   of tyProc: result = etyProc
   of tyCString: result = etyString
diff --git a/compiler/lists.nim b/compiler/lists.nim
index 67b32f919..22b1a183a 100644
--- a/compiler/lists.nim
+++ b/compiler/lists.nim
@@ -91,13 +91,17 @@ proc Remove*(list: var TLinkedList, entry: PListEntry) =
   if entry.prev != nil: entry.prev.next = entry.next
 
 proc bringToFront*(list: var TLinkedList, entry: PListEntry) =
-  if entry == list.head: return
-  if entry == list.tail: list.tail = entry.prev
-  if entry.next != nil: entry.next.prev = entry.prev
-  if entry.prev != nil: entry.prev.next = entry.next
-  entry.prev = nil
-  entry.next = list.head
-  list.head = entry
+  when true:
+    list.remove entry
+    list.prepend entry
+  else:
+    if entry == list.head: return
+    if entry == list.tail: list.tail = entry.prev
+    if entry.next != nil: entry.next.prev = entry.prev
+    if entry.prev != nil: entry.prev.next = entry.next
+    entry.prev = nil
+    entry.next = list.head
+    list.head = entry
 
 proc ExcludeStr*(list: var TLinkedList, data: string) =
   var it = list.head
diff --git a/compiler/main.nim b/compiler/main.nim
index 7cfc6d406..9ffe99454 100644
--- a/compiler/main.nim
+++ b/compiler/main.nim
@@ -9,8 +9,8 @@
 
 # implements the command dispatcher and several commands
 
-import 
-  llstream, strutils, ast, astalgo, lexer, syntaxes, renderer, options, msgs, 
+import
+  llstream, strutils, ast, astalgo, lexer, syntaxes, renderer, options, msgs,
   os, condsyms, rodread, rodwrite, times,
   wordrecg, sem, semdata, idents, passes, docgen, extccomp,
   cgen, jsgen, json, nversion,
@@ -98,7 +98,7 @@ proc CommandCompileToC =
       # rodread.rodcompilerProcs
       # rodread.gTypeTable
       # rodread.gMods
-      
+
       # !! ropes.cache
       # semthreads.computed?
       #
@@ -166,7 +166,7 @@ proc commandEval(exp: string) =
 proc CommandPrettyOld =
   var projectFile = addFileExt(mainCommandArg(), NimExt)
   var module = parseFile(projectFile.fileInfoIdx)
-  if module != nil: 
+  if module != nil:
     renderModule(module, getOutFile(mainCommandArg(), "pretty." & NimExt))
 
 proc CommandPretty =
@@ -175,24 +175,24 @@ proc CommandPretty =
   registerPass(prettyPass)
   compileProject()
   pretty.overwriteFiles()
-  
+
 proc CommandScan =
   var f = addFileExt(mainCommandArg(), nimExt)
   var stream = LLStreamOpen(f, fmRead)
-  if stream != nil: 
-    var 
+  if stream != nil:
+    var
       L: TLexer
       tok: TToken
     initToken(tok)
     openLexer(L, f, stream)
-    while true: 
+    while true:
       rawGetTok(L, tok)
       PrintTok(tok)
-      if tok.tokType == tkEof: break 
+      if tok.tokType == tkEof: break
     CloseLexer(L)
-  else: 
+  else:
     rawMessage(errCannotOpenFile, f)
-  
+
 proc CommandSuggest =
   if isServing:
     # XXX: hacky work-around ahead
@@ -246,7 +246,7 @@ proc resetMemory =
   for i in low(buckets)..high(buckets):
     buckets[i] = nil
   idAnon = nil
-  
+
   # XXX: clean these global vars
   # ccgstmts.gBreakpoints
   # ccgthreadvars.nimtv
@@ -262,7 +262,7 @@ proc resetMemory =
   # rodread.rodcompilerProcs
   # rodread.gTypeTable
   # rodread.gMods
-  
+
   # !! ropes.cache
   # semthreads.computed?
   #
@@ -289,7 +289,7 @@ const
 proc MainCommand* =
   when SimiluateCaasMemReset:
     gGlobalOptions.incl(optCaasEnabled)
-      
+
   # In "nimrod serve" scenario, each command must reset the registered passes
   clearPasses()
   gLastCmdTime = epochTime()
@@ -301,7 +301,7 @@ proc MainCommand* =
   passes.gIncludeFile = includeModule
   passes.gImportModule = importModule
   case command.normalize
-  of "c", "cc", "compile", "compiletoc": 
+  of "c", "cc", "compile", "compiletoc":
     # compile means compileToC currently
     gCmd = cmdCompileToC
     wantMainModule()
@@ -325,13 +325,13 @@ proc MainCommand* =
     when hasTinyCBackend:
       extccomp.setCC("tcc")
       CommandCompileToC()
-    else: 
+    else:
       rawMessage(errInvalidCommandX, command)
-  of "js", "compiletojs": 
+  of "js", "compiletojs":
     gCmd = cmdCompileToJS
     wantMainModule()
     CommandCompileToJS()
-  of "compiletollvm": 
+  of "compiletollvm":
     gCmd = cmdCompileToLLVM
     wantMainModule()
     when has_LLVM_Backend:
@@ -353,21 +353,27 @@ proc MainCommand* =
     wantMainModule()
     DefineSymbol("nimdoc")
     CommandDoc2()
-  of "rst2html": 
+  of "rst2html":
     gCmd = cmdRst2html
     LoadConfigs(DocConfig)
     wantMainModule()
     CommandRst2Html()
-  of "rst2tex": 
+  of "rst2tex":
     gCmd = cmdRst2tex
     LoadConfigs(DocTexConfig)
     wantMainModule()
     CommandRst2TeX()
+  of "jsondoc":
+    gCmd = cmdDoc
+    LoadConfigs(DocConfig)
+    wantMainModule()
+    DefineSymbol("nimdoc")
+    CommandJSON()
   of "buildindex":
     gCmd = cmdDoc
     LoadConfigs(DocConfig)
     CommandBuildIndex()
-  of "gendepend": 
+  of "gendepend":
     gCmd = cmdGenDepend
     wantMainModule()
     CommandGenDepend()
@@ -400,16 +406,16 @@ proc MainCommand* =
     gCmd = cmdCheck
     wantMainModule()
     CommandCheck()
-  of "parse": 
+  of "parse":
     gCmd = cmdParse
     wantMainModule()
     discard parseFile(gProjectMainIdx)
-  of "scan": 
+  of "scan":
     gCmd = cmdScan
     wantMainModule()
     CommandScan()
     MsgWriteln("Beware: Indentation tokens depend on the parser\'s state!")
-  of "i": 
+  of "i":
     gCmd = cmdInteractive
     CommandInteractive()
   of "e":
@@ -427,12 +433,14 @@ proc MainCommand* =
   of "serve":
     isServing = true
     gGlobalOptions.incl(optCaasEnabled)
-    msgs.gErrorMax = high(int)  # do not stop after first error     
+    msgs.gErrorMax = high(int)  # do not stop after first error
     serve(MainCommand)
   else:
     rawMessage(errInvalidCommandX, command)
-  
-  if msgs.gErrorCounter == 0 and gCmd notin {cmdInterpret, cmdRun, cmdDump}:
+
+  if (msgs.gErrorCounter == 0 and
+      gCmd notin {cmdInterpret, cmdRun, cmdDump} and
+      gVerbosity > 0):
     rawMessage(hintSuccessX, [$gLinesCompiled,
                formatFloat(epochTime() - gLastCmdTime, ffDecimal, 3),
                formatSize(getTotalMem())])
diff --git a/compiler/nimconf.nim b/compiler/nimconf.nim
index 507812d9c..7ec566a01 100644
--- a/compiler/nimconf.nim
+++ b/compiler/nimconf.nim
@@ -243,11 +243,6 @@ proc LoadConfigs*(cfg: string) =
     readConfigFile(pd / cfg)
     
     if gProjectName.len != 0:
-      var conffile = changeFileExt(gProjectFull, "cfg")
-      if conffile != pd / cfg and existsFile(conffile):
-        readConfigFile(conffile)
-        rawMessage(warnConfigDeprecated, conffile)
-      
       # new project wide config file:
       readConfigFile(changeFileExt(gProjectFull, "nimrod.cfg"))
  
diff --git a/compiler/nimrod.dot b/compiler/nimrod.dot
deleted file mode 100644
index e9663d7c5..000000000
--- a/compiler/nimrod.dot
+++ /dev/null
@@ -1,591 +0,0 @@
-digraph nimrod {
-times -> strutils;
-os -> strutils;
-os -> times;
-posix -> times;
-os -> posix;
-nhashes -> strutils;
-nstrtabs -> os;
-nstrtabs -> nhashes;
-nstrtabs -> strutils;
-options -> os;
-options -> lists;
-options -> strutils;
-options -> nstrtabs;
-msgs -> options;
-msgs -> strutils;
-msgs -> os;
-crc -> strutils;
-platform -> strutils;
-ropes -> msgs;
-ropes -> strutils;
-ropes -> platform;
-ropes -> nhashes;
-ropes -> crc;
-idents -> nhashes;
-idents -> strutils;
-ast -> msgs;
-ast -> nhashes;
-ast -> nversion;
-ast -> options;
-ast -> strutils;
-ast -> crc;
-ast -> ropes;
-ast -> idents;
-ast -> lists;
-astalgo -> ast;
-astalgo -> nhashes;
-astalgo -> strutils;
-astalgo -> options;
-astalgo -> msgs;
-astalgo -> ropes;
-astalgo -> idents;
-condsyms -> ast;
-condsyms -> astalgo;
-condsyms -> msgs;
-condsyms -> nhashes;
-condsyms -> platform;
-condsyms -> strutils;
-condsyms -> idents;
-hashes -> strutils;
-strtabs -> os;
-strtabs -> hashes;
-strtabs -> strutils;
-osproc -> strutils;
-osproc -> os;
-osproc -> strtabs;
-osproc -> streams;
-osproc -> posix;
-extccomp -> lists;
-extccomp -> ropes;
-extccomp -> os;
-extccomp -> strutils;
-extccomp -> osproc;
-extccomp -> platform;
-extccomp -> condsyms;
-extccomp -> options;
-extccomp -> msgs;
-wordrecg -> nhashes;
-wordrecg -> strutils;
-wordrecg -> idents;
-commands -> os;
-commands -> msgs;
-commands -> options;
-commands -> nversion;
-commands -> condsyms;
-commands -> strutils;
-commands -> extccomp;
-commands -> platform;
-commands -> lists;
-commands -> wordrecg;
-llstream -> strutils;
-lexbase -> llstream;
-lexbase -> strutils;
-scanner -> nhashes;
-scanner -> options;
-scanner -> msgs;
-scanner -> strutils;
-scanner -> platform;
-scanner -> idents;
-scanner -> lexbase;
-scanner -> llstream;
-scanner -> wordrecg;
-nimconf -> llstream;
-nimconf -> nversion;
-nimconf -> commands;
-nimconf -> os;
-nimconf -> strutils;
-nimconf -> msgs;
-nimconf -> platform;
-nimconf -> condsyms;
-nimconf -> scanner;
-nimconf -> options;
-nimconf -> idents;
-nimconf -> wordrecg;
-pnimsyn -> llstream;
-pnimsyn -> scanner;
-pnimsyn -> idents;
-pnimsyn -> strutils;
-pnimsyn -> ast;
-pnimsyn -> msgs;
-pbraces -> llstream;
-pbraces -> scanner;
-pbraces -> idents;
-pbraces -> strutils;
-pbraces -> ast;
-pbraces -> msgs;
-pbraces -> pnimsyn;
-rnimsyn -> scanner;
-rnimsyn -> options;
-rnimsyn -> idents;
-rnimsyn -> strutils;
-rnimsyn -> ast;
-rnimsyn -> msgs;
-rnimsyn -> lists;
-filters -> llstream;
-filters -> os;
-filters -> wordrecg;
-filters -> idents;
-filters -> strutils;
-filters -> ast;
-filters -> astalgo;
-filters -> msgs;
-filters -> options;
-filters -> rnimsyn;
-ptmplsyn -> llstream;
-ptmplsyn -> os;
-ptmplsyn -> wordrecg;
-ptmplsyn -> idents;
-ptmplsyn -> strutils;
-ptmplsyn -> ast;
-ptmplsyn -> astalgo;
-ptmplsyn -> msgs;
-ptmplsyn -> options;
-ptmplsyn -> rnimsyn;
-ptmplsyn -> filters;
-syntaxes -> strutils;
-syntaxes -> llstream;
-syntaxes -> ast;
-syntaxes -> astalgo;
-syntaxes -> idents;
-syntaxes -> scanner;
-syntaxes -> options;
-syntaxes -> msgs;
-syntaxes -> pnimsyn;
-syntaxes -> pbraces;
-syntaxes -> ptmplsyn;
-syntaxes -> filters;
-syntaxes -> rnimsyn;
-paslex -> nhashes;
-paslex -> options;
-paslex -> msgs;
-paslex -> strutils;
-paslex -> platform;
-paslex -> idents;
-paslex -> lexbase;
-paslex -> wordrecg;
-paslex -> scanner;
-pasparse -> os;
-pasparse -> llstream;
-pasparse -> scanner;
-pasparse -> paslex;
-pasparse -> idents;
-pasparse -> wordrecg;
-pasparse -> strutils;
-pasparse -> ast;
-pasparse -> astalgo;
-pasparse -> msgs;
-pasparse -> options;
-rodread -> os;
-rodread -> options;
-rodread -> strutils;
-rodread -> nversion;
-rodread -> ast;
-rodread -> astalgo;
-rodread -> msgs;
-rodread -> platform;
-rodread -> condsyms;
-rodread -> ropes;
-rodread -> idents;
-rodread -> crc;
-trees -> ast;
-trees -> astalgo;
-trees -> scanner;
-trees -> msgs;
-trees -> strutils;
-types -> ast;
-types -> astalgo;
-types -> trees;
-types -> msgs;
-types -> strutils;
-types -> platform;
-magicsys -> ast;
-magicsys -> astalgo;
-magicsys -> nhashes;
-magicsys -> msgs;
-magicsys -> platform;
-magicsys -> nversion;
-magicsys -> times;
-magicsys -> idents;
-magicsys -> rodread;
-nimsets -> ast;
-nimsets -> astalgo;
-nimsets -> trees;
-nimsets -> nversion;
-nimsets -> msgs;
-nimsets -> platform;
-nimsets -> bitsets;
-nimsets -> types;
-nimsets -> rnimsyn;
-passes -> strutils;
-passes -> lists;
-passes -> options;
-passes -> ast;
-passes -> astalgo;
-passes -> llstream;
-passes -> msgs;
-passes -> platform;
-passes -> os;
-passes -> condsyms;
-passes -> idents;
-passes -> rnimsyn;
-passes -> types;
-passes -> extccomp;
-passes -> math;
-passes -> magicsys;
-passes -> nversion;
-passes -> nimsets;
-passes -> syntaxes;
-passes -> times;
-passes -> rodread;
-treetab -> nhashes;
-treetab -> ast;
-treetab -> astalgo;
-treetab -> types;
-semdata -> strutils;
-semdata -> lists;
-semdata -> options;
-semdata -> scanner;
-semdata -> ast;
-semdata -> astalgo;
-semdata -> trees;
-semdata -> treetab;
-semdata -> wordrecg;
-semdata -> ropes;
-semdata -> msgs;
-semdata -> platform;
-semdata -> os;
-semdata -> condsyms;
-semdata -> idents;
-semdata -> rnimsyn;
-semdata -> types;
-semdata -> extccomp;
-semdata -> math;
-semdata -> magicsys;
-semdata -> nversion;
-semdata -> nimsets;
-semdata -> pnimsyn;
-semdata -> times;
-semdata -> passes;
-semdata -> rodread;
-lookups -> ast;
-lookups -> astalgo;
-lookups -> idents;
-lookups -> semdata;
-lookups -> types;
-lookups -> msgs;
-lookups -> options;
-lookups -> rodread;
-lookups -> rnimsyn;
-importer -> strutils;
-importer -> os;
-importer -> ast;
-importer -> astalgo;
-importer -> msgs;
-importer -> options;
-importer -> idents;
-importer -> rodread;
-importer -> lookups;
-importer -> semdata;
-importer -> passes;
-rodwrite -> os;
-rodwrite -> options;
-rodwrite -> strutils;
-rodwrite -> nversion;
-rodwrite -> ast;
-rodwrite -> astalgo;
-rodwrite -> msgs;
-rodwrite -> platform;
-rodwrite -> condsyms;
-rodwrite -> ropes;
-rodwrite -> idents;
-rodwrite -> crc;
-rodwrite -> rodread;
-rodwrite -> passes;
-rodwrite -> importer;
-semfold -> strutils;
-semfold -> lists;
-semfold -> options;
-semfold -> ast;
-semfold -> astalgo;
-semfold -> trees;
-semfold -> treetab;
-semfold -> nimsets;
-semfold -> times;
-semfold -> nversion;
-semfold -> platform;
-semfold -> math;
-semfold -> msgs;
-semfold -> os;
-semfold -> condsyms;
-semfold -> idents;
-semfold -> rnimsyn;
-semfold -> types;
-evals -> strutils;
-evals -> magicsys;
-evals -> lists;
-evals -> options;
-evals -> ast;
-evals -> astalgo;
-evals -> trees;
-evals -> treetab;
-evals -> nimsets;
-evals -> msgs;
-evals -> os;
-evals -> condsyms;
-evals -> idents;
-evals -> rnimsyn;
-evals -> types;
-evals -> passes;
-evals -> semfold;
-procfind -> ast;
-procfind -> astalgo;
-procfind -> msgs;
-procfind -> semdata;
-procfind -> types;
-procfind -> trees;
-pragmas -> os;
-pragmas -> platform;
-pragmas -> condsyms;
-pragmas -> ast;
-pragmas -> astalgo;
-pragmas -> idents;
-pragmas -> semdata;
-pragmas -> msgs;
-pragmas -> rnimsyn;
-pragmas -> wordrecg;
-pragmas -> ropes;
-pragmas -> options;
-pragmas -> strutils;
-pragmas -> lists;
-pragmas -> extccomp;
-pragmas -> math;
-pragmas -> magicsys;
-pragmas -> trees;
-sem -> strutils;
-sem -> nhashes;
-sem -> lists;
-sem -> options;
-sem -> scanner;
-sem -> ast;
-sem -> astalgo;
-sem -> trees;
-sem -> treetab;
-sem -> wordrecg;
-sem -> ropes;
-sem -> msgs;
-sem -> os;
-sem -> condsyms;
-sem -> idents;
-sem -> rnimsyn;
-sem -> types;
-sem -> platform;
-sem -> math;
-sem -> magicsys;
-sem -> pnimsyn;
-sem -> nversion;
-sem -> nimsets;
-sem -> semdata;
-sem -> evals;
-sem -> semfold;
-sem -> importer;
-sem -> procfind;
-sem -> lookups;
-sem -> rodread;
-sem -> pragmas;
-sem -> passes;
-rst -> os;
-rst -> msgs;
-rst -> strutils;
-rst -> platform;
-rst -> nhashes;
-rst -> ropes;
-rst -> options;
-highlite -> nhashes;
-highlite -> options;
-highlite -> msgs;
-highlite -> strutils;
-highlite -> platform;
-highlite -> idents;
-highlite -> lexbase;
-highlite -> wordrecg;
-highlite -> scanner;
-docgen -> ast;
-docgen -> astalgo;
-docgen -> strutils;
-docgen -> nhashes;
-docgen -> options;
-docgen -> nversion;
-docgen -> msgs;
-docgen -> os;
-docgen -> ropes;
-docgen -> idents;
-docgen -> wordrecg;
-docgen -> math;
-docgen -> syntaxes;
-docgen -> rnimsyn;
-docgen -> scanner;
-docgen -> rst;
-docgen -> times;
-docgen -> highlite;
-ccgutils -> ast;
-ccgutils -> astalgo;
-ccgutils -> ropes;
-ccgutils -> lists;
-ccgutils -> nhashes;
-ccgutils -> strutils;
-ccgutils -> types;
-ccgutils -> msgs;
-cgmeth -> options;
-cgmeth -> ast;
-cgmeth -> astalgo;
-cgmeth -> msgs;
-cgmeth -> idents;
-cgmeth -> rnimsyn;
-cgmeth -> types;
-cgmeth -> magicsys;
-cgen -> ast;
-cgen -> astalgo;
-cgen -> strutils;
-cgen -> nhashes;
-cgen -> trees;
-cgen -> platform;
-cgen -> magicsys;
-cgen -> extccomp;
-cgen -> options;
-cgen -> nversion;
-cgen -> nimsets;
-cgen -> msgs;
-cgen -> crc;
-cgen -> bitsets;
-cgen -> idents;
-cgen -> lists;
-cgen -> types;
-cgen -> ccgutils;
-cgen -> os;
-cgen -> times;
-cgen -> ropes;
-cgen -> math;
-cgen -> passes;
-cgen -> rodread;
-cgen -> wordrecg;
-cgen -> rnimsyn;
-cgen -> treetab;
-cgen -> cgmeth;
-jsgen -> ast;
-jsgen -> astalgo;
-jsgen -> strutils;
-jsgen -> nhashes;
-jsgen -> trees;
-jsgen -> platform;
-jsgen -> magicsys;
-jsgen -> extccomp;
-jsgen -> options;
-jsgen -> nversion;
-jsgen -> nimsets;
-jsgen -> msgs;
-jsgen -> crc;
-jsgen -> bitsets;
-jsgen -> idents;
-jsgen -> lists;
-jsgen -> types;
-jsgen -> os;
-jsgen -> times;
-jsgen -> ropes;
-jsgen -> math;
-jsgen -> passes;
-jsgen -> ccgutils;
-jsgen -> wordrecg;
-jsgen -> rnimsyn;
-jsgen -> rodread;
-interact -> llstream;
-interact -> strutils;
-interact -> ropes;
-interact -> nstrtabs;
-interact -> msgs;
-passaux -> strutils;
-passaux -> ast;
-passaux -> astalgo;
-passaux -> passes;
-passaux -> msgs;
-passaux -> options;
-depends -> os;
-depends -> options;
-depends -> ast;
-depends -> astalgo;
-depends -> msgs;
-depends -> ropes;
-depends -> idents;
-depends -> passes;
-depends -> importer;
-transf -> strutils;
-transf -> lists;
-transf -> options;
-transf -> ast;
-transf -> astalgo;
-transf -> trees;
-transf -> treetab;
-transf -> evals;
-transf -> msgs;
-transf -> os;
-transf -> idents;
-transf -> rnimsyn;
-transf -> types;
-transf -> passes;
-transf -> semfold;
-transf -> magicsys;
-transf -> cgmeth;
-main -> llstream;
-main -> strutils;
-main -> ast;
-main -> astalgo;
-main -> scanner;
-main -> syntaxes;
-main -> rnimsyn;
-main -> options;
-main -> msgs;
-main -> os;
-main -> lists;
-main -> condsyms;
-main -> paslex;
-main -> pasparse;
-main -> rodread;
-main -> rodwrite;
-main -> ropes;
-main -> trees;
-main -> wordrecg;
-main -> sem;
-main -> semdata;
-main -> idents;
-main -> passes;
-main -> docgen;
-main -> extccomp;
-main -> cgen;
-main -> jsgen;
-main -> platform;
-main -> interact;
-main -> nimconf;
-main -> importer;
-main -> passaux;
-main -> depends;
-main -> transf;
-main -> evals;
-main -> types;
-parseopt -> os;
-parseopt -> strutils;
-nimrod -> times;
-nimrod -> commands;
-nimrod -> scanner;
-nimrod -> condsyms;
-nimrod -> options;
-nimrod -> msgs;
-nimrod -> nversion;
-nimrod -> nimconf;
-nimrod -> ropes;
-nimrod -> extccomp;
-nimrod -> strutils;
-nimrod -> os;
-nimrod -> platform;
-nimrod -> main;
-nimrod -> parseopt;
-}
diff --git a/compiler/nimrod.nim b/compiler/nimrod.nim
index 3fa80cebb..2bc94e3f8 100644
--- a/compiler/nimrod.nim
+++ b/compiler/nimrod.nim
@@ -13,9 +13,9 @@ when defined(gcc) and defined(windows):
   else:
     {.link: "icons/nimrod_icon.o".}
 
-import 
-  commands, lexer, condsyms, options, msgs, nversion, nimconf, ropes, 
-  extccomp, strutils, os, platform, main, parseopt, service
+import
+  commands, lexer, condsyms, options, msgs, nversion, nimconf, ropes,
+  extccomp, strutils, os, osproc, platform, main, parseopt, service
 
 when hasTinyCBackend:
   import tccgen
@@ -23,7 +23,7 @@ when hasTinyCBackend:
 when defined(profiler) or defined(memProfiler):
   {.hint: "Profiling support is turned on!".}
   import nimprof
-  
+
 proc prependCurDir(f: string): string =
   when defined(unix):
     if os.isAbsolute(f): result = f
@@ -61,12 +61,18 @@ proc HandleCmdLine() =
           tccgen.run()
       if optRun in gGlobalOptions:
         if gCmd == cmdCompileToJS:
-          var ex = quoteIfContainsWhite(
+          var ex = quoteShell(
             completeCFilePath(changeFileExt(gProjectFull, "js").prependCurDir))
           execExternalProgram("node " & ex & ' ' & service.arguments)
         else:
-          var ex = quoteIfContainsWhite(
-            changeFileExt(gProjectFull, exeExt).prependCurDir)
+          var binPath: string
+          if options.outFile.len > 0:
+            # If the user specified an outFile path, use that directly.
+            binPath = options.outFile.prependCurDir
+          else:
+            # Figure out ourselves a valid binary name.
+            binPath = changeFileExt(gProjectFull, exeExt).prependCurDir
+          var ex = quoteShell(binPath)
           execExternalProgram(ex & ' ' & service.arguments)
 
 when defined(GC_setMaxPause):
@@ -76,5 +82,7 @@ when compileOption("gc", "v2") or compileOption("gc", "refc"):
   # the new correct mark&sweet collector is too slow :-/
   GC_disableMarkAndSweep()
 condsyms.InitDefines()
-HandleCmdLine()
-quit(int8(msgs.gErrorCounter > 0))
+
+when not defined(selftest):
+  HandleCmdLine()
+  quit(int8(msgs.gErrorCounter > 0))
diff --git a/compiler/nimrod.cfg b/compiler/nimrod.nimrod.cfg
index ac8f732f1..9fa1b8cba 100644
--- a/compiler/nimrod.cfg
+++ b/compiler/nimrod.nimrod.cfg
@@ -11,4 +11,5 @@ path:"$projectPath/.."
 path:"$lib/packages/docutils"
 
 define:booting
+import:testability
 
diff --git a/compiler/options.nim b/compiler/options.nim
index ea6b91321..c62744485 100644
--- a/compiler/options.nim
+++ b/compiler/options.nim
@@ -111,6 +111,7 @@ var
   gDirtyBufferIdx* = 0'i32    # indicates the fileIdx of the dirty version of
                               # the tracked source X, saved by the CAAS client.
   gDirtyOriginalIdx* = 0'i32  # the original source file of the dirtified buffer.
+  gNoBabelPath* = false
 
 proc importantComments*(): bool {.inline.} = gCmd in {cmdDoc, cmdIdeTools}
 proc usesNativeGC*(): bool {.inline.} = gSelectedGC >= gcRefc
@@ -132,6 +133,7 @@ const
   NimExt* = "nim"
   RodExt* = "rod"
   HtmlExt* = "html"
+  JsonExt* = "json"
   TexExt* = "tex"
   IniExt* = "ini"
   DefaultConfig* = "nimrod.cfg"
diff --git a/compiler/pragmas.nim b/compiler/pragmas.nim
index 8c2425de3..6f1e7af25 100644
--- a/compiler/pragmas.nim
+++ b/compiler/pragmas.nim
@@ -43,7 +43,8 @@ const
     wFatal, wDefine, wUndef, wCompile, wLink, wLinkSys, wPure, wPush, wPop,
     wBreakpoint, wWatchpoint, wPassL, wPassC, wDeadCodeElim, wDeprecated,
     wFloatChecks, wInfChecks, wNanChecks, wPragma, wEmit, wUnroll,
-    wLinearScanEnd, wPatterns, wEffects, wNoForward, wComputedGoto}
+    wLinearScanEnd, wPatterns, wEffects, wNoForward, wComputedGoto,
+    wInjectStmt}
   lambdaPragmas* = {FirstCallConv..LastCallConv, wImportc, wExportc, wNodecl, 
     wNosideEffect, wSideEffect, wNoreturn, wDynLib, wHeader, 
     wDeprecated, wExtern, wThread, wImportcpp, wImportobjc, wNoStackFrame,
@@ -722,6 +723,11 @@ proc singlePragma(c: PContext, sym: PSym, n: PNode, i: int,
         of wOperator:
           if sym == nil: invalidPragma(it)
           else: sym.position = expectIntLit(c, it)
+        of wInjectStmt:
+          if it.kind != nkExprColonExpr:
+            localError(it.info, errExprExpected)
+          else: 
+            it.sons[1] = c.semExpr(c, it.sons[1])
         else: invalidPragma(it)
       else: invalidPragma(it)
   else: processNote(c, it)
diff --git a/compiler/renderer.nim b/compiler/renderer.nim
index f6fb0f8c0..61babed66 100644
--- a/compiler/renderer.nim
+++ b/compiler/renderer.nim
@@ -421,10 +421,11 @@ proc lsub(n: PNode): int =
   of nkElifExpr: result = lsons(n) + len("_elif_:_")
   of nkElseExpr: result = lsub(n.sons[0]) + len("_else:_") # type descriptions
   of nkTypeOfExpr: result = lsub(n.sons[0]) + len("type_")
-  of nkRefTy: result = lsub(n.sons[0]) + len("ref_")
-  of nkPtrTy: result = lsub(n.sons[0]) + len("ptr_")
-  of nkVarTy: result = lsub(n.sons[0]) + len("var_")
-  of nkDistinctTy: result = lsub(n.sons[0]) + len("Distinct_")
+  of nkRefTy: result = (if n.len > 0: lsub(n.sons[0])+1 else: 0) + len("ref")
+  of nkPtrTy: result = (if n.len > 0: lsub(n.sons[0])+1 else: 0) + len("ptr")
+  of nkVarTy: result = (if n.len > 0: lsub(n.sons[0])+1 else: 0) + len("var")
+  of nkDistinctTy: result = (if n.len > 0: lsub(n.sons[0])+1 else: 0) +
+                                                               len("Distinct")
   of nkTypeDef: result = lsons(n) + 3
   of nkOfInherit: result = lsub(n.sons[0]) + len("of_")
   of nkProcTy: result = lsons(n) + len("proc_")
diff --git a/compiler/ropes.nim b/compiler/ropes.nim
index 707c29123..ce81aae37 100644
--- a/compiler/ropes.nim
+++ b/compiler/ropes.nim
@@ -283,11 +283,10 @@ proc ropef(frmt: TFormatStr, args: varargs[PRope]): PRope =
   assert(RopeInvariant(result))
 
 {.push stack_trace: off, line_trace: off.}
-proc `~`*(r: expr[string]): PRope =
+proc `~`*(r: string): PRope =
   # this is the new optimized "to rope" operator
   # the mnemonic is that `~` looks a bit like a rope :)
-  var r {.global.} = r.ropef
-  return r
+  return r.ropef
 {.pop.}
 
 proc appf(c: var PRope, frmt: TFormatStr, args: varargs[PRope]) = 
diff --git a/compiler/sem.nim b/compiler/sem.nim
index ea53afbeb..3ace623bc 100644
--- a/compiler/sem.nim
+++ b/compiler/sem.nim
@@ -90,6 +90,24 @@ proc commonType*(x, y: PType): PType =
     let idx = ord(b.kind in {tyArray, tyArrayConstr})
     if a.sons[idx].kind == tyEmpty: return y
     #elif b.sons[idx].kind == tyEmpty: return x
+  elif a.kind == tyRange and b.kind == tyRange:
+    # consider:  (range[0..3], range[0..4]) here. We should make that
+    # range[0..4]. But then why is (range[0..4], 6) not range[0..6]?
+    # But then why is (2,4) not range[2..4]? But I think this would break
+    # too much code. So ... it's the same range or the base type. This means
+    #  type(if b: 0 else 1) == int and not range[0..1]. For now. In the long
+    # run people expect ranges to work properly within a tuple.
+    if not sameType(a, b):
+      result = skipTypes(a, {tyRange}).skipIntLit
+    when false:
+      if a.kind != tyRange and b.kind == tyRange:
+        # XXX This really needs a better solution, but a proper fix now breaks
+        # code.
+        result = a #.skipIntLit
+      elif a.kind == tyRange and b.kind != tyRange:
+        result = b #.skipIntLit
+      elif a.kind in IntegralTypes and a.n != nil:
+        result = a #.skipIntLit
   else:
     var k = tyNone
     if a.kind in {tyRef, tyPtr}:
@@ -103,7 +121,7 @@ proc commonType*(x, y: PType): PType =
       if result.isNil: return x
       if k != tyNone:
         let r = result
-        result = NewType(k, r.owner)
+        result = newType(k, r.owner)
         result.addSonSkipIntLit(r)
 
 proc isTopLevel(c: PContext): bool {.inline.} = 
@@ -140,26 +158,27 @@ proc IsOpImpl(c: PContext, n: PNode): PNode
 proc semMacroExpr(c: PContext, n, nOrig: PNode, sym: PSym,
                   semCheck: bool = true): PNode
 
-proc symFromType(t: PType, info: TLineInfo): PSym =
-  if t.sym != nil: return t.sym
-  result = newSym(skType, getIdent"AnonType", t.owner, info)
-  result.flags.incl sfAnon
-  result.typ = t
+when false:
+  proc symFromType(t: PType, info: TLineInfo): PSym =
+    if t.sym != nil: return t.sym
+    result = newSym(skType, getIdent"AnonType", t.owner, info)
+    result.flags.incl sfAnon
+    result.typ = t
 
-proc symNodeFromType(c: PContext, t: PType, info: TLineInfo): PNode =
-  result = newSymNode(symFromType(t, info), info)
-  result.typ = makeTypeDesc(c, t)
+  proc symNodeFromType(c: PContext, t: PType, info: TLineInfo): PNode =
+    result = newSymNode(symFromType(t, info), info)
+    result.typ = makeTypeDesc(c, t)
 
 proc createEvalContext(c: PContext, mode: TEvalMode): PEvalContext =
   result = newEvalContext(c.module, mode)
   result.getType = proc (n: PNode): PNode =
-    var e = tryExpr(c, n)
-    if e == nil:
-      result = symNodeFromType(c, errorType(c), n.info)
-    elif e.typ == nil:
+    result = tryExpr(c, n)
+    if result == nil:
+      result = newSymNode(errorSym(c, n))
+    elif result.typ == nil:
       result = newSymNode(getSysSym"void")
     else:
-      result = symNodeFromType(c, e.typ, n.info)
+      result.typ = makeTypeDesc(c, result.typ)
 
   result.handleIsOperator = proc (n: PNode): PNode =
     result = IsOpImpl(c, n)
@@ -210,7 +229,8 @@ proc semAfterMacroCall(c: PContext, n: PNode, s: PSym): PNode =
     of tyTypeDesc:
       if n.kind == nkStmtList: result.kind = nkStmtListType
       var typ = semTypeNode(c, result, nil)
-      result = symNodeFromType(c, typ, n.info)
+      result.typ = makeTypeDesc(c, typ)
+      #result = symNodeFromType(c, typ, n.info)
     else:
       result = semExpr(c, result)
       result = fitNode(c, s.typ.sons[0], result)
diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim
index 337224aef..310aabc32 100644
--- a/compiler/semexprs.nim
+++ b/compiler/semexprs.nim
@@ -191,7 +191,7 @@ proc isCastable(dst, src: PType): bool =
 proc isSymChoice(n: PNode): bool {.inline.} =
   result = n.kind in nkSymChoices
 
-proc semConv(c: PContext, n: PNode, s: PSym): PNode =
+proc semConv(c: PContext, n: PNode): PNode =
   if sonsLen(n) != 2:
     LocalError(n.info, errConvNeedsOneArg)
     return n
@@ -322,7 +322,7 @@ proc isOpImpl(c: PContext, n: PNode): PNode =
     var match: bool
     let t2 = n[2].typ
     case t2.kind
-    of tyTypeClass:
+    of tyTypeClasses:
       var m: TCandidate
       InitCandidate(m, t2)
       match = matchUserTypeClass(c, m, emptyNode, t2, t1) != nil
@@ -508,7 +508,7 @@ proc fixAbstractType(c: PContext, n: PNode) =
         changeType(it.sons[1], s, check=true)
         n.sons[i] = it.sons[1]
     of nkBracket: 
-      # an implicitely constructed array (passed to an open array):
+      # an implicitly constructed array (passed to an open array):
       n.sons[i] = semArrayConstr(c, it, {})
     else: 
       nil
@@ -738,8 +738,7 @@ proc semIndirectOp(c: PContext, n: PNode, flags: TExprFlags): PNode =
   elif t != nil and t.kind == tyTypeDesc:
     if n.len == 1: return semObjConstr(c, n, flags)
     let destType = t.skipTypes({tyTypeDesc, tyGenericInst})
-    result = semConv(c, n, symFromType(destType, n.info))
-    return
+    return semConv(c, n)
   else:
     result = overloadedCallOpr(c, n)
     # Now that nkSym does not imply an iteration over the proc/iterator space,
@@ -1048,7 +1047,9 @@ proc semSubscript(c: PContext, n: PNode, flags: TExprFlags): PNode =
     # The result so far is a tyTypeDesc bound 
     # a tyGenericBody. The line below will substitute
     # it with the instantiated type.
-    result = symNodeFromType(c, semTypeNode(c, n, nil), n.info)
+    result = n
+    result.typ = makeTypeDesc(c, semTypeNode(c, n, nil))
+    #result = symNodeFromType(c, semTypeNode(c, n, nil), n.info)
   of tyTuple: 
     checkSonsLen(n, 2)
     n.sons[0] = makeDeref(n.sons[0])
@@ -1883,7 +1884,8 @@ proc semExpr(c: PContext, n: PNode, flags: TExprFlags = {}): PNode =
     result = semExpr(c, n.sons[0], flags)
   of nkTypeOfExpr, nkTupleTy, nkRefTy..nkEnumTy:
     var typ = semTypeNode(c, n, nil).skipTypes({tyTypeDesc})
-    result = symNodeFromType(c, typ, n.info)
+    result.typ = makeTypeDesc(c, typ)
+    #result = symNodeFromType(c, typ, n.info)
   of nkCall, nkInfix, nkPrefix, nkPostfix, nkCommand, nkCallStrLit: 
     # check if it is an expression macro:
     checkMinSonsLen(n, 1)
@@ -1906,7 +1908,7 @@ proc semExpr(c: PContext, n: PNode, flags: TExprFlags = {}): PNode =
       of skType:
         # XXX think about this more (``set`` procs)
         if n.len == 2:
-          result = semConv(c, n, s)
+          result = semConv(c, n)
         elif n.len == 1:
           result = semObjConstr(c, n, flags)
         elif Contains(c.AmbiguousSymbols, s.id): 
diff --git a/compiler/seminst.nim b/compiler/seminst.nim
index 0cf5086a8..d7d64fd54 100644
--- a/compiler/seminst.nim
+++ b/compiler/seminst.nim
@@ -20,7 +20,8 @@ proc instantiateGenericParamList(c: PContext, n: PNode, pt: TIdTable,
     if a.kind != nkSym: 
       InternalError(a.info, "instantiateGenericParamList; no symbol")
     var q = a.sym
-    if q.typ.kind notin {tyTypeDesc, tyGenericParam, tyTypeClass, tyExpr}: continue
+    if q.typ.kind notin {tyTypeDesc, tyGenericParam, tyExpr}+tyTypeClasses:
+      continue
     var s = newSym(skType, q.name, getCurrOwner(), q.info)
     s.flags = s.flags + {sfUsed, sfFromGeneric}
     var t = PType(IdTableGet(pt, q.typ))
@@ -193,7 +194,7 @@ proc fixupProcType(c: PContext, genericType: PType,
   if result == nil: return
 
   case genericType.kind
-  of tyGenericParam, tyTypeClass:
+  of tyGenericParam, tyTypeClasses:
     result = inst.concreteTypes[genericType.sym.position]
   of tyTypeDesc:
     result = inst.concreteTypes[genericType.sym.position]
diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim
index da8ba50a8..a1805fdec 100644
--- a/compiler/semstmts.nim
+++ b/compiler/semstmts.nim
@@ -1087,6 +1087,8 @@ proc semIterator(c: PContext, n: PNode): PNode =
   # -- at least for 0.9.2.
   if s.typ.callConv == ccClosure:
     incl(s.typ.flags, tfCapturesEnv)
+  else:
+    s.typ.callConv = ccInline
   when false:
     if s.typ.callConv != ccInline: 
       s.typ.callConv = ccClosure
diff --git a/compiler/semthreads.nim b/compiler/semthreads.nim
index 595ab0454..eded99325 100644
--- a/compiler/semthreads.nim
+++ b/compiler/semthreads.nim
@@ -380,7 +380,8 @@ proc analyseThreadProc*(prc: PSym) =
   var formals = skipTypes(prc.typ, abstractInst).n
   for i in 1 .. formals.len-1:
     var formal = formals.sons[i].sym 
-    c.mapping[formal.id] = toTheirs # thread receives foreign data!
+    # the input is copied and belongs to the thread:
+    c.mapping[formal.id] = toMine
   discard analyse(c, prc.getBody)
 
 proc needsGlobalAnalysis*: bool =
diff --git a/compiler/semtypes.nim b/compiler/semtypes.nim
index 92f47f585..6c9c476d9 100644
--- a/compiler/semtypes.nim
+++ b/compiler/semtypes.nim
@@ -676,8 +676,13 @@ proc liftParamType(c: PContext, procKind: TSymKind, genericParams: PNode,
       if lifted != nil:
         paramType.sons[i] = lifted
         result = paramType
-    
-    if result != nil:
+
+    if paramType.lastSon.kind == tyTypeClass:
+      result = paramType
+      result.kind = tyParametricTypeClass
+      result = addImplicitGeneric(copyType(result,
+                                           getCurrOwner(), false))
+    elif result != nil:
       result.kind = tyGenericInvokation
       result.sons.setLen(result.sons.len - 1)
   of tyTypeClass:
diff --git a/compiler/sigmatch.nim b/compiler/sigmatch.nim
index 00f3b2b10..cacf4782e 100644
--- a/compiler/sigmatch.nim
+++ b/compiler/sigmatch.nim
@@ -203,7 +203,7 @@ proc describeArgs*(c: PContext, n: PNode, startIdx = 1): string =
     add(result, argTypeToString(arg))
     if i != sonsLen(n) - 1: add(result, ", ")
 
-proc typeRel*(c: var TCandidate, f, a: PType): TTypeRelation
+proc typeRel*(c: var TCandidate, f, a: PType, doBind = true): TTypeRelation
 proc concreteType(c: TCandidate, t: PType): PType = 
   case t.kind
   of tyArrayConstr: 
@@ -213,7 +213,7 @@ proc concreteType(c: TCandidate, t: PType): PType =
     addSonSkipIntLit(result, t.sons[1]) # XXX: semantic checking for the type?
   of tyNil:
     result = nil              # what should it be?
-  of tyGenericParam: 
+  of tyGenericParam, tyAnything:
     result = t
     while true: 
       result = PType(idTableGet(c.bindings, t))
@@ -385,8 +385,23 @@ proc typeRangeRel(f, a: PType): TTypeRelation {.noinline.} =
   else:
     result = isNone
 
-proc typeRel(c: var TCandidate, f, a: PType): TTypeRelation = 
-  # is a subtype of f?
+proc typeRel(c: var TCandidate, f, a: PType, doBind = true): TTypeRelation =
+  # typeRel can be used to establish various relationships between types:
+  #
+  # 1) When used with concrete types, it will check for type equivalence
+  # or a subtype relationship. 
+  #
+  # 2) When used with a concrete type against a type class (such as generic
+  # signature of a proc), it will check whether the concrete type is a member
+  # of the designated type class.
+  #
+  # 3) When used with two type classes, it will check whether the types
+  # matching the first type class are a strict subset of the types matching
+  # the other. This allows us to compare the signatures of generic procs in
+  # order to give preferrence to the most specific one:
+  #
+  # seq[seq[any]] is a strict subset of seq[any] and hence more specific.
+  
   result = isNone
   assert(f != nil)
   assert(a != nil)
@@ -397,6 +412,50 @@ proc typeRel(c: var TCandidate, f, a: PType): TTypeRelation =
     return typeRel(c, f, lastSon(a))
   if a.kind == tyVar and f.kind != tyVar:
     return typeRel(c, f, a.sons[0])
+  
+  template bindingRet(res) =
+    when res == isGeneric: put(c.bindings, f, a)
+    return res
+ 
+  case a.kind
+  of tyOr:
+    # seq[int|string] vs seq[number]
+    # both int and string must match against number
+    for branch in a.sons:
+      if typeRel(c, f, branch, false) == isNone:
+        return isNone
+
+    return isGeneric
+
+  of tyAnd:
+    # seq[Sortable and Iterable] vs seq[Sortable]
+    # only one match is enough
+    for branch in a.sons:
+      if typeRel(c, f, branch, false) != isNone:
+        return isGeneric
+
+    return isNone
+
+  of tyNot:
+    case f.kind
+    of tyNot:
+      # seq[!int] vs seq[!number]
+      # seq[float] matches the first, but not the second
+      # we must turn the problem around:
+      # is number a subset of int? 
+      return typeRel(c, a.lastSon, f.lastSon)
+ 
+    else:
+      # negative type classes are essentially infinite,
+      # so only the `any` type class is their superset
+      return if f.kind == tyAnything: isGeneric
+             else: isNone
+
+  of tyAnything:
+    return if f.kind == tyAnything: isGeneric
+           else: isNone
+  else: nil
+
   case f.kind
   of tyEnum: 
     if a.kind == f.kind and sameEnumTypes(f, a): result = isEqual
@@ -485,9 +544,12 @@ proc typeRel(c: var TCandidate, f, a: PType): TTypeRelation =
   of tyOrdinal:
     if isOrdinalType(a):
       var x = if a.kind == tyOrdinal: a.sons[0] else: a
-      
-      result = typeRel(c, f.sons[0], x)
-      if result < isGeneric: result = isNone
+     
+      if f.sonsLen == 0:
+        result = isGeneric
+      else:
+        result = typeRel(c, f.sons[0], x)
+        if result < isGeneric: result = isNone
     elif a.kind == tyGenericParam:
       result = isGeneric
   of tyForward: InternalError("forward type in typeRel()")
@@ -574,13 +636,17 @@ proc typeRel(c: var TCandidate, f, a: PType): TTypeRelation =
           (a.sons[1].kind == tyChar): 
         result = isConvertible
     else: nil
-  of tyEmpty: 
+
+  of tyEmpty:
     if a.kind == tyEmpty: result = isEqual
-  of tyGenericInst: 
+
+  of tyGenericInst:
     result = typeRel(c, lastSon(f), a)
-  of tyGenericBody: 
+
+  of tyGenericBody:
     let ff = lastSon(f)
     if ff != nil: result = typeRel(c, ff, a)
+
   of tyGenericInvokation:
     var x = a.skipGenericAlias
     if x.kind == tyGenericInvokation or f.sons[0].kind != tyGenericBody:
@@ -604,6 +670,38 @@ proc typeRel(c: var TCandidate, f, a: PType): TTypeRelation =
           if x == nil or x.kind in {tyGenericInvokation, tyGenericParam}:
             InternalError("wrong instantiated type!")
           put(c.bindings, f.sons[i], x)
+  
+  of tyAnd:
+    for branch in f.sons:
+      if typeRel(c, branch, a) == isNone:
+        return isNone
+
+    bindingRet isGeneric
+
+  of tyOr:
+    for branch in f.sons:
+      if typeRel(c, branch, a) != isNone:
+        bindingRet isGeneric
+
+    return isNone
+
+  of tyNot:
+    for branch in f.sons:
+      if typeRel(c, branch, a) != isNone:
+        return isNone
+    
+    bindingRet isGeneric
+
+  of tyAnything:
+    var prev = PType(idTableGet(c.bindings, f))
+    if prev == nil:
+      var concrete = concreteType(c, a)
+      if concrete != nil and doBind:
+        put(c.bindings, f, concrete)
+      return isGeneric
+    else:
+      return typeRel(c, prev, a)
+    
   of tyGenericParam, tyTypeClass:
     var x = PType(idTableGet(c.bindings, f))
     if x == nil:
@@ -634,7 +732,7 @@ proc typeRel(c: var TCandidate, f, a: PType): TTypeRelation =
         if concrete == nil:
           result = isNone
         else:
-          put(c.bindings, f, concrete)
+          if doBind: put(c.bindings, f, concrete)
     elif a.kind == tyEmpty:
       result = isGeneric
     elif x.kind == tyGenericParam:
@@ -809,8 +907,8 @@ proc ParamTypesMatchAux(c: PContext, m: var TCandidate, f, argType: PType,
         InternalAssert a.len > 0
         r = typeRel(m, f.lastSon, a.lastSon)
       else:
-        let match = matchTypeClass(m, fMaybeExpr, a)
-        if match != isGeneric: r = isNone
+        let match = matchTypeClass(m.bindings, fMaybeExpr, a)
+        if not match: r = isNone
         else:
           # XXX: Ideally, this should happen much earlier somewhere near 
           # semOpAux, but to do that, we need to be able to query the 
@@ -827,7 +925,7 @@ proc ParamTypesMatchAux(c: PContext, m: var TCandidate, f, argType: PType,
         
     if r == isGeneric:
       put(m.bindings, f, arg.typ)
-  of tyTypeClass:
+  of tyTypeClass, tyParametricTypeClass:
     if fMaybeExpr.n != nil:
       let match = matchUserTypeClass(c, m, arg, fMaybeExpr, a)
       if match != nil:
@@ -1130,7 +1228,7 @@ proc matches*(c: PContext, n, nOrig: PNode, m: var TCandidate) =
   var f = 1
   while f < sonsLen(m.callee.n):
     var formal = m.callee.n.sons[f].sym
-    if not ContainsOrIncl(marker, formal.position): 
+    if not ContainsOrIncl(marker, formal.position):
       if formal.ast == nil:
         if formal.typ.kind == tyVarargs:
           var container = newNodeIT(nkBracket, n.info, arrayConstr(c, n.info))
@@ -1145,7 +1243,7 @@ proc matches*(c: PContext, n, nOrig: PNode, m: var TCandidate) =
         setSon(m.call, formal.position + 1, copyTree(formal.ast))
     inc(f)
 
-proc argtypeMatches*(c: PContext, f, a: PType): bool = 
+proc argtypeMatches*(c: PContext, f, a: PType): bool =
   var m: TCandidate
   initCandidate(m, f)
   let res = paramTypesMatch(c, m, f, a, ast.emptyNode, nil)
@@ -1155,3 +1253,121 @@ proc argtypeMatches*(c: PContext, f, a: PType): bool =
   result = res != nil
 
 include suggest
+
+tests:
+  var dummyOwner = newSym(skModule, getIdent("test_module"), nil, UnknownLineInfo())
+  
+  proc `|` (t1, t2: PType): PType =
+    result = newType(tyOr, dummyOwner)
+    result.rawAddSon(t1)
+    result.rawAddSon(t2)
+
+  proc `&` (t1, t2: PType): PType =
+    result = newType(tyAnd, dummyOwner)
+    result.rawAddSon(t1)
+    result.rawAddSon(t2)
+
+  proc `!` (t: PType): PType =
+    result = newType(tyNot, dummyOwner)
+    result.rawAddSon(t)
+
+  proc seq(t: PType): PType =
+    result = newType(tySequence, dummyOwner)
+    result.rawAddSon(t)
+
+  proc array(x: int, t: PType): PType =
+    result = newType(tyArray, dummyOwner)
+    
+    var n = newNodeI(nkRange, UnknownLineInfo())
+    addSon(n, newIntNode(nkIntLit, 0))
+    addSon(n, newIntNode(nkIntLit, x))
+    let range = newType(tyRange, dummyOwner)
+    
+    result.rawAddSon(range)
+    result.rawAddSon(t)
+
+  suite "type classes":
+    let
+      int = newType(tyInt, dummyOwner)
+      float = newType(tyFloat, dummyOwner)
+      string = newType(tyString, dummyOwner)
+      ordinal = newType(tyOrdinal, dummyOwner)
+      any = newType(tyAnything, dummyOwner)
+      number = int | float
+
+    var TFoo = newType(tyObject, dummyOwner)
+    TFoo.sym = newSym(skType, getIdent"TFoo", dummyOwner, UnknownLineInfo())
+
+    var T1 = newType(tyGenericParam, dummyOwner)
+    T1.sym = newSym(skType, getIdent"T1", dummyOwner, UnknownLineInfo())
+    T1.sym.position = 0
+
+    var T2 = newType(tyGenericParam, dummyOwner)
+    T2.sym = newSym(skType, getIdent"T2", dummyOwner, UnknownLineInfo())
+    T2.sym.position = 1
+
+    setup:
+      var c: TCandidate
+      InitCandidate(c, nil)
+
+    template yes(x, y) =
+      test astToStr(x) & " is " & astToStr(y):
+        check typeRel(c, y, x) == isGeneric
+
+    template no(x, y) =
+      test astToStr(x) & " is not " & astToStr(y):
+        check typeRel(c, y, x) == isNone
+    
+    yes seq(any), array(10, int) | seq(any)
+    # Sure, seq[any] is directly included
+
+    yes seq(int), seq(any)
+    yes seq(int), seq(number)
+    # Sure, the int sequence is certainly
+    # part of the number sequences (and all sequences)
+    
+    no seq(any), seq(float)
+    # Nope, seq[any] includes types that are not seq[float] (e.g. seq[int])
+
+    yes seq(int|string), seq(any)
+    # Sure
+ 
+    yes seq(int&string), seq(any)
+    # Again
+    
+    yes seq(int&string), seq(int)
+    # A bit more complicated
+    # seq[int&string] is not a real type, but it's analogous to
+    # seq[Sortable and Iterable], which is certainly a subset of seq[Sortable]
+
+    no seq(int|string), seq(int|float)
+    # Nope, seq[string] is not included in not included in
+    # the seq[int|float] set
+    
+    no seq(!(int|string)), seq(string)
+    # A sequence that is neither seq[int] or seq[string]
+    # is obviously not seq[string]
+     
+    no seq(!int), seq(number)
+    # Now your head should start to hurt a bit
+    # A sequence that is not seq[int] is not necessarily a number sequence
+    # it could well be seq[string] for example
+    
+    yes seq(!(int|string)), seq(!string)
+    # all sequnece types besides seq[int] and seq[string]
+    # are subset of all sequence types that are not seq[string]
+
+    no seq(!(int|string)), seq(!(string|TFoo))
+    # Nope, seq[TFoo] is included in the first set, but not in the second
+    
+    no seq(!string), seq(!number)
+    # Nope, seq[int] in included in the first set, but not in the second
+
+    yes seq(!number), seq(any)
+    yes seq(!int), seq(any)
+    no seq(any), seq(!any)
+    no seq(!int), seq(!any)
+    
+    yes int, ordinal
+    no  string, ordinal
+
diff --git a/compiler/testability.nim b/compiler/testability.nim
new file mode 100644
index 000000000..ceefd0a5e
--- /dev/null
+++ b/compiler/testability.nim
@@ -0,0 +1,5 @@
+template tests*(body: stmt) {.immediate.} =
+  when defined(selftest):
+    when not defined(unittest): import unittest
+    body
+
diff --git a/compiler/types.nim b/compiler/types.nim
index 4dec9ea2f..7e07a0667 100644
--- a/compiler/types.nim
+++ b/compiler/types.nim
@@ -382,33 +382,34 @@ proc mutateTypeAux(marker: var TIntSet, t: PType, iter: TTypeMutator,
     if t.n != nil: result.n = mutateNode(marker, t.n, iter, closure)
   assert(result != nil)
 
-proc mutateType(t: PType, iter: TTypeMutator, closure: PObject): PType = 
+proc mutateType(t: PType, iter: TTypeMutator, closure: PObject): PType =
   var marker = InitIntSet()
   result = mutateTypeAux(marker, t, iter, closure)
 
-proc ValueToString(a: PNode): string = 
+proc ValueToString(a: PNode): string =
   case a.kind
   of nkCharLit..nkUInt64Lit: result = $(a.intVal)
   of nkFloatLit..nkFloat128Lit: result = $(a.floatVal)
   of nkStrLit..nkTripleStrLit: result = a.strVal
   else: result = "<invalid value>"
 
-proc rangeToStr(n: PNode): string = 
+proc rangeToStr(n: PNode): string =
   assert(n.kind == nkRange)
   result = ValueToString(n.sons[0]) & ".." & ValueToString(n.sons[1])
 
 const 
-  typeToStr: array[TTypeKind, string] = ["None", "bool", "Char", "empty", 
-    "Array Constructor [$1]", "nil", "expr", "stmt", "typeDesc", 
-    "GenericInvokation", "GenericBody", "GenericInst", "GenericParam", 
-    "distinct $1", "enum", "ordinal[$1]", "array[$1, $2]", "object", "tuple", 
-    "set[$1]", "range[$1]", "ptr ", "ref ", "var ", "seq[$1]", "proc", 
+  typeToStr: array[TTypeKind, string] = ["None", "bool", "Char", "empty",
+    "Array Constructor [$1]", "nil", "expr", "stmt", "typeDesc",
+    "GenericInvokation", "GenericBody", "GenericInst", "GenericParam",
+    "distinct $1", "enum", "ordinal[$1]", "array[$1, $2]", "object", "tuple",
+    "set[$1]", "range[$1]", "ptr ", "ref ", "var ", "seq[$1]", "proc",
     "pointer", "OpenArray[$1]", "string", "CString", "Forward",
     "int", "int8", "int16", "int32", "int64",
     "float", "float32", "float64", "float128",
     "uint", "uint8", "uint16", "uint32", "uint64",
     "bignum", "const ",
-    "!", "varargs[$1]", "iter[$1]", "Error Type", "TypeClass"]
+    "!", "varargs[$1]", "iter[$1]", "Error Type", "TypeClass",
+    "ParametricTypeClass", "and", "or", "not", "any"]
 
 proc consToStr(t: PType): string =
   if t.len > 0: result = t.typeToString
@@ -421,7 +422,7 @@ proc constraintsToStr(t: PType): string =
     if i > 0: result.add(sep)
     result.add(t.sons[i].consToStr)
 
-proc TypeToString(typ: PType, prefer: TPreferedDesc = preferName): string = 
+proc TypeToString(typ: PType, prefer: TPreferedDesc = preferName): string =
   var t = typ
   result = ""
   if t == nil: return 
@@ -861,7 +862,7 @@ proc SameTypeAux(x, y: PType, c: var TSameTypeClosure): bool =
   of tyGenericParam, tyGenericInvokation, tyGenericBody, tySequence,
      tyOpenArray, tySet, tyRef, tyPtr, tyVar, tyArrayConstr,
      tyArray, tyProc, tyConst, tyMutable, tyVarargs, tyIter,
-     tyOrdinal, tyTypeClass:
+     tyOrdinal, tyTypeClasses:
     CycleCheck()    
     result = sameChildrenAux(a, b, c) and sameFlags(a, b)
     if result and (a.kind == tyProc):
@@ -1042,7 +1043,7 @@ proc typeAllowedAux(marker: var TIntSet, typ: PType, kind: TSymKind,
     # XXX er ... no? these should not be allowed!
   of tyEmpty:
     result = taField in flags
-  of tyTypeClass:
+  of tyTypeClasses:
     result = true
   of tyGenericBody, tyGenericParam, tyForward, tyNone, tyGenericInvokation:
     result = false
diff --git a/compiler/wordrecg.nim b/compiler/wordrecg.nim
index b37a7bb4f..39b19646e 100644
--- a/compiler/wordrecg.nim
+++ b/compiler/wordrecg.nim
@@ -60,7 +60,7 @@ type
     wPassc, wPassl, wBorrow, wDiscardable,
     wFieldChecks, 
     wWatchPoint, wSubsChar, 
-    wAcyclic, wShallow, wUnroll, wLinearScanEnd, wComputedGoto,
+    wAcyclic, wShallow, wUnroll, wLinearScanEnd, wComputedGoto, wInjectStmt,
     wWrite, wGensym, wInject, wDirty, wInheritable, wThreadVar, wEmit, 
     wNoStackFrame,
     wImplicitStatic, wGlobal, wCodegenDecl,
@@ -142,7 +142,8 @@ const
     "compiletime", "noinit",
     "passc", "passl", "borrow", "discardable", "fieldchecks",
     "watchpoint",
-    "subschar", "acyclic", "shallow", "unroll", "linearscanend", "computedgoto",
+    "subschar", "acyclic", "shallow", "unroll", "linearscanend",
+    "computedgoto", "injectstmt",
     "write", "gensym", "inject", "dirty", "inheritable", "threadvar", "emit",
     "nostackframe", "implicitstatic", "global", "codegendecl",
     
diff --git a/config/nimrod.cfg b/config/nimrod.cfg
index 77cc742b2..37024f3de 100644
--- a/config/nimrod.cfg
+++ b/config/nimrod.cfg
@@ -18,14 +18,14 @@ path="$lib/pure"
 path="$lib/pure/collections"
 path="$lib/impure"
 path="$lib/wrappers"
-path="$lib/wrappers/cairo"
-path="$lib/wrappers/gtk"
-path="$lib/wrappers/lua"
-path="$lib/wrappers/opengl"
+# path="$lib/wrappers/cairo"
+# path="$lib/wrappers/gtk"
+# path="$lib/wrappers/lua"
+# path="$lib/wrappers/opengl"
 path="$lib/wrappers/pcre"
 path="$lib/wrappers/readline"
 path="$lib/wrappers/sdl"
-path="$lib/wrappers/x11"
+# path="$lib/wrappers/x11"
 path="$lib/wrappers/zip"
 path="$lib/windows"
 path="$lib/posix"
diff --git a/doc/idetools.txt b/doc/idetools.txt
index fdc4ebde6..c1eba9e5f 100644
--- a/doc/idetools.txt
+++ b/doc/idetools.txt
@@ -8,6 +8,11 @@
 .. contents::
 
 
+.. raw:: html
+  <blockquote><p>
+  "yes, I'm the creator" -- Araq, 2013-07-26 19:28:32.
+  </p></blockquote>
+
 Nimrod differs from many other compilers in that it is really fast,
 and being so fast makes it suited to provide external queries for
 text editors about the source code being written. Through the
@@ -522,21 +527,6 @@ At the moment idetools support is still in development so the test
 suite is not integrated with the main test suite and you have to
 run it manually. First you have to compile the tester::
 
-	$ cd my/nimrod/checkout
-	$ nimrod c tests/tester.nim
-
-Running the tester without parameters will display some options.
-To run the caas test suite (and other special tests) you need to
-use the `special` command. You need to run this command from the
-root of the checkout or it won't be able to open the required files::
-
-	$ ./tests/tester special
-
-However this is a roundabout way of running the test suite. You can
-also compile and run ``tests/caasdriver.nim`` manually. In fact,
-running it manually will allow you to specify special parameters
-too. Example::
-
 	$ cd my/nimrod/checkout/tests
 	$ nimrod c caasdriver.nim
 
diff --git a/doc/intern.txt b/doc/intern.txt
index 9d9eb66cc..c602e4933 100644
--- a/doc/intern.txt
+++ b/doc/intern.txt
@@ -215,7 +215,7 @@ Backend issues
 - Init procs must not be "forgotten" to be called.
 - Files must not be "forgotten" to be linked.
 - Anything that is contained in ``nim__dat.c`` is shared between modules
-  implicitely.
+  implicitly.
 - Method dispatchers are global.
 - DLL loading via ``dlsym`` is global.
 - Emulated thread vars are global.
diff --git a/doc/manual.txt b/doc/manual.txt
index dabff3d69..0a9aec8d0 100644
--- a/doc/manual.txt
+++ b/doc/manual.txt
@@ -4708,7 +4708,11 @@ fatal pragma
 ------------
 The `fatal`:idx: pragma is used to make the compiler output an error message
 with the given content. In contrast to the ``error`` pragma, compilation
-is guaranteed to be aborted by this pragma.
+is guaranteed to be aborted by this pragma. Example:
+
+.. code-block:: nimrod
+  when not defined(objc):
+    {.fatal: "Compile this program with the objc command!".}
 
 warning pragma
 --------------
@@ -5053,6 +5057,18 @@ Note that this pragma is somewhat of a misnomer: Other backends will provide
 the same feature under the same name.
 
 
+Extern pragma
+-------------
+Like ``exportc`` or ``importc`` the `extern`:idx: pragma affects name
+mangling. The string literal passed to ``extern`` can be a format string:
+
+.. code-block:: Nimrod
+  proc p(s: string) {.extern: "prefix$1".} =
+    echo s
+
+In the example the external name of ``p`` is set to ``prefixp``.
+
+
 Bycopy pragma
 -------------
 
diff --git a/doc/nimrodc.txt b/doc/nimrodc.txt
index d494a0922..f5fbf3ebb 100644
--- a/doc/nimrodc.txt
+++ b/doc/nimrodc.txt
@@ -468,6 +468,19 @@ proc is declared in the generated code:
 
   proc myinterrupt() {.codegenDecl: "__interrupt $# $#$#".} =
     echo "realistic interrupt handler"
+
+
+InjectStmt pragma
+-----------------
+
+The `injectStmt`:idx: pragma can be used to inject a statement before every
+other statement in the current module. It is only supposed to be used for
+debugging:
+
+.. code-block:: nimrod
+  {.injectStmt: gcInvariants().}
+  
+  # ... complex code here that produces crashes ...
 

 

 LineDir option

diff --git a/doc/tut1.txt b/doc/tut1.txt
index 5c1cdb52e..2070c69d6 100644
--- a/doc/tut1.txt
+++ b/doc/tut1.txt
@@ -189,9 +189,18 @@ to a storage location:
   var x = "abc" # introduces a new variable `x` and assigns a value to it
   x = "xyz"     # assigns a new value to `x`
 
-``=`` is the *assignment operator*. The assignment operator cannot
-be overloaded, overwritten or forbidden, but this might change in a future
-version of Nimrod.
+``=`` is the *assignment operator*. The assignment operator cannot be
+overloaded, overwritten or forbidden, but this might change in a future version
+of Nimrod. You can declare multiple variables with a single assignment
+statement and all the variables will have the same value:
+
+.. code-block::
+  var x, y = 3  # assigns 3 to the variables `x` and `y`
+  echo "x ", x  # outputs "x 3"
+  echo "y ", y  # outputs "y 3"
+  x = 42        # changes `x` to 42 without changing `y`
+  echo "x ", x  # outputs "x 42"
+  echo "y ", y  # outputs "y 3"
 
 
 Constants
@@ -1352,6 +1361,45 @@ Even though you don't need to declare a type for a tuple to use it, tuples
 created with different field names will be considered different objects despite
 having the same field types.
 
+Tuples can be *unpacked* during variable assignment (and only then!). This can
+be handy to assign directly the fields of the tuples to individually named
+variables. An example of this is the ``splitFile`` proc from the `os module
+<os.html>`_ which returns the directory, name and extension of a path at the
+same time. For tuple unpacking to work you have to use parenthesis around the
+values you want to assign the unpacking to, otherwise you will be assigning the
+same value to all the individual variables! Example:
+
+.. code-block:: nimrod
+
+  import os
+
+  let
+    path = "usr/local/nimrodc.html"
+    (dir, name, ext) = splitFile(path)
+    baddir, badname, badext = splitFile(path)
+  echo dir      # outputs `usr/local`
+  echo name     # outputs `nimrodc`
+  echo ext      # outputs `.html`
+  # All the following output the same line:
+  # `(dir: usr/local, name: nimrodc, ext: .html)`
+  echo baddir
+  echo badname
+  echo badext
+
+Tuple unpacking **only** works in ``var`` or ``let`` blocks. The following code
+won't compile:
+
+.. code-block:: nimrod
+
+  import os
+
+  var
+    path = "usr/local/nimrodc.html"
+    dir, name, ext = ""
+
+  (dir, name, ext) = splitFile(path)
+  # --> Error: '(dir, name, ext)' cannot be assigned to
+
 
 Reference and pointer types
 ---------------------------
diff --git a/doc/tut2.txt b/doc/tut2.txt
index e1e36bfc4..f8fa4aef3 100644
--- a/doc/tut2.txt
+++ b/doc/tut2.txt
@@ -16,9 +16,9 @@ Introduction
 
 
 This document is a tutorial for the advanced constructs of the *Nimrod*
-programming language. **Note that this document is somewhat obsolete as
-the `manual <manual.html>`_ contains many more examples of the advanced 
-language features.**
+programming language. **Note that this document is somewhat obsolete as the**
+`manual <manual.html>`_ **contains many more examples of the advanced language
+features.**
 
 
 Pragmas
@@ -77,7 +77,7 @@ section.
 Inheritance is done with the ``object of`` syntax. Multiple inheritance is
 currently not supported. If an object type has no suitable ancestor, ``TObject``
 can be used as its ancestor, but this is only a convention. Objects that have 
-no ancestor are implicitely ``final``. You can use the ``inheritable`` pragma 
+no ancestor are implicitly ``final``. You can use the ``inheritable`` pragma 
 to introduce new object roots apart from ``system.TObject``. (This is used
 in the GTK wrapper for instance.)
 
@@ -699,15 +699,22 @@ once.
 Macros
 ======
 
-Macros enable advanced compile-time code transformations, but they
-cannot change Nimrod's syntax. However, this is no real restriction because
-Nimrod's syntax is flexible enough anyway.
-
-To write a macro, one needs to know how the Nimrod concrete syntax is converted
-to an abstract syntax tree (AST). The AST is documented in the
-`macros <macros.html>`_ module.
-
-There are two ways to invoke a macro:
+Macros enable advanced compile-time code transformations, but they cannot
+change Nimrod's syntax. However, this is no real restriction because Nimrod's
+syntax is flexible enough anyway. Macros have to be implemented in pure Nimrod
+code if `foreign function interface (FFI)
+<manual.html#foreign-function-interface>`_ is not enabled in the compiler, but
+other than that restriction (which at some point in the future will go away)
+you can write any kind of Nimrod code and the compiler will run it at compile
+time.
+
+There are two ways to write a macro, either *generating* Nimrod source code and
+letting the compiler parse it, or creating manually an abstract syntax tree
+(AST) which you feed to the compiler. In order to build the AST one needs to
+know how the Nimrod concrete syntax is converted to an abstract syntax tree
+(AST). The AST is documented in the `macros <macros.html>`_ module.
+
+Once your macro is finished, there are two ways to invoke it:
 (1) invoking a macro like a procedure call (`expression macros`:idx:)
 (2) invoking a macro with the special ``macrostmt``
     syntax (`statement macros`:idx:)
@@ -796,3 +803,249 @@ Term rewriting macros
 Term rewriting macros can be used to enhance the compilation process
 with user defined optimizations; see this `document <trmacros.html>`_ for 
 further information.
+
+
+Building your first macro
+-------------------------
+
+To give a footstart to writing macros we will show now how to turn your typical
+dynamic code into something that compiles statically. For the exercise we will
+use the following snippet of code as the starting point:
+
+.. code-block:: nimrod
+
+  import strutils, tables
+
+  proc readCfgAtRuntime(cfgFilename: string): TTable[string, string] =
+    let
+      inputString = readFile(cfgFilename)
+    var
+      source = ""
+
+    result = initTable[string, string]()
+    for line in inputString.splitLines:
+      # Ignore empty lines
+      if line.len < 1: continue
+      var chunks = split(line, ',')
+      if chunks.len != 2:
+        quit("Input needs comma split values, got: " & line)
+      result[chunks[0]] = chunks[1]
+
+    if result.len < 1: quit("Input file empty!")
+
+  let info = readCfgAtRuntime("data.cfg")
+
+  when isMainModule:
+    echo info["licenseOwner"]
+    echo info["licenseKey"]
+    echo info["version"]
+
+Presumably this snippet of code could be used in a commercial software, reading
+a configuration file to display information about the person who bought the
+software. This external file would be generated by an online web shopping cart
+to be included along the program containing the license information::
+
+  version,1.1
+  licenseOwner,Hyori Lee
+  licenseKey,M1Tl3PjBWO2CC48m
+
+The ``readCfgAtRuntime`` proc will open the given filename and return a
+``TTable`` from the `tables module <tables.html>`_. The parsing of the file is
+done (without much care for handling invalid data or corner cases) using the
+``splitLines`` proc from the `strutils module <strutils.html>`_. There are many
+things which can fail; mind the purpose is explaining how to make this run at
+compile time, not how to properly implement a DRM scheme.
+
+The reimplementation of this code as a compile time proc will allow us to get
+rid of the ``data.cfg`` file we would need to distribute along the binary, plus
+if the information is really constant, it doesn't make from a logical point of
+view to have it *mutable* in a global variable, it would be better if it was a
+constant. Finally, and likely the most valuable feature, we can implement some
+verification at compile time. You could think of this as a *better unit
+testing*, since it is impossible to obtain a binary unless everything is
+correct, preventing you to ship to users a broken program which won't start
+because a small critical file is missing or its contents changed by mistake to
+something invalid.
+
+
+Generating source code
+++++++++++++++++++++++
+
+Our first attempt will start by modifying the program to generate a compile
+time string with the *generated source code*, which we then pass to the
+``parseStmt`` proc from the `macros module <macros.html>`_. Here is the
+modified source code implementing the macro:
+
+.. code-block:: nimrod
+  import macros, strutils
+
+  macro readCfgAndBuildSource(cfgFilename: string): stmt =
+    let
+      inputString = slurp(cfgFilename.strVal)
+    var
+      source = ""
+
+    for line in inputString.splitLines:
+      # Ignore empty lines
+      if line.len < 1: continue
+      var chunks = split(line, ',')
+      if chunks.len != 2:
+        error("Input needs comma split values, got: " & line)
+      source &= "const cfg" & chunks[0] & "= \"" & chunks[1] & "\"\n"
+
+    if source.len < 1: error("Input file empty!")
+    result = parseStmt(source)
+
+  readCfgAndBuildSource("data.cfg")
+
+  when isMainModule:
+    echo cfglicenseOwner
+    echo cfglicenseKey
+    echo cfgversion
+
+The good news is not much has changed! First, we need to change the handling of
+the input parameter. In the dynamic version the ``readCfgAtRuntime`` proc
+receives a string parameter. However, in the macro version it is also declared
+as string, but this is the *outside* interface of the macro.  When the macro is
+run, it actually gets a ``PNimrodNode`` object instead of a string, and we have
+to call the ``strVal`` proc from the `macros module <macros.html>`_ to obtain
+the string being passed in to the macro.
+
+Second, we cannot use the ``readFile`` proc from the `system module
+<system.html>`_ due to FFI restriction at compile time. If we try to use this
+proc, or any other which depends on FFI, the compiler will error with the
+message ``cannot evaluate`` and a dump of the macro's source code, along with a
+stack trace where the compiler reached before bailing out. We can get around
+this limitation by using the ``slurp`` proc from the `system module
+<system.html>`_, which was precisely made for compilation time (just like
+``gorge`` which executes an external program and captures its output).
+
+The interesting thing is that our macro does not return a runtime ``TTable``
+object. Instead, it builds up Nimrod source code into the ``source`` variable.
+For each line of the configuration file a ``const`` variable will be generated.
+To avoid conflicts we prefix these variables with ``cfg``. In essence, what the
+compiler is doing is replacing the line calling the macro with the following
+snippet of code:
+
+.. code-block:: nimrod
+  const cfgversion= "1.1"
+  const cfglicenseOwner= "Hyori Lee"
+  const cfglicenseKey= "M1Tl3PjBWO2CC48m"
+
+You can verify this yourself adding the line ``echo source`` somewhere at the
+end of the macro and compiling the program. Another difference is that instead
+of calling the usual ``quit`` proc to abort (which we could still call) this
+version calls the ``error`` proc. The ``error`` proc has the same behavior as
+``quit`` but will dump also the source and file line information where the
+error happened, making it easier for the programmer to find where compilation
+failed. In this situation it would point to the line invoking the macro, but
+**not** the line of ``data.cfg`` we are processing, that's something the macro
+itself would need to control.
+
+
+Generating AST by hand
+++++++++++++++++++++++
+
+To generate an AST we would need to intimately know the structures used by the
+Nimrod compiler exposed in the `macros module <macros.html>`_, which at first
+look seems a daunting task. But we can use as helper shortcut the ``dumpTree``
+macro, which is used as a statement macro instead of an expression macro.
+Since we know that we want to generate a bunch of ``const`` symbols we can
+create the following source file and compile it to see what the compiler
+*expects* from us:
+
+.. code-block:: nimrod
+  import macros
+
+  dumpTree:
+    const cfgversion: string = "1.1"
+    const cfglicenseOwner= "Hyori Lee"
+    const cfglicenseKey= "M1Tl3PjBWO2CC48m"
+
+During compilation of the source code we should see the following lines in the
+output (again, since this is a macro, compilation is enough, you don't have to
+run any binary)::
+
+  StmtList
+    ConstSection
+      ConstDef
+        Ident !"cfgversion"
+        Ident !"string"
+        StrLit 1.1
+    ConstSection
+      ConstDef
+        Ident !"cfglicenseOwner"
+        Empty
+        StrLit Hyori Lee
+    ConstSection
+      ConstDef
+        Ident !"cfglicenseKey"
+        Empty
+        StrLit M1Tl3PjBWO2CC48m
+
+With this output we have a better idea of what kind of input the compiler
+expects. We need to generate a list of statements. For each constant the source
+code generates a ``ConstSection`` and a ``ConstDef``. If we were to move all
+the constants to a single ``const`` block we would see only a single
+``ConstSection`` with three children.
+
+Maybe you didn't notice, but in the ``dumpTree`` example the first constant
+explicitly specifies the type of the constant.  That's why in the tree output
+the two last constants have their second child ``Empty`` but the first has a
+string identifier. So basically a ``const`` definition is made up from an
+identifier, optionally a type (can be an *empty* node) and the value. Armed
+with this knowledge, let's look at the finished version of the AST building
+macro:
+
+.. code-block:: nimrod
+  import macros, strutils
+
+  macro readCfgAndBuildAST(cfgFilename: string): stmt =
+    let
+      inputString = slurp(cfgFilename.strVal)
+
+    result = newNimNode(nnkStmtList)
+    for line in inputString.splitLines:
+      # Ignore empty lines
+      if line.len < 1: continue
+      var chunks = split(line, ',')
+      if chunks.len != 2:
+        error("Input needs comma split values, got: " & line)
+      var
+        section = newNimNode(nnkConstSection)
+        constDef = newNimNode(nnkConstDef)
+      constDef.add(newIdentNode("cfg" & chunks[0]))
+      constDef.add(newEmptyNode())
+      constDef.add(newStrLitNode(chunks[1]))
+      section.add(constDef)
+      result.add(section)
+
+    if result.len < 1: error("Input file empty!")
+
+  readCfgAndBuildAST("data.cfg")
+
+  when isMainModule:
+    echo cfglicenseOwner
+    echo cfglicenseKey
+    echo cfgversion
+
+Since we are building on the previous example generating source code, we will
+only mention the differences to it. Instead of creating a temporary ``string``
+variable and writing into it source code as if it were written *by hand*, we
+use the ``result`` variable directly and create a statement list node
+(``nnkStmtList``) which will hold our children.
+
+For each input line we have to create a constant definition (``nnkConstDef``)
+and wrap it inside a constant section (``nnkConstSection``). Once these
+variables are created, we fill them hierarchichally like the previous AST dump
+tree showed: the constant definition is a child of the section definition, and
+the constant definition has an identifier node, an empty node (we let the
+compiler figure out the type), and a string literal with the value.
+
+A last tip when writing a macro: if you are not sure the AST you are building
+looks ok, you may be tempted to use the ``dumpTree`` macro. But you can't use
+it *inside* the macro you are writting/debugging. Instead ``echo`` the string
+generated by ``treeRepr``. If at the end of the this example you add ``echo
+treeRepr(result)`` you should get the same output as using the ``dumpTree``
+macro, but of course you can call that at any point of the macro where you
+might be having troubles.
diff --git a/examples/cairoex.nim b/examples/cairoex.nim
deleted file mode 100644
index 492428705..000000000
--- a/examples/cairoex.nim
+++ /dev/null
@@ -1,15 +0,0 @@
-import cairo
-
-var surface = image_surface_create(FORMAT_ARGB32, 240, 80)
-var cr = create(surface)
-
-select_font_face(cr, "serif", FONT_SLANT_NORMAL, 
-                              FONT_WEIGHT_BOLD)
-set_font_size(cr, 32.0)
-set_source_rgb(cr, 0.0, 0.0, 1.0)
-move_to(cr, 10.0, 50.0)
-show_text(cr, "Hello, world")
-destroy(cr)
-discard write_to_png(surface, "hello.png")
-destroy(surface)
-
diff --git a/examples/cgi/cgi_server.py b/examples/cgi/cgi_server.py
new file mode 100644
index 000000000..1907515e8
--- /dev/null
+++ b/examples/cgi/cgi_server.py
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+import BaseHTTPServer
+import CGIHTTPServer
+
+server = BaseHTTPServer.HTTPServer
+handler = CGIHTTPServer.CGIHTTPRequestHandler
+server_address = ('localhost', 8008)
+handler.cgi_directories = ['/']
+
+httpd = server(server_address, handler)
+httpd.serve_forever()
diff --git a/examples/cgi/cgi_stacktrace.nim b/examples/cgi/cgi_stacktrace.nim
new file mode 100644
index 000000000..e9f2f567c
--- /dev/null
+++ b/examples/cgi/cgi_stacktrace.nim
@@ -0,0 +1,5 @@
+import cgi
+cgi.setStackTraceStdout()
+
+var a: string = nil
+a.add "foobar"
diff --git a/examples/cgi/example.nim b/examples/cgi/example.nim
new file mode 100644
index 000000000..17629982a
--- /dev/null
+++ b/examples/cgi/example.nim
@@ -0,0 +1,7 @@
+import cgi
+
+write(stdout, "Content-type: text/html\n\n")
+write(stdout, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n")
+write(stdout, "<html><head><title>Test</title></head><body>\n")
+write(stdout, "Hello!")
+writeln(stdout, "</body></html>")
diff --git a/examples/gtk/ex1.nim b/examples/gtk/ex1.nim
deleted file mode 100644
index deabffa3e..000000000
--- a/examples/gtk/ex1.nim
+++ /dev/null
@@ -1,14 +0,0 @@
-import 

-  cairo, glib2, gtk2

-

-proc destroy(widget: pWidget, data: pgpointer) {.cdecl.} =

-  main_quit()

-

-var

-  window: pWidget

-nimrod_init()

-window = window_new(WINDOW_TOPLEVEL)

-discard signal_connect(window, "destroy",

-                       SIGNAL_FUNC(ex1.destroy), nil)

-show(window)

-main()

diff --git a/examples/gtk/ex2.nim b/examples/gtk/ex2.nim
deleted file mode 100644
index fab64cef5..000000000
--- a/examples/gtk/ex2.nim
+++ /dev/null
@@ -1,22 +0,0 @@
-
-import 
-  glib2, gtk2
-
-proc destroy(widget: pWidget, data: pgpointer){.cdecl.} = 
-  main_quit()
-
-var 
-  window: PWidget
-  button: PWidget
-
-nimrod_init()
-window = window_new(WINDOW_TOPLEVEL)
-button = button_new("Click me")
-set_border_width(PContainer(Window), 5)
-add(PContainer(window), button)
-discard signal_connect(window, "destroy", 
-                           SIGNAL_FUNC(ex2.destroy), nil)
-show(button)
-show(window)
-main()
-
diff --git a/examples/gtk/ex3.nim b/examples/gtk/ex3.nim
deleted file mode 100644
index 3b39c07ce..000000000
--- a/examples/gtk/ex3.nim
+++ /dev/null
@@ -1,34 +0,0 @@
-
-import 
-  glib2, gtk2
-
-proc newbutton(ALabel: cstring): PWidget = 
-  Result = button_new(ALabel)
-  show(result)
-
-proc destroy(widget: pWidget, data: pgpointer){.cdecl.} = 
-  main_quit()
-
-nimrod_init()
-var window = window_new(WINDOW_TOPLEVEL) # Box to divide window in 2 halves:
-var totalbox = vbox_new(true, 10)
-show(totalbox)   # A box for each half of the screen:
-var hbox = hbox_new(false, 5)
-show(hbox)
-var vbox = vbox_new(true, 5)
-show(vbox)       # Put boxes in their halves
-pack_start(totalbox, hbox, true, true, 0)
-pack_start(totalbox, vbox, true, true, 0) # Now fill boxes with buttons.
-
-pack_start(hbox, newbutton("Button 1"), false, false, 0)
-pack_start(hbox, newbutton("Button 2"), false, false, 0)
-pack_start(hbox, newbutton("Button 3"), false, false, 0) # Vertical box
-pack_start(vbox, newbutton("Button A"), true, true, 0)
-pack_start(vbox, newbutton("Button B"), true, true, 0)
-pack_start(vbox, newbutton("Button C"), true, true, 0) # Put totalbox in window
-set_border_width(PCONTAINER(Window), 5)
-add(PContainer(window), totalbox)
-discard signal_connect(window, "destroy", SIGNAL_FUNC(ex3.destroy), nil)
-show(window)
-main()
-
diff --git a/examples/gtk/ex4.nim b/examples/gtk/ex4.nim
deleted file mode 100644
index 2964042de..000000000
--- a/examples/gtk/ex4.nim
+++ /dev/null
@@ -1,29 +0,0 @@
-
-import 
-  glib2, gtk2
-
-proc newbutton(ALabel: cstring): PWidget = 
-  Result = button_new(ALabel)
-  show(result)
-
-proc destroy(widget: pWidget, data: pgpointer){.cdecl.} = 
-  main_quit()
-
-nimrod_init()
-var window = window_new(WINDOW_TOPLEVEL)
-var Maintable = table_new(6, 6, True)
-
-proc AddToTable(Widget: PWidget, Left, Right, Top, Bottom: guint) = 
-  attach_defaults(MainTable, Widget, Left, right, top, bottom)
-
-show(MainTable)
-AddToTable(newbutton("1,1 At 1,1"), 1, 2, 1, 2)
-AddToTable(newbutton("2,2 At 3,1"), 3, 5, 1, 3)
-AddToTable(newbutton("4,1 At 4,1"), 1, 5, 4, 5) # Put all in window
-set_border_width(Window, 5)
-add(window, maintable)
-discard signal_connect(window, "destroy", 
-                       SignalFunc(ex4.destroy), nil)
-show(window)
-main()
-
diff --git a/examples/gtk/ex5.nim b/examples/gtk/ex5.nim
deleted file mode 100644
index 841ebc681..000000000
--- a/examples/gtk/ex5.nim
+++ /dev/null
@@ -1,24 +0,0 @@
-
-import 
-  glib2, gtk2
-
-proc destroy(widget: pWidget, data: pgpointer){.cdecl.} = 
-  main_quit()
-
-proc widgetDestroy(w: PWidget) {.cdecl.} = 
-  destroy(w)
-
-nimrod_init()
-var window = window_new(WINDOW_TOPLEVEL)
-var button = button_new("Click me")
-set_border_width(Window, 5)
-add(window, button)
-discard signal_connect(window, "destroy", 
-                       SIGNAL_FUNC(ex5.destroy), nil)
-discard signal_connect_object(button, "clicked", 
-                              SIGNAL_FUNC(widgetDestroy), 
-                              window)
-show(button)
-show(window)
-main()
-
diff --git a/examples/gtk/ex6.nim b/examples/gtk/ex6.nim
deleted file mode 100644
index 7374b19cd..000000000
--- a/examples/gtk/ex6.nim
+++ /dev/null
@@ -1,50 +0,0 @@
-
-import 
-  glib2, gtk2
-
-type 
-  TButtonSignalState = object 
-    Obj: gtk2.PObject
-    SignalID: int32
-    Disable: bool
-
-  PButtonSignalState = ptr TButtonSignalState
-
-proc destroy(widget: pWidget, data: pgpointer){.cdecl.} = 
-  main_quit()
-
-proc widgetDestroy(w: PWidget) {.cdecl.} = destroy(w)
-
-proc disablesignal(widget: pWidget, data: pgpointer){.cdecl.} = 
-  var s = cast[PButtonSignalState](Data)
-  if s.Disable: 
-    signal_handler_block(s.Obj, s.SignalID)
-  else: 
-    signal_handler_unblock(s.Obj, s.SignalID)
-  s.disable = not s.disable
-
-var 
-  QuitState: TButtonSignalState
-
-nimrod_init()
-var window = window_new(WINDOW_TOPLEVEL)
-var quitbutton = button_new("Quit program")
-var disablebutton = button_new("Disable button")
-var windowbox = vbox_new(TRUE, 10)
-pack_start(windowbox, disablebutton, True, false, 0)
-pack_start(windowbox, quitbutton, True, false, 0)
-set_border_width(Window, 10)
-add(window, windowbox)
-discard signal_connect(window, "destroy", SIGNAL_FUNC(ex6.destroy), nil)
-QuitState.Obj = QuitButton
-quitState.SignalID = signal_connect_object(QuitState.Obj, "clicked", 
-                       SIGNAL_FUNC(widgetDestroy), window).int32
-QuitState.Disable = True
-discard signal_connect(disablebutton, "clicked", 
-                   SIGNAL_FUNC(disablesignal), addr(QuitState))
-show(quitbutton)
-show(disablebutton)
-show(windowbox)
-show(window)
-main()
-
diff --git a/examples/gtk/ex7.nim b/examples/gtk/ex7.nim
deleted file mode 100644
index 852d80a41..000000000
--- a/examples/gtk/ex7.nim
+++ /dev/null
@@ -1,46 +0,0 @@
-
-import 
-  gdk2, glib2, gtk2
-
-proc destroy(widget: pWidget, data: pgpointer){.cdecl.} = 
-  main_quit()
-
-const 
-  Inside: cstring = "Mouse is over label"
-  OutSide: cstring = "Mouse is not over label"
-
-var 
-  OverLabel: bool
-
-nimrod_init()
-var window = window_new(gtk2.WINDOW_TOPLEVEL)
-var stackbox = vbox_new(TRUE, 10)
-var box1 = event_box_new()
-var label1 = label_new("Move mouse over label")
-add(box1, label1)
-var box2 = event_box_new()
-var label2 = label_new(OutSide)
-add(box2, label2)
-pack_start(stackbox, box1, TRUE, TRUE, 0)
-pack_start(stackbox, box2, TRUE, TRUE, 0)
-set_border_width(Window, 5)
-add(window, stackbox)
-discard signal_connect(window, "destroy", 
-                   SIGNAL_FUNC(ex7.destroy), nil)
-overlabel = False
-
-
-proc ChangeLabel(P: PWidget, Event: gdk2.PEventCrossing, 
-                Data: var bool){.cdecl.} = 
-  if not Data: set_text(Label1, Inside)
-  else: set_text(Label2, Outside)
-  Data = not Data
-
-
-discard signal_connect(box1, "enter_notify_event", 
-                   SIGNAL_FUNC(ChangeLabel), addr(Overlabel))
-discard signal_connect(box1, "leave_notify_event", 
-                   SIGNAL_FUNC(ChangeLabel), addr(Overlabel))
-show_all(window)
-main()
-
diff --git a/examples/gtk/ex8.nim b/examples/gtk/ex8.nim
deleted file mode 100644
index 242a15393..000000000
--- a/examples/gtk/ex8.nim
+++ /dev/null
@@ -1,29 +0,0 @@
-
-import 
-  glib2, gtk2
-
-proc destroy(widget: pWidget, data: pgpointer){.cdecl.} = 
-  main_quit()
-
-nimrod_init()
-var window = window_new(WINDOW_TOPLEVEL)
-var stackbox = vbox_new(TRUE, 10)
-var label1 = label_new("Red label text")
-var labelstyle = copy(get_style(label1))
-LabelStyle.fg[STATE_NORMAL].pixel = 0
-LabelStyle.fg[STATE_NORMAL].red = -1'i16
-LabelStyle.fg[STATE_NORMAL].blue = 0'i16
-LabelStyle.fg[STATE_NORMAL].green = 0'i16
-set_style(label1, labelstyle) 
-# Uncomment this to see the effect of setting the default style.
-# set_default_style(labelstyle)
-var label2 = label_new("Black label text")
-pack_start(stackbox, label1, TRUE, TRUE, 0)
-pack_start(stackbox, label2, TRUE, TRUE, 0)
-set_border_width(Window, 5)
-add(window, stackbox)
-discard signal_connect(window, "destroy", 
-                   SIGNAL_FUNC(ex8.destroy), nil)
-show_all(window)
-main()
-
diff --git a/examples/gtk/ex9.nim b/examples/gtk/ex9.nim
deleted file mode 100644
index 1481e6be1..000000000
--- a/examples/gtk/ex9.nim
+++ /dev/null
@@ -1,49 +0,0 @@
-
-import 
-  gdk2, glib2, gtk2
-
-proc destroy(widget: pWidget, data: pgpointer){.cdecl.} = 
-  main_quit()
-
-const 
-  Inside: cstring = "Mouse is over label"
-  OutSide: cstring = "Mouse is not over label"
-
-var 
-  OverButton: bool
-
-nimrod_init()
-var window = window_new(gtk2.WINDOW_TOPLEVEL)
-var stackbox = vbox_new(TRUE, 10)
-var button1 = button_new("Move mouse over button")
-var buttonstyle = copy(get_style(Button1))
-ButtonStyle.bg[STATE_PRELIGHT].pixel = 0
-ButtonStyle.bg[STATE_PRELIGHT].red = -1'i16
-ButtonStyle.bg[STATE_PRELIGHT].blue = 0'i16
-ButtonStyle.bg[STATE_PRELIGHT].green = 0'i16
-set_style(button1, buttonstyle)
-var button2 = button_new()
-var ALabel = label_new(Outside)
-
-
-proc ChangeLabel(P: PWidget, Event: gdk2.PEventCrossing, 
-                 Data: var bool){.cdecl.} = 
-  if Not Data: set_text(ALabel, Inside)
-  else: set_text(ALabel, Outside)
-  Data = Not Data
-
-
-add(button2, ALAbel)
-pack_start(stackbox, button1, TRUE, TRUE, 0)
-pack_start(stackbox, button2, TRUE, TRUE, 0)
-set_border_width(Window, 5)
-add(window, stackbox)
-discard signal_connect(window, "destroy", 
-                   SIGNAL_FUNC(ex9.destroy), nil)
-overbutton = False
-discard signal_connect(button1, "enter_notify_event", 
-                   SIGNAL_FUNC(ChangeLabel), addr(OverButton))
-discard signal_connect(button1, "leave_notify_event", 
-                   SIGNAL_FUNC(ChangeLabel), addr(OverButton))
-show_all(window)
-main()
diff --git a/examples/luaex.nim b/examples/luaex.nim
deleted file mode 100644
index 7628ddd12..000000000
--- a/examples/luaex.nim
+++ /dev/null
@@ -1,15 +0,0 @@
-# Embedds Lua into a Nimrod application
-
-import
-  lua, lualib, lauxlib
-
-const
-  code = """
-print 'hi'
-"""
-
-var L = newstate()
-openlibs(L)
-discard loadbuffer(L, code, code.len, "line") 
-discard pcall(L, 0, 0, 0)
-
diff --git a/examples/pythonex.nim b/examples/pythonex.nim
deleted file mode 100644
index 310d80151..000000000
--- a/examples/pythonex.nim
+++ /dev/null
@@ -1,11 +0,0 @@
-# Example to embed Python into your application
-
-import python
-
-# IMPORTANT: Python on Windows does not like CR characters, so
-# we use only \L here.
-
-Py_Initialize()
-discard PyRun_SimpleString("from time import time,ctime\L" &
-                           "print 'Today is',ctime(time())\L")
-Py_Finalize()
diff --git a/examples/tclex.nim b/examples/tclex.nim
deleted file mode 100644
index daf2d52e2..000000000
--- a/examples/tclex.nim
+++ /dev/null
@@ -1,25 +0,0 @@
-# Example to embed TCL in Nimrod
-
-import tcl, os
-
-const
-  myScript = """puts "Hello, World - In quotes" """
-  myScript2 = """
-package require Tk
-pack [entry .e -textvar e -width 50]
-bind .e <Return> {
-  set e  [regsub { *=.*} $e ""] ;# remove evaluation (Chris)
-  catch {expr [string map {/ *1./} $e]} res
-  append e " = $res"
-}  
-"""
-
-FindExecutable(getAppFilename())
-var interp = CreateInterp()
-if interp == nil: quit("cannot create TCL interpreter")
-if Init(interp) != TCL_OK: 
-  quit("cannot init interpreter")
-if tcl.Eval(interp, myScript) != TCL_OK: 
-  quit("cannot execute script.tcl")
-
-
diff --git a/examples/x11ex.nim b/examples/x11ex.nim
deleted file mode 100644
index 6c63d0a01..000000000
--- a/examples/x11ex.nim
+++ /dev/null
@@ -1,71 +0,0 @@
-import xlib, xutil, x, keysym
-
-const
-  WINDOW_WIDTH = 400
-  WINDOW_HEIGHT = 300
-  
-var
-  width, height: cuint
-  display: PDisplay
-  screen: cint
-  depth: int
-  win: TWindow
-  sizeHints: TXSizeHints
-
-proc create_window = 
-  width = WINDOW_WIDTH
-  height = WINDOW_HEIGHT
-
-  display = XOpenDisplay(nil)
-  if display == nil:
-    echo("Verbindung zum X-Server fehlgeschlagen")
-    quit(1)
-
-  screen = XDefaultScreen(display)
-  depth = XDefaultDepth(display, screen)
-  var rootwin = XRootWindow(display, screen)
-  win = XCreateSimpleWindow(display, rootwin, 100, 10,
-                            width, height, 5,
-                            XBlackPixel(display, screen),
-                            XWhitePixel(display, screen))
-  size_hints.flags = PSize or PMinSize or PMaxSize
-  size_hints.min_width =  width.cint
-  size_hints.max_width =  width.cint
-  size_hints.min_height = height.cint
-  size_hints.max_height = height.cint
-  discard XSetStandardProperties(display, win, "Simple Window", "window",
-                         0, nil, 0, addr(size_hints))
-  discard XSelectInput(display, win, ButtonPressMask or KeyPressMask or 
-                                     PointerMotionMask)
-  discard XMapWindow(display, win)
-
-proc close_window =
-  discard XDestroyWindow(display, win)
-  discard XCloseDisplay(display)
-    
-var
-  xev: TXEvent
-
-proc process_event =
-  var key: TKeySym
-  case int(xev.theType)
-  of KeyPress:
-    key = XLookupKeysym(cast[ptr TXKeyEvent](addr(xev)), 0)
-    if key.int != 0:
-      echo("keyboard event")
-  of ButtonPressMask, PointerMotionMask:
-    Echo("Mouse event")
-  else: nil
-
-proc eventloop =
-  discard XFlush(display)
-  var num_events = int(XPending(display))
-  while num_events != 0:
-    dec(num_events)
-    discard XNextEvent(display, addr(xev))
-    process_event()
-
-create_window()
-while true:
-  eventloop()
-close_window()
diff --git a/install.txt b/install.txt
index 11c502235..2883c8495 100644
--- a/install.txt
+++ b/install.txt
@@ -62,3 +62,9 @@ Currently, the following C compilers are supported under Windows:
   | http://www.digitalmars.com/download/freecompiler.html
 
 However, most testing is done with GCC.
+
+Bootstrapping from Github
+-------------------------
+
+Take a look at the readme file on github `here <https://github.com/Araq/Nimrod#readme>`_
+for instructions.
diff --git a/koch.nim b/koch.nim
index 97fcf5b2c..3b13690fa 100644
--- a/koch.nim
+++ b/koch.nim
@@ -111,7 +111,7 @@ proc findStartNimrod: string =
   result = "bin" / nimrod
   if ExistsFile(result): return
   for dir in split(getEnv("PATH"), PathSep):
-    if ExistsFile(dir / nimrod): return nimrod
+    if ExistsFile(dir / nimrod): return dir / nimrod
   when defined(Posix):
     const buildScript = "build.sh"
     if ExistsFile(buildScript): 
diff --git a/lib/core/macros.nim b/lib/core/macros.nim
index fc93a157d..52ee9326f 100644
--- a/lib/core/macros.nim
+++ b/lib/core/macros.nim
@@ -268,6 +268,8 @@ proc quote*(bl: stmt, op = "``"): PNimrodNode {.magic: "QuoteAst".}
   ##
   ## Example:
   ##   
+  ## .. code-block:: nimrod
+  ##
   ##   macro check(ex: expr): stmt =
   ##     # this is a simplified version of the check macro from the
   ##     # unittest module.
@@ -290,6 +292,8 @@ template emit*(e: expr[string]): stmt =
   ## that should be inserted verbatim in the program
   ## Example:
   ##
+  ## .. code-block:: nimrod
+  ##
   ##   emit("echo " & '"' & "hello world".toUpper & '"')
   ##
   eval: result = e.parseStmt
@@ -474,6 +478,34 @@ proc newDotExpr*(a, b: PNimrodNode): PNimrodNode {.compileTime.} =
 
 proc newIdentDefs*(name, kind: PNimrodNode; 
                    default = newEmptyNode()): PNimrodNode {.compileTime.} = 
+  ## Creates a new ``nnkIdentDefs`` node of a specific kind and value.
+  ##
+  ## ``nnkIdentDefs`` need to have at least three children, but they can have
+  ## more: first comes a list of identifiers followed by a type and value
+  ## nodes. This helper proc creates a three node subtree, the first subnode
+  ## being a single identifier name. Both the ``kind`` node and ``default``
+  ## (value) nodes may be empty depending on where the ``nnkIdentDefs``
+  ## appears: tuple or object definitions will have an empty ``default`` node,
+  ## ``let`` or ``var`` blocks may have an empty ``kind`` node if the
+  ## identifier is being assigned a value. Example:
+  ##
+  ## .. code-block:: nimrod
+  ##
+  ##   var varSection = newNimNode(nnkVarSection).add(
+  ##     newIdentDefs(ident("a"), ident("string")),
+  ##     newIdentDefs(ident("b"), newEmptyNode(), newLit(3)))
+  ##   # --> var
+  ##   #       a: string
+  ##   #       b = 3
+  ##
+  ## If you need to create multiple identifiers you need to use the lower level
+  ## ``newNimNode``:
+  ##
+  ## .. code-block:: nimrod
+  ##
+  ##   result = newNimNode(nnkIdentDefs).add(
+  ##     ident("a"), ident("b"), ident("c"), ident("string"),
+  ##       newStrLitNode("Hello"))
   newNimNode(nnkIdentDefs).add(name, kind, default)
 
 proc newNilLit*(): PNimrodNode {.compileTime.} =
@@ -494,14 +526,14 @@ const
 
 from strutils import cmpIgnoreStyle, format
 
-proc ExpectKind*(n: PNimrodNode; k: set[TNimrodNodeKind]) {.compileTime.} =
+proc expectKind*(n: PNimrodNode; k: set[TNimrodNodeKind]) {.compileTime.} =
   assert n.kind in k, "Expected one of $1, got $2".format(k, n.kind)
 
-proc newProc*(name = newEmptyNode(); params: openarray[PNimrodNode] = [];  
+proc newProc*(name = newEmptyNode(); params: openarray[PNimrodNode] = [newEmptyNode()];  
     body: PNimrodNode = newStmtList(), procType = nnkProcDef): PNimrodNode {.compileTime.} =
   ## shortcut for creating a new proc
   ##
-  ## The ``params`` array should start with the return type of the proc, 
+  ## The ``params`` array must start with the return type of the proc, 
   ## followed by a list of IdentDefs which specify the params.
   assert procType in RoutineNodes
   result = newNimNode(procType).add(
diff --git a/lib/impure/db_postgres.nim b/lib/impure/db_postgres.nim
index 2dd55e05f..157d58c7c 100644
--- a/lib/impure/db_postgres.nim
+++ b/lib/impure/db_postgres.nim
@@ -180,6 +180,21 @@ proc Open*(connection, user, password, database: string): TDbConn {.
   tags: [FDb].} =
   ## opens a database connection. Raises `EDb` if the connection could not
   ## be established.
+  ##
+  ## Clients can also use Postgres keyword/value connection strings to
+  ## connect.
+  ##
+  ## Example:
+  ##
+  ## .. code-block:: nimrod
+  ##
+  ##      con = Open("", "", "", "host=localhost port=5432 dbname=mydb")
+  ##
+  ## See http://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-CONNSTRING
+  ## for more information.
+  ##
+  ## Note that the connection parameter is not used but exists to maintain
+  ## the nimrod db api.
   result = PQsetdbLogin(nil, nil, nil, nil, database, user, password)
   if PQStatus(result) != CONNECTION_OK: dbError(result) # result = nil
 
diff --git a/lib/packages/docutils/rstgen.nim b/lib/packages/docutils/rstgen.nim
index 364f847cc..bc4f3d351 100644
--- a/lib/packages/docutils/rstgen.nim
+++ b/lib/packages/docutils/rstgen.nim
@@ -7,7 +7,18 @@
 #    distribution, for details about the copyright.
 #
 
-## This module implements a generator of HTML/Latex from `reStructuredText`:idx:.
+## This module implements a generator of HTML/Latex from
+## `reStructuredText`:idx: (see http://docutils.sourceforge.net/rst.html for
+## information on this markup syntax). You can generate HTML output through the
+## convenience proc ``rstToHtml``, which provided an input string with rst
+## markup returns a string with the generated HTML. The final output is meant
+## to be embedded inside a full document you provide yourself, so it won't
+## contain the usual ``<header>`` or ``<body>`` parts.
+##
+## You can also create a ``TRstGenerator`` structure and populate it with the
+## other lower level methods to finally build complete documents. This requires
+## many options and tweaking, but you are not limited to snippets and can
+## generate `LaTeX documents <https://en.wikipedia.org/wiki/LaTeX>`_ too.
 
 import strutils, os, hashes, strtabs, rstast, rst, highlite
 
@@ -40,13 +51,51 @@ type
     filename*: string
     meta*: array[TMetaEnum, string]
   
-  PDoc = var TRstGenerator
+  PDoc = var TRstGenerator ## Alias to type less.
 
 proc initRstGenerator*(g: var TRstGenerator, target: TOutputTarget,
                        config: PStringTable, filename: string,
                        options: TRstParseOptions,
                        findFile: TFindFileHandler,
                        msgHandler: TMsgHandler) =
+  ## Initializes a ``TRstGenerator``.
+  ##
+  ## You need to call this before using a ``TRstGenerator`` with any other
+  ## procs in this module. Pass a non ``nil`` ``PStringTable`` value as
+  ## ``config`` with parameters used by the HTML output generator.  If you
+  ## don't know what to use, pass the results of the ``defaultConfig()`` proc.
+  ## The ``filename`` is symbolic and used only for error reporting, you can
+  ## pass any non ``nil`` string here.
+  ##
+  ## The ``TRstParseOptions``, ``TFindFileHandler`` and ``TMsgHandler`` types
+  ## are defined in the the `packages/docutils/rst module <rst.html>`_.
+  ## ``options`` selects the behaviour of the rst parser.
+  ##
+  ## ``findFile`` is a proc used by the rst ``include`` directive among others.
+  ## The purpose of this proc is to mangle or filter paths. It receives paths
+  ## specified in the rst document and has to return a valid path to existing
+  ## files or the empty string otherwise.  If you pass ``nil``, a default proc
+  ## will be used which given a path returns the input path only if the file
+  ## exists. One use for this proc is to transform relative paths found in the
+  ## document to absolute path, useful if the rst file and the resources it
+  ## references are not in the same directory as the current working directory.
+  ##
+  ## The ``msgHandler`` is a proc used for user error reporting. It will be
+  ## called with the filename, line, col, and type of any error found during
+  ## parsing. If you pass ``nil``, a default message handler will be used which
+  ## writes the messages to the standard output.
+  ##
+  ## Example:
+  ##
+  ## .. code-block:: nimrod
+  ##
+  ##   import packages/docutils/rstgen
+  ##
+  ##   var gen: TRstGenerator
+  ##
+  ##   gen.initRstGenerator(outHtml, defaultConfig(),
+  ##     "filename", {}, nil, nil)
+
   g.config = config
   g.target = target
   g.tocPart = @[]
@@ -147,7 +196,19 @@ proc dispA(target: TOutputTarget, dest: var string,
   if target != outLatex: addf(dest, xml, args)
   else: addf(dest, tex, args)
   
-proc renderRstToOut*(d: PDoc, n: PRstNode, result: var string)
+proc renderRstToOut*(d: var TRstGenerator, n: PRstNode, result: var string)
+  ## Writes into ``result`` the rst ast ``n`` using the ``d`` configuration.
+  ##
+  ## Before using this proc you need to initialise a ``TRstGenerator`` with
+  ## ``initRstGenerator`` and parse a rst file with ``rstParse`` from the
+  ## `packages/docutils/rst module <rst.html>`_. Example:
+  ##
+  ## .. code-block:: nimrod
+  ##
+  ##   # ...configure gen and rst vars...
+  ##   var generatedHTML = ""
+  ##   renderRstToOut(gen, rst, generatedHTML)
+  ##   echo generatedHTML
 
 proc renderAux(d: PDoc, n: PRstNode, result: var string) = 
   for i in countup(0, len(n)-1): renderRstToOut(d, n.sons[i], result)
@@ -162,7 +223,7 @@ proc renderAux(d: PDoc, n: PRstNode, frmtA, frmtB: string, result: var string) =
 
 # ---------------- index handling --------------------------------------------
 
-proc setIndexTerm*(d: PDoc, id, term: string) =
+proc setIndexTerm*(d: var TRstGenerator, id, term: string) =
   d.theIndex.add(term)
   d.theIndex.add('\t')
   let htmlFile = changeFileExt(extractFilename(d.filename), HtmlExt)
@@ -295,7 +356,7 @@ proc renderTocEntry(d: PDoc, e: TTocEntry, result: var string) =
     "<li><a class=\"reference\" id=\"$1_toc\" href=\"#$1\">$2</a></li>\n", 
     "\\item\\label{$1_toc} $2\\ref{$1}\n", [e.refname, e.header])
 
-proc renderTocEntries*(d: PDoc, j: var int, lvl: int, result: var string) = 
+proc renderTocEntries*(d: var TRstGenerator, j: var int, lvl: int, result: var string) =
   var tmp = ""
   while j <= high(d.tocPart): 
     var a = abs(d.tocPart[j].n.level)
@@ -627,7 +688,18 @@ proc formatNamedVars*(frmt: string, varnames: openarray[string],
 
 
 proc defaultConfig*(): PStringTable =
-  ## creates a default configuration for HTML generation.
+  ## Returns a default configuration for embedded HTML generation.
+  ##
+  ## The returned ``PStringTable`` contains the paramters used by the HTML
+  ## engine to build the final output. For information on what these parameters
+  ## are and their purpose, please look up the file ``config/nimdoc.cfg``
+  ## bundled with the compiler.
+  ##
+  ## The only difference between the contents of that file and the values
+  ## provided by this proc is the ``doc.file`` variable. The ``doc.file``
+  ## variable of the configuration file contains HTML to build standalone
+  ## pages, while this proc returns just the content for procs like
+  ## ``rstToHtml`` to generate the bare minimum HTML.
   result = newStringTable(modeStyleInsensitive)
   
   template setConfigVar(key, val: expr) =
@@ -678,8 +750,26 @@ $content
 
 proc rstToHtml*(s: string, options: TRstParseOptions, 
                 config: PStringTable): string =
-  ## exported for *nimforum*.
-  
+  ## Converts an input rst string into embeddable HTML.
+  ##
+  ## This convenience proc parses any input string using rst markup (it doesn't
+  ## have to be a full document!) and returns an embeddable piece of HTML. The
+  ## proc is meant to be used in *online* environments without access to a
+  ## meaningful filesystem, and therefore rst ``include`` like directives won't
+  ## work. For an explanation of the ``config`` parameter see the
+  ## ``initRstGenerator`` proc. Example:
+  ##
+  ## .. code-block:: nimrod
+  ##   import packages/docutils/rstgen, strtabs
+  ##
+  ##   echo rstToHtml("*Hello* **world**!", {},
+  ##     newStringTable(modeStyleInsensitive))
+  ##   # --> <em>Hello</em> <strong>world</strong>!
+  ##
+  ## If you need to allow the rst ``include`` directive or tweak the generated
+  ## output you have to create your own ``TRstGenerator`` with
+  ## ``initRstGenerator`` and related procs.
+
   proc myFindFile(filename: string): string = 
     # we don't find any files in online mode:
     result = ""
@@ -692,4 +782,8 @@ proc rstToHtml*(s: string, options: TRstParseOptions,
   var rst = rstParse(s, filen, 0, 1, dummyHasToc, options)
   result = ""
   renderRstToOut(d, rst, result)
-  
+
+
+when isMainModule:
+  echo rstToHtml("*Hello* **world**!", {},
+    newStringTable(modeStyleInsensitive))
diff --git a/lib/pure/actors.cfg b/lib/pure/actors.nimrod.cfg
index c6bb9c545..c6bb9c545 100644
--- a/lib/pure/actors.cfg
+++ b/lib/pure/actors.nimrod.cfg
diff --git a/lib/pure/asyncio.nim b/lib/pure/asyncio.nim
index c4a07d751..3c2a5c17a 100644
--- a/lib/pure/asyncio.nim
+++ b/lib/pure/asyncio.nim
@@ -233,8 +233,11 @@ proc asyncSockHandleWrite(h: PObject) =
       let sock = PAsyncSocket(h)
       try:
         let bytesSent = sock.socket.sendAsync(sock.sendBuffer)
-        assert bytesSent > 0
-        if bytesSent != sock.sendBuffer.len:
+        if bytesSent == 0:
+          # Apparently the socket cannot be written to. Even though select
+          # just told us that it can be... This used to be an assert. Just
+          # do nothing instead.
+        elif bytesSent != sock.sendBuffer.len:
           sock.sendBuffer = sock.sendBuffer[bytesSent .. -1]
         elif bytesSent == sock.sendBuffer.len:
           sock.sendBuffer = ""
diff --git a/lib/pure/browsers.nim b/lib/pure/browsers.nim
index 6f5bf7ddb..b44f406c5 100644
--- a/lib/pure/browsers.nim
+++ b/lib/pure/browsers.nim
@@ -33,10 +33,10 @@ proc openDefaultBrowser*(url: string) =
     else:
       discard ShellExecuteA(0'i32, "open", url, nil, nil, SW_SHOWNORMAL)
   elif defined(macosx):
-    discard execShellCmd("open " & quoteIfContainsWhite(url))
+    discard execShellCmd("open " & quoteShell(url))
   else:
     const attempts = ["gnome-open ", "kde-open ", "xdg-open "]
-    var u = quoteIfContainsWhite(url)
+    var u = quoteShell(url)
     for a in items(attempts):
       if execShellCmd(a & u) == 0: return
     for b in getEnv("BROWSER").string.split(PathSep):
diff --git a/lib/pure/cgi.nim b/lib/pure/cgi.nim
index c499abdc0..29c686fd7 100644
--- a/lib/pure/cgi.nim
+++ b/lib/pure/cgi.nim
@@ -342,16 +342,35 @@ proc writeContentType*() =
   ##
   ## .. code-block:: Nimrod
   ##     write(stdout, "Content-type: text/html\n\n")
-  ##
-  ## It also modifies the debug stack traces so that they contain
-  ## ``<br />`` and are easily readable in a browser.
   write(stdout, "Content-type: text/html\n\n")
-  system.stackTraceNewLine = "<br />\n"
 
-proc setStackTraceNewLine*() =
-  ## Modifies the debug stack traces so that they contain
-  ## ``<br />`` and are easily readable in a browser.
-  system.stackTraceNewLine = "<br />\n"
+proc resetForStacktrace() =
+  stdout.write """<!--: spam
+Content-Type: text/html
+
+<body bgcolor=#f0f0f8><font color=#f0f0f8 size=-5> -->
+<body bgcolor=#f0f0f8><font color=#f0f0f8 size=-5> --> -->
+</font> </font> </font> </script> </object> </blockquote> </pre>
+</table> </table> </table> </table> </table> </font> </font> </font>
+"""
+
+proc writeErrorMessage*(data: string) =
+  ## Tries to reset browser state and writes `data` to stdout in
+  ## <plaintext> tag.
+  resetForStacktrace()
+  # We use <plaintext> here, instead of escaping, so stacktrace can
+  # be understood by human looking at source.
+  stdout.write("<plaintext>\n")
+  stdout.write(data)
+
+proc setStackTraceStdout*() =
+  ## Makes Nimrod output stacktraces to stdout, instead of server log.
+  errorMessageWriter = writeErrorMessage
+
+proc setStackTraceNewLine*() {.deprecated.} =
+  ## Makes Nimrod output stacktraces to stdout, instead of server log.
+  ## Depracated alias for setStackTraceStdout.
+  setStackTraceStdout()
 
 proc setCookie*(name, value: string) =
   ## Sets a cookie.
@@ -374,4 +393,3 @@ when isMainModule:
   const test1 = "abc\L+def xyz"
   assert UrlEncode(test1) == "abc%0A%2Bdef+xyz"
   assert UrlDecode(UrlEncode(test1)) == test1
-
diff --git a/lib/pure/endians.nim b/lib/pure/endians.nim
index 34270b320..73017464d 100644
--- a/lib/pure/endians.nim
+++ b/lib/pure/endians.nim
@@ -34,14 +34,26 @@ proc swapEndian32*(outp, inp: pointer) =
   o[2] = i[1]
   o[3] = i[0]
 
+proc swapEndian16*(outp, inp: pointer) = 
+  ## copies `inp` to `outp` swapping bytes. Both buffers are supposed to
+  ## contain at least 2 bytes.
+  var
+    i = cast[cstring](inp)
+    o = cast[cstring](outp)
+  o[0] = i[1]
+  o[1] = i[0]
+
 when system.cpuEndian == bigEndian:
   proc littleEndian64*(outp, inp: pointer) {.inline.} = swapEndian64(outp, inp)
   proc littleEndian32*(outp, inp: pointer) {.inline.} = swapEndian32(outp, inp)
+  proc littleEndian16*(outp, inp: pointer) {.inline.} = swapEndian16(outp, inp)
   proc bigEndian64*(outp, inp: pointer) {.inline.} = copyMem(outp, inp, 8)
   proc bigEndian32*(outp, inp: pointer) {.inline.} = copyMem(outp, inp, 4)
+  proc bigEndian16*(outp, inp: pointer) {.inline.} = copyMem(outp, inp, 2)
 else: 
   proc littleEndian64*(outp, inp: pointer) {.inline.} = copyMem(outp, inp, 8)
   proc littleEndian32*(outp, inp: pointer) {.inline.} = copyMem(outp, inp, 4)
+  proc littleEndian16*(outp, inp: pointer){.inline.} = copyMem(outp, inp, 2)
   proc bigEndian64*(outp, inp: pointer) {.inline.} = swapEndian64(outp, inp)
   proc bigEndian32*(outp, inp: pointer) {.inline.} = swapEndian32(outp, inp)
-
+  proc bigEndian16*(outp, inp: pointer) {.inline.} = swapEndian16(outp, inp)
diff --git a/lib/pure/fsmonitor.nim b/lib/pure/fsmonitor.nim
index a554cf963..d6584c1a0 100644
--- a/lib/pure/fsmonitor.nim
+++ b/lib/pure/fsmonitor.nim
@@ -64,10 +64,10 @@ const
 proc newMonitor*(): PFSMonitor =
   ## Creates a new file system monitor.
   new(result)
-  result.fd = inotifyInit()
   result.targets = initTable[cint, string]()
+  result.fd = inotifyInit()
   if result.fd < 0:
-    OSError()
+    OSError(OSLastError())
 
 proc add*(monitor: PFSMonitor, target: string,
                filters = {MonitorAll}): cint {.discardable.} =
@@ -93,7 +93,7 @@ proc add*(monitor: PFSMonitor, target: string,
   
   result = inotifyAddWatch(monitor.fd, target, INFilter.uint32)
   if result < 0:
-    OSError()
+    OSError(OSLastError())
   monitor.targets.add(result, target)
 
 proc del*(monitor: PFSMonitor, wd: cint) =
@@ -101,7 +101,7 @@ proc del*(monitor: PFSMonitor, wd: cint) =
   ##
   ## If ``wd`` is not a part of ``monitor`` an EOS error is raised.
   if inotifyRmWatch(monitor.fd, wd) < 0:
-    OSError()
+    OSError(OSLastError())
 
 proc getEvent(m: PFSMonitor, fd: cint): seq[TMonitorEvent] =
   result = @[]
@@ -184,7 +184,7 @@ proc FSMonitorRead(h: PObject) =
 proc toDelegate(m: PFSMonitor): PDelegate =
   result = newDelegate()
   result.deleVal = m
-  result.fd = m.fd
+  result.fd = (type(result.fd))(m.fd)
   result.mode = fmRead
   result.handleRead = FSMonitorRead
   result.open = true
diff --git a/lib/pure/htmlparser.nim b/lib/pure/htmlparser.nim
index d60d2e583..060f0e386 100644
--- a/lib/pure/htmlparser.nim
+++ b/lib/pure/htmlparser.nim
@@ -17,11 +17,37 @@
 ##
 ##   echo loadHtml("mydirty.html")
 ##
-##
 ## Every tag in the resulting tree is in lower case.
 ##
 ## **Note:** The resulting ``PXmlNode`` already uses the ``clientData`` field, 
 ## so it cannot be used by clients of this library.
+##
+## Example: Transforming hyperlinks
+## ================================
+##
+## This code demonstrates how you can iterate over all the tags in an HTML file
+## and write back the modified version. In this case we look for hyperlinks
+## ending with the extension ``.rst`` and convert them to ``.html``.
+##
+## .. code-block:: nimrod
+##
+##   import htmlparser
+##   import xmltree  # To use '$' for PXmlNode
+##   import strtabs  # To access PXmlAttributes
+##   import os       # To use splitFile
+##   import strutils # To use cmpIgnoreCase
+##
+##   proc transformHyperlinks() =
+##     let html = loadHTML("input.html")
+##
+##     for a in html.findAll("a"):
+##       let href = a.attrs["href"]
+##       if not href.isNil:
+##         let (dir, filename, ext) = splitFile(href)
+##         if cmpIgnoreCase(ext, ".rst") == 0:
+##           a.attrs["href"] = dir / filename & ".html"
+##
+##     writeFile("output.html", $html)
 
 import strutils, streams, parsexml, xmltree, unicode, strtabs
 
@@ -528,7 +554,7 @@ proc parseHtml*(s: PStream, filename: string,
   ## parses the XML from stream `s` and returns a ``PXmlNode``. Every
   ## occured parsing error is added to the `errors` sequence.
   var x: TXmlParser
-  open(x, s, filename, {reportComments})
+  open(x, s, filename, {reportComments, reportWhitespace})
   next(x)
   # skip the DOCTYPE:
   if x.kind == xmlSpecial: next(x)
diff --git a/lib/pure/httpclient.nim b/lib/pure/httpclient.nim
index 2c0e7b835..bb9835fe7 100644
--- a/lib/pure/httpclient.nim
+++ b/lib/pure/httpclient.nim
@@ -220,9 +220,8 @@ proc parseResponse(s: TSocket, getBody: bool, timeout: int): TResponse =
       inc(linei, le)
       if line[linei] != ':': httpError("invalid headers")
       inc(linei) # Skip :
-      linei += skipWhitespace(line, linei)
       
-      result.headers[name] = line[linei.. -1]
+      result.headers[name] = line[linei.. -1].strip()
   if not fullyRead:
     httpError("Connection was closed before full request has been made")
   if getBody:
diff --git a/lib/pure/os.nim b/lib/pure/os.nim
index a39ca7b83..7a8722ab4 100644
--- a/lib/pure/os.nim
+++ b/lib/pure/os.nim
@@ -21,7 +21,7 @@ import
 
 when defined(windows):
   import winlean
-elif defined(posix): 
+elif defined(posix):
   import posix
 else:
   {.error: "OS module not ported to your operating system!".}
@@ -33,7 +33,7 @@ type
                                   ## from an environment variable
   FWriteEnv* = object of FWriteIO ## effect that denotes a write
                                   ## to an environment variable
-                        
+
   FReadDir* = object of FReadIO   ## effect that denotes a write operation to
                                   ## the directory structure
   FWriteDir* = object of FWriteIO ## effect that denotes a write operation to
@@ -179,7 +179,7 @@ proc OSErrorMsg*(): string {.rtl, extern: "nos$1", deprecated.} =
   ## Returns "" if no error occured.
   ##
   ## **Deprecated since version 0.9.4**: use the other ``OSErrorMsg`` proc.
-  
+
   result = ""
   when defined(Windows):
     var err = GetLastError()
@@ -276,7 +276,7 @@ proc OSLastError*(): TOSErrorCode =
   ## On Windows some OS calls can reset the error code to ``0`` causing this
   ## procedure to return ``0``. It is therefore advised to call this procedure
   ## immediately after an OS call fails. On POSIX systems this is not a problem.
-  
+
   when defined(windows):
     result = TOSErrorCode(GetLastError())
   else:
@@ -342,7 +342,14 @@ when defined(windows):
     template getCommandLine(): expr = getCommandLineW()
 
     proc skipFindData(f: TWIN32_FIND_DATA): bool {.inline.} =
-      result = f.cFilename[0].int == ord('.')
+      let 
+        nul = 0
+        dot = ord('.')
+      result = (f.cFilename[0].int == dot)
+      if result:
+        result = (f.cFilename[1].int in {dot, nul})
+        if result:
+          result = (f.cFilename[2].int == nul)
 
     template getFilename(f: expr): expr =
       $cast[WideCString](addr(f.cFilename[0]))
@@ -352,11 +359,18 @@ when defined(windows):
     template getCommandLine(): expr = getCommandLineA()
 
     proc skipFindData(f: TWIN32_FIND_DATA): bool {.inline.} =
-      result = f.cFilename[0] == '.'
+      let 
+        nul = '\0'
+        dot = '.'
+      result = (f.cFilename[0] == dot)
+      if result:
+        result = (f.cFilename[1] in {dot, nul})
+        if result:
+          result = (f.cFilename[2] == nul)
 
     template getFilename(f: expr): expr = $f.cFilename
-    
-proc existsFile*(filename: string): bool {.rtl, extern: "nos$1", 
+
+proc existsFile*(filename: string): bool {.rtl, extern: "nos$1",
                                           tags: [FReadDir].} =
   ## Returns true if the file exists, false otherwise.
   when defined(windows):
@@ -384,6 +398,14 @@ proc existsDir*(dir: string): bool {.rtl, extern: "nos$1", tags: [FReadDir].} =
     var res: TStat
     return stat(dir, res) >= 0'i32 and S_ISDIR(res.st_mode)
 
+proc fileExists*(filename: string): bool {.inline.} =
+  ## Synonym for existsFile
+  existsFile(filename)
+
+proc dirExists*(dir: string): bool {.inline.} =
+  ## Synonym for existsDir
+  existsDir(dir)
+
 proc getLastModificationTime*(file: string): TTime {.rtl, extern: "nos$1".} =
   ## Returns the `file`'s last modification time.
   when defined(posix):
@@ -410,7 +432,7 @@ proc getLastAccessTime*(file: string): TTime {.rtl, extern: "nos$1".} =
     result = winTimeToUnixTime(rdFileTime(f.ftLastAccessTime))
     findclose(h)
 
-proc getCreationTime*(file: string): TTime {.rtl, extern: "nos$1".} = 
+proc getCreationTime*(file: string): TTime {.rtl, extern: "nos$1".} =
   ## Returns the `file`'s creation time.
   when defined(posix):
     var res: TStat
@@ -524,7 +546,7 @@ proc SplitPath*(path: string): tuple[head, tail: string] {.
   ## Splits a directory into (head, tail), so that
   ## ``JoinPath(head, tail) == path``.
   ##
-  ## Examples: 
+  ## Examples:
   ##
   ## .. code-block:: nimrod
   ##   SplitPath("usr/local/bin") -> ("usr/local", "bin")
@@ -567,7 +589,7 @@ proc parentDir*(path: string): string {.
 
 proc isRootDir*(path: string): bool {.
   noSideEffect, rtl, extern: "nos$1".} =
-  ## Checks whether a given `path` is a root directory 
+  ## Checks whether a given `path` is a root directory
   result = parentDirPos(path) < 0
 
 iterator parentDirs*(path: string, fromRoot=false, inclusive=true): string =
@@ -589,7 +611,7 @@ iterator parentDirs*(path: string, fromRoot=false, inclusive=true): string =
   else:
     for i in countup(0, path.len - 2): # ignore the last /
       # deal with non-normalized paths such as /foo//bar//baz
-      if path[i] in {dirsep, altsep} and 
+      if path[i] in {dirsep, altsep} and
           (i == 0 or path[i-1] notin {dirsep, altsep}):
         yield path.substr(0, i)
 
@@ -642,7 +664,7 @@ proc splitFile*(path: string): tuple[dir, name, ext: string] {.
     var dotPos = path.len
     for i in countdown(len(path)-1, 0):
       if path[i] == ExtSep:
-        if dotPos == path.len and i > 0 and 
+        if dotPos == path.len and i > 0 and
             path[i-1] notin {dirsep, altsep}: dotPos = i
       elif path[i] in {dirsep, altsep}:
         sepPos = i
@@ -653,7 +675,7 @@ proc splitFile*(path: string): tuple[dir, name, ext: string] {.
 
 proc extractFilename*(path: string): string {.
   noSideEffect, rtl, extern: "nos$1".} =
-  ## Extracts the filename of a given `path`. This is the same as 
+  ## Extracts the filename of a given `path`. This is the same as
   ## ``name & ext`` from ``splitFile(path)``.
   if path.len == 0 or path[path.len-1] in {dirSep, altSep}:
     result = ""
@@ -669,7 +691,7 @@ proc expandFilename*(filename: string): string {.rtl, extern: "nos$1",
       var unused: widecstring
       var res = newWideCString("", bufsize div 2)
       var L = GetFullPathNameW(newWideCString(filename), bufsize, res, unused)
-      if L <= 0'i32 or L >= bufsize: 
+      if L <= 0'i32 or L >= bufsize:
         OSError(OSLastError())
       result = res$L
     else:
@@ -684,7 +706,7 @@ proc expandFilename*(filename: string): string {.rtl, extern: "nos$1",
     var r = realpath(filename, result)
     if r.isNil: OSError(OSLastError())
     setlen(result, c_strlen(result))
- 
+
 proc ChangeFileExt*(filename, ext: string): string {.
   noSideEffect, rtl, extern: "nos$1".} =
   ## Changes the file extension to `ext`.
@@ -740,12 +762,12 @@ proc isAbsolute*(path: string): bool {.rtl, noSideEffect, extern: "nos$1".} =
   elif defined(posix):
     result = path[0] == '/'
 
-proc sameFile*(path1, path2: string): bool {.rtl, extern: "nos$1", 
+proc sameFile*(path1, path2: string): bool {.rtl, extern: "nos$1",
   tags: [FReadDir].} =
-  ## Returns True if both pathname arguments refer to the same physical 
+  ## Returns True if both pathname arguments refer to the same physical
   ## file or directory. Raises an exception if any of the files does not
   ## exist or information about it can not be obtained.
-  ## 
+  ##
   ## This proc will return true if given two alternative hard-linked or
   ## sym-linked paths to the same file or directory.
   when defined(Windows):
@@ -761,7 +783,7 @@ proc sameFile*(path1, path2: string): bool {.rtl, extern: "nos$1",
 
       var f1 = OpenHandle(p1)
       var f2 = OpenHandle(p2)
-      
+
     else:
       template OpenHandle(path: expr): expr =
         CreateFileA(path, 0'i32, FILE_SHARE_DELETE or FILE_SHARE_READ or
@@ -829,7 +851,87 @@ proc sameFileContent*(path1, path2: string): bool {.rtl, extern: "nos$1",
   close(a)
   close(b)
 
-proc copyFile*(source, dest: string) {.rtl, extern: "nos$1", 
+type
+  TFilePermission* = enum  ## file access permission; modelled after UNIX
+    fpUserExec,            ## execute access for the file owner
+    fpUserWrite,           ## write access for the file owner
+    fpUserRead,            ## read access for the file owner
+    fpGroupExec,           ## execute access for the group
+    fpGroupWrite,          ## write access for the group
+    fpGroupRead,           ## read access for the group
+    fpOthersExec,          ## execute access for others
+    fpOthersWrite,         ## write access for others
+    fpOthersRead           ## read access for others
+
+proc getFilePermissions*(filename: string): set[TFilePermission] {.
+  rtl, extern: "nos$1", tags: [FReadDir].} =
+  ## retrieves file permissions for `filename`. `OSError` is raised in case of
+  ## an error. On Windows, only the ``readonly`` flag is checked, every other
+  ## permission is available in any case.
+  when defined(posix):
+    var a: TStat
+    if stat(filename, a) < 0'i32: OSError(OSLastError())
+    result = {}
+    if (a.st_mode and S_IRUSR) != 0'i32: result.incl(fpUserRead)
+    if (a.st_mode and S_IWUSR) != 0'i32: result.incl(fpUserWrite)
+    if (a.st_mode and S_IXUSR) != 0'i32: result.incl(fpUserExec)
+
+    if (a.st_mode and S_IRGRP) != 0'i32: result.incl(fpGroupRead)
+    if (a.st_mode and S_IWGRP) != 0'i32: result.incl(fpGroupWrite)
+    if (a.st_mode and S_IXGRP) != 0'i32: result.incl(fpGroupExec)
+
+    if (a.st_mode and S_IROTH) != 0'i32: result.incl(fpOthersRead)
+    if (a.st_mode and S_IWOTH) != 0'i32: result.incl(fpOthersWrite)
+    if (a.st_mode and S_IXOTH) != 0'i32: result.incl(fpOthersExec)
+  else:
+    when useWinUnicode:
+      wrapUnary(res, GetFileAttributesW, filename)
+    else:
+      var res = GetFileAttributesA(filename)
+    if res == -1'i32: OSError(OSLastError())
+    if (res and FILE_ATTRIBUTE_READONLY) != 0'i32:
+      result = {fpUserExec, fpUserRead, fpGroupExec, fpGroupRead, 
+                fpOthersExec, fpOthersRead}
+    else:
+      result = {fpUserExec..fpOthersRead}
+  
+proc setFilePermissions*(filename: string, permissions: set[TFilePermission]) {.
+  rtl, extern: "nos$1", tags: [FWriteDir].} =
+  ## sets the file permissions for `filename`. `OSError` is raised in case of
+  ## an error. On Windows, only the ``readonly`` flag is changed, depending on
+  ## ``fpUserWrite``.
+  when defined(posix):
+    var p = 0'i32
+    if fpUserRead in permissions: p = p or S_IRUSR
+    if fpUserWrite in permissions: p = p or S_IWUSR
+    if fpUserExec in permissions: p = p or S_IXUSR
+    
+    if fpGroupRead in permissions: p = p or S_IRGRP
+    if fpGroupWrite in permissions: p = p or S_IWGRP
+    if fpGroupExec in permissions: p = p or S_IXGRP
+    
+    if fpOthersRead in permissions: p = p or S_IROTH
+    if fpOthersWrite in permissions: p = p or S_IWOTH
+    if fpOthersExec in permissions: p = p or S_IXOTH
+    
+    if chmod(filename, p) != 0: OSError(OSLastError())
+  else:
+    when useWinUnicode:
+      wrapUnary(res, GetFileAttributesW, filename)
+    else:
+      var res = GetFileAttributesA(filename)
+    if res == -1'i32: OSError(OSLastError())
+    if fpUserWrite in permissions: 
+      res = res and not FILE_ATTRIBUTE_READONLY
+    else:
+      res = res or FILE_ATTRIBUTE_READONLY
+    when useWinUnicode:
+      wrapBinary(res2, SetFileAttributesW, filename, res)
+    else:
+      var res2 = SetFileAttributesA(filename, res)
+    if res2 == - 1'i32: OSError(OSLastError())
+
+proc copyFile*(source, dest: string) {.rtl, extern: "nos$1",
   tags: [FReadIO, FWriteIO].} =
   ## Copies a file from `source` to `dest`.
   ##
@@ -870,22 +972,45 @@ proc copyFile*(source, dest: string) {.rtl, extern: "nos$1",
     close(s)
     close(d)
 
-proc moveFile*(source, dest: string) {.rtl, extern: "nos$1", 
+proc moveFile*(source, dest: string) {.rtl, extern: "nos$1",
   tags: [FReadIO, FWriteIO].} =
   ## Moves a file from `source` to `dest`. If this fails, `EOS` is raised.
   if crename(source, dest) != 0'i32:
     raise newException(EOS, $strerror(errno))
 
-when not defined(ENOENT):
+when not defined(ENOENT) and not defined(Windows):
   var ENOENT {.importc, header: "<errno.h>".}: cint
 
+when defined(Windows):
+  when useWinUnicode:
+    template DeleteFile(file: expr): expr {.immediate.} = DeleteFileW(file)
+    template SetFileAttributes(file, attrs: expr): expr {.immediate.} = 
+      SetFileAttributesW(file, attrs)
+  else:
+    template DeleteFile(file: expr): expr {.immediate.} = DeleteFileA(file)
+    template SetFileAttributes(file, attrs: expr): expr {.immediate.} = 
+      SetFileAttributesA(file, attrs)
+
 proc removeFile*(file: string) {.rtl, extern: "nos$1", tags: [FWriteDir].} =
   ## Removes the `file`. If this fails, `EOS` is raised. This does not fail
   ## if the file never existed in the first place.
-  if cremove(file) != 0'i32 and errno != ENOENT:
-    raise newException(EOS, $strerror(errno))
+  ## On Windows, ignores the read-only attribute.
+  when defined(Windows):
+    when useWinUnicode:
+      let f = newWideCString(file)
+    else:
+      let f = file
+    if DeleteFile(f) == 0:
+      if GetLastError() == ERROR_ACCESS_DENIED: 
+        if SetFileAttributes(f, FILE_ATTRIBUTE_NORMAL) == 0:
+          OSError(OSLastError())
+        if DeleteFile(f) == 0:
+          OSError(OSLastError())
+  else:
+    if cremove(file) != 0'i32 and errno != ENOENT:
+      raise newException(EOS, $strerror(errno))
 
-proc execShellCmd*(command: string): int {.rtl, extern: "nos$1", 
+proc execShellCmd*(command: string): int {.rtl, extern: "nos$1",
   tags: [FExecIO].} =
   ## Executes a `shell command`:idx:.
   ##
@@ -897,7 +1022,7 @@ proc execShellCmd*(command: string): int {.rtl, extern: "nos$1",
   ## module.
   result = csystem(command)
 
-# Environment handling cannot be put into RTL, because the ``envPairs`` 
+# Environment handling cannot be put into RTL, because the ``envPairs``
 # iterator depends on ``environment``.
 
 var
@@ -943,11 +1068,11 @@ when defined(windows):
 
 else:
   const
-    useNSGetEnviron = defined(macosx) and 
+    useNSGetEnviron = defined(macosx) and
       (defined(createNimRtl) or defined(useNimRtl))
   when useNSGetEnviron:
     # From the manual:
-    # Shared libraries and bundles don't have direct access to environ, 
+    # Shared libraries and bundles don't have direct access to environ,
     # which is only available to the loader ld(1) when a complete program
     # is being linked.
     # The environment routines can still be used, but if direct access to
@@ -1025,13 +1150,13 @@ proc putEnv*(key, val: string) {.tags: [FWriteEnv].} =
       if SetEnvironmentVariableA(key, val) == 0'i32: OSError(OSLastError())
 
 iterator envPairs*(): tuple[key, value: TaintedString] {.tags: [FReadEnv].} =
-  ## Iterate over all `environments variables`:idx:. In the first component 
+  ## Iterate over all `environments variables`:idx:. In the first component
   ## of the tuple is the name of the current variable stored, in the second
   ## its value.
   getEnvVarsC()
   for i in 0..high(environment):
     var p = find(environment[i], '=')
-    yield (TaintedString(substr(environment[i], 0, p-1)), 
+    yield (TaintedString(substr(environment[i], 0, p-1)),
            TaintedString(substr(environment[i], p+1)))
 
 iterator walkFiles*(pattern: string): string {.tags: [FReadDir].} =
@@ -1125,7 +1250,7 @@ iterator walkDir*(dir: string): tuple[kind: TPathComponent, path: string] {.
 
 iterator walkDirRec*(dir: string, filter={pcFile, pcDir}): string {.
   tags: [FReadDir].} =
-  ## walks over the directory `dir` and yields for each file in `dir`. The 
+  ## walks over the directory `dir` and yields for each file in `dir`. The
   ## full path for each file is returned.
   ## Walking is recursive. `filter` controls the behaviour of the iterator:
   ##
@@ -1137,7 +1262,7 @@ iterator walkDirRec*(dir: string, filter={pcFile, pcDir}): string {.
   ## ``pcDir``               follow real directories
   ## ``pcLinkToDir``         follow symbolic links to directories
   ## ---------------------   ---------------------------------------------
-  ## 
+  ##
   var stack = @[dir]
   while stack.len > 0:
     for k,p in walkDir(stack.pop()):
@@ -1146,14 +1271,14 @@ iterator walkDirRec*(dir: string, filter={pcFile, pcDir}): string {.
         of pcFile, pcLinkToFile: yield p
         of pcDir, pcLinkToDir: stack.add(p)
 
-proc rawRemoveDir(dir: string) = 
+proc rawRemoveDir(dir: string) =
   when defined(windows):
     when useWinUnicode:
       wrapUnary(res, RemoveDirectoryW, dir)
     else:
       var res = RemoveDirectoryA(dir)
     let lastError = OSLastError()
-    if res == 0'i32 and lastError.int32 != 3'i32 and 
+    if res == 0'i32 and lastError.int32 != 3'i32 and
         lastError.int32 != 18'i32 and lastError.int32 != 2'i32:
       OSError(lastError)
   else:
@@ -1166,7 +1291,7 @@ proc removeDir*(dir: string) {.rtl, extern: "nos$1", tags: [
   ##
   ## If this fails, `EOS` is raised. This does not fail if the directory never
   ## existed in the first place.
-  for kind, path in walkDir(dir): 
+  for kind, path in walkDir(dir):
     case kind
     of pcFile, pcLinkToFile, pcLinkToDir: removeFile(path)
     of pcDir: removeDir(path)
@@ -1192,7 +1317,7 @@ proc createDir*(dir: string) {.rtl, extern: "nos$1", tags: [FWriteDir].} =
   ##
   ## The directory may contain several subdirectories that do not exist yet.
   ## The full path is created. If this fails, `EOS` is raised. It does **not**
-  ## fail if the path already exists because for most usages this does not 
+  ## fail if the path already exists because for most usages this does not
   ## indicate an error.
   var omitNext = false
   when defined(doslike):
@@ -1205,7 +1330,7 @@ proc createDir*(dir: string) {.rtl, extern: "nos$1", tags: [FWriteDir].} =
         rawCreateDir(substr(dir, 0, i-1))
   rawCreateDir(dir)
 
-proc copyDir*(source, dest: string) {.rtl, extern: "nos$1", 
+proc copyDir*(source, dest: string) {.rtl, extern: "nos$1",
   tags: [FWriteIO, FReadIO].} =
   ## Copies a directory from `source` to `dest`. If this fails, `EOS` is raised.
   createDir(dest)
@@ -1220,7 +1345,7 @@ proc copyDir*(source, dest: string) {.rtl, extern: "nos$1",
 
 proc parseCmdLine*(c: string): seq[string] {.
   noSideEffect, rtl, extern: "nos$1".} =
-  ## Splits a command line into several components;  
+  ## Splits a command line into several components;
   ## This proc is only occassionally useful, better use the `parseopt` module.
   ##
   ## On Windows, it uses the following parsing rules
@@ -1247,7 +1372,7 @@ proc parseCmdLine*(c: string): seq[string] {.
   ##   causing a literal double quotation mark (") to be placed in argv.
   ##
   ## On Posix systems, it uses the following parsing rules:
-  ## Components are separated by whitespace unless the whitespace 
+  ## Components are separated by whitespace unless the whitespace
   ## occurs within ``"`` or ``'`` quotes.
   result = @[]
   var i = 0
@@ -1260,31 +1385,31 @@ proc parseCmdLine*(c: string): seq[string] {.
       if c[i] == '\0': break
       var inQuote = false
       while true:
-        case c[i]        
+        case c[i]
         of '\0': break
         of '\\':
           var j = i
           while c[j] == '\\': inc(j)
-          if c[j] == '"': 
+          if c[j] == '"':
             for k in 1..(j-i) div 2: a.add('\\')
-            if (j-i) mod 2 == 0: 
+            if (j-i) mod 2 == 0:
               i = j
-            else: 
+            else:
               a.add('"')
               i = j+1
-          else: 
+          else:
             a.add(c[i])
             inc(i)
         of '"':
           inc(i)
           if not inQuote: inQuote = true
-          elif c[i] == '"': 
+          elif c[i] == '"':
             a.add(c[i])
             inc(i)
           else:
             inQuote = false
             break
-        of ' ', '\t': 
+        of ' ', '\t':
           if not inQuote: break
           a.add(c[i])
           inc(i)
@@ -1306,86 +1431,6 @@ proc parseCmdLine*(c: string): seq[string] {.
           add(a, c[i])
           inc(i)
     add(result, a)
-
-type
-  TFilePermission* = enum  ## file access permission; modelled after UNIX
-    fpUserExec,            ## execute access for the file owner
-    fpUserWrite,           ## write access for the file owner
-    fpUserRead,            ## read access for the file owner
-    fpGroupExec,           ## execute access for the group
-    fpGroupWrite,          ## write access for the group
-    fpGroupRead,           ## read access for the group
-    fpOthersExec,          ## execute access for others
-    fpOthersWrite,         ## write access for others
-    fpOthersRead           ## read access for others
-
-proc getFilePermissions*(filename: string): set[TFilePermission] {.
-  rtl, extern: "nos$1", tags: [FReadDir].} =
-  ## retrieves file permissions for `filename`. `OSError` is raised in case of
-  ## an error. On Windows, only the ``readonly`` flag is checked, every other
-  ## permission is available in any case.
-  when defined(posix):
-    var a: TStat
-    if stat(filename, a) < 0'i32: OSError(OSLastError())
-    result = {}
-    if (a.st_mode and S_IRUSR) != 0'i32: result.incl(fpUserRead)
-    if (a.st_mode and S_IWUSR) != 0'i32: result.incl(fpUserWrite)
-    if (a.st_mode and S_IXUSR) != 0'i32: result.incl(fpUserExec)
-
-    if (a.st_mode and S_IRGRP) != 0'i32: result.incl(fpGroupRead)
-    if (a.st_mode and S_IWGRP) != 0'i32: result.incl(fpGroupWrite)
-    if (a.st_mode and S_IXGRP) != 0'i32: result.incl(fpGroupExec)
-
-    if (a.st_mode and S_IROTH) != 0'i32: result.incl(fpOthersRead)
-    if (a.st_mode and S_IWOTH) != 0'i32: result.incl(fpOthersWrite)
-    if (a.st_mode and S_IXOTH) != 0'i32: result.incl(fpOthersExec)
-  else:
-    when useWinUnicode:
-      wrapUnary(res, GetFileAttributesW, filename)
-    else:
-      var res = GetFileAttributesA(filename)
-    if res == -1'i32: OSError(OSLastError())
-    if (res and FILE_ATTRIBUTE_READONLY) != 0'i32:
-      result = {fpUserExec, fpUserRead, fpGroupExec, fpGroupRead, 
-                fpOthersExec, fpOthersRead}
-    else:
-      result = {fpUserExec..fpOthersRead}
-  
-proc setFilePermissions*(filename: string, permissions: set[TFilePermission]) {.
-  rtl, extern: "nos$1", tags: [FWriteDir].} =
-  ## sets the file permissions for `filename`. `OSError` is raised in case of
-  ## an error. On Windows, only the ``readonly`` flag is changed, depending on
-  ## ``fpUserWrite``.
-  when defined(posix):
-    var p = 0'i32
-    if fpUserRead in permissions: p = p or S_IRUSR
-    if fpUserWrite in permissions: p = p or S_IWUSR
-    if fpUserExec in permissions: p = p or S_IXUSR
-    
-    if fpGroupRead in permissions: p = p or S_IRGRP
-    if fpGroupWrite in permissions: p = p or S_IWGRP
-    if fpGroupExec in permissions: p = p or S_IXGRP
-    
-    if fpOthersRead in permissions: p = p or S_IROTH
-    if fpOthersWrite in permissions: p = p or S_IWOTH
-    if fpOthersExec in permissions: p = p or S_IXOTH
-    
-    if chmod(filename, p) != 0: OSError(OSLastError())
-  else:
-    when useWinUnicode:
-      wrapUnary(res, GetFileAttributesW, filename)
-    else:
-      var res = GetFileAttributesA(filename)
-    if res == -1'i32: OSError(OSLastError())
-    if fpUserWrite in permissions: 
-      res = res and not FILE_ATTRIBUTE_READONLY
-    else:
-      res = res or FILE_ATTRIBUTE_READONLY
-    when useWinUnicode:
-      wrapBinary(res2, SetFileAttributesW, filename, res)
-    else:
-      var res2 = SetFileAttributesA(filename, res)
-    if res2 == - 1'i32: OSError(OSLastError())
   
 proc copyFileWithPermissions*(source, dest: string,
                               ignorePermissionErrors = true) =
@@ -1407,19 +1452,19 @@ proc copyFileWithPermissions*(source, dest: string,
       if not ignorePermissionErrors:
         raise
 
-proc inclFilePermissions*(filename: string, 
+proc inclFilePermissions*(filename: string,
                           permissions: set[TFilePermission]) {.
   rtl, extern: "nos$1", tags: [FReadDir, FWriteDir].} =
-  ## a convenience procedure for: 
+  ## a convenience procedure for:
   ##
   ## .. code-block:: nimrod
   ##   setFilePermissions(filename, getFilePermissions(filename)+permissions)
   setFilePermissions(filename, getFilePermissions(filename)+permissions)
 
-proc exclFilePermissions*(filename: string, 
+proc exclFilePermissions*(filename: string,
                           permissions: set[TFilePermission]) {.
   rtl, extern: "nos$1", tags: [FReadDir, FWriteDir].} =
-  ## a convenience procedure for: 
+  ## a convenience procedure for:
   ##
   ## .. code-block:: nimrod
   ##   setFilePermissions(filename, getFilePermissions(filename)-permissions)
@@ -1459,7 +1504,7 @@ when defined(windows):
     if isNil(ownArgv): ownArgv = parseCmdLine($getCommandLine())
     result = ownArgv.len-1
 
-  proc paramStr*(i: int): TaintedString {.rtl, extern: "nos$1", 
+  proc paramStr*(i: int): TaintedString {.rtl, extern: "nos$1",
     tags: [FReadIO].} =
     ## Returns the `i`-th `command line argument`:idx: given to the
     ## application.
@@ -1481,6 +1526,12 @@ elif not defined(createNimRtl):
 
   proc paramCount*(): int {.tags: [FReadIO].} = return cmdCount-1
 
+when defined(paramCount):
+  proc commandLineParams*(): seq[TaintedString] =
+    result = @[]
+    for i in 1..paramCount():
+      result.add(paramStr(i))
+
 when defined(linux) or defined(solaris) or defined(bsd) or defined(aix):
   proc getApplAux(procPath: string): string =
     result = newString(256)
@@ -1494,7 +1545,7 @@ when defined(macosx):
   type
     cuint32* {.importc: "unsigned int", nodecl.} = int
     ## This is the same as the type ``uint32_t`` in *C*.
-  
+
   # a really hacky solution: since we like to include 2 headers we have to
   # define two procs which in reality are the same
   proc getExecPath1(c: cstring, size: var cuint32) {.
@@ -1553,13 +1604,13 @@ proc getAppFilename*(): string {.rtl, extern: "nos$1", tags: [FReadIO].} =
 
 proc getApplicationFilename*(): string {.rtl, extern: "nos$1", deprecated.} =
   ## Returns the filename of the application's executable.
-  ## **Deprecated since version 0.8.12**: use ``getAppFilename`` 
+  ## **Deprecated since version 0.8.12**: use ``getAppFilename``
   ## instead.
   result = getAppFilename()
 
 proc getApplicationDir*(): string {.rtl, extern: "nos$1", deprecated.} =
   ## Returns the directory of the application's executable.
-  ## **Deprecated since version 0.8.12**: use ``getAppDir`` 
+  ## **Deprecated since version 0.8.12**: use ``getAppDir``
   ## instead.
   result = splitFile(getAppFilename()).dir
 
@@ -1580,7 +1631,7 @@ proc sleep*(milsecs: int) {.rtl, extern: "nos$1", tags: [FTime].} =
 
 proc getFileSize*(file: string): biggestInt {.rtl, extern: "nos$1",
   tags: [FReadIO].} =
-  ## returns the file size of `file`. Can raise ``EOS``. 
+  ## returns the file size of `file`. Can raise ``EOS``.
   when defined(windows):
     var a: TWin32FindData
     var resA = findfirstFile(file, a)
@@ -1589,20 +1640,20 @@ proc getFileSize*(file: string): biggestInt {.rtl, extern: "nos$1",
     findclose(resA)
   else:
     var f: TFile
-    if open(f, file): 
+    if open(f, file):
       result = getFileSize(f)
       close(f)
     else: OSError(OSLastError())
 
-proc findExe*(exe: string): string {.tags: [FReadDir, FReadEnv].} = 
+proc findExe*(exe: string): string {.tags: [FReadDir, FReadEnv].} =
   ## Searches for `exe` in the current working directory and then
-  ## in directories listed in the ``PATH`` environment variable. 
-  ## Returns "" if the `exe` cannot be found. On DOS-like platforms, `exe` 
+  ## in directories listed in the ``PATH`` environment variable.
+  ## Returns "" if the `exe` cannot be found. On DOS-like platforms, `exe`
   ## is added an ``.exe`` file extension if it has no extension.
   result = addFileExt(exe, os.exeExt)
   if ExistsFile(result): return
   var path = string(os.getEnv("PATH"))
-  for candidate in split(path, pathSep): 
+  for candidate in split(path, pathSep):
     var x = candidate / result
     if ExistsFile(x): return x
   result = ""
@@ -1629,4 +1680,3 @@ proc expandTilde*(path: string): string =
     result = path
 
 {.pop.}
-
diff --git a/lib/pure/osproc.nim b/lib/pure/osproc.nim
index 754e34b85..61b940ce8 100644
--- a/lib/pure/osproc.nim
+++ b/lib/pure/osproc.nim
@@ -41,6 +41,58 @@ type
     poStdErrToStdOut,    ## merge stdout and stderr to the stdout stream
     poParentStreams      ## use the parent's streams
 
+proc quoteShellWindows*(s: string): string {.noSideEffect, rtl, extern: "nosp$1".} =
+  ## Quote s, so it can be safely passed to Windows API.
+  ## Based on Python's subprocess.list2cmdline
+  ## See http://msdn.microsoft.com/en-us/library/17w5ykft.aspx
+  let needQuote = {' ', '\t'} in s or s.len == 0
+
+  result = ""
+  var backslashBuff = ""
+  if needQuote:
+    result.add("\"")
+
+  for c in s:
+    if c == '\\':
+      backslashBuff.add(c)
+    elif c == '\"':
+      result.add(backslashBuff)
+      result.add(backslashBuff)
+      backslashBuff.setLen(0)
+      result.add("\\\"")
+    else:
+      if backslashBuff.len != 0:
+        result.add(backslashBuff)
+        backslashBuff.setLen(0)
+      result.add(c)
+
+  if needQuote:
+    result.add("\"")
+
+proc quoteShellPosix*(s: string): string {.noSideEffect, rtl, extern: "nosp$1".} =
+  ## Quote s, so it can be safely passed to POSIX shell.
+  ## Based on Python's pipes.quote
+  const safeUnixChars = {'%', '+', '-', '.', '/', '_', ':', '=', '@',
+                         '0'..'9', 'A'..'Z', 'a'..'z'}
+  if s.len == 0:
+    return "''"
+
+  let safe = s.allCharsInSet(safeUnixChars)
+
+  if safe:
+    return s
+  else:
+    return "'" & s.replace("'", "'\"'\"'") & "'"
+
+proc quoteShell*(s: string): string {.noSideEffect, rtl, extern: "nosp$1".} =
+  ## Quote s, so it can be safely passed to shell.
+  when defined(Windows):
+    return quoteShellWindows(s)
+  elif defined(posix):
+    return quoteShellPosix(s)
+  else:
+    {.error:"quoteShell is not supported on your system".}
+
 proc execProcess*(command: string,
                   options: set[TProcessOption] = {poStdErrToStdOut,
                                                   poUseShell}): TaintedString {.
@@ -307,10 +359,10 @@ when defined(Windows) and not defined(useNimRtl):
     result.writeDataImpl = hsWriteData
 
   proc buildCommandLine(a: string, args: openarray[string]): cstring =
-    var res = quoteIfContainsWhite(a)
+    var res = quoteShell(a)
     for i in 0..high(args):
       res.add(' ')
-      res.add(quoteIfContainsWhite(args[i]))
+      res.add(quoteShell(args[i]))
     result = cast[cstring](alloc0(res.len+1))
     copyMem(result, cstring(res), res.len)
 
@@ -510,10 +562,10 @@ elif not defined(useNimRtl):
     writeIdx = 1
 
   proc addCmdArgs(command: string, args: openarray[string]): string =
-    result = quoteIfContainsWhite(command)
+    result = quoteShell(command)
     for i in 0 .. high(args):
       add(result, " ")
-      add(result, quoteIfContainsWhite(args[i]))
+      add(result, quoteShell(args[i]))
 
   proc toCStringArray(b, a: openarray[string]): cstringArray =
     result = cast[cstringArray](alloc0((a.len + b.len + 1) * sizeof(cstring)))
@@ -792,5 +844,14 @@ proc execCmdEx*(command: string, options: set[TProcessOption] = {
   close(p)
 
 when isMainModule:
-  var x = execProcess("gcc -v")
-  echo "ECHO ", x
+  assert quoteShellWindows("aaa") == "aaa"
+  assert quoteShellWindows("aaa\"") == "aaa\\\""
+  assert quoteShellWindows("") == "\"\""
+
+  assert quoteShellPosix("aaa") == "aaa"
+  assert quoteShellPosix("aaa a") == "'aaa a'"
+  assert quoteShellPosix("") == "''"
+  assert quoteShellPosix("a'a") == "'a'\"'\"'a'"
+
+  when defined(posix):
+    assert quoteShell("") == "''"
diff --git a/lib/pure/parseopt.nim b/lib/pure/parseopt.nim
index 6d9d16bc9..fa704bbce 100644
--- a/lib/pure/parseopt.nim
+++ b/lib/pure/parseopt.nim
@@ -10,7 +10,10 @@
 ## This module provides the standard Nimrod command line parser.
 ## It supports one convenience iterator over all command line options and some
 ## lower-level features.
-
+##
+## DEPRECATED. Use parseopt2 instead as this version has issues with spaces
+## in arguments.
+{.deprecated.}
 {.push debugger: off.}
 
 include "system/inclrtl"
diff --git a/lib/pure/parseopt2.nim b/lib/pure/parseopt2.nim
new file mode 100644
index 000000000..5e79d8a18
--- /dev/null
+++ b/lib/pure/parseopt2.nim
@@ -0,0 +1,148 @@
+#
+#
+#            Nimrod's Runtime Library
+#        (c) Copyright 2012 Andreas Rumpf
+#
+#    See the file "copying.txt", included in this
+#    distribution, for details about the copyright.
+#
+
+## This module provides the standard Nimrod command line parser.
+## It supports one convenience iterator over all command line options and some
+## lower-level features.
+##
+## Supported syntax:
+##
+## 1. short options - ``-abcd``, where a, b, c, d are names
+## 2. long option - ``--foo:bar``, ``--foo=bar`` or ``--foo``
+## 3. argument - everything else
+
+{.push debugger: off.}
+
+include "system/inclrtl"
+
+import
+  os, strutils
+
+type
+  TCmdLineKind* = enum        ## the detected command line token
+    cmdEnd,                   ## end of command line reached
+    cmdArgument,              ## argument detected
+    cmdLongOption,            ## a long option ``--option`` detected
+    cmdShortOption            ## a short option ``-c`` detected
+  TOptParser* =
+      object of TObject ## this object implements the command line parser
+    cmd: seq[string]
+    pos: int
+    remainingShortOptions: string
+    kind*: TCmdLineKind       ## the dected command line token
+    key*, val*: TaintedString ## key and value pair; ``key`` is the option
+                              ## or the argument, ``value`` is not "" if
+                              ## the option was given a value
+
+proc initOptParser*(cmdline: seq[string]): TOptParser {.rtl.} =
+  ## Initalizes option parses with cmdline. cmdline should not contain
+  ## argument 0 - program name.
+  ## If cmdline == nil default to current command line arguments.
+  result.remainingShortOptions = ""
+  when not defined(createNimRtl):
+    if cmdline == nil:
+      result.cmd = commandLineParams()
+      return
+  else:
+    assert cmdline != nil, "Cannot determine command line arguments."
+
+  result.cmd = @cmdline
+
+proc initOptParser*(cmdline: string): TOptParser {.rtl, deprecated.} =
+  ## Initalizes option parses with cmdline. Splits cmdline in on spaces
+  ## and calls initOptParser(openarray[string])
+  ## Do not use.
+  if cmdline == "": # backward compatibilty
+    return initOptParser(seq[string](nil))
+  else:
+    return initOptParser(cmdline.split)
+
+when not defined(createNimRtl):
+  proc initOptParser*(): TOptParser =
+    ## Initializes option parser from current command line arguments.
+    return initOptParser(commandLineParams())
+
+proc next*(p: var TOptParser) {.rtl, extern: "npo$1".}
+
+proc nextOption(p: var TOptParser, token: string, allowEmpty: bool) =
+  for splitchar in [':', '=']:
+    if splitchar in token:
+      let pos = token.find(splitchar)
+      p.key = token[0..pos-1]
+      p.val = token[pos+1..token.len-1]
+      return
+
+  p.key = token
+  if allowEmpty:
+    p.val = ""
+  else:
+    p.remainingShortOptions = token[0..token.len-1]
+    p.next()
+
+proc next(p: var TOptParser) =
+  if p.remainingShortOptions.len != 0:
+    p.kind = cmdShortOption
+    p.key = TaintedString(p.remainingShortOptions[0..0])
+    p.val = ""
+    p.remainingShortOptions = p.remainingShortOptions[1..p.remainingShortOptions.len-1]
+    return
+
+  if p.pos >= p.cmd.len:
+    p.kind = cmdEnd
+    return
+
+  let token = p.cmd[p.pos]
+  p.pos += 1
+
+  if token.startswith("--"):
+    p.kind = cmdLongOption
+    nextOption(p, token[2..token.len-1], allowEmpty=true)
+  elif token.startswith("-"):
+    p.kind = cmdShortOption
+    nextOption(p, token[1..token.len-1], allowEmpty=true)
+  else:
+    p.kind = cmdArgument
+    p.key = token
+    p.val = ""
+
+proc cmdLineRest*(p: TOptParser): TaintedString {.rtl, extern: "npo$1", deprecated.} =
+  ## Returns part of command line string that has not been parsed yet.
+  ## Do not use - does not correctly handle whitespace.
+  return p.cmd[p.pos..p.cmd.len-1].join(" ")
+
+type
+  TGetoptResult* = tuple[kind: TCmdLineKind, key, val: TaintedString]
+
+when defined(paramCount):
+  iterator getopt*(): TGetoptResult =
+    ## This is an convenience iterator for iterating over the command line.
+    ## This uses the TOptParser object. Example:
+    ##
+    ## .. code-block:: nimrod
+    ##   var
+    ##     filename = ""
+    ##   for kind, key, val in getopt():
+    ##     case kind
+    ##     of cmdArgument:
+    ##       filename = key
+    ##     of cmdLongOption, cmdShortOption:
+    ##       case key
+    ##       of "help", "h": writeHelp()
+    ##       of "version", "v": writeVersion()
+    ##     of cmdEnd: assert(false) # cannot happen
+    ##   if filename == "":
+    ##     # no filename has been given, so we show the help:
+    ##     writeHelp()
+    var p = initOptParser()
+    while true:
+      next(p)
+      if p.kind == cmdEnd: break
+      yield (p.kind, p.key, p.val)
+
+{.pop.}
diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim
index a4aa81578..fe71cb77b 100644
--- a/lib/pure/strutils.nim
+++ b/lib/pure/strutils.nim
@@ -709,9 +709,11 @@ proc rfind*(s, sub: string, start: int = -1): int {.noSideEffect.} =
     if result != -1: return
   return -1
 

-proc quoteIfContainsWhite*(s: string): string =

+proc quoteIfContainsWhite*(s: string): string {.deprecated.} =
   ## returns ``'"' & s & '"'`` if `s` contains a space and does not

   ## start with a quote, else returns `s`

+  ## DEPRECATED as it was confused for shell quoting function.
+  ## For this application use osproc.quoteShell.
   if find(s, {' ', '\t'}) >= 0 and s[0] != '"':

     result = '"' & s & '"'

   else:

diff --git a/lib/pure/unicode.nim b/lib/pure/unicode.nim
index 4aacb2f71..f90fc2745 100644
--- a/lib/pure/unicode.nim
+++ b/lib/pure/unicode.nim
@@ -132,6 +132,10 @@ proc toUTF8*(c: TRune): string {.rtl, extern: "nuc$1".} =
     result = newString(1)
     result[0] = chr(i)
 
+proc `$`*(rune: TRune): string =
+  ## converts a rune to a string
+  rune.toUTF8
+
 proc `$`*(runes: seq[TRune]): string =
   ## converts a sequence of runes to a string
   result = ""
diff --git a/lib/pure/unittest.nim b/lib/pure/unittest.nim
index 71f4d498b..f847d24f4 100644
--- a/lib/pure/unittest.nim
+++ b/lib/pure/unittest.nim
@@ -98,8 +98,12 @@ template fail* =
 
   when not defined(ECMAScript):
     if AbortOnError: quit(1)
-  
-  TestStatusIMPL = FAILED
+ 
+  when defined(TestStatusIMPL):
+    TestStatusIMPL = FAILED
+  else:
+    program_result += 1
+
   checkpoints = @[]
 
 macro check*(conditions: stmt): stmt {.immediate.} =
@@ -111,7 +115,8 @@ macro check*(conditions: stmt): stmt {.immediate.} =
     counter = 0
 
   template asgn(a, value: expr): stmt =
-    let a = value
+    var a = value # XXX: we need "var: var" here in order to
+                  # preserve the semantics of var params
   
   template print(name, value: expr): stmt =
     when compiles(string($value)):
@@ -146,7 +151,8 @@ macro check*(conditions: stmt): stmt {.immediate.} =
   of nnkStmtList:
     result = newNimNode(nnkStmtList)
     for i in countup(0, checked.len - 1):
-      result.add(newCall(!"check", checked[i]))
+      if checked[i].kind != nnkCommentStmt:
+        result.add(newCall(!"check", checked[i]))
 
   else:
     template rewrite(Exp, lineInfoLit: expr, expLit: string): stmt =
diff --git a/lib/system.nim b/lib/system.nim
index b2d19a885..26109bb97 100644
--- a/lib/system.nim
+++ b/lib/system.nim
@@ -374,10 +374,10 @@ proc newSeq*[T](s: var seq[T], len: int) {.magic: "NewSeq", noSideEffect.}
   ## This is equivalent to ``s = @[]; setlen(s, len)``, but more
   ## efficient since no reallocation is needed.
   ##
-  ## Note that the sequence will be filled with uninitialized entries, which
-  ## can be a problem for sequences containing strings. After the creation of
-  ## the sequence you should assign entries to the sequence instead of adding
-  ## them. Example:
+  ## Note that the sequence will be filled with zeroed entries, which can be a
+  ## problem for sequences containing strings since their value will be
+  ## ``nil``. After the creation of the sequence you should assign entries to
+  ## the sequence instead of adding them. Example:
   ##
   ## .. code-block:: nimrod
   ##   var inputStrings : seq[string]
@@ -390,10 +390,10 @@ proc newSeq*[T](s: var seq[T], len: int) {.magic: "NewSeq", noSideEffect.}
 proc newSeq*[T](len = 0): seq[T] =
   ## creates a new sequence of type ``seq[T]`` with length ``len``.
   ##
-  ## Note that the sequence will be filled with uninitialized entries, which
-  ## can be a problem for sequences containing strings. After the creation of
-  ## the sequence you should assign entries to the sequence instead of adding
-  ## them. Example:
+  ## Note that the sequence will be filled with zeroed entries, which can be a
+  ## problem for sequences containing strings since their value will be
+  ## ``nil``. After the creation of the sequence you should assign entries to
+  ## the sequence instead of adding them. Example:
   ##
   ## .. code-block:: nimrod
   ##   var inputStrings = newSeq[string](3)
@@ -923,6 +923,10 @@ proc quit*(errorcode: int = QuitSuccess) {.
   ## The proc ``quit(QuitSuccess)`` is called implicitly when your nimrod
   ## program finishes without incident. A raised unhandled exception is
   ## equivalent to calling ``quit(QuitFailure)``.
+  ##
+  ## Note that this is a *runtime* call and using ``quit`` inside a macro won't
+  ## have any compile time effect. If you need to stop the compiler inside a
+  ## macro, use the ``error`` or ``fatal`` pragmas.
 
 template sysAssert(cond: bool, msg: string) =
   when defined(useSysAssert):
@@ -999,11 +1003,17 @@ type
     ## platform-dependant in general.
 
 when defined(windows):
-  type clong* {.importc: "long", nodecl.} = int32
-    ## This is the same as the type ``long`` in *C*.
+  type
+    clong* {.importc: "long", nodecl.} = int32
+      ## This is the same as the type ``long`` in *C*.
+    culong* {.importc: "unsigned long", nodecl.} = uint32
+      ## This is the same as the type ``unsigned long`` in *C*.
 else:
-  type clong* {.importc: "long", nodecl.} = int
-    ## This is the same as the type ``long`` in *C*.
+  type
+    clong* {.importc: "long", nodecl.} = int
+      ## This is the same as the type ``long`` in *C*.
+    culong* {.importc: "unsigned long", nodecl.} = uint
+      ## This is the same as the type ``unsigned long`` in *C*.
 
 type # these work for most platforms:
   cchar* {.importc: "char", nodecl.} = char
@@ -1032,8 +1042,6 @@ type # these work for most platforms:
     ## This is the same as the type ``unsigned short`` in *C*.
   cuint* {.importc: "int", nodecl.} = uint32
     ## This is the same as the type ``unsigned int`` in *C*.
-  culong* {.importc: "unsigned long", nodecl.} = uint
-    ## This is the same as the type ``unsigned long`` in *C*.
   culonglong* {.importc: "unsigned long long", nodecl.} = uint64
     ## This is the same as the type ``unsigned long long`` in *C*.
 
@@ -1042,10 +1050,10 @@ type # these work for most platforms:
     ## high value is large enough to disable bounds checking in practice.
     ## Use `cstringArrayToSeq` to convert it into a ``seq[string]``.
   
-  PFloat32* = ptr Float32 ## an alias for ``ptr float32``
-  PFloat64* = ptr Float64 ## an alias for ``ptr float64``
-  PInt64* = ptr Int64 ## an alias for ``ptr int64``
-  PInt32* = ptr Int32 ## an alias for ``ptr int32``
+  PFloat32* = ptr float32 ## an alias for ``ptr float32``
+  PFloat64* = ptr float64 ## an alias for ``ptr float64``
+  PInt64* = ptr int64 ## an alias for ``ptr int64``
+  PInt32* = ptr int32 ## an alias for ``ptr int32``
 
 proc toFloat*(i: int): float {.
   magic: "ToFloat", noSideEffect, importc: "toFloat".}
@@ -1943,15 +1951,13 @@ when not defined(JS): #and not defined(NimrodVM):
         ## The standard output stream.
       stderr* {.importc: "stderr", header: "<stdio.h>".}: TFile
         ## The standard error stream.
-        ##
-        ## Note: In my opinion, this should not be used -- the concept of a
-        ## separate error stream is a design flaw of UNIX. A separate *message
-        ## stream* is a good idea, but since it is named ``stderr`` there are few
-        ## programs out there that distinguish properly between ``stdout`` and
-        ## ``stderr``. So, that's what you get if you don't name your variables
-        ## appropriately. It also annoys people if redirection
-        ## via ``>output.txt`` does not work because the program writes
-        ## to ``stderr``.
+
+    when defined(useStdoutAsStdmsg):
+      template stdmsg*: TFile = stdout
+    else:
+      template stdmsg*: TFile = stderr
+        ## Template which expands to either stdout or stderr depending on
+        ## `useStdoutAsStdmsg` compile-time switch.
 
     proc Open*(f: var TFile, filename: string,
                mode: TFileMode = fmRead, bufSize: int = -1): Bool {.tags: [].}
@@ -2615,12 +2621,13 @@ type
   PNimrodNode* {.magic: "PNimrodNode".} = ref TNimrodNode
     ## represents a Nimrod AST node. Macros operate on this type.
 
-template eval*(blk: stmt): stmt =
-  ## executes a block of code at compile time just as if it was a macro
-  ## optionally, the block can return an AST tree that will replace the 
-  ## eval expression
-  macro payload: stmt {.gensym.} = blk
-  payload()
+when false:
+  template eval*(blk: stmt): stmt =
+    ## executes a block of code at compile time just as if it was a macro
+    ## optionally, the block can return an AST tree that will replace the 
+    ## eval expression
+    macro payload: stmt {.gensym.} = blk
+    payload()
 
 when hostOS != "standalone":
   proc insert*(x: var string, item: string, i = 0) {.noSideEffect.} = 
@@ -2668,5 +2675,21 @@ proc locals*(): TObject {.magic: "Locals", noSideEffect.} =
   ## in the current scope. This is quite fast as it does not rely
   ## on any debug or runtime information. Note that in constrast to what
   ## the official signature says, the return type is not ``TObject`` but a
-  ## tuple of a structure that depends on the current scope.
+  ## tuple of a structure that depends on the current scope. Example:
+  ##
+  ## .. code-block:: nimrod
+  ##   proc testLocals() =
+  ##     var
+  ##       a = "something"
+  ##       b = 4
+  ##       c = locals()
+  ##       d = "super!"
+  ##
+  ##     b = 1
+  ##     for name, value in fieldPairs(c):
+  ##       echo "name ", name, " with value ", value
+  ##     echo "B is ", b
+  ##   # -> name a with value something
+  ##   # -> name b with value 4
+  ##   # -> B is 1
   nil
diff --git a/lib/system/alloc.nim b/lib/system/alloc.nim
index 2bab79212..17258cf68 100644
--- a/lib/system/alloc.nim
+++ b/lib/system/alloc.nim
@@ -760,7 +760,7 @@ proc getOccupiedMem(a: TMemRegion): int {.inline.} =
 # ---------------------- thread memory region -------------------------------
 
 template InstantiateForRegion(allocator: expr) =
-  when false:
+  when defined(fulldebug):
     proc interiorAllocatedPtr*(p: pointer): pointer =
       result = interiorAllocatedPtr(allocator, p)
 
diff --git a/lib/system/channels.nim b/lib/system/channels.nim
index d0294322a..9c3cc93e0 100644
--- a/lib/system/channels.nim
+++ b/lib/system/channels.nim
@@ -13,6 +13,9 @@
 ##

 ## **Note:** The current implementation of message passing is slow and does

 ## not work with cyclic data structures.

+  
+when not defined(NimString): 
+  {.error: "You must not import this module explicitly".}
 

 type

   pbytes = ptr array[0.. 0xffff, byte]

diff --git a/lib/system/excpt.nim b/lib/system/excpt.nim
index 7937d9738..9b6a64fb0 100644
--- a/lib/system/excpt.nim
+++ b/lib/system/excpt.nim
@@ -11,14 +11,13 @@
 # use the heap (and nor exceptions) do not include the GC or memory allocator.
 
 var
-  stackTraceNewLine*: string ## undocumented feature; it is replaced by ``<br>``
-                             ## for CGI applications
-
-template stackTraceNL: expr =
-  (if IsNil(stackTraceNewLine): "\n" else: stackTraceNewLine)
+  errorMessageWriter*: (proc(msg: string): void {.tags: [FWriteIO].})
+    ## Function that will be called
+    ## instead of stdmsg.write when printing stacktrace.
+    ## Unstable API.
 
 when not defined(windows) or not defined(guiapp):
-  proc writeToStdErr(msg: CString) = write(stdout, msg)
+  proc writeToStdErr(msg: CString) = write(stdmsg, msg)
 
 else:
   proc MessageBoxA(hWnd: cint, lpText, lpCaption: cstring, uType: int): int32 {.
@@ -27,6 +26,12 @@ else:
   proc writeToStdErr(msg: CString) =
     discard MessageBoxA(0, msg, nil, 0)
 
+proc showErrorMessage(data: cstring) =
+  if errorMessageWriter != nil:
+    errorMessageWriter($data)
+  else:
+    writeToStdErr(data)
+
 proc chckIndx(i, a, b: int): int {.inline, compilerproc.}
 proc chckRange(i, a, b: int): int {.inline, compilerproc.}
 proc chckRangeF(x, a, b: float): float {.inline, compilerproc.}
@@ -111,7 +116,7 @@ when defined(nativeStacktrace) and nativeStackTraceSupported:
             add(s, tempDlInfo.dli_sname)
         else:
           add(s, '?')
-        add(s, stackTraceNL)
+        add(s, "\n")
       else:
         if dlresult != 0 and tempDlInfo.dli_sname != nil and
             c_strcmp(tempDlInfo.dli_sname, "signalHandler") == 0'i32:
@@ -172,21 +177,18 @@ proc auxWriteStackTrace(f: PFrame, s: var string) =
         add(s, ')')
       for k in 1..max(1, 25-(s.len-oldLen)): add(s, ' ')
       add(s, tempFrames[j].procname)
-    add(s, stackTraceNL)
+    add(s, "\n")
 
 when hasSomeStackTrace:
   proc rawWriteStackTrace(s: var string) =
     when nimrodStackTrace:
       if framePtr == nil:
-        add(s, "No stack traceback available")
-        add(s, stackTraceNL)
+        add(s, "No stack traceback available\n")
       else:
-        add(s, "Traceback (most recent call last)")
-        add(s, stackTraceNL)
+        add(s, "Traceback (most recent call last)\n")
         auxWriteStackTrace(framePtr, s)
     elif defined(nativeStackTrace) and nativeStackTraceSupported:
-      add(s, "Traceback from system (most recent call last)")
-      add(s, stackTraceNL)
+      add(s, "Traceback from system (most recent call last)\n")
       auxWriteStackTraceWithBacktrace(s)
     else:
       add(s, "No stack traceback available\n")
@@ -207,7 +209,7 @@ proc raiseExceptionAux(e: ref E_Base) =
       pushCurrentException(e)
       c_longjmp(excHandler.context, 1)
   elif e[] of EOutOfMemory:
-    writeToStdErr(e.name)
+    showErrorMessage(e.name)
     quitOrDebug()
   else:
     when hasSomeStackTrace:
@@ -219,7 +221,7 @@ proc raiseExceptionAux(e: ref E_Base) =
       add(buf, " [")
       add(buf, $e.name)
       add(buf, "]\n")
-      writeToStdErr(buf)
+      showErrorMessage(buf)
     else:
       # ugly, but avoids heap allocations :-)
       template xadd(buf, s, slen: expr) =
@@ -235,7 +237,7 @@ proc raiseExceptionAux(e: ref E_Base) =
       add(buf, " [")
       xadd(buf, e.name, c_strlen(e.name))
       add(buf, "]\n")
-      writeToStdErr(buf)
+      showErrorMessage(buf)
     quitOrDebug()
 
 proc raiseException(e: ref E_Base, ename: CString) {.compilerRtl.} =
@@ -255,9 +257,9 @@ proc WriteStackTrace() =
   when hasSomeStackTrace:
     var s = ""
     rawWriteStackTrace(s)
-    writeToStdErr(s)
+    showErrorMessage(s)
   else:
-    writeToStdErr("No stack traceback available\n")
+    showErrorMessage("No stack traceback available\n")
 
 proc getStackTrace(): string =
   when hasSomeStackTrace:
@@ -298,13 +300,13 @@ when not defined(noSignalHandler):
       var buf = newStringOfCap(2000)
       rawWriteStackTrace(buf)
       processSignal(sig, buf.add) # nice hu? currying a la nimrod :-)
-      writeToStdErr(buf)
+      showErrorMessage(buf)
       GC_enable()
     else:
       var msg: cstring
       template asgn(y: expr) = msg = y
       processSignal(sig, asgn)
-      writeToStdErr(msg)
+      showErrorMessage(msg)
     when defined(endb): dbgAborting = True
     quit(1) # always quit when SIGABRT
 
diff --git a/lib/system/gc.nim b/lib/system/gc.nim
index 48705db96..68e8b423d 100644
--- a/lib/system/gc.nim
+++ b/lib/system/gc.nim
@@ -345,8 +345,9 @@ proc forAllChildrenAux(dest: Pointer, mt: PNimType, op: TWalkOp) =
 
 proc forAllChildren(cell: PCell, op: TWalkOp) =
   gcAssert(cell != nil, "forAllChildren: 1")
-  gcAssert(cell.typ != nil, "forAllChildren: 2")
-  gcAssert cell.typ.kind in {tyRef, tySequence, tyString}, "forAllChildren: 3"
+  gcAssert(isAllocatedPtr(gch.region, cell), "forAllChildren: 2")
+  gcAssert(cell.typ != nil, "forAllChildren: 3")
+  gcAssert cell.typ.kind in {tyRef, tySequence, tyString}, "forAllChildren: 4"
   let marker = cell.typ.marker
   if marker != nil:
     marker(cellToUsr(cell), op.int)
@@ -361,7 +362,7 @@ proc forAllChildren(cell: PCell, op: TWalkOp) =
         for i in 0..s.len-1:
           forAllChildrenAux(cast[pointer](d +% i *% cell.typ.base.size +%
             GenericSeqSize), cell.typ.base, op)
-    else: nil
+    else: discard
 
 proc addNewObjToZCT(res: PCell, gch: var TGcHeap) {.inline.} =
   # we check the last 8 entries (cache line) for a slot that could be reused.
@@ -408,8 +409,10 @@ proc addNewObjToZCT(res: PCell, gch: var TGcHeap) {.inline.} =
     add(gch.zct, res)
 
 {.push stackTrace: off, profiler:off.}
-proc gcInvariant*(msg: string) =
-  sysAssert(allocInv(gch.region), msg)
+proc gcInvariant*() =
+  sysAssert(allocInv(gch.region), "injected")
+  when defined(markForDebug):
+    markForDebug(gch)
 {.pop.}
 
 proc rawNewObj(typ: PNimType, size: int, gch: var TGcHeap): pointer =
@@ -629,8 +632,7 @@ proc doOperation(p: pointer, op: TWalkOp) =
   case op
   of waZctDecRef:
     #if not isAllocatedPtr(gch.region, c):
-    #  return
-    #  c_fprintf(c_stdout, "[GC] decref bug: %p", c) 
+    #  c_fprintf(c_stdout, "[GC] decref bug: %p", c)
     gcAssert(isAllocatedPtr(gch.region, c), "decRef: waZctDecRef")
     gcAssert(c.refcount >=% rcIncrement, "doOperation 2")
     #c.refcount = c.refcount -% rcIncrement
diff --git a/lib/system/mmdisp.nim b/lib/system/mmdisp.nim
index 118272ee3..942b6778e 100644
--- a/lib/system/mmdisp.nim
+++ b/lib/system/mmdisp.nim
@@ -18,7 +18,8 @@ const
   logGC = false
   traceGC = false # extensive debugging
   alwaysCycleGC = false
-  alwaysGC = false # collect after every memory allocation (for debugging)
+  alwaysGC = defined(fulldebug) # collect after every memory
+                                # allocation (for debugging)
   leakDetector = false
   overwriteFree = false
   trackAllocationSource = leakDetector
diff --git a/lib/system/threads.nim b/lib/system/threads.nim
index 7d74de92d..80420d791 100644
--- a/lib/system/threads.nim
+++ b/lib/system/threads.nim
@@ -39,6 +39,9 @@
 ##    createThread(thr[i], threadFunc, (i*10, i*10+5))
 ##  joinThreads(thr)
   
+when not defined(NimString): 
+  {.error: "You must not import this module explicitly".}
+
 const
   maxRegisters = 256 # don't think there is an arch with more registers
   useStackMaskHack = false ## use the stack mask hack for better performance
@@ -292,7 +295,7 @@ template ThreadProcWrapperBody(closure: expr) {.immediate.} =
 when defined(windows):
   proc threadProcWrapper[TArg](closure: pointer): int32 {.stdcall.} = 
     ThreadProcWrapperBody(closure)
-    # implicitely return 0
+    # implicitly return 0
 else:
   proc threadProcWrapper[TArg](closure: pointer) {.noconv.} = 
     ThreadProcWrapperBody(closure)
diff --git a/lib/windows/winlean.nim b/lib/windows/winlean.nim
index 56d279db6..264285d09 100644
--- a/lib/windows/winlean.nim
+++ b/lib/windows/winlean.nim
@@ -416,17 +416,17 @@ var
   SOMAXCONN* {.importc, header: "Winsock2.h".}: cint
   INVALID_SOCKET* {.importc, header: "Winsock2.h".}: TSocketHandle
   SOL_SOCKET* {.importc, header: "Winsock2.h".}: cint
-  SO_DEBUG* {.importc, header: "Winsock2.h".}: cint ## turn on debugging info recording

-  SO_ACCEPTCONN* {.importc, header: "Winsock2.h".}: cint # socket has had listen()

-  SO_REUSEADDR* {.importc, header: "Winsock2.h".}: cint # allow local address reuse

-  SO_KEEPALIVE* {.importc, header: "Winsock2.h".}: cint # keep connections alive

-  SO_DONTROUTE* {.importc, header: "Winsock2.h".}: cint # just use interface addresses

-  SO_BROADCAST* {.importc, header: "Winsock2.h".}: cint # permit sending of broadcast msgs

-  SO_USELOOPBACK* {.importc, header: "Winsock2.h".}: cint # bypass hardware when possible

-  SO_LINGER* {.importc, header: "Winsock2.h".}: cint # linger on close if data present

-  SO_OOBINLINE* {.importc, header: "Winsock2.h".}: cint # leave received OOB data in line

-

-  SO_DONTLINGER* {.importc, header: "Winsock2.h".}: cint

+  SO_DEBUG* {.importc, header: "Winsock2.h".}: cint ## turn on debugging info recording
+  SO_ACCEPTCONN* {.importc, header: "Winsock2.h".}: cint # socket has had listen()
+  SO_REUSEADDR* {.importc, header: "Winsock2.h".}: cint # allow local address reuse
+  SO_KEEPALIVE* {.importc, header: "Winsock2.h".}: cint # keep connections alive
+  SO_DONTROUTE* {.importc, header: "Winsock2.h".}: cint # just use interface addresses
+  SO_BROADCAST* {.importc, header: "Winsock2.h".}: cint # permit sending of broadcast msgs
+  SO_USELOOPBACK* {.importc, header: "Winsock2.h".}: cint # bypass hardware when possible
+  SO_LINGER* {.importc, header: "Winsock2.h".}: cint # linger on close if data present
+  SO_OOBINLINE* {.importc, header: "Winsock2.h".}: cint # leave received OOB data in line
+
+  SO_DONTLINGER* {.importc, header: "Winsock2.h".}: cint
   SO_EXCLUSIVEADDRUSE* {.importc, header: "Winsock2.h".}: cint # disallow local address reuse
 
 proc `==`*(x, y: TSocketHandle): bool {.borrow.}
@@ -553,18 +553,26 @@ const
 
   FILE_FLAG_BACKUP_SEMANTICS* = 33554432'i32
 
+# Error Constants
+const
+  ERROR_ACCESS_DENIED* = 5
+
 when useWinUnicode:
   proc CreateFileW*(lpFileName: widecstring, dwDesiredAccess, dwShareMode: DWORD,
                     lpSecurityAttributes: pointer,
                     dwCreationDisposition, dwFlagsAndAttributes: DWORD,
                     hTemplateFile: THANDLE): THANDLE {.
       stdcall, dynlib: "kernel32", importc: "CreateFileW".}
+  proc DeleteFileW*(pathName: widecstring): int32 {.
+    importc: "DeleteFileW", dynlib: "kernel32", stdcall.}
 else:
   proc CreateFileA*(lpFileName: cstring, dwDesiredAccess, dwShareMode: DWORD,
                     lpSecurityAttributes: pointer,
                     dwCreationDisposition, dwFlagsAndAttributes: DWORD,
                     hTemplateFile: THANDLE): THANDLE {.
       stdcall, dynlib: "kernel32", importc: "CreateFileA".}
+  proc DeleteFileA*(pathName: cstring): int32 {.
+    importc: "DeleteFileA", dynlib: "kernel32", stdcall.}
 
 proc SetEndOfFile*(hFile: THANDLE): WINBOOL {.stdcall, dynlib: "kernel32",
     importc: "SetEndOfFile".}
diff --git a/lib/wrappers/cairo/cairo.nim b/lib/wrappers/cairo/cairo.nim
deleted file mode 100644
index 172880529..000000000
--- a/lib/wrappers/cairo/cairo.nim
+++ /dev/null
@@ -1,733 +0,0 @@
-#* cairo - a vector graphics library with display and print output
-# *
-# * Copyright © 2002 University of Southern California
-# * Copyright © 2005 Red Hat, Inc.
-# *
-# * This library is free software; you can redistribute it and/or
-# * modify it either under the terms of the GNU Lesser General Public
-# * License version 2.1 as published by the Free Software Foundation
-# * (the "LGPL") or, at your option, under the terms of the Mozilla
-# * Public License Version 1.1 (the "MPL"). If you do not alter this
-# * notice, a recipient may use your version of this file under either
-# * the MPL or the LGPL.
-# *
-# * You should have received a copy of the LGPL along with this library
-# * in the file COPYING-LGPL-2.1; if not, write to the Free Software
-# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-# * You should have received a copy of the MPL along with this library
-# * in the file COPYING-MPL-1.1
-# *
-# * The contents of this file are subject to the Mozilla Public License
-# * Version 1.1 (the "License"); you may not use this file except in
-# * compliance with the License. You may obtain a copy of the License at
-# * http://www.mozilla.org/MPL/
-# *
-# * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
-# * OF ANY KIND, either express or implied. See the LGPL or the MPL for
-# * the specific language governing rights and limitations.
-# *
-# * The Original Code is the cairo graphics library.
-# *
-# * The Initial Developer of the Original Code is University of Southern
-# * California.
-# *
-# * Contributor(s):
-# *	Carl D. Worth <cworth@cworth.org>
-# #*
-# *  This FreePascal binding generated August 26, 2005
-# *  by Jeffrey Pohlmeyer <yetanothergeek@yahoo.com>
-#
-
-#
-#  - Updated to cairo version 1.4
-#  - Grouped OS specific fuctions in separated units
-#  - Organized the functions by group and ordered exactly as the c header
-#  - Cleared parameter list syntax according to pascal standard
-#
-#  By Luiz Américo Pereira Câmara
-#  October 2007
-#
-
-include "cairo_pragma.nim"
-
-type 
-  PByte = cstring
-  TStatus* = enum 
-    STATUS_SUCCESS = 0,
-    STATUS_NO_MEMORY,
-    STATUS_INVALID_RESTORE,
-    STATUS_INVALID_POP_GROUP,
-    STATUS_NO_CURRENT_POINT,
-    STATUS_INVALID_MATRIX,
-    STATUS_INVALID_STATUS,
-    STATUS_NULL_POINTER,
-    STATUS_INVALID_STRING,
-    STATUS_INVALID_PATH_DATA,
-    STATUS_READ_ERROR,
-    STATUS_WRITE_ERROR,
-    STATUS_SURFACE_FINISHED,
-    STATUS_SURFACE_TYPE_MISMATCH,
-    STATUS_PATTERN_TYPE_MISMATCH,
-    STATUS_INVALID_CONTENT,
-    STATUS_INVALID_FORMAT,
-    STATUS_INVALID_VISUAL,
-    STATUS_FILE_NOT_FOUND,
-    STATUS_INVALID_DASH,
-    STATUS_INVALID_DSC_COMMENT,
-    STATUS_INVALID_INDEX,
-    STATUS_CLIP_NOT_REPRESENTABLE,
-    STATUS_TEMP_FILE_ERROR,
-    STATUS_INVALID_STRIDE,
-    STATUS_FONT_TYPE_MISMATCH,
-    STATUS_USER_FONT_IMMUTABLE,
-    STATUS_USER_FONT_ERROR,
-    STATUS_NEGATIVE_COUNT,
-    STATUS_INVALID_CLUSTERS,
-    STATUS_INVALID_SLANT,
-    STATUS_INVALID_WEIGHT
-
-    
-  TOperator* = enum 
-    OPERATOR_CLEAR, OPERATOR_SOURCE, OPERATOR_OVER, OPERATOR_IN, OPERATOR_OUT, 
-    OPERATOR_ATOP, OPERATOR_DEST, OPERATOR_DEST_OVER, OPERATOR_DEST_IN, 
-    OPERATOR_DEST_OUT, OPERATOR_DEST_ATOP, OPERATOR_XOR, OPERATOR_ADD, 
-    OPERATOR_SATURATE
-  TAntialias* = enum 
-    ANTIALIAS_DEFAULT, ANTIALIAS_NONE, ANTIALIAS_GRAY, ANTIALIAS_SUBPIXEL
-  TFillRule* = enum 
-    FILL_RULE_WINDING, FILL_RULE_EVEN_ODD
-  TLineCap* = enum 
-    LINE_CAP_BUTT, LINE_CAP_ROUND, LINE_CAP_SQUARE
-  TLineJoin* = enum 
-    LINE_JOIN_MITER, LINE_JOIN_ROUND, LINE_JOIN_BEVEL
-  TFontSlant* = enum 
-    FONT_SLANT_NORMAL, FONT_SLANT_ITALIC, FONT_SLANT_OBLIQUE
-  TFontWeight* = enum 
-    FONT_WEIGHT_NORMAL, FONT_WEIGHT_BOLD
-  TSubpixelOrder* = enum 
-    SUBPIXEL_ORDER_DEFAULT, SUBPIXEL_ORDER_RGB, SUBPIXEL_ORDER_BGR, 
-    SUBPIXEL_ORDER_VRGB, SUBPIXEL_ORDER_VBGR
-  THintStyle* = enum 
-    HINT_STYLE_DEFAULT, HINT_STYLE_NONE, HINT_STYLE_SLIGHT, HINT_STYLE_MEDIUM, 
-    HINT_STYLE_FULL
-  THintMetrics* = enum 
-    HINT_METRICS_DEFAULT, HINT_METRICS_OFF, HINT_METRICS_ON
-  TPathDataType* = enum 
-    PATH_MOVE_TO, PATH_LINE_TO, PATH_CURVE_TO, PATH_CLOSE_PATH
-  TContent* = enum 
-    CONTENT_COLOR = 0x00001000, CONTENT_ALPHA = 0x00002000, 
-    CONTENT_COLOR_ALPHA = 0x00003000
-  TFormat* = enum 
-    FORMAT_ARGB32, FORMAT_RGB24, FORMAT_A8, FORMAT_A1
-  TExtend* = enum 
-    EXTEND_NONE, EXTEND_REPEAT, EXTEND_REFLECT, EXTEND_PAD
-  TFilter* = enum 
-    FILTER_FAST, FILTER_GOOD, FILTER_BEST, FILTER_NEAREST, FILTER_BILINEAR, 
-    FILTER_GAUSSIAN
-  TFontType* = enum 
-    FONT_TYPE_TOY, FONT_TYPE_FT, FONT_TYPE_WIN32, FONT_TYPE_ATSUI
-  TPatternType* = enum 
-    PATTERN_TYPE_SOLID, PATTERN_TYPE_SURFACE, PATTERN_TYPE_LINEAR, 
-    PATTERN_TYPE_RADIAL
-  TSurfaceType* = enum 
-    SURFACE_TYPE_IMAGE, SURFACE_TYPE_PDF, SURFACE_TYPE_PS, SURFACE_TYPE_XLIB, 
-    SURFACE_TYPE_XCB, SURFACE_TYPE_GLITZ, SURFACE_TYPE_QUARTZ, 
-    SURFACE_TYPE_WIN32, SURFACE_TYPE_BEOS, SURFACE_TYPE_DIRECTFB, 
-    SURFACE_TYPE_SVG, SURFACE_TYPE_OS2
-  TSvgVersion* = enum 
-    SVG_VERSION_1_1, SVG_VERSION_1_2
-  PSurface* = ptr TSurface
-  PPSurface* = ptr PSurface
-  PContext* = ptr TContext
-  PPattern* = ptr TPattern
-  PFontOptions* = ptr TFontOptions
-  PFontFace* = ptr TFontFace
-  PScaledFont* = ptr TScaledFont
-  PBool* = ptr TBool
-  TBool* = int32
-  PMatrix* = ptr TMatrix
-  PUserDataKey* = ptr TUserDataKey
-  PGlyph* = ptr TGlyph
-  PTextExtents* = ptr TTextExtents
-  PFontExtents* = ptr TFontExtents
-  PPathDataType* = ptr TPathDataType
-  PPathData* = ptr TPathData
-  PPath* = ptr TPath
-  PRectangle* = ptr TRectangle
-  PRectangleList* = ptr TRectangleList
-  TDestroyFunc* = proc (data: Pointer){.cdecl.}
-  TWriteFunc* = proc (closure: Pointer, data: PByte, len: int32): TStatus{.cdecl.}
-  TReadFunc* = proc (closure: Pointer, data: PByte, len: int32): TStatus{.cdecl.}
-  TContext*{.final.} = object        #OPAQUE
-  TSurface*{.final.} = object  #OPAQUE
-  TPattern*{.final.} = object  #OPAQUE
-  TScaledFont*{.final.} = object  #OPAQUE
-  TFontFace*{.final.} = object  #OPAQUE
-  TFontOptions*{.final.} = object  #OPAQUE
-  TMatrix*{.final.} = object 
-    xx: float64
-    yx: float64
-    xy: float64
-    yy: float64
-    x0: float64
-    y0: float64
-
-  TUserDataKey*{.final.} = object 
-    unused: int32
-
-  TGlyph*{.final.} = object 
-    index: int32
-    x: float64
-    y: float64
-
-  TTextExtents*{.final.} = object 
-    x_bearing: float64
-    y_bearing: float64
-    width: float64
-    height: float64
-    x_advance: float64
-    y_advance: float64
-
-  TFontExtents*{.final.} = object 
-    ascent: float64
-    descent: float64
-    height: float64
-    max_x_advance: float64
-    max_y_advance: float64
-
-  TPathData*{.final.} = object  #* _type : TCairoPathDataType;
-                                #       length : LongInt;
-                                #    end
-    x: float64
-    y: float64
-
-  TPath*{.final.} = object 
-    status: TStatus
-    data: PPathData
-    num_data: int32
-
-  TRectangle*{.final.} = object 
-    x, y, width, height: float64
-
-  TRectangleList*{.final.} = object 
-    status: TStatus
-    rectangles: PRectangle
-    num_rectangles: int32
-
-
-proc version*(): int32{.cdecl, importc: "cairo_version", libcairo.}
-proc version_string*(): cstring{.cdecl, importc: "cairo_version_string", 
-                                 libcairo.}
-  #Helper function to retrieve decoded version
-proc version*(major, minor, micro: var int32)
-  #* Functions for manipulating state objects
-proc create*(target: PSurface): PContext{.cdecl, importc: "cairo_create", 
-                                   libcairo.}
-proc reference*(cr: PContext): PContext{.cdecl, importc: "cairo_reference", libcairo.}
-proc destroy*(cr: PContext){.cdecl, importc: "cairo_destroy", libcairo.}
-proc get_reference_count*(cr: PContext): int32{.cdecl, 
-    importc: "cairo_get_reference_count", libcairo.}
-proc get_user_data*(cr: PContext, key: PUserDataKey): pointer{.cdecl, 
-    importc: "cairo_get_user_data", libcairo.}
-proc set_user_data*(cr: PContext, key: PUserDataKey, user_data: Pointer, 
-                    destroy: TDestroyFunc): TStatus{.cdecl, 
-    importc: "cairo_set_user_data", libcairo.}
-proc save*(cr: PContext){.cdecl, importc: "cairo_save", libcairo.}
-proc restore*(cr: PContext){.cdecl, importc: "cairo_restore", libcairo.}
-proc push_group*(cr: PContext){.cdecl, importc: "cairo_push_group", libcairo.}
-proc push_group_with_content*(cr: PContext, content: TContent){.cdecl, 
-    importc: "cairo_push_group_with_content", libcairo.}
-proc pop_group*(cr: PContext): PPattern{.cdecl, importc: "cairo_pop_group", 
-                                  libcairo.}
-proc pop_group_to_source*(cr: PContext){.cdecl, importc: "cairo_pop_group_to_source", 
-                                  libcairo.}
-  #* Modify state
-proc set_operator*(cr: PContext, op: TOperator){.cdecl, importc: "cairo_set_operator", 
-    libcairo.}
-proc set_source*(cr: PContext, source: PPattern){.cdecl, importc: "cairo_set_source", 
-    libcairo.}
-proc set_source_rgb*(cr: PContext, red, green, blue: float64){.cdecl, 
-    importc: "cairo_set_source_rgb", libcairo.}
-proc set_source_rgba*(cr: PContext, red, green, blue, alpha: float64){.cdecl, 
-    importc: "cairo_set_source_rgba", libcairo.}
-proc set_source*(cr: PContext, surface: PSurface, x, y: float64){.cdecl, 
-    importc: "cairo_set_source_surface", libcairo.}
-proc set_tolerance*(cr: PContext, tolerance: float64){.cdecl, 
-    importc: "cairo_set_tolerance", libcairo.}
-proc set_antialias*(cr: PContext, antialias: TAntialias){.cdecl, 
-    importc: "cairo_set_antialias", libcairo.}
-proc set_fill_rule*(cr: PContext, fill_rule: TFillRule){.cdecl, 
-    importc: "cairo_set_fill_rule", libcairo.}
-proc set_line_width*(cr: PContext, width: float64){.cdecl, 
-    importc: "cairo_set_line_width", libcairo.}
-proc set_line_cap*(cr: PContext, line_cap: TLineCap){.cdecl, 
-    importc: "cairo_set_line_cap", libcairo.}
-proc set_line_join*(cr: PContext, line_join: TLineJoin){.cdecl, 
-    importc: "cairo_set_line_join", libcairo.}
-proc set_dash*(cr: PContext, dashes: openarray[float64], offset: float64){.cdecl, 
-    importc: "cairo_set_dash", libcairo.}
-proc set_miter_limit*(cr: PContext, limit: float64){.cdecl, 
-    importc: "cairo_set_miter_limit", libcairo.}
-proc translate*(cr: PContext, tx, ty: float64){.cdecl, importc: "cairo_translate", 
-    libcairo.}
-proc scale*(cr: PContext, sx, sy: float64){.cdecl, importc: "cairo_scale", 
-                                     libcairo.}
-proc rotate*(cr: PContext, angle: float64){.cdecl, importc: "cairo_rotate", 
-                                     libcairo.}
-proc transform*(cr: PContext, matrix: PMatrix){.cdecl, importc: "cairo_transform", 
-    libcairo.}
-proc set_matrix*(cr: PContext, matrix: PMatrix){.cdecl, importc: "cairo_set_matrix", 
-    libcairo.}
-proc identity_matrix*(cr: PContext){.cdecl, importc: "cairo_identity_matrix", 
-                              libcairo.}
-proc user_to_device*(cr: PContext, x, y: var float64){.cdecl, 
-    importc: "cairo_user_to_device", libcairo.}
-proc user_to_device_distance*(cr: PContext, dx, dy: var float64){.cdecl, 
-    importc: "cairo_user_to_device_distance", libcairo.}
-proc device_to_user*(cr: PContext, x, y: var float64){.cdecl, 
-    importc: "cairo_device_to_user", libcairo.}
-proc device_to_user_distance*(cr: PContext, dx, dy: var float64){.cdecl, 
-    importc: "cairo_device_to_user_distance", libcairo.}
-  #* Path creation functions
-proc new_path*(cr: PContext){.cdecl, importc: "cairo_new_path", libcairo.}
-proc move_to*(cr: PContext, x, y: float64){.cdecl, importc: "cairo_move_to", 
-                                     libcairo.}
-proc new_sub_path*(cr: PContext){.cdecl, importc: "cairo_new_sub_path", 
-                           libcairo.}
-proc line_to*(cr: PContext, x, y: float64){.cdecl, importc: "cairo_line_to", 
-                                     libcairo.}
-proc curve_to*(cr: PContext, x1, y1, x2, y2, x3, y3: float64){.cdecl, 
-    importc: "cairo_curve_to", libcairo.}
-proc arc*(cr: PContext, xc, yc, radius, angle1, angle2: float64){.cdecl, 
-    importc: "cairo_arc", libcairo.}
-proc arc_negative*(cr: PContext, xc, yc, radius, angle1, angle2: float64){.cdecl, 
-    importc: "cairo_arc_negative", libcairo.}
-proc rel_move_to*(cr: PContext, dx, dy: float64){.cdecl, importc: "cairo_rel_move_to", 
-    libcairo.}
-proc rel_line_to*(cr: PContext, dx, dy: float64){.cdecl, importc: "cairo_rel_line_to", 
-    libcairo.}
-proc rel_curve_to*(cr: PContext, dx1, dy1, dx2, dy2, dx3, dy3: float64){.cdecl, 
-    importc: "cairo_rel_curve_to", libcairo.}
-proc rectangle*(cr: PContext, x, y, width, height: float64){.cdecl, 
-    importc: "cairo_rectangle", libcairo.}
-proc close_path*(cr: PContext){.cdecl, importc: "cairo_close_path", libcairo.}
-  #* Painting functions
-proc paint*(cr: PContext){.cdecl, importc: "cairo_paint", libcairo.}
-proc paint_with_alpha*(cr: PContext, alpha: float64){.cdecl, 
-    importc: "cairo_paint_with_alpha", libcairo.}
-proc mask*(cr: PContext, pattern: PPattern){.cdecl, importc: "cairo_mask", 
-                                      libcairo.}
-proc mask*(cr: PContext, surface: PSurface, surface_x, surface_y: float64){.
-    cdecl, importc: "cairo_mask_surface", libcairo.}
-proc stroke*(cr: PContext){.cdecl, importc: "cairo_stroke", libcairo.}
-proc stroke_preserve*(cr: PContext){.cdecl, importc: "cairo_stroke_preserve", 
-                              libcairo.}
-proc fill*(cr: PContext){.cdecl, importc: "cairo_fill", libcairo.}
-proc fill_preserve*(cr: PContext){.cdecl, importc: "cairo_fill_preserve", 
-                            libcairo.}
-proc copy_page*(cr: PContext){.cdecl, importc: "cairo_copy_page", libcairo.}
-proc show_page*(cr: PContext){.cdecl, importc: "cairo_show_page", libcairo.}
-  #* Insideness testing
-proc in_stroke*(cr: PContext, x, y: float64): TBool{.cdecl, importc: "cairo_in_stroke", 
-    libcairo.}
-proc in_fill*(cr: PContext, x, y: float64): TBool{.cdecl, importc: "cairo_in_fill", 
-    libcairo.}
-  #* Rectangular extents
-proc stroke_extents*(cr: PContext, x1, y1, x2, y2: var float64){.cdecl, 
-    importc: "cairo_stroke_extents", libcairo.}
-proc fill_extents*(cr: PContext, x1, y1, x2, y2: var float64){.cdecl, 
-    importc: "cairo_fill_extents", libcairo.}
-  #* Clipping
-proc reset_clip*(cr: PContext){.cdecl, importc: "cairo_reset_clip", libcairo.}
-proc clip*(cr: PContext){.cdecl, importc: "cairo_clip", libcairo.}
-proc clip_preserve*(cr: PContext){.cdecl, importc: "cairo_clip_preserve", 
-                            libcairo.}
-proc clip_extents*(cr: PContext, x1, y1, x2, y2: var float64){.cdecl, 
-    importc: "cairo_clip_extents", libcairo.}
-proc copy_clip_rectangle_list*(cr: PContext): PRectangleList{.cdecl, 
-    importc: "cairo_copy_clip_rectangle_list", libcairo.}
-proc rectangle_list_destroy*(rectangle_list: PRectangleList){.cdecl, 
-    importc: "cairo_rectangle_list_destroy", libcairo.}
-  #* Font/Text functions
-proc font_options_create*(): PFontOptions{.cdecl, 
-    importc: "cairo_font_options_create", libcairo.}
-proc copy*(original: PFontOptions): PFontOptions{.cdecl, 
-    importc: "cairo_font_options_copy", libcairo.}
-proc destroy*(options: PFontOptions){.cdecl, 
-    importc: "cairo_font_options_destroy", libcairo.}
-proc status*(options: PFontOptions): TStatus{.cdecl, 
-    importc: "cairo_font_options_status", libcairo.}
-proc merge*(options, other: PFontOptions){.cdecl, 
-    importc: "cairo_font_options_merge", libcairo.}
-proc equal*(options, other: PFontOptions): TBool{.cdecl, 
-    importc: "cairo_font_options_equal", libcairo.}
-proc hash*(options: PFontOptions): int32{.cdecl, 
-    importc: "cairo_font_options_hash", libcairo.}
-proc set_antialias*(options: PFontOptions, antialias: TAntialias){.
-    cdecl, importc: "cairo_font_options_set_antialias", libcairo.}
-proc get_antialias*(options: PFontOptions): TAntialias{.cdecl, 
-    importc: "cairo_font_options_get_antialias", libcairo.}
-proc set_subpixel_order*(options: PFontOptions, 
-                                      subpixel_order: TSubpixelOrder){.cdecl, 
-    importc: "cairo_font_options_set_subpixel_order", libcairo.}
-proc get_subpixel_order*(options: PFontOptions): TSubpixelOrder{.
-    cdecl, importc: "cairo_font_options_get_subpixel_order", libcairo.}
-proc set_hint_style*(options: PFontOptions, hint_style: THintStyle){.
-    cdecl, importc: "cairo_font_options_set_hint_style", libcairo.}
-proc get_hint_style*(options: PFontOptions): THintStyle{.cdecl, 
-    importc: "cairo_font_options_get_hint_style", libcairo.}
-proc set_hint_metrics*(options: PFontOptions, 
-                                    hint_metrics: THintMetrics){.cdecl, 
-    importc: "cairo_font_options_set_hint_metrics", libcairo.}
-proc get_hint_metrics*(options: PFontOptions): THintMetrics{.cdecl, 
-    importc: "cairo_font_options_get_hint_metrics", libcairo.}
-  #* This interface is for dealing with text as text, not caring about the
-  #   font object inside the the TCairo.
-proc select_font_face*(cr: PContext, family: cstring, slant: TFontSlant, 
-                       weight: TFontWeight){.cdecl, 
-    importc: "cairo_select_font_face", libcairo.}
-proc set_font_size*(cr: PContext, size: float64){.cdecl, 
-    importc: "cairo_set_font_size", libcairo.}
-proc set_font_matrix*(cr: PContext, matrix: PMatrix){.cdecl, 
-    importc: "cairo_set_font_matrix", libcairo.}
-proc get_font_matrix*(cr: PContext, matrix: PMatrix){.cdecl, 
-    importc: "cairo_get_font_matrix", libcairo.}
-proc set_font_options*(cr: PContext, options: PFontOptions){.cdecl, 
-    importc: "cairo_set_font_options", libcairo.}
-proc get_font_options*(cr: PContext, options: PFontOptions){.cdecl, 
-    importc: "cairo_get_font_options", libcairo.}
-proc set_font_face*(cr: PContext, font_face: PFontFace){.cdecl, 
-    importc: "cairo_set_font_face", libcairo.}
-proc get_font_face*(cr: PContext): PFontFace{.cdecl, importc: "cairo_get_font_face", 
-                                       libcairo.}
-proc set_scaled_font*(cr: PContext, scaled_font: PScaledFont){.cdecl, 
-    importc: "cairo_set_scaled_font", libcairo.}
-proc get_scaled_font*(cr: PContext): PScaledFont{.cdecl, 
-    importc: "cairo_get_scaled_font", libcairo.}
-proc show_text*(cr: PContext, utf8: cstring){.cdecl, importc: "cairo_show_text", 
-                                       libcairo.}
-proc show_glyphs*(cr: PContext, glyphs: PGlyph, num_glyphs: int32){.cdecl, 
-    importc: "cairo_show_glyphs", libcairo.}
-proc text_path*(cr: PContext, utf8: cstring){.cdecl, importc: "cairo_text_path", 
-                                       libcairo.}
-proc glyph_path*(cr: PContext, glyphs: PGlyph, num_glyphs: int32){.cdecl, 
-    importc: "cairo_glyph_path", libcairo.}
-proc text_extents*(cr: PContext, utf8: cstring, extents: PTextExtents){.cdecl, 
-    importc: "cairo_text_extents", libcairo.}
-proc glyph_extents*(cr: PContext, glyphs: PGlyph, num_glyphs: int32, 
-                    extents: PTextExtents){.cdecl, 
-    importc: "cairo_glyph_extents", libcairo.}
-proc font_extents*(cr: PContext, extents: PFontExtents){.cdecl, 
-    importc: "cairo_font_extents", libcairo.}
-  #* Generic identifier for a font style
-proc reference*(font_face: PFontFace): PFontFace{.cdecl, 
-    importc: "cairo_font_face_reference", libcairo.}
-proc destroy*(font_face: PFontFace){.cdecl, 
-    importc: "cairo_font_face_destroy", libcairo.}
-proc get_reference_count*(font_face: PFontFace): int32{.cdecl, 
-    importc: "cairo_font_face_get_reference_count", libcairo.}
-proc status*(font_face: PFontFace): TStatus{.cdecl, 
-    importc: "cairo_font_face_status", libcairo.}
-proc get_type*(font_face: PFontFace): TFontType{.cdecl, 
-    importc: "cairo_font_face_get_type", libcairo.}
-proc get_user_data*(font_face: PFontFace, key: PUserDataKey): pointer{.
-    cdecl, importc: "cairo_font_face_get_user_data", libcairo.}
-proc set_user_data*(font_face: PFontFace, key: PUserDataKey, 
-                    user_data: pointer, destroy: TDestroyFunc): TStatus{.
-    cdecl, importc: "cairo_font_face_set_user_data", libcairo.}
-  #* Portable interface to general font features
-proc scaled_font_create*(font_face: PFontFace, font_matrix: PMatrix, 
-                         ctm: PMatrix, options: PFontOptions): PScaledFont{.
-    cdecl, importc: "cairo_scaled_font_create", libcairo.}
-proc reference*(scaled_font: PScaledFont): PScaledFont{.cdecl, 
-    importc: "cairo_scaled_font_reference", libcairo.}
-proc destroy*(scaled_font: PScaledFont){.cdecl, 
-    importc: "cairo_scaled_font_destroy", libcairo.}
-proc get_reference_count*(scaled_font: PScaledFont): int32{.cdecl, 
-    importc: "cairo_scaled_font_get_reference_count", libcairo.}
-proc status*(scaled_font: PScaledFont): TStatus{.cdecl, 
-    importc: "cairo_scaled_font_status", libcairo.}
-proc get_type*(scaled_font: PScaledFont): TFontType{.cdecl, 
-    importc: "cairo_scaled_font_get_type", libcairo.}
-proc get_user_data*(scaled_font: PScaledFont, key: PUserDataKey): Pointer{.
-    cdecl, importc: "cairo_scaled_font_get_user_data", libcairo.}
-proc set_user_data*(scaled_font: PScaledFont, key: PUserDataKey, 
-                    user_data: Pointer, destroy: TDestroyFunc): TStatus{.
-    cdecl, importc: "cairo_scaled_font_set_user_data", libcairo.}
-proc extents*(scaled_font: PScaledFont, extents: PFontExtents){.
-    cdecl, importc: "cairo_scaled_font_extents", libcairo.}
-proc text_extents*(scaled_font: PScaledFont, utf8: cstring, 
-                   extents: PTextExtents){.cdecl, 
-    importc: "cairo_scaled_font_text_extents", libcairo.}
-proc glyph_extents*(scaled_font: PScaledFont, glyphs: PGlyph, 
-                                num_glyphs: int32, extents: PTextExtents){.
-    cdecl, importc: "cairo_scaled_font_glyph_extents", libcairo.}
-proc get_font_face*(scaled_font: PScaledFont): PFontFace{.cdecl, 
-    importc: "cairo_scaled_font_get_font_face", libcairo.}
-proc get_font_matrix*(scaled_font: PScaledFont, font_matrix: PMatrix){.
-    cdecl, importc: "cairo_scaled_font_get_font_matrix", libcairo.}
-proc get_ctm*(scaled_font: PScaledFont, ctm: PMatrix){.cdecl, 
-    importc: "cairo_scaled_font_get_ctm", libcairo.}
-proc get_font_options*(scaled_font: PScaledFont, 
-                                   options: PFontOptions){.cdecl, 
-    importc: "cairo_scaled_font_get_font_options", libcairo.}
-  #* Query functions
-proc get_operator*(cr: PContext): TOperator{.cdecl, importc: "cairo_get_operator", 
-                                      libcairo.}
-proc get_source*(cr: PContext): PPattern{.cdecl, importc: "cairo_get_source", 
-                                   libcairo.}
-proc get_tolerance*(cr: PContext): float64{.cdecl, importc: "cairo_get_tolerance", 
-                                     libcairo.}
-proc get_antialias*(cr: PContext): TAntialias{.cdecl, importc: "cairo_get_antialias", 
-                                        libcairo.}
-proc get_current_point*(cr: PContext, x, y: var float64){.cdecl, 
-    importc: "cairo_get_current_point", libcairo.}
-proc get_fill_rule*(cr: PContext): TFillRule{.cdecl, importc: "cairo_get_fill_rule", 
-                                       libcairo.}
-proc get_line_width*(cr: PContext): float64{.cdecl, importc: "cairo_get_line_width", 
-                                      libcairo.}
-proc get_line_cap*(cr: PContext): TLineCap{.cdecl, importc: "cairo_get_line_cap", 
-                                     libcairo.}
-proc get_line_join*(cr: PContext): TLineJoin{.cdecl, importc: "cairo_get_line_join", 
-                                       libcairo.}
-proc get_miter_limit*(cr: PContext): float64{.cdecl, importc: "cairo_get_miter_limit", 
-                                       libcairo.}
-proc get_dash_count*(cr: PContext): int32{.cdecl, importc: "cairo_get_dash_count", 
-                                    libcairo.}
-proc get_dash*(cr: PContext, dashes, offset: var float64){.cdecl, 
-    importc: "cairo_get_dash", libcairo.}
-proc get_matrix*(cr: PContext, matrix: PMatrix){.cdecl, importc: "cairo_get_matrix", 
-    libcairo.}
-proc get_target*(cr: PContext): PSurface{.cdecl, importc: "cairo_get_target", 
-                                   libcairo.}
-proc get_group_target*(cr: PContext): PSurface{.cdecl, 
-    importc: "cairo_get_group_target", libcairo.}
-proc copy_path*(cr: PContext): PPath{.cdecl, importc: "cairo_copy_path", 
-                               libcairo.}
-proc copy_path_flat*(cr: PContext): PPath{.cdecl, importc: "cairo_copy_path_flat", 
-                                    libcairo.}
-proc append_path*(cr: PContext, path: PPath){.cdecl, importc: "cairo_append_path", 
-                                       libcairo.}
-proc destroy*(path: PPath){.cdecl, importc: "cairo_path_destroy", 
-                                 libcairo.}
-  #* Error status queries
-proc status*(cr: PContext): TStatus{.cdecl, importc: "cairo_status", libcairo.}
-proc status_to_string*(status: TStatus): cstring{.cdecl, 
-    importc: "cairo_status_to_string", libcairo.}
-  #* Surface manipulation
-proc surface_create_similar*(other: PSurface, content: TContent, 
-                             width, height: int32): PSurface{.cdecl, 
-    importc: "cairo_surface_create_similar", libcairo.}
-proc reference*(surface: PSurface): PSurface{.cdecl, 
-    importc: "cairo_surface_reference", libcairo.}
-proc finish*(surface: PSurface){.cdecl, importc: "cairo_surface_finish", 
-    libcairo.}
-proc destroy*(surface: PSurface){.cdecl, 
-    importc: "cairo_surface_destroy", libcairo.}
-proc get_reference_count*(surface: PSurface): int32{.cdecl, 
-    importc: "cairo_surface_get_reference_count", libcairo.}
-proc status*(surface: PSurface): TStatus{.cdecl, 
-    importc: "cairo_surface_status", libcairo.}
-proc get_type*(surface: PSurface): TSurfaceType{.cdecl, 
-    importc: "cairo_surface_get_type", libcairo.}
-proc get_content*(surface: PSurface): TContent{.cdecl, 
-    importc: "cairo_surface_get_content", libcairo.}
-proc write_to_png*(surface: PSurface, filename: cstring): TStatus{.
-    cdecl, importc: "cairo_surface_write_to_png", libcairo.}
-proc write_to_png*(surface: PSurface, write_func: TWriteFunc, 
-                   closure: pointer): TStatus{.cdecl, 
-    importc: "cairo_surface_write_to_png_stream", libcairo.}
-proc get_user_data*(surface: PSurface, key: PUserDataKey): pointer{.
-    cdecl, importc: "cairo_surface_get_user_data", libcairo.}
-proc set_user_data*(surface: PSurface, key: PUserDataKey, 
-                            user_data: pointer, destroy: TDestroyFunc): TStatus{.
-    cdecl, importc: "cairo_surface_set_user_data", libcairo.}
-proc get_font_options*(surface: PSurface, options: PFontOptions){.cdecl, 
-    importc: "cairo_surface_get_font_options", libcairo.}
-proc flush*(surface: PSurface){.cdecl, importc: "cairo_surface_flush", 
-                                        libcairo.}
-proc mark_dirty*(surface: PSurface){.cdecl, 
-    importc: "cairo_surface_mark_dirty", libcairo.}
-proc mark_dirty_rectangle*(surface: PSurface, x, y, width, height: int32){.
-    cdecl, importc: "cairo_surface_mark_dirty_rectangle", libcairo.}
-proc set_device_offset*(surface: PSurface, x_offset, y_offset: float64){.
-    cdecl, importc: "cairo_surface_set_device_offset", libcairo.}
-proc get_device_offset*(surface: PSurface, 
-                                x_offset, y_offset: var float64){.cdecl, 
-    importc: "cairo_surface_get_device_offset", libcairo.}
-proc set_fallback_resolution*(surface: PSurface, x_pixels_per_inch, 
-    y_pixels_per_inch: float64){.cdecl, importc: "cairo_surface_set_fallback_resolution", 
-                                 libcairo.}
-  #* Image-surface functions
-proc image_surface_create*(format: TFormat, width, height: int32): PSurface{.
-    cdecl, importc: "cairo_image_surface_create", libcairo.}
-proc image_surface_create*(data: Pbyte, format: TFormat, 
-                           width, height, stride: int32): PSurface{.
-    cdecl, importc: "cairo_image_surface_create_for_data", libcairo.}
-proc get_data*(surface: PSurface): cstring{.cdecl, 
-    importc: "cairo_image_surface_get_data", libcairo.}
-proc get_format*(surface: PSurface): TFormat{.cdecl, 
-    importc: "cairo_image_surface_get_format", libcairo.}
-proc get_width*(surface: PSurface): int32{.cdecl, 
-    importc: "cairo_image_surface_get_width", libcairo.}
-proc get_height*(surface: PSurface): int32{.cdecl, 
-    importc: "cairo_image_surface_get_height", libcairo.}
-proc get_stride*(surface: PSurface): int32{.cdecl, 
-    importc: "cairo_image_surface_get_stride", libcairo.}
-proc image_surface_create_from_png*(filename: cstring): PSurface{.cdecl, 
-    importc: "cairo_image_surface_create_from_png", libcairo.}
-proc image_surface_create_from_png*(read_func: TReadFunc, 
-    closure: pointer): PSurface{.cdecl, importc: "cairo_image_surface_create_from_png_stream", 
-                                 libcairo.}
-  #* Pattern creation functions
-proc pattern_create_rgb*(red, green, blue: float64): PPattern{.cdecl, 
-    importc: "cairo_pattern_create_rgb", libcairo.}
-proc pattern_create_rgba*(red, green, blue, alpha: float64): PPattern{.cdecl, 
-    importc: "cairo_pattern_create_rgba", libcairo.}
-proc pattern_create_for_surface*(surface: PSurface): PPattern{.cdecl, 
-    importc: "cairo_pattern_create_for_surface", libcairo.}
-proc pattern_create_linear*(x0, y0, x1, y1: float64): PPattern{.cdecl, 
-    importc: "cairo_pattern_create_linear", libcairo.}
-proc pattern_create_radial*(cx0, cy0, radius0, cx1, cy1, radius1: float64): PPattern{.
-    cdecl, importc: "cairo_pattern_create_radial", libcairo.}
-proc reference*(pattern: PPattern): PPattern{.cdecl, 
-    importc: "cairo_pattern_reference", libcairo.}
-proc destroy*(pattern: PPattern){.cdecl, 
-    importc: "cairo_pattern_destroy", libcairo.}
-proc get_reference_count*(pattern: PPattern): int32{.cdecl, 
-    importc: "cairo_pattern_get_reference_count", libcairo.}
-proc status*(pattern: PPattern): TStatus{.cdecl, 
-    importc: "cairo_pattern_status", libcairo.}
-proc get_user_data*(pattern: PPattern, key: PUserDataKey): Pointer{.
-    cdecl, importc: "cairo_pattern_get_user_data", libcairo.}
-proc set_user_data*(pattern: PPattern, key: PUserDataKey, 
-                    user_data: Pointer, destroy: TDestroyFunc): TStatus{.
-    cdecl, importc: "cairo_pattern_set_user_data", libcairo.}
-proc get_type*(pattern: PPattern): TPatternType{.cdecl, 
-    importc: "cairo_pattern_get_type", libcairo.}
-proc add_color_stop_rgb*(pattern: PPattern, 
-                                 offset, red, green, blue: float64){.cdecl, 
-    importc: "cairo_pattern_add_color_stop_rgb", libcairo.}
-proc add_color_stop_rgba*(pattern: PPattern, 
-                                  offset, red, green, blue, alpha: float64){.
-    cdecl, importc: "cairo_pattern_add_color_stop_rgba", libcairo.}
-proc set_matrix*(pattern: PPattern, matrix: PMatrix){.cdecl, 
-    importc: "cairo_pattern_set_matrix", libcairo.}
-proc get_matrix*(pattern: PPattern, matrix: PMatrix){.cdecl, 
-    importc: "cairo_pattern_get_matrix", libcairo.}
-proc set_extend*(pattern: PPattern, extend: TExtend){.cdecl, 
-    importc: "cairo_pattern_set_extend", libcairo.}
-proc get_extend*(pattern: PPattern): TExtend{.cdecl, 
-    importc: "cairo_pattern_get_extend", libcairo.}
-proc set_filter*(pattern: PPattern, filter: TFilter){.cdecl, 
-    importc: "cairo_pattern_set_filter", libcairo.}
-proc get_filter*(pattern: PPattern): TFilter{.cdecl, 
-    importc: "cairo_pattern_get_filter", libcairo.}
-proc get_rgba*(pattern: PPattern, 
-               red, green, blue, alpha: var float64): TStatus{.
-    cdecl, importc: "cairo_pattern_get_rgba", libcairo.}
-proc get_surface*(pattern: PPattern, surface: PPSurface): TStatus{.
-    cdecl, importc: "cairo_pattern_get_surface", libcairo.}
-proc get_color_stop_rgba*(pattern: PPattern, index: int32, 
-                       offset, red, green, blue, alpha: var float64): TStatus{.
-    cdecl, importc: "cairo_pattern_get_color_stop_rgba", libcairo.}
-proc get_color_stop_count*(pattern: PPattern, count: var int32): TStatus{.
-    cdecl, importc: "cairo_pattern_get_color_stop_count", libcairo.}
-proc get_linear_points*(pattern: PPattern, 
-                        x0, y0, x1, y1: var float64): TStatus{.
-    cdecl, importc: "cairo_pattern_get_linear_points", libcairo.}
-proc get_radial_circles*(pattern: PPattern, 
-                         x0, y0, r0, x1, y1, r1: var float64): TStatus{.
-    cdecl, importc: "cairo_pattern_get_radial_circles", libcairo.}
-  #* Matrix functions
-proc init*(matrix: PMatrix, xx, yx, xy, yy, x0, y0: float64){.cdecl, 
-    importc: "cairo_matrix_init", libcairo.}
-proc init_identity*(matrix: PMatrix){.cdecl, 
-    importc: "cairo_matrix_init_identity", libcairo.}
-proc init_translate*(matrix: PMatrix, tx, ty: float64){.cdecl, 
-    importc: "cairo_matrix_init_translate", libcairo.}
-proc init_scale*(matrix: PMatrix, sx, sy: float64){.cdecl, 
-    importc: "cairo_matrix_init_scale", libcairo.}
-proc init_rotate*(matrix: PMatrix, radians: float64){.cdecl, 
-    importc: "cairo_matrix_init_rotate", libcairo.}
-proc translate*(matrix: PMatrix, tx, ty: float64){.cdecl, 
-    importc: "cairo_matrix_translate", libcairo.}
-proc scale*(matrix: PMatrix, sx, sy: float64){.cdecl, 
-    importc: "cairo_matrix_scale", libcairo.}
-proc rotate*(matrix: PMatrix, radians: float64){.cdecl, 
-    importc: "cairo_matrix_rotate", libcairo.}
-proc invert*(matrix: PMatrix): TStatus{.cdecl, 
-    importc: "cairo_matrix_invert", libcairo.}
-proc multiply*(result, a, b: PMatrix){.cdecl, 
-    importc: "cairo_matrix_multiply", libcairo.}
-proc transform_distance*(matrix: PMatrix, dx, dy: var float64){.cdecl, 
-    importc: "cairo_matrix_transform_distance", libcairo.}
-proc transform_point*(matrix: PMatrix, x, y: var float64){.cdecl, 
-    importc: "cairo_matrix_transform_point", libcairo.}
-  #* PDF functions
-proc pdf_surface_create*(filename: cstring, 
-                         width_in_points, height_in_points: float64): PSurface{.
-    cdecl, importc: "cairo_pdf_surface_create", libcairo.}
-proc pdf_surface_create_for_stream*(write_func: TWriteFunc, closure: Pointer, 
-                                    width_in_points, height_in_points: float64): PSurface{.
-    cdecl, importc: "cairo_pdf_surface_create_for_stream", libcairo.}
-proc pdf_surface_set_size*(surface: PSurface, 
-                           width_in_points, height_in_points: float64){.cdecl, 
-    importc: "cairo_pdf_surface_set_size", libcairo.}
-  #* PS functions
-proc ps_surface_create*(filename: cstring, 
-                        width_in_points, height_in_points: float64): PSurface{.
-    cdecl, importc: "cairo_ps_surface_create", libcairo.}
-proc ps_surface_create_for_stream*(write_func: TWriteFunc, closure: Pointer, 
-                                   width_in_points, height_in_points: float64): PSurface{.
-    cdecl, importc: "cairo_ps_surface_create_for_stream", libcairo.}
-proc ps_surface_set_size*(surface: PSurface, 
-                          width_in_points, height_in_points: float64){.cdecl, 
-    importc: "cairo_ps_surface_set_size", libcairo.}
-proc ps_surface_dsc_comment*(surface: PSurface, comment: cstring){.cdecl, 
-    importc: "cairo_ps_surface_dsc_comment", libcairo.}
-proc ps_surface_dsc_begin_setup*(surface: PSurface){.cdecl, 
-    importc: "cairo_ps_surface_dsc_begin_setup", libcairo.}
-proc ps_surface_dsc_begin_page_setup*(surface: PSurface){.cdecl, 
-    importc: "cairo_ps_surface_dsc_begin_page_setup", libcairo.}
-  #* SVG functions
-proc svg_surface_create*(filename: cstring, 
-                         width_in_points, height_in_points: float64): PSurface{.
-    cdecl, importc: "cairo_svg_surface_create", libcairo.}
-proc svg_surface_create_for_stream*(write_func: TWriteFunc, closure: Pointer, 
-                                    width_in_points, height_in_points: float64): PSurface{.
-    cdecl, importc: "cairo_svg_surface_create_for_stream", libcairo.}
-proc svg_surface_restrict_to_version*(surface: PSurface, version: TSvgVersion){.
-    cdecl, importc: "cairo_svg_surface_restrict_to_version", libcairo.}
-  #todo: see how translate this
-  #procedure cairo_svg_get_versions(TCairoSvgVersion const	**versions,
-  #                        int                      	 *num_versions);
-proc svg_version_to_string*(version: TSvgVersion): cstring{.cdecl, 
-    importc: "cairo_svg_version_to_string", libcairo.}
-  #* Functions to be used while debugging (not intended for use in production code)
-proc debug_reset_static_data*(){.cdecl, 
-                                 importc: "cairo_debug_reset_static_data", 
-                                 libcairo.}
-# implementation
-
-proc version(major, minor, micro: var int32) = 
-  var version: int32
-  version = version()
-  major = version div 10000'i32
-  minor = (version mod (major * 10000'i32)) div 100'i32
-  micro = (version mod ((major * 10000'i32) + (minor * 100'i32)))
-  
-proc checkStatus*(s: cairo.TStatus) {.noinline.} = 
-  ## if ``s != StatusSuccess`` the error is turned into an appropirate Nimrod
-  ## exception and raised.
-  case s
-  of StatusSuccess: nil
-  of StatusNoMemory: 
-    raise newException(EOutOfMemory, $statusToString(s))
-  of STATUS_READ_ERROR, STATUS_WRITE_ERROR, STATUS_FILE_NOT_FOUND, 
-     STATUS_TEMP_FILE_ERROR:
-    raise newException(EIO, $statusToString(s))
-  else:
-    raise newException(EAssertionFailed, $statusToString(s))
-
-
diff --git a/lib/wrappers/cairo/cairo_pragma.nim b/lib/wrappers/cairo/cairo_pragma.nim
deleted file mode 100644
index 11bf237f9..000000000
--- a/lib/wrappers/cairo/cairo_pragma.nim
+++ /dev/null
@@ -1,16 +0,0 @@
-# included by cairo bindings
-
-when defined(use_pkg_config) or defined(use_pkg_config_static):
-    {.pragma: libcairo, cdecl.}
-    when defined(use_pkg_config_static):
-        {.passl: gorge("pkg-config cairo --libs --static").}
-    else:
-        {.passl: gorge("pkg-config cairo --libs").}
-else:
-    when defined(windows): 
-      const LIB_CAIRO* = "libcairo-2.dll"
-    elif defined(macosx):
-      const LIB_CAIRO* = "libcairo.dylib"
-    else: 
-      const LIB_CAIRO* = "libcairo.so(|.2)"
-    {.pragma: libcairo, cdecl, dynlib: LIB_CAIRO.}
diff --git a/lib/wrappers/cairo/cairoft.nim b/lib/wrappers/cairo/cairoft.nim
deleted file mode 100644
index 5f4e47662..000000000
--- a/lib/wrappers/cairo/cairoft.nim
+++ /dev/null
@@ -1,36 +0,0 @@
-#
-# Translation of cairo-ft.h 
-# by Jeffrey Pohlmeyer 
-# updated to version 1.4 by Luiz Américo Pereira Câmara 2007
-#
-
-import 
-  cairo, freetypeh
-
-include "cairo_pragma.nim"
-#todo: properly define FcPattern:
-#It will require translate FontConfig header
-
-#*
-#typedef struct _XftPattern {
-#  int		    num;
-#  int		    size;
-#  XftPatternElt   *elts;
-# } XftPattern;
-# typedef FcPattern XftPattern;
-#
-
-type 
-  FcPattern* = Pointer
-  PFcPattern* = ptr FcPattern
-
-proc ft_font_face_create_for_pattern*(pattern: PFcPattern): PFontFace{.libcairo,
-    importc: "cairo_ft_font_face_create_for_pattern".}
-proc ft_font_options_substitute*(options: PFontOptions, pattern: PFcPattern){.
-    libcairo, importc: "cairo_ft_font_options_substitute".}
-proc ft_font_face_create_for_ft_face*(face: TFT_Face, load_flags: int32): PFontFace{.libcairo,
-    importc: "cairo_ft_font_face_create_for_ft_face".}
-proc ft_scaled_font_lock_face*(scaled_font: PScaledFont): TFT_Face{.libcairo,
-    importc: "cairo_ft_scaled_font_lock_face".}
-proc ft_scaled_font_unlock_face*(scaled_font: PScaledFont){.libcairo,
-    importc: "cairo_ft_scaled_font_unlock_face".}
diff --git a/lib/wrappers/cairo/cairowin32.nim b/lib/wrappers/cairo/cairowin32.nim
deleted file mode 100644
index cec3a5bc5..000000000
--- a/lib/wrappers/cairo/cairowin32.nim
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# Translation of cairo-win32.h version 1.4
-# by Luiz Américo Pereira Câmara 2007
-#
-
-import 
-  cairo, windows
-
-proc win32_surface_create*(hdc: HDC): PSurface{.cdecl, 
-    importc: "cairo_win32_surface_create", dynlib: LIB_CAIRO.}
-proc win32_surface_create_with_ddb*(hdc: HDC, format: TFormat, 
-                                    width, height: int32): PSurface{.cdecl, 
-    importc: "cairo_win32_surface_create_with_ddb", dynlib: LIB_CAIRO.}
-proc win32_surface_create_with_dib*(format: TFormat, width, height: int32): PSurface{.
-    cdecl, importc: "cairo_win32_surface_create_with_dib", dynlib: LIB_CAIRO.}
-proc win32_surface_get_dc*(surface: PSurface): HDC{.cdecl, 
-    importc: "cairo_win32_surface_get_dc", dynlib: LIB_CAIRO.}
-proc win32_surface_get_image*(surface: PSurface): PSurface{.cdecl, 
-    importc: "cairo_win32_surface_get_image", dynlib: LIB_CAIRO.}
-proc win32_font_face_create_for_logfontw*(logfont: pLOGFONTW): PFontFace{.cdecl, 
-    importc: "cairo_win32_font_face_create_for_logfontw", dynlib: LIB_CAIRO.}
-proc win32_font_face_create_for_hfont*(font: HFONT): PFontFace{.cdecl, 
-    importc: "cairo_win32_font_face_create_for_hfont", dynlib: LIB_CAIRO.}
-proc win32_scaled_font_select_font*(scaled_font: PScaledFont, hdc: HDC): TStatus{.
-    cdecl, importc: "cairo_win32_scaled_font_select_font", dynlib: LIB_CAIRO.}
-proc win32_scaled_font_done_font*(scaled_font: PScaledFont){.cdecl, 
-    importc: "cairo_win32_scaled_font_done_font", dynlib: LIB_CAIRO.}
-proc win32_scaled_font_get_metrics_factor*(scaled_font: PScaledFont): float64{.
-    cdecl, importc: "cairo_win32_scaled_font_get_metrics_factor", 
-    dynlib: LIB_CAIRO.}
-proc win32_scaled_font_get_logical_to_device*(scaled_font: PScaledFont, 
-    logical_to_device: PMatrix){.cdecl, importc: "cairo_win32_scaled_font_get_logical_to_device", 
-                                 dynlib: LIB_CAIRO.}
-proc win32_scaled_font_get_device_to_logical*(scaled_font: PScaledFont, 
-    device_to_logical: PMatrix){.cdecl, importc: "cairo_win32_scaled_font_get_device_to_logical", 
-                                 dynlib: LIB_CAIRO.}
-# implementation
diff --git a/lib/wrappers/cairo/cairoxlib.nim b/lib/wrappers/cairo/cairoxlib.nim
deleted file mode 100644
index 273a8b42f..000000000
--- a/lib/wrappers/cairo/cairoxlib.nim
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# Translation of cairo-xlib.h version 1.4
-# by Jeffrey Pohlmeyer 
-# updated to version 1.4 by Luiz Américo Pereira Câmara 2007
-#
-
-import 
-  cairo, x, xlib, xrender
-
-include "cairo_pragma.nim"
-
-proc xlib_surface_create*(dpy: PDisplay, drawable: TDrawable, visual: PVisual, 
-                          width, height: int32): PSurface{.cdecl, 
-    importc: "cairo_xlib_surface_create", libcairo.}
-proc xlib_surface_create_for_bitmap*(dpy: PDisplay, bitmap: TPixmap, 
-                                     screen: PScreen, width, height: int32): PSurface{.
-    cdecl, importc: "cairo_xlib_surface_create_for_bitmap", libcairo.}
-proc xlib_surface_create_with_xrender_format*(dpy: PDisplay, 
-    drawable: TDrawable, screen: PScreen, format: PXRenderPictFormat, 
-    width, height: int32): PSurface{.cdecl, importc: "cairo_xlib_surface_create_with_xrender_format", 
-                                     libcairo.}
-proc xlib_surface_get_depth*(surface: PSurface): int32{.cdecl, 
-    importc: "cairo_xlib_surface_get_depth", libcairo.}
-proc xlib_surface_get_display*(surface: PSurface): PDisplay{.cdecl, 
-    importc: "cairo_xlib_surface_get_display", libcairo.}
-proc xlib_surface_get_drawable*(surface: PSurface): TDrawable{.cdecl, 
-    importc: "cairo_xlib_surface_get_drawable", libcairo.}
-proc xlib_surface_get_height*(surface: PSurface): int32{.cdecl, 
-    importc: "cairo_xlib_surface_get_height", libcairo.}
-proc xlib_surface_get_screen*(surface: PSurface): PScreen{.cdecl, 
-    importc: "cairo_xlib_surface_get_screen", libcairo.}
-proc xlib_surface_get_visual*(surface: PSurface): PVisual{.cdecl, 
-    importc: "cairo_xlib_surface_get_visual", libcairo.}
-proc xlib_surface_get_width*(surface: PSurface): int32{.cdecl, 
-    importc: "cairo_xlib_surface_get_width", libcairo.}
-proc xlib_surface_set_size*(surface: PSurface, width, height: int32){.cdecl, 
-    importc: "cairo_xlib_surface_set_size", libcairo.}
-proc xlib_surface_set_drawable*(surface: PSurface, drawable: TDrawable, 
-                                width, height: int32){.cdecl, 
-    importc: "cairo_xlib_surface_set_drawable", libcairo.}
-# implementation
diff --git a/lib/wrappers/gtk/atk.nim b/lib/wrappers/gtk/atk.nim
deleted file mode 100644
index f59d95f87..000000000
--- a/lib/wrappers/gtk/atk.nim
+++ /dev/null
@@ -1,1308 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  glib2
-
-when defined(windows): 
-  const 
-    lib = "libatk-1.0-0.dll"
-elif defined(macosx):
-  const 
-    lib = "libatk-1.0.dylib"
-else: 
-  const 
-    lib = "libatk-1.0.so"
-type 
-  PImplementor* = pointer
-  PAction* = pointer
-  PComponent* = pointer
-  PDocument* = pointer
-  PEditableText* = pointer
-  PHypertext* = pointer
-  PImage* = pointer
-  PSelection* = pointer
-  PStreamableContent* = pointer
-  PTable* = pointer
-  PText* = pointer
-  PValue* = pointer
-  PRelationSet* = ptr TRelationSet
-  PStateSet* = ptr TStateSet
-  PAttributeSet* = ptr TAttributeSet
-  PCoordType* = ptr TCoordType
-  TCoordType* = enum 
-    XY_SCREEN, XY_WINDOW
-  PRole* = ptr TRole
-  TRole* = enum 
-    ROLE_INVALID, ROLE_ACCEL_LABEL, ROLE_ALERT, ROLE_ANIMATION, ROLE_ARROW, 
-    ROLE_CALENDAR, ROLE_CANVAS, ROLE_CHECK_BOX, ROLE_CHECK_MENU_ITEM, 
-    ROLE_COLOR_CHOOSER, ROLE_COLUMN_HEADER, ROLE_COMBO_BOX, ROLE_DATE_EDITOR, 
-    ROLE_DESKTOP_ICON, ROLE_DESKTOP_FRAME, ROLE_DIAL, ROLE_DIALOG, 
-    ROLE_DIRECTORY_PANE, ROLE_DRAWING_AREA, ROLE_FILE_CHOOSER, ROLE_FILLER, 
-    ROLE_FONT_CHOOSER, ROLE_FRAME, ROLE_GLASS_PANE, ROLE_HTML_CONTAINER, 
-    ROLE_ICON, ROLE_IMAGE, ROLE_INTERNAL_FRAME, ROLE_LABEL, ROLE_LAYERED_PANE, 
-    ROLE_LIST, ROLE_LIST_ITEM, ROLE_MENU, ROLE_MENU_BAR, ROLE_MENU_ITEM, 
-    ROLE_OPTION_PANE, ROLE_PAGE_TAB, ROLE_PAGE_TAB_LIST, ROLE_PANEL, 
-    ROLE_PASSWORD_TEXT, ROLE_POPUP_MENU, ROLE_PROGRESS_BAR, ROLE_PUSH_BUTTON, 
-    ROLE_RADIO_BUTTON, ROLE_RADIO_MENU_ITEM, ROLE_ROOT_PANE, ROLE_ROW_HEADER, 
-    ROLE_SCROLL_BAR, ROLE_SCROLL_PANE, ROLE_SEPARATOR, ROLE_SLIDER, 
-    ROLE_SPLIT_PANE, ROLE_SPIN_BUTTON, ROLE_STATUSBAR, ROLE_TABLE, 
-    ROLE_TABLE_CELL, ROLE_TABLE_COLUMN_HEADER, ROLE_TABLE_ROW_HEADER, 
-    ROLE_TEAR_OFF_MENU_ITEM, ROLE_TERMINAL, ROLE_TEXT, ROLE_TOGGLE_BUTTON, 
-    ROLE_TOOL_BAR, ROLE_TOOL_TIP, ROLE_TREE, ROLE_TREE_TABLE, ROLE_UNKNOWN, 
-    ROLE_VIEWPORT, ROLE_WINDOW, ROLE_LAST_DEFINED
-  PLayer* = ptr TLayer
-  TLayer* = enum 
-    LAYER_INVALID, LAYER_BACKGROUND, LAYER_CANVAS, LAYER_WIDGET, LAYER_MDI, 
-    LAYER_POPUP, LAYER_OVERLAY
-  PPropertyValues* = ptr TPropertyValues
-  TPropertyValues*{.final, pure.} = object 
-    property_name*: cstring
-    old_value*: TGValue
-    new_value*: TGValue
-
-  TFunction* = proc (data: gpointer): gboolean{.cdecl.}
-  PObject* = ptr TObject
-  PPAtkObject* = ptr PObject
-  TObject* = object of TGObject
-    description*: cstring
-    name*: cstring
-    accessible_parent*: PObject
-    role*: TRole
-    relation_set*: PRelationSet
-    layer*: TLayer
-
-  TPropertyChangeHandler* = proc (para1: PObject, para2: PPropertyValues){.cdecl.}
-  PObjectClass* = ptr TObjectClass
-  TObjectClass* = object of TGObjectClass
-    get_name*: proc (accessible: PObject): cstring{.cdecl.}
-    get_description*: proc (accessible: PObject): cstring{.cdecl.}
-    get_parent*: proc (accessible: PObject): PObject{.cdecl.}
-    get_n_children*: proc (accessible: PObject): gint{.cdecl.}
-    ref_child*: proc (accessible: PObject, i: gint): PObject{.cdecl.}
-    get_index_in_parent*: proc (accessible: PObject): gint{.cdecl.}
-    ref_relation_set*: proc (accessible: PObject): PRelationSet{.cdecl.}
-    get_role*: proc (accessible: PObject): TRole{.cdecl.}
-    get_layer*: proc (accessible: PObject): TLayer{.cdecl.}
-    get_mdi_zorder*: proc (accessible: PObject): gint{.cdecl.}
-    ref_state_set*: proc (accessible: PObject): PStateSet{.cdecl.}
-    set_name*: proc (accessible: PObject, name: cstring){.cdecl.}
-    set_description*: proc (accessible: PObject, description: cstring){.cdecl.}
-    set_parent*: proc (accessible: PObject, parent: PObject){.cdecl.}
-    set_role*: proc (accessible: PObject, role: TRole){.cdecl.}
-    connect_property_change_handler*: proc (accessible: PObject, 
-        handler: TPropertyChangeHandler): guint{.cdecl.}
-    remove_property_change_handler*: proc (accessible: PObject, 
-        handler_id: guint){.cdecl.}
-    initialize*: proc (accessible: PObject, data: gpointer){.cdecl.}
-    children_changed*: proc (accessible: PObject, change_index: guint, 
-                             changed_child: gpointer){.cdecl.}
-    focus_event*: proc (accessible: PObject, focus_in: gboolean){.cdecl.}
-    property_change*: proc (accessible: PObject, values: PPropertyValues){.cdecl.}
-    state_change*: proc (accessible: PObject, name: cstring, state_set: gboolean){.
-        cdecl.}
-    visible_data_changed*: proc (accessible: PObject){.cdecl.}
-    pad1*: TFunction
-    pad2*: TFunction
-    pad3*: TFunction
-    pad4*: TFunction
-
-  PImplementorIface* = ptr TImplementorIface
-  TImplementorIface* = object of TGTypeInterface
-    ref_accessible*: proc (implementor: PImplementor): PObject{.cdecl.}
-
-  PActionIface* = ptr TActionIface
-  TActionIface* = object of TGTypeInterface
-    do_action*: proc (action: PAction, i: gint): gboolean{.cdecl.}
-    get_n_actions*: proc (action: PAction): gint{.cdecl.}
-    get_description*: proc (action: PAction, i: gint): cstring{.cdecl.}
-    get_name*: proc (action: PAction, i: gint): cstring{.cdecl.}
-    get_keybinding*: proc (action: PAction, i: gint): cstring{.cdecl.}
-    set_description*: proc (action: PAction, i: gint, desc: cstring): gboolean{.
-        cdecl.}
-    pad1*: TFunction
-    pad2*: TFunction
-
-  TFocusHandler* = proc (para1: PObject, para2: gboolean){.cdecl.}
-  PComponentIface* = ptr TComponentIface
-  TComponentIface* = object of TGTypeInterface
-    add_focus_handler*: proc (component: PComponent, handler: TFocusHandler): guint{.
-        cdecl.}
-    contains*: proc (component: PComponent, x: gint, y: gint, 
-                     coord_type: TCoordType): gboolean{.cdecl.}
-    ref_accessible_at_point*: proc (component: PComponent, x: gint, y: gint, 
-                                    coord_type: TCoordType): PObject{.cdecl.}
-    get_extents*: proc (component: PComponent, x: Pgint, y: Pgint, width: Pgint, 
-                        height: Pgint, coord_type: TCoordType){.cdecl.}
-    get_position*: proc (component: PComponent, x: Pgint, y: Pgint, 
-                         coord_type: TCoordType){.cdecl.}
-    get_size*: proc (component: PComponent, width: Pgint, height: Pgint){.cdecl.}
-    grab_focus*: proc (component: PComponent): gboolean{.cdecl.}
-    remove_focus_handler*: proc (component: PComponent, handler_id: guint){.
-        cdecl.}
-    set_extents*: proc (component: PComponent, x: gint, y: gint, width: gint, 
-                        height: gint, coord_type: TCoordType): gboolean{.cdecl.}
-    set_position*: proc (component: PComponent, x: gint, y: gint, 
-                         coord_type: TCoordType): gboolean{.cdecl.}
-    set_size*: proc (component: PComponent, width: gint, height: gint): gboolean{.
-        cdecl.}
-    get_layer*: proc (component: PComponent): TLayer{.cdecl.}
-    get_mdi_zorder*: proc (component: PComponent): gint{.cdecl.}
-    pad1*: TFunction
-    pad2*: TFunction
-
-  PDocumentIface* = ptr TDocumentIface
-  TDocumentIface* = object of TGTypeInterface
-    get_document_type*: proc (document: PDocument): cstring{.cdecl.}
-    get_document*: proc (document: PDocument): gpointer{.cdecl.}
-    pad1*: TFunction
-    pad2*: TFunction
-    pad3*: TFunction
-    pad4*: TFunction
-    pad5*: TFunction
-    pad6*: TFunction
-    pad7*: TFunction
-    pad8*: TFunction
-
-  PEditableTextIface* = ptr TEditableTextIface
-  TEditableTextIface* = object of TGTypeInterface
-    set_run_attributes*: proc (text: PEditableText, attrib_set: PAttributeSet, 
-                               start_offset: gint, end_offset: gint): gboolean{.
-        cdecl.}
-    set_text_contents*: proc (text: PEditableText, `string`: cstring){.cdecl.}
-    insert_text*: proc (text: PEditableText, `string`: cstring, length: gint, 
-                        position: Pgint){.cdecl.}
-    copy_text*: proc (text: PEditableText, start_pos: gint, end_pos: gint){.
-        cdecl.}
-    cut_text*: proc (text: PEditableText, start_pos: gint, end_pos: gint){.cdecl.}
-    delete_text*: proc (text: PEditableText, start_pos: gint, end_pos: gint){.
-        cdecl.}
-    paste_text*: proc (text: PEditableText, position: gint){.cdecl.}
-    pad1*: TFunction
-    pad2*: TFunction
-
-  PGObjectAccessible* = ptr TGObjectAccessible
-  TGObjectAccessible* = object of TObject
-  PGObjectAccessibleClass* = ptr TGObjectAccessibleClass
-  TGObjectAccessibleClass* = object of TObjectClass
-    pad5*: TFunction
-    pad6*: TFunction
-
-  PHyperlink* = ptr THyperlink
-  THyperlink* = object of TGObject
-  PHyperlinkClass* = ptr THyperlinkClass
-  THyperlinkClass* = object of TGObjectClass
-    get_uri*: proc (link: PHyperlink, i: gint): cstring{.cdecl.}
-    get_object*: proc (link: PHyperlink, i: gint): PObject{.cdecl.}
-    get_end_index*: proc (link: PHyperlink): gint{.cdecl.}
-    get_start_index*: proc (link: PHyperlink): gint{.cdecl.}
-    is_valid*: proc (link: PHyperlink): gboolean{.cdecl.}
-    get_n_anchors*: proc (link: PHyperlink): gint{.cdecl.}
-    pad7*: TFunction
-    pad8*: TFunction
-    pad9*: TFunction
-    pad10*: TFunction
-
-  PHypertextIface* = ptr THypertextIface
-  THypertextIface* = object of TGTypeInterface
-    get_link*: proc (hypertext: PHypertext, link_index: gint): PHyperlink{.cdecl.}
-    get_n_links*: proc (hypertext: PHypertext): gint{.cdecl.}
-    get_link_index*: proc (hypertext: PHypertext, char_index: gint): gint{.cdecl.}
-    pad11*: TFunction
-    pad12*: TFunction
-    pad13*: TFunction
-    pad14*: TFunction
-
-  PImageIface* = ptr TImageIface
-  TImageIface* = object of TGTypeInterface
-    get_image_position*: proc (image: PImage, x: Pgint, y: Pgint, 
-                               coord_type: TCoordType){.cdecl.}
-    get_image_description*: proc (image: PImage): cstring{.cdecl.}
-    get_image_size*: proc (image: PImage, width: Pgint, height: Pgint){.cdecl.}
-    set_image_description*: proc (image: PImage, description: cstring): gboolean{.
-        cdecl.}
-    pad15*: TFunction
-    pad16*: TFunction
-
-  PObjectFactory* = ptr TObjectFactory
-  TObjectFactory* = object of TGObject
-  PObjectFactoryClass* = ptr TObjectFactoryClass
-  TObjectFactoryClass* = object of TGObjectClass
-    create_accessible*: proc (obj: PGObject): PObject{.cdecl.}
-    invalidate*: proc (factory: PObjectFactory){.cdecl.}
-    get_accessible_type*: proc (): GType{.cdecl.}
-    pad17*: TFunction
-    pad18*: TFunction
-
-  PRegistry* = ptr TRegistry
-  TRegistry* = object of TGObject
-    factory_type_registry*: PGHashTable
-    factory_singleton_cache*: PGHashTable
-
-  PRegistryClass* = ptr TRegistryClass
-  TRegistryClass* = object of TGObjectClass
-  PRelationType* = ptr TRelationType
-  TRelationType* = enum 
-    RELATION_NULL, RELATION_CONTROLLED_BY, RELATION_CONTROLLER_FOR, 
-    RELATION_LABEL_FOR, RELATION_LABELLED_BY, RELATION_MEMBER_OF, 
-    RELATION_NODE_CHILD_OF, RELATION_LAST_DEFINED
-  PRelation* = ptr TRelation
-  PGPtrArray = pointer
-  TRelation* = object of TGObject
-    target*: PGPtrArray
-    relationship*: TRelationType
-
-  PRelationClass* = ptr TRelationClass
-  TRelationClass* = object of TGObjectClass
-  TRelationSet* = object of TGObject
-    relations*: PGPtrArray
-
-  PRelationSetClass* = ptr TRelationSetClass
-  TRelationSetClass* = object of TGObjectClass
-    pad19*: TFunction
-    pad20*: TFunction
-
-  PSelectionIface* = ptr TSelectionIface
-  TSelectionIface* = object of TGTypeInterface
-    add_selection*: proc (selection: PSelection, i: gint): gboolean{.cdecl.}
-    clear_selection*: proc (selection: PSelection): gboolean{.cdecl.}
-    ref_selection*: proc (selection: PSelection, i: gint): PObject{.cdecl.}
-    get_selection_count*: proc (selection: PSelection): gint{.cdecl.}
-    is_child_selected*: proc (selection: PSelection, i: gint): gboolean{.cdecl.}
-    remove_selection*: proc (selection: PSelection, i: gint): gboolean{.cdecl.}
-    select_all_selection*: proc (selection: PSelection): gboolean{.cdecl.}
-    selection_changed*: proc (selection: PSelection){.cdecl.}
-    pad1*: TFunction
-    pad2*: TFunction
-
-  PStateType* = ptr TStateType
-  TStateType* = enum 
-    STATE_INVALID, STATE_ACTIVE, STATE_ARMED, STATE_BUSY, STATE_CHECKED, 
-    STATE_DEFUNCT, STATE_EDITABLE, STATE_ENABLED, STATE_EXPANDABLE, 
-    STATE_EXPANDED, STATE_FOCUSABLE, STATE_FOCUSED, STATE_HORIZONTAL, 
-    STATE_ICONIFIED, STATE_MODAL, STATE_MULTI_LINE, STATE_MULTISELECTABLE, 
-    STATE_OPAQUE, STATE_PRESSED, STATE_RESIZABLE, STATE_SELECTABLE, 
-    STATE_SELECTED, STATE_SENSITIVE, STATE_SHOWING, STATE_SINGLE_LINE, 
-    STATE_STALE, STATE_TRANSIENT, STATE_VERTICAL, STATE_VISIBLE, 
-    STATE_LAST_DEFINED
-  PState* = ptr TState
-  TState* = guint64
-  TStateSet* = object of TGObject
-  PStateSetClass* = ptr TStateSetClass
-  TStateSetClass* = object of TGObjectClass
-  PStreamableContentIface* = ptr TStreamableContentIface
-  TStreamableContentIface* = object of TGTypeInterface
-    get_n_mime_types*: proc (streamable: PStreamableContent): gint{.cdecl.}
-    get_mime_type*: proc (streamable: PStreamableContent, i: gint): cstring{.
-        cdecl.}
-    get_stream*: proc (streamable: PStreamableContent, mime_type: cstring): PGIOChannel{.
-        cdecl.}
-    pad21*: TFunction
-    pad22*: TFunction
-    pad23*: TFunction
-    pad24*: TFunction
-
-  PTableIface* = ptr TTableIface
-  TTableIface* = object of TGTypeInterface
-    ref_at*: proc (table: PTable, row: gint, column: gint): PObject{.cdecl.}
-    get_index_at*: proc (table: PTable, row: gint, column: gint): gint{.cdecl.}
-    get_column_at_index*: proc (table: PTable, index: gint): gint{.cdecl.}
-    get_row_at_index*: proc (table: PTable, index: gint): gint{.cdecl.}
-    get_n_columns*: proc (table: PTable): gint{.cdecl.}
-    get_n_rows*: proc (table: PTable): gint{.cdecl.}
-    get_column_extent_at*: proc (table: PTable, row: gint, column: gint): gint{.
-        cdecl.}
-    get_row_extent_at*: proc (table: PTable, row: gint, column: gint): gint{.
-        cdecl.}
-    get_caption*: proc (table: PTable): PObject{.cdecl.}
-    get_column_description*: proc (table: PTable, column: gint): cstring{.cdecl.}
-    get_column_header*: proc (table: PTable, column: gint): PObject{.cdecl.}
-    get_row_description*: proc (table: PTable, row: gint): cstring{.cdecl.}
-    get_row_header*: proc (table: PTable, row: gint): PObject{.cdecl.}
-    get_summary*: proc (table: PTable): PObject{.cdecl.}
-    set_caption*: proc (table: PTable, caption: PObject){.cdecl.}
-    set_column_description*: proc (table: PTable, column: gint, 
-                                   description: cstring){.cdecl.}
-    set_column_header*: proc (table: PTable, column: gint, header: PObject){.
-        cdecl.}
-    set_row_description*: proc (table: PTable, row: gint, description: cstring){.
-        cdecl.}
-    set_row_header*: proc (table: PTable, row: gint, header: PObject){.cdecl.}
-    set_summary*: proc (table: PTable, accessible: PObject){.cdecl.}
-    get_selected_columns*: proc (table: PTable, selected: PPgint): gint{.cdecl.}
-    get_selected_rows*: proc (table: PTable, selected: PPgint): gint{.cdecl.}
-    is_column_selected*: proc (table: PTable, column: gint): gboolean{.cdecl.}
-    is_row_selected*: proc (table: PTable, row: gint): gboolean{.cdecl.}
-    is_selected*: proc (table: PTable, row: gint, column: gint): gboolean{.cdecl.}
-    add_row_selection*: proc (table: PTable, row: gint): gboolean{.cdecl.}
-    remove_row_selection*: proc (table: PTable, row: gint): gboolean{.cdecl.}
-    add_column_selection*: proc (table: PTable, column: gint): gboolean{.cdecl.}
-    remove_column_selection*: proc (table: PTable, column: gint): gboolean{.
-        cdecl.}
-    row_inserted*: proc (table: PTable, row: gint, num_inserted: gint){.cdecl.}
-    column_inserted*: proc (table: PTable, column: gint, num_inserted: gint){.
-        cdecl.}
-    row_deleted*: proc (table: PTable, row: gint, num_deleted: gint){.cdecl.}
-    column_deleted*: proc (table: PTable, column: gint, num_deleted: gint){.
-        cdecl.}
-    row_reordered*: proc (table: PTable){.cdecl.}
-    column_reordered*: proc (table: PTable){.cdecl.}
-    model_changed*: proc (table: PTable){.cdecl.}
-    pad25*: TFunction
-    pad26*: TFunction
-    pad27*: TFunction
-    pad28*: TFunction
-
-  TAttributeSet* = TGSList
-  PAttribute* = ptr TAttribute
-  TAttribute*{.final, pure.} = object 
-    name*: cstring
-    value*: cstring
-
-  PTextAttribute* = ptr TTextAttribute
-  TTextAttribute* = enum 
-    TEXT_ATTR_INVALID, TEXT_ATTR_LEFT_MARGIN, TEXT_ATTR_RIGHT_MARGIN, 
-    TEXT_ATTR_INDENT, TEXT_ATTR_INVISIBLE, TEXT_ATTR_EDITABLE, 
-    TEXT_ATTR_PIXELS_ABOVE_LINES, TEXT_ATTR_PIXELS_BELOW_LINES, 
-    TEXT_ATTR_PIXELS_INSIDE_WRAP, TEXT_ATTR_BG_FULL_HEIGHT, TEXT_ATTR_RISE, 
-    TEXT_ATTR_UNDERLINE, TEXT_ATTR_STRIKETHROUGH, TEXT_ATTR_SIZE, 
-    TEXT_ATTR_SCALE, TEXT_ATTR_WEIGHT, TEXT_ATTR_LANGUAGE, 
-    TEXT_ATTR_FAMILY_NAME, TEXT_ATTR_BG_COLOR, TEXT_ATTR_FG_COLOR, 
-    TEXT_ATTR_BG_STIPPLE, TEXT_ATTR_FG_STIPPLE, TEXT_ATTR_WRAP_MODE, 
-    TEXT_ATTR_DIRECTION, TEXT_ATTR_JUSTIFICATION, TEXT_ATTR_STRETCH, 
-    TEXT_ATTR_VARIANT, TEXT_ATTR_STYLE, TEXT_ATTR_LAST_DEFINED
-  PTextBoundary* = ptr TTextBoundary
-  TTextBoundary* = enum 
-    TEXT_BOUNDARY_CHAR, TEXT_BOUNDARY_WORD_START, TEXT_BOUNDARY_WORD_END, 
-    TEXT_BOUNDARY_SENTENCE_START, TEXT_BOUNDARY_SENTENCE_END, 
-    TEXT_BOUNDARY_LINE_START, TEXT_BOUNDARY_LINE_END
-  PTextIface* = ptr TTextIface
-  TTextIface* = object of TGTypeInterface
-    get_text*: proc (text: PText, start_offset: gint, end_offset: gint): cstring{.
-        cdecl.}
-    get_text_after_offset*: proc (text: PText, offset: gint, 
-                                  boundary_type: TTextBoundary, 
-                                  start_offset: Pgint, end_offset: Pgint): cstring{.
-        cdecl.}
-    get_text_at_offset*: proc (text: PText, offset: gint, 
-                               boundary_type: TTextBoundary, 
-                               start_offset: Pgint, end_offset: Pgint): cstring{.
-        cdecl.}
-    get_character_at_offset*: proc (text: PText, offset: gint): gunichar{.cdecl.}
-    get_text_before_offset*: proc (text: PText, offset: gint, 
-                                   boundary_type: TTextBoundary, 
-                                   start_offset: Pgint, end_offset: Pgint): cstring{.
-        cdecl.}
-    get_caret_offset*: proc (text: PText): gint{.cdecl.}
-    get_run_attributes*: proc (text: PText, offset: gint, start_offset: Pgint, 
-                               end_offset: Pgint): PAttributeSet{.cdecl.}
-    get_default_attributes*: proc (text: PText): PAttributeSet{.cdecl.}
-    get_character_extents*: proc (text: PText, offset: gint, x: Pgint, y: Pgint, 
-                                  width: Pgint, height: Pgint, 
-                                  coords: TCoordType){.cdecl.}
-    get_character_count*: proc (text: PText): gint{.cdecl.}
-    get_offset_at_point*: proc (text: PText, x: gint, y: gint, 
-                                coords: TCoordType): gint{.cdecl.}
-    get_n_selections*: proc (text: PText): gint{.cdecl.}
-    get_selection*: proc (text: PText, selection_num: gint, start_offset: Pgint, 
-                          end_offset: Pgint): cstring{.cdecl.}
-    add_selection*: proc (text: PText, start_offset: gint, end_offset: gint): gboolean{.
-        cdecl.}
-    remove_selection*: proc (text: PText, selection_num: gint): gboolean{.cdecl.}
-    set_selection*: proc (text: PText, selection_num: gint, start_offset: gint, 
-                          end_offset: gint): gboolean{.cdecl.}
-    set_caret_offset*: proc (text: PText, offset: gint): gboolean{.cdecl.}
-    text_changed*: proc (text: PText, position: gint, length: gint){.cdecl.}
-    text_caret_moved*: proc (text: PText, location: gint){.cdecl.}
-    text_selection_changed*: proc (text: PText){.cdecl.}
-    pad29*: TFunction
-    pad30*: TFunction
-    pad31*: TFunction
-    pad32*: TFunction
-
-  TEventListener* = proc (para1: PObject){.cdecl.}
-  TEventListenerInitProc* = proc (){.cdecl.}
-  TEventListenerInit* = proc (para1: TEventListenerInitProc){.cdecl.}
-  PKeyEventStruct* = ptr TKeyEventStruct
-  TKeyEventStruct*{.final, pure.} = object 
-    `type`*: gint
-    state*: guint
-    keyval*: guint
-    length*: gint
-    string*: cstring
-    keycode*: guint16
-    timestamp*: guint32
-
-  TKeySnoopFunc* = proc (event: PKeyEventStruct, func_data: gpointer): gint{.
-      cdecl.}
-  PKeyEventType* = ptr TKeyEventType
-  TKeyEventType* = enum 
-    KEY_EVENT_PRESS, KEY_EVENT_RELEASE, KEY_EVENT_LAST_DEFINED
-  PUtil* = ptr TUtil
-  TUtil* = object of TGObject
-  PUtilClass* = ptr TUtilClass
-  TUtilClass* = object of TGObjectClass
-    add_global_event_listener*: proc (listener: TGSignalEmissionHook, 
-                                      event_type: cstring): guint{.cdecl.}
-    remove_global_event_listener*: proc (listener_id: guint){.cdecl.}
-    add_key_event_listener*: proc (listener: TKeySnoopFunc, data: gpointer): guint{.
-        cdecl.}
-    remove_key_event_listener*: proc (listener_id: guint){.cdecl.}
-    get_root*: proc (): PObject{.cdecl.}
-    get_toolkit_name*: proc (): cstring{.cdecl.}
-    get_toolkit_version*: proc (): cstring{.cdecl.}
-
-  PValueIface* = ptr TValueIface
-  TValueIface* = object of TGTypeInterface
-    get_current_value*: proc (obj: PValue, value: PGValue){.cdecl.}
-    get_maximum_value*: proc (obj: PValue, value: PGValue){.cdecl.}
-    get_minimum_value*: proc (obj: PValue, value: PGValue){.cdecl.}
-    set_current_value*: proc (obj: PValue, value: PGValue): gboolean{.cdecl.}
-    pad33*: TFunction
-    pad34*: TFunction
-
-
-proc role_register*(name: cstring): TRole{.cdecl, dynlib: lib, 
-    importc: "atk_role_register".}
-proc object_get_type*(): GType{.cdecl, dynlib: lib, 
-                                importc: "atk_object_get_type".}
-proc TYPE_OBJECT*(): GType
-proc `OBJECT`*(obj: pointer): PObject
-proc OBJECT_CLASS*(klass: pointer): PObjectClass
-proc IS_OBJECT*(obj: pointer): bool
-proc IS_OBJECT_CLASS*(klass: pointer): bool
-proc OBJECT_GET_CLASS*(obj: pointer): PObjectClass
-proc TYPE_IMPLEMENTOR*(): GType
-proc IS_IMPLEMENTOR*(obj: pointer): bool
-proc IMPLEMENTOR*(obj: pointer): PImplementor
-proc IMPLEMENTOR_GET_IFACE*(obj: pointer): PImplementorIface
-proc implementor_get_type*(): GType{.cdecl, dynlib: lib, 
-                                     importc: "atk_implementor_get_type".}
-proc ref_accessible*(implementor: PImplementor): PObject{.cdecl, 
-    dynlib: lib, importc: "atk_implementor_ref_accessible".}
-proc get_name*(accessible: PObject): cstring{.cdecl, dynlib: lib, 
-    importc: "atk_object_get_name".}
-proc get_description*(accessible: PObject): cstring{.cdecl, dynlib: lib, 
-    importc: "atk_object_get_description".}
-proc get_parent*(accessible: PObject): PObject{.cdecl, dynlib: lib, 
-    importc: "atk_object_get_parent".}
-proc get_n_accessible_children*(accessible: PObject): gint{.cdecl, 
-    dynlib: lib, importc: "atk_object_get_n_accessible_children".}
-proc ref_accessible_child*(accessible: PObject, i: gint): PObject{.cdecl, 
-    dynlib: lib, importc: "atk_object_ref_accessible_child".}
-proc ref_relation_set*(accessible: PObject): PRelationSet{.cdecl, 
-    dynlib: lib, importc: "atk_object_ref_relation_set".}
-proc get_role*(accessible: PObject): TRole{.cdecl, dynlib: lib, 
-    importc: "atk_object_get_role".}
-proc get_layer*(accessible: PObject): TLayer{.cdecl, dynlib: lib, 
-    importc: "atk_object_get_layer".}
-proc get_mdi_zorder*(accessible: PObject): gint{.cdecl, dynlib: lib, 
-    importc: "atk_object_get_mdi_zorder".}
-proc ref_state_set*(accessible: PObject): PStateSet{.cdecl, dynlib: lib, 
-    importc: "atk_object_ref_state_set".}
-proc get_index_in_parent*(accessible: PObject): gint{.cdecl, dynlib: lib, 
-    importc: "atk_object_get_index_in_parent".}
-proc set_name*(accessible: PObject, name: cstring){.cdecl, dynlib: lib, 
-    importc: "atk_object_set_name".}
-proc set_description*(accessible: PObject, description: cstring){.cdecl, 
-    dynlib: lib, importc: "atk_object_set_description".}
-proc set_parent*(accessible: PObject, parent: PObject){.cdecl, 
-    dynlib: lib, importc: "atk_object_set_parent".}
-proc set_role*(accessible: PObject, role: TRole){.cdecl, dynlib: lib, 
-    importc: "atk_object_set_role".}
-proc connect_property_change_handler*(accessible: PObject, 
-    handler: TPropertyChangeHandler): guint{.cdecl, dynlib: lib, 
-    importc: "atk_object_connect_property_change_handler".}
-proc remove_property_change_handler*(accessible: PObject, 
-    handler_id: guint){.cdecl, dynlib: lib, 
-                        importc: "atk_object_remove_property_change_handler".}
-proc notify_state_change*(accessible: PObject, state: TState, 
-                                 value: gboolean){.cdecl, dynlib: lib, 
-    importc: "atk_object_notify_state_change".}
-proc initialize*(accessible: PObject, data: gpointer){.cdecl, 
-    dynlib: lib, importc: "atk_object_initialize".}
-proc role_get_name*(role: TRole): cstring{.cdecl, dynlib: lib, 
-    importc: "atk_role_get_name".}
-proc role_for_name*(name: cstring): TRole{.cdecl, dynlib: lib, 
-    importc: "atk_role_for_name".}
-proc TYPE_ACTION*(): GType
-proc IS_ACTION*(obj: pointer): bool
-proc ACTION*(obj: pointer): PAction
-proc ACTION_GET_IFACE*(obj: pointer): PActionIface
-proc action_get_type*(): GType{.cdecl, dynlib: lib, 
-                                importc: "atk_action_get_type".}
-proc do_action*(action: PAction, i: gint): gboolean{.cdecl, dynlib: lib, 
-    importc: "atk_action_do_action".}
-proc get_n_actions*(action: PAction): gint{.cdecl, dynlib: lib, 
-    importc: "atk_action_get_n_actions".}
-proc get_description*(action: PAction, i: gint): cstring{.cdecl, 
-    dynlib: lib, importc: "atk_action_get_description".}
-proc get_name*(action: PAction, i: gint): cstring{.cdecl, dynlib: lib, 
-    importc: "atk_action_get_name".}
-proc get_keybinding*(action: PAction, i: gint): cstring{.cdecl, 
-    dynlib: lib, importc: "atk_action_get_keybinding".}
-proc set_description*(action: PAction, i: gint, desc: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "atk_action_set_description".}
-proc TYPE_COMPONENT*(): GType
-proc IS_COMPONENT*(obj: pointer): bool
-proc COMPONENT*(obj: pointer): PComponent
-proc COMPONENT_GET_IFACE*(obj: pointer): PComponentIface
-proc component_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "atk_component_get_type".}
-proc add_focus_handler*(component: PComponent, handler: TFocusHandler): guint{.
-    cdecl, dynlib: lib, importc: "atk_component_add_focus_handler".}
-proc contains*(component: PComponent, x, y: gint, 
-                         coord_type: TCoordType): gboolean{.cdecl, dynlib: lib, 
-    importc: "atk_component_contains".}
-proc ref_accessible_at_point*(component: PComponent, x, y: gint, 
-                                        coord_type: TCoordType): PObject{.cdecl, 
-    dynlib: lib, importc: "atk_component_ref_accessible_at_point".}
-proc get_extents*(component: PComponent, x, y, width, height: Pgint, 
-                            coord_type: TCoordType){.cdecl, dynlib: lib, 
-    importc: "atk_component_get_extents".}
-proc get_position*(component: PComponent, x: Pgint, y: Pgint, 
-                             coord_type: TCoordType){.cdecl, dynlib: lib, 
-    importc: "atk_component_get_position".}
-proc get_size*(component: PComponent, width: Pgint, height: Pgint){.
-    cdecl, dynlib: lib, importc: "atk_component_get_size".}
-proc get_layer*(component: PComponent): TLayer{.cdecl, dynlib: lib, 
-    importc: "atk_component_get_layer".}
-proc get_mdi_zorder*(component: PComponent): gint{.cdecl, dynlib: lib, 
-    importc: "atk_component_get_mdi_zorder".}
-proc grab_focus*(component: PComponent): gboolean{.cdecl, dynlib: lib, 
-    importc: "atk_component_grab_focus".}
-proc remove_focus_handler*(component: PComponent, handler_id: guint){.
-    cdecl, dynlib: lib, importc: "atk_component_remove_focus_handler".}
-proc set_extents*(component: PComponent, x: gint, y: gint, 
-                            width: gint, height: gint, coord_type: TCoordType): gboolean{.
-    cdecl, dynlib: lib, importc: "atk_component_set_extents".}
-proc set_position*(component: PComponent, x: gint, y: gint, 
-                             coord_type: TCoordType): gboolean{.cdecl, 
-    dynlib: lib, importc: "atk_component_set_position".}
-proc set_size*(component: PComponent, width: gint, height: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "atk_component_set_size".}
-proc TYPE_DOCUMENT*(): GType
-proc IS_DOCUMENT*(obj: pointer): bool
-proc DOCUMENT*(obj: pointer): PDocument
-proc DOCUMENT_GET_IFACE*(obj: pointer): PDocumentIface
-proc document_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "atk_document_get_type".}
-proc get_document_type*(document: PDocument): cstring{.cdecl, 
-    dynlib: lib, importc: "atk_document_get_document_type".}
-proc get_document*(document: PDocument): gpointer{.cdecl, dynlib: lib, 
-    importc: "atk_document_get_document".}
-proc TYPE_EDITABLE_TEXT*(): GType
-proc IS_EDITABLE_TEXT*(obj: pointer): bool
-proc EDITABLE_TEXT*(obj: pointer): PEditableText
-proc EDITABLE_TEXT_GET_IFACE*(obj: pointer): PEditableTextIface
-proc editable_text_get_type*(): GType{.cdecl, dynlib: lib, 
-                                       importc: "atk_editable_text_get_type".}
-proc set_run_attributes*(text: PEditableText, 
-                                       attrib_set: PAttributeSet, 
-                                       start_offset: gint, end_offset: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "atk_editable_text_set_run_attributes".}
-proc set_text_contents*(text: PEditableText, string: cstring){.
-    cdecl, dynlib: lib, importc: "atk_editable_text_set_text_contents".}
-proc insert_text*(text: PEditableText, `string`: cstring, 
-                                length: gint, position: Pgint){.cdecl, 
-    dynlib: lib, importc: "atk_editable_text_insert_text".}
-proc copy_text*(text: PEditableText, start_pos: gint, 
-                              end_pos: gint){.cdecl, dynlib: lib, 
-    importc: "atk_editable_text_copy_text".}
-proc cut_text*(text: PEditableText, start_pos: gint, end_pos: gint){.
-    cdecl, dynlib: lib, importc: "atk_editable_text_cut_text".}
-proc delete_text*(text: PEditableText, start_pos: gint, 
-                                end_pos: gint){.cdecl, dynlib: lib, 
-    importc: "atk_editable_text_delete_text".}
-proc paste_text*(text: PEditableText, position: gint){.cdecl, 
-    dynlib: lib, importc: "atk_editable_text_paste_text".}
-proc TYPE_GOBJECT_ACCESSIBLE*(): GType
-proc GOBJECT_ACCESSIBLE*(obj: pointer): PGObjectAccessible
-proc GOBJECT_ACCESSIBLE_CLASS*(klass: pointer): PGObjectAccessibleClass
-proc IS_GOBJECT_ACCESSIBLE*(obj: pointer): bool
-proc IS_GOBJECT_ACCESSIBLE_CLASS*(klass: pointer): bool
-proc GOBJECT_ACCESSIBLE_GET_CLASS*(obj: pointer): PGObjectAccessibleClass
-proc gobject_accessible_get_type*(): GType{.cdecl, dynlib: lib, 
-    importc: "atk_gobject_accessible_get_type".}
-proc accessible_for_object*(obj: PGObject): PObject{.cdecl, dynlib: lib, 
-    importc: "atk_gobject_accessible_for_object".}
-proc get_object*(obj: PGObjectAccessible): PGObject{.cdecl, 
-    dynlib: lib, importc: "atk_gobject_accessible_get_object".}
-proc TYPE_HYPERLINK*(): GType
-proc HYPERLINK*(obj: pointer): PHyperlink
-proc HYPERLINK_CLASS*(klass: pointer): PHyperlinkClass
-proc IS_HYPERLINK*(obj: pointer): bool
-proc IS_HYPERLINK_CLASS*(klass: pointer): bool
-proc HYPERLINK_GET_CLASS*(obj: pointer): PHyperlinkClass
-proc hyperlink_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "atk_hyperlink_get_type".}
-proc get_uri*(link: PHyperlink, i: gint): cstring{.cdecl, dynlib: lib, 
-    importc: "atk_hyperlink_get_uri".}
-proc get_object*(link: PHyperlink, i: gint): PObject{.cdecl, 
-    dynlib: lib, importc: "atk_hyperlink_get_object".}
-proc get_end_index*(link: PHyperlink): gint{.cdecl, dynlib: lib, 
-    importc: "atk_hyperlink_get_end_index".}
-proc get_start_index*(link: PHyperlink): gint{.cdecl, dynlib: lib, 
-    importc: "atk_hyperlink_get_start_index".}
-proc is_valid*(link: PHyperlink): gboolean{.cdecl, dynlib: lib, 
-    importc: "atk_hyperlink_is_valid".}
-proc get_n_anchors*(link: PHyperlink): gint{.cdecl, dynlib: lib, 
-    importc: "atk_hyperlink_get_n_anchors".}
-proc TYPE_HYPERTEXT*(): GType
-proc IS_HYPERTEXT*(obj: pointer): bool
-proc HYPERTEXT*(obj: pointer): PHypertext
-proc HYPERTEXT_GET_IFACE*(obj: pointer): PHypertextIface
-proc hypertext_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "atk_hypertext_get_type".}
-proc get_link*(hypertext: PHypertext, link_index: gint): PHyperlink{.
-    cdecl, dynlib: lib, importc: "atk_hypertext_get_link".}
-proc get_n_links*(hypertext: PHypertext): gint{.cdecl, dynlib: lib, 
-    importc: "atk_hypertext_get_n_links".}
-proc get_link_index*(hypertext: PHypertext, char_index: gint): gint{.
-    cdecl, dynlib: lib, importc: "atk_hypertext_get_link_index".}
-proc TYPE_IMAGE*(): GType
-proc IS_IMAGE*(obj: pointer): bool
-proc IMAGE*(obj: pointer): PImage
-proc IMAGE_GET_IFACE*(obj: pointer): PImageIface
-proc image_get_type*(): GType{.cdecl, dynlib: lib, importc: "atk_image_get_type".}
-proc get_image_description*(image: PImage): cstring{.cdecl, dynlib: lib, 
-    importc: "atk_image_get_image_description".}
-proc get_image_size*(image: PImage, width: Pgint, height: Pgint){.cdecl, 
-    dynlib: lib, importc: "atk_image_get_image_size".}
-proc set_image_description*(image: PImage, description: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "atk_image_set_image_description".}
-proc get_image_position*(image: PImage, x: Pgint, y: Pgint, 
-                               coord_type: TCoordType){.cdecl, dynlib: lib, 
-    importc: "atk_image_get_image_position".}
-proc TYPE_OBJECT_FACTORY*(): GType
-proc OBJECT_FACTORY*(obj: pointer): PObjectFactory
-proc OBJECT_FACTORY_CLASS*(klass: pointer): PObjectFactoryClass
-proc IS_OBJECT_FACTORY*(obj: pointer): bool
-proc IS_OBJECT_FACTORY_CLASS*(klass: pointer): bool
-proc OBJECT_FACTORY_GET_CLASS*(obj: pointer): PObjectFactoryClass
-proc object_factory_get_type*(): GType{.cdecl, dynlib: lib, 
-                                        importc: "atk_object_factory_get_type".}
-proc create_accessible*(factory: PObjectFactory, obj: PGObject): PObject{.
-    cdecl, dynlib: lib, importc: "atk_object_factory_create_accessible".}
-proc invalidate*(factory: PObjectFactory){.cdecl, dynlib: lib, 
-    importc: "atk_object_factory_invalidate".}
-proc get_accessible_type*(factory: PObjectFactory): GType{.cdecl, 
-    dynlib: lib, importc: "atk_object_factory_get_accessible_type".}
-proc TYPE_REGISTRY*(): GType
-proc REGISTRY*(obj: pointer): PRegistry
-proc REGISTRY_CLASS*(klass: pointer): PRegistryClass
-proc IS_REGISTRY*(obj: pointer): bool
-proc IS_REGISTRY_CLASS*(klass: pointer): bool
-proc REGISTRY_GET_CLASS*(obj: pointer): PRegistryClass
-proc registry_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "atk_registry_get_type".}
-proc set_factory_type*(registry: PRegistry, `type`: GType, 
-                                factory_type: GType){.cdecl, dynlib: lib, 
-    importc: "atk_registry_set_factory_type".}
-proc get_factory_type*(registry: PRegistry, `type`: GType): GType{.
-    cdecl, dynlib: lib, importc: "atk_registry_get_factory_type".}
-proc get_factory*(registry: PRegistry, `type`: GType): PObjectFactory{.
-    cdecl, dynlib: lib, importc: "atk_registry_get_factory".}
-proc get_default_registry*(): PRegistry{.cdecl, dynlib: lib, 
-    importc: "atk_get_default_registry".}
-proc TYPE_RELATION*(): GType
-proc RELATION*(obj: pointer): PRelation
-proc RELATION_CLASS*(klass: pointer): PRelationClass
-proc IS_RELATION*(obj: pointer): bool
-proc IS_RELATION_CLASS*(klass: pointer): bool
-proc RELATION_GET_CLASS*(obj: pointer): PRelationClass
-proc relation_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "atk_relation_get_type".}
-proc relation_type_register*(name: cstring): TRelationType{.cdecl, dynlib: lib, 
-    importc: "atk_relation_type_register".}
-proc relation_type_get_name*(`type`: TRelationType): cstring{.cdecl, 
-    dynlib: lib, importc: "atk_relation_type_get_name".}
-proc relation_type_for_name*(name: cstring): TRelationType{.cdecl, dynlib: lib, 
-    importc: "atk_relation_type_for_name".}
-proc relation_new*(targets: PPAtkObject, n_targets: gint, 
-                   relationship: TRelationType): PRelation{.cdecl, dynlib: lib, 
-    importc: "atk_relation_new".}
-proc get_relation_type*(relation: PRelation): TRelationType{.cdecl, 
-    dynlib: lib, importc: "atk_relation_get_relation_type".}
-proc get_target*(relation: PRelation): PGPtrArray{.cdecl, dynlib: lib, 
-    importc: "atk_relation_get_target".}
-proc TYPE_RELATION_SET*(): GType
-proc RELATION_SET*(obj: pointer): PRelationSet
-proc RELATION_SET_CLASS*(klass: pointer): PRelationSetClass
-proc IS_RELATION_SET*(obj: pointer): bool
-proc IS_RELATION_SET_CLASS*(klass: pointer): bool
-proc RELATION_SET_GET_CLASS*(obj: pointer): PRelationSetClass
-proc relation_set_get_type*(): GType{.cdecl, dynlib: lib, 
-                                      importc: "atk_relation_set_get_type".}
-proc relation_set_new*(): PRelationSet{.cdecl, dynlib: lib, 
-                                        importc: "atk_relation_set_new".}
-proc contains*(RelationSet: PRelationSet, 
-                            relationship: TRelationType): gboolean{.cdecl, 
-    dynlib: lib, importc: "atk_relation_set_contains".}
-proc remove*(RelationSet: PRelationSet, relation: PRelation){.
-    cdecl, dynlib: lib, importc: "atk_relation_set_remove".}
-proc add*(RelationSet: PRelationSet, relation: PRelation){.cdecl, 
-    dynlib: lib, importc: "atk_relation_set_add".}
-proc get_n_relations*(RelationSet: PRelationSet): gint{.cdecl, 
-    dynlib: lib, importc: "atk_relation_set_get_n_relations".}
-proc get_relation*(RelationSet: PRelationSet, i: gint): PRelation{.
-    cdecl, dynlib: lib, importc: "atk_relation_set_get_relation".}
-proc get_relation_by_type*(RelationSet: PRelationSet, 
-                                        relationship: TRelationType): PRelation{.
-    cdecl, dynlib: lib, importc: "atk_relation_set_get_relation_by_type".}
-proc TYPE_SELECTION*(): GType
-proc IS_SELECTION*(obj: pointer): bool
-proc SELECTION*(obj: pointer): PSelection
-proc SELECTION_GET_IFACE*(obj: pointer): PSelectionIface
-proc selection_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "atk_selection_get_type".}
-proc add_selection*(selection: PSelection, i: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "atk_selection_add_selection".}
-proc clear_selection*(selection: PSelection): gboolean{.cdecl, 
-    dynlib: lib, importc: "atk_selection_clear_selection".}
-proc ref_selection*(selection: PSelection, i: gint): PObject{.cdecl, 
-    dynlib: lib, importc: "atk_selection_ref_selection".}
-proc get_selection_count*(selection: PSelection): gint{.cdecl, 
-    dynlib: lib, importc: "atk_selection_get_selection_count".}
-proc is_child_selected*(selection: PSelection, i: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "atk_selection_is_child_selected".}
-proc remove_selection*(selection: PSelection, i: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "atk_selection_remove_selection".}
-proc select_all_selection*(selection: PSelection): gboolean{.cdecl, 
-    dynlib: lib, importc: "atk_selection_select_all_selection".}
-proc state_type_register*(name: cstring): TStateType{.cdecl, dynlib: lib, 
-    importc: "atk_state_type_register".}
-proc state_type_get_name*(`type`: TStateType): cstring{.cdecl, dynlib: lib, 
-    importc: "atk_state_type_get_name".}
-proc state_type_for_name*(name: cstring): TStateType{.cdecl, dynlib: lib, 
-    importc: "atk_state_type_for_name".}
-proc TYPE_STATE_SET*(): GType
-proc STATE_SET*(obj: pointer): PStateSet
-proc STATE_SET_CLASS*(klass: pointer): PStateSetClass
-proc IS_STATE_SET*(obj: pointer): bool
-proc IS_STATE_SET_CLASS*(klass: pointer): bool
-proc STATE_SET_GET_CLASS*(obj: pointer): PStateSetClass
-proc state_set_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "atk_state_set_get_type".}
-proc state_set_new*(): PStateSet{.cdecl, dynlib: lib, 
-                                  importc: "atk_state_set_new".}
-proc is_empty*(StateSet: PStateSet): gboolean{.cdecl, dynlib: lib, 
-    importc: "atk_state_set_is_empty".}
-proc add_state*(StateSet: PStateSet, `type`: TStateType): gboolean{.
-    cdecl, dynlib: lib, importc: "atk_state_set_add_state".}
-proc add_states*(StateSet: PStateSet, types: PStateType, n_types: gint){.
-    cdecl, dynlib: lib, importc: "atk_state_set_add_states".}
-proc clear_states*(StateSet: PStateSet){.cdecl, dynlib: lib, 
-    importc: "atk_state_set_clear_states".}
-proc contains_state*(StateSet: PStateSet, `type`: TStateType): gboolean{.
-    cdecl, dynlib: lib, importc: "atk_state_set_contains_state".}
-proc contains_states*(StateSet: PStateSet, types: PStateType, 
-                                n_types: gint): gboolean{.cdecl, dynlib: lib, 
-    importc: "atk_state_set_contains_states".}
-proc remove_state*(StateSet: PStateSet, `type`: TStateType): gboolean{.
-    cdecl, dynlib: lib, importc: "atk_state_set_remove_state".}
-proc and_sets*(StateSet: PStateSet, compare_set: PStateSet): PStateSet{.
-    cdecl, dynlib: lib, importc: "atk_state_set_and_sets".}
-proc or_sets*(StateSet: PStateSet, compare_set: PStateSet): PStateSet{.
-    cdecl, dynlib: lib, importc: "atk_state_set_or_sets".}
-proc xor_sets*(StateSet: PStateSet, compare_set: PStateSet): PStateSet{.
-    cdecl, dynlib: lib, importc: "atk_state_set_xor_sets".}
-proc TYPE_STREAMABLE_CONTENT*(): GType
-proc IS_STREAMABLE_CONTENT*(obj: pointer): bool
-proc STREAMABLE_CONTENT*(obj: pointer): PStreamableContent
-proc STREAMABLE_CONTENT_GET_IFACE*(obj: pointer): PStreamableContentIface
-proc streamable_content_get_type*(): GType{.cdecl, dynlib: lib, 
-    importc: "atk_streamable_content_get_type".}
-proc get_n_mime_types*(streamable: PStreamableContent): gint{.
-    cdecl, dynlib: lib, importc: "atk_streamable_content_get_n_mime_types".}
-proc get_mime_type*(streamable: PStreamableContent, i: gint): cstring{.
-    cdecl, dynlib: lib, importc: "atk_streamable_content_get_mime_type".}
-proc get_stream*(streamable: PStreamableContent, 
-                                    mime_type: cstring): PGIOChannel{.cdecl, 
-    dynlib: lib, importc: "atk_streamable_content_get_stream".}
-proc TYPE_TABLE*(): GType
-proc IS_TABLE*(obj: pointer): bool
-proc TABLE*(obj: pointer): PTable
-proc TABLE_GET_IFACE*(obj: pointer): PTableIface
-proc table_get_type*(): GType{.cdecl, dynlib: lib, importc: "atk_table_get_type".}
-proc ref_at*(table: PTable, row, column: gint): PObject{.cdecl, 
-    dynlib: lib, importc: "atk_table_ref_at".}
-proc get_index_at*(table: PTable, row, column: gint): gint{.cdecl, 
-    dynlib: lib, importc: "atk_table_get_index_at".}
-proc get_column_at_index*(table: PTable, index: gint): gint{.cdecl, 
-    dynlib: lib, importc: "atk_table_get_column_at_index".}
-proc get_row_at_index*(table: PTable, index: gint): gint{.cdecl, 
-    dynlib: lib, importc: "atk_table_get_row_at_index".}
-proc get_n_columns*(table: PTable): gint{.cdecl, dynlib: lib, 
-    importc: "atk_table_get_n_columns".}
-proc get_n_rows*(table: PTable): gint{.cdecl, dynlib: lib, 
-    importc: "atk_table_get_n_rows".}
-proc get_column_extent_at*(table: PTable, row: gint, column: gint): gint{.
-    cdecl, dynlib: lib, importc: "atk_table_get_column_extent_at".}
-proc get_row_extent_at*(table: PTable, row: gint, column: gint): gint{.
-    cdecl, dynlib: lib, importc: "atk_table_get_row_extent_at".}
-proc get_caption*(table: PTable): PObject{.cdecl, dynlib: lib, 
-    importc: "atk_table_get_caption".}
-proc get_column_description*(table: PTable, column: gint): cstring{.cdecl, 
-    dynlib: lib, importc: "atk_table_get_column_description".}
-proc get_column_header*(table: PTable, column: gint): PObject{.cdecl, 
-    dynlib: lib, importc: "atk_table_get_column_header".}
-proc get_row_description*(table: PTable, row: gint): cstring{.cdecl, 
-    dynlib: lib, importc: "atk_table_get_row_description".}
-proc get_row_header*(table: PTable, row: gint): PObject{.cdecl, 
-    dynlib: lib, importc: "atk_table_get_row_header".}
-proc get_summary*(table: PTable): PObject{.cdecl, dynlib: lib, 
-    importc: "atk_table_get_summary".}
-proc set_caption*(table: PTable, caption: PObject){.cdecl, dynlib: lib, 
-    importc: "atk_table_set_caption".}
-proc set_column_description*(table: PTable, column: gint, 
-                                   description: cstring){.cdecl, dynlib: lib, 
-    importc: "atk_table_set_column_description".}
-proc set_column_header*(table: PTable, column: gint, header: PObject){.
-    cdecl, dynlib: lib, importc: "atk_table_set_column_header".}
-proc set_row_description*(table: PTable, row: gint, description: cstring){.
-    cdecl, dynlib: lib, importc: "atk_table_set_row_description".}
-proc set_row_header*(table: PTable, row: gint, header: PObject){.cdecl, 
-    dynlib: lib, importc: "atk_table_set_row_header".}
-proc set_summary*(table: PTable, accessible: PObject){.cdecl, dynlib: lib, 
-    importc: "atk_table_set_summary".}
-proc get_selected_columns*(table: PTable, selected: PPgint): gint{.cdecl, 
-    dynlib: lib, importc: "atk_table_get_selected_columns".}
-proc get_selected_rows*(table: PTable, selected: PPgint): gint{.cdecl, 
-    dynlib: lib, importc: "atk_table_get_selected_rows".}
-proc is_column_selected*(table: PTable, column: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "atk_table_is_column_selected".}
-proc is_row_selected*(table: PTable, row: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "atk_table_is_row_selected".}
-proc is_selected*(table: PTable, row: gint, column: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "atk_table_is_selected".}
-proc add_row_selection*(table: PTable, row: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "atk_table_add_row_selection".}
-proc remove_row_selection*(table: PTable, row: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "atk_table_remove_row_selection".}
-proc add_column_selection*(table: PTable, column: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "atk_table_add_column_selection".}
-proc remove_column_selection*(table: PTable, column: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "atk_table_remove_column_selection".}
-proc text_attribute_register*(name: cstring): TTextAttribute{.cdecl, 
-    dynlib: lib, importc: "atk_text_attribute_register".}
-proc TYPE_TEXT*(): GType
-proc IS_TEXT*(obj: pointer): bool
-proc TEXT*(obj: pointer): PText
-proc TEXT_GET_IFACE*(obj: pointer): PTextIface
-proc text_get_type*(): GType{.cdecl, dynlib: lib, importc: "atk_text_get_type".}
-proc get_text*(text: PText, start_offset: gint, end_offset: gint): cstring{.
-    cdecl, dynlib: lib, importc: "atk_text_get_text".}
-proc get_character_at_offset*(text: PText, offset: gint): gunichar{.cdecl, 
-    dynlib: lib, importc: "atk_text_get_character_at_offset".}
-proc get_text_after_offset*(text: PText, offset: gint, 
-                                 boundary_type: TTextBoundary, 
-                                 start_offset: Pgint, end_offset: Pgint): cstring{.
-    cdecl, dynlib: lib, importc: "atk_text_get_text_after_offset".}
-proc get_text_at_offset*(text: PText, offset: gint, 
-                              boundary_type: TTextBoundary, start_offset: Pgint, 
-                              end_offset: Pgint): cstring{.cdecl, dynlib: lib, 
-    importc: "atk_text_get_text_at_offset".}
-proc get_text_before_offset*(text: PText, offset: gint, 
-                                  boundary_type: TTextBoundary, 
-                                  start_offset: Pgint, end_offset: Pgint): cstring{.
-    cdecl, dynlib: lib, importc: "atk_text_get_text_before_offset".}
-proc get_caret_offset*(text: PText): gint{.cdecl, dynlib: lib, 
-    importc: "atk_text_get_caret_offset".}
-proc get_character_extents*(text: PText, offset: gint, x: Pgint, y: Pgint, 
-                                 width: Pgint, height: Pgint, coords: TCoordType){.
-    cdecl, dynlib: lib, importc: "atk_text_get_character_extents".}
-proc get_run_attributes*(text: PText, offset: gint, start_offset: Pgint, 
-                              end_offset: Pgint): PAttributeSet{.cdecl, 
-    dynlib: lib, importc: "atk_text_get_run_attributes".}
-proc get_default_attributes*(text: PText): PAttributeSet{.cdecl, 
-    dynlib: lib, importc: "atk_text_get_default_attributes".}
-proc get_character_count*(text: PText): gint{.cdecl, dynlib: lib, 
-    importc: "atk_text_get_character_count".}
-proc get_offset_at_point*(text: PText, x: gint, y: gint, coords: TCoordType): gint{.
-    cdecl, dynlib: lib, importc: "atk_text_get_offset_at_point".}
-proc get_n_selections*(text: PText): gint{.cdecl, dynlib: lib, 
-    importc: "atk_text_get_n_selections".}
-proc get_selection*(text: PText, selection_num: gint, start_offset: Pgint, 
-                         end_offset: Pgint): cstring{.cdecl, dynlib: lib, 
-    importc: "atk_text_get_selection".}
-proc add_selection*(text: PText, start_offset: gint, end_offset: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "atk_text_add_selection".}
-proc remove_selection*(text: PText, selection_num: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "atk_text_remove_selection".}
-proc set_selection*(text: PText, selection_num: gint, start_offset: gint, 
-                         end_offset: gint): gboolean{.cdecl, dynlib: lib, 
-    importc: "atk_text_set_selection".}
-proc set_caret_offset*(text: PText, offset: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "atk_text_set_caret_offset".}
-proc free*(attrib_set: PAttributeSet){.cdecl, dynlib: lib, 
-    importc: "atk_attribute_set_free".}
-proc text_attribute_get_name*(attr: TTextAttribute): cstring{.cdecl, 
-    dynlib: lib, importc: "atk_text_attribute_get_name".}
-proc text_attribute_for_name*(name: cstring): TTextAttribute{.cdecl, 
-    dynlib: lib, importc: "atk_text_attribute_for_name".}
-proc text_attribute_get_value*(attr: TTextAttribute, index: gint): cstring{.
-    cdecl, dynlib: lib, importc: "atk_text_attribute_get_value".}
-proc TYPE_UTIL*(): GType
-proc IS_UTIL*(obj: pointer): bool
-proc UTIL*(obj: pointer): PUtil
-proc UTIL_CLASS*(klass: pointer): PUtilClass
-proc IS_UTIL_CLASS*(klass: pointer): bool
-proc UTIL_GET_CLASS*(obj: pointer): PUtilClass
-proc util_get_type*(): GType{.cdecl, dynlib: lib, importc: "atk_util_get_type".}
-proc add_focus_tracker*(focus_tracker: TEventListener): guint{.cdecl, 
-    dynlib: lib, importc: "atk_add_focus_tracker".}
-proc remove_focus_tracker*(tracker_id: guint){.cdecl, dynlib: lib, 
-    importc: "atk_remove_focus_tracker".}
-proc focus_tracker_init*(add_function: TEventListenerInit){.cdecl, dynlib: lib, 
-    importc: "atk_focus_tracker_init".}
-proc focus_tracker_notify*(anObject: PObject){.cdecl, dynlib: lib, 
-    importc: "atk_focus_tracker_notify".}
-proc add_global_event_listener*(listener: TGSignalEmissionHook, 
-                                event_type: cstring): guint{.cdecl, dynlib: lib, 
-    importc: "atk_add_global_event_listener".}
-proc remove_global_event_listener*(listener_id: guint){.cdecl, dynlib: lib, 
-    importc: "atk_remove_global_event_listener".}
-proc add_key_event_listener*(listener: TKeySnoopFunc, data: gpointer): guint{.
-    cdecl, dynlib: lib, importc: "atk_add_key_event_listener".}
-proc remove_key_event_listener*(listener_id: guint){.cdecl, dynlib: lib, 
-    importc: "atk_remove_key_event_listener".}
-proc get_root*(): PObject{.cdecl, dynlib: lib, importc: "atk_get_root".}
-proc get_toolkit_name*(): cstring{.cdecl, dynlib: lib, 
-                                   importc: "atk_get_toolkit_name".}
-proc get_toolkit_version*(): cstring{.cdecl, dynlib: lib, 
-                                      importc: "atk_get_toolkit_version".}
-proc TYPE_VALUE*(): GType
-proc IS_VALUE*(obj: pointer): bool
-proc VALUE*(obj: pointer): PValue
-proc VALUE_GET_IFACE*(obj: pointer): PValueIface
-proc value_get_type*(): GType{.cdecl, dynlib: lib, importc: "atk_value_get_type".}
-proc get_current_value*(obj: PValue, value: PGValue){.cdecl, dynlib: lib, 
-    importc: "atk_value_get_current_value".}
-proc get_maximum_value*(obj: PValue, value: PGValue){.cdecl, dynlib: lib, 
-    importc: "atk_value_get_maximum_value".}
-proc get_minimum_value*(obj: PValue, value: PGValue){.cdecl, dynlib: lib, 
-    importc: "atk_value_get_minimum_value".}
-proc set_current_value*(obj: PValue, value: PGValue): gboolean{.cdecl, 
-    dynlib: lib, importc: "atk_value_set_current_value".}
-proc TYPE_OBJECT*(): GType = 
-  result = object_get_type()
-
-proc `OBJECT`*(obj: pointer): PObject = 
-  result = cast[PObject](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_OBJECT()))
-
-proc OBJECT_CLASS*(klass: pointer): PObjectClass = 
-  result = cast[PObjectClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_OBJECT()))
-
-proc IS_OBJECT*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_OBJECT())
-
-proc IS_OBJECT_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_OBJECT())
-
-proc OBJECT_GET_CLASS*(obj: pointer): PObjectClass = 
-  result = cast[PObjectClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_OBJECT()))
-
-proc TYPE_IMPLEMENTOR*(): GType = 
-  result = implementor_get_type()
-
-proc IS_IMPLEMENTOR*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_IMPLEMENTOR())
-
-proc IMPLEMENTOR*(obj: pointer): PImplementor = 
-  result = PImplementor(G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_IMPLEMENTOR()))
-
-proc IMPLEMENTOR_GET_IFACE*(obj: pointer): PImplementorIface = 
-  result = cast[PImplementorIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_IMPLEMENTOR()))
-
-proc TYPE_ACTION*(): GType = 
-  result = action_get_type()
-
-proc IS_ACTION*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_ACTION())
-
-proc ACTION*(obj: pointer): PAction = 
-  result = PAction(G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_ACTION()))
-
-proc ACTION_GET_IFACE*(obj: pointer): PActionIface = 
-  result = cast[PActionIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, TYPE_ACTION()))
-
-proc TYPE_COMPONENT*(): GType = 
-  result = component_get_type()
-
-proc IS_COMPONENT*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_COMPONENT())
-
-proc COMPONENT*(obj: pointer): PComponent = 
-  result = PComponent(G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_COMPONENT()))
-
-proc COMPONENT_GET_IFACE*(obj: pointer): PComponentIface = 
-  result = cast[PComponentIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_COMPONENT()))
-
-proc TYPE_DOCUMENT*(): GType = 
-  result = document_get_type()
-
-proc IS_DOCUMENT*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_DOCUMENT())
-
-proc DOCUMENT*(obj: pointer): PDocument = 
-  result = cast[PDocument](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_DOCUMENT()))
-
-proc DOCUMENT_GET_IFACE*(obj: pointer): PDocumentIface = 
-  result = cast[PDocumentIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_DOCUMENT()))
-
-proc TYPE_EDITABLE_TEXT*(): GType = 
-  result = editable_text_get_type()
-
-proc IS_EDITABLE_TEXT*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_EDITABLE_TEXT())
-
-proc EDITABLE_TEXT*(obj: pointer): PEditableText = 
-  result = cast[PEditableText](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_EDITABLE_TEXT()))
-
-proc EDITABLE_TEXT_GET_IFACE*(obj: pointer): PEditableTextIface = 
-  result = cast[PEditableTextIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_EDITABLE_TEXT()))
-
-proc TYPE_GOBJECT_ACCESSIBLE*(): GType = 
-  result = gobject_accessible_get_type()
-
-proc GOBJECT_ACCESSIBLE*(obj: pointer): PGObjectAccessible = 
-  result = cast[PGObjectAccessible](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_GOBJECT_ACCESSIBLE()))
-
-proc GOBJECT_ACCESSIBLE_CLASS*(klass: pointer): PGObjectAccessibleClass = 
-  result = cast[PGObjectAccessibleClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_GOBJECT_ACCESSIBLE()))
-
-proc IS_GOBJECT_ACCESSIBLE*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_GOBJECT_ACCESSIBLE())
-
-proc IS_GOBJECT_ACCESSIBLE_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_GOBJECT_ACCESSIBLE())
-
-proc GOBJECT_ACCESSIBLE_GET_CLASS*(obj: pointer): PGObjectAccessibleClass = 
-  result = cast[PGObjectAccessibleClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_GOBJECT_ACCESSIBLE()))
-
-proc TYPE_HYPERLINK*(): GType = 
-  result = hyperlink_get_type()
-
-proc HYPERLINK*(obj: pointer): PHyperlink = 
-  result = cast[PHyperlink](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_HYPERLINK()))
-
-proc HYPERLINK_CLASS*(klass: pointer): PHyperlinkClass = 
-  result = cast[PHyperlinkClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_HYPERLINK()))
-
-proc IS_HYPERLINK*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_HYPERLINK())
-
-proc IS_HYPERLINK_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_HYPERLINK())
-
-proc HYPERLINK_GET_CLASS*(obj: pointer): PHyperlinkClass = 
-  result = cast[PHyperlinkClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_HYPERLINK()))
-
-proc TYPE_HYPERTEXT*(): GType = 
-  result = hypertext_get_type()
-
-proc IS_HYPERTEXT*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_HYPERTEXT())
-
-proc HYPERTEXT*(obj: pointer): PHypertext = 
-  result = cast[PHypertext](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_HYPERTEXT()))
-
-proc HYPERTEXT_GET_IFACE*(obj: pointer): PHypertextIface = 
-  result = cast[PHypertextIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_HYPERTEXT()))
-
-proc TYPE_IMAGE*(): GType = 
-  result = image_get_type()
-
-proc IS_IMAGE*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_IMAGE())
-
-proc IMAGE*(obj: pointer): PImage = 
-  result = cast[PImage](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_IMAGE()))
-
-proc IMAGE_GET_IFACE*(obj: pointer): PImageIface = 
-  result = cast[PImageIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, TYPE_IMAGE()))
-
-proc TYPE_OBJECT_FACTORY*(): GType = 
-  result = object_factory_get_type()
-
-proc OBJECT_FACTORY*(obj: pointer): PObjectFactory = 
-  result = cast[PObjectFactory](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_OBJECT_FACTORY()))
-
-proc OBJECT_FACTORY_CLASS*(klass: pointer): PObjectFactoryClass = 
-  result = cast[PObjectFactoryClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_OBJECT_FACTORY()))
-
-proc IS_OBJECT_FACTORY*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_OBJECT_FACTORY())
-
-proc IS_OBJECT_FACTORY_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_OBJECT_FACTORY())
-
-proc OBJECT_FACTORY_GET_CLASS*(obj: pointer): PObjectFactoryClass = 
-  result = cast[PObjectFactoryClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_OBJECT_FACTORY()))
-
-proc TYPE_REGISTRY*(): GType = 
-  result = registry_get_type()
-
-proc REGISTRY*(obj: pointer): PRegistry = 
-  result = cast[PRegistry](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_REGISTRY()))
-
-proc REGISTRY_CLASS*(klass: pointer): PRegistryClass = 
-  result = cast[PRegistryClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_REGISTRY()))
-
-proc IS_REGISTRY*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_REGISTRY())
-
-proc IS_REGISTRY_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_REGISTRY())
-
-proc REGISTRY_GET_CLASS*(obj: pointer): PRegistryClass = 
-  result = cast[PRegistryClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_REGISTRY()))
-
-proc TYPE_RELATION*(): GType = 
-  result = relation_get_type()
-
-proc RELATION*(obj: pointer): PRelation = 
-  result = cast[PRelation](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_RELATION()))
-
-proc RELATION_CLASS*(klass: pointer): PRelationClass = 
-  result = cast[PRelationClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_RELATION()))
-
-proc IS_RELATION*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_RELATION())
-
-proc IS_RELATION_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_RELATION())
-
-proc RELATION_GET_CLASS*(obj: pointer): PRelationClass = 
-  result = cast[PRelationClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_RELATION()))
-
-proc TYPE_RELATION_SET*(): GType = 
-  result = relation_set_get_type()
-
-proc RELATION_SET*(obj: pointer): PRelationSet = 
-  result = cast[PRelationSet](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_RELATION_SET()))
-
-proc RELATION_SET_CLASS*(klass: pointer): PRelationSetClass = 
-  result = cast[PRelationSetClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_RELATION_SET()))
-
-proc IS_RELATION_SET*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_RELATION_SET())
-
-proc IS_RELATION_SET_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_RELATION_SET())
-
-proc RELATION_SET_GET_CLASS*(obj: pointer): PRelationSetClass = 
-  result = cast[PRelationSetClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_RELATION_SET()))
-
-proc TYPE_SELECTION*(): GType = 
-  result = selection_get_type()
-
-proc IS_SELECTION*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_SELECTION())
-
-proc SELECTION*(obj: pointer): PSelection = 
-  result = cast[PSelection](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_SELECTION()))
-
-proc SELECTION_GET_IFACE*(obj: pointer): PSelectionIface = 
-  result = cast[PSelectionIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_SELECTION()))
-
-proc TYPE_STATE_SET*(): GType = 
-  result = state_set_get_type()
-
-proc STATE_SET*(obj: pointer): PStateSet = 
-  result = cast[PStateSet](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_STATE_SET()))
-
-proc STATE_SET_CLASS*(klass: pointer): PStateSetClass = 
-  result = cast[PStateSetClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_STATE_SET()))
-
-proc IS_STATE_SET*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_STATE_SET())
-
-proc IS_STATE_SET_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_STATE_SET())
-
-proc STATE_SET_GET_CLASS*(obj: pointer): PStateSetClass = 
-  result = cast[PStateSetClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_STATE_SET()))
-
-proc TYPE_STREAMABLE_CONTENT*(): GType = 
-  result = streamable_content_get_type()
-
-proc IS_STREAMABLE_CONTENT*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_STREAMABLE_CONTENT())
-
-proc STREAMABLE_CONTENT*(obj: pointer): PStreamableContent = 
-  result = cast[PStreamableContent](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_STREAMABLE_CONTENT()))
-
-proc STREAMABLE_CONTENT_GET_IFACE*(obj: pointer): PStreamableContentIface = 
-  result = cast[PStreamableContentIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_STREAMABLE_CONTENT()))
-
-proc TYPE_TABLE*(): GType = 
-  result = table_get_type()
-
-proc IS_TABLE*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TABLE())
-
-proc TABLE*(obj: pointer): PTable = 
-  result = cast[PTable](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_TABLE()))
-
-proc TABLE_GET_IFACE*(obj: pointer): PTableIface = 
-  result = cast[PTableIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, TYPE_TABLE()))
-
-proc TYPE_TEXT*(): GType = 
-  result = text_get_type()
-
-proc IS_TEXT*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TEXT())
-
-proc TEXT*(obj: pointer): PText = 
-  result = cast[PText](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_TEXT()))
-
-proc TEXT_GET_IFACE*(obj: pointer): PTextIface = 
-  result = cast[PTextIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, TYPE_TEXT()))
-
-proc TYPE_UTIL*(): GType = 
-  result = util_get_type()
-
-proc IS_UTIL*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_UTIL())
-
-proc UTIL*(obj: pointer): PUtil = 
-  result = cast[PUtil](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_UTIL()))
-
-proc UTIL_CLASS*(klass: pointer): PUtilClass = 
-  result = cast[PUtilClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_UTIL()))
-
-proc IS_UTIL_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_UTIL())
-
-proc UTIL_GET_CLASS*(obj: pointer): PUtilClass = 
-  result = cast[PUtilClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_UTIL()))
-
-proc TYPE_VALUE*(): GType = 
-  result = value_get_type()
-
-proc IS_VALUE*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_VALUE())
-
-proc VALUE*(obj: pointer): PValue = 
-  result = cast[PValue](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_VALUE()))
-
-proc VALUE_GET_IFACE*(obj: pointer): PValueIface = 
-  result = cast[PValueIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, TYPE_VALUE()))
diff --git a/lib/wrappers/gtk/gdk2.nim b/lib/wrappers/gtk/gdk2.nim
deleted file mode 100644
index d84f7ccc3..000000000
--- a/lib/wrappers/gtk/gdk2.nim
+++ /dev/null
@@ -1,3873 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  glib2, gdk2pixbuf, pango
-
-when defined(win32): 
-  const 
-    lib = "libgdk-win32-2.0-0.dll"
-elif defined(macosx): 
-  #    linklib gtk-x11-2.0
-  #    linklib gdk-x11-2.0
-  #    linklib pango-1.0.0
-  #    linklib glib-2.0.0
-  #    linklib gobject-2.0.0
-  #    linklib gdk_pixbuf-2.0.0
-  #    linklib atk-1.0.0
-  const 
-    lib = "libgdk-x11-2.0.dylib"
-else: 
-  const 
-    lib = "libgdk-x11-2.0.so(|.0)"
-const 
-  NUMPTSTOBUFFER* = 200
-  MAX_TIMECOORD_AXES* = 128
-
-type 
-  PDeviceClass* = ptr TDeviceClass
-  TDeviceClass* = object of TGObjectClass
-  PVisualClass* = ptr TVisualClass
-  TVisualClass* = object of TGObjectClass
-  PColor* = ptr TColor
-  TColor*{.final, pure.} = object 
-    pixel*: guint32
-    red*: guint16
-    green*: guint16
-    blue*: guint16
-
-  PColormap* = ptr TColormap
-  PDrawable* = ptr TDrawable
-  TDrawable* = object of TGObject
-  PWindow* = ptr TWindow
-  TWindow* = TDrawable
-  PPixmap* = ptr TPixmap
-  TPixmap* = TDrawable
-  PBitmap* = ptr TBitmap
-  TBitmap* = TDrawable
-  PFontType* = ptr TFontType
-  TFontType* = enum 
-    FONT_FONT, FONT_FONTSET
-  PFont* = ptr TFont
-  TFont*{.final, pure.} = object 
-    `type`*: TFontType
-    ascent*: gint
-    descent*: gint
-
-  PFunction* = ptr TFunction
-  TFunction* = enum 
-    funcCOPY, funcINVERT, funcXOR, funcCLEAR, funcAND, 
-    funcAND_REVERSE, funcAND_INVERT, funcNOOP, funcOR, funcEQUIV, 
-    funcOR_REVERSE, funcCOPY_INVERT, funcOR_INVERT, funcNAND, funcNOR, funcSET
-  PCapStyle* = ptr TCapStyle
-  TCapStyle* = enum 
-    CAP_NOT_LAST, CAP_BUTT, CAP_ROUND, CAP_PROJECTING
-  PFill* = ptr TFill
-  TFill* = enum 
-    SOLID, TILED, STIPPLED, OPAQUE_STIPPLED
-  PJoinStyle* = ptr TJoinStyle
-  TJoinStyle* = enum 
-    JOIN_MITER, JOIN_ROUND, JOIN_BEVEL
-  PLineStyle* = ptr TLineStyle
-  TLineStyle* = enum 
-    LINE_SOLID, LINE_ON_OFF_DASH, LINE_DOUBLE_DASH
-  PSubwindowMode* = ptr TSubwindowMode
-  TSubwindowMode* = int
-  PGCValuesMask* = ptr TGCValuesMask
-  TGCValuesMask* = int32
-  PGCValues* = ptr TGCValues
-  TGCValues*{.final, pure.} = object 
-    foreground*: TColor
-    background*: TColor
-    font*: PFont
-    `function`*: TFunction
-    fill*: TFill
-    tile*: PPixmap
-    stipple*: PPixmap
-    clip_mask*: PPixmap
-    subwindow_mode*: TSubwindowMode
-    ts_x_origin*: gint
-    ts_y_origin*: gint
-    clip_x_origin*: gint
-    clip_y_origin*: gint
-    graphics_exposures*: gint
-    line_width*: gint
-    line_style*: TLineStyle
-    cap_style*: TCapStyle
-    join_style*: TJoinStyle
-
-  PGC* = ptr TGC
-  TGC* = object of TGObject
-    clip_x_origin*: gint
-    clip_y_origin*: gint
-    ts_x_origin*: gint
-    ts_y_origin*: gint
-    colormap*: PColormap
-
-  PImageType* = ptr TImageType
-  TImageType* = enum 
-    IMAGE_NORMAL, IMAGE_SHARED, IMAGE_FASTEST
-  PImage* = ptr TImage
-  PDevice* = ptr TDevice
-  PTimeCoord* = ptr TTimeCoord
-  PPTimeCoord* = ptr PTimeCoord
-  PRgbDither* = ptr TRgbDither
-  TRgbDither* = enum 
-    RGB_DITHER_NONE, RGB_DITHER_NORMAL, RGB_DITHER_MAX
-  PDisplay* = ptr TDisplay
-  PScreen* = ptr TScreen
-  TScreen* = object of TGObject
-  PInputCondition* = ptr TInputCondition
-  TInputCondition* = int32
-  PStatus* = ptr TStatus
-  TStatus* = int32
-  TPoint*{.final, pure.} = object 
-    x*: gint
-    y*: gint
-
-  PPoint* = ptr TPoint
-  PPPoint* = ptr PPoint
-  PSpan* = ptr TSpan
-  PWChar* = ptr TWChar
-  TWChar* = guint32
-  PSegment* = ptr TSegment
-  TSegment*{.final, pure.} = object 
-    x1*: gint
-    y1*: gint
-    x2*: gint
-    y2*: gint
-
-  PRectangle* = ptr TRectangle
-  TRectangle*{.final, pure.} = object 
-    x*: gint
-    y*: gint
-    width*: gint
-    height*: gint
-
-  PAtom* = ptr TAtom
-  TAtom* = gulong
-  PByteOrder* = ptr TByteOrder
-  TByteOrder* = enum 
-    LSB_FIRST, MSB_FIRST
-  PModifierType* = ptr TModifierType
-  TModifierType* = gint
-  PVisualType* = ptr TVisualType
-  TVisualType* = enum 
-    VISUAL_STATIC_GRAY, VISUAL_GRAYSCALE, VISUAL_STATIC_COLOR, 
-    VISUAL_PSEUDO_COLOR, VISUAL_TRUE_COLOR, VISUAL_DIRECT_COLOR
-  PVisual* = ptr TVisual
-  TVisual* = object of TGObject
-    TheType*: TVisualType
-    depth*: gint
-    byte_order*: TByteOrder
-    colormap_size*: gint
-    bits_per_rgb*: gint
-    red_mask*: guint32
-    red_shift*: gint
-    red_prec*: gint
-    green_mask*: guint32
-    green_shift*: gint
-    green_prec*: gint
-    blue_mask*: guint32
-    blue_shift*: gint
-    blue_prec*: gint
-    screen*: PScreen
-
-  PColormapClass* = ptr TColormapClass
-  TColormapClass* = object of TGObjectClass
-  TColormap* = object of TGObject
-    size*: gint
-    colors*: PColor
-    visual*: PVisual
-    windowing_data*: gpointer
-    screen*: PScreen
-
-  PCursorType* = ptr TCursorType
-  TCursorType* = gint
-  PCursor* = ptr TCursor
-  TCursor*{.final, pure.} = object 
-    `type`*: TCursorType
-    ref_count*: guint
-
-  PDragAction* = ptr TDragAction
-  TDragAction* = int32
-  PDragProtocol* = ptr TDragProtocol
-  TDragProtocol* = enum 
-    DRAG_PROTO_MOTIF, DRAG_PROTO_XDND, DRAG_PROTO_ROOTWIN, DRAG_PROTO_NONE, 
-    DRAG_PROTO_WIN32_DROPFILES, DRAG_PROTO_OLE2, DRAG_PROTO_LOCAL
-  PDragContext* = ptr TDragContext
-  TDragContext* = object of TGObject
-    protocol*: TDragProtocol
-    is_source*: gboolean
-    source_window*: PWindow
-    dest_window*: PWindow
-    targets*: PGList
-    actions*: TDragAction
-    suggested_action*: TDragAction
-    action*: TDragAction
-    start_time*: guint32
-    windowing_data*: gpointer
-
-  PDragContextClass* = ptr TDragContextClass
-  TDragContextClass* = object of TGObjectClass
-  PRegionBox* = ptr TRegionBox
-  TRegionBox* = TSegment
-  PRegion* = ptr TRegion
-  TRegion*{.final, pure.} = object 
-    size*: int32
-    numRects*: int32
-    rects*: PRegionBox
-    extents*: TRegionBox
-
-  PPOINTBLOCK* = ptr TPOINTBLOCK
-  TPOINTBLOCK*{.final, pure.} = object 
-    pts*: array[0..(NUMPTSTOBUFFER) - 1, TPoint]
-    next*: PPOINTBLOCK
-
-  PDrawableClass* = ptr TDrawableClass
-  TDrawableClass* = object of TGObjectClass
-    create_gc*: proc (drawable: PDrawable, values: PGCValues, 
-                      mask: TGCValuesMask): PGC{.cdecl.}
-    draw_rectangle*: proc (drawable: PDrawable, gc: PGC, filled: gint, x: gint, 
-                           y: gint, width: gint, height: gint){.cdecl.}
-    draw_arc*: proc (drawable: PDrawable, gc: PGC, filled: gint, x: gint, 
-                     y: gint, width: gint, height: gint, angle1: gint, 
-                     angle2: gint){.cdecl.}
-    draw_polygon*: proc (drawable: PDrawable, gc: PGC, filled: gint, 
-                         points: PPoint, npoints: gint){.cdecl.}
-    draw_text*: proc (drawable: PDrawable, font: PFont, gc: PGC, x: gint, 
-                      y: gint, text: cstring, text_length: gint){.cdecl.}
-    draw_text_wc*: proc (drawable: PDrawable, font: PFont, gc: PGC, x: gint, 
-                         y: gint, text: PWChar, text_length: gint){.cdecl.}
-    draw_drawable*: proc (drawable: PDrawable, gc: PGC, src: PDrawable, 
-                          xsrc: gint, ysrc: gint, xdest: gint, ydest: gint, 
-                          width: gint, height: gint){.cdecl.}
-    draw_points*: proc (drawable: PDrawable, gc: PGC, points: PPoint, 
-                        npoints: gint){.cdecl.}
-    draw_segments*: proc (drawable: PDrawable, gc: PGC, segs: PSegment, 
-                          nsegs: gint){.cdecl.}
-    draw_lines*: proc (drawable: PDrawable, gc: PGC, points: PPoint, 
-                       npoints: gint){.cdecl.}
-    draw_glyphs*: proc (drawable: PDrawable, gc: PGC, font: PFont, x: gint, 
-                        y: gint, glyphs: PGlyphString){.cdecl.}
-    draw_image*: proc (drawable: PDrawable, gc: PGC, image: PImage, xsrc: gint, 
-                       ysrc: gint, xdest: gint, ydest: gint, width: gint, 
-                       height: gint){.cdecl.}
-    get_depth*: proc (drawable: PDrawable): gint{.cdecl.}
-    get_size*: proc (drawable: PDrawable, width: Pgint, height: Pgint){.cdecl.}
-    set_colormap*: proc (drawable: PDrawable, cmap: PColormap){.cdecl.}
-    get_colormap*: proc (drawable: PDrawable): PColormap{.cdecl.}
-    get_visual*: proc (drawable: PDrawable): PVisual{.cdecl.}
-    get_screen*: proc (drawable: PDrawable): PScreen{.cdecl.}
-    get_image*: proc (drawable: PDrawable, x: gint, y: gint, width: gint, 
-                      height: gint): PImage{.cdecl.}
-    get_clip_region*: proc (drawable: PDrawable): PRegion{.cdecl.}
-    get_visible_region*: proc (drawable: PDrawable): PRegion{.cdecl.}
-    get_composite_drawable*: proc (drawable: PDrawable, x: gint, y: gint, 
-                                   width: gint, height: gint, 
-                                   composite_x_offset: Pgint, 
-                                   composite_y_offset: Pgint): PDrawable{.cdecl.}
-    `draw_pixbuf`*: proc (drawable: PDrawable, gc: PGC, pixbuf: PPixbuf, 
-                          src_x: gint, src_y: gint, dest_x: gint, dest_y: gint, 
-                          width: gint, height: gint, dither: TRgbDither, 
-                          x_dither: gint, y_dither: gint){.cdecl.}
-    `copy_to_image`*: proc (drawable: PDrawable, image: PImage, src_x: gint, 
-                            src_y: gint, dest_x: gint, dest_y: gint, 
-                            width: gint, height: gint): PImage{.cdecl.}
-    `reserved1`: proc (){.cdecl.}
-    `reserved2`: proc (){.cdecl.}
-    `reserved3`: proc (){.cdecl.}
-    `reserved4`: proc (){.cdecl.}
-    `reserved5`: proc (){.cdecl.}
-    `reserved6`: proc (){.cdecl.}
-    `reserved7`: proc (){.cdecl.}
-    `reserved9`: proc (){.cdecl.}
-    `reserved10`: proc (){.cdecl.}
-    `reserved11`: proc (){.cdecl.}
-    `reserved12`: proc (){.cdecl.}
-    `reserved13`: proc (){.cdecl.}
-    `reserved14`: proc (){.cdecl.}
-    `reserved15`: proc (){.cdecl.}
-    `reserved16`: proc (){.cdecl.}
-
-  PEvent* = ptr TEvent
-  TEventFunc* = proc (event: PEvent, data: gpointer){.cdecl.}
-  PXEvent* = ptr TXEvent
-  TXEvent* = proc () {.cdecl.}
-  PFilterReturn* = ptr TFilterReturn
-  TFilterReturn* = enum 
-    FILTER_CONTINUE, FILTER_TRANSLATE, FILTER_REMOVE
-  TFilterFunc* = proc (xevent: PXEvent, event: PEvent, data: gpointer): TFilterReturn{.
-      cdecl.}
-  PEventType* = ptr TEventType
-  TEventType* = gint
-  PEventMask* = ptr TEventMask
-  TEventMask* = gint32
-  PVisibilityState* = ptr TVisibilityState
-  TVisibilityState* = enum 
-    VISIBILITY_UNOBSCURED, VISIBILITY_PARTIAL, VISIBILITY_FULLY_OBSCURED
-  PScrollDirection* = ptr TScrollDirection
-  TScrollDirection* = enum 
-    SCROLL_UP, SCROLL_DOWN, SCROLL_LEFT, SCROLL_RIGHT
-  PNotifyType* = ptr TNotifyType
-  TNotifyType* = int
-  PCrossingMode* = ptr TCrossingMode
-  TCrossingMode* = enum 
-    CROSSING_NORMAL, CROSSING_GRAB, CROSSING_UNGRAB
-  PPropertyState* = ptr TPropertyState
-  TPropertyState* = enum 
-    PROPERTY_NEW_VALUE, PROPERTY_STATE_DELETE
-  PWindowState* = ptr TWindowState
-  TWindowState* = gint
-  PSettingAction* = ptr TSettingAction
-  TSettingAction* = enum 
-    SETTING_ACTION_NEW, SETTING_ACTION_CHANGED, SETTING_ACTION_DELETED
-  PEventAny* = ptr TEventAny
-  TEventAny*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-
-  PEventExpose* = ptr TEventExpose
-  TEventExpose*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    area*: TRectangle
-    region*: PRegion
-    count*: gint
-
-  PEventNoExpose* = ptr TEventNoExpose
-  TEventNoExpose*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-
-  PEventVisibility* = ptr TEventVisibility
-  TEventVisibility*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    state*: TVisibilityState
-
-  PEventMotion* = ptr TEventMotion
-  TEventMotion*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    time*: guint32
-    x*: gdouble
-    y*: gdouble
-    axes*: Pgdouble
-    state*: guint
-    is_hint*: gint16
-    device*: PDevice
-    x_root*: gdouble
-    y_root*: gdouble
-
-  PEventButton* = ptr TEventButton
-  TEventButton*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    time*: guint32
-    x*: gdouble
-    y*: gdouble
-    axes*: Pgdouble
-    state*: guint
-    button*: guint
-    device*: PDevice
-    x_root*: gdouble
-    y_root*: gdouble
-
-  PEventScroll* = ptr TEventScroll
-  TEventScroll*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    time*: guint32
-    x*: gdouble
-    y*: gdouble
-    state*: guint
-    direction*: TScrollDirection
-    device*: PDevice
-    x_root*: gdouble
-    y_root*: gdouble
-
-  PEventKey* = ptr TEventKey
-  TEventKey*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    time*: guint32
-    state*: guint
-    keyval*: guint
-    length*: gint
-    `string`*: cstring
-    hardware_keycode*: guint16
-    group*: guint8
-
-  PEventCrossing* = ptr TEventCrossing
-  TEventCrossing*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    subwindow*: PWindow
-    time*: guint32
-    x*: gdouble
-    y*: gdouble
-    x_root*: gdouble
-    y_root*: gdouble
-    mode*: TCrossingMode
-    detail*: TNotifyType
-    focus*: gboolean
-    state*: guint
-
-  PEventFocus* = ptr TEventFocus
-  TEventFocus*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    `in`*: gint16
-
-  PEventConfigure* = ptr TEventConfigure
-  TEventConfigure*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    x*: gint
-    y*: gint
-    width*: gint
-    height*: gint
-
-  PEventProperty* = ptr TEventProperty
-  TEventProperty*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    atom*: TAtom
-    time*: guint32
-    state*: guint
-
-  TNativeWindow* = pointer
-  PEventSelection* = ptr TEventSelection
-  TEventSelection*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    selection*: TAtom
-    target*: TAtom
-    `property`*: TAtom
-    time*: guint32
-    requestor*: TNativeWindow
-
-  PEventProximity* = ptr TEventProximity
-  TEventProximity*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    time*: guint32
-    device*: PDevice
-
-  PmatDUMMY* = ptr TmatDUMMY
-  TmatDUMMY*{.final, pure.} = object 
-    b*: array[0..19, char]
-
-  PEventClient* = ptr TEventClient
-  TEventClient*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    message_type*: TAtom
-    data_format*: gushort
-    b*: array[0..19, char]
-
-  PEventSetting* = ptr TEventSetting
-  TEventSetting*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    action*: TSettingAction
-    name*: cstring
-
-  PEventWindowState* = ptr TEventWindowState
-  TEventWindowState*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    changed_mask*: TWindowState
-    new_window_state*: TWindowState
-
-  PEventDND* = ptr TEventDND
-  TEventDND*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    context*: PDragContext
-    time*: guint32
-    x_root*: gshort
-    y_root*: gshort
-
-  TEvent*{.final, pure.} = object 
-    data*: array[0..255, char] # union of
-                               # `type`: TEventType
-                               #  any: TEventAny
-                               #  expose: TEventExpose
-                               #  no_expose: TEventNoExpose
-                               #  visibility: TEventVisibility
-                               #  motion: TEventMotion
-                               #  button: TEventButton
-                               #  scroll: TEventScroll
-                               #  key: TEventKey
-                               #  crossing: TEventCrossing
-                               #  focus_change: TEventFocus
-                               #  configure: TEventConfigure
-                               #  `property`: TEventProperty
-                               #  selection: TEventSelection
-                               #  proximity: TEventProximity
-                               #  client: TEventClient
-                               #  dnd: TEventDND
-                               #  window_state: TEventWindowState
-                               #  setting: TEventSetting
-  
-  PGCClass* = ptr TGCClass
-  TGCClass* = object of TGObjectClass
-    get_values*: proc (gc: PGC, values: PGCValues){.cdecl.}
-    set_values*: proc (gc: PGC, values: PGCValues, mask: TGCValuesMask){.cdecl.}
-    set_dashes*: proc (gc: PGC, dash_offset: gint, dash_list: openarray[gint8]){.
-        cdecl.}
-    `reserved1`*: proc (){.cdecl.}
-    `reserved2`*: proc (){.cdecl.}
-    `reserved3`*: proc (){.cdecl.}
-    `reserved4`*: proc (){.cdecl.}
-
-  PImageClass* = ptr TImageClass
-  TImageClass* = object of TGObjectClass
-  TImage* = object of TGObject
-    `type`*: TImageType
-    visual*: PVisual
-    byte_order*: TByteOrder
-    width*: gint
-    height*: gint
-    depth*: guint16
-    bpp*: guint16
-    bpl*: guint16
-    bits_per_pixel*: guint16
-    mem*: gpointer
-    colormap*: PColormap
-    windowing_data*: gpointer
-
-  PExtensionMode* = ptr TExtensionMode
-  TExtensionMode* = enum 
-    EXTENSION_EVENTS_NONE, EXTENSION_EVENTS_ALL, EXTENSION_EVENTS_CURSOR
-  PInputSource* = ptr TInputSource
-  TInputSource* = enum 
-    SOURCE_MOUSE, SOURCE_PEN, SOURCE_ERASER, SOURCE_CURSOR
-  PInputMode* = ptr TInputMode
-  TInputMode* = enum 
-    MODE_DISABLED, MODE_SCREEN, MODE_WINDOW
-  PAxisUse* = ptr TAxisUse
-  TAxisUse* = int32
-  PDeviceKey* = ptr TDeviceKey
-  TDeviceKey*{.final, pure.} = object 
-    keyval*: guint
-    modifiers*: TModifierType
-
-  PDeviceAxis* = ptr TDeviceAxis
-  TDeviceAxis*{.final, pure.} = object 
-    use*: TAxisUse
-    min*: gdouble
-    max*: gdouble
-
-  TDevice* = object of TGObject
-    name*: cstring
-    source*: TInputSource
-    mode*: TInputMode
-    has_cursor*: gboolean
-    num_axes*: gint
-    axes*: PDeviceAxis
-    num_keys*: gint
-    keys*: PDeviceKey
-
-  TTimeCoord*{.final, pure.} = object 
-    time*: guint32
-    axes*: array[0..(MAX_TIMECOORD_AXES) - 1, gdouble]
-
-  PKeymapKey* = ptr TKeymapKey
-  TKeymapKey*{.final, pure.} = object 
-    keycode*: guint
-    group*: gint
-    level*: gint
-
-  PKeymap* = ptr TKeymap
-  TKeymap* = object of TGObject
-    display*: PDisplay
-
-  PKeymapClass* = ptr TKeymapClass
-  TKeymapClass* = object of TGObjectClass
-    direction_changed*: proc (keymap: PKeymap){.cdecl.}
-
-  PAttrStipple* = ptr TAttrStipple
-  TAttrStipple*{.final, pure.} = object 
-    attr*: TAttribute
-    stipple*: PBitmap
-
-  PAttrEmbossed* = ptr TAttrEmbossed
-  TAttrEmbossed*{.final, pure.} = object 
-    attr*: TAttribute
-    embossed*: gboolean
-
-  PPixmapObject* = ptr TPixmapObject
-  TPixmapObject* = object of TDrawable
-    impl*: PDrawable
-    depth*: gint
-
-  PPixmapObjectClass* = ptr TPixmapObjectClass
-  TPixmapObjectClass* = object of TDrawableClass
-  PPropMode* = ptr TPropMode
-  TPropMode* = enum 
-    PROP_MODE_REPLACE, PROP_MODE_PREPEND, PROP_MODE_APPEND
-  PFillRule* = ptr TFillRule
-  TFillRule* = enum 
-    EVEN_ODD_RULE, WINDING_RULE
-  POverlapType* = ptr TOverlapType
-  TOverlapType* = enum 
-    OVERLAP_RECTANGLE_IN, OVERLAP_RECTANGLE_OUT, OVERLAP_RECTANGLE_PART
-  TSpanFunc* = proc (span: PSpan, data: gpointer){.cdecl.}
-  PRgbCmap* = ptr TRgbCmap
-  TRgbCmap*{.final, pure.} = object 
-    colors*: array[0..255, guint32]
-    n_colors*: gint
-    info_list*: PGSList
-
-  TDisplay* = object of TGObject
-    queued_events*: PGList
-    queued_tail*: PGList
-    button_click_time*: array[0..1, guint32]
-    button_window*: array[0..1, PWindow]
-    button_number*: array[0..1, guint]
-    double_click_time*: guint
-
-  PDisplayClass* = ptr TDisplayClass
-  TDisplayClass* = object of TGObjectClass
-    get_display_name*: proc (display: PDisplay): cstring{.cdecl.}
-    get_n_screens*: proc (display: PDisplay): gint{.cdecl.}
-    get_screen*: proc (display: PDisplay, screen_num: gint): PScreen{.cdecl.}
-    get_default_screen*: proc (display: PDisplay): PScreen{.cdecl.}
-
-  PScreenClass* = ptr TScreenClass
-  TScreenClass* = object of TGObjectClass
-    get_display*: proc (screen: PScreen): PDisplay{.cdecl.}
-    get_width*: proc (screen: PScreen): gint{.cdecl.}
-    get_height*: proc (screen: PScreen): gint{.cdecl.}
-    get_width_mm*: proc (screen: PScreen): gint{.cdecl.}
-    get_height_mm*: proc (screen: PScreen): gint{.cdecl.}
-    get_root_depth*: proc (screen: PScreen): gint{.cdecl.}
-    get_screen_num*: proc (screen: PScreen): gint{.cdecl.}
-    get_root_window*: proc (screen: PScreen): PWindow{.cdecl.}
-    get_default_colormap*: proc (screen: PScreen): PColormap{.cdecl.}
-    set_default_colormap*: proc (screen: PScreen, colormap: PColormap){.cdecl.}
-    get_window_at_pointer*: proc (screen: PScreen, win_x: Pgint, win_y: Pgint): PWindow{.
-        cdecl.}
-    get_n_monitors*: proc (screen: PScreen): gint{.cdecl.}
-    get_monitor_geometry*: proc (screen: PScreen, monitor_num: gint, 
-                                 dest: PRectangle){.cdecl.}
-
-  PGrabStatus* = ptr TGrabStatus
-  TGrabStatus* = int
-  TInputFunction* = proc (data: gpointer, source: gint, 
-                          condition: TInputCondition){.cdecl.}
-  TDestroyNotify* = proc (data: gpointer){.cdecl.}
-  TSpan*{.final, pure.} = object 
-    x*: gint
-    y*: gint
-    width*: gint
-
-  PWindowClass* = ptr TWindowClass
-  TWindowClass* = enum 
-    INPUT_OUTPUT, INPUT_ONLY
-  PWindowType* = ptr TWindowType
-  TWindowType* = enum 
-    WINDOW_ROOT, WINDOW_TOPLEVEL, WINDOW_CHILD, WINDOW_DIALOG, WINDOW_TEMP, 
-    WINDOW_FOREIGN
-  PWindowAttributesType* = ptr TWindowAttributesType
-  TWindowAttributesType* = int32
-  PWindowHints* = ptr TWindowHints
-  TWindowHints* = int32
-  PWindowTypeHint* = ptr TWindowTypeHint
-  TWindowTypeHint* = enum 
-    WINDOW_TYPE_HINT_NORMAL, WINDOW_TYPE_HINT_DIALOG, WINDOW_TYPE_HINT_MENU, 
-    WINDOW_TYPE_HINT_TOOLBAR, WINDOW_TYPE_HINT_SPLASHSCREEN,
-    WINDOW_TYPE_HINT_UTILITY, WINDOW_TYPE_HINT_DOCK,
-    WINDOW_TYPE_HINT_DESKTOP, WINDOW_TYPE_HINT_DROPDOWN_MENU,
-    WINDOW_TYPE_HINT_POPUP_MENU, WINDOW_TYPE_HINT_TOOLTIP,
-    WINDOW_TYPE_HINT_NOTIFICATION, WINDOW_TYPE_HINT_COMBO,
-    WINDOW_TYPE_HINT_DND
-  PWMDecoration* = ptr TWMDecoration
-  TWMDecoration* = int32
-  PWMFunction* = ptr TWMFunction
-  TWMFunction* = int32
-  PGravity* = ptr TGravity
-  TGravity* = int
-  PWindowEdge* = ptr TWindowEdge
-  TWindowEdge* = enum 
-    WINDOW_EDGE_NORTH_WEST, WINDOW_EDGE_NORTH, WINDOW_EDGE_NORTH_EAST, 
-    WINDOW_EDGE_WEST, WINDOW_EDGE_EAST, WINDOW_EDGE_SOUTH_WEST, 
-    WINDOW_EDGE_SOUTH, WINDOW_EDGE_SOUTH_EAST
-  PWindowAttr* = ptr TWindowAttr
-  TWindowAttr*{.final, pure.} = object 
-    title*: cstring
-    event_mask*: gint
-    x*: gint
-    y*: gint
-    width*: gint
-    height*: gint
-    wclass*: TWindowClass
-    visual*: PVisual
-    colormap*: PColormap
-    window_type*: TWindowType
-    cursor*: PCursor
-    wmclass_name*: cstring
-    wmclass_class*: cstring
-    override_redirect*: gboolean
-
-  PGeometry* = ptr TGeometry
-  TGeometry*{.final, pure.} = object 
-    min_width*: gint
-    min_height*: gint
-    max_width*: gint
-    max_height*: gint
-    base_width*: gint
-    base_height*: gint
-    width_inc*: gint
-    height_inc*: gint
-    min_aspect*: gdouble
-    max_aspect*: gdouble
-    win_gravity*: TGravity
-
-  PPointerHooks* = ptr TPointerHooks
-  TPointerHooks*{.final, pure.} = object 
-    get_pointer*: proc (window: PWindow, x: Pgint, y: Pgint, mask: PModifierType): PWindow{.
-        cdecl.}
-    window_at_pointer*: proc (screen: PScreen, win_x: Pgint, win_y: Pgint): PWindow{.
-        cdecl.}
-
-  PWindowObject* = ptr TWindowObject
-  TWindowObject* = object of TDrawable
-    impl*: PDrawable
-    parent*: PWindowObject
-    user_data*: gpointer
-    x*: gint
-    y*: gint
-    extension_events*: gint
-    filters*: PGList
-    children*: PGList
-    bg_color*: TColor
-    bg_pixmap*: PPixmap
-    paint_stack*: PGSList
-    update_area*: PRegion
-    update_freeze_count*: guint
-    window_type*: guint8
-    depth*: guint8
-    resize_count*: guint8
-    state*: TWindowState
-    flag0*: guint16
-    event_mask*: TEventMask
-
-  PWindowObjectClass* = ptr TWindowObjectClass
-  TWindowObjectClass* = object of TDrawableClass
-  window_invalidate_maybe_recurse_child_func* = proc (para1: PWindow, 
-      para2: gpointer): gboolean {.cdecl.}
-
-proc TYPE_COLORMAP*(): GType
-proc COLORMAP*(anObject: pointer): PColormap
-proc COLORMAP_CLASS*(klass: pointer): PColormapClass
-proc IS_COLORMAP*(anObject: pointer): bool
-proc IS_COLORMAP_CLASS*(klass: pointer): bool
-proc COLORMAP_GET_CLASS*(obj: pointer): PColormapClass
-proc TYPE_COLOR*(): GType
-proc colormap_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "gdk_colormap_get_type".}
-proc colormap_new*(visual: PVisual, allocate: gboolean): PColormap{.cdecl, 
-    dynlib: lib, importc: "gdk_colormap_new".}
-proc alloc_colors*(colormap: PColormap, colors: PColor, ncolors: gint, 
-                            writeable: gboolean, best_match: gboolean, 
-                            success: Pgboolean): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_colormap_alloc_colors".}
-proc alloc_color*(colormap: PColormap, color: PColor, 
-                           writeable: gboolean, best_match: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_colormap_alloc_color".}
-proc free_colors*(colormap: PColormap, colors: PColor, ncolors: gint){.
-    cdecl, dynlib: lib, importc: "gdk_colormap_free_colors".}
-proc query_color*(colormap: PColormap, pixel: gulong, result: PColor){.
-    cdecl, dynlib: lib, importc: "gdk_colormap_query_color".}
-proc get_visual*(colormap: PColormap): PVisual{.cdecl, dynlib: lib, 
-    importc: "gdk_colormap_get_visual".}
-proc copy*(color: PColor): PColor{.cdecl, dynlib: lib, 
-    importc: "gdk_color_copy".}
-proc free*(color: PColor){.cdecl, dynlib: lib, importc: "gdk_color_free".}
-proc color_parse*(spec: cstring, color: PColor): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_color_parse".}
-proc hash*(colora: PColor): guint{.cdecl, dynlib: lib, 
-    importc: "gdk_color_hash".}
-proc equal*(colora: PColor, colorb: PColor): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_color_equal".}
-proc color_get_type*(): GType{.cdecl, dynlib: lib, importc: "gdk_color_get_type".}
-const 
-  CURSOR_IS_PIXMAP* = - (1)
-  X_CURSOR* = 0
-  ARROW* = 2
-  BASED_ARROW_DOWN* = 4
-  BASED_ARROW_UP* = 6
-  BOAT* = 8
-  BOGOSITY* = 10
-  BOTTOM_LEFT_CORNER* = 12
-  BOTTOM_RIGHT_CORNER* = 14
-  BOTTOM_SIDE* = 16
-  BOTTOM_TEE* = 18
-  BOX_SPIRAL* = 20
-  CENTER_PTR* = 22
-  CIRCLE* = 24
-  CLOCK* = 26
-  COFFEE_MUG* = 28
-  CROSS* = 30
-  CROSS_REVERSE* = 32
-  CROSSHAIR* = 34
-  DIAMOND_CROSS* = 36
-  DOT* = 38
-  DOTBOX* = 40
-  DOUBLE_ARROW* = 42
-  DRAFT_LARGE* = 44
-  DRAFT_SMALL* = 46
-  DRAPED_BOX* = 48
-  EXCHANGE* = 50
-  FLEUR* = 52
-  GOBBLER* = 54
-  GUMBY* = 56
-  HAND1* = 58
-  HAND2* = 60
-  HEART* = 62
-  ICON* = 64
-  IRON_CROSS* = 66
-  LEFT_PTR* = 68
-  LEFT_SIDE* = 70
-  LEFT_TEE* = 72
-  LEFTBUTTON* = 74
-  LL_ANGLE* = 76
-  LR_ANGLE* = 78
-  MAN* = 80
-  MIDDLEBUTTON* = 82
-  MOUSE* = 84
-  PENCIL* = 86
-  PIRATE* = 88
-  PLUS* = 90
-  QUESTION_ARROW* = 92
-  RIGHT_PTR* = 94
-  RIGHT_SIDE* = 96
-  RIGHT_TEE* = 98
-  RIGHTBUTTON* = 100
-  RTL_LOGO* = 102
-  SAILBOAT* = 104
-  SB_DOWN_ARROW* = 106
-  SB_H_DOUBLE_ARROW* = 108
-  SB_LEFT_ARROW* = 110
-  SB_RIGHT_ARROW* = 112
-  SB_UP_ARROW* = 114
-  SB_V_DOUBLE_ARROW* = 116
-  SHUTTLE* = 118
-  SIZING* = 120
-  SPIDER* = 122
-  SPRAYCAN* = 124
-  STAR* = 126
-  TARGET* = 128
-  TCROSS* = 130
-  TOP_LEFT_ARROW* = 132
-  TOP_LEFT_CORNER* = 134
-  TOP_RIGHT_CORNER* = 136
-  TOP_SIDE* = 138
-  TOP_TEE* = 140
-  TREK* = 142
-  UL_ANGLE* = 144
-  UMBRELLA* = 146
-  UR_ANGLE* = 148
-  WATCH* = 150
-  XTERM* = 152
-  LAST_CURSOR* = XTERM + 1
-
-proc TYPE_CURSOR*(): GType
-proc cursor_get_type*(): GType{.cdecl, dynlib: lib, 
-                                importc: "gdk_cursor_get_type".}
-proc cursor_new_for_screen*(screen: PScreen, cursor_type: TCursorType): PCursor{.
-    cdecl, dynlib: lib, importc: "gdk_cursor_new_for_screen".}
-proc cursor_new_from_pixmap*(source: PPixmap, mask: PPixmap, fg: PColor, 
-                             bg: PColor, x: gint, y: gint): PCursor{.cdecl, 
-    dynlib: lib, importc: "gdk_cursor_new_from_pixmap".}
-proc get_screen*(cursor: PCursor): PScreen{.cdecl, dynlib: lib, 
-    importc: "gdk_cursor_get_screen".}
-proc reference*(cursor: PCursor): PCursor{.cdecl, dynlib: lib, 
-    importc: "gdk_cursor_ref".}
-proc unref*(cursor: PCursor){.cdecl, dynlib: lib, 
-                                     importc: "gdk_cursor_unref".}
-const 
-  ACTION_DEFAULT* = 1 shl 0
-  ACTION_COPY* = 1 shl 1
-  ACTION_MOVE* = 1 shl 2
-  ACTION_LINK* = 1 shl 3
-  ACTION_PRIVATE* = 1 shl 4
-  ACTION_ASK* = 1 shl 5
-
-proc TYPE_DRAG_CONTEXT*(): GType
-proc DRAG_CONTEXT*(anObject: Pointer): PDragContext
-proc DRAG_CONTEXT_CLASS*(klass: Pointer): PDragContextClass
-proc IS_DRAG_CONTEXT*(anObject: Pointer): bool
-proc IS_DRAG_CONTEXT_CLASS*(klass: Pointer): bool
-proc DRAG_CONTEXT_GET_CLASS*(obj: Pointer): PDragContextClass
-proc drag_context_get_type*(): GType{.cdecl, dynlib: lib, 
-                                      importc: "gdk_drag_context_get_type".}
-proc drag_context_new*(): PDragContext{.cdecl, dynlib: lib, 
-                                        importc: "gdk_drag_context_new".}
-proc status*(context: PDragContext, action: TDragAction, time: guint32){.
-    cdecl, dynlib: lib, importc: "gdk_drag_status".}
-proc drop_reply*(context: PDragContext, ok: gboolean, time: guint32){.cdecl, 
-    dynlib: lib, importc: "gdk_drop_reply".}
-proc drop_finish*(context: PDragContext, success: gboolean, time: guint32){.
-    cdecl, dynlib: lib, importc: "gdk_drop_finish".}
-proc get_selection*(context: PDragContext): TAtom{.cdecl, dynlib: lib, 
-    importc: "gdk_drag_get_selection".}
-proc drag_begin*(window: PWindow, targets: PGList): PDragContext{.cdecl, 
-    dynlib: lib, importc: "gdk_drag_begin".}
-proc drag_get_protocol_for_display*(display: PDisplay, xid: guint32, 
-                                    protocol: PDragProtocol): guint32{.cdecl, 
-    dynlib: lib, importc: "gdk_drag_get_protocol_for_display".}
-proc find_window*(context: PDragContext, drag_window: PWindow, 
-                       x_root: gint, y_root: gint, w: var PWindow, 
-                       protocol: PDragProtocol){.cdecl, dynlib: lib, 
-    importc: "gdk_drag_find_window".}
-proc motion*(context: PDragContext, dest_window: PWindow, 
-                  protocol: TDragProtocol, x_root: gint, y_root: gint, 
-                  suggested_action: TDragAction, possible_actions: TDragAction, 
-                  time: guint32): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_drag_motion".}
-proc drop*(context: PDragContext, time: guint32){.cdecl, dynlib: lib, 
-    importc: "gdk_drag_drop".}
-proc abort*(context: PDragContext, time: guint32){.cdecl, dynlib: lib, 
-    importc: "gdk_drag_abort".}
-proc region_EXTENTCHECK*(r1, r2: PRegionBox): bool
-proc EXTENTS*(r: PRegionBox, idRect: PRegion)
-proc MEMCHECK*(reg: PRegion, ARect, firstrect: var PRegionBox): bool
-proc CHECK_PREVIOUS*(Reg: PRegion, R: PRegionBox, 
-                            Rx1, Ry1, Rx2, Ry2: gint): bool
-proc ADDRECT*(reg: PRegion, r: PRegionBox, rx1, ry1, rx2, ry2: gint)
-proc ADDRECTNOX*(reg: PRegion, r: PRegionBox, rx1, ry1, rx2, ry2: gint)
-proc EMPTY_REGION*(pReg: PRegion): bool
-proc REGION_NOT_EMPTY*(pReg: PRegion): bool
-proc region_INBOX*(r: TRegionBox, x, y: gint): bool
-proc TYPE_DRAWABLE*(): GType
-proc DRAWABLE*(anObject: Pointer): PDrawable
-proc DRAWABLE_CLASS*(klass: Pointer): PDrawableClass
-proc IS_DRAWABLE*(anObject: Pointer): bool
-proc IS_DRAWABLE_CLASS*(klass: Pointer): bool
-proc DRAWABLE_GET_CLASS*(obj: Pointer): PDrawableClass
-proc drawable_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "gdk_drawable_get_type".}
-proc get_size*(drawable: PDrawable, width: Pgint, height: Pgint){.
-    cdecl, dynlib: lib, importc: "gdk_drawable_get_size".}
-proc set_colormap*(drawable: PDrawable, colormap: PColormap){.cdecl, 
-    dynlib: lib, importc: "gdk_drawable_set_colormap".}
-proc get_colormap*(drawable: PDrawable): PColormap{.cdecl, dynlib: lib, 
-    importc: "gdk_drawable_get_colormap".}
-proc get_visual*(drawable: PDrawable): PVisual{.cdecl, dynlib: lib, 
-    importc: "gdk_drawable_get_visual".}
-proc get_depth*(drawable: PDrawable): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_drawable_get_depth".}
-proc get_screen*(drawable: PDrawable): PScreen{.cdecl, dynlib: lib, 
-    importc: "gdk_drawable_get_screen".}
-proc get_display*(drawable: PDrawable): PDisplay{.cdecl, dynlib: lib, 
-    importc: "gdk_drawable_get_display".}
-proc point*(drawable: PDrawable, gc: PGC, x: gint, y: gint){.cdecl, 
-    dynlib: lib, importc: "gdk_draw_point".}
-proc line*(drawable: PDrawable, gc: PGC, x1: gint, y1: gint, x2: gint, 
-                y2: gint){.cdecl, dynlib: lib, importc: "gdk_draw_line".}
-proc rectangle*(drawable: PDrawable, gc: PGC, filled: gint, x: gint, 
-                     y: gint, width: gint, height: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_draw_rectangle".}
-proc arc*(drawable: PDrawable, gc: PGC, filled: gint, x: gint, y: gint, 
-               width: gint, height: gint, angle1: gint, angle2: gint){.cdecl, 
-    dynlib: lib, importc: "gdk_draw_arc".}
-proc polygon*(drawable: PDrawable, gc: PGC, filled: gint, points: PPoint, 
-                   npoints: gint){.cdecl, dynlib: lib, 
-                                   importc: "gdk_draw_polygon".}
-proc drawable*(drawable: PDrawable, gc: PGC, src: PDrawable, xsrc: gint, 
-                    ysrc: gint, xdest: gint, ydest: gint, width: gint, 
-                    height: gint){.cdecl, dynlib: lib, 
-                                   importc: "gdk_draw_drawable".}
-proc image*(drawable: PDrawable, gc: PGC, image: PImage, xsrc: gint, 
-                 ysrc: gint, xdest: gint, ydest: gint, width: gint, height: gint){.
-    cdecl, dynlib: lib, importc: "gdk_draw_image".}
-proc points*(drawable: PDrawable, gc: PGC, points: PPoint, npoints: gint){.
-    cdecl, dynlib: lib, importc: "gdk_draw_points".}
-proc segments*(drawable: PDrawable, gc: PGC, segs: PSegment, nsegs: gint){.
-    cdecl, dynlib: lib, importc: "gdk_draw_segments".}
-proc lines*(drawable: PDrawable, gc: PGC, points: PPoint, npoints: gint){.
-    cdecl, dynlib: lib, importc: "gdk_draw_lines".}
-proc glyphs*(drawable: PDrawable, gc: PGC, font: PFont, x: gint, 
-                  y: gint, glyphs: PGlyphString){.cdecl, dynlib: lib, 
-    importc: "gdk_draw_glyphs".}
-proc layout_line*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
-                       line: PLayoutLine){.cdecl, dynlib: lib, 
-    importc: "gdk_draw_layout_line".}
-proc layout*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
-                  layout: PLayout){.cdecl, dynlib: lib, 
-    importc: "gdk_draw_layout".}
-proc layout_line*(drawable: PDrawable, gc: PGC, x: gint, 
-                                   y: gint, line: PLayoutLine, 
-                                   foreground: PColor, background: PColor){.
-    cdecl, dynlib: lib, importc: "gdk_draw_layout_line_with_colors".}
-proc layout*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
-                              layout: PLayout, foreground: PColor, 
-                              background: PColor){.cdecl, dynlib: lib, 
-    importc: "gdk_draw_layout_with_colors".}
-proc get_image*(drawable: PDrawable, x: gint, y: gint, width: gint, 
-                         height: gint): PImage{.cdecl, dynlib: lib, 
-    importc: "gdk_drawable_get_image".}
-proc get_clip_region*(drawable: PDrawable): PRegion{.cdecl, 
-    dynlib: lib, importc: "gdk_drawable_get_clip_region".}
-proc get_visible_region*(drawable: PDrawable): PRegion{.cdecl, 
-    dynlib: lib, importc: "gdk_drawable_get_visible_region".}
-const 
-  NOTHING* = - (1)
-  DELETE* = 0
-  constDESTROY* = 1
-  EXPOSE* = 2
-  MOTION_NOTIFY* = 3
-  BUTTON_PRESS* = 4
-  BUTTON2_PRESS* = 5
-  BUTTON3_PRESS* = 6
-  BUTTON_RELEASE* = 7
-  KEY_PRESS* = 8
-  KEY_RELEASE* = 9
-  ENTER_NOTIFY* = 10
-  LEAVE_NOTIFY* = 11
-  FOCUS_CHANGE* = 12
-  CONFIGURE* = 13
-  MAP* = 14
-  UNMAP* = 15
-  PROPERTY_NOTIFY* = 16
-  SELECTION_CLEAR* = 17
-  SELECTION_REQUEST* = 18
-  SELECTION_NOTIFY* = 19
-  PROXIMITY_IN* = 20
-  PROXIMITY_OUT* = 21
-  DRAG_ENTER* = 22
-  DRAG_LEAVE* = 23
-  DRAG_MOTION_EVENT* = 24
-  DRAG_STATUS_EVENT* = 25
-  DROP_START* = 26
-  DROP_FINISHED* = 27
-  CLIENT_EVENT* = 28
-  VISIBILITY_NOTIFY* = 29
-  NO_EXPOSE* = 30
-  constSCROLL* = 31
-  WINDOW_STATE* = 32
-  SETTING* = 33
-  NOTIFY_ANCESTOR* = 0
-  NOTIFY_VIRTUAL* = 1
-  NOTIFY_INFERIOR* = 2
-  NOTIFY_NONLINEAR* = 3
-  NOTIFY_NONLINEAR_VIRTUAL* = 4
-  NOTIFY_UNKNOWN* = 5
-
-proc TYPE_EVENT*(): GType
-const 
-  G_PRIORITY_DEFAULT* = 0
-  PRIORITY_EVENTS* = G_PRIORITY_DEFAULT #GDK_PRIORITY_REDRAW* = G_PRIORITY_HIGH_IDLE + 20
-  EXPOSURE_MASK* = 1 shl 1
-  POINTER_MOTION_MASK* = 1 shl 2
-  POINTER_MOTION_HINT_MASK* = 1 shl 3
-  BUTTON_MOTION_MASK* = 1 shl 4
-  BUTTON1_MOTION_MASK* = 1 shl 5
-  BUTTON2_MOTION_MASK* = 1 shl 6
-  BUTTON3_MOTION_MASK* = 1 shl 7
-  BUTTON_PRESS_MASK* = 1 shl 8
-  BUTTON_RELEASE_MASK* = 1 shl 9
-  KEY_PRESS_MASK* = 1 shl 10
-  KEY_RELEASE_MASK* = 1 shl 11
-  ENTER_NOTIFY_MASK* = 1 shl 12
-  LEAVE_NOTIFY_MASK* = 1 shl 13
-  FOCUS_CHANGE_MASK* = 1 shl 14
-  STRUCTURE_MASK* = 1 shl 15
-  PROPERTY_CHANGE_MASK* = 1 shl 16
-  VISIBILITY_NOTIFY_MASK* = 1 shl 17
-  PROXIMITY_IN_MASK* = 1 shl 18
-  PROXIMITY_OUT_MASK* = 1 shl 19
-  SUBSTRUCTURE_MASK* = 1 shl 20
-  SCROLL_MASK* = 1 shl 21
-  ALL_EVENTS_MASK* = 0x003FFFFE
-  WINDOW_STATE_WITHDRAWN* = 1 shl 0
-  WINDOW_STATE_ICONIFIED* = 1 shl 1
-  WINDOW_STATE_MAXIMIZED* = 1 shl 2
-  WINDOW_STATE_STICKY* = 1 shl 3
-
-proc event_get_type*(): GType{.cdecl, dynlib: lib, importc: "gdk_event_get_type".}
-proc events_pending*(): gboolean{.cdecl, dynlib: lib, 
-                                  importc: "gdk_events_pending".}
-proc event_get*(): PEvent{.cdecl, dynlib: lib, importc: "gdk_event_get".}
-proc event_peek*(): PEvent{.cdecl, dynlib: lib, importc: "gdk_event_peek".}
-proc event_get_graphics_expose*(window: PWindow): PEvent{.cdecl, dynlib: lib, 
-    importc: "gdk_event_get_graphics_expose".}
-proc put*(event: PEvent){.cdecl, dynlib: lib, importc: "gdk_event_put".}
-proc copy*(event: PEvent): PEvent{.cdecl, dynlib: lib, 
-    importc: "gdk_event_copy".}
-proc free*(event: PEvent){.cdecl, dynlib: lib, importc: "gdk_event_free".}
-proc get_time*(event: PEvent): guint32{.cdecl, dynlib: lib, 
-    importc: "gdk_event_get_time".}
-proc get_state*(event: PEvent, state: PModifierType): gboolean{.cdecl, 
-    dynlib: lib, importc: "gdk_event_get_state".}
-proc get_coords*(event: PEvent, x_win: Pgdouble, y_win: Pgdouble): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_event_get_coords".}
-proc get_root_coords*(event: PEvent, x_root: Pgdouble, y_root: Pgdouble): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_event_get_root_coords".}
-proc get_axis*(event: PEvent, axis_use: TAxisUse, value: Pgdouble): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_event_get_axis".}
-proc event_handler_set*(func: TEventFunc, data: gpointer, 
-                        notify: TGDestroyNotify){.cdecl, dynlib: lib, 
-    importc: "gdk_event_handler_set".}
-proc set_show_events*(show_events: gboolean){.cdecl, dynlib: lib, 
-    importc: "gdk_set_show_events".}
-proc get_show_events*(): gboolean{.cdecl, dynlib: lib, 
-                                   importc: "gdk_get_show_events".}
-proc TYPE_FONT*(): GType
-proc font_get_type*(): GType{.cdecl, dynlib: lib, importc: "gdk_font_get_type".}
-proc font_load_for_display*(display: PDisplay, font_name: cstring): PFont{.
-    cdecl, dynlib: lib, importc: "gdk_font_load_for_display".}
-proc fontset_load_for_display*(display: PDisplay, fontset_name: cstring): PFont{.
-    cdecl, dynlib: lib, importc: "gdk_fontset_load_for_display".}
-proc font_from_description_for_display*(display: PDisplay, 
-                                        font_desc: PFontDescription): PFont{.
-    cdecl, dynlib: lib, importc: "gdk_font_from_description_for_display".}
-proc reference*(font: PFont): PFont{.cdecl, dynlib: lib, importc: "gdk_font_ref".}
-proc unref*(font: PFont){.cdecl, dynlib: lib, importc: "gdk_font_unref".}
-proc id*(font: PFont): gint{.cdecl, dynlib: lib, importc: "gdk_font_id".}
-proc equal*(fonta: PFont, fontb: PFont): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_font_equal".}
-proc string_width*(font: PFont, `string`: cstring): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_string_width".}
-proc text_width*(font: PFont, text: cstring, text_length: gint): gint{.cdecl, 
-    dynlib: lib, importc: "gdk_text_width".}
-proc text_width_wc*(font: PFont, text: PWChar, text_length: gint): gint{.cdecl, 
-    dynlib: lib, importc: "gdk_text_width_wc".}
-proc char_width*(font: PFont, character: gchar): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_char_width".}
-proc char_width_wc*(font: PFont, character: TWChar): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_char_width_wc".}
-proc string_measure*(font: PFont, `string`: cstring): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_string_measure".}
-proc text_measure*(font: PFont, text: cstring, text_length: gint): gint{.cdecl, 
-    dynlib: lib, importc: "gdk_text_measure".}
-proc char_measure*(font: PFont, character: gchar): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_char_measure".}
-proc string_height*(font: PFont, `string`: cstring): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_string_height".}
-proc text_height*(font: PFont, text: cstring, text_length: gint): gint{.cdecl, 
-    dynlib: lib, importc: "gdk_text_height".}
-proc char_height*(font: PFont, character: gchar): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_char_height".}
-proc text_extents*(font: PFont, text: cstring, text_length: gint, 
-                   lbearing: Pgint, rbearing: Pgint, width: Pgint, 
-                   ascent: Pgint, descent: Pgint){.cdecl, dynlib: lib, 
-    importc: "gdk_text_extents".}
-proc text_extents_wc*(font: PFont, text: PWChar, text_length: gint, 
-                      lbearing: Pgint, rbearing: Pgint, width: Pgint, 
-                      ascent: Pgint, descent: Pgint){.cdecl, dynlib: lib, 
-    importc: "gdk_text_extents_wc".}
-proc string_extents*(font: PFont, `string`: cstring, lbearing: Pgint, 
-                     rbearing: Pgint, width: Pgint, ascent: Pgint, 
-                     descent: Pgint){.cdecl, dynlib: lib, 
-                                      importc: "gdk_string_extents".}
-proc get_display*(font: PFont): PDisplay{.cdecl, dynlib: lib, 
-    importc: "gdk_font_get_display".}
-const 
-  GC_FOREGROUND* = 1 shl 0
-  GC_BACKGROUND* = 1 shl 1
-  GC_FONT* = 1 shl 2
-  GC_FUNCTION* = 1 shl 3
-  GC_FILL* = 1 shl 4
-  GC_TILE* = 1 shl 5
-  GC_STIPPLE* = 1 shl 6
-  GC_CLIP_MASK* = 1 shl 7
-  GC_SUBWINDOW* = 1 shl 8
-  GC_TS_X_ORIGIN* = 1 shl 9
-  GC_TS_Y_ORIGIN* = 1 shl 10
-  GC_CLIP_X_ORIGIN* = 1 shl 11
-  GC_CLIP_Y_ORIGIN* = 1 shl 12
-  GC_EXPOSURES* = 1 shl 13
-  GC_LINE_WIDTH* = 1 shl 14
-  GC_LINE_STYLE* = 1 shl 15
-  GC_CAP_STYLE* = 1 shl 16
-  GC_JOIN_STYLE* = 1 shl 17
-  CLIP_BY_CHILDREN* = 0
-  INCLUDE_INFERIORS* = 1
-
-proc TYPE_GC*(): GType
-proc GC*(anObject: Pointer): PGC
-proc GC_CLASS*(klass: Pointer): PGCClass
-proc IS_GC*(anObject: Pointer): bool
-proc IS_GC_CLASS*(klass: Pointer): bool
-proc GC_GET_CLASS*(obj: Pointer): PGCClass
-proc gc_get_type*(): GType{.cdecl, dynlib: lib, importc: "gdk_gc_get_type".}
-proc gc_new*(drawable: PDrawable): PGC{.cdecl, dynlib: lib, 
-                                        importc: "gdk_gc_new".}
-proc gc_new*(drawable: PDrawable, values: PGCValues, 
-                         values_mask: TGCValuesMask): PGC{.cdecl, dynlib: lib, 
-    importc: "gdk_gc_new_with_values".}
-proc get_values*(gc: PGC, values: PGCValues){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_get_values".}
-proc set_values*(gc: PGC, values: PGCValues, values_mask: TGCValuesMask){.
-    cdecl, dynlib: lib, importc: "gdk_gc_set_values".}
-proc set_foreground*(gc: PGC, color: PColor){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_foreground".}
-proc set_background*(gc: PGC, color: PColor){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_background".}
-proc set_function*(gc: PGC, `function`: TFunction){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_function".}
-proc set_fill*(gc: PGC, fill: TFill){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_fill".}
-proc set_tile*(gc: PGC, tile: PPixmap){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_tile".}
-proc set_stipple*(gc: PGC, stipple: PPixmap){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_stipple".}
-proc set_ts_origin*(gc: PGC, x: gint, y: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_ts_origin".}
-proc set_clip_origin*(gc: PGC, x: gint, y: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_clip_origin".}
-proc set_clip_mask*(gc: PGC, mask: PBitmap){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_clip_mask".}
-proc set_clip_rectangle*(gc: PGC, rectangle: PRectangle){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_clip_rectangle".}
-proc set_clip_region*(gc: PGC, region: PRegion){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_clip_region".}
-proc set_subwindow*(gc: PGC, mode: TSubwindowMode){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_subwindow".}
-proc set_exposures*(gc: PGC, exposures: gboolean){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_exposures".}
-proc set_line_attributes*(gc: PGC, line_width: gint, line_style: TLineStyle, 
-                             cap_style: TCapStyle, join_style: TJoinStyle){.
-    cdecl, dynlib: lib, importc: "gdk_gc_set_line_attributes".}
-proc set_dashes*(gc: PGC, dash_offset: gint, dash_list: openarray[gint8]){.
-    cdecl, dynlib: lib, importc: "gdk_gc_set_dashes".}
-proc offset*(gc: PGC, x_offset: gint, y_offset: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_offset".}
-proc copy*(dst_gc: PGC, src_gc: PGC){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_copy".}
-proc set_colormap*(gc: PGC, colormap: PColormap){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_colormap".}
-proc get_colormap*(gc: PGC): PColormap{.cdecl, dynlib: lib, 
-    importc: "gdk_gc_get_colormap".}
-proc set_rgb_fg_color*(gc: PGC, color: PColor){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_rgb_fg_color".}
-proc set_rgb_bg_color*(gc: PGC, color: PColor){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_rgb_bg_color".}
-proc get_screen*(gc: PGC): PScreen{.cdecl, dynlib: lib, 
-                                       importc: "gdk_gc_get_screen".}
-proc TYPE_IMAGE*(): GType
-proc IMAGE*(anObject: Pointer): PImage
-proc IMAGE_CLASS*(klass: Pointer): PImageClass
-proc IS_IMAGE*(anObject: Pointer): bool
-proc IS_IMAGE_CLASS*(klass: Pointer): bool
-proc IMAGE_GET_CLASS*(obj: Pointer): PImageClass
-proc image_get_type*(): GType{.cdecl, dynlib: lib, importc: "gdk_image_get_type".}
-proc image_new*(`type`: TImageType, visual: PVisual, width: gint, height: gint): PImage{.
-    cdecl, dynlib: lib, importc: "gdk_image_new".}
-proc put_pixel*(image: PImage, x: gint, y: gint, pixel: guint32){.cdecl, 
-    dynlib: lib, importc: "gdk_image_put_pixel".}
-proc get_pixel*(image: PImage, x: gint, y: gint): guint32{.cdecl, 
-    dynlib: lib, importc: "gdk_image_get_pixel".}
-proc set_colormap*(image: PImage, colormap: PColormap){.cdecl, 
-    dynlib: lib, importc: "gdk_image_set_colormap".}
-proc get_colormap*(image: PImage): PColormap{.cdecl, dynlib: lib, 
-    importc: "gdk_image_get_colormap".}
-const 
-  AXIS_IGNORE* = 0
-  AXIS_X* = 1
-  AXIS_Y* = 2
-  AXIS_PRESSURE* = 3
-  AXIS_XTILT* = 4
-  AXIS_YTILT* = 5
-  AXIS_WHEEL* = 6
-  AXIS_LAST* = 7
-
-proc TYPE_DEVICE*(): GType
-proc DEVICE*(anObject: Pointer): PDevice
-proc DEVICE_CLASS*(klass: Pointer): PDeviceClass
-proc IS_DEVICE*(anObject: Pointer): bool
-proc IS_DEVICE_CLASS*(klass: Pointer): bool
-proc DEVICE_GET_CLASS*(obj: Pointer): PDeviceClass
-proc device_get_type*(): GType{.cdecl, dynlib: lib, 
-                                importc: "gdk_device_get_type".}
-proc set_source*(device: PDevice, source: TInputSource){.cdecl, 
-    dynlib: lib, importc: "gdk_device_set_source".}
-proc set_mode*(device: PDevice, mode: TInputMode): gboolean{.cdecl, 
-    dynlib: lib, importc: "gdk_device_set_mode".}
-proc set_key*(device: PDevice, index: guint, keyval: guint, 
-                     modifiers: TModifierType){.cdecl, dynlib: lib, 
-    importc: "gdk_device_set_key".}
-proc set_axis_use*(device: PDevice, index: guint, use: TAxisUse){.cdecl, 
-    dynlib: lib, importc: "gdk_device_set_axis_use".}
-proc get_state*(device: PDevice, window: PWindow, axes: Pgdouble, 
-                       mask: PModifierType){.cdecl, dynlib: lib, 
-    importc: "gdk_device_get_state".}
-proc get_history*(device: PDevice, window: PWindow, start: guint32, 
-                         stop: guint32, s: var PPTimeCoord, n_events: Pgint): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_device_get_history".}
-proc device_free_history*(events: PPTimeCoord, n_events: gint){.cdecl, 
-    dynlib: lib, importc: "gdk_device_free_history".}
-proc get_axis*(device: PDevice, axes: Pgdouble, use: TAxisUse, 
-                      value: Pgdouble): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_device_get_axis".}
-proc input_set_extension_events*(window: PWindow, mask: gint, 
-                                 mode: TExtensionMode){.cdecl, dynlib: lib, 
-    importc: "gdk_input_set_extension_events".}
-proc device_get_core_pointer*(): PDevice{.cdecl, dynlib: lib, 
-    importc: "gdk_device_get_core_pointer".}
-proc TYPE_KEYMAP*(): GType
-proc KEYMAP*(anObject: Pointer): PKeymap
-proc KEYMAP_CLASS*(klass: Pointer): PKeymapClass
-proc IS_KEYMAP*(anObject: Pointer): bool
-proc IS_KEYMAP_CLASS*(klass: Pointer): bool
-proc KEYMAP_GET_CLASS*(obj: Pointer): PKeymapClass
-proc keymap_get_type*(): GType{.cdecl, dynlib: lib, 
-                                importc: "gdk_keymap_get_type".}
-proc keymap_get_for_display*(display: PDisplay): PKeymap{.cdecl, dynlib: lib, 
-    importc: "gdk_keymap_get_for_display".}
-proc lookup_key*(keymap: PKeymap, key: PKeymapKey): guint{.cdecl, 
-    dynlib: lib, importc: "gdk_keymap_lookup_key".}
-proc translate_keyboard_state*(keymap: PKeymap, hardware_keycode: guint, 
-                                      state: TModifierType, group: gint, 
-                                      keyval: Pguint, effective_group: Pgint, 
-                                      level: Pgint, 
-                                      consumed_modifiers: PModifierType): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_keymap_translate_keyboard_state".}
-proc get_entries_for_keyval*(keymap: PKeymap, keyval: guint, 
-                                    s: var PKeymapKey, n_keys: Pgint): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_keymap_get_entries_for_keyval".}
-proc get_entries_for_keycode*(keymap: PKeymap, hardware_keycode: guint, 
-                                     s: var PKeymapKey, sasdf: var Pguint, 
-                                     n_entries: Pgint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gdk_keymap_get_entries_for_keycode".}
-proc get_direction*(keymap: PKeymap): TDirection{.cdecl, 
-    dynlib: lib, importc: "gdk_keymap_get_direction".}
-proc keyval_name*(keyval: guint): cstring{.cdecl, dynlib: lib, 
-    importc: "gdk_keyval_name".}
-proc keyval_from_name*(keyval_name: cstring): guint{.cdecl, dynlib: lib, 
-    importc: "gdk_keyval_from_name".}
-proc keyval_convert_case*(symbol: guint, lower: Pguint, upper: Pguint){.cdecl, 
-    dynlib: lib, importc: "gdk_keyval_convert_case".}
-proc keyval_to_upper*(keyval: guint): guint{.cdecl, dynlib: lib, 
-    importc: "gdk_keyval_to_upper".}
-proc keyval_to_lower*(keyval: guint): guint{.cdecl, dynlib: lib, 
-    importc: "gdk_keyval_to_lower".}
-proc keyval_is_upper*(keyval: guint): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_keyval_is_upper".}
-proc keyval_is_lower*(keyval: guint): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_keyval_is_lower".}
-proc keyval_to_unicode*(keyval: guint): guint32{.cdecl, dynlib: lib, 
-    importc: "gdk_keyval_to_unicode".}
-proc unicode_to_keyval*(wc: guint32): guint{.cdecl, dynlib: lib, 
-    importc: "gdk_unicode_to_keyval".}
-const 
-  KEY_VoidSymbol* = 0x00FFFFFF
-  KEY_BackSpace* = 0x0000FF08
-  KEY_Tab* = 0x0000FF09
-  KEY_Linefeed* = 0x0000FF0A
-  KEY_Clear* = 0x0000FF0B
-  KEY_Return* = 0x0000FF0D
-  KEY_Pause* = 0x0000FF13
-  KEY_Scroll_Lock* = 0x0000FF14
-  KEY_Sys_Req* = 0x0000FF15
-  KEY_Escape* = 0x0000FF1B
-  KEY_Delete* = 0x0000FFFF
-  KEY_Multi_key* = 0x0000FF20
-  KEY_Codeinput* = 0x0000FF37
-  KEY_SingleCandidate* = 0x0000FF3C
-  KEY_MultipleCandidate* = 0x0000FF3D
-  KEY_PreviousCandidate* = 0x0000FF3E
-  KEY_Kanji* = 0x0000FF21
-  KEY_Muhenkan* = 0x0000FF22
-  KEY_Henkan_Mode* = 0x0000FF23
-  KEY_Henkan* = 0x0000FF23
-  KEY_Romaji* = 0x0000FF24
-  KEY_Hiragana* = 0x0000FF25
-  KEY_Katakana* = 0x0000FF26
-  KEY_Hiragana_Katakana* = 0x0000FF27
-  KEY_Zenkaku* = 0x0000FF28
-  KEY_Hankaku* = 0x0000FF29
-  KEY_Zenkaku_Hankaku* = 0x0000FF2A
-  KEY_Touroku* = 0x0000FF2B
-  KEY_Massyo* = 0x0000FF2C
-  KEY_Kana_Lock* = 0x0000FF2D
-  KEY_Kana_Shift* = 0x0000FF2E
-  KEY_Eisu_Shift* = 0x0000FF2F
-  KEY_Eisu_toggle* = 0x0000FF30
-  KEY_Kanji_Bangou* = 0x0000FF37
-  KEY_Zen_Koho* = 0x0000FF3D
-  KEY_Mae_Koho* = 0x0000FF3E
-  KEY_Home* = 0x0000FF50
-  KEY_Left* = 0x0000FF51
-  KEY_Up* = 0x0000FF52
-  KEY_Right* = 0x0000FF53
-  KEY_Down* = 0x0000FF54
-  KEY_Prior* = 0x0000FF55
-  KEY_Page_Up* = 0x0000FF55
-  KEY_Next* = 0x0000FF56
-  KEY_Page_Down* = 0x0000FF56
-  KEY_End* = 0x0000FF57
-  KEY_Begin* = 0x0000FF58
-  KEY_Select* = 0x0000FF60
-  KEY_Print* = 0x0000FF61
-  KEY_Execute* = 0x0000FF62
-  KEY_Insert* = 0x0000FF63
-  KEY_Undo* = 0x0000FF65
-  KEY_Redo* = 0x0000FF66
-  KEY_Menu* = 0x0000FF67
-  KEY_Find* = 0x0000FF68
-  KEY_Cancel* = 0x0000FF69
-  KEY_Help* = 0x0000FF6A
-  KEY_Break* = 0x0000FF6B
-  KEY_Mode_switch* = 0x0000FF7E
-  KEY_script_switch* = 0x0000FF7E
-  KEY_Num_Lock* = 0x0000FF7F
-  KEY_KP_Space* = 0x0000FF80
-  KEY_KP_Tab* = 0x0000FF89
-  KEY_KP_Enter* = 0x0000FF8D
-  KEY_KP_F1* = 0x0000FF91
-  KEY_KP_F2* = 0x0000FF92
-  KEY_KP_F3* = 0x0000FF93
-  KEY_KP_F4* = 0x0000FF94
-  KEY_KP_Home* = 0x0000FF95
-  KEY_KP_Left* = 0x0000FF96
-  KEY_KP_Up* = 0x0000FF97
-  KEY_KP_Right* = 0x0000FF98
-  KEY_KP_Down* = 0x0000FF99
-  KEY_KP_Prior* = 0x0000FF9A
-  KEY_KP_Page_Up* = 0x0000FF9A
-  KEY_KP_Next* = 0x0000FF9B
-  KEY_KP_Page_Down* = 0x0000FF9B
-  KEY_KP_End* = 0x0000FF9C
-  KEY_KP_Begin* = 0x0000FF9D
-  KEY_KP_Insert* = 0x0000FF9E
-  KEY_KP_Delete* = 0x0000FF9F
-  KEY_KP_Equal* = 0x0000FFBD
-  KEY_KP_Multiply* = 0x0000FFAA
-  KEY_KP_Add* = 0x0000FFAB
-  KEY_KP_Separator* = 0x0000FFAC
-  KEY_KP_Subtract* = 0x0000FFAD
-  KEY_KP_Decimal* = 0x0000FFAE
-  KEY_KP_Divide* = 0x0000FFAF
-  KEY_KP_0* = 0x0000FFB0
-  KEY_KP_1* = 0x0000FFB1
-  KEY_KP_2* = 0x0000FFB2
-  KEY_KP_3* = 0x0000FFB3
-  KEY_KP_4* = 0x0000FFB4
-  KEY_KP_5* = 0x0000FFB5
-  KEY_KP_6* = 0x0000FFB6
-  KEY_KP_7* = 0x0000FFB7
-  KEY_KP_8* = 0x0000FFB8
-  KEY_KP_9* = 0x0000FFB9
-  KEY_F1* = 0x0000FFBE
-  KEY_F2* = 0x0000FFBF
-  KEY_F3* = 0x0000FFC0
-  KEY_F4* = 0x0000FFC1
-  KEY_F5* = 0x0000FFC2
-  KEY_F6* = 0x0000FFC3
-  KEY_F7* = 0x0000FFC4
-  KEY_F8* = 0x0000FFC5
-  KEY_F9* = 0x0000FFC6
-  KEY_F10* = 0x0000FFC7
-  KEY_F11* = 0x0000FFC8
-  KEY_L1* = 0x0000FFC8
-  KEY_F12* = 0x0000FFC9
-  KEY_L2* = 0x0000FFC9
-  KEY_F13* = 0x0000FFCA
-  KEY_L3* = 0x0000FFCA
-  KEY_F14* = 0x0000FFCB
-  KEY_L4* = 0x0000FFCB
-  KEY_F15* = 0x0000FFCC
-  KEY_L5* = 0x0000FFCC
-  KEY_F16* = 0x0000FFCD
-  KEY_L6* = 0x0000FFCD
-  KEY_F17* = 0x0000FFCE
-  KEY_L7* = 0x0000FFCE
-  KEY_F18* = 0x0000FFCF
-  KEY_L8* = 0x0000FFCF
-  KEY_F19* = 0x0000FFD0
-  KEY_L9* = 0x0000FFD0
-  KEY_F20* = 0x0000FFD1
-  KEY_L10* = 0x0000FFD1
-  KEY_F21* = 0x0000FFD2
-  KEY_R1* = 0x0000FFD2
-  KEY_F22* = 0x0000FFD3
-  KEY_R2* = 0x0000FFD3
-  KEY_F23* = 0x0000FFD4
-  KEY_R3* = 0x0000FFD4
-  KEY_F24* = 0x0000FFD5
-  KEY_R4* = 0x0000FFD5
-  KEY_F25* = 0x0000FFD6
-  KEY_R5* = 0x0000FFD6
-  KEY_F26* = 0x0000FFD7
-  KEY_R6* = 0x0000FFD7
-  KEY_F27* = 0x0000FFD8
-  KEY_R7* = 0x0000FFD8
-  KEY_F28* = 0x0000FFD9
-  KEY_R8* = 0x0000FFD9
-  KEY_F29* = 0x0000FFDA
-  KEY_R9* = 0x0000FFDA
-  KEY_F30* = 0x0000FFDB
-  KEY_R10* = 0x0000FFDB
-  KEY_F31* = 0x0000FFDC
-  KEY_R11* = 0x0000FFDC
-  KEY_F32* = 0x0000FFDD
-  KEY_R12* = 0x0000FFDD
-  KEY_F33* = 0x0000FFDE
-  KEY_R13* = 0x0000FFDE
-  KEY_F34* = 0x0000FFDF
-  KEY_R14* = 0x0000FFDF
-  KEY_F35* = 0x0000FFE0
-  KEY_R15* = 0x0000FFE0
-  KEY_Shift_L* = 0x0000FFE1
-  KEY_Shift_R* = 0x0000FFE2
-  KEY_Control_L* = 0x0000FFE3
-  KEY_Control_R* = 0x0000FFE4
-  KEY_Caps_Lock* = 0x0000FFE5
-  KEY_Shift_Lock* = 0x0000FFE6
-  KEY_Meta_L* = 0x0000FFE7
-  KEY_Meta_R* = 0x0000FFE8
-  KEY_Alt_L* = 0x0000FFE9
-  KEY_Alt_R* = 0x0000FFEA
-  KEY_Super_L* = 0x0000FFEB
-  KEY_Super_R* = 0x0000FFEC
-  KEY_Hyper_L* = 0x0000FFED
-  KEY_Hyper_R* = 0x0000FFEE
-  KEY_ISO_Lock* = 0x0000FE01
-  KEY_ISO_Level2_Latch* = 0x0000FE02
-  KEY_ISO_Level3_Shift* = 0x0000FE03
-  KEY_ISO_Level3_Latch* = 0x0000FE04
-  KEY_ISO_Level3_Lock* = 0x0000FE05
-  KEY_ISO_Group_Shift* = 0x0000FF7E
-  KEY_ISO_Group_Latch* = 0x0000FE06
-  KEY_ISO_Group_Lock* = 0x0000FE07
-  KEY_ISO_Next_Group* = 0x0000FE08
-  KEY_ISO_Next_Group_Lock* = 0x0000FE09
-  KEY_ISO_Prev_Group* = 0x0000FE0A
-  KEY_ISO_Prev_Group_Lock* = 0x0000FE0B
-  KEY_ISO_First_Group* = 0x0000FE0C
-  KEY_ISO_First_Group_Lock* = 0x0000FE0D
-  KEY_ISO_Last_Group* = 0x0000FE0E
-  KEY_ISO_Last_Group_Lock* = 0x0000FE0F
-  KEY_ISO_Left_Tab* = 0x0000FE20
-  KEY_ISO_Move_Line_Up* = 0x0000FE21
-  KEY_ISO_Move_Line_Down* = 0x0000FE22
-  KEY_ISO_Partial_Line_Up* = 0x0000FE23
-  KEY_ISO_Partial_Line_Down* = 0x0000FE24
-  KEY_ISO_Partial_Space_Left* = 0x0000FE25
-  KEY_ISO_Partial_Space_Right* = 0x0000FE26
-  KEY_ISO_Set_Margin_Left* = 0x0000FE27
-  KEY_ISO_Set_Margin_Right* = 0x0000FE28
-  KEY_ISO_Release_Margin_Left* = 0x0000FE29
-  KEY_ISO_Release_Margin_Right* = 0x0000FE2A
-  KEY_ISO_Release_Both_Margins* = 0x0000FE2B
-  KEY_ISO_Fast_Cursor_Left* = 0x0000FE2C
-  KEY_ISO_Fast_Cursor_Right* = 0x0000FE2D
-  KEY_ISO_Fast_Cursor_Up* = 0x0000FE2E
-  KEY_ISO_Fast_Cursor_Down* = 0x0000FE2F
-  KEY_ISO_Continuous_Underline* = 0x0000FE30
-  KEY_ISO_Discontinuous_Underline* = 0x0000FE31
-  KEY_ISO_Emphasize* = 0x0000FE32
-  KEY_ISO_Center_Object* = 0x0000FE33
-  KEY_ISO_Enter* = 0x0000FE34
-  KEY_dead_grave* = 0x0000FE50
-  KEY_dead_acute* = 0x0000FE51
-  KEY_dead_circumflex* = 0x0000FE52
-  KEY_dead_tilde* = 0x0000FE53
-  KEY_dead_macron* = 0x0000FE54
-  KEY_dead_breve* = 0x0000FE55
-  KEY_dead_abovedot* = 0x0000FE56
-  KEY_dead_diaeresis* = 0x0000FE57
-  KEY_dead_abovering* = 0x0000FE58
-  KEY_dead_doubleacute* = 0x0000FE59
-  KEY_dead_caron* = 0x0000FE5A
-  KEY_dead_cedilla* = 0x0000FE5B
-  KEY_dead_ogonek* = 0x0000FE5C
-  KEY_dead_iota* = 0x0000FE5D
-  KEY_dead_voiced_sound* = 0x0000FE5E
-  KEY_dead_semivoiced_sound* = 0x0000FE5F
-  KEY_dead_belowdot* = 0x0000FE60
-  KEY_First_Virtual_Screen* = 0x0000FED0
-  KEY_Prev_Virtual_Screen* = 0x0000FED1
-  KEY_Next_Virtual_Screen* = 0x0000FED2
-  KEY_Last_Virtual_Screen* = 0x0000FED4
-  KEY_Terminate_Server* = 0x0000FED5
-  KEY_AccessX_Enable* = 0x0000FE70
-  KEY_AccessX_Feedback_Enable* = 0x0000FE71
-  KEY_RepeatKeys_Enable* = 0x0000FE72
-  KEY_SlowKeys_Enable* = 0x0000FE73
-  KEY_BounceKeys_Enable* = 0x0000FE74
-  KEY_StickyKeys_Enable* = 0x0000FE75
-  KEY_MouseKeys_Enable* = 0x0000FE76
-  KEY_MouseKeys_Accel_Enable* = 0x0000FE77
-  KEY_Overlay1_Enable* = 0x0000FE78
-  KEY_Overlay2_Enable* = 0x0000FE79
-  KEY_AudibleBell_Enable* = 0x0000FE7A
-  KEY_Pointer_Left* = 0x0000FEE0
-  KEY_Pointer_Right* = 0x0000FEE1
-  KEY_Pointer_Up* = 0x0000FEE2
-  KEY_Pointer_Down* = 0x0000FEE3
-  KEY_Pointer_UpLeft* = 0x0000FEE4
-  KEY_Pointer_UpRight* = 0x0000FEE5
-  KEY_Pointer_DownLeft* = 0x0000FEE6
-  KEY_Pointer_DownRight* = 0x0000FEE7
-  KEY_Pointer_Button_Dflt* = 0x0000FEE8
-  KEY_Pointer_Button1* = 0x0000FEE9
-  KEY_Pointer_Button2* = 0x0000FEEA
-  KEY_Pointer_Button3* = 0x0000FEEB
-  KEY_Pointer_Button4* = 0x0000FEEC
-  KEY_Pointer_Button5* = 0x0000FEED
-  KEY_Pointer_DblClick_Dflt* = 0x0000FEEE
-  KEY_Pointer_DblClick1* = 0x0000FEEF
-  KEY_Pointer_DblClick2* = 0x0000FEF0
-  KEY_Pointer_DblClick3* = 0x0000FEF1
-  KEY_Pointer_DblClick4* = 0x0000FEF2
-  KEY_Pointer_DblClick5* = 0x0000FEF3
-  KEY_Pointer_Drag_Dflt* = 0x0000FEF4
-  KEY_Pointer_Drag1* = 0x0000FEF5
-  KEY_Pointer_Drag2* = 0x0000FEF6
-  KEY_Pointer_Drag3* = 0x0000FEF7
-  KEY_Pointer_Drag4* = 0x0000FEF8
-  KEY_Pointer_Drag5* = 0x0000FEFD
-  KEY_Pointer_EnableKeys* = 0x0000FEF9
-  KEY_Pointer_Accelerate* = 0x0000FEFA
-  KEY_Pointer_DfltBtnNext* = 0x0000FEFB
-  KEY_Pointer_DfltBtnPrev* = 0x0000FEFC
-  KEY_3270_Duplicate* = 0x0000FD01
-  KEY_3270_FieldMark* = 0x0000FD02
-  KEY_3270_Right2* = 0x0000FD03
-  KEY_3270_Left2* = 0x0000FD04
-  KEY_3270_BackTab* = 0x0000FD05
-  KEY_3270_EraseEOF* = 0x0000FD06
-  KEY_3270_EraseInput* = 0x0000FD07
-  KEY_3270_Reset* = 0x0000FD08
-  KEY_3270_Quit* = 0x0000FD09
-  KEY_3270_PA1* = 0x0000FD0A
-  KEY_3270_PA2* = 0x0000FD0B
-  KEY_3270_PA3* = 0x0000FD0C
-  KEY_3270_Test* = 0x0000FD0D
-  KEY_3270_Attn* = 0x0000FD0E
-  KEY_3270_CursorBlink* = 0x0000FD0F
-  KEY_3270_AltCursor* = 0x0000FD10
-  KEY_3270_KeyClick* = 0x0000FD11
-  KEY_3270_Jump* = 0x0000FD12
-  KEY_3270_Ident* = 0x0000FD13
-  KEY_3270_Rule* = 0x0000FD14
-  KEY_3270_Copy* = 0x0000FD15
-  KEY_3270_Play* = 0x0000FD16
-  KEY_3270_Setup* = 0x0000FD17
-  KEY_3270_Record* = 0x0000FD18
-  KEY_3270_ChangeScreen* = 0x0000FD19
-  KEY_3270_DeleteWord* = 0x0000FD1A
-  KEY_3270_ExSelect* = 0x0000FD1B
-  KEY_3270_CursorSelect* = 0x0000FD1C
-  KEY_3270_PrintScreen* = 0x0000FD1D
-  KEY_3270_Enter* = 0x0000FD1E
-  KEY_space* = 0x00000020
-  KEY_exclam* = 0x00000021
-  KEY_quotedbl* = 0x00000022
-  KEY_numbersign* = 0x00000023
-  KEY_dollar* = 0x00000024
-  KEY_percent* = 0x00000025
-  KEY_ampersand* = 0x00000026
-  KEY_apostrophe* = 0x00000027
-  KEY_quoteright* = 0x00000027
-  KEY_parenleft* = 0x00000028
-  KEY_parenright* = 0x00000029
-  KEY_asterisk* = 0x0000002A
-  KEY_plus* = 0x0000002B
-  KEY_comma* = 0x0000002C
-  KEY_minus* = 0x0000002D
-  KEY_period* = 0x0000002E
-  KEY_slash* = 0x0000002F
-  KEY_0* = 0x00000030
-  KEY_1* = 0x00000031
-  KEY_2* = 0x00000032
-  KEY_3* = 0x00000033
-  KEY_4* = 0x00000034
-  KEY_5* = 0x00000035
-  KEY_6* = 0x00000036
-  KEY_7* = 0x00000037
-  KEY_8* = 0x00000038
-  KEY_9* = 0x00000039
-  KEY_colon* = 0x0000003A
-  KEY_semicolon* = 0x0000003B
-  KEY_less* = 0x0000003C
-  KEY_equal* = 0x0000003D
-  KEY_greater* = 0x0000003E
-  KEY_question* = 0x0000003F
-  KEY_at* = 0x00000040
-  KEY_CAPITAL_A* = 0x00000041
-  KEY_CAPITAL_B* = 0x00000042
-  KEY_CAPITAL_C* = 0x00000043
-  KEY_CAPITAL_D* = 0x00000044
-  KEY_CAPITAL_E* = 0x00000045
-  KEY_CAPITAL_F* = 0x00000046
-  KEY_CAPITAL_G* = 0x00000047
-  KEY_CAPITAL_H* = 0x00000048
-  KEY_CAPITAL_I* = 0x00000049
-  KEY_CAPITAL_J* = 0x0000004A
-  KEY_CAPITAL_K* = 0x0000004B
-  KEY_CAPITAL_L* = 0x0000004C
-  KEY_CAPITAL_M* = 0x0000004D
-  KEY_CAPITAL_N* = 0x0000004E
-  KEY_CAPITAL_O* = 0x0000004F
-  KEY_CAPITAL_P* = 0x00000050
-  KEY_CAPITAL_Q* = 0x00000051
-  KEY_CAPITAL_R* = 0x00000052
-  KEY_CAPITAL_S* = 0x00000053
-  KEY_CAPITAL_T* = 0x00000054
-  KEY_CAPITAL_U* = 0x00000055
-  KEY_CAPITAL_V* = 0x00000056
-  KEY_CAPITAL_W* = 0x00000057
-  KEY_CAPITAL_X* = 0x00000058
-  KEY_CAPITAL_Y* = 0x00000059
-  KEY_CAPITAL_Z* = 0x0000005A
-  KEY_bracketleft* = 0x0000005B
-  KEY_backslash* = 0x0000005C
-  KEY_bracketright* = 0x0000005D
-  KEY_asciicircum* = 0x0000005E
-  KEY_underscore* = 0x0000005F
-  KEY_grave* = 0x00000060
-  KEY_quoteleft* = 0x00000060
-  KEY_a* = 0x00000061
-  KEY_b* = 0x00000062
-  KEY_c* = 0x00000063
-  KEY_d* = 0x00000064
-  KEY_e* = 0x00000065
-  KEY_f* = 0x00000066
-  KEY_g* = 0x00000067
-  KEY_h* = 0x00000068
-  KEY_i* = 0x00000069
-  KEY_j* = 0x0000006A
-  KEY_k* = 0x0000006B
-  KEY_l* = 0x0000006C
-  KEY_m* = 0x0000006D
-  KEY_n* = 0x0000006E
-  KEY_o* = 0x0000006F
-  KEY_p* = 0x00000070
-  KEY_q* = 0x00000071
-  KEY_r* = 0x00000072
-  KEY_s* = 0x00000073
-  KEY_t* = 0x00000074
-  KEY_u* = 0x00000075
-  KEY_v* = 0x00000076
-  KEY_w* = 0x00000077
-  KEY_x* = 0x00000078
-  KEY_y* = 0x00000079
-  KEY_z* = 0x0000007A
-  KEY_braceleft* = 0x0000007B
-  KEY_bar* = 0x0000007C
-  KEY_braceright* = 0x0000007D
-  KEY_asciitilde* = 0x0000007E
-  KEY_nobreakspace* = 0x000000A0
-  KEY_exclamdown* = 0x000000A1
-  KEY_cent* = 0x000000A2
-  KEY_sterling* = 0x000000A3
-  KEY_currency* = 0x000000A4
-  KEY_yen* = 0x000000A5
-  KEY_brokenbar* = 0x000000A6
-  KEY_section* = 0x000000A7
-  KEY_diaeresis* = 0x000000A8
-  KEY_copyright* = 0x000000A9
-  KEY_ordfeminine* = 0x000000AA
-  KEY_guillemotleft* = 0x000000AB
-  KEY_notsign* = 0x000000AC
-  KEY_hyphen* = 0x000000AD
-  KEY_registered* = 0x000000AE
-  KEY_macron* = 0x000000AF
-  KEY_degree* = 0x000000B0
-  KEY_plusminus* = 0x000000B1
-  KEY_twosuperior* = 0x000000B2
-  KEY_threesuperior* = 0x000000B3
-  KEY_acute* = 0x000000B4
-  KEY_mu* = 0x000000B5
-  KEY_paragraph* = 0x000000B6
-  KEY_periodcentered* = 0x000000B7
-  KEY_cedilla* = 0x000000B8
-  KEY_onesuperior* = 0x000000B9
-  KEY_masculine* = 0x000000BA
-  KEY_guillemotright* = 0x000000BB
-  KEY_onequarter* = 0x000000BC
-  KEY_onehalf* = 0x000000BD
-  KEY_threequarters* = 0x000000BE
-  KEY_questiondown* = 0x000000BF
-  KEY_CAPITAL_Agrave* = 0x000000C0
-  KEY_CAPITAL_Aacute* = 0x000000C1
-  KEY_CAPITAL_Acircumflex* = 0x000000C2
-  KEY_CAPITAL_Atilde* = 0x000000C3
-  KEY_CAPITAL_Adiaeresis* = 0x000000C4
-  KEY_CAPITAL_Aring* = 0x000000C5
-  KEY_CAPITAL_AE* = 0x000000C6
-  KEY_CAPITAL_Ccedilla* = 0x000000C7
-  KEY_CAPITAL_Egrave* = 0x000000C8
-  KEY_CAPITAL_Eacute* = 0x000000C9
-  KEY_CAPITAL_Ecircumflex* = 0x000000CA
-  KEY_CAPITAL_Ediaeresis* = 0x000000CB
-  KEY_CAPITAL_Igrave* = 0x000000CC
-  KEY_CAPITAL_Iacute* = 0x000000CD
-  KEY_CAPITAL_Icircumflex* = 0x000000CE
-  KEY_CAPITAL_Idiaeresis* = 0x000000CF
-  KEY_CAPITAL_ETH* = 0x000000D0
-  KEY_CAPITAL_Ntilde* = 0x000000D1
-  KEY_CAPITAL_Ograve* = 0x000000D2
-  KEY_CAPITAL_Oacute* = 0x000000D3
-  KEY_CAPITAL_Ocircumflex* = 0x000000D4
-  KEY_CAPITAL_Otilde* = 0x000000D5
-  KEY_CAPITAL_Odiaeresis* = 0x000000D6
-  KEY_multiply* = 0x000000D7
-  KEY_Ooblique* = 0x000000D8
-  KEY_CAPITAL_Ugrave* = 0x000000D9
-  KEY_CAPITAL_Uacute* = 0x000000DA
-  KEY_CAPITAL_Ucircumflex* = 0x000000DB
-  KEY_CAPITAL_Udiaeresis* = 0x000000DC
-  KEY_CAPITAL_Yacute* = 0x000000DD
-  KEY_CAPITAL_THORN* = 0x000000DE
-  KEY_ssharp* = 0x000000DF
-  KEY_agrave* = 0x000000E0
-  KEY_aacute* = 0x000000E1
-  KEY_acircumflex* = 0x000000E2
-  KEY_atilde* = 0x000000E3
-  KEY_adiaeresis* = 0x000000E4
-  KEY_aring* = 0x000000E5
-  KEY_ae* = 0x000000E6
-  KEY_ccedilla* = 0x000000E7
-  KEY_egrave* = 0x000000E8
-  KEY_eacute* = 0x000000E9
-  KEY_ecircumflex* = 0x000000EA
-  KEY_ediaeresis* = 0x000000EB
-  KEY_igrave* = 0x000000EC
-  KEY_iacute* = 0x000000ED
-  KEY_icircumflex* = 0x000000EE
-  KEY_idiaeresis* = 0x000000EF
-  KEY_eth* = 0x000000F0
-  KEY_ntilde* = 0x000000F1
-  KEY_ograve* = 0x000000F2
-  KEY_oacute* = 0x000000F3
-  KEY_ocircumflex* = 0x000000F4
-  KEY_otilde* = 0x000000F5
-  KEY_odiaeresis* = 0x000000F6
-  KEY_division* = 0x000000F7
-  KEY_oslash* = 0x000000F8
-  KEY_ugrave* = 0x000000F9
-  KEY_uacute* = 0x000000FA
-  KEY_ucircumflex* = 0x000000FB
-  KEY_udiaeresis* = 0x000000FC
-  KEY_yacute* = 0x000000FD
-  KEY_thorn* = 0x000000FE
-  KEY_ydiaeresis* = 0x000000FF
-  KEY_CAPITAL_Aogonek* = 0x000001A1
-  KEY_breve* = 0x000001A2
-  KEY_CAPITAL_Lstroke* = 0x000001A3
-  KEY_CAPITAL_Lcaron* = 0x000001A5
-  KEY_CAPITAL_Sacute* = 0x000001A6
-  KEY_CAPITAL_Scaron* = 0x000001A9
-  KEY_CAPITAL_Scedilla* = 0x000001AA
-  KEY_CAPITAL_Tcaron* = 0x000001AB
-  KEY_CAPITAL_Zacute* = 0x000001AC
-  KEY_CAPITAL_Zcaron* = 0x000001AE
-  KEY_CAPITAL_Zabovedot* = 0x000001AF
-  KEY_aogonek* = 0x000001B1
-  KEY_ogonek* = 0x000001B2
-  KEY_lstroke* = 0x000001B3
-  KEY_lcaron* = 0x000001B5
-  KEY_sacute* = 0x000001B6
-  KEY_caron* = 0x000001B7
-  KEY_scaron* = 0x000001B9
-  KEY_scedilla* = 0x000001BA
-  KEY_tcaron* = 0x000001BB
-  KEY_zacute* = 0x000001BC
-  KEY_doubleacute* = 0x000001BD
-  KEY_zcaron* = 0x000001BE
-  KEY_zabovedot* = 0x000001BF
-  KEY_CAPITAL_Racute* = 0x000001C0
-  KEY_CAPITAL_Abreve* = 0x000001C3
-  KEY_CAPITAL_Lacute* = 0x000001C5
-  KEY_CAPITAL_Cacute* = 0x000001C6
-  KEY_CAPITAL_Ccaron* = 0x000001C8
-  KEY_CAPITAL_Eogonek* = 0x000001CA
-  KEY_CAPITAL_Ecaron* = 0x000001CC
-  KEY_CAPITAL_Dcaron* = 0x000001CF
-  KEY_CAPITAL_Dstroke* = 0x000001D0
-  KEY_CAPITAL_Nacute* = 0x000001D1
-  KEY_CAPITAL_Ncaron* = 0x000001D2
-  KEY_CAPITAL_Odoubleacute* = 0x000001D5
-  KEY_CAPITAL_Rcaron* = 0x000001D8
-  KEY_CAPITAL_Uring* = 0x000001D9
-  KEY_CAPITAL_Udoubleacute* = 0x000001DB
-  KEY_CAPITAL_Tcedilla* = 0x000001DE
-  KEY_racute* = 0x000001E0
-  KEY_abreve* = 0x000001E3
-  KEY_lacute* = 0x000001E5
-  KEY_cacute* = 0x000001E6
-  KEY_ccaron* = 0x000001E8
-  KEY_eogonek* = 0x000001EA
-  KEY_ecaron* = 0x000001EC
-  KEY_dcaron* = 0x000001EF
-  KEY_dstroke* = 0x000001F0
-  KEY_nacute* = 0x000001F1
-  KEY_ncaron* = 0x000001F2
-  KEY_odoubleacute* = 0x000001F5
-  KEY_udoubleacute* = 0x000001FB
-  KEY_rcaron* = 0x000001F8
-  KEY_uring* = 0x000001F9
-  KEY_tcedilla* = 0x000001FE
-  KEY_abovedot* = 0x000001FF
-  KEY_CAPITAL_Hstroke* = 0x000002A1
-  KEY_CAPITAL_Hcircumflex* = 0x000002A6
-  KEY_CAPITAL_Iabovedot* = 0x000002A9
-  KEY_CAPITAL_Gbreve* = 0x000002AB
-  KEY_CAPITAL_Jcircumflex* = 0x000002AC
-  KEY_hstroke* = 0x000002B1
-  KEY_hcircumflex* = 0x000002B6
-  KEY_idotless* = 0x000002B9
-  KEY_gbreve* = 0x000002BB
-  KEY_jcircumflex* = 0x000002BC
-  KEY_CAPITAL_Cabovedot* = 0x000002C5
-  KEY_CAPITAL_Ccircumflex* = 0x000002C6
-  KEY_CAPITAL_Gabovedot* = 0x000002D5
-  KEY_CAPITAL_Gcircumflex* = 0x000002D8
-  KEY_CAPITAL_Ubreve* = 0x000002DD
-  KEY_CAPITAL_Scircumflex* = 0x000002DE
-  KEY_cabovedot* = 0x000002E5
-  KEY_ccircumflex* = 0x000002E6
-  KEY_gabovedot* = 0x000002F5
-  KEY_gcircumflex* = 0x000002F8
-  KEY_ubreve* = 0x000002FD
-  KEY_scircumflex* = 0x000002FE
-  KEY_kra* = 0x000003A2
-  KEY_kappa* = 0x000003A2
-  KEY_CAPITAL_Rcedilla* = 0x000003A3
-  KEY_CAPITAL_Itilde* = 0x000003A5
-  KEY_CAPITAL_Lcedilla* = 0x000003A6
-  KEY_CAPITAL_Emacron* = 0x000003AA
-  KEY_CAPITAL_Gcedilla* = 0x000003AB
-  KEY_CAPITAL_Tslash* = 0x000003AC
-  KEY_rcedilla* = 0x000003B3
-  KEY_itilde* = 0x000003B5
-  KEY_lcedilla* = 0x000003B6
-  KEY_emacron* = 0x000003BA
-  KEY_gcedilla* = 0x000003BB
-  KEY_tslash* = 0x000003BC
-  KEY_CAPITAL_ENG* = 0x000003BD
-  KEY_eng* = 0x000003BF
-  KEY_CAPITAL_Amacron* = 0x000003C0
-  KEY_CAPITAL_Iogonek* = 0x000003C7
-  KEY_CAPITAL_Eabovedot* = 0x000003CC
-  KEY_CAPITAL_Imacron* = 0x000003CF
-  KEY_CAPITAL_Ncedilla* = 0x000003D1
-  KEY_CAPITAL_Omacron* = 0x000003D2
-  KEY_CAPITAL_Kcedilla* = 0x000003D3
-  KEY_CAPITAL_Uogonek* = 0x000003D9
-  KEY_CAPITAL_Utilde* = 0x000003DD
-  KEY_CAPITAL_Umacron* = 0x000003DE
-  KEY_amacron* = 0x000003E0
-  KEY_iogonek* = 0x000003E7
-  KEY_eabovedot* = 0x000003EC
-  KEY_imacron* = 0x000003EF
-  KEY_ncedilla* = 0x000003F1
-  KEY_omacron* = 0x000003F2
-  KEY_kcedilla* = 0x000003F3
-  KEY_uogonek* = 0x000003F9
-  KEY_utilde* = 0x000003FD
-  KEY_umacron* = 0x000003FE
-  KEY_CAPITAL_OE* = 0x000013BC
-  KEY_oe* = 0x000013BD
-  KEY_CAPITAL_Ydiaeresis* = 0x000013BE
-  KEY_overline* = 0x0000047E
-  KEY_kana_fullstop* = 0x000004A1
-  KEY_kana_openingbracket* = 0x000004A2
-  KEY_kana_closingbracket* = 0x000004A3
-  KEY_kana_comma* = 0x000004A4
-  KEY_kana_conjunctive* = 0x000004A5
-  KEY_kana_middledot* = 0x000004A5
-  KEY_kana_WO* = 0x000004A6
-  KEY_kana_a* = 0x000004A7
-  KEY_kana_i* = 0x000004A8
-  KEY_kana_u* = 0x000004A9
-  KEY_kana_e* = 0x000004AA
-  KEY_kana_o* = 0x000004AB
-  KEY_kana_ya* = 0x000004AC
-  KEY_kana_yu* = 0x000004AD
-  KEY_kana_yo* = 0x000004AE
-  KEY_kana_tsu* = 0x000004AF
-  KEY_kana_tu* = 0x000004AF
-  KEY_prolongedsound* = 0x000004B0
-  KEY_kana_CAPITAL_A* = 0x000004B1
-  KEY_kana_CAPITAL_I* = 0x000004B2
-  KEY_kana_CAPITAL_U* = 0x000004B3
-  KEY_kana_CAPITAL_E* = 0x000004B4
-  KEY_kana_CAPITAL_O* = 0x000004B5
-  KEY_kana_KA* = 0x000004B6
-  KEY_kana_KI* = 0x000004B7
-  KEY_kana_KU* = 0x000004B8
-  KEY_kana_KE* = 0x000004B9
-  KEY_kana_KO* = 0x000004BA
-  KEY_kana_SA* = 0x000004BB
-  KEY_kana_SHI* = 0x000004BC
-  KEY_kana_SU* = 0x000004BD
-  KEY_kana_SE* = 0x000004BE
-  KEY_kana_SO* = 0x000004BF
-  KEY_kana_TA* = 0x000004C0
-  KEY_kana_CHI* = 0x000004C1
-  KEY_kana_TI* = 0x000004C1
-  KEY_kana_CAPITAL_TSU* = 0x000004C2
-  KEY_kana_CAPITAL_TU* = 0x000004C2
-  KEY_kana_TE* = 0x000004C3
-  KEY_kana_TO* = 0x000004C4
-  KEY_kana_NA* = 0x000004C5
-  KEY_kana_NI* = 0x000004C6
-  KEY_kana_NU* = 0x000004C7
-  KEY_kana_NE* = 0x000004C8
-  KEY_kana_NO* = 0x000004C9
-  KEY_kana_HA* = 0x000004CA
-  KEY_kana_HI* = 0x000004CB
-  KEY_kana_FU* = 0x000004CC
-  KEY_kana_HU* = 0x000004CC
-  KEY_kana_HE* = 0x000004CD
-  KEY_kana_HO* = 0x000004CE
-  KEY_kana_MA* = 0x000004CF
-  KEY_kana_MI* = 0x000004D0
-  KEY_kana_MU* = 0x000004D1
-  KEY_kana_ME* = 0x000004D2
-  KEY_kana_MO* = 0x000004D3
-  KEY_kana_CAPITAL_YA* = 0x000004D4
-  KEY_kana_CAPITAL_YU* = 0x000004D5
-  KEY_kana_CAPITAL_YO* = 0x000004D6
-  KEY_kana_RA* = 0x000004D7
-  KEY_kana_RI* = 0x000004D8
-  KEY_kana_RU* = 0x000004D9
-  KEY_kana_RE* = 0x000004DA
-  KEY_kana_RO* = 0x000004DB
-  KEY_kana_WA* = 0x000004DC
-  KEY_kana_N* = 0x000004DD
-  KEY_voicedsound* = 0x000004DE
-  KEY_semivoicedsound* = 0x000004DF
-  KEY_kana_switch* = 0x0000FF7E
-  KEY_Arabic_comma* = 0x000005AC
-  KEY_Arabic_semicolon* = 0x000005BB
-  KEY_Arabic_question_mark* = 0x000005BF
-  KEY_Arabic_hamza* = 0x000005C1
-  KEY_Arabic_maddaonalef* = 0x000005C2
-  KEY_Arabic_hamzaonalef* = 0x000005C3
-  KEY_Arabic_hamzaonwaw* = 0x000005C4
-  KEY_Arabic_hamzaunderalef* = 0x000005C5
-  KEY_Arabic_hamzaonyeh* = 0x000005C6
-  KEY_Arabic_alef* = 0x000005C7
-  KEY_Arabic_beh* = 0x000005C8
-  KEY_Arabic_tehmarbuta* = 0x000005C9
-  KEY_Arabic_teh* = 0x000005CA
-  KEY_Arabic_theh* = 0x000005CB
-  KEY_Arabic_jeem* = 0x000005CC
-  KEY_Arabic_hah* = 0x000005CD
-  KEY_Arabic_khah* = 0x000005CE
-  KEY_Arabic_dal* = 0x000005CF
-  KEY_Arabic_thal* = 0x000005D0
-  KEY_Arabic_ra* = 0x000005D1
-  KEY_Arabic_zain* = 0x000005D2
-  KEY_Arabic_seen* = 0x000005D3
-  KEY_Arabic_sheen* = 0x000005D4
-  KEY_Arabic_sad* = 0x000005D5
-  KEY_Arabic_dad* = 0x000005D6
-  KEY_Arabic_tah* = 0x000005D7
-  KEY_Arabic_zah* = 0x000005D8
-  KEY_Arabic_ain* = 0x000005D9
-  KEY_Arabic_ghain* = 0x000005DA
-  KEY_Arabic_tatweel* = 0x000005E0
-  KEY_Arabic_feh* = 0x000005E1
-  KEY_Arabic_qaf* = 0x000005E2
-  KEY_Arabic_kaf* = 0x000005E3
-  KEY_Arabic_lam* = 0x000005E4
-  KEY_Arabic_meem* = 0x000005E5
-  KEY_Arabic_noon* = 0x000005E6
-  KEY_Arabic_ha* = 0x000005E7
-  KEY_Arabic_heh* = 0x000005E7
-  KEY_Arabic_waw* = 0x000005E8
-  KEY_Arabic_alefmaksura* = 0x000005E9
-  KEY_Arabic_yeh* = 0x000005EA
-  KEY_Arabic_fathatan* = 0x000005EB
-  KEY_Arabic_dammatan* = 0x000005EC
-  KEY_Arabic_kasratan* = 0x000005ED
-  KEY_Arabic_fatha* = 0x000005EE
-  KEY_Arabic_damma* = 0x000005EF
-  KEY_Arabic_kasra* = 0x000005F0
-  KEY_Arabic_shadda* = 0x000005F1
-  KEY_Arabic_sukun* = 0x000005F2
-  KEY_Arabic_switch* = 0x0000FF7E
-  KEY_Serbian_dje* = 0x000006A1
-  KEY_Macedonia_gje* = 0x000006A2
-  KEY_Cyrillic_io* = 0x000006A3
-  KEY_Ukrainian_ie* = 0x000006A4
-  KEY_Ukranian_je* = 0x000006A4
-  KEY_Macedonia_dse* = 0x000006A5
-  KEY_Ukrainian_i* = 0x000006A6
-  KEY_Ukranian_i* = 0x000006A6
-  KEY_Ukrainian_yi* = 0x000006A7
-  KEY_Ukranian_yi* = 0x000006A7
-  KEY_Cyrillic_je* = 0x000006A8
-  KEY_Serbian_je* = 0x000006A8
-  KEY_Cyrillic_lje* = 0x000006A9
-  KEY_Serbian_lje* = 0x000006A9
-  KEY_Cyrillic_nje* = 0x000006AA
-  KEY_Serbian_nje* = 0x000006AA
-  KEY_Serbian_tshe* = 0x000006AB
-  KEY_Macedonia_kje* = 0x000006AC
-  KEY_Byelorussian_shortu* = 0x000006AE
-  KEY_Cyrillic_dzhe* = 0x000006AF
-  KEY_Serbian_dze* = 0x000006AF
-  KEY_numerosign* = 0x000006B0
-  KEY_Serbian_CAPITAL_DJE* = 0x000006B1
-  KEY_Macedonia_CAPITAL_GJE* = 0x000006B2
-  KEY_Cyrillic_CAPITAL_IO* = 0x000006B3
-  KEY_Ukrainian_CAPITAL_IE* = 0x000006B4
-  KEY_Ukranian_CAPITAL_JE* = 0x000006B4
-  KEY_Macedonia_CAPITAL_DSE* = 0x000006B5
-  KEY_Ukrainian_CAPITAL_I* = 0x000006B6
-  KEY_Ukranian_CAPITAL_I* = 0x000006B6
-  KEY_Ukrainian_CAPITAL_YI* = 0x000006B7
-  KEY_Ukranian_CAPITAL_YI* = 0x000006B7
-  KEY_Cyrillic_CAPITAL_JE* = 0x000006B8
-  KEY_Serbian_CAPITAL_JE* = 0x000006B8
-  KEY_Cyrillic_CAPITAL_LJE* = 0x000006B9
-  KEY_Serbian_CAPITAL_LJE* = 0x000006B9
-  KEY_Cyrillic_CAPITAL_NJE* = 0x000006BA
-  KEY_Serbian_CAPITAL_NJE* = 0x000006BA
-  KEY_Serbian_CAPITAL_TSHE* = 0x000006BB
-  KEY_Macedonia_CAPITAL_KJE* = 0x000006BC
-  KEY_Byelorussian_CAPITAL_SHORTU* = 0x000006BE
-  KEY_Cyrillic_CAPITAL_DZHE* = 0x000006BF
-  KEY_Serbian_CAPITAL_DZE* = 0x000006BF
-  KEY_Cyrillic_yu* = 0x000006C0
-  KEY_Cyrillic_a* = 0x000006C1
-  KEY_Cyrillic_be* = 0x000006C2
-  KEY_Cyrillic_tse* = 0x000006C3
-  KEY_Cyrillic_de* = 0x000006C4
-  KEY_Cyrillic_ie* = 0x000006C5
-  KEY_Cyrillic_ef* = 0x000006C6
-  KEY_Cyrillic_ghe* = 0x000006C7
-  KEY_Cyrillic_ha* = 0x000006C8
-  KEY_Cyrillic_i* = 0x000006C9
-  KEY_Cyrillic_shorti* = 0x000006CA
-  KEY_Cyrillic_ka* = 0x000006CB
-  KEY_Cyrillic_el* = 0x000006CC
-  KEY_Cyrillic_em* = 0x000006CD
-  KEY_Cyrillic_en* = 0x000006CE
-  KEY_Cyrillic_o* = 0x000006CF
-  KEY_Cyrillic_pe* = 0x000006D0
-  KEY_Cyrillic_ya* = 0x000006D1
-  KEY_Cyrillic_er* = 0x000006D2
-  KEY_Cyrillic_es* = 0x000006D3
-  KEY_Cyrillic_te* = 0x000006D4
-  KEY_Cyrillic_u* = 0x000006D5
-  KEY_Cyrillic_zhe* = 0x000006D6
-  KEY_Cyrillic_ve* = 0x000006D7
-  KEY_Cyrillic_softsign* = 0x000006D8
-  KEY_Cyrillic_yeru* = 0x000006D9
-  KEY_Cyrillic_ze* = 0x000006DA
-  KEY_Cyrillic_sha* = 0x000006DB
-  KEY_Cyrillic_e* = 0x000006DC
-  KEY_Cyrillic_shcha* = 0x000006DD
-  KEY_Cyrillic_che* = 0x000006DE
-  KEY_Cyrillic_hardsign* = 0x000006DF
-  KEY_Cyrillic_CAPITAL_YU* = 0x000006E0
-  KEY_Cyrillic_CAPITAL_A* = 0x000006E1
-  KEY_Cyrillic_CAPITAL_BE* = 0x000006E2
-  KEY_Cyrillic_CAPITAL_TSE* = 0x000006E3
-  KEY_Cyrillic_CAPITAL_DE* = 0x000006E4
-  KEY_Cyrillic_CAPITAL_IE* = 0x000006E5
-  KEY_Cyrillic_CAPITAL_EF* = 0x000006E6
-  KEY_Cyrillic_CAPITAL_GHE* = 0x000006E7
-  KEY_Cyrillic_CAPITAL_HA* = 0x000006E8
-  KEY_Cyrillic_CAPITAL_I* = 0x000006E9
-  KEY_Cyrillic_CAPITAL_SHORTI* = 0x000006EA
-  KEY_Cyrillic_CAPITAL_KA* = 0x000006EB
-  KEY_Cyrillic_CAPITAL_EL* = 0x000006EC
-  KEY_Cyrillic_CAPITAL_EM* = 0x000006ED
-  KEY_Cyrillic_CAPITAL_EN* = 0x000006EE
-  KEY_Cyrillic_CAPITAL_O* = 0x000006EF
-  KEY_Cyrillic_CAPITAL_PE* = 0x000006F0
-  KEY_Cyrillic_CAPITAL_YA* = 0x000006F1
-  KEY_Cyrillic_CAPITAL_ER* = 0x000006F2
-  KEY_Cyrillic_CAPITAL_ES* = 0x000006F3
-  KEY_Cyrillic_CAPITAL_TE* = 0x000006F4
-  KEY_Cyrillic_CAPITAL_U* = 0x000006F5
-  KEY_Cyrillic_CAPITAL_ZHE* = 0x000006F6
-  KEY_Cyrillic_CAPITAL_VE* = 0x000006F7
-  KEY_Cyrillic_CAPITAL_SOFTSIGN* = 0x000006F8
-  KEY_Cyrillic_CAPITAL_YERU* = 0x000006F9
-  KEY_Cyrillic_CAPITAL_ZE* = 0x000006FA
-  KEY_Cyrillic_CAPITAL_SHA* = 0x000006FB
-  KEY_Cyrillic_CAPITAL_E* = 0x000006FC
-  KEY_Cyrillic_CAPITAL_SHCHA* = 0x000006FD
-  KEY_Cyrillic_CAPITAL_CHE* = 0x000006FE
-  KEY_Cyrillic_CAPITAL_HARDSIGN* = 0x000006FF
-  KEY_Greek_CAPITAL_ALPHAaccent* = 0x000007A1
-  KEY_Greek_CAPITAL_EPSILONaccent* = 0x000007A2
-  KEY_Greek_CAPITAL_ETAaccent* = 0x000007A3
-  KEY_Greek_CAPITAL_IOTAaccent* = 0x000007A4
-  KEY_Greek_CAPITAL_IOTAdiaeresis* = 0x000007A5
-  KEY_Greek_CAPITAL_OMICRONaccent* = 0x000007A7
-  KEY_Greek_CAPITAL_UPSILONaccent* = 0x000007A8
-  KEY_Greek_CAPITAL_UPSILONdieresis* = 0x000007A9
-  KEY_Greek_CAPITAL_OMEGAaccent* = 0x000007AB
-  KEY_Greek_accentdieresis* = 0x000007AE
-  KEY_Greek_horizbar* = 0x000007AF
-  KEY_Greek_alphaaccent* = 0x000007B1
-  KEY_Greek_epsilonaccent* = 0x000007B2
-  KEY_Greek_etaaccent* = 0x000007B3
-  KEY_Greek_iotaaccent* = 0x000007B4
-  KEY_Greek_iotadieresis* = 0x000007B5
-  KEY_Greek_iotaaccentdieresis* = 0x000007B6
-  KEY_Greek_omicronaccent* = 0x000007B7
-  KEY_Greek_upsilonaccent* = 0x000007B8
-  KEY_Greek_upsilondieresis* = 0x000007B9
-  KEY_Greek_upsilonaccentdieresis* = 0x000007BA
-  KEY_Greek_omegaaccent* = 0x000007BB
-  KEY_Greek_CAPITAL_ALPHA* = 0x000007C1
-  KEY_Greek_CAPITAL_BETA* = 0x000007C2
-  KEY_Greek_CAPITAL_GAMMA* = 0x000007C3
-  KEY_Greek_CAPITAL_DELTA* = 0x000007C4
-  KEY_Greek_CAPITAL_EPSILON* = 0x000007C5
-  KEY_Greek_CAPITAL_ZETA* = 0x000007C6
-  KEY_Greek_CAPITAL_ETA* = 0x000007C7
-  KEY_Greek_CAPITAL_THETA* = 0x000007C8
-  KEY_Greek_CAPITAL_IOTA* = 0x000007C9
-  KEY_Greek_CAPITAL_KAPPA* = 0x000007CA
-  KEY_Greek_CAPITAL_LAMDA* = 0x000007CB
-  KEY_Greek_CAPITAL_LAMBDA* = 0x000007CB
-  KEY_Greek_CAPITAL_MU* = 0x000007CC
-  KEY_Greek_CAPITAL_NU* = 0x000007CD
-  KEY_Greek_CAPITAL_XI* = 0x000007CE
-  KEY_Greek_CAPITAL_OMICRON* = 0x000007CF
-  KEY_Greek_CAPITAL_PI* = 0x000007D0
-  KEY_Greek_CAPITAL_RHO* = 0x000007D1
-  KEY_Greek_CAPITAL_SIGMA* = 0x000007D2
-  KEY_Greek_CAPITAL_TAU* = 0x000007D4
-  KEY_Greek_CAPITAL_UPSILON* = 0x000007D5
-  KEY_Greek_CAPITAL_PHI* = 0x000007D6
-  KEY_Greek_CAPITAL_CHI* = 0x000007D7
-  KEY_Greek_CAPITAL_PSI* = 0x000007D8
-  KEY_Greek_CAPITAL_OMEGA* = 0x000007D9
-  KEY_Greek_alpha* = 0x000007E1
-  KEY_Greek_beta* = 0x000007E2
-  KEY_Greek_gamma* = 0x000007E3
-  KEY_Greek_delta* = 0x000007E4
-  KEY_Greek_epsilon* = 0x000007E5
-  KEY_Greek_zeta* = 0x000007E6
-  KEY_Greek_eta* = 0x000007E7
-  KEY_Greek_theta* = 0x000007E8
-  KEY_Greek_iota* = 0x000007E9
-  KEY_Greek_kappa* = 0x000007EA
-  KEY_Greek_lamda* = 0x000007EB
-  KEY_Greek_lambda* = 0x000007EB
-  KEY_Greek_mu* = 0x000007EC
-  KEY_Greek_nu* = 0x000007ED
-  KEY_Greek_xi* = 0x000007EE
-  KEY_Greek_omicron* = 0x000007EF
-  KEY_Greek_pi* = 0x000007F0
-  KEY_Greek_rho* = 0x000007F1
-  KEY_Greek_sigma* = 0x000007F2
-  KEY_Greek_finalsmallsigma* = 0x000007F3
-  KEY_Greek_tau* = 0x000007F4
-  KEY_Greek_upsilon* = 0x000007F5
-  KEY_Greek_phi* = 0x000007F6
-  KEY_Greek_chi* = 0x000007F7
-  KEY_Greek_psi* = 0x000007F8
-  KEY_Greek_omega* = 0x000007F9
-  KEY_Greek_switch* = 0x0000FF7E
-  KEY_leftradical* = 0x000008A1
-  KEY_topleftradical* = 0x000008A2
-  KEY_horizconnector* = 0x000008A3
-  KEY_topintegral* = 0x000008A4
-  KEY_botintegral* = 0x000008A5
-  KEY_vertconnector* = 0x000008A6
-  KEY_topleftsqbracket* = 0x000008A7
-  KEY_botleftsqbracket* = 0x000008A8
-  KEY_toprightsqbracket* = 0x000008A9
-  KEY_botrightsqbracket* = 0x000008AA
-  KEY_topleftparens* = 0x000008AB
-  KEY_botleftparens* = 0x000008AC
-  KEY_toprightparens* = 0x000008AD
-  KEY_botrightparens* = 0x000008AE
-  KEY_leftmiddlecurlybrace* = 0x000008AF
-  KEY_rightmiddlecurlybrace* = 0x000008B0
-  KEY_topleftsummation* = 0x000008B1
-  KEY_botleftsummation* = 0x000008B2
-  KEY_topvertsummationconnector* = 0x000008B3
-  KEY_botvertsummationconnector* = 0x000008B4
-  KEY_toprightsummation* = 0x000008B5
-  KEY_botrightsummation* = 0x000008B6
-  KEY_rightmiddlesummation* = 0x000008B7
-  KEY_lessthanequal* = 0x000008BC
-  KEY_notequal* = 0x000008BD
-  KEY_greaterthanequal* = 0x000008BE
-  KEY_integral* = 0x000008BF
-  KEY_therefore* = 0x000008C0
-  KEY_variation* = 0x000008C1
-  KEY_infinity* = 0x000008C2
-  KEY_nabla* = 0x000008C5
-  KEY_approximate* = 0x000008C8
-  KEY_similarequal* = 0x000008C9
-  KEY_ifonlyif* = 0x000008CD
-  KEY_implies* = 0x000008CE
-  KEY_identical* = 0x000008CF
-  KEY_radical* = 0x000008D6
-  KEY_includedin* = 0x000008DA
-  KEY_includes* = 0x000008DB
-  KEY_intersection* = 0x000008DC
-  KEY_union* = 0x000008DD
-  KEY_logicaland* = 0x000008DE
-  KEY_logicalor* = 0x000008DF
-  KEY_partialderivative* = 0x000008EF
-  KEY_function* = 0x000008F6
-  KEY_leftarrow* = 0x000008FB
-  KEY_uparrow* = 0x000008FC
-  KEY_rightarrow* = 0x000008FD
-  KEY_downarrow* = 0x000008FE
-  KEY_blank* = 0x000009DF
-  KEY_soliddiamond* = 0x000009E0
-  KEY_checkerboard* = 0x000009E1
-  KEY_ht* = 0x000009E2
-  KEY_ff* = 0x000009E3
-  KEY_cr* = 0x000009E4
-  KEY_lf* = 0x000009E5
-  KEY_nl* = 0x000009E8
-  KEY_vt* = 0x000009E9
-  KEY_lowrightcorner* = 0x000009EA
-  KEY_uprightcorner* = 0x000009EB
-  KEY_upleftcorner* = 0x000009EC
-  KEY_lowleftcorner* = 0x000009ED
-  KEY_crossinglines* = 0x000009EE
-  KEY_horizlinescan1* = 0x000009EF
-  KEY_horizlinescan3* = 0x000009F0
-  KEY_horizlinescan5* = 0x000009F1
-  KEY_horizlinescan7* = 0x000009F2
-  KEY_horizlinescan9* = 0x000009F3
-  KEY_leftt* = 0x000009F4
-  KEY_rightt* = 0x000009F5
-  KEY_bott* = 0x000009F6
-  KEY_topt* = 0x000009F7
-  KEY_vertbar* = 0x000009F8
-  KEY_emspace* = 0x00000AA1
-  KEY_enspace* = 0x00000AA2
-  KEY_em3space* = 0x00000AA3
-  KEY_em4space* = 0x00000AA4
-  KEY_digitspace* = 0x00000AA5
-  KEY_punctspace* = 0x00000AA6
-  KEY_thinspace* = 0x00000AA7
-  KEY_hairspace* = 0x00000AA8
-  KEY_emdash* = 0x00000AA9
-  KEY_endash* = 0x00000AAA
-  KEY_signifblank* = 0x00000AAC
-  KEY_ellipsis* = 0x00000AAE
-  KEY_doubbaselinedot* = 0x00000AAF
-  KEY_onethird* = 0x00000AB0
-  KEY_twothirds* = 0x00000AB1
-  KEY_onefifth* = 0x00000AB2
-  KEY_twofifths* = 0x00000AB3
-  KEY_threefifths* = 0x00000AB4
-  KEY_fourfifths* = 0x00000AB5
-  KEY_onesixth* = 0x00000AB6
-  KEY_fivesixths* = 0x00000AB7
-  KEY_careof* = 0x00000AB8
-  KEY_figdash* = 0x00000ABB
-  KEY_leftanglebracket* = 0x00000ABC
-  KEY_decimalpoint* = 0x00000ABD
-  KEY_rightanglebracket* = 0x00000ABE
-  KEY_marker* = 0x00000ABF
-  KEY_oneeighth* = 0x00000AC3
-  KEY_threeeighths* = 0x00000AC4
-  KEY_fiveeighths* = 0x00000AC5
-  KEY_seveneighths* = 0x00000AC6
-  KEY_trademark* = 0x00000AC9
-  KEY_signaturemark* = 0x00000ACA
-  KEY_trademarkincircle* = 0x00000ACB
-  KEY_leftopentriangle* = 0x00000ACC
-  KEY_rightopentriangle* = 0x00000ACD
-  KEY_emopencircle* = 0x00000ACE
-  KEY_emopenrectangle* = 0x00000ACF
-  KEY_leftsinglequotemark* = 0x00000AD0
-  KEY_rightsinglequotemark* = 0x00000AD1
-  KEY_leftdoublequotemark* = 0x00000AD2
-  KEY_rightdoublequotemark* = 0x00000AD3
-  KEY_prescription* = 0x00000AD4
-  KEY_minutes* = 0x00000AD6
-  KEY_seconds* = 0x00000AD7
-  KEY_latincross* = 0x00000AD9
-  KEY_hexagram* = 0x00000ADA
-  KEY_filledrectbullet* = 0x00000ADB
-  KEY_filledlefttribullet* = 0x00000ADC
-  KEY_filledrighttribullet* = 0x00000ADD
-  KEY_emfilledcircle* = 0x00000ADE
-  KEY_emfilledrect* = 0x00000ADF
-  KEY_enopencircbullet* = 0x00000AE0
-  KEY_enopensquarebullet* = 0x00000AE1
-  KEY_openrectbullet* = 0x00000AE2
-  KEY_opentribulletup* = 0x00000AE3
-  KEY_opentribulletdown* = 0x00000AE4
-  KEY_openstar* = 0x00000AE5
-  KEY_enfilledcircbullet* = 0x00000AE6
-  KEY_enfilledsqbullet* = 0x00000AE7
-  KEY_filledtribulletup* = 0x00000AE8
-  KEY_filledtribulletdown* = 0x00000AE9
-  KEY_leftpointer* = 0x00000AEA
-  KEY_rightpointer* = 0x00000AEB
-  KEY_club* = 0x00000AEC
-  KEY_diamond* = 0x00000AED
-  KEY_heart* = 0x00000AEE
-  KEY_maltesecross* = 0x00000AF0
-  KEY_dagger* = 0x00000AF1
-  KEY_doubledagger* = 0x00000AF2
-  KEY_checkmark* = 0x00000AF3
-  KEY_ballotcross* = 0x00000AF4
-  KEY_musicalsharp* = 0x00000AF5
-  KEY_musicalflat* = 0x00000AF6
-  KEY_malesymbol* = 0x00000AF7
-  KEY_femalesymbol* = 0x00000AF8
-  KEY_telephone* = 0x00000AF9
-  KEY_telephonerecorder* = 0x00000AFA
-  KEY_phonographcopyright* = 0x00000AFB
-  KEY_caret* = 0x00000AFC
-  KEY_singlelowquotemark* = 0x00000AFD
-  KEY_doublelowquotemark* = 0x00000AFE
-  KEY_cursor* = 0x00000AFF
-  KEY_leftcaret* = 0x00000BA3
-  KEY_rightcaret* = 0x00000BA6
-  KEY_downcaret* = 0x00000BA8
-  KEY_upcaret* = 0x00000BA9
-  KEY_overbar* = 0x00000BC0
-  KEY_downtack* = 0x00000BC2
-  KEY_upshoe* = 0x00000BC3
-  KEY_downstile* = 0x00000BC4
-  KEY_underbar* = 0x00000BC6
-  KEY_jot* = 0x00000BCA
-  KEY_quad* = 0x00000BCC
-  KEY_uptack* = 0x00000BCE
-  KEY_circle* = 0x00000BCF
-  KEY_upstile* = 0x00000BD3
-  KEY_downshoe* = 0x00000BD6
-  KEY_rightshoe* = 0x00000BD8
-  KEY_leftshoe* = 0x00000BDA
-  KEY_lefttack* = 0x00000BDC
-  KEY_righttack* = 0x00000BFC
-  KEY_hebrew_doublelowline* = 0x00000CDF
-  KEY_hebrew_aleph* = 0x00000CE0
-  KEY_hebrew_bet* = 0x00000CE1
-  KEY_hebrew_beth* = 0x00000CE1
-  KEY_hebrew_gimel* = 0x00000CE2
-  KEY_hebrew_gimmel* = 0x00000CE2
-  KEY_hebrew_dalet* = 0x00000CE3
-  KEY_hebrew_daleth* = 0x00000CE3
-  KEY_hebrew_he* = 0x00000CE4
-  KEY_hebrew_waw* = 0x00000CE5
-  KEY_hebrew_zain* = 0x00000CE6
-  KEY_hebrew_zayin* = 0x00000CE6
-  KEY_hebrew_chet* = 0x00000CE7
-  KEY_hebrew_het* = 0x00000CE7
-  KEY_hebrew_tet* = 0x00000CE8
-  KEY_hebrew_teth* = 0x00000CE8
-  KEY_hebrew_yod* = 0x00000CE9
-  KEY_hebrew_finalkaph* = 0x00000CEA
-  KEY_hebrew_kaph* = 0x00000CEB
-  KEY_hebrew_lamed* = 0x00000CEC
-  KEY_hebrew_finalmem* = 0x00000CED
-  KEY_hebrew_mem* = 0x00000CEE
-  KEY_hebrew_finalnun* = 0x00000CEF
-  KEY_hebrew_nun* = 0x00000CF0
-  KEY_hebrew_samech* = 0x00000CF1
-  KEY_hebrew_samekh* = 0x00000CF1
-  KEY_hebrew_ayin* = 0x00000CF2
-  KEY_hebrew_finalpe* = 0x00000CF3
-  KEY_hebrew_pe* = 0x00000CF4
-  KEY_hebrew_finalzade* = 0x00000CF5
-  KEY_hebrew_finalzadi* = 0x00000CF5
-  KEY_hebrew_zade* = 0x00000CF6
-  KEY_hebrew_zadi* = 0x00000CF6
-  KEY_hebrew_qoph* = 0x00000CF7
-  KEY_hebrew_kuf* = 0x00000CF7
-  KEY_hebrew_resh* = 0x00000CF8
-  KEY_hebrew_shin* = 0x00000CF9
-  KEY_hebrew_taw* = 0x00000CFA
-  KEY_hebrew_taf* = 0x00000CFA
-  KEY_Hebrew_switch* = 0x0000FF7E
-  KEY_Thai_kokai* = 0x00000DA1
-  KEY_Thai_khokhai* = 0x00000DA2
-  KEY_Thai_khokhuat* = 0x00000DA3
-  KEY_Thai_khokhwai* = 0x00000DA4
-  KEY_Thai_khokhon* = 0x00000DA5
-  KEY_Thai_khorakhang* = 0x00000DA6
-  KEY_Thai_ngongu* = 0x00000DA7
-  KEY_Thai_chochan* = 0x00000DA8
-  KEY_Thai_choching* = 0x00000DA9
-  KEY_Thai_chochang* = 0x00000DAA
-  KEY_Thai_soso* = 0x00000DAB
-  KEY_Thai_chochoe* = 0x00000DAC
-  KEY_Thai_yoying* = 0x00000DAD
-  KEY_Thai_dochada* = 0x00000DAE
-  KEY_Thai_topatak* = 0x00000DAF
-  KEY_Thai_thothan* = 0x00000DB0
-  KEY_Thai_thonangmontho* = 0x00000DB1
-  KEY_Thai_thophuthao* = 0x00000DB2
-  KEY_Thai_nonen* = 0x00000DB3
-  KEY_Thai_dodek* = 0x00000DB4
-  KEY_Thai_totao* = 0x00000DB5
-  KEY_Thai_thothung* = 0x00000DB6
-  KEY_Thai_thothahan* = 0x00000DB7
-  KEY_Thai_thothong* = 0x00000DB8
-  KEY_Thai_nonu* = 0x00000DB9
-  KEY_Thai_bobaimai* = 0x00000DBA
-  KEY_Thai_popla* = 0x00000DBB
-  KEY_Thai_phophung* = 0x00000DBC
-  KEY_Thai_fofa* = 0x00000DBD
-  KEY_Thai_phophan* = 0x00000DBE
-  KEY_Thai_fofan* = 0x00000DBF
-  KEY_Thai_phosamphao* = 0x00000DC0
-  KEY_Thai_moma* = 0x00000DC1
-  KEY_Thai_yoyak* = 0x00000DC2
-  KEY_Thai_rorua* = 0x00000DC3
-  KEY_Thai_ru* = 0x00000DC4
-  KEY_Thai_loling* = 0x00000DC5
-  KEY_Thai_lu* = 0x00000DC6
-  KEY_Thai_wowaen* = 0x00000DC7
-  KEY_Thai_sosala* = 0x00000DC8
-  KEY_Thai_sorusi* = 0x00000DC9
-  KEY_Thai_sosua* = 0x00000DCA
-  KEY_Thai_hohip* = 0x00000DCB
-  KEY_Thai_lochula* = 0x00000DCC
-  KEY_Thai_oang* = 0x00000DCD
-  KEY_Thai_honokhuk* = 0x00000DCE
-  KEY_Thai_paiyannoi* = 0x00000DCF
-  KEY_Thai_saraa* = 0x00000DD0
-  KEY_Thai_maihanakat* = 0x00000DD1
-  KEY_Thai_saraaa* = 0x00000DD2
-  KEY_Thai_saraam* = 0x00000DD3
-  KEY_Thai_sarai* = 0x00000DD4
-  KEY_Thai_saraii* = 0x00000DD5
-  KEY_Thai_saraue* = 0x00000DD6
-  KEY_Thai_sarauee* = 0x00000DD7
-  KEY_Thai_sarau* = 0x00000DD8
-  KEY_Thai_sarauu* = 0x00000DD9
-  KEY_Thai_phinthu* = 0x00000DDA
-  KEY_Thai_maihanakat_maitho* = 0x00000DDE
-  KEY_Thai_baht* = 0x00000DDF
-  KEY_Thai_sarae* = 0x00000DE0
-  KEY_Thai_saraae* = 0x00000DE1
-  KEY_Thai_sarao* = 0x00000DE2
-  KEY_Thai_saraaimaimuan* = 0x00000DE3
-  KEY_Thai_saraaimaimalai* = 0x00000DE4
-  KEY_Thai_lakkhangyao* = 0x00000DE5
-  KEY_Thai_maiyamok* = 0x00000DE6
-  KEY_Thai_maitaikhu* = 0x00000DE7
-  KEY_Thai_maiek* = 0x00000DE8
-  KEY_Thai_maitho* = 0x00000DE9
-  KEY_Thai_maitri* = 0x00000DEA
-  KEY_Thai_maichattawa* = 0x00000DEB
-  KEY_Thai_thanthakhat* = 0x00000DEC
-  KEY_Thai_nikhahit* = 0x00000DED
-  KEY_Thai_leksun* = 0x00000DF0
-  KEY_Thai_leknung* = 0x00000DF1
-  KEY_Thai_leksong* = 0x00000DF2
-  KEY_Thai_leksam* = 0x00000DF3
-  KEY_Thai_leksi* = 0x00000DF4
-  KEY_Thai_lekha* = 0x00000DF5
-  KEY_Thai_lekhok* = 0x00000DF6
-  KEY_Thai_lekchet* = 0x00000DF7
-  KEY_Thai_lekpaet* = 0x00000DF8
-  KEY_Thai_lekkao* = 0x00000DF9
-  KEY_Hangul* = 0x0000FF31
-  KEY_Hangul_Start* = 0x0000FF32
-  KEY_Hangul_End* = 0x0000FF33
-  KEY_Hangul_Hanja* = 0x0000FF34
-  KEY_Hangul_Jamo* = 0x0000FF35
-  KEY_Hangul_Romaja* = 0x0000FF36
-  KEY_Hangul_Codeinput* = 0x0000FF37
-  KEY_Hangul_Jeonja* = 0x0000FF38
-  KEY_Hangul_Banja* = 0x0000FF39
-  KEY_Hangul_PreHanja* = 0x0000FF3A
-  KEY_Hangul_PostHanja* = 0x0000FF3B
-  KEY_Hangul_SingleCandidate* = 0x0000FF3C
-  KEY_Hangul_MultipleCandidate* = 0x0000FF3D
-  KEY_Hangul_PreviousCandidate* = 0x0000FF3E
-  KEY_Hangul_Special* = 0x0000FF3F
-  KEY_Hangul_switch* = 0x0000FF7E
-  KEY_Hangul_Kiyeog* = 0x00000EA1
-  KEY_Hangul_SsangKiyeog* = 0x00000EA2
-  KEY_Hangul_KiyeogSios* = 0x00000EA3
-  KEY_Hangul_Nieun* = 0x00000EA4
-  KEY_Hangul_NieunJieuj* = 0x00000EA5
-  KEY_Hangul_NieunHieuh* = 0x00000EA6
-  KEY_Hangul_Dikeud* = 0x00000EA7
-  KEY_Hangul_SsangDikeud* = 0x00000EA8
-  KEY_Hangul_Rieul* = 0x00000EA9
-  KEY_Hangul_RieulKiyeog* = 0x00000EAA
-  KEY_Hangul_RieulMieum* = 0x00000EAB
-  KEY_Hangul_RieulPieub* = 0x00000EAC
-  KEY_Hangul_RieulSios* = 0x00000EAD
-  KEY_Hangul_RieulTieut* = 0x00000EAE
-  KEY_Hangul_RieulPhieuf* = 0x00000EAF
-  KEY_Hangul_RieulHieuh* = 0x00000EB0
-  KEY_Hangul_Mieum* = 0x00000EB1
-  KEY_Hangul_Pieub* = 0x00000EB2
-  KEY_Hangul_SsangPieub* = 0x00000EB3
-  KEY_Hangul_PieubSios* = 0x00000EB4
-  KEY_Hangul_Sios* = 0x00000EB5
-  KEY_Hangul_SsangSios* = 0x00000EB6
-  KEY_Hangul_Ieung* = 0x00000EB7
-  KEY_Hangul_Jieuj* = 0x00000EB8
-  KEY_Hangul_SsangJieuj* = 0x00000EB9
-  KEY_Hangul_Cieuc* = 0x00000EBA
-  KEY_Hangul_Khieuq* = 0x00000EBB
-  KEY_Hangul_Tieut* = 0x00000EBC
-  KEY_Hangul_Phieuf* = 0x00000EBD
-  KEY_Hangul_Hieuh* = 0x00000EBE
-  KEY_Hangul_A* = 0x00000EBF
-  KEY_Hangul_AE* = 0x00000EC0
-  KEY_Hangul_YA* = 0x00000EC1
-  KEY_Hangul_YAE* = 0x00000EC2
-  KEY_Hangul_EO* = 0x00000EC3
-  KEY_Hangul_E* = 0x00000EC4
-  KEY_Hangul_YEO* = 0x00000EC5
-  KEY_Hangul_YE* = 0x00000EC6
-  KEY_Hangul_O* = 0x00000EC7
-  KEY_Hangul_WA* = 0x00000EC8
-  KEY_Hangul_WAE* = 0x00000EC9
-  KEY_Hangul_OE* = 0x00000ECA
-  KEY_Hangul_YO* = 0x00000ECB
-  KEY_Hangul_U* = 0x00000ECC
-  KEY_Hangul_WEO* = 0x00000ECD
-  KEY_Hangul_WE* = 0x00000ECE
-  KEY_Hangul_WI* = 0x00000ECF
-  KEY_Hangul_YU* = 0x00000ED0
-  KEY_Hangul_EU* = 0x00000ED1
-  KEY_Hangul_YI* = 0x00000ED2
-  KEY_Hangul_I* = 0x00000ED3
-  KEY_Hangul_J_Kiyeog* = 0x00000ED4
-  KEY_Hangul_J_SsangKiyeog* = 0x00000ED5
-  KEY_Hangul_J_KiyeogSios* = 0x00000ED6
-  KEY_Hangul_J_Nieun* = 0x00000ED7
-  KEY_Hangul_J_NieunJieuj* = 0x00000ED8
-  KEY_Hangul_J_NieunHieuh* = 0x00000ED9
-  KEY_Hangul_J_Dikeud* = 0x00000EDA
-  KEY_Hangul_J_Rieul* = 0x00000EDB
-  KEY_Hangul_J_RieulKiyeog* = 0x00000EDC
-  KEY_Hangul_J_RieulMieum* = 0x00000EDD
-  KEY_Hangul_J_RieulPieub* = 0x00000EDE
-  KEY_Hangul_J_RieulSios* = 0x00000EDF
-  KEY_Hangul_J_RieulTieut* = 0x00000EE0
-  KEY_Hangul_J_RieulPhieuf* = 0x00000EE1
-  KEY_Hangul_J_RieulHieuh* = 0x00000EE2
-  KEY_Hangul_J_Mieum* = 0x00000EE3
-  KEY_Hangul_J_Pieub* = 0x00000EE4
-  KEY_Hangul_J_PieubSios* = 0x00000EE5
-  KEY_Hangul_J_Sios* = 0x00000EE6
-  KEY_Hangul_J_SsangSios* = 0x00000EE7
-  KEY_Hangul_J_Ieung* = 0x00000EE8
-  KEY_Hangul_J_Jieuj* = 0x00000EE9
-  KEY_Hangul_J_Cieuc* = 0x00000EEA
-  KEY_Hangul_J_Khieuq* = 0x00000EEB
-  KEY_Hangul_J_Tieut* = 0x00000EEC
-  KEY_Hangul_J_Phieuf* = 0x00000EED
-  KEY_Hangul_J_Hieuh* = 0x00000EEE
-  KEY_Hangul_RieulYeorinHieuh* = 0x00000EEF
-  KEY_Hangul_SunkyeongeumMieum* = 0x00000EF0
-  KEY_Hangul_SunkyeongeumPieub* = 0x00000EF1
-  KEY_Hangul_PanSios* = 0x00000EF2
-  KEY_Hangul_KkogjiDalrinIeung* = 0x00000EF3
-  KEY_Hangul_SunkyeongeumPhieuf* = 0x00000EF4
-  KEY_Hangul_YeorinHieuh* = 0x00000EF5
-  KEY_Hangul_AraeA* = 0x00000EF6
-  KEY_Hangul_AraeAE* = 0x00000EF7
-  KEY_Hangul_J_PanSios* = 0x00000EF8
-  KEY_Hangul_J_KkogjiDalrinIeung* = 0x00000EF9
-  KEY_Hangul_J_YeorinHieuh* = 0x00000EFA
-  KEY_Korean_Won* = 0x00000EFF
-  KEY_EcuSign* = 0x000020A0
-  KEY_ColonSign* = 0x000020A1
-  KEY_CruzeiroSign* = 0x000020A2
-  KEY_FFrancSign* = 0x000020A3
-  KEY_LiraSign* = 0x000020A4
-  KEY_MillSign* = 0x000020A5
-  KEY_NairaSign* = 0x000020A6
-  KEY_PesetaSign* = 0x000020A7
-  KEY_RupeeSign* = 0x000020A8
-  KEY_WonSign* = 0x000020A9
-  KEY_NewSheqelSign* = 0x000020AA
-  KEY_DongSign* = 0x000020AB
-  KEY_EuroSign* = 0x000020AC
-
-proc pango_context_get_for_screen*(screen: PScreen): PContext{.cdecl, 
-    dynlib: lib, importc: "gdk_pango_context_get_for_screen".}
-proc pango_context_set_colormap*(context: PContext, colormap: PColormap){.
-    cdecl, dynlib: lib, importc: "gdk_pango_context_set_colormap".}
-proc pango_layout_line_get_clip_region*(line: PLayoutLine, x_origin: gint, 
-                                        y_origin: gint, index_ranges: Pgint, 
-                                        n_ranges: gint): PRegion{.cdecl, 
-    dynlib: lib, importc: "gdk_pango_layout_line_get_clip_region".}
-proc pango_layout_get_clip_region*(layout: PLayout, x_origin: gint, 
-                                   y_origin: gint, index_ranges: Pgint, 
-                                   n_ranges: gint): PRegion{.cdecl, dynlib: lib, 
-    importc: "gdk_pango_layout_get_clip_region".}
-proc pango_attr_stipple_new*(stipple: PBitmap): PAttribute{.cdecl, 
-    dynlib: lib, importc: "gdk_pango_attr_stipple_new".}
-proc pango_attr_embossed_new*(embossed: gboolean): PAttribute{.cdecl, 
-    dynlib: lib, importc: "gdk_pango_attr_embossed_new".}
-proc render_threshold_alpha*(pixbuf: PPixbuf, bitmap: PBitmap, 
-                                    src_x: int32, src_y: int32, dest_x: int32, 
-                                    dest_y: int32, width: int32, height: int32, 
-                                    alpha_threshold: int32){.cdecl, dynlib: lib, 
-    importc: "gdk_pixbuf_render_threshold_alpha".}
-proc render_to_drawable*(pixbuf: PPixbuf, drawable: PDrawable, gc: PGC, 
-                                src_x: int32, src_y: int32, dest_x: int32, 
-                                dest_y: int32, width: int32, height: int32, 
-                                dither: TRgbDither, x_dither: int32, 
-                                y_dither: int32){.cdecl, dynlib: lib, 
-    importc: "gdk_pixbuf_render_to_drawable".}
-proc render_to_drawable_alpha*(pixbuf: PPixbuf, drawable: PDrawable, 
-                                      src_x: int32, src_y: int32, dest_x: int32, 
-                                      dest_y: int32, width: int32, 
-                                      height: int32, 
-                                      alpha_mode: TPixbufAlphaMode, 
-                                      alpha_threshold: int32, 
-                                      dither: TRgbDither, x_dither: int32, 
-                                      y_dither: int32){.cdecl, dynlib: lib, 
-    importc: "gdk_pixbuf_render_to_drawable_alpha".}
-proc render_pixmap_and_mask_for_colormap*(pixbuf: PPixbuf, 
-    colormap: PColormap, n: var PPixmap, nasdfdsafw4e: var PBitmap, 
-    alpha_threshold: int32){.cdecl, dynlib: lib, importc: "gdk_pixbuf_render_pixmap_and_mask_for_colormap".}
-proc get_from_drawable*(dest: PPixbuf, src: PDrawable, cmap: PColormap, 
-                               src_x: int32, src_y: int32, dest_x: int32, 
-                               dest_y: int32, width: int32, height: int32): PPixbuf{.
-    cdecl, dynlib: lib, importc: "gdk_pixbuf_get_from_drawable".}
-proc get_from_image*(dest: PPixbuf, src: PImage, cmap: PColormap, 
-                            src_x: int32, src_y: int32, dest_x: int32, 
-                            dest_y: int32, width: int32, height: int32): PPixbuf{.
-    cdecl, dynlib: lib, importc: "gdk_pixbuf_get_from_image".}
-proc TYPE_PIXMAP*(): GType
-proc PIXMAP*(anObject: Pointer): PPixmap
-proc PIXMAP_CLASS*(klass: Pointer): PPixmapObjectClass
-proc IS_PIXMAP*(anObject: Pointer): bool
-proc IS_PIXMAP_CLASS*(klass: Pointer): bool
-proc PIXMAP_GET_CLASS*(obj: Pointer): PPixmapObjectClass
-proc PIXMAP_OBJECT*(anObject: Pointer): PPixmapObject
-proc pixmap_get_type*(): GType{.cdecl, dynlib: lib, 
-                                importc: "gdk_pixmap_get_type".}
-proc pixmap_new*(window: PWindow, width: gint, height: gint, depth: gint): PPixmap{.
-    cdecl, dynlib: lib, importc: "gdk_pixmap_new".}
-proc bitmap_create_from_data*(window: PWindow, data: cstring, width: gint, 
-                              height: gint): PBitmap{.cdecl, dynlib: lib, 
-    importc: "gdk_bitmap_create_from_data".}
-proc pixmap_create_from_data*(window: PWindow, data: cstring, width: gint, 
-                              height: gint, depth: gint, fg: PColor, bg: PColor): PPixmap{.
-    cdecl, dynlib: lib, importc: "gdk_pixmap_create_from_data".}
-proc pixmap_create_from_xpm*(window: PWindow, k: var PBitmap, 
-                             transparent_color: PColor, filename: cstring): PPixmap{.
-    cdecl, dynlib: lib, importc: "gdk_pixmap_create_from_xpm".}
-proc pixmap_colormap_create_from_xpm*(window: PWindow, colormap: PColormap, 
-                                      k: var PBitmap, transparent_color: PColor, 
-                                      filename: cstring): PPixmap{.cdecl, 
-    dynlib: lib, importc: "gdk_pixmap_colormap_create_from_xpm".}
-proc pixmap_create_from_xpm_d*(window: PWindow, k: var PBitmap, 
-                               transparent_color: PColor, data: PPgchar): PPixmap{.
-    cdecl, dynlib: lib, importc: "gdk_pixmap_create_from_xpm_d".}
-proc pixmap_colormap_create_from_xpm_d*(window: PWindow, colormap: PColormap, 
-                                        k: var PBitmap, 
-                                        transparent_color: PColor, data: PPgchar): PPixmap{.
-    cdecl, dynlib: lib, importc: "gdk_pixmap_colormap_create_from_xpm_d".}
-proc pixmap_foreign_new_for_display*(display: PDisplay, anid: TNativeWindow): PPixmap{.
-    cdecl, dynlib: lib, importc: "gdk_pixmap_foreign_new_for_display".}
-proc pixmap_lookup_for_display*(display: PDisplay, anid: TNativeWindow): PPixmap{.
-    cdecl, dynlib: lib, importc: "gdk_pixmap_lookup_for_display".}
-proc atom_intern*(atom_name: cstring, only_if_exists: gboolean): TAtom{.cdecl, 
-    dynlib: lib, importc: "gdk_atom_intern".}
-proc atom_name*(atom: TAtom): cstring{.cdecl, dynlib: lib, 
-                                       importc: "gdk_atom_name".}
-proc property_get*(window: PWindow, `property`: TAtom, `type`: TAtom, 
-                   offset: gulong, length: gulong, pdelete: gint, 
-                   actual_property_type: PAtom, actual_format: Pgint, 
-                   actual_length: Pgint, data: PPguchar): gboolean{.cdecl, 
-    dynlib: lib, importc: "gdk_property_get".}
-proc property_change*(window: PWindow, `property`: TAtom, `type`: TAtom, 
-                      format: gint, mode: TPropMode, data: Pguchar, 
-                      nelements: gint){.cdecl, dynlib: lib, 
-                                        importc: "gdk_property_change".}
-proc property_delete*(window: PWindow, `property`: TAtom){.cdecl, dynlib: lib, 
-    importc: "gdk_property_delete".}
-proc text_property_to_text_list_for_display*(display: PDisplay, encoding: TAtom, 
-    format: gint, text: Pguchar, length: gint, t: var PPgchar): gint{.cdecl, 
-    dynlib: lib, importc: "gdk_text_property_to_text_list_for_display".}
-proc text_property_to_utf8_list_for_display*(display: PDisplay, encoding: TAtom, 
-    format: gint, text: Pguchar, length: gint, t: var PPgchar): gint{.cdecl, 
-    dynlib: lib, importc: "gdk_text_property_to_utf8_list_for_display".}
-proc utf8_to_string_target*(str: cstring): cstring{.cdecl, dynlib: lib, 
-    importc: "gdk_utf8_to_string_target".}
-proc string_to_compound_text_for_display*(display: PDisplay, str: cstring, 
-    encoding: PAtom, format: Pgint, ctext: PPguchar, length: Pgint): gint{.
-    cdecl, dynlib: lib, importc: "gdk_string_to_compound_text_for_display".}
-proc utf8_to_compound_text_for_display*(display: PDisplay, str: cstring, 
-                                        encoding: PAtom, format: Pgint, 
-                                        ctext: PPguchar, length: Pgint): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_utf8_to_compound_text_for_display".}
-proc free_text_list*(list: PPgchar){.cdecl, dynlib: lib, 
-                                     importc: "gdk_free_text_list".}
-proc free_compound_text*(ctext: Pguchar){.cdecl, dynlib: lib, 
-    importc: "gdk_free_compound_text".}
-proc region_new*(): PRegion{.cdecl, dynlib: lib, importc: "gdk_region_new".}
-proc region_polygon*(points: PPoint, npoints: gint, fill_rule: TFillRule): PRegion{.
-    cdecl, dynlib: lib, importc: "gdk_region_polygon".}
-proc copy*(region: PRegion): PRegion{.cdecl, dynlib: lib, 
-    importc: "gdk_region_copy".}
-proc region_rectangle*(rectangle: PRectangle): PRegion{.cdecl, dynlib: lib, 
-    importc: "gdk_region_rectangle".}
-proc destroy*(region: PRegion){.cdecl, dynlib: lib, 
-                                       importc: "gdk_region_destroy".}
-proc get_clipbox*(region: PRegion, rectangle: PRectangle){.cdecl, 
-    dynlib: lib, importc: "gdk_region_get_clipbox".}
-proc get_rectangles*(region: PRegion, s: var PRectangle, 
-                            n_rectangles: Pgint){.cdecl, dynlib: lib, 
-    importc: "gdk_region_get_rectangles".}
-proc empty*(region: PRegion): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_region_empty".}
-proc equal*(region1: PRegion, region2: PRegion): gboolean{.cdecl, 
-    dynlib: lib, importc: "gdk_region_equal".}
-proc point_in*(region: PRegion, x: int32, y: int32): gboolean{.cdecl, 
-    dynlib: lib, importc: "gdk_region_point_in".}
-proc rect_in*(region: PRegion, rect: PRectangle): TOverlapType{.cdecl, 
-    dynlib: lib, importc: "gdk_region_rect_in".}
-proc offset*(region: PRegion, dx: gint, dy: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_region_offset".}
-proc shrink*(region: PRegion, dx: gint, dy: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_region_shrink".}
-proc union*(region: PRegion, rect: PRectangle){.cdecl, 
-    dynlib: lib, importc: "gdk_region_union_with_rect".}
-proc intersect*(source1: PRegion, source2: PRegion){.cdecl, dynlib: lib, 
-    importc: "gdk_region_intersect".}
-proc union*(source1: PRegion, source2: PRegion){.cdecl, dynlib: lib, 
-    importc: "gdk_region_union".}
-proc subtract*(source1: PRegion, source2: PRegion){.cdecl, dynlib: lib, 
-    importc: "gdk_region_subtract".}
-proc `xor`*(source1: PRegion, source2: PRegion){.cdecl, dynlib: lib, 
-    importc: "gdk_region_xor".}
-proc spans_intersect_foreach*(region: PRegion, spans: PSpan, 
-                                     n_spans: int32, sorted: gboolean, 
-                                     `function`: TSpanFunc, data: gpointer){.
-    cdecl, dynlib: lib, importc: "gdk_region_spans_intersect_foreach".}
-proc rgb_find_color*(colormap: PColormap, color: PColor){.cdecl, dynlib: lib, 
-    importc: "gdk_rgb_find_color".}
-proc rgb_image*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
-                     width: gint, height: gint, dith: TRgbDither, 
-                     rgb_buf: Pguchar, rowstride: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_draw_rgb_image".}
-proc rgb_image_dithalign*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
-                               width: gint, height: gint, dith: TRgbDither, 
-                               rgb_buf: Pguchar, rowstride: gint, xdith: gint, 
-                               ydith: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_draw_rgb_image_dithalign".}
-proc rgb_32_image*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
-                        width: gint, height: gint, dith: TRgbDither, 
-                        buf: Pguchar, rowstride: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_draw_rgb_32_image".}
-proc rgb_32_image_dithalign*(drawable: PDrawable, gc: PGC, x: gint, 
-                                  y: gint, width: gint, height: gint, 
-                                  dith: TRgbDither, buf: Pguchar, 
-                                  rowstride: gint, xdith: gint, ydith: gint){.
-    cdecl, dynlib: lib, importc: "gdk_draw_rgb_32_image_dithalign".}
-proc gray_image*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
-                      width: gint, height: gint, dith: TRgbDither, buf: Pguchar, 
-                      rowstride: gint){.cdecl, dynlib: lib, 
-                                        importc: "gdk_draw_gray_image".}
-proc indexed_image*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
-                         width: gint, height: gint, dith: TRgbDither, 
-                         buf: Pguchar, rowstride: gint, cmap: PRgbCmap){.cdecl, 
-    dynlib: lib, importc: "gdk_draw_indexed_image".}
-proc rgb_cmap_new*(colors: Pguint32, n_colors: gint): PRgbCmap{.cdecl, 
-    dynlib: lib, importc: "gdk_rgb_cmap_new".}
-proc free*(cmap: PRgbCmap){.cdecl, dynlib: lib, 
-                                     importc: "gdk_rgb_cmap_free".}
-proc rgb_set_verbose*(verbose: gboolean){.cdecl, dynlib: lib, 
-    importc: "gdk_rgb_set_verbose".}
-proc rgb_set_install*(install: gboolean){.cdecl, dynlib: lib, 
-    importc: "gdk_rgb_set_install".}
-proc rgb_set_min_colors*(min_colors: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_rgb_set_min_colors".}
-proc TYPE_DISPLAY*(): GType
-proc DISPLAY_OBJECT*(anObject: pointer): PDisplay
-proc DISPLAY_CLASS*(klass: pointer): PDisplayClass
-proc IS_DISPLAY*(anObject: pointer): bool
-proc IS_DISPLAY_CLASS*(klass: pointer): bool
-proc DISPLAY_GET_CLASS*(obj: pointer): PDisplayClass
-proc display_open*(display_name: cstring): PDisplay{.cdecl, dynlib: lib, 
-    importc: "gdk_display_open".}
-proc get_name*(display: PDisplay): cstring{.cdecl, dynlib: lib, 
-    importc: "gdk_display_get_name".}
-proc get_n_screens*(display: PDisplay): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_display_get_n_screens".}
-proc get_screen*(display: PDisplay, screen_num: gint): PScreen{.cdecl, 
-    dynlib: lib, importc: "gdk_display_get_screen".}
-proc get_default_screen*(display: PDisplay): PScreen{.cdecl, 
-    dynlib: lib, importc: "gdk_display_get_default_screen".}
-proc pointer_ungrab*(display: PDisplay, time: guint32){.cdecl, 
-    dynlib: lib, importc: "gdk_display_pointer_ungrab".}
-proc keyboard_ungrab*(display: PDisplay, time: guint32){.cdecl, 
-    dynlib: lib, importc: "gdk_display_keyboard_ungrab".}
-proc pointer_is_grabbed*(display: PDisplay): gboolean{.cdecl, 
-    dynlib: lib, importc: "gdk_display_pointer_is_grabbed".}
-proc beep*(display: PDisplay){.cdecl, dynlib: lib, 
-                                       importc: "gdk_display_beep".}
-proc sync*(display: PDisplay){.cdecl, dynlib: lib, 
-                                       importc: "gdk_display_sync".}
-proc close*(display: PDisplay){.cdecl, dynlib: lib, 
-                                        importc: "gdk_display_close".}
-proc list_devices*(display: PDisplay): PGList{.cdecl, dynlib: lib, 
-    importc: "gdk_display_list_devices".}
-proc get_event*(display: PDisplay): PEvent{.cdecl, dynlib: lib, 
-    importc: "gdk_display_get_event".}
-proc peek_event*(display: PDisplay): PEvent{.cdecl, dynlib: lib, 
-    importc: "gdk_display_peek_event".}
-proc put_event*(display: PDisplay, event: PEvent){.cdecl, dynlib: lib, 
-    importc: "gdk_display_put_event".}
-proc add_client_message_filter*(display: PDisplay, message_type: TAtom, 
-                                        func: TFilterFunc, data: gpointer){.
-    cdecl, dynlib: lib, importc: "gdk_display_add_client_message_filter".}
-proc set_double_click_time*(display: PDisplay, msec: guint){.cdecl, 
-    dynlib: lib, importc: "gdk_display_set_double_click_time".}
-proc set_sm_client_id*(display: PDisplay, sm_client_id: cstring){.cdecl, 
-    dynlib: lib, importc: "gdk_display_set_sm_client_id".}
-proc set_default_display*(display: PDisplay){.cdecl, dynlib: lib, 
-    importc: "gdk_set_default_display".}
-proc get_default_display*(): PDisplay{.cdecl, dynlib: lib, 
-                                       importc: "gdk_get_default_display".}
-proc TYPE_SCREEN*(): GType
-proc SCREEN*(anObject: Pointer): PScreen
-proc SCREEN_CLASS*(klass: Pointer): PScreenClass
-proc IS_SCREEN*(anObject: Pointer): bool
-proc IS_SCREEN_CLASS*(klass: Pointer): bool
-proc SCREEN_GET_CLASS*(obj: Pointer): PScreenClass
-proc get_default_colormap*(screen: PScreen): PColormap{.cdecl, 
-    dynlib: lib, importc: "gdk_screen_get_default_colormap".}
-proc set_default_colormap*(screen: PScreen, colormap: PColormap){.cdecl, 
-    dynlib: lib, importc: "gdk_screen_set_default_colormap".}
-proc get_system_colormap*(screen: PScreen): PColormap{.cdecl, 
-    dynlib: lib, importc: "gdk_screen_get_system_colormap".}
-proc get_system_visual*(screen: PScreen): PVisual{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_system_visual".}
-proc get_rgb_colormap*(screen: PScreen): PColormap{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_rgb_colormap".}
-proc get_rgb_visual*(screen: PScreen): PVisual{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_rgb_visual".}
-proc get_root_window*(screen: PScreen): PWindow{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_root_window".}
-proc get_display*(screen: PScreen): PDisplay{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_display".}
-proc get_number*(screen: PScreen): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_number".}
-proc get_window_at_pointer*(screen: PScreen, win_x: Pgint, win_y: Pgint): PWindow{.
-    cdecl, dynlib: lib, importc: "gdk_screen_get_window_at_pointer".}
-proc get_width*(screen: PScreen): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_width".}
-proc get_height*(screen: PScreen): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_height".}
-proc get_width_mm*(screen: PScreen): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_width_mm".}
-proc get_height_mm*(screen: PScreen): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_height_mm".}
-proc close*(screen: PScreen){.cdecl, dynlib: lib, 
-                                     importc: "gdk_screen_close".}
-proc list_visuals*(screen: PScreen): PGList{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_list_visuals".}
-proc get_toplevel_windows*(screen: PScreen): PGList{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_toplevel_windows".}
-proc get_n_monitors*(screen: PScreen): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_n_monitors".}
-proc get_monitor_geometry*(screen: PScreen, monitor_num: gint, 
-                                  dest: PRectangle){.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_monitor_geometry".}
-proc get_monitor_at_point*(screen: PScreen, x: gint, y: gint): gint{.
-    cdecl, dynlib: lib, importc: "gdk_screen_get_monitor_at_point".}
-proc get_monitor_at_window*(screen: PScreen, window: PWindow): gint{.
-    cdecl, dynlib: lib, importc: "gdk_screen_get_monitor_at_window".}
-proc broadcast_client_message*(screen: PScreen, event: PEvent){.cdecl, 
-    dynlib: lib, importc: "gdk_screen_broadcast_client_message".}
-proc get_default_screen*(): PScreen{.cdecl, dynlib: lib, 
-                                     importc: "gdk_get_default_screen".}
-proc get_setting*(screen: PScreen, name: cstring, value: PGValue): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_screen_get_setting".}
-proc SELECTION_PRIMARY*(): TAtom
-proc SELECTION_SECONDARY*(): TAtom
-proc SELECTION_CLIPBOARD*(): TAtom
-proc TARGET_BITMAP*(): TAtom
-proc TARGET_COLORMAP*(): TAtom
-proc TARGET_DRAWABLE*(): TAtom
-proc TARGET_PIXMAP*(): TAtom
-proc TARGET_STRING*(): TAtom
-proc SELECTION_TYPE_ATOM*(): TAtom
-proc SELECTION_TYPE_BITMAP*(): TAtom
-proc SELECTION_TYPE_COLORMAP*(): TAtom
-proc SELECTION_TYPE_DRAWABLE*(): TAtom
-proc SELECTION_TYPE_INTEGER*(): TAtom
-proc SELECTION_TYPE_PIXMAP*(): TAtom
-proc SELECTION_TYPE_WINDOW*(): TAtom
-proc SELECTION_TYPE_STRING*(): TAtom
-proc selection_owner_set_for_display*(display: PDisplay, owner: PWindow, 
-                                      selection: TAtom, time: guint32, 
-                                      send_event: gboolean): gboolean{.cdecl, 
-    dynlib: lib, importc: "gdk_selection_owner_set_for_display".}
-proc selection_owner_get_for_display*(display: PDisplay, selection: TAtom): PWindow{.
-    cdecl, dynlib: lib, importc: "gdk_selection_owner_get_for_display".}
-proc selection_convert*(requestor: PWindow, selection: TAtom, target: TAtom, 
-                        time: guint32){.cdecl, dynlib: lib, 
-                                        importc: "gdk_selection_convert".}
-proc selection_property_get*(requestor: PWindow, data: PPguchar, 
-                             prop_type: PAtom, prop_format: Pgint): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_selection_property_get".}
-proc selection_send_notify_for_display*(display: PDisplay, requestor: guint32, 
-                                        selection: TAtom, target: TAtom, 
-                                        `property`: TAtom, time: guint32){.
-    cdecl, dynlib: lib, importc: "gdk_selection_send_notify_for_display".}
-const 
-  CURRENT_TIME* = 0
-  PARENT_RELATIVE* = 1
-  OK* = 0
-  ERROR* = - (1)
-  ERROR_PARAM* = - (2)
-  ERROR_FILE* = - (3)
-  ERROR_MEM* = - (4)
-  SHIFT_MASK* = 1 shl 0
-  LOCK_MASK* = 1 shl 1
-  CONTROL_MASK* = 1 shl 2
-  MOD1_MASK* = 1 shl 3
-  MOD2_MASK* = 1 shl 4
-  MOD3_MASK* = 1 shl 5
-  MOD4_MASK* = 1 shl 6
-  MOD5_MASK* = 1 shl 7
-  BUTTON1_MASK* = 1 shl 8
-  BUTTON2_MASK* = 1 shl 9
-  BUTTON3_MASK* = 1 shl 10
-  BUTTON4_MASK* = 1 shl 11
-  BUTTON5_MASK* = 1 shl 12
-  RELEASE_MASK* = 1 shl 30
-  MODIFIER_MASK* = ord(RELEASE_MASK) or 0x00001FFF
-  INPUT_READ* = 1 shl 0
-  INPUT_WRITE* = 1 shl 1
-  INPUT_EXCEPTION* = 1 shl 2
-  GRAB_SUCCESS* = 0
-  GRAB_ALREADY_GRABBED* = 1
-  GRAB_INVALID_TIME* = 2
-  GRAB_NOT_VIEWABLE* = 3
-  GRAB_FROZEN* = 4
-
-proc ATOM_TO_POINTER*(atom: TAtom): Pointer
-proc POINTER_TO_ATOM*(p: Pointer): TAtom
-proc `MAKE_ATOM`*(val: guint): TAtom
-proc NONE*(): TAtom
-proc TYPE_VISUAL*(): GType
-proc VISUAL*(anObject: Pointer): PVisual
-proc VISUAL_CLASS*(klass: Pointer): PVisualClass
-proc IS_VISUAL*(anObject: Pointer): bool
-proc IS_VISUAL_CLASS*(klass: Pointer): bool
-proc VISUAL_GET_CLASS*(obj: Pointer): PVisualClass
-proc visual_get_type*(): GType{.cdecl, dynlib: lib, 
-                                importc: "gdk_visual_get_type".}
-const 
-  WA_TITLE* = 1 shl 1
-  WA_X* = 1 shl 2
-  WA_Y* = 1 shl 3
-  WA_CURSOR* = 1 shl 4
-  WA_COLORMAP* = 1 shl 5
-  WA_VISUAL* = 1 shl 6
-  WA_WMCLASS* = 1 shl 7
-  WA_NOREDIR* = 1 shl 8
-  HINT_POS* = 1 shl 0
-  HINT_MIN_SIZE* = 1 shl 1
-  HINT_MAX_SIZE* = 1 shl 2
-  HINT_BASE_SIZE* = 1 shl 3
-  HINT_ASPECT* = 1 shl 4
-  HINT_RESIZE_INC* = 1 shl 5
-  HINT_WIN_GRAVITY* = 1 shl 6
-  HINT_USER_POS* = 1 shl 7
-  HINT_USER_SIZE* = 1 shl 8
-  DECOR_ALL* = 1 shl 0
-  DECOR_BORDER* = 1 shl 1
-  DECOR_RESIZEH* = 1 shl 2
-  DECOR_TITLE* = 1 shl 3
-  DECOR_MENU* = 1 shl 4
-  DECOR_MINIMIZE* = 1 shl 5
-  DECOR_MAXIMIZE* = 1 shl 6
-  FUNC_ALL* = 1 shl 0
-  FUNC_RESIZE* = 1 shl 1
-  FUNC_MOVE* = 1 shl 2
-  FUNC_MINIMIZE* = 1 shl 3
-  FUNC_MAXIMIZE* = 1 shl 4
-  FUNC_CLOSE* = 1 shl 5
-  GRAVITY_NORTH_WEST* = 1
-  GRAVITY_NORTH* = 2
-  GRAVITY_NORTH_EAST* = 3
-  GRAVITY_WEST* = 4
-  GRAVITY_CENTER* = 5
-  GRAVITY_EAST* = 6
-  GRAVITY_SOUTH_WEST* = 7
-  GRAVITY_SOUTH* = 8
-  GRAVITY_SOUTH_EAST* = 9
-  GRAVITY_STATIC* = 10
-
-proc TYPE_WINDOW*(): GType
-proc WINDOW*(anObject: Pointer): PWindow
-proc WINDOW_CLASS*(klass: Pointer): PWindowObjectClass
-proc IS_WINDOW*(anObject: Pointer): bool
-proc IS_WINDOW_CLASS*(klass: Pointer): bool
-proc WINDOW_GET_CLASS*(obj: Pointer): PWindowObjectClass
-proc WINDOW_OBJECT*(anObject: Pointer): PWindowObject
-const 
-  bm_TWindowObject_guffaw_gravity* = 0x0001'i16
-  bp_TWindowObject_guffaw_gravity* = 0'i16
-  bm_TWindowObject_input_only* = 0x0002'i16
-  bp_TWindowObject_input_only* = 1'i16
-  bm_TWindowObject_modal_hint* = 0x0004'i16
-  bp_TWindowObject_modal_hint* = 2'i16
-  bm_TWindowObject_destroyed* = 0x0018'i16
-  bp_TWindowObject_destroyed* = 3'i16
-
-proc WindowObject_guffaw_gravity*(a: PWindowObject): guint
-proc WindowObject_set_guffaw_gravity*(a: PWindowObject, 
-                                      `guffaw_gravity`: guint)
-proc WindowObject_input_only*(a: PWindowObject): guint
-proc WindowObject_set_input_only*(a: PWindowObject, `input_only`: guint)
-proc WindowObject_modal_hint*(a: PWindowObject): guint
-proc WindowObject_set_modal_hint*(a: PWindowObject, `modal_hint`: guint)
-proc WindowObject_destroyed*(a: PWindowObject): guint
-proc WindowObject_set_destroyed*(a: PWindowObject, `destroyed`: guint)
-proc window_object_get_type*(): GType{.cdecl, dynlib: lib, 
-                                       importc: "gdk_window_object_get_type".}
-proc new*(parent: PWindow, attributes: PWindowAttr, attributes_mask: gint): PWindow{.
-    cdecl, dynlib: lib, importc: "gdk_window_new".}
-proc destroy*(window: PWindow){.cdecl, dynlib: lib, 
-                                       importc: "gdk_window_destroy".}
-proc get_window_type*(window: PWindow): TWindowType{.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_window_type".}
-proc window_at_pointer*(win_x: Pgint, win_y: Pgint): PWindow{.cdecl, 
-    dynlib: lib, importc: "gdk_window_at_pointer".}
-proc show*(window: PWindow){.cdecl, dynlib: lib, 
-                                    importc: "gdk_window_show".}
-proc hide*(window: PWindow){.cdecl, dynlib: lib, 
-                                    importc: "gdk_window_hide".}
-proc withdraw*(window: PWindow){.cdecl, dynlib: lib, 
-                                        importc: "gdk_window_withdraw".}
-proc show_unraised*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_show_unraised".}
-proc move*(window: PWindow, x: gint, y: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_window_move".}
-proc resize*(window: PWindow, width: gint, height: gint){.cdecl, 
-    dynlib: lib, importc: "gdk_window_resize".}
-proc move_resize*(window: PWindow, x: gint, y: gint, width: gint, 
-                         height: gint){.cdecl, dynlib: lib, 
-                                        importc: "gdk_window_move_resize".}
-proc reparent*(window: PWindow, new_parent: PWindow, x: gint, y: gint){.
-    cdecl, dynlib: lib, importc: "gdk_window_reparent".}
-proc clear*(window: PWindow){.cdecl, dynlib: lib, 
-                                     importc: "gdk_window_clear".}
-proc clear_area*(window: PWindow, x: gint, y: gint, width: gint, 
-                        height: gint){.cdecl, dynlib: lib, 
-                                       importc: "gdk_window_clear_area".}
-proc clear_area_e*(window: PWindow, x: gint, y: gint, width: gint, 
-                          height: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_window_clear_area_e".}
-proc `raise`*(window: PWindow){.cdecl, dynlib: lib, 
-                                importc: "gdk_window_raise".}
-proc lower*(window: PWindow){.cdecl, dynlib: lib, 
-                                     importc: "gdk_window_lower".}
-proc focus*(window: PWindow, timestamp: guint32){.cdecl, dynlib: lib, 
-    importc: "gdk_window_focus".}
-proc set_user_data*(window: PWindow, user_data: gpointer){.cdecl, 
-    dynlib: lib, importc: "gdk_window_set_user_data".}
-proc set_override_redirect*(window: PWindow, override_redirect: gboolean){.
-    cdecl, dynlib: lib, importc: "gdk_window_set_override_redirect".}
-proc add_filter*(window: PWindow, `function`: TFilterFunc, data: gpointer){.
-    cdecl, dynlib: lib, importc: "gdk_window_add_filter".}
-proc remove_filter*(window: PWindow, `function`: TFilterFunc, 
-                           data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gdk_window_remove_filter".}
-proc scroll*(window: PWindow, dx: gint, dy: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_window_scroll".}
-proc shape_combine_mask*(window: PWindow, mask: PBitmap, x: gint, y: gint){.
-    cdecl, dynlib: lib, importc: "gdk_window_shape_combine_mask".}
-proc shape_combine_region*(window: PWindow, shape_region: PRegion, 
-                                  offset_x: gint, offset_y: gint){.cdecl, 
-    dynlib: lib, importc: "gdk_window_shape_combine_region".}
-proc set_child_shapes*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_child_shapes".}
-proc merge_child_shapes*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_merge_child_shapes".}
-proc is_visible*(window: PWindow): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_window_is_visible".}
-proc is_viewable*(window: PWindow): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_window_is_viewable".}
-proc get_state*(window: PWindow): TWindowState{.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_state".}
-proc set_static_gravities*(window: PWindow, use_static: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_window_set_static_gravities".}
-proc window_foreign_new_for_display*(display: PDisplay, anid: TNativeWindow): PWindow{.
-    cdecl, dynlib: lib, importc: "gdk_window_foreign_new_for_display".}
-proc window_lookup_for_display*(display: PDisplay, anid: TNativeWindow): PWindow{.
-    cdecl, dynlib: lib, importc: "gdk_window_lookup_for_display".}
-proc set_type_hint*(window: PWindow, hint: TWindowTypeHint){.cdecl, 
-    dynlib: lib, importc: "gdk_window_set_type_hint".}
-proc set_modal_hint*(window: PWindow, modal: gboolean){.cdecl, 
-    dynlib: lib, importc: "gdk_window_set_modal_hint".}
-proc set_geometry_hints*(window: PWindow, geometry: PGeometry, 
-                                geom_mask: TWindowHints){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_geometry_hints".}
-proc set_sm_client_id*(sm_client_id: cstring){.cdecl, dynlib: lib, 
-    importc: "gdk_set_sm_client_id".}
-proc begin_paint_rect*(window: PWindow, rectangle: PRectangle){.cdecl, 
-    dynlib: lib, importc: "gdk_window_begin_paint_rect".}
-proc begin_paint_region*(window: PWindow, region: PRegion){.cdecl, 
-    dynlib: lib, importc: "gdk_window_begin_paint_region".}
-proc end_paint*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_end_paint".}
-proc set_title*(window: PWindow, title: cstring){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_title".}
-proc set_role*(window: PWindow, role: cstring){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_role".}
-proc set_transient_for*(window: PWindow, parent: PWindow){.cdecl, 
-    dynlib: lib, importc: "gdk_window_set_transient_for".}
-proc set_background*(window: PWindow, color: PColor){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_background".}
-proc set_back_pixmap*(window: PWindow, pixmap: PPixmap, 
-                             parent_relative: gboolean){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_back_pixmap".}
-proc set_cursor*(window: PWindow, cursor: PCursor){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_cursor".}
-proc get_user_data*(window: PWindow, data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_user_data".}
-proc get_geometry*(window: PWindow, x: Pgint, y: Pgint, width: Pgint, 
-                          height: Pgint, depth: Pgint){.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_geometry".}
-proc get_position*(window: PWindow, x: Pgint, y: Pgint){.cdecl, 
-    dynlib: lib, importc: "gdk_window_get_position".}
-proc get_origin*(window: PWindow, x: Pgint, y: Pgint): gint{.cdecl, 
-    dynlib: lib, importc: "gdk_window_get_origin".}
-proc get_root_origin*(window: PWindow, x: Pgint, y: Pgint){.cdecl, 
-    dynlib: lib, importc: "gdk_window_get_root_origin".}
-proc get_frame_extents*(window: PWindow, rect: PRectangle){.cdecl, 
-    dynlib: lib, importc: "gdk_window_get_frame_extents".}
-proc get_pointer*(window: PWindow, x: Pgint, y: Pgint, 
-                         mask: PModifierType): PWindow{.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_pointer".}
-proc get_parent*(window: PWindow): PWindow{.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_parent".}
-proc get_toplevel*(window: PWindow): PWindow{.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_toplevel".}
-proc get_children*(window: PWindow): PGList{.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_children".}
-proc peek_children*(window: PWindow): PGList{.cdecl, dynlib: lib, 
-    importc: "gdk_window_peek_children".}
-proc get_events*(window: PWindow): TEventMask{.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_events".}
-proc set_events*(window: PWindow, event_mask: TEventMask){.cdecl, 
-    dynlib: lib, importc: "gdk_window_set_events".}
-proc set_icon_list*(window: PWindow, pixbufs: PGList){.cdecl, 
-    dynlib: lib, importc: "gdk_window_set_icon_list".}
-proc set_icon*(window: PWindow, icon_window: PWindow, pixmap: PPixmap, 
-                      mask: PBitmap){.cdecl, dynlib: lib, 
-                                      importc: "gdk_window_set_icon".}
-proc set_icon_name*(window: PWindow, name: cstring){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_icon_name".}
-proc set_group*(window: PWindow, leader: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_group".}
-proc set_decorations*(window: PWindow, decorations: TWMDecoration){.
-    cdecl, dynlib: lib, importc: "gdk_window_set_decorations".}
-proc get_decorations*(window: PWindow, decorations: PWMDecoration): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_window_get_decorations".}
-proc set_functions*(window: PWindow, functions: TWMFunction){.cdecl, 
-    dynlib: lib, importc: "gdk_window_set_functions".}
-proc iconify*(window: PWindow){.cdecl, dynlib: lib, 
-                                       importc: "gdk_window_iconify".}
-proc deiconify*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_deiconify".}
-proc stick*(window: PWindow){.cdecl, dynlib: lib, 
-                                     importc: "gdk_window_stick".}
-proc unstick*(window: PWindow){.cdecl, dynlib: lib, 
-                                       importc: "gdk_window_unstick".}
-proc maximize*(window: PWindow){.cdecl, dynlib: lib, 
-                                        importc: "gdk_window_maximize".}
-proc unmaximize*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_unmaximize".}
-proc register_dnd*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_register_dnd".}
-proc begin_resize_drag*(window: PWindow, edge: TWindowEdge, button: gint, 
-                               root_x: gint, root_y: gint, timestamp: guint32){.
-    cdecl, dynlib: lib, importc: "gdk_window_begin_resize_drag".}
-proc begin_move_drag*(window: PWindow, button: gint, root_x: gint, 
-                             root_y: gint, timestamp: guint32){.cdecl, 
-    dynlib: lib, importc: "gdk_window_begin_move_drag".}
-proc invalidate_rect*(window: PWindow, rect: PRectangle, 
-                             invalidate_children: gboolean){.cdecl, dynlib: lib, 
-    importc: "gdk_window_invalidate_rect".}
-proc invalidate_region*(window: PWindow, region: PRegion, 
-                               invalidate_children: gboolean){.cdecl, 
-    dynlib: lib, importc: "gdk_window_invalidate_region".}
-proc invalidate_maybe_recurse*(window: PWindow, region: PRegion, 
-    child_func: window_invalidate_maybe_recurse_child_func, user_data: gpointer){.
-    cdecl, dynlib: lib, importc: "gdk_window_invalidate_maybe_recurse".}
-proc get_update_area*(window: PWindow): PRegion{.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_update_area".}
-proc freeze_updates*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_freeze_updates".}
-proc thaw_updates*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_thaw_updates".}
-proc window_process_all_updates*(){.cdecl, dynlib: lib, 
-                                    importc: "gdk_window_process_all_updates".}
-proc process_updates*(window: PWindow, update_children: gboolean){.cdecl, 
-    dynlib: lib, importc: "gdk_window_process_updates".}
-proc window_set_debug_updates*(setting: gboolean){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_debug_updates".}
-proc window_constrain_size*(geometry: PGeometry, flags: guint, width: gint, 
-                            height: gint, new_width: Pgint, new_height: Pgint){.
-    cdecl, dynlib: lib, importc: "gdk_window_constrain_size".}
-proc get_internal_paint_info*(window: PWindow, e: var PDrawable, 
-                                     x_offset: Pgint, y_offset: Pgint){.cdecl, 
-    dynlib: lib, importc: "gdk_window_get_internal_paint_info".}
-proc set_pointer_hooks*(new_hooks: PPointerHooks): PPointerHooks{.cdecl, 
-    dynlib: lib, importc: "gdk_set_pointer_hooks".}
-proc get_default_root_window*(): PWindow{.cdecl, dynlib: lib, 
-    importc: "gdk_get_default_root_window".}
-proc parse_args*(argc: Pgint, v: var PPgchar){.cdecl, dynlib: lib, 
-    importc: "gdk_parse_args".}
-proc init*(argc: Pgint, v: var PPgchar){.cdecl, dynlib: lib, importc: "gdk_init".}
-proc init_check*(argc: Pgint, v: var PPgchar): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_init_check".}
-when not defined(DISABLE_DEPRECATED): 
-  proc exit*(error_code: gint){.cdecl, dynlib: lib, importc: "gdk_exit".}
-proc set_locale*(): cstring{.cdecl, dynlib: lib, importc: "gdk_set_locale".}
-proc get_program_class*(): cstring{.cdecl, dynlib: lib, 
-                                    importc: "gdk_get_program_class".}
-proc set_program_class*(program_class: cstring){.cdecl, dynlib: lib, 
-    importc: "gdk_set_program_class".}
-proc error_trap_push*(){.cdecl, dynlib: lib, importc: "gdk_error_trap_push".}
-proc error_trap_pop*(): gint{.cdecl, dynlib: lib, importc: "gdk_error_trap_pop".}
-when not defined(DISABLE_DEPRECATED): 
-  proc set_use_xshm*(use_xshm: gboolean){.cdecl, dynlib: lib, 
-      importc: "gdk_set_use_xshm".}
-  proc get_use_xshm*(): gboolean{.cdecl, dynlib: lib, 
-                                  importc: "gdk_get_use_xshm".}
-proc get_display*(): cstring{.cdecl, dynlib: lib, importc: "gdk_get_display".}
-proc get_display_arg_name*(): cstring{.cdecl, dynlib: lib, 
-                                       importc: "gdk_get_display_arg_name".}
-when not defined(DISABLE_DEPRECATED): 
-  proc input_add_full*(source: gint, condition: TInputCondition, 
-                       `function`: TInputFunction, data: gpointer, 
-                       destroy: TDestroyNotify): gint{.cdecl, dynlib: lib, 
-      importc: "gdk_input_add_full".}
-  proc input_add*(source: gint, condition: TInputCondition, 
-                  `function`: TInputFunction, data: gpointer): gint{.cdecl, 
-      dynlib: lib, importc: "gdk_input_add".}
-  proc input_remove*(tag: gint){.cdecl, dynlib: lib, importc: "gdk_input_remove".}
-proc pointer_grab*(window: PWindow, owner_events: gboolean, 
-                   event_mask: TEventMask, confine_to: PWindow, cursor: PCursor, 
-                   time: guint32): TGrabStatus{.cdecl, dynlib: lib, 
-    importc: "gdk_pointer_grab".}
-proc keyboard_grab*(window: PWindow, owner_events: gboolean, time: guint32): TGrabStatus{.
-    cdecl, dynlib: lib, importc: "gdk_keyboard_grab".}
-when not defined(MULTIHEAD_SAFE): 
-  proc pointer_ungrab*(time: guint32){.cdecl, dynlib: lib, 
-                                       importc: "gdk_pointer_ungrab".}
-  proc keyboard_ungrab*(time: guint32){.cdecl, dynlib: lib, 
-                                        importc: "gdk_keyboard_ungrab".}
-  proc pointer_is_grabbed*(): gboolean{.cdecl, dynlib: lib, 
-                                        importc: "gdk_pointer_is_grabbed".}
-  proc screen_width*(): gint{.cdecl, dynlib: lib, importc: "gdk_screen_width".}
-  proc screen_height*(): gint{.cdecl, dynlib: lib, importc: "gdk_screen_height".}
-  proc screen_width_mm*(): gint{.cdecl, dynlib: lib, 
-                                 importc: "gdk_screen_width_mm".}
-  proc screen_height_mm*(): gint{.cdecl, dynlib: lib, 
-                                  importc: "gdk_screen_height_mm".}
-  proc beep*(){.cdecl, dynlib: lib, importc: "gdk_beep".}
-proc flush*(){.cdecl, dynlib: lib, importc: "gdk_flush".}
-when not defined(MULTIHEAD_SAFE): 
-  proc set_double_click_time*(msec: guint){.cdecl, dynlib: lib, 
-      importc: "gdk_set_double_click_time".}
-proc intersect*(src1: PRectangle, src2: PRectangle, dest: PRectangle): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_rectangle_intersect".}
-proc union*(src1: PRectangle, src2: PRectangle, dest: PRectangle){.
-    cdecl, dynlib: lib, importc: "gdk_rectangle_union".}
-proc rectangle_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "gdk_rectangle_get_type".}
-proc TYPE_RECTANGLE*(): GType
-proc wcstombs*(src: PWChar): cstring{.cdecl, dynlib: lib, 
-                                      importc: "gdk_wcstombs".}
-proc mbstowcs*(dest: PWChar, src: cstring, dest_max: gint): gint{.cdecl, 
-    dynlib: lib, importc: "gdk_mbstowcs".}
-when not defined(MULTIHEAD_SAFE): 
-  proc event_send_client_message*(event: PEvent, xid: guint32): gboolean{.cdecl, 
-      dynlib: lib, importc: "gdk_event_send_client_message".}
-  proc event_send_clientmessage_toall*(event: PEvent){.cdecl, dynlib: lib, 
-      importc: "gdk_event_send_clientmessage_toall".}
-proc event_send_client_message_for_display*(display: PDisplay, event: PEvent, 
-    xid: guint32): gboolean{.cdecl, dynlib: lib, importc: "gdk_event_send_client_message_for_display".}
-proc threads_enter*(){.cdecl, dynlib: lib, importc: "gdk_threads_enter".}
-proc threads_leave*(){.cdecl, dynlib: lib, importc: "gdk_threads_leave".}
-proc threads_init*(){.cdecl, dynlib: lib, importc: "gdk_threads_init".}
-proc TYPE_RECTANGLE*(): GType = 
-  result = rectangle_get_type()
-
-proc TYPE_COLORMAP*(): GType = 
-  result = colormap_get_type()
-
-proc COLORMAP*(anObject: pointer): PColormap = 
-  result = cast[PColormap](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_COLORMAP()))
-
-proc COLORMAP_CLASS*(klass: pointer): PColormapClass = 
-  result = cast[PColormapClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_COLORMAP()))
-
-proc IS_COLORMAP*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_COLORMAP())
-
-proc IS_COLORMAP_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_COLORMAP())
-
-proc COLORMAP_GET_CLASS*(obj: pointer): PColormapClass = 
-  result = cast[PColormapClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_COLORMAP()))
-
-proc TYPE_COLOR*(): GType = 
-  result = gdk2.color_get_type()
-
-proc destroy*(cursor: PCursor) = 
-  unref(cursor)
-
-proc TYPE_CURSOR*(): GType = 
-  result = cursor_get_type()
-
-proc TYPE_DRAG_CONTEXT*(): GType = 
-  result = drag_context_get_type()
-
-proc DRAG_CONTEXT*(anObject: Pointer): PDragContext = 
-  result = cast[PDragContext](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_DRAG_CONTEXT()))
-
-proc DRAG_CONTEXT_CLASS*(klass: Pointer): PDragContextClass = 
-  result = cast[PDragContextClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_DRAG_CONTEXT()))
-
-proc IS_DRAG_CONTEXT*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_DRAG_CONTEXT())
-
-proc IS_DRAG_CONTEXT_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_DRAG_CONTEXT())
-
-proc DRAG_CONTEXT_GET_CLASS*(obj: Pointer): PDragContextClass = 
-  result = cast[PDragContextClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_DRAG_CONTEXT()))
-
-proc region_EXTENTCHECK*(r1, r2: PRegionBox): bool = 
-  result = ((r1.x2) > r2.x1) and ((r1.x1) < r2.x2) and ((r1.y2) > r2.y1) and
-      ((r1.y1) < r2.y2)
-
-proc EXTENTS*(r: PRegionBox, idRect: PRegion) = 
-  if ((r.x1) < idRect.extents.x1): 
-    idRect.extents.x1 = r.x1
-  if (r.y1) < idRect.extents.y1: 
-    idRect.extents.y1 = r.y1
-  if (r.x2) > idRect.extents.x2: 
-    idRect.extents.x2 = r.x2
-
-proc MEMCHECK*(reg: PRegion, ARect, firstrect: var PRegionBox): bool = 
-  assert(false)               # to implement
-  
-proc CHECK_PREVIOUS*(Reg: PRegion, R: PRegionBox, 
-                            Rx1, Ry1, Rx2, Ry2: gint): bool = 
-  assert(false)               # to implement
-  
-proc ADDRECT*(reg: PRegion, r: PRegionBox, rx1, ry1, rx2, ry2: gint) = 
-  if (((rx1) < rx2) and ((ry1) < ry2) and
-      CHECK_PREVIOUS(reg, r, rx1, ry1, rx2, ry2)): 
-    r.x1 = rx1
-    r.y1 = ry1
-    r.x2 = rx2
-    r.y2 = ry2
-
-proc ADDRECTNOX*(reg: PRegion, r: PRegionBox, rx1, ry1, rx2, ry2: gint) = 
-  if (((rx1) < rx2) and ((ry1) < ry2) and
-      CHECK_PREVIOUS(reg, r, rx1, ry1, rx2, ry2)): 
-    r.x1 = rx1
-    r.y1 = ry1
-    r.x2 = rx2
-    r.y2 = ry2
-    inc(reg.numRects)
-
-proc EMPTY_REGION*(pReg: PRegion): bool = 
-  result = pReg.numRects == 0'i32
-
-proc REGION_NOT_EMPTY*(pReg: PRegion): bool = 
-  result = pReg.numRects != 0'i32
-
-proc region_INBOX*(r: TRegionBox, x, y: gint): bool = 
-  result = ((((r.x2) > x) and ((r.x1) <= x)) and ((r.y2) > y)) and
-      ((r.y1) <= y)
-
-proc TYPE_DRAWABLE*(): GType = 
-  result = drawable_get_type()
-
-proc DRAWABLE*(anObject: Pointer): PDrawable = 
-  result = cast[PDrawable](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_DRAWABLE()))
-
-proc DRAWABLE_CLASS*(klass: Pointer): PDrawableClass = 
-  result = cast[PDrawableClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_DRAWABLE()))
-
-proc IS_DRAWABLE*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_DRAWABLE())
-
-proc IS_DRAWABLE_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_DRAWABLE())
-
-proc DRAWABLE_GET_CLASS*(obj: Pointer): PDrawableClass = 
-  result = cast[PDrawableClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_DRAWABLE()))
-
-proc pixmap*(drawable: PDrawable, gc: PGC, src: PDrawable, xsrc: gint, 
-                  ysrc: gint, xdest: gint, ydest: gint, width: gint, 
-                  height: gint) = 
-  drawable(drawable, gc, src, xsrc, ysrc, xdest, ydest, width, height)
-
-proc bitmap*(drawable: PDrawable, gc: PGC, src: PDrawable, xsrc: gint, 
-                  ysrc: gint, xdest: gint, ydest: gint, width: gint, 
-                  height: gint) = 
-  drawable(drawable, gc, src, xsrc, ysrc, xdest, ydest, width, height)
-
-proc TYPE_EVENT*(): GType = 
-  result = event_get_type()
-
-proc TYPE_FONT*(): GType = 
-  result = gdk2.font_get_type()
-
-proc TYPE_GC*(): GType = 
-  result = gc_get_type()
-
-proc GC*(anObject: Pointer): PGC = 
-  result = cast[PGC](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_GC()))
-
-proc GC_CLASS*(klass: Pointer): PGCClass = 
-  result = cast[PGCClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_GC()))
-
-proc IS_GC*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_GC())
-
-proc IS_GC_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_GC())
-
-proc GC_GET_CLASS*(obj: Pointer): PGCClass = 
-  result = cast[PGCClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_GC()))
-
-proc destroy*(gc: PGC) = 
-  g_object_unref(G_OBJECT(gc))
-
-proc TYPE_IMAGE*(): GType = 
-  result = image_get_type()
-
-proc IMAGE*(anObject: Pointer): PImage = 
-  result = cast[PImage](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_IMAGE()))
-
-proc IMAGE_CLASS*(klass: Pointer): PImageClass = 
-  result = cast[PImageClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_IMAGE()))
-
-proc IS_IMAGE*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_IMAGE())
-
-proc IS_IMAGE_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_IMAGE())
-
-proc IMAGE_GET_CLASS*(obj: Pointer): PImageClass = 
-  result = cast[PImageClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_IMAGE()))
-
-proc destroy*(image: PImage) = 
-  g_object_unref(G_OBJECT(image))
-
-proc TYPE_DEVICE*(): GType = 
-  result = device_get_type()
-
-proc DEVICE*(anObject: Pointer): PDevice = 
-  result = cast[PDevice](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_DEVICE()))
-
-proc DEVICE_CLASS*(klass: Pointer): PDeviceClass = 
-  result = cast[PDeviceClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_DEVICE()))
-
-proc IS_DEVICE*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_DEVICE())
-
-proc IS_DEVICE_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_DEVICE())
-
-proc DEVICE_GET_CLASS*(obj: Pointer): PDeviceClass = 
-  result = cast[PDeviceClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_DEVICE()))
-
-proc TYPE_KEYMAP*(): GType = 
-  result = keymap_get_type()
-
-proc KEYMAP*(anObject: Pointer): PKeymap = 
-  result = cast[PKeymap](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_KEYMAP()))
-
-proc KEYMAP_CLASS*(klass: Pointer): PKeymapClass = 
-  result = cast[PKeymapClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_KEYMAP()))
-
-proc IS_KEYMAP*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_KEYMAP())
-
-proc IS_KEYMAP_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_KEYMAP())
-
-proc KEYMAP_GET_CLASS*(obj: Pointer): PKeymapClass = 
-  result = cast[PKeymapClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_KEYMAP()))
-
-proc TYPE_PIXMAP*(): GType = 
-  result = pixmap_get_type()
-
-proc PIXMAP*(anObject: Pointer): PPixmap = 
-  result = cast[PPixmap](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_PIXMAP()))
-
-proc PIXMAP_CLASS*(klass: Pointer): PPixmapObjectClass = 
-  result = cast[PPixmapObjectClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_PIXMAP()))
-
-proc IS_PIXMAP*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_PIXMAP())
-
-proc IS_PIXMAP_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_PIXMAP())
-
-proc PIXMAP_GET_CLASS*(obj: Pointer): PPixmapObjectClass = 
-  result = cast[PPixmapObjectClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_PIXMAP()))
-
-proc PIXMAP_OBJECT*(anObject: Pointer): PPixmapObject = 
-  result = cast[PPixmapObject](PIXMAP(anObject))
-
-proc bitmap_ref*(drawable: PDrawable): PDrawable = 
-  result = DRAWABLE(g_object_ref(G_OBJECT(drawable)))
-
-proc bitmap_unref*(drawable: PDrawable) = 
-  g_object_unref(G_OBJECT(drawable))
-
-proc pixmap_ref*(drawable: PDrawable): PDrawable = 
-  result = DRAWABLE(g_object_ref(G_OBJECT(drawable)))
-
-proc pixmap_unref*(drawable: PDrawable) = 
-  g_object_unref(G_OBJECT(drawable))
-
-proc rgb_get_cmap*(): PColormap = 
-  result = nil                #gdk_rgb_get_colormap()
-  
-proc TYPE_DISPLAY*(): GType = 
-  nil
-  #result = nil
-  
-proc DISPLAY_OBJECT*(anObject: pointer): PDisplay = 
-  result = cast[PDisplay](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_DISPLAY()))
-
-proc DISPLAY_CLASS*(klass: pointer): PDisplayClass = 
-  result = cast[PDisplayClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_DISPLAY()))
-
-proc IS_DISPLAY*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_DISPLAY())
-
-proc IS_DISPLAY_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_DISPLAY())
-
-proc DISPLAY_GET_CLASS*(obj: pointer): PDisplayClass = 
-  result = cast[PDisplayClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_DISPLAY()))
-
-proc TYPE_SCREEN*(): GType = 
-  nil
-
-proc SCREEN*(anObject: Pointer): PScreen = 
-  result = cast[PScreen](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_SCREEN()))
-
-proc SCREEN_CLASS*(klass: Pointer): PScreenClass = 
-  result = cast[PScreenClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_SCREEN()))
-
-proc IS_SCREEN*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_SCREEN())
-
-proc IS_SCREEN_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_SCREEN())
-
-proc SCREEN_GET_CLASS*(obj: Pointer): PScreenClass = 
-  result = cast[PScreenClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_SCREEN()))
-
-proc SELECTION_PRIMARY*(): TAtom = 
-  result = `MAKE_ATOM`(1)
-
-proc SELECTION_SECONDARY*(): TAtom = 
-  result = `MAKE_ATOM`(2)
-
-proc SELECTION_CLIPBOARD*(): TAtom = 
-  result = `MAKE_ATOM`(69)
-
-proc TARGET_BITMAP*(): TAtom = 
-  result = `MAKE_ATOM`(5)
-
-proc TARGET_COLORMAP*(): TAtom = 
-  result = `MAKE_ATOM`(7)
-
-proc TARGET_DRAWABLE*(): TAtom = 
-  result = `MAKE_ATOM`(17)
-
-proc TARGET_PIXMAP*(): TAtom = 
-  result = `MAKE_ATOM`(20)
-
-proc TARGET_STRING*(): TAtom = 
-  result = `MAKE_ATOM`(31)
-
-proc SELECTION_TYPE_ATOM*(): TAtom = 
-  result = `MAKE_ATOM`(4)
-
-proc SELECTION_TYPE_BITMAP*(): TAtom = 
-  result = `MAKE_ATOM`(5)
-
-proc SELECTION_TYPE_COLORMAP*(): TAtom = 
-  result = `MAKE_ATOM`(7)
-
-proc SELECTION_TYPE_DRAWABLE*(): TAtom = 
-  result = `MAKE_ATOM`(17)
-
-proc SELECTION_TYPE_INTEGER*(): TAtom = 
-  result = `MAKE_ATOM`(19)
-
-proc SELECTION_TYPE_PIXMAP*(): TAtom = 
-  result = `MAKE_ATOM`(20)
-
-proc SELECTION_TYPE_WINDOW*(): TAtom = 
-  result = `MAKE_ATOM`(33)
-
-proc SELECTION_TYPE_STRING*(): TAtom = 
-  result = `MAKE_ATOM`(31)
-
-proc ATOM_TO_POINTER*(atom: TAtom): pointer = 
-  result = cast[Pointer](atom)
-
-proc POINTER_TO_ATOM*(p: Pointer): TAtom = 
-  result = cast[TAtom](p)
-
-proc `MAKE_ATOM`*(val: guint): TAtom = 
-  result = cast[TAtom](val)
-
-proc NONE*(): TAtom = 
-  result = `MAKE_ATOM`(0)
-
-proc TYPE_VISUAL*(): GType = 
-  result = visual_get_type()
-
-proc VISUAL*(anObject: Pointer): PVisual = 
-  result = cast[PVisual](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_VISUAL()))
-
-proc VISUAL_CLASS*(klass: Pointer): PVisualClass = 
-  result = cast[PVisualClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_VISUAL()))
-
-proc IS_VISUAL*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_VISUAL())
-
-proc IS_VISUAL_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_VISUAL())
-
-proc VISUAL_GET_CLASS*(obj: Pointer): PVisualClass = 
-  result = cast[PVisualClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_VISUAL()))
-
-proc reference*(v: PVisual) = 
-  discard g_object_ref(v)
-
-proc unref*(v: PVisual) = 
-  g_object_unref(v)
-
-proc TYPE_WINDOW*(): GType = 
-  result = window_object_get_type()
-
-proc WINDOW*(anObject: Pointer): PWindow = 
-  result = cast[PWindow](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_WINDOW()))
-
-proc WINDOW_CLASS*(klass: Pointer): PWindowObjectClass = 
-  result = cast[PWindowObjectClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_WINDOW()))
-
-proc IS_WINDOW*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_WINDOW())
-
-proc IS_WINDOW_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_WINDOW())
-
-proc WINDOW_GET_CLASS*(obj: Pointer): PWindowObjectClass = 
-  result = cast[PWindowObjectClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_WINDOW()))
-
-proc WINDOW_OBJECT*(anObject: Pointer): PWindowObject = 
-  result = cast[PWindowObject](WINDOW(anObject))
-
-proc WindowObject_guffaw_gravity*(a: PWindowObject): guint = 
-  result = (a.flag0 and bm_TWindowObject_guffaw_gravity) shr
-      bp_TWindowObject_guffaw_gravity
-
-proc WindowObject_set_guffaw_gravity*(a: PWindowObject, 
-                                      `guffaw_gravity`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`guffaw_gravity` shl bp_TWindowObject_guffaw_gravity) and
-      bm_TWindowObject_guffaw_gravity)
-
-proc WindowObject_input_only*(a: PWindowObject): guint = 
-  result = (a.flag0 and bm_TWindowObject_input_only) shr
-      bp_TWindowObject_input_only
-
-proc WindowObject_set_input_only*(a: PWindowObject, `input_only`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`input_only` shl bp_TWindowObject_input_only) and
-      bm_TWindowObject_input_only)
-
-proc WindowObject_modal_hint*(a: PWindowObject): guint = 
-  result = (a.flag0 and bm_TWindowObject_modal_hint) shr
-      bp_TWindowObject_modal_hint
-
-proc WindowObject_set_modal_hint*(a: PWindowObject, `modal_hint`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`modal_hint` shl bp_TWindowObject_modal_hint) and
-      bm_TWindowObject_modal_hint)
-
-proc WindowObject_destroyed*(a: PWindowObject): guint = 
-  result = (a.flag0 and bm_TWindowObject_destroyed) shr
-      bp_TWindowObject_destroyed
-
-proc WindowObject_set_destroyed*(a: PWindowObject, `destroyed`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`destroyed` shl bp_TWindowObject_destroyed) and
-      bm_TWindowObject_destroyed)
-
-proc ROOT_PARENT*(): PWindow = 
-  result = get_default_root_window()
-
-proc window_get_size*(drawable: PDrawable, width: Pgint, height: Pgint) = 
-  get_size(drawable, width, height)
-
-proc get_type*(window: PWindow): TWindowType = 
-  result = get_window_type(window)
-
-proc window_get_colormap*(drawable: PDrawable): PColormap = 
-  result = get_colormap(drawable)
-
-proc window_set_colormap*(drawable: PDrawable, colormap: PColormap) = 
-  set_colormap(drawable, colormap)
-
-proc window_get_visual*(drawable: PDrawable): PVisual = 
-  result = get_visual(drawable)
-
-proc window_ref*(drawable: PDrawable): PDrawable = 
-  result = DRAWABLE(g_object_ref(G_OBJECT(drawable)))
-
-proc window_unref*(drawable: PDrawable) = 
-  g_object_unref(G_OBJECT(drawable))
-
-proc window_copy_area*(drawable: PDrawable, gc: PGC, x, y: gint, 
-                       source_drawable: PDrawable, source_x, source_y: gint, 
-                       width, height: gint) = 
-  pixmap(drawable, gc, source_drawable, source_x, source_y, x, y, width, 
-         height)
diff --git a/lib/wrappers/gtk/gdk2pixbuf.nim b/lib/wrappers/gtk/gdk2pixbuf.nim
deleted file mode 100644
index ee50317f8..000000000
--- a/lib/wrappers/gtk/gdk2pixbuf.nim
+++ /dev/null
@@ -1,271 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  glib2
-
-when defined(win32): 
-  const 
-    pixbuflib = "libgdk_pixbuf-2.0-0.dll"
-elif defined(macosx): 
-  const 
-    pixbuflib = "libgdk_pixbuf-2.0.0.dylib"
-  # linklib gtk-x11-2.0
-  # linklib gdk-x11-2.0
-  # linklib pango-1.0.0
-  # linklib glib-2.0.0
-  # linklib gobject-2.0.0
-  # linklib gdk_pixbuf-2.0.0
-  # linklib atk-1.0.0
-else: 
-  const 
-    pixbuflib = "libgdk_pixbuf-2.0.so"
-type 
-  PPixbuf* = pointer
-  PPixbufAnimation* = pointer
-  PPixbufAnimationIter* = pointer
-  PPixbufAlphaMode* = ptr TPixbufAlphaMode
-  TPixbufAlphaMode* = enum 
-    PIXBUF_ALPHA_BILEVEL, PIXBUF_ALPHA_FULL
-  PColorspace* = ptr TColorspace
-  TColorspace* = enum 
-    COLORSPACE_RGB
-  TPixbufDestroyNotify* = proc (pixels: Pguchar, data: gpointer){.cdecl.}
-  PPixbufError* = ptr TPixbufError
-  TPixbufError* = enum 
-    PIXBUF_ERROR_CORRUPT_IMAGE, PIXBUF_ERROR_INSUFFICIENT_MEMORY, 
-    PIXBUF_ERROR_BAD_OPTION, PIXBUF_ERROR_UNKNOWN_TYPE, 
-    PIXBUF_ERROR_UNSUPPORTED_OPERATION, PIXBUF_ERROR_FAILED
-  PInterpType* = ptr TInterpType
-  TInterpType* = enum 
-    INTERP_NEAREST, INTERP_TILES, INTERP_BILINEAR, INTERP_HYPER
-
-proc TYPE_PIXBUF*(): GType
-proc PIXBUF*(anObject: pointer): PPixbuf
-proc IS_PIXBUF*(anObject: pointer): bool
-proc TYPE_PIXBUF_ANIMATION*(): GType
-proc PIXBUF_ANIMATION*(anObject: pointer): PPixbufAnimation
-proc IS_PIXBUF_ANIMATION*(anObject: pointer): bool
-proc TYPE_PIXBUF_ANIMATION_ITER*(): GType
-proc PIXBUF_ANIMATION_ITER*(anObject: pointer): PPixbufAnimationIter
-proc IS_PIXBUF_ANIMATION_ITER*(anObject: pointer): bool
-proc PIXBUF_ERROR*(): TGQuark
-proc pixbuf_error_quark*(): TGQuark{.cdecl, dynlib: pixbuflib, 
-                                     importc: "gdk_pixbuf_error_quark".}
-proc pixbuf_get_type*(): GType{.cdecl, dynlib: pixbuflib, 
-                                importc: "gdk_pixbuf_get_type".}
-when not defined(PIXBUF_DISABLE_DEPRECATED): 
-  proc pixbuf_ref*(pixbuf: PPixbuf): PPixbuf{.cdecl, dynlib: pixbuflib, 
-      importc: "gdk_pixbuf_ref".}
-  proc pixbuf_unref*(pixbuf: PPixbuf){.cdecl, dynlib: pixbuflib, 
-                                       importc: "gdk_pixbuf_unref".}
-proc get_colorspace*(pixbuf: PPixbuf): TColorspace{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_get_colorspace".}
-proc get_n_channels*(pixbuf: PPixbuf): int32{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_get_n_channels".}
-proc get_has_alpha*(pixbuf: PPixbuf): gboolean{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_get_has_alpha".}
-proc get_bits_per_sample*(pixbuf: PPixbuf): int32{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_get_bits_per_sample".}
-proc get_pixels*(pixbuf: PPixbuf): Pguchar{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_get_pixels".}
-proc get_width*(pixbuf: PPixbuf): int32{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_get_width".}
-proc get_height*(pixbuf: PPixbuf): int32{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_get_height".}
-proc get_rowstride*(pixbuf: PPixbuf): int32{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_get_rowstride".}
-proc pixbuf_new*(colorspace: TColorspace, has_alpha: gboolean, 
-                 bits_per_sample: int32, width: int32, height: int32): PPixbuf{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_new".}
-proc copy*(pixbuf: PPixbuf): PPixbuf{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_copy".}
-proc new_subpixbuf*(src_pixbuf: PPixbuf, src_x: int32, src_y: int32, 
-                           width: int32, height: int32): PPixbuf{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_new_subpixbuf".}
-proc pixbuf_new_from_file*(filename: cstring, error: pointer): PPixbuf{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_new_from_file".}
-proc pixbuf_new_from_data*(data: Pguchar, colorspace: TColorspace, 
-                           has_alpha: gboolean, bits_per_sample: int32, 
-                           width: int32, height: int32, rowstride: int32, 
-                           destroy_fn: TPixbufDestroyNotify, 
-                           destroy_fn_data: gpointer): PPixbuf{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_new_from_data".}
-proc pixbuf_new_from_xpm_data*(data: PPchar): PPixbuf{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_new_from_xpm_data".}
-proc pixbuf_new_from_inline*(data_length: gint, a: var guint8, 
-                             copy_pixels: gboolean, error: pointer): PPixbuf{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_new_from_inline".}
-proc pixbuf_new_from_file_at_size*(filename: cstring, width, height: gint, 
-                                   error: pointer): PPixbuf{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_new_from_file_at_size".}
-proc pixbuf_new_from_file_at_scale*(filename: cstring, width, height: gint, 
-                                    preserve_aspect_ratio: gboolean, 
-                                    error: pointer): PPixbuf{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_new_from_file_at_scale".}
-proc fill*(pixbuf: PPixbuf, pixel: guint32){.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_fill".}
-proc save*(pixbuf: PPixbuf, filename: cstring, `type`: cstring, 
-                  error: pointer): gboolean{.cdecl, varargs, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_save".}
-proc savev*(pixbuf: PPixbuf, filename: cstring, `type`: cstring, 
-                   option_keys: PPchar, option_values: PPchar, error: pointer): gboolean{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_savev".}
-proc add_alpha*(pixbuf: PPixbuf, substitute_color: gboolean, r: guchar, 
-                       g: guchar, b: guchar): PPixbuf{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_add_alpha".}
-proc copy_area*(src_pixbuf: PPixbuf, src_x: int32, src_y: int32, 
-                       width: int32, height: int32, dest_pixbuf: PPixbuf, 
-                       dest_x: int32, dest_y: int32){.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_copy_area".}
-proc saturate_and_pixelate*(src: PPixbuf, dest: PPixbuf, 
-                                   saturation: gfloat, pixelate: gboolean){.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_saturate_and_pixelate".}
-proc scale*(src: PPixbuf, dest: PPixbuf, dest_x: int32, dest_y: int32, 
-                   dest_width: int32, dest_height: int32, offset_x: float64, 
-                   offset_y: float64, scale_x: float64, scale_y: float64, 
-                   interp_type: TInterpType){.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_scale".}
-proc composite*(src: PPixbuf, dest: PPixbuf, dest_x: int32, 
-                       dest_y: int32, dest_width: int32, dest_height: int32, 
-                       offset_x: float64, offset_y: float64, scale_x: float64, 
-                       scale_y: float64, interp_type: TInterpType, 
-                       overall_alpha: int32){.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_composite".}
-proc composite_color*(src: PPixbuf, dest: PPixbuf, dest_x: int32, 
-                             dest_y: int32, dest_width: int32, 
-                             dest_height: int32, offset_x: float64, 
-                             offset_y: float64, scale_x: float64, 
-                             scale_y: float64, interp_type: TInterpType, 
-                             overall_alpha: int32, check_x: int32, 
-                             check_y: int32, check_size: int32, color1: guint32, 
-                             color2: guint32){.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_composite_color".}
-proc scale_simple*(src: PPixbuf, dest_width: int32, dest_height: int32, 
-                          interp_type: TInterpType): PPixbuf{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_scale_simple".}
-proc composite_color_simple*(src: PPixbuf, dest_width: int32, 
-                                    dest_height: int32, 
-                                    interp_type: TInterpType, 
-                                    overall_alpha: int32, check_size: int32, 
-                                    color1: guint32, color2: guint32): PPixbuf{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_composite_color_simple".}
-proc pixbuf_animation_get_type*(): GType{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_animation_get_type".}
-proc pixbuf_animation_new_from_file*(filename: cstring, error: pointer): PPixbufAnimation{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_animation_new_from_file".}
-when not defined(PIXBUF_DISABLE_DEPRECATED): 
-  proc pixbuf_animation_ref*(animation: PPixbufAnimation): PPixbufAnimation{.
-      cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_animation_ref".}
-  proc pixbuf_animation_unref*(animation: PPixbufAnimation){.cdecl, 
-      dynlib: pixbuflib, importc: "gdk_pixbuf_animation_unref".}
-proc get_width*(animation: PPixbufAnimation): int32{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_animation_get_width".}
-proc get_height*(animation: PPixbufAnimation): int32{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_animation_get_height".}
-proc is_static_image*(animation: PPixbufAnimation): gboolean{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_animation_is_static_image".}
-proc get_static_image*(animation: PPixbufAnimation): PPixbuf{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_animation_get_static_image".}
-proc get_iter*(animation: PPixbufAnimation, e: var TGTimeVal): PPixbufAnimationIter{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_animation_get_iter".}
-proc pixbuf_animation_iter_get_type*(): GType{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_animation_iter_get_type".}
-proc iter_get_delay_time*(iter: PPixbufAnimationIter): int32{.
-    cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_animation_iter_get_delay_time".}
-proc iter_get_pixbuf*(iter: PPixbufAnimationIter): PPixbuf{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_animation_iter_get_pixbuf".}
-proc pixbuf_animation_iter_on_currently_loading_frame*(
-    iter: PPixbufAnimationIter): gboolean{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_animation_iter_on_currently_loading_frame".}
-proc iter_advance*(iter: PPixbufAnimationIter, e: var TGTimeVal): gboolean{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_animation_iter_advance".}
-proc get_option*(pixbuf: PPixbuf, key: cstring): cstring{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_get_option".}
-type 
-  PPixbufLoader* = ptr TPixbufLoader
-  TPixbufLoader*{.final, pure.} = object 
-    parent_instance*: TGObject
-    priv*: gpointer
-
-  PPixbufLoaderClass* = ptr TPixbufLoaderClass
-  TPixbufLoaderClass*{.final, pure.} = object 
-    parent_class*: TGObjectClass
-    area_prepared*: proc (loader: PPixbufLoader){.cdecl.}
-    area_updated*: proc (loader: PPixbufLoader, x: int32, y: int32, 
-                         width: int32, height: int32){.cdecl.}
-    closed*: proc (loader: PPixbufLoader){.cdecl.}
-
-
-proc TYPE_PIXBUF_LOADER*(): GType
-proc PIXBUF_LOADER*(obj: pointer): PPixbufLoader
-proc PIXBUF_LOADER_CLASS*(klass: pointer): PPixbufLoaderClass
-proc IS_PIXBUF_LOADER*(obj: pointer): bool
-proc IS_PIXBUF_LOADER_CLASS*(klass: pointer): bool
-proc PIXBUF_LOADER_GET_CLASS*(obj: pointer): PPixbufLoaderClass
-proc pixbuf_loader_get_type*(): GType{.cdecl, dynlib: pixbuflib, 
-                                       importc: "gdk_pixbuf_loader_get_type".}
-proc pixbuf_loader_new*(): PPixbufLoader{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_loader_new".}
-proc pixbuf_loader_new*(image_type: cstring, error: pointer): PPixbufLoader{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_loader_new_with_type".}
-proc write*(loader: PPixbufLoader, buf: Pguchar, count: gsize, 
-                          error: pointer): gboolean{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_loader_write".}
-proc get_pixbuf*(loader: PPixbufLoader): PPixbuf{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_loader_get_pixbuf".}
-proc get_animation*(loader: PPixbufLoader): PPixbufAnimation{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_loader_get_animation".}
-proc close*(loader: PPixbufLoader, error: pointer): gboolean{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_loader_close".}
-proc TYPE_PIXBUF_LOADER*(): GType = 
-  result = pixbuf_loader_get_type()
-
-proc PIXBUF_LOADER*(obj: pointer): PPixbufLoader = 
-  result = cast[PPixbufLoader](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_PIXBUF_LOADER()))
-
-proc PIXBUF_LOADER_CLASS*(klass: pointer): PPixbufLoaderClass = 
-  result = cast[PPixbufLoaderClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_PIXBUF_LOADER()))
-
-proc IS_PIXBUF_LOADER*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_PIXBUF_LOADER())
-
-proc IS_PIXBUF_LOADER_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_PIXBUF_LOADER())
-
-proc PIXBUF_LOADER_GET_CLASS*(obj: pointer): PPixbufLoaderClass = 
-  result = cast[PPixbufLoaderClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_PIXBUF_LOADER()))
-
-proc TYPE_PIXBUF*(): GType = 
-  result = pixbuf_get_type()
-
-proc PIXBUF*(anObject: pointer): PPixbuf = 
-  result = cast[PPixbuf](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_PIXBUF()))
-
-proc IS_PIXBUF*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_PIXBUF())
-
-proc TYPE_PIXBUF_ANIMATION*(): GType = 
-  result = pixbuf_animation_get_type()
-
-proc PIXBUF_ANIMATION*(anObject: pointer): PPixbufAnimation = 
-  result = cast[PPixbufAnimation](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_PIXBUF_ANIMATION()))
-
-proc IS_PIXBUF_ANIMATION*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_PIXBUF_ANIMATION())
-
-proc TYPE_PIXBUF_ANIMATION_ITER*(): GType = 
-  result = pixbuf_animation_iter_get_type()
-
-proc PIXBUF_ANIMATION_ITER*(anObject: pointer): PPixbufAnimationIter = 
-  result = cast[PPixbufAnimationIter](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_PIXBUF_ANIMATION_ITER()))
-
-proc IS_PIXBUF_ANIMATION_ITER*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_PIXBUF_ANIMATION_ITER())
-
-proc PIXBUF_ERROR*(): TGQuark = 
-  result = pixbuf_error_quark()
diff --git a/lib/wrappers/gtk/gdkglext.nim b/lib/wrappers/gtk/gdkglext.nim
deleted file mode 100644
index 0d550c6e2..000000000
--- a/lib/wrappers/gtk/gdkglext.nim
+++ /dev/null
@@ -1,554 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  Glib2, gdk2
-
-when defined(WIN32): 
-  const 
-    GLExtLib = "libgdkglext-win32-1.0-0.dll"
-elif defined(macosx): 
-  const 
-    GLExtLib = "libgdkglext-x11-1.0.dylib"
-else: 
-  const 
-    GLExtLib = "libgdkglext-x11-1.0.so"
-type 
-  TGLConfigAttrib* = int32
-  TGLConfigCaveat* = int32
-  TGLVisualType* = int32
-  TGLTransparentType* = int32
-  TGLDrawableTypeMask* = int32
-  TGLRenderTypeMask* = int32
-  TGLBufferMask* = int32
-  TGLConfigError* = int32
-  TGLRenderType* = int32
-  TGLDrawableAttrib* = int32
-  TGLPbufferAttrib* = int32
-  TGLEventMask* = int32
-  TGLEventType* = int32
-  TGLDrawableType* = int32
-  TGLProc* = Pointer
-  PGLConfig* = ptr TGLConfig
-  PGLContext* = ptr TGLContext
-  PGLDrawable* = ptr TGLDrawable
-  PGLPixmap* = ptr TGLPixmap
-  PGLWindow* = ptr TGLWindow
-  TGLConfig* = object of TGObject
-    layer_plane*: gint
-    n_aux_buffers*: gint
-    n_sample_buffers*: gint
-    flag0*: int16
-
-  PGLConfigClass* = ptr TGLConfigClass
-  TGLConfigClass* = object of TGObjectClass
-  TGLContext* = object of TGObject
-  PGLContextClass* = ptr TGLContextClass
-  TGLContextClass* = object of TGObjectClass
-  TGLDrawable* = object of TGObject
-  PGLDrawableClass* = ptr TGLDrawableClass
-  TGLDrawableClass* = object of TGTypeInterface
-    create_new_context*: proc (gldrawable: PGLDrawable, share_list: PGLContext, 
-                               direct: gboolean, render_type: int32): PGLContext{.
-        cdecl.}
-    make_context_current*: proc (draw: PGLDrawable, a_read: PGLDrawable, 
-                                 glcontext: PGLContext): gboolean{.cdecl.}
-    is_double_buffered*: proc (gldrawable: PGLDrawable): gboolean{.cdecl.}
-    swap_buffers*: proc (gldrawable: PGLDrawable){.cdecl.}
-    wait_gl*: proc (gldrawable: PGLDrawable){.cdecl.}
-    wait_gdk*: proc (gldrawable: PGLDrawable){.cdecl.}
-    gl_begin*: proc (draw: PGLDrawable, a_read: PGLDrawable, 
-                     glcontext: PGLContext): gboolean{.cdecl.}
-    gl_end*: proc (gldrawable: PGLDrawable){.cdecl.}
-    get_gl_config*: proc (gldrawable: PGLDrawable): PGLConfig{.cdecl.}
-    get_size*: proc (gldrawable: PGLDrawable, width, height: PGInt){.cdecl.}
-
-  TGLPixmap* = object of TGObject
-    drawable*: PDrawable
-
-  PGLPixmapClass* = ptr TGLPixmapClass
-  TGLPixmapClass* = object of TGObjectClass
-  TGLWindow* = object of TGObject
-    drawable*: PDrawable
-
-  PGLWindowClass* = ptr TGLWindowClass
-  TGLWindowClass* = object of TGObjectClass
-
-const 
-  HEADER_GDKGLEXT_MAJOR_VERSION* = 1
-  HEADER_GDKGLEXT_MINOR_VERSION* = 0
-  HEADER_GDKGLEXT_MICRO_VERSION* = 6
-  HEADER_GDKGLEXT_INTERFACE_AGE* = 4
-  HEADER_GDKGLEXT_BINARY_AGE* = 6
-
-proc HEADER_GDKGLEXT_CHECK_VERSION*(major, minor, micro: guint): bool
-var 
-  glext_major_version*{.importc, dynlib: GLExtLib.}: guint
-  glext_minor_version*{.importc, dynlib: GLExtLib.}: guint
-  glext_micro_version*{.importc, dynlib: GLExtLib.}: guint
-  glext_interface_age*{.importc, dynlib: GLExtLib.}: guint
-  glext_binary_age*{.importc, dynlib: GLExtLib.}: guint
-
-const 
-  GL_SUCCESS* = 0
-  GL_ATTRIB_LIST_NONE* = 0
-  GL_USE_GL* = 1
-  GL_BUFFER_SIZE* = 2
-  GL_LEVEL* = 3
-  GL_RGBA* = 4
-  GL_DOUBLEBUFFER* = 5
-  GL_STEREO* = 6
-  GL_AUX_BUFFERS* = 7
-  GL_RED_SIZE* = 8
-  GL_GREEN_SIZE* = 9
-  GL_BLUE_SIZE* = 10
-  GL_ALPHA_SIZE* = 11
-  GL_DEPTH_SIZE* = 12
-  GL_STENCIL_SIZE* = 13
-  GL_ACCUM_RED_SIZE* = 14
-  GL_ACCUM_GREEN_SIZE* = 15
-  GL_ACCUM_BLUE_SIZE* = 16
-  GL_ACCUM_ALPHA_SIZE* = 17
-  GL_CONFIG_CAVEAT* = 0x00000020
-  GL_X_VISUAL_TYPE* = 0x00000022
-  GL_TRANSPARENT_TYPE* = 0x00000023
-  GL_TRANSPARENT_INDEX_VALUE* = 0x00000024
-  GL_TRANSPARENT_RED_VALUE* = 0x00000025
-  GL_TRANSPARENT_GREEN_VALUE* = 0x00000026
-  GL_TRANSPARENT_BLUE_VALUE* = 0x00000027
-  GL_TRANSPARENT_ALPHA_VALUE* = 0x00000028
-  GL_DRAWABLE_TYPE* = 0x00008010
-  GL_RENDER_TYPE* = 0x00008011
-  GL_X_RENDERABLE* = 0x00008012
-  GL_FBCONFIG_ID* = 0x00008013
-  GL_MAX_PBUFFER_WIDTH* = 0x00008016
-  GL_MAX_PBUFFER_HEIGHT* = 0x00008017
-  GL_MAX_PBUFFER_PIXELS* = 0x00008018
-  GL_VISUAL_ID* = 0x0000800B
-  GL_SCREEN* = 0x0000800C
-  GL_SAMPLE_BUFFERS* = 100000
-  GL_SAMPLES* = 100001
-  GL_DONT_CARE* = 0xFFFFFFFF
-  GL_NONE* = 0x00008000
-  GL_CONFIG_CAVEAT_DONT_CARE* = 0xFFFFFFFF
-  GL_CONFIG_CAVEAT_NONE* = 0x00008000
-  GL_SLOW_CONFIG* = 0x00008001
-  GL_NON_CONFORMANT_CONFIG* = 0x0000800D
-  GL_VISUAL_TYPE_DONT_CARE* = 0xFFFFFFFF
-  GL_TRUE_COLOR* = 0x00008002
-  GL_DIRECT_COLOR* = 0x00008003
-  GL_PSEUDO_COLOR* = 0x00008004
-  GL_STATIC_COLOR* = 0x00008005
-  GL_GRAY_SCALE* = 0x00008006
-  GL_STATIC_GRAY* = 0x00008007
-  GL_TRANSPARENT_NONE* = 0x00008000
-  GL_TRANSPARENT_RGB* = 0x00008008
-  GL_TRANSPARENT_INDEX* = 0x00008009
-  GL_WINDOW_BIT* = 1 shl 0
-  GL_PIXMAP_BIT* = 1 shl 1
-  GL_PBUFFER_BIT* = 1 shl 2
-  GL_RGBA_BIT* = 1 shl 0
-  GL_COLOR_INDEX_BIT* = 1 shl 1
-  GL_FRONT_LEFT_BUFFER_BIT* = 1 shl 0
-  GL_FRONT_RIGHT_BUFFER_BIT* = 1 shl 1
-  GL_BACK_LEFT_BUFFER_BIT* = 1 shl 2
-  GL_BACK_RIGHT_BUFFER_BIT* = 1 shl 3
-  GL_AUX_BUFFERS_BIT* = 1 shl 4
-  GL_DEPTH_BUFFER_BIT* = 1 shl 5
-  GL_STENCIL_BUFFER_BIT* = 1 shl 6
-  GL_ACCUM_BUFFER_BIT* = 1 shl 7
-  GL_BAD_SCREEN* = 1
-  GL_BAD_ATTRIBUTE* = 2
-  GL_NO_EXTENSION* = 3
-  GL_BAD_VISUAL* = 4
-  GL_BAD_CONTEXT* = 5
-  GL_BAD_VALUE* = 6
-  GL_BAD_ENUM* = 7
-  GL_RGBA_TYPE* = 0x00008014
-  GL_COLOR_INDEX_TYPE* = 0x00008015
-  GL_PRESERVED_CONTENTS* = 0x0000801B
-  GL_LARGEST_PBUFFER* = 0x0000801C
-  GL_WIDTH* = 0x0000801D
-  GL_HEIGHT* = 0x0000801E
-  GL_EVENT_MASK* = 0x0000801F
-  GL_PBUFFER_PRESERVED_CONTENTS* = 0x0000801B
-  GL_PBUFFER_LARGEST_PBUFFER* = 0x0000801C
-  GL_PBUFFER_HEIGHT* = 0x00008040
-  GL_PBUFFER_WIDTH* = 0x00008041
-  GL_PBUFFER_CLOBBER_MASK* = 1 shl 27
-  GL_DAMAGED* = 0x00008020
-  GL_SAVED* = 0x00008021
-  GL_WINDOW_VALUE* = 0x00008022
-  GL_PBUFFER* = 0x00008023
-
-proc gl_config_attrib_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_config_attrib_get_type".}
-proc TYPE_GL_CONFIG_ATTRIB*(): GType{.cdecl, dynlib: GLExtLib, 
-                                      importc: "gdk_gl_config_attrib_get_type".}
-proc gl_config_caveat_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_config_caveat_get_type".}
-proc TYPE_GL_CONFIG_CAVEAT*(): GType{.cdecl, dynlib: GLExtLib, 
-                                      importc: "gdk_gl_config_caveat_get_type".}
-proc gl_visual_type_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                        importc: "gdk_gl_visual_type_get_type".}
-proc TYPE_GL_VISUAL_TYPE*(): GType{.cdecl, dynlib: GLExtLib, 
-                                    importc: "gdk_gl_visual_type_get_type".}
-proc gl_transparent_type_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_transparent_type_get_type".}
-proc TYPE_GL_TRANSPARENT_TYPE*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_transparent_type_get_type".}
-proc gl_drawable_type_mask_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_drawable_type_mask_get_type".}
-proc TYPE_GL_DRAWABLE_TYPE_MASK*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_drawable_type_mask_get_type".}
-proc gl_render_type_mask_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_render_type_mask_get_type".}
-proc TYPE_GL_RENDER_TYPE_MASK*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_render_type_mask_get_type".}
-proc gl_buffer_mask_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                        importc: "gdk_gl_buffer_mask_get_type".}
-proc TYPE_GL_BUFFER_MASK*(): GType{.cdecl, dynlib: GLExtLib, 
-                                    importc: "gdk_gl_buffer_mask_get_type".}
-proc gl_config_error_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_config_error_get_type".}
-proc TYPE_GL_CONFIG_ERROR*(): GType{.cdecl, dynlib: GLExtLib, 
-                                     importc: "gdk_gl_config_error_get_type".}
-proc gl_render_type_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                        importc: "gdk_gl_render_type_get_type".}
-proc TYPE_GL_RENDER_TYPE*(): GType{.cdecl, dynlib: GLExtLib, 
-                                    importc: "gdk_gl_render_type_get_type".}
-proc gl_drawable_attrib_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_drawable_attrib_get_type".}
-proc TYPE_GL_DRAWABLE_ATTRIB*(): GType{.cdecl, dynlib: GLExtLib, importc: "gdk_gl_drawable_attrib_get_type".}
-proc gl_pbuffer_attrib_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_pbuffer_attrib_get_type".}
-proc TYPE_GL_PBUFFER_ATTRIB*(): GType{.cdecl, dynlib: GLExtLib, importc: "gdk_gl_pbuffer_attrib_get_type".}
-proc gl_event_mask_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                       importc: "gdk_gl_event_mask_get_type".}
-proc TYPE_GL_EVENT_MASK*(): GType{.cdecl, dynlib: GLExtLib, 
-                                   importc: "gdk_gl_event_mask_get_type".}
-proc gl_event_type_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                       importc: "gdk_gl_event_type_get_type".}
-proc TYPE_GL_EVENT_TYPE*(): GType{.cdecl, dynlib: GLExtLib, 
-                                   importc: "gdk_gl_event_type_get_type".}
-proc gl_drawable_type_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_drawable_type_get_type".}
-proc TYPE_GL_DRAWABLE_TYPE*(): GType{.cdecl, dynlib: GLExtLib, 
-                                      importc: "gdk_gl_drawable_type_get_type".}
-proc gl_config_mode_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                        importc: "gdk_gl_config_mode_get_type".}
-proc TYPE_GL_CONFIG_MODE*(): GType{.cdecl, dynlib: GLExtLib, 
-                                    importc: "gdk_gl_config_mode_get_type".}
-proc gl_parse_args*(argc: var int32, argv: ptr cstringArray): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_parse_args".}
-proc gl_init_check*(argc: var int32, argv: ptr cstringArray): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_init_check".}
-proc gl_init*(argc: var int32, argv: ptr cstringArray){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_init".}
-proc gl_query_gl_extension*(extension: cstring): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_query_gl_extension".}
-proc gl_get_proc_address*(proc_name: cstring): TGLProc{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_get_proc_address".}
-const 
-  bm_TGdkGLConfig_is_rgba* = 1 shl 0
-  bp_TGdkGLConfig_is_rgba* = 0
-  bm_TGdkGLConfig_is_double_buffered* = 1 shl 1
-  bp_TGdkGLConfig_is_double_buffered* = 1
-  bm_TGdkGLConfig_as_single_mode* = 1 shl 2
-  bp_TGdkGLConfig_as_single_mode* = 2
-  bm_TGdkGLConfig_is_stereo* = 1 shl 3
-  bp_TGdkGLConfig_is_stereo* = 3
-  bm_TGdkGLConfig_has_alpha* = 1 shl 4
-  bp_TGdkGLConfig_has_alpha* = 4
-  bm_TGdkGLConfig_has_depth_buffer* = 1 shl 5
-  bp_TGdkGLConfig_has_depth_buffer* = 5
-  bm_TGdkGLConfig_has_stencil_buffer* = 1 shl 6
-  bp_TGdkGLConfig_has_stencil_buffer* = 6
-  bm_TGdkGLConfig_has_accum_buffer* = 1 shl 7
-  bp_TGdkGLConfig_has_accum_buffer* = 7
-
-const 
-  GL_MODE_RGB* = 0
-  GL_MODE_RGBA* = 0
-  GL_MODE_INDEX* = 1 shl 0
-  GL_MODE_SINGLE* = 0
-  GL_MODE_DOUBLE* = 1 shl 1
-  GL_MODE_STEREO* = 1 shl 2
-  GL_MODE_ALPHA* = 1 shl 3
-  GL_MODE_DEPTH* = 1 shl 4
-  GL_MODE_STENCIL* = 1 shl 5
-  GL_MODE_ACCUM* = 1 shl 6
-  GL_MODE_MULTISAMPLE* = 1 shl 7
-
-type 
-  TGLConfigMode* = int32
-  PGLConfigMode* = ptr TGLConfigMode
-
-proc TYPE_GL_CONFIG*(): GType
-proc GL_CONFIG*(anObject: Pointer): PGLConfig
-proc GL_CONFIG_CLASS*(klass: Pointer): PGLConfigClass
-proc IS_GL_CONFIG*(anObject: Pointer): bool
-proc IS_GL_CONFIG_CLASS*(klass: Pointer): bool
-proc GL_CONFIG_GET_CLASS*(obj: Pointer): PGLConfigClass
-proc gl_config_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                   importc: "gdk_gl_config_get_type".}
-proc get_screen*(glconfig: PGLConfig): PScreen{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_get_screen".}
-proc get_attrib*(glconfig: PGLConfig, attribute: int, value: var cint): gboolean{.
-    cdecl, dynlib: GLExtLib, importc: "gdk_gl_config_get_attrib".}
-proc get_colormap*(glconfig: PGLConfig): PColormap{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_get_colormap".}
-proc get_visual*(glconfig: PGLConfig): PVisual{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_get_visual".}
-proc get_depth*(glconfig: PGLConfig): gint{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_config_get_depth".}
-proc get_layer_plane*(glconfig: PGLConfig): gint{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_get_layer_plane".}
-proc get_n_aux_buffers*(glconfig: PGLConfig): gint{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_get_n_aux_buffers".}
-proc get_n_sample_buffers*(glconfig: PGLConfig): gint{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_get_n_sample_buffers".}
-proc is_rgba*(glconfig: PGLConfig): gboolean{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_config_is_rgba".}
-proc is_double_buffered*(glconfig: PGLConfig): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_is_double_buffered".}
-proc is_stereo*(glconfig: PGLConfig): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_is_stereo".}
-proc has_alpha*(glconfig: PGLConfig): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_has_alpha".}
-proc has_depth_buffer*(glconfig: PGLConfig): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_has_depth_buffer".}
-proc has_stencil_buffer*(glconfig: PGLConfig): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_has_stencil_buffer".}
-proc has_accum_buffer*(glconfig: PGLConfig): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_has_accum_buffer".}
-proc TYPE_GL_CONTEXT*(): GType
-proc GL_CONTEXT*(anObject: Pointer): PGLContext
-proc GL_CONTEXT_CLASS*(klass: Pointer): PGLContextClass
-proc IS_GL_CONTEXT*(anObject: Pointer): bool
-proc IS_GL_CONTEXT_CLASS*(klass: Pointer): bool
-proc GL_CONTEXT_GET_CLASS*(obj: Pointer): PGLContextClass
-proc gl_context_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                    importc: "gdk_gl_context_get_type".}
-proc context_new*(gldrawable: PGLDrawable, share_list: PGLContext, 
-                     direct: gboolean, render_type: int32): PGLContext{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_context_new".}
-proc destroy*(glcontext: PGLContext){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_context_destroy".}
-proc copy*(glcontext: PGLContext, src: PGLContext, mask: int32): gboolean{.
-    cdecl, dynlib: GLExtLib, importc: "gdk_gl_context_copy".}
-proc get_gl_drawable*(glcontext: PGLContext): PGLDrawable{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_context_get_gl_drawable".}
-proc get_gl_config*(glcontext: PGLContext): PGLConfig{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_context_get_gl_config".}
-proc get_share_list*(glcontext: PGLContext): PGLContext{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_context_get_share_list".}
-proc is_direct*(glcontext: PGLContext): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_context_is_direct".}
-proc get_render_type*(glcontext: PGLContext): int32{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_context_get_render_type".}
-proc gl_context_get_current*(): PGLContext{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_context_get_current".}
-proc TYPE_GL_DRAWABLE*(): GType
-proc GL_DRAWABLE*(inst: Pointer): PGLDrawable
-proc GL_DRAWABLE_CLASS*(vtable: Pointer): PGLDrawableClass
-proc IS_GL_DRAWABLE*(inst: Pointer): bool
-proc IS_GL_DRAWABLE_CLASS*(vtable: Pointer): bool
-proc GL_DRAWABLE_GET_CLASS*(inst: Pointer): PGLDrawableClass
-proc gl_drawable_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                     importc: "gdk_gl_drawable_get_type".}
-proc make_current*(gldrawable: PGLDrawable, glcontext: PGLContext): gboolean{.
-    cdecl, dynlib: GLExtLib, importc: "gdk_gl_drawable_make_current".}
-proc is_double_buffered*(gldrawable: PGLDrawable): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_drawable_is_double_buffered".}
-proc swap_buffers*(gldrawable: PGLDrawable){.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_drawable_swap_buffers".}
-proc wait_gl*(gldrawable: PGLDrawable){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_drawable_wait_gl".}
-proc wait_gdk*(gldrawable: PGLDrawable){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_drawable_wait_gdk".}
-proc gl_begin*(gldrawable: PGLDrawable, glcontext: PGLContext): gboolean{.
-    cdecl, dynlib: GLExtLib, importc: "gdk_gl_drawable_gl_begin".}
-proc gl_end*(gldrawable: PGLDrawable){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_drawable_gl_end".}
-proc get_gl_config*(gldrawable: PGLDrawable): PGLConfig{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_drawable_get_gl_config".}
-proc get_size*(gldrawable: PGLDrawable, width, height: PGInt){.
-    cdecl, dynlib: GLExtLib, importc: "gdk_gl_drawable_get_size".}
-proc gl_drawable_get_current*(): PGLDrawable{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_drawable_get_current".}
-proc TYPE_GL_PIXMAP*(): GType
-proc GL_PIXMAP*(anObject: Pointer): PGLPixmap
-proc GL_PIXMAP_CLASS*(klass: Pointer): PGLPixmapClass
-proc IS_GL_PIXMAP*(anObject: Pointer): bool
-proc IS_GL_PIXMAP_CLASS*(klass: Pointer): bool
-proc GL_PIXMAP_GET_CLASS*(obj: Pointer): PGLPixmapClass
-proc gl_pixmap_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                   importc: "gdk_gl_pixmap_get_type".}
-proc pixmap_new*(glconfig: PGLConfig, pixmap: PPixmap, attrib_list: ptr int32): PGLPixmap{.
-    cdecl, dynlib: GLExtLib, importc: "gdk_gl_pixmap_new".}
-proc destroy*(glpixmap: PGLPixmap){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_pixmap_destroy".}
-proc get_pixmap*(glpixmap: PGLPixmap): PPixmap{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_pixmap_get_pixmap".}
-proc set_gl_capability*(pixmap: PPixmap, glconfig: PGLConfig, 
-                               attrib_list: ptr int32): PGLPixmap{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_pixmap_set_gl_capability".}
-proc unset_gl_capability*(pixmap: PPixmap){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_pixmap_unset_gl_capability".}
-proc is_gl_capable*(pixmap: PPixmap): gboolean{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_pixmap_is_gl_capable".}
-proc get_gl_pixmap*(pixmap: PPixmap): PGLPixmap{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_pixmap_get_gl_pixmap".}
-proc get_gl_drawable*(pixmap: PPixmap): PGLDrawable
-proc TYPE_GL_WINDOW*(): GType
-proc GL_WINDOW*(anObject: Pointer): PGLWindow
-proc GL_WINDOW_CLASS*(klass: Pointer): PGLWindowClass
-proc IS_GL_WINDOW*(anObject: Pointer): bool
-proc IS_GL_WINDOW_CLASS*(klass: Pointer): bool
-proc GL_WINDOW_GET_CLASS*(obj: Pointer): PGLWindowClass
-proc gl_window_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                   importc: "gdk_gl_window_get_type".}
-proc window_new*(glconfig: PGLConfig, window: PWindow, attrib_list: ptr int32): PGLWindow{.
-    cdecl, dynlib: GLExtLib, importc: "gdk_gl_window_new".}
-proc destroy*(glwindow: PGLWindow){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_window_destroy".}
-proc get_window*(glwindow: PGLWindow): PWindow{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_window_get_window".}
-proc set_gl_capability*(window: PWindow, glconfig: PGLConfig, 
-                               attrib_list: ptr int32): PGLWindow{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_window_set_gl_capability".}
-proc unset_gl_capability*(window: PWindow){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_window_unset_gl_capability".}
-proc is_gl_capable*(window: PWindow): gboolean{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_window_is_gl_capable".}
-proc get_gl_window*(window: PWindow): PGLWindow{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_window_get_gl_window".}
-proc get_gl_drawable*(window: PWindow): PGLDrawable
-proc gl_draw_cube*(solid: gboolean, size: float64){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_draw_cube".}
-proc gl_draw_sphere*(solid: gboolean, radius: float64, slices: int32, 
-                     stacks: int32){.cdecl, dynlib: GLExtLib, 
-                                     importc: "gdk_gl_draw_sphere".}
-proc gl_draw_cone*(solid: gboolean, base: float64, height: float64, 
-                   slices: int32, stacks: int32){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_draw_cone".}
-proc gl_draw_torus*(solid: gboolean, inner_radius: float64, 
-                    outer_radius: float64, nsides: int32, rings: int32){.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_draw_torus".}
-proc gl_draw_tetrahedron*(solid: gboolean){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_draw_tetrahedron".}
-proc gl_draw_octahedron*(solid: gboolean){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_draw_octahedron".}
-proc gl_draw_dodecahedron*(solid: gboolean){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_draw_dodecahedron".}
-proc gl_draw_icosahedron*(solid: gboolean){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_draw_icosahedron".}
-proc gl_draw_teapot*(solid: gboolean, scale: float64){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_draw_teapot".}
-proc HEADER_GDKGLEXT_CHECK_VERSION*(major, minor, micro: guint): bool = 
-  result = (HEADER_GDKGLEXT_MAJOR_VERSION > major) or
-      ((HEADER_GDKGLEXT_MAJOR_VERSION == major) and
-      (HEADER_GDKGLEXT_MINOR_VERSION > minor)) or
-      ((HEADER_GDKGLEXT_MAJOR_VERSION == major) and
-      (HEADER_GDKGLEXT_MINOR_VERSION == minor) and
-      (HEADER_GDKGLEXT_MICRO_VERSION >= micro))
-
-proc TYPE_GL_CONFIG*(): GType = 
-  result = gl_config_get_type()
-
-proc GL_CONFIG*(anObject: Pointer): PGLConfig = 
-  result = cast[PGLConfig](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_GL_CONFIG()))
-
-proc GL_CONFIG_CLASS*(klass: Pointer): PGLConfigClass = 
-  result = cast[PGLConfigClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_GL_CONFIG()))
-
-proc IS_GL_CONFIG*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_GL_CONFIG())
-
-proc IS_GL_CONFIG_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_GL_CONFIG())
-
-proc GL_CONFIG_GET_CLASS*(obj: Pointer): PGLConfigClass = 
-  result = cast[PGLConfigClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_GL_CONFIG()))
-
-proc TYPE_GL_CONTEXT*(): GType = 
-  result = gl_context_get_type()
-
-proc GL_CONTEXT*(anObject: Pointer): PGLContext = 
-  result = cast[PGLContext](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_GL_CONTEXT()))
-
-proc GL_CONTEXT_CLASS*(klass: Pointer): PGLContextClass = 
-  result = cast[PGLContextClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_GL_CONTEXT()))
-
-proc IS_GL_CONTEXT*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_GL_CONTEXT())
-
-proc IS_GL_CONTEXT_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_GL_CONTEXT())
-
-proc GL_CONTEXT_GET_CLASS*(obj: Pointer): PGLContextClass = 
-  result = cast[PGLContextClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_GL_CONTEXT()))
-
-proc TYPE_GL_DRAWABLE*(): GType = 
-  result = gl_drawable_get_type()
-
-proc GL_DRAWABLE*(inst: Pointer): PGLDrawable = 
-  result = cast[PGLDrawable](G_TYPE_CHECK_INSTANCE_CAST(inst, TYPE_GL_DRAWABLE()))
-
-proc GL_DRAWABLE_CLASS*(vtable: Pointer): PGLDrawableClass = 
-  result = cast[PGLDrawableClass](G_TYPE_CHECK_CLASS_CAST(vtable, 
-      TYPE_GL_DRAWABLE()))
-
-proc IS_GL_DRAWABLE*(inst: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(inst, TYPE_GL_DRAWABLE())
-
-proc IS_GL_DRAWABLE_CLASS*(vtable: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(vtable, TYPE_GL_DRAWABLE())
-
-proc GL_DRAWABLE_GET_CLASS*(inst: Pointer): PGLDrawableClass = 
-  result = cast[PGLDrawableClass](G_TYPE_INSTANCE_GET_INTERFACE(inst, 
-      TYPE_GL_DRAWABLE()))
-
-proc TYPE_GL_PIXMAP*(): GType = 
-  result = gl_pixmap_get_type()
-
-proc GL_PIXMAP*(anObject: Pointer): PGLPixmap = 
-  result = cast[PGLPixmap](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_GL_PIXMAP()))
-
-proc GL_PIXMAP_CLASS*(klass: Pointer): PGLPixmapClass = 
-  result = cast[PGLPixmapClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_GL_PIXMAP()))
-
-proc IS_GL_PIXMAP*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_GL_PIXMAP())
-
-proc IS_GL_PIXMAP_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_GL_PIXMAP())
-
-proc GL_PIXMAP_GET_CLASS*(obj: Pointer): PGLPixmapClass = 
-  result = cast[PGLPixmapClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_GL_PIXMAP()))
-
-proc get_gl_drawable*(pixmap: PPixmap): PGLDrawable = 
-  result = GL_DRAWABLE(get_gl_pixmap(pixmap))
-
-proc TYPE_GL_WINDOW*(): GType = 
-  result = gl_window_get_type()
-
-proc GL_WINDOW*(anObject: Pointer): PGLWindow = 
-  result = cast[PGLWindow](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_GL_WINDOW()))
-
-proc GL_WINDOW_CLASS*(klass: Pointer): PGLWindowClass = 
-  result = cast[PGLWindowClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_GL_WINDOW()))
-
-proc IS_GL_WINDOW*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_GL_WINDOW())
-
-proc IS_GL_WINDOW_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_GL_WINDOW())
-
-proc GL_WINDOW_GET_CLASS*(obj: Pointer): PGLWindowClass = 
-  result = cast[PGLWindowClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_GL_WINDOW()))
-
-proc get_gl_drawable*(window: PWindow): PGLDrawable = 
-  result = GL_DRAWABLE(get_gl_window(window))
diff --git a/lib/wrappers/gtk/glib2.nim b/lib/wrappers/gtk/glib2.nim
deleted file mode 100644
index 3fa672c85..000000000
--- a/lib/wrappers/gtk/glib2.nim
+++ /dev/null
@@ -1,4540 +0,0 @@
-{.deadCodeElim: on.}
-when defined(windows): 
-  const 
-    gliblib = "libglib-2.0-0.dll"
-    gmodulelib = "libgmodule-2.0-0.dll"
-    gobjectlib = "libgobject-2.0-0.dll"
-elif defined(macosx): 
-  const 
-    gliblib = "libglib-2.0.dylib"
-    gmodulelib = "libgmodule-2.0.dylib"
-    gobjectlib = "libgobject-2.0.dylib"
-else: 
-  const 
-    gliblib = "libglib-2.0.so(|.0)"
-    gmodulelib = "libgmodule-2.0.so(|.0)"
-    gobjectlib = "libgobject-2.0.so(|.0)"
-# gthreadlib = "libgthread-2.0.so"
-
-type 
-  PGTypePlugin* = pointer
-  PGParamSpecPool* = pointer
-  PPchar* = ptr cstring
-  PPPchar* = ptr PPchar
-  PPPgchar* = ptr PPgchar
-  PPgchar* = ptr cstring
-  gchar* = char
-  gshort* = cshort
-  glong* = clong
-  gint* = cint
-  gboolean* = distinct gint
-  guchar* = char
-  gushort* = int16
-  gulong* = int
-  guint* = cint
-  gfloat* = cfloat
-  gdouble* = cdouble
-  gpointer* = pointer
-  Pgshort* = ptr gshort
-  Pglong* = ptr glong
-  Pgint* = ptr gint
-  PPgint* = ptr Pgint
-  Pgboolean* = ptr gboolean
-  Pguchar* = ptr guchar
-  PPguchar* = ptr Pguchar
-  Pgushort* = ptr gushort
-  Pgulong* = ptr gulong
-  Pguint* = ptr guint
-  Pgfloat* = ptr gfloat
-  Pgdouble* = ptr gdouble
-  pgpointer* = ptr gpointer
-  gconstpointer* = pointer
-  PGCompareFunc* = ptr TGCompareFunc
-  TGCompareFunc* = proc (a, b: gconstpointer): gint{.cdecl.}
-  PGCompareDataFunc* = ptr TGCompareDataFunc
-  TGCompareDataFunc* = proc (a, b: gconstpointer, user_data: gpointer): gint{.
-      cdecl.}
-  PGEqualFunc* = ptr TGEqualFunc
-  TGEqualFunc* = proc (a, b: gconstpointer): gboolean{.cdecl.}
-  PGDestroyNotify* = ptr TGDestroyNotify
-  TGDestroyNotify* = proc (data: gpointer){.cdecl.}
-  PGFunc* = ptr TGFunc
-  TGFunc* = proc (data, userdata: gpointer, key: gconstpointer){.cdecl.}
-  PGHashFunc* = ptr TGHashFunc
-  TGHashFunc* = proc (key: gconstpointer): guint{.cdecl.}
-  PGHFunc* = ptr TGHFunc
-  TGHFunc* = proc (key, value, user_data: gpointer){.cdecl.}
-  PGFreeFunc* = proc (data: gpointer){.cdecl.}
-  PGTimeVal* = ptr TGTimeVal
-  TGTimeVal*{.final.} = object 
-    tv_sec*: glong
-    tv_usec*: glong
-
-  guint64* = int64
-  gint8* = int8
-  guint8* = int8
-  gint16* = int16
-  guint16* = int16
-  gint32* = int32
-  guint32* = int32
-  gint64* = int64
-  gssize* = int32
-  gsize* = int32
-  Pgint8* = ptr gint8
-  Pguint8* = ptr guint8
-  Pgint16* = ptr gint16
-  Pguint16* = ptr guint16
-  Pgint32* = ptr gint32
-  Pguint32* = ptr guint32
-  Pgint64* = ptr gint64
-  Pguint64* = ptr guint64
-  pgssize* = ptr gssize
-  pgsize* = ptr gsize
-  TGQuark* = guint32
-  PGQuark* = ptr TGQuark
-  PGTypeCValue* = ptr TGTypeCValue
-  TGTypeCValue*{.final.} = object 
-    v_double*: gdouble
-
-  GType* = gulong
-  PGType* = ptr GType
-  PGTypeClass* = ptr TGTypeClass
-  TGTypeClass*{.final.} = object 
-    g_type*: GType
-
-  PGTypeInstance* = ptr TGTypeInstance
-  TGTypeInstance*{.final.} = object 
-    g_class*: PGTypeClass
-
-  PGTypeInterface* = ptr TGTypeInterface
-  TGTypeInterface*{.pure, inheritable.} = object 
-    g_type*: GType
-    g_instance_type*: GType
-
-  PGTypeQuery* = ptr TGTypeQuery
-  TGTypeQuery*{.final.} = object 
-    theType*: GType
-    type_name*: cstring
-    class_size*: guint
-    instance_size*: guint
-
-  PGValue* = ptr TGValue
-  TGValue*{.final.} = object 
-    g_type*: GType
-    data*: array[0..1, gdouble]
-
-  PGData* = pointer
-  PPGData* = ptr PGData
-  PGSList* = ptr TGSList
-  PPGSList* = ptr PGSList
-  TGSList*{.final.} = object 
-    data*: gpointer
-    next*: PGSList
-
-  PGList* = ptr TGList
-  TGList*{.final.} = object 
-    data*: gpointer
-    next*: PGList
-    prev*: PGList
-
-  TGParamFlags* = int32
-  PGParamFlags* = ptr TGParamFlags
-  PGParamSpec* = ptr TGParamSpec
-  PPGParamSpec* = ptr PGParamSpec
-  TGParamSpec*{.final.} = object 
-    g_type_instance*: TGTypeInstance
-    name*: cstring
-    flags*: TGParamFlags
-    value_type*: GType
-    owner_type*: GType
-    nick*: cstring
-    blurb*: cstring
-    qdata*: PGData
-    ref_count*: guint
-    param_id*: guint
-
-  PGParamSpecClass* = ptr TGParamSpecClass
-  TGParamSpecClass*{.final.} = object 
-    g_type_class*: TGTypeClass
-    value_type*: GType
-    finalize*: proc (pspec: PGParamSpec){.cdecl.}
-    value_set_default*: proc (pspec: PGParamSpec, value: PGValue){.cdecl.}
-    value_validate*: proc (pspec: PGParamSpec, value: PGValue): gboolean{.cdecl.}
-    values_cmp*: proc (pspec: PGParamSpec, value1: PGValue, value2: PGValue): gint{.
-        cdecl.}
-    dummy*: array[0..3, gpointer]
-
-  PGParameter* = ptr TGParameter
-  TGParameter*{.final.} = object 
-    name*: cstring
-    value*: TGValue
-
-  TGBoxedCopyFunc* = proc (boxed: gpointer): gpointer{.cdecl.}
-  TGBoxedFreeFunc* = proc (boxed: gpointer){.cdecl.}
-  PGsource = pointer          # I don't know and don't care
-
-converter gbool*(nimbool: bool): gboolean =
-  return ord(nimbool).gboolean
-
-converter toBool*(gbool: gboolean): bool =
-  return int(gbool) == 1
-
-const 
-  G_TYPE_FUNDAMENTAL_SHIFT* = 2
-  G_TYPE_FUNDAMENTAL_MAX* = 255 shl G_TYPE_FUNDAMENTAL_SHIFT
-  G_TYPE_INVALID* = GType(0 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_NONE* = GType(1 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_INTERFACE* = GType(2 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_CHAR* = GType(3 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_UCHAR* = GType(4 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_BOOLEAN* = GType(5 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_INT* = GType(6 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_UINT* = GType(7 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_LONG* = GType(8 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_ULONG* = GType(9 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_INT64* = GType(10 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_UINT64* = GType(11 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_ENUM* = GType(12 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_FLAGS* = GType(13 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_FLOAT* = GType(14 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_DOUBLE* = GType(15 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_STRING* = GType(16 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_POINTER* = GType(17 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_BOXED* = GType(18 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_PARAM* = GType(19 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_OBJECT* = GType(20 shl G_TYPE_FUNDAMENTAL_SHIFT)
-
-const
-  G_PRIORITY_HIGH_IDLE* = 100
-  G_PRIORITY_DEFAULT_IDLE* = 200
-  G_PRIORITY_LOW* = 300
-  G_PRIORITY_HIGH* = -100
-  G_PRIORITY_DEFAULT* = 0
-  
-
-proc G_TYPE_MAKE_FUNDAMENTAL*(x: int): GType
-const 
-  G_TYPE_RESERVED_GLIB_FIRST* = 21
-  G_TYPE_RESERVED_GLIB_LAST* = 31
-  G_TYPE_RESERVED_BSE_FIRST* = 32
-  G_TYPE_RESERVED_BSE_LAST* = 48
-  G_TYPE_RESERVED_USER_FIRST* = 49
-
-proc G_TYPE_IS_FUNDAMENTAL*(theType: GType): bool
-proc G_TYPE_IS_DERIVED*(theType: GType): bool
-proc G_TYPE_IS_INTERFACE*(theType: GType): bool
-proc G_TYPE_IS_CLASSED*(theType: GType): gboolean
-proc G_TYPE_IS_INSTANTIATABLE*(theType: GType): bool
-proc G_TYPE_IS_DERIVABLE*(theType: GType): bool
-proc G_TYPE_IS_DEEP_DERIVABLE*(theType: GType): bool
-proc G_TYPE_IS_ABSTRACT*(theType: GType): bool
-proc G_TYPE_IS_VALUE_ABSTRACT*(theType: GType): bool
-proc G_TYPE_IS_VALUE_TYPE*(theType: GType): bool
-proc G_TYPE_HAS_VALUE_TABLE*(theType: GType): bool
-proc G_TYPE_CHECK_INSTANCE*(instance: Pointer): gboolean
-proc G_TYPE_CHECK_INSTANCE_CAST*(instance: Pointer, g_type: GType): PGTypeInstance
-proc G_TYPE_CHECK_INSTANCE_TYPE*(instance: Pointer, g_type: GType): bool
-proc G_TYPE_INSTANCE_GET_CLASS*(instance: Pointer, g_type: GType): PGTypeClass
-proc G_TYPE_INSTANCE_GET_INTERFACE*(instance: Pointer, g_type: GType): Pointer
-proc G_TYPE_CHECK_CLASS_CAST*(g_class: pointer, g_type: GType): Pointer
-proc G_TYPE_CHECK_CLASS_TYPE*(g_class: pointer, g_type: GType): bool
-proc G_TYPE_CHECK_VALUE*(value: Pointer): bool
-proc G_TYPE_CHECK_VALUE_TYPE*(value: pointer, g_type: GType): bool
-proc G_TYPE_FROM_INSTANCE*(instance: Pointer): GType
-proc G_TYPE_FROM_CLASS*(g_class: Pointer): GType
-proc G_TYPE_FROM_INTERFACE*(g_iface: Pointer): GType
-type 
-  TGTypeDebugFlags* = int32
-  PGTypeDebugFlags* = ptr TGTypeDebugFlags
-
-const 
-  G_TYPE_DEBUG_NONE* = 0
-  G_TYPE_DEBUG_OBJECTS* = 1 shl 0
-  G_TYPE_DEBUG_SIGNALS* = 1 shl 1
-  G_TYPE_DEBUG_MASK* = 0x00000003
-
-proc g_type_init*(){.cdecl, dynlib: gobjectlib, importc: "g_type_init".}
-proc g_type_init*(debug_flags: TGTypeDebugFlags){.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_init_with_debug_flags".}
-proc g_type_name*(theType: GType): cstring{.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_name".}
-proc g_type_qname*(theType: GType): TGQuark{.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_qname".}
-proc g_type_from_name*(name: cstring): GType{.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_from_name".}
-proc g_type_parent*(theType: GType): GType{.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_parent".}
-proc g_type_depth*(theType: GType): guint{.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_depth".}
-proc g_type_next_base*(leaf_type: GType, root_type: GType): GType{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_next_base".}
-proc g_type_is_a*(theType: GType, is_a_type: GType): gboolean{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_is_a".}
-proc g_type_class_ref*(theType: GType): gpointer{.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_class_ref".}
-proc g_type_class_peek*(theType: GType): gpointer{.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_class_peek".}
-proc g_type_class_unref*(g_class: gpointer){.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_class_unref".}
-proc g_type_class_peek_parent*(g_class: gpointer): gpointer{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_class_peek_parent".}
-proc g_type_interface_peek*(instance_class: gpointer, iface_type: GType): gpointer{.
-    cdecl, dynlib: gobjectlib, importc: "g_type_interface_peek".}
-proc g_type_interface_peek_parent*(g_iface: gpointer): gpointer{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_interface_peek_parent".}
-proc g_type_children*(theType: GType, n_children: Pguint): PGType{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_children".}
-proc g_type_interfaces*(theType: GType, n_interfaces: Pguint): PGType{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_interfaces".}
-proc g_type_set_qdata*(theType: GType, quark: TGQuark, data: gpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_set_qdata".}
-proc g_type_get_qdata*(theType: GType, quark: TGQuark): gpointer{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_get_qdata".}
-proc g_type_query*(theType: GType, query: PGTypeQuery){.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_query".}
-type 
-  TGBaseInitFunc* = proc (g_class: gpointer){.cdecl.}
-  TGBaseFinalizeFunc* = proc (g_class: gpointer){.cdecl.}
-  TGClassInitFunc* = proc (g_class: gpointer, class_data: gpointer){.cdecl.}
-  TGClassFinalizeFunc* = proc (g_class: gpointer, class_data: gpointer){.cdecl.}
-  TGInstanceInitFunc* = proc (instance: PGTypeInstance, g_class: gpointer){.
-      cdecl.}
-  TGInterfaceInitFunc* = proc (g_iface: gpointer, iface_data: gpointer){.cdecl.}
-  TGInterfaceFinalizeFunc* = proc (g_iface: gpointer, iface_data: gpointer){.
-      cdecl.}
-  TGTypeClassCacheFunc* = proc (cache_data: gpointer, g_class: PGTypeClass): gboolean{.
-      cdecl.}
-  TGTypeFundamentalFlags* = int32
-  PGTypeFundamentalFlags* = ptr TGTypeFundamentalFlags
-
-const 
-  G_TYPE_FLAG_CLASSED* = 1 shl 0
-  G_TYPE_FLAG_INSTANTIATABLE* = 1 shl 1
-  G_TYPE_FLAG_DERIVABLE* = 1 shl 2
-  G_TYPE_FLAG_DEEP_DERIVABLE* = 1 shl 3
-
-type 
-  TGTypeFlags* = int32
-  PGTypeFlags* = ptr TGTypeFlags
-
-const 
-  G_TYPE_FLAG_ABSTRACT* = 1 shl 4
-  G_TYPE_FLAG_VALUE_ABSTRACT* = 1 shl 5
-
-type 
-  PGTypeValueTable* = ptr TGTypeValueTable
-  TGTypeValueTable*{.final.} = object 
-    value_init*: proc (value: PGValue){.cdecl.}
-    value_free*: proc (value: PGValue){.cdecl.}
-    value_copy*: proc (src_value: PGValue, dest_value: PGValue){.cdecl.}
-    value_peek_pointer*: proc (value: PGValue): gpointer{.cdecl.}
-    collect_format*: cstring
-    collect_value*: proc (value: PGValue, n_collect_values: guint, 
-                          collect_values: PGTypeCValue, collect_flags: guint): cstring{.
-        cdecl.}
-    lcopy_format*: cstring
-    lcopy_value*: proc (value: PGValue, n_collect_values: guint, 
-                        collect_values: PGTypeCValue, collect_flags: guint): cstring{.
-        cdecl.}
-
-  PGTypeInfo* = ptr TGTypeInfo
-  TGTypeInfo*{.final.} = object 
-    class_size*: guint16
-    base_init*: TGBaseInitFunc
-    base_finalize*: TGBaseFinalizeFunc
-    class_init*: TGClassInitFunc
-    class_finalize*: TGClassFinalizeFunc
-    class_data*: gconstpointer
-    instance_size*: guint16
-    n_preallocs*: guint16
-    instance_init*: TGInstanceInitFunc
-    value_table*: PGTypeValueTable
-
-  PGTypeFundamentalInfo* = ptr TGTypeFundamentalInfo
-  TGTypeFundamentalInfo*{.final.} = object 
-    type_flags*: TGTypeFundamentalFlags
-
-  PGInterfaceInfo* = ptr TGInterfaceInfo
-  TGInterfaceInfo*{.final.} = object 
-    interface_init*: TGInterfaceInitFunc
-    interface_finalize*: TGInterfaceFinalizeFunc
-    interface_data*: gpointer
-
-
-proc g_type_register_static*(parent_type: GType, type_name: cstring, 
-                             info: PGTypeInfo, flags: TGTypeFlags): GType{.
-    cdecl, dynlib: gobjectlib, importc: "g_type_register_static".}
-proc g_type_register_dynamic*(parent_type: GType, type_name: cstring, 
-                              plugin: PGTypePlugin, flags: TGTypeFlags): GType{.
-    cdecl, dynlib: gobjectlib, importc: "g_type_register_dynamic".}
-proc g_type_register_fundamental*(type_id: GType, type_name: cstring, 
-                                  info: PGTypeInfo, 
-                                  finfo: PGTypeFundamentalInfo, 
-                                  flags: TGTypeFlags): GType{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_register_fundamental".}
-proc g_type_add_interface_static*(instance_type: GType, interface_type: GType, 
-                                  info: PGInterfaceInfo){.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_add_interface_static".}
-proc g_type_add_interface_dynamic*(instance_type: GType, interface_type: GType, 
-                                   plugin: PGTypePlugin){.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_add_interface_dynamic".}
-proc g_type_interface_add_prerequisite*(interface_type: GType, 
-                                        prerequisite_type: GType){.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_interface_add_prerequisite".}
-proc g_type_get_plugin*(theType: GType): PGTypePlugin{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_get_plugin".}
-proc g_type_interface_get_plugin*(instance_type: GType, 
-                                  implementation_type: GType): PGTypePlugin{.
-    cdecl, dynlib: gobjectlib, importc: "g_type_interface_get_plugin".}
-proc g_type_fundamental_next*(): GType{.cdecl, dynlib: gobjectlib, 
-                                        importc: "g_type_fundamental_next".}
-proc g_type_fundamental*(type_id: GType): GType{.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_fundamental".}
-proc g_type_create_instance*(theType: GType): PGTypeInstance{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_create_instance".}
-proc free_instance*(instance: PGTypeInstance){.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_free_instance".}
-proc g_type_add_class_cache_func*(cache_data: gpointer, 
-                                  cache_func: TGTypeClassCacheFunc){.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_add_class_cache_func".}
-proc g_type_remove_class_cache_func*(cache_data: gpointer, 
-                                     cache_func: TGTypeClassCacheFunc){.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_remove_class_cache_func".}
-proc g_type_class_unref_uncached*(g_class: gpointer){.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_class_unref_uncached".}
-proc g_type_value_table_peek*(theType: GType): PGTypeValueTable{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_value_table_peek".}
-proc private_g_type_check_instance*(instance: PGTypeInstance): gboolean{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_check_instance".}
-proc private_g_type_check_instance_cast*(instance: PGTypeInstance, 
-    iface_type: GType): PGTypeInstance{.cdecl, dynlib: gobjectlib, 
-                                        importc: "g_type_check_instance_cast".}
-proc private_g_type_check_instance_is_a*(instance: PGTypeInstance, 
-    iface_type: GType): gboolean{.cdecl, dynlib: gobjectlib, 
-                                  importc: "g_type_check_instance_is_a".}
-proc private_g_type_check_class_cast*(g_class: PGTypeClass, is_a_type: GType): PGTypeClass{.
-    cdecl, dynlib: gobjectlib, importc: "g_type_check_class_cast".}
-proc private_g_type_check_class_is_a*(g_class: PGTypeClass, is_a_type: GType): gboolean{.
-    cdecl, dynlib: gobjectlib, importc: "g_type_check_class_is_a".}
-proc private_g_type_check_is_value_type*(theType: GType): gboolean{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_check_is_value_type".}
-proc private_g_type_check_value*(value: PGValue): gboolean{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_check_value".}
-proc private_g_type_check_value_holds*(value: PGValue, theType: GType): gboolean{.
-    cdecl, dynlib: gobjectlib, importc: "g_type_check_value_holds".}
-proc private_g_type_test_flags*(theType: GType, flags: guint): gboolean{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_test_flags".}
-proc name_from_instance*(instance: PGTypeInstance): cstring{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_name_from_instance".}
-proc name_from_class*(g_class: PGTypeClass): cstring{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_name_from_class".}
-const 
-  G_TYPE_FLAG_RESERVED_ID_BIT* = GType(1 shl 0)
-
-proc G_TYPE_IS_VALUE*(theType: GType): bool
-proc G_IS_VALUE*(value: pointer): bool
-proc G_VALUE_TYPE*(value: Pointer): GType
-proc G_VALUE_TYPE_NAME*(value: Pointer): cstring
-proc G_VALUE_HOLDS*(value: pointer, g_type: GType): bool
-type 
-  TGValueTransform* = proc (src_value: PGValue, dest_value: PGValue){.cdecl.}
-
-proc init*(value: PGValue, g_type: GType): PGValue{.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_init".}
-proc copy*(src_value: PGValue, dest_value: PGValue){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_copy".}
-proc reset*(value: PGValue): PGValue{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_reset".}
-proc unset*(value: PGValue){.cdecl, dynlib: gobjectlib, 
-                                     importc: "g_value_unset".}
-proc set_instance*(value: PGValue, instance: gpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_instance".}
-proc fits_pointer*(value: PGValue): gboolean{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_fits_pointer".}
-proc peek_pointer*(value: PGValue): gpointer{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_peek_pointer".}
-proc g_value_type_compatible*(src_type: GType, dest_type: GType): gboolean{.
-    cdecl, dynlib: gobjectlib, importc: "g_value_type_compatible".}
-proc g_value_type_transformable*(src_type: GType, dest_type: GType): gboolean{.
-    cdecl, dynlib: gobjectlib, importc: "g_value_type_transformable".}
-proc transform*(src_value: PGValue, dest_value: PGValue): gboolean{.
-    cdecl, dynlib: gobjectlib, importc: "g_value_transform".}
-proc g_value_register_transform_func*(src_type: GType, dest_type: GType, 
-                                      transform_func: TGValueTransform){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_register_transform_func".}
-const 
-  G_VALUE_NOCOPY_CONTENTS* = 1 shl 27
-
-type 
-  PGValueArray* = ptr TGValueArray
-  TGValueArray*{.final.} = object 
-    n_values*: guint
-    values*: PGValue
-    n_prealloced*: guint
-
-
-proc array_get_nth*(value_array: PGValueArray, index: guint): PGValue{.
-    cdecl, dynlib: gobjectlib, importc: "g_value_array_get_nth".}
-proc g_value_array_new*(n_prealloced: guint): PGValueArray{.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_array_new".}
-proc array_free*(value_array: PGValueArray){.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_array_free".}
-proc array_copy*(value_array: PGValueArray): PGValueArray{.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_array_copy".}
-proc array_prepend*(value_array: PGValueArray, value: PGValue): PGValueArray{.
-    cdecl, dynlib: gobjectlib, importc: "g_value_array_prepend".}
-proc array_append*(value_array: PGValueArray, value: PGValue): PGValueArray{.
-    cdecl, dynlib: gobjectlib, importc: "g_value_array_append".}
-proc array_insert*(value_array: PGValueArray, index: guint, 
-                           value: PGValue): PGValueArray{.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_array_insert".}
-proc array_remove*(value_array: PGValueArray, index: guint): PGValueArray{.
-    cdecl, dynlib: gobjectlib, importc: "g_value_array_remove".}
-proc array_sort*(value_array: PGValueArray, compare_func: TGCompareFunc): PGValueArray{.
-    cdecl, dynlib: gobjectlib, importc: "g_value_array_sort".}
-proc array_sort*(value_array: PGValueArray, 
-                                   compare_func: TGCompareDataFunc, 
-                                   user_data: gpointer): PGValueArray{.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_array_sort_with_data".}
-const 
-  G_VALUE_COLLECT_INT* = 'i'
-  G_VALUE_COLLECT_LONG* = 'l'
-  G_VALUE_COLLECT_INT64* = 'q'
-  G_VALUE_COLLECT_DOUBLE* = 'd'
-  G_VALUE_COLLECT_POINTER* = 'p'
-  G_VALUE_COLLECT_FORMAT_MAX_LENGTH* = 8
-
-proc HOLDS_CHAR*(value: PGValue): bool
-proc HOLDS_UCHAR*(value: PGValue): bool
-proc HOLDS_BOOLEAN*(value: PGValue): bool
-proc HOLDS_INT*(value: PGValue): bool
-proc HOLDS_UINT*(value: PGValue): bool
-proc HOLDS_LONG*(value: PGValue): bool
-proc HOLDS_ULONG*(value: PGValue): bool
-proc HOLDS_INT64*(value: PGValue): bool
-proc HOLDS_UINT64*(value: PGValue): bool
-proc HOLDS_FLOAT*(value: PGValue): bool
-proc HOLDS_DOUBLE*(value: PGValue): bool
-proc HOLDS_STRING*(value: PGValue): bool
-proc HOLDS_POINTER*(value: PGValue): bool
-proc set_char*(value: PGValue, v_char: gchar){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_char".}
-proc get_char*(value: PGValue): gchar{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_char".}
-proc set_uchar*(value: PGValue, v_uchar: guchar){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_uchar".}
-proc get_uchar*(value: PGValue): guchar{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_uchar".}
-proc set_boolean*(value: PGValue, v_boolean: gboolean){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_boolean".}
-proc get_boolean*(value: PGValue): gboolean{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_boolean".}
-proc set_int*(value: PGValue, v_int: gint){.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_set_int".}
-proc get_int*(value: PGValue): gint{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_int".}
-proc set_uint*(value: PGValue, v_uint: guint){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_uint".}
-proc get_uint*(value: PGValue): guint{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_uint".}
-proc set_long*(value: PGValue, v_long: glong){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_long".}
-proc get_long*(value: PGValue): glong{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_long".}
-proc set_ulong*(value: PGValue, v_ulong: gulong){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_ulong".}
-proc get_ulong*(value: PGValue): gulong{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_ulong".}
-proc set_int64*(value: PGValue, v_int64: gint64){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_int64".}
-proc get_int64*(value: PGValue): gint64{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_int64".}
-proc set_uint64*(value: PGValue, v_uint64: guint64){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_uint64".}
-proc get_uint64*(value: PGValue): guint64{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_uint64".}
-proc set_float*(value: PGValue, v_float: gfloat){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_float".}
-proc get_float*(value: PGValue): gfloat{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_float".}
-proc set_double*(value: PGValue, v_double: gdouble){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_double".}
-proc get_double*(value: PGValue): gdouble{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_double".}
-proc set_string*(value: PGValue, v_string: cstring){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_string".}
-proc set_static_string*(value: PGValue, v_string: cstring){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_static_string".}
-proc get_string*(value: PGValue): cstring{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_string".}
-proc dup_string*(value: PGValue): cstring{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_dup_string".}
-proc set_pointer*(value: PGValue, v_pointer: gpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_pointer".}
-proc get_pointer*(value: PGValue): gpointer{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_pointer".}
-proc g_pointer_type_register_static*(name: cstring): GType{.cdecl, 
-    dynlib: gobjectlib, importc: "g_pointer_type_register_static".}
-proc strdup_value_contents*(value: PGValue): cstring{.cdecl, 
-    dynlib: gobjectlib, importc: "g_strdup_value_contents".}
-proc set_string_take_ownership*(value: PGValue, v_string: cstring){.
-    cdecl, dynlib: gobjectlib, importc: "g_value_set_string_take_ownership".}
-type 
-  Tgchararray* = gchar
-  Pgchararray* = ptr Tgchararray
-
-proc G_TYPE_IS_PARAM*(theType: GType): bool
-proc G_PARAM_SPEC*(pspec: Pointer): PGParamSpec
-proc G_IS_PARAM_SPEC*(pspec: Pointer): bool
-proc G_PARAM_SPEC_CLASS*(pclass: Pointer): PGParamSpecClass
-proc G_IS_PARAM_SPEC_CLASS*(pclass: Pointer): bool
-proc G_PARAM_SPEC_GET_CLASS*(pspec: Pointer): PGParamSpecClass
-proc G_PARAM_SPEC_TYPE*(pspec: Pointer): GType
-proc G_PARAM_SPEC_TYPE_NAME*(pspec: Pointer): cstring
-proc G_PARAM_SPEC_VALUE_TYPE*(pspec: Pointer): GType
-proc G_VALUE_HOLDS_PARAM*(value: Pointer): bool
-const 
-  G_PARAM_READABLE* = 1 shl 0
-  G_PARAM_WRITABLE* = 1 shl 1
-  G_PARAM_CONSTRUCT* = 1 shl 2
-  G_PARAM_CONSTRUCT_ONLY* = 1 shl 3
-  G_PARAM_LAX_VALIDATION* = 1 shl 4
-  G_PARAM_PRIVATE* = 1 shl 5
-  G_PARAM_READWRITE* = G_PARAM_READABLE or G_PARAM_WRITABLE
-  G_PARAM_MASK* = 0x000000FF
-  G_PARAM_USER_SHIFT* = 8
-
-proc spec_ref*(pspec: PGParamSpec): PGParamSpec{.cdecl, dynlib: gliblib, 
-    importc: "g_param_spec_ref".}
-proc spec_unref*(pspec: PGParamSpec){.cdecl, dynlib: gliblib, 
-    importc: "g_param_spec_unref".}
-proc spec_sink*(pspec: PGParamSpec){.cdecl, dynlib: gliblib, 
-    importc: "g_param_spec_sink".}
-proc spec_get_qdata*(pspec: PGParamSpec, quark: TGQuark): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_param_spec_get_qdata".}
-proc spec_set_qdata*(pspec: PGParamSpec, quark: TGQuark, data: gpointer){.
-    cdecl, dynlib: gliblib, importc: "g_param_spec_set_qdata".}
-proc spec_set_qdata_full*(pspec: PGParamSpec, quark: TGQuark, 
-                                  data: gpointer, destroy: TGDestroyNotify){.
-    cdecl, dynlib: gliblib, importc: "g_param_spec_set_qdata_full".}
-proc spec_steal_qdata*(pspec: PGParamSpec, quark: TGQuark): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_param_spec_steal_qdata".}
-proc value_set_default*(pspec: PGParamSpec, value: PGValue){.cdecl, 
-    dynlib: gliblib, importc: "g_param_value_set_default".}
-proc value_defaults*(pspec: PGParamSpec, value: PGValue): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_param_value_defaults".}
-proc value_validate*(pspec: PGParamSpec, value: PGValue): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_param_value_validate".}
-proc value_convert*(pspec: PGParamSpec, src_value: PGValue, 
-                            dest_value: PGValue, strict_validation: gboolean): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_param_value_convert".}
-proc values_cmp*(pspec: PGParamSpec, value1: PGValue, value2: PGValue): gint{.
-    cdecl, dynlib: gliblib, importc: "g_param_values_cmp".}
-proc spec_get_name*(pspec: PGParamSpec): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_param_spec_get_name".}
-proc spec_get_nick*(pspec: PGParamSpec): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_param_spec_get_nick".}
-proc spec_get_blurb*(pspec: PGParamSpec): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_param_spec_get_blurb".}
-proc set_param*(value: PGValue, param: PGParamSpec){.cdecl, 
-    dynlib: gliblib, importc: "g_value_set_param".}
-proc get_param*(value: PGValue): PGParamSpec{.cdecl, dynlib: gliblib, 
-    importc: "g_value_get_param".}
-proc dup_param*(value: PGValue): PGParamSpec{.cdecl, dynlib: gliblib, 
-    importc: "g_value_dup_param".}
-proc set_param_take_ownership*(value: PGValue, param: PGParamSpec){.
-    cdecl, dynlib: gliblib, importc: "g_value_set_param_take_ownership".}
-type 
-  PGParamSpecTypeInfo* = ptr TGParamSpecTypeInfo
-  TGParamSpecTypeInfo*{.final.} = object 
-    instance_size*: guint16
-    n_preallocs*: guint16
-    instance_init*: proc (pspec: PGParamSpec){.cdecl.}
-    value_type*: GType
-    finalize*: proc (pspec: PGParamSpec){.cdecl.}
-    value_set_default*: proc (pspec: PGParamSpec, value: PGValue){.cdecl.}
-    value_validate*: proc (pspec: PGParamSpec, value: PGValue): gboolean{.cdecl.}
-    values_cmp*: proc (pspec: PGParamSpec, value1: PGValue, value2: PGValue): gint{.
-        cdecl.}
-
-
-proc g_param_type_register_static*(name: cstring, 
-                                   pspec_info: PGParamSpecTypeInfo): GType{.
-    cdecl, dynlib: gliblib, importc: "g_param_type_register_static".}
-proc g_param_type_register_static_constant*(name: cstring, 
-    pspec_info: PGParamSpecTypeInfo, opt_type: GType): GType{.cdecl, 
-    dynlib: gliblib, importc: "`g_param_type_register_static_constant`".}
-proc g_param_spec_internal*(param_type: GType, name: cstring, nick: cstring, 
-                            blurb: cstring, flags: TGParamFlags): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_param_spec_internal".}
-proc g_param_spec_pool_new*(type_prefixing: gboolean): PGParamSpecPool{.cdecl, 
-    dynlib: gliblib, importc: "g_param_spec_pool_new".}
-proc spec_pool_insert*(pool: PGParamSpecPool, pspec: PGParamSpec, 
-                               owner_type: GType){.cdecl, dynlib: gliblib, 
-    importc: "g_param_spec_pool_insert".}
-proc spec_pool_remove*(pool: PGParamSpecPool, pspec: PGParamSpec){.
-    cdecl, dynlib: gliblib, importc: "g_param_spec_pool_remove".}
-proc spec_pool_lookup*(pool: PGParamSpecPool, param_name: cstring, 
-                               owner_type: GType, walk_ancestors: gboolean): PGParamSpec{.
-    cdecl, dynlib: gliblib, importc: "g_param_spec_pool_lookup".}
-proc spec_pool_list_owned*(pool: PGParamSpecPool, owner_type: GType): PGList{.
-    cdecl, dynlib: gliblib, importc: "g_param_spec_pool_list_owned".}
-proc spec_pool_list*(pool: PGParamSpecPool, owner_type: GType, 
-                             n_pspecs_p: Pguint): PPGParamSpec{.cdecl, 
-    dynlib: gliblib, importc: "g_param_spec_pool_list".}
-type 
-  PGClosure* = ptr TGClosure
-  PGClosureNotifyData* = ptr TGClosureNotifyData
-  TGClosureNotify* = proc (data: gpointer, closure: PGClosure){.cdecl.}
-  TGClosure*{.final.} = object 
-    flag0*: int32
-    marshal*: proc (closure: PGClosure, return_value: PGValue, 
-                    n_param_values: guint, param_values: PGValue, 
-                    invocation_hint, marshal_data: gpointer){.cdecl.}
-    data*: gpointer
-    notifiers*: PGClosureNotifyData
-
-  TGCallBackProcedure* = proc (){.cdecl.}
-  TGCallback* = proc (){.cdecl.}
-  TGClosureMarshal* = proc (closure: PGClosure, return_value: PGValue, 
-                            n_param_values: guint, param_values: PGValue, 
-                            invocation_hint: gpointer, marshal_data: gpointer){.
-      cdecl.}
-  TGClosureNotifyData*{.final.} = object 
-    data*: gpointer
-    notify*: TGClosureNotify
-
-
-proc G_CLOSURE_NEEDS_MARSHAL*(closure: Pointer): bool
-proc N_NOTIFIERS*(cl: PGClosure): int32
-proc CCLOSURE_SWAP_DATA*(cclosure: PGClosure): int32
-proc G_CALLBACK*(f: pointer): TGCallback
-const 
-  bm_TGClosure_ref_count* = 0x00007FFF'i32
-  bp_TGClosure_ref_count* = 0'i32
-  bm_TGClosure_meta_marshal* = 0x00008000'i32
-  bp_TGClosure_meta_marshal* = 15'i32
-  bm_TGClosure_n_guards* = 0x00010000'i32
-  bp_TGClosure_n_guards* = 16'i32
-  bm_TGClosure_n_fnotifiers* = 0x00060000'i32
-  bp_TGClosure_n_fnotifiers* = 17'i32
-  bm_TGClosure_n_inotifiers* = 0x07F80000'i32
-  bp_TGClosure_n_inotifiers* = 19'i32
-  bm_TGClosure_in_inotify* = 0x08000000'i32
-  bp_TGClosure_in_inotify* = 27'i32
-  bm_TGClosure_floating* = 0x10000000'i32
-  bp_TGClosure_floating* = 28'i32
-  bm_TGClosure_derivative_flag* = 0x20000000'i32
-  bp_TGClosure_derivative_flag* = 29'i32
-  bm_TGClosure_in_marshal* = 0x40000000'i32
-  bp_TGClosure_in_marshal* = 30'i32
-  bm_TGClosure_is_invalid* = 0x80000000'i32
-  bp_TGClosure_is_invalid* = 31'i32
-
-proc ref_count*(a: PGClosure): guint
-proc set_ref_count*(a: PGClosure, ref_count: guint)
-proc meta_marshal*(a: PGClosure): guint
-proc set_meta_marshal*(a: PGClosure, meta_marshal: guint)
-proc n_guards*(a: PGClosure): guint
-proc set_n_guards*(a: PGClosure, n_guards: guint)
-proc n_fnotifiers*(a: PGClosure): guint
-proc set_n_fnotifiers*(a: PGClosure, n_fnotifiers: guint)
-proc n_inotifiers*(a: PGClosure): guint
-proc in_inotify*(a: PGClosure): guint
-proc set_in_inotify*(a: PGClosure, in_inotify: guint)
-proc floating*(a: PGClosure): guint
-proc set_floating*(a: PGClosure, floating: guint)
-proc derivative_flag*(a: PGClosure): guint
-proc set_derivative_flag*(a: PGClosure, derivative_flag: guint)
-proc in_marshal*(a: PGClosure): guint
-proc set_in_marshal*(a: PGClosure, in_marshal: guint)
-proc is_invalid*(a: PGClosure): guint
-proc set_is_invalid*(a: PGClosure, is_invalid: guint)
-type 
-  PGCClosure* = ptr TGCClosure
-  TGCClosure*{.final.} = object 
-    closure*: TGClosure
-    callback*: gpointer
-
-
-proc g_cclosure_new*(callback_func: TGCallback, user_data: gpointer, 
-                     destroy_data: TGClosureNotify): PGClosure{.cdecl, 
-    dynlib: gliblib, importc: "g_cclosure_new".}
-proc g_cclosure_new_swap*(callback_func: TGCallback, user_data: gpointer, 
-                          destroy_data: TGClosureNotify): PGClosure{.cdecl, 
-    dynlib: gliblib, importc: "g_cclosure_new_swap".}
-proc g_signal_type_cclosure_new*(itype: GType, struct_offset: guint): PGClosure{.
-    cdecl, dynlib: gliblib, importc: "g_signal_type_cclosure_new".}
-proc reference*(closure: PGClosure): PGClosure{.cdecl, dynlib: gliblib, 
-    importc: "g_closure_ref".}
-proc sink*(closure: PGClosure){.cdecl, dynlib: gliblib, 
-    importc: "g_closure_sink".}
-proc unref*(closure: PGClosure){.cdecl, dynlib: gliblib, 
-    importc: "g_closure_unref".}
-proc g_closure_new_simple*(sizeof_closure: guint, data: gpointer): PGClosure{.
-    cdecl, dynlib: gliblib, importc: "g_closure_new_simple".}
-proc add_finalize_notifier*(closure: PGClosure, notify_data: gpointer, 
-                                      notify_func: TGClosureNotify){.cdecl, 
-    dynlib: gliblib, importc: "g_closure_add_finalize_notifier".}
-proc remove_finalize_notifier*(closure: PGClosure, 
-    notify_data: gpointer, notify_func: TGClosureNotify){.cdecl, 
-    dynlib: gliblib, importc: "g_closure_remove_finalize_notifier".}
-proc add_invalidate_notifier*(closure: PGClosure, 
-                                        notify_data: gpointer, 
-                                        notify_func: TGClosureNotify){.cdecl, 
-    dynlib: gliblib, importc: "g_closure_add_invalidate_notifier".}
-proc remove_invalidate_notifier*(closure: PGClosure, 
-    notify_data: gpointer, notify_func: TGClosureNotify){.cdecl, 
-    dynlib: gliblib, importc: "g_closure_remove_invalidate_notifier".}
-proc add_marshal_guards*(closure: PGClosure, 
-                                   pre_marshal_data: gpointer, 
-                                   pre_marshal_notify: TGClosureNotify, 
-                                   post_marshal_data: gpointer, 
-                                   post_marshal_notify: TGClosureNotify){.cdecl, 
-    dynlib: gliblib, importc: "g_closure_add_marshal_guards".}
-proc set_marshal*(closure: PGClosure, marshal: TGClosureMarshal){.
-    cdecl, dynlib: gliblib, importc: "g_closure_set_marshal".}
-proc set_meta_marshal*(closure: PGClosure, marshal_data: gpointer, 
-                                 meta_marshal: TGClosureMarshal){.cdecl, 
-    dynlib: gliblib, importc: "g_closure_set_meta_marshal".}
-proc invalidate*(closure: PGClosure){.cdecl, dynlib: gliblib, 
-    importc: "g_closure_invalidate".}
-proc invoke*(closure: PGClosure, return_value: PGValue, 
-                       n_param_values: guint, param_values: PGValue, 
-                       invocation_hint: gpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_closure_invoke".}
-type 
-  PGSignalInvocationHint* = ptr TGSignalInvocationHint
-  PGSignalCMarshaller* = ptr TGSignalCMarshaller
-  TGSignalCMarshaller* = TGClosureMarshal
-  TGSignalEmissionHook* = proc (ihint: PGSignalInvocationHint, 
-                                n_param_values: guint, param_values: PGValue, 
-                                data: gpointer): gboolean{.cdecl.}
-  TGSignalAccumulator* = proc (ihint: PGSignalInvocationHint, 
-                               return_accu: PGValue, handler_return: PGValue, 
-                               data: gpointer): gboolean{.cdecl.}
-  PGSignalFlags* = ptr TGSignalFlags
-  TGSignalFlags* = int32
-  TGSignalInvocationHint*{.final.} = object 
-    signal_id*: guint
-    detail*: TGQuark
-    run_type*: TGSignalFlags
-
-  PGSignalQuery* = ptr TGSignalQuery
-  TGSignalQuery*{.final.} = object 
-    signal_id*: guint
-    signal_name*: cstring
-    itype*: GType
-    signal_flags*: TGSignalFlags
-    return_type*: GType
-    n_params*: guint
-    param_types*: PGType
-
-
-const 
-  G_SIGNAL_RUN_FIRST* = 1 shl 0
-  G_SIGNAL_RUN_LAST* = 1 shl 1
-  G_SIGNAL_RUN_CLEANUP* = 1 shl 2
-  G_SIGNAL_NO_RECURSE* = 1 shl 3
-  G_SIGNAL_DETAILED* = 1 shl 4
-  G_SIGNAL_ACTION* = 1 shl 5
-  G_SIGNAL_NO_HOOKS* = 1 shl 6
-  G_SIGNAL_FLAGS_MASK* = 0x0000007F
-
-type 
-  PGConnectFlags* = ptr TGConnectFlags
-  TGConnectFlags* = int32
-
-const 
-  G_CONNECT_AFTER* = 1 shl 0
-  G_CONNECT_SWAPPED* = 1 shl 1
-
-type 
-  PGSignalMatchType* = ptr TGSignalMatchType
-  TGSignalMatchType* = int32
-
-const 
-  G_SIGNAL_MATCH_ID* = 1 shl 0
-  G_SIGNAL_MATCH_DETAIL* = 1 shl 1
-  G_SIGNAL_MATCH_CLOSURE* = 1 shl 2
-  G_SIGNAL_MATCH_FUNC* = 1 shl 3
-  G_SIGNAL_MATCH_DATA* = 1 shl 4
-  G_SIGNAL_MATCH_UNBLOCKED* = 1 shl 5
-  G_SIGNAL_MATCH_MASK* = 0x0000003F
-  G_SIGNAL_TYPE_STATIC_SCOPE* = G_TYPE_FLAG_RESERVED_ID_BIT
-
-proc g_signal_newv*(signal_name: cstring, itype: GType, 
-                    signal_flags: TGSignalFlags, class_closure: PGClosure, 
-                    accumulator: TGSignalAccumulator, accu_data: gpointer, 
-                    c_marshaller: TGSignalCMarshaller, return_type: GType, 
-                    n_params: guint, param_types: PGType): guint{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_newv".}
-proc signal_emitv*(instance_and_params: PGValue, signal_id: guint, 
-                     detail: TGQuark, return_value: PGValue){.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_emitv".}
-proc g_signal_lookup*(name: cstring, itype: GType): guint{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_lookup".}
-proc g_signal_name*(signal_id: guint): cstring{.cdecl, dynlib: gobjectlib, 
-    importc: "g_signal_name".}
-proc g_signal_query*(signal_id: guint, query: PGSignalQuery){.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_query".}
-proc g_signal_list_ids*(itype: GType, n_ids: Pguint): Pguint{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_list_ids".}
-proc g_signal_parse_name*(detailed_signal: cstring, itype: GType, 
-                          signal_id_p: Pguint, detail_p: PGQuark, 
-                          force_detail_quark: gboolean): gboolean{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_parse_name".}
-proc g_signal_get_invocation_hint*(instance: gpointer): PGSignalInvocationHint{.
-    cdecl, dynlib: gobjectlib, importc: "g_signal_get_invocation_hint".}
-proc g_signal_stop_emission*(instance: gpointer, signal_id: guint, 
-                             detail: TGQuark){.cdecl, dynlib: gobjectlib, 
-    importc: "g_signal_stop_emission".}
-proc g_signal_stop_emission_by_name*(instance: gpointer, 
-                                     detailed_signal: cstring){.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_stop_emission_by_name".}
-proc g_signal_add_emission_hook*(signal_id: guint, quark: TGQuark, 
-                                 hook_func: TGSignalEmissionHook, 
-                                 hook_data: gpointer, 
-                                 data_destroy: TGDestroyNotify): gulong{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_add_emission_hook".}
-proc g_signal_remove_emission_hook*(signal_id: guint, hook_id: gulong){.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_remove_emission_hook".}
-proc g_signal_has_handler_pending*(instance: gpointer, signal_id: guint, 
-                                   detail: TGQuark, may_be_blocked: gboolean): gboolean{.
-    cdecl, dynlib: gobjectlib, importc: "g_signal_has_handler_pending".}
-proc g_signal_connect_closure_by_id*(instance: gpointer, signal_id: guint, 
-                                     detail: TGQuark, closure: PGClosure, 
-                                     after: gboolean): gulong{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_connect_closure_by_id".}
-proc g_signal_connect_closure*(instance: gpointer, detailed_signal: cstring, 
-                               closure: PGClosure, after: gboolean): gulong{.
-    cdecl, dynlib: gobjectlib, importc: "g_signal_connect_closure".}
-proc g_signal_connect_data*(instance: gpointer, detailed_signal: cstring, 
-                            c_handler: TGCallback, data: gpointer, 
-                            destroy_data: TGClosureNotify, 
-                            connect_flags: TGConnectFlags): gulong{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_connect_data".}
-proc g_signal_handler_block*(instance: gpointer, handler_id: gulong){.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_handler_block".}
-proc g_signal_handler_unblock*(instance: gpointer, handler_id: gulong){.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_handler_unblock".}
-proc g_signal_handler_disconnect*(instance: gpointer, handler_id: gulong){.
-    cdecl, dynlib: gobjectlib, importc: "g_signal_handler_disconnect".}
-proc g_signal_handler_is_connected*(instance: gpointer, handler_id: gulong): gboolean{.
-    cdecl, dynlib: gobjectlib, importc: "g_signal_handler_is_connected".}
-proc g_signal_handler_find*(instance: gpointer, mask: TGSignalMatchType, 
-                            signal_id: guint, detail: TGQuark, 
-                            closure: PGClosure, func: gpointer, data: gpointer): gulong{.
-    cdecl, dynlib: gobjectlib, importc: "g_signal_handler_find".}
-proc g_signal_handlers_block_matched*(instance: gpointer, 
-                                      mask: TGSignalMatchType, signal_id: guint, 
-                                      detail: TGQuark, closure: PGClosure, 
-                                      func: gpointer, data: gpointer): guint{.
-    cdecl, dynlib: gobjectlib, importc: "g_signal_handlers_block_matched".}
-proc g_signal_handlers_unblock_matched*(instance: gpointer, 
-                                        mask: TGSignalMatchType, 
-                                        signal_id: guint, detail: TGQuark, 
-                                        closure: PGClosure, func: gpointer, 
-                                        data: gpointer): guint{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_handlers_unblock_matched".}
-proc g_signal_handlers_disconnect_matched*(instance: gpointer, 
-    mask: TGSignalMatchType, signal_id: guint, detail: TGQuark, 
-    closure: PGClosure, func: gpointer, data: gpointer): guint{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_handlers_disconnect_matched".}
-proc g_signal_override_class_closure*(signal_id: guint, instance_type: GType, 
-                                      class_closure: PGClosure){.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_override_class_closure".}
-proc signal_chain_from_overridden*(instance_and_params: PGValue, 
-                                     return_value: PGValue){.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_chain_from_overridden".}
-proc g_signal_connect*(instance: gpointer, detailed_signal: cstring, 
-                       c_handler: TGCallback, data: gpointer): gulong
-proc g_signal_connect_after*(instance: gpointer, detailed_signal: cstring, 
-                             c_handler: TGCallback, data: gpointer): gulong
-proc g_signal_connect_swapped*(instance: gpointer, detailed_signal: cstring, 
-                               c_handler: TGCallback, data: gpointer): gulong
-proc g_signal_handlers_disconnect_by_func*(instance: gpointer, 
-    func, data: gpointer): guint
-proc g_signal_handlers_block_by_func*(instance: gpointer, func, data: gpointer)
-proc g_signal_handlers_unblock_by_func*(instance: gpointer, func, data: gpointer)
-proc g_signal_handlers_destroy*(instance: gpointer){.cdecl, dynlib: gobjectlib, 
-    importc: "g_signal_handlers_destroy".}
-proc g_signals_destroy*(itype: GType){.cdecl, dynlib: gobjectlib, 
-                                       importc: "`g_signals_destroy`".}
-type 
-  TGTypePluginUse* = proc (plugin: PGTypePlugin){.cdecl.}
-  TGTypePluginUnuse* = proc (plugin: PGTypePlugin){.cdecl.}
-  TGTypePluginCompleteTypeInfo* = proc (plugin: PGTypePlugin, g_type: GType, 
-                                        info: PGTypeInfo, 
-                                        value_table: PGTypeValueTable){.cdecl.}
-  TGTypePluginCompleteInterfaceInfo* = proc (plugin: PGTypePlugin, 
-      instance_type: GType, interface_type: GType, info: PGInterfaceInfo){.cdecl.}
-  PGTypePluginClass* = ptr TGTypePluginClass
-  TGTypePluginClass*{.final.} = object 
-    base_iface*: TGTypeInterface
-    use_plugin*: TGTypePluginUse
-    unuse_plugin*: TGTypePluginUnuse
-    complete_type_info*: TGTypePluginCompleteTypeInfo
-    complete_interface_info*: TGTypePluginCompleteInterfaceInfo
-
-
-proc G_TYPE_TYPE_PLUGIN*(): GType
-proc G_TYPE_PLUGIN*(inst: Pointer): PGTypePlugin
-proc G_TYPE_PLUGIN_CLASS*(vtable: Pointer): PGTypePluginClass
-proc G_IS_TYPE_PLUGIN*(inst: Pointer): bool
-proc G_IS_TYPE_PLUGIN_CLASS*(vtable: Pointer): bool
-proc G_TYPE_PLUGIN_GET_CLASS*(inst: Pointer): PGTypePluginClass
-proc g_type_plugin_get_type*(): GType{.cdecl, dynlib: gliblib, 
-                                       importc: "g_type_plugin_get_type".}
-proc plugin_use*(plugin: PGTypePlugin){.cdecl, dynlib: gliblib, 
-    importc: "g_type_plugin_use".}
-proc plugin_unuse*(plugin: PGTypePlugin){.cdecl, dynlib: gliblib, 
-    importc: "g_type_plugin_unuse".}
-proc plugin_complete_type_info*(plugin: PGTypePlugin, g_type: GType, 
-                                       info: PGTypeInfo, 
-                                       value_table: PGTypeValueTable){.cdecl, 
-    dynlib: gliblib, importc: "g_type_plugin_complete_type_info".}
-proc plugin_complete_interface_info*(plugin: PGTypePlugin, 
-    instance_type: GType, interface_type: GType, info: PGInterfaceInfo){.cdecl, 
-    dynlib: gliblib, importc: "g_type_plugin_complete_interface_info".}
-type 
-  PGObject* = ptr TGObject
-  TGObject*{.pure, inheritable.} = object 
-    g_type_instance*: TGTypeInstance
-    ref_count*: guint
-    qdata*: PGData
-
-  TGObjectGetPropertyFunc* = proc (anObject: PGObject, property_id: guint, 
-                                   value: PGValue, pspec: PGParamSpec){.cdecl.}
-  TGObjectSetPropertyFunc* = proc (anObject: PGObject, property_id: guint, 
-                                   value: PGValue, pspec: PGParamSpec){.cdecl.}
-  TGObjectFinalizeFunc* = proc (anObject: PGObject){.cdecl.}
-  TGWeakNotify* = proc (data: gpointer, where_the_object_was: PGObject){.cdecl.}
-  PGObjectConstructParam* = ptr TGObjectConstructParam
-  PGObjectClass* = ptr TGObjectClass
-  TGObjectClass*{.pure, inheritable.} = object 
-    g_type_class*: TGTypeClass
-    construct_properties*: PGSList
-    constructor*: proc (theType: GType, n_construct_properties: guint, 
-                        construct_properties: PGObjectConstructParam): PGObject{.
-        cdecl.}
-    set_property*: proc (anObject: PGObject, property_id: guint, value: PGValue, 
-                         pspec: PGParamSpec){.cdecl.}
-    get_property*: proc (anObject: PGObject, property_id: guint, value: PGValue, 
-                         pspec: PGParamSpec){.cdecl.}
-    dispose*: proc (anObject: PGObject){.cdecl.}
-    finalize*: proc (anObject: PGObject){.cdecl.}
-    dispatch_properties_changed*: proc (anObject: PGObject, n_pspecs: guint, 
-                                        pspecs: PPGParamSpec){.cdecl.}
-    notify*: proc (anObject: PGObject, pspec: PGParamSpec){.cdecl.}
-    pdummy*: array[0..7, gpointer]
-
-  TGObjectConstructParam*{.final.} = object 
-    pspec*: PGParamSpec
-    value*: PGValue
-
-
-proc G_TYPE_IS_OBJECT*(theType: GType): bool
-proc G_OBJECT*(anObject: pointer): PGObject
-proc G_OBJECT_CLASS*(class: Pointer): PGObjectClass
-proc G_IS_OBJECT*(anObject: pointer): bool
-proc G_IS_OBJECT_CLASS*(class: Pointer): bool
-proc G_OBJECT_GET_CLASS*(anObject: pointer): PGObjectClass
-proc G_OBJECT_TYPE*(anObject: pointer): GType
-proc G_OBJECT_TYPE_NAME*(anObject: pointer): cstring
-proc G_OBJECT_CLASS_TYPE*(class: Pointer): GType
-proc G_OBJECT_CLASS_NAME*(class: Pointer): cstring
-proc G_VALUE_HOLDS_OBJECT*(value: Pointer): bool
-proc class_install_property*(oclass: PGObjectClass, property_id: guint, 
-                                      pspec: PGParamSpec){.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_class_install_property".}
-proc class_find_property*(oclass: PGObjectClass, property_name: cstring): PGParamSpec{.
-    cdecl, dynlib: gobjectlib, importc: "g_object_class_find_property".}
-proc class_list_properties*(oclass: PGObjectClass, n_properties: Pguint): PPGParamSpec{.
-    cdecl, dynlib: gobjectlib, importc: "g_object_class_list_properties".}
-proc set_property*(anObject: PGObject, property_name: cstring, 
-                            value: PGValue){.cdecl, dynlib: gobjectlib, 
-    importc: "g_object_set_property".}
-proc get_property*(anObject: PGObject, property_name: cstring, 
-                            value: PGValue){.cdecl, dynlib: gobjectlib, 
-    importc: "g_object_get_property".}
-proc freeze_notify*(anObject: PGObject){.cdecl, dynlib: gobjectlib, 
-    importc: "g_object_freeze_notify".}
-proc notify*(anObject: PGObject, property_name: cstring){.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_notify".}
-proc thaw_notify*(anObject: PGObject){.cdecl, dynlib: gobjectlib, 
-    importc: "g_object_thaw_notify".}
-proc g_object_ref*(anObject: gpointer): gpointer{.cdecl, dynlib: gobjectlib, 
-    importc: "g_object_ref".}
-proc g_object_unref*(anObject: gpointer){.cdecl, dynlib: gobjectlib, 
-    importc: "g_object_unref".}
-proc weak_ref*(anObject: PGObject, notify: TGWeakNotify, data: gpointer){.
-    cdecl, dynlib: gobjectlib, importc: "g_object_weak_ref".}
-proc weak_unref*(anObject: PGObject, notify: TGWeakNotify, 
-                          data: gpointer){.cdecl, dynlib: gobjectlib, 
-    importc: "g_object_weak_unref".}
-proc add_weak_pointer*(anObject: PGObject, 
-                                weak_pointer_location: Pgpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_add_weak_pointer".}
-proc remove_weak_pointer*(anObject: PGObject, 
-                                   weak_pointer_location: Pgpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_remove_weak_pointer".}
-proc get_qdata*(anObject: PGObject, quark: TGQuark): gpointer{.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_get_qdata".}
-proc set_qdata*(anObject: PGObject, quark: TGQuark, data: gpointer){.
-    cdecl, dynlib: gobjectlib, importc: "g_object_set_qdata".}
-proc set_qdata_full*(anObject: PGObject, quark: TGQuark, 
-                              data: gpointer, destroy: TGDestroyNotify){.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_set_qdata_full".}
-proc steal_qdata*(anObject: PGObject, quark: TGQuark): gpointer{.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_steal_qdata".}
-proc get_data*(anObject: PGObject, key: cstring): gpointer{.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_get_data".}
-proc set_data*(anObject: PGObject, key: cstring, data: gpointer){.
-    cdecl, dynlib: gobjectlib, importc: "g_object_set_data".}
-proc set_data_full*(anObject: PGObject, key: cstring, data: gpointer, 
-                             destroy: TGDestroyNotify){.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_set_data_full".}
-proc steal_data*(anObject: PGObject, key: cstring): gpointer{.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_steal_data".}
-proc watch_closure*(anObject: PGObject, closure: PGClosure){.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_watch_closure".}
-proc g_cclosure_new_object*(callback_func: TGCallback, anObject: PGObject): PGClosure{.
-    cdecl, dynlib: gobjectlib, importc: "g_cclosure_new_object".}
-proc g_cclosure_new_object_swap*(callback_func: TGCallback, anObject: PGObject): PGClosure{.
-    cdecl, dynlib: gobjectlib, importc: "g_cclosure_new_object_swap".}
-proc g_closure_new_object*(sizeof_closure: guint, anObject: PGObject): PGClosure{.
-    cdecl, dynlib: gobjectlib, importc: "g_closure_new_object".}
-proc set_object*(value: PGValue, v_object: gpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_object".}
-proc get_object*(value: PGValue): gpointer{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_object".}
-proc dup_object*(value: PGValue): PGObject{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_dup_object".}
-proc g_signal_connect_object*(instance: gpointer, detailed_signal: cstring, 
-                              c_handler: TGCallback, gobject: gpointer, 
-                              connect_flags: TGConnectFlags): gulong{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_connect_object".}
-proc run_dispose*(anObject: PGObject){.cdecl, dynlib: gobjectlib, 
-    importc: "g_object_run_dispose".}
-proc set_object_take_ownership*(value: PGValue, v_object: gpointer){.
-    cdecl, dynlib: gobjectlib, importc: "g_value_set_object_take_ownership".}
-proc G_OBJECT_WARN_INVALID_PSPEC*(anObject: gpointer, pname: cstring, 
-                                  property_id: gint, pspec: gpointer)
-proc G_OBJECT_WARN_INVALID_PROPERTY_ID*(anObject: gpointer, property_id: gint, 
-                                        pspec: gpointer)
-type 
-  G_FLAGS_TYPE* = GType
-
-const 
-  G_E* = 2.71828
-  G_LN2* = 0.693147
-  G_LN10* = 2.30259
-  G_PI* = 3.14159
-  G_PI_2* = 1.57080
-  G_PI_4* = 0.785398
-  G_SQRT2* = 1.41421
-  G_LITTLE_ENDIAN* = 1234
-  G_BIG_ENDIAN* = 4321
-  G_PDP_ENDIAN* = 3412
-
-proc GUINT16_SWAP_LE_BE_CONSTANT*(val: guint16): guint16
-proc GUINT32_SWAP_LE_BE_CONSTANT*(val: guint32): guint32
-type 
-  PGEnumClass* = ptr TGEnumClass
-  PGEnumValue* = ptr TGEnumValue
-  TGEnumClass*{.final.} = object 
-    g_type_class*: TGTypeClass
-    minimum*: gint
-    maximum*: gint
-    n_values*: guint
-    values*: PGEnumValue
-
-  TGEnumValue*{.final.} = object 
-    value*: gint
-    value_name*: cstring
-    value_nick*: cstring
-
-  PGFlagsClass* = ptr TGFlagsClass
-  PGFlagsValue* = ptr TGFlagsValue
-  TGFlagsClass*{.final.} = object 
-    g_type_class*: TGTypeClass
-    mask*: guint
-    n_values*: guint
-    values*: PGFlagsValue
-
-  TGFlagsValue*{.final.} = object 
-    value*: guint
-    value_name*: cstring
-    value_nick*: cstring
-
-
-proc G_TYPE_IS_ENUM*(theType: GType): gboolean
-proc G_ENUM_CLASS*(class: pointer): PGEnumClass
-proc G_IS_ENUM_CLASS*(class: pointer): gboolean
-proc G_ENUM_CLASS_TYPE*(class: pointer): GType
-proc G_ENUM_CLASS_TYPE_NAME*(class: pointer): cstring
-proc G_TYPE_IS_FLAGS*(theType: GType): gboolean
-proc G_FLAGS_CLASS*(class: pointer): PGFlagsClass
-proc G_IS_FLAGS_CLASS*(class: pointer): gboolean
-proc G_FLAGS_CLASS_TYPE*(class: pointer): GType
-proc G_FLAGS_CLASS_TYPE_NAME*(class: pointer): cstring
-proc G_VALUE_HOLDS_ENUM*(value: pointer): gboolean
-proc G_VALUE_HOLDS_FLAGS*(value: pointer): gboolean
-proc get_value*(enum_class: PGEnumClass, value: gint): PGEnumValue{.
-    cdecl, dynlib: gliblib, importc: "g_enum_get_value".}
-proc get_value_by_name*(enum_class: PGEnumClass, name: cstring): PGEnumValue{.
-    cdecl, dynlib: gliblib, importc: "g_enum_get_value_by_name".}
-proc get_value_by_nick*(enum_class: PGEnumClass, nick: cstring): PGEnumValue{.
-    cdecl, dynlib: gliblib, importc: "g_enum_get_value_by_nick".}
-proc get_first_value*(flags_class: PGFlagsClass, value: guint): PGFlagsValue{.
-    cdecl, dynlib: gliblib, importc: "g_flags_get_first_value".}
-proc get_value_by_name*(flags_class: PGFlagsClass, name: cstring): PGFlagsValue{.
-    cdecl, dynlib: gliblib, importc: "g_flags_get_value_by_name".}
-proc get_value_by_nick*(flags_class: PGFlagsClass, nick: cstring): PGFlagsValue{.
-    cdecl, dynlib: gliblib, importc: "g_flags_get_value_by_nick".}
-proc set_enum*(value: PGValue, v_enum: gint){.cdecl, dynlib: gliblib, 
-    importc: "g_value_set_enum".}
-proc get_enum*(value: PGValue): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_value_get_enum".}
-proc set_flags*(value: PGValue, v_flags: guint){.cdecl, dynlib: gliblib, 
-    importc: "g_value_set_flags".}
-proc get_flags*(value: PGValue): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_value_get_flags".}
-proc g_enum_register_static*(name: cstring, const_static_values: PGEnumValue): GType{.
-    cdecl, dynlib: gliblib, importc: "g_enum_register_static".}
-proc g_flags_register_static*(name: cstring, const_static_values: PGFlagsValue): GType{.
-    cdecl, dynlib: gliblib, importc: "g_flags_register_static".}
-proc g_enum_complete_type_info*(g_enum_type: GType, info: PGTypeInfo, 
-                                const_values: PGEnumValue){.cdecl, 
-    dynlib: gliblib, importc: "g_enum_complete_type_info".}
-proc g_flags_complete_type_info*(g_flags_type: GType, info: PGTypeInfo, 
-                                 const_values: PGFlagsValue){.cdecl, 
-    dynlib: gliblib, importc: "g_flags_complete_type_info".}
-const 
-  G_MINFLOAT* = 0.00000
-  G_MAXFLOAT* = 1.70000e+308
-  G_MINDOUBLE* = G_MINFLOAT
-  G_MAXDOUBLE* = G_MAXFLOAT
-  G_MAXSHORT* = 32767
-  G_MINSHORT* = - G_MAXSHORT - 1
-  G_MAXUSHORT* = 2 * G_MAXSHORT + 1
-  G_MAXINT* = 2147483647
-  G_MININT* = - G_MAXINT - 1
-  G_MAXUINT* = - 1
-  G_MINLONG* = G_MININT
-  G_MAXLONG* = G_MAXINT
-  G_MAXULONG* = G_MAXUINT
-  G_MAXINT64* = high(int64)
-  G_MININT64* = low(int64)
-
-const 
-  G_GINT16_FORMAT* = "hi"
-  G_GUINT16_FORMAT* = "hu"
-  G_GINT32_FORMAT* = 'i'
-  G_GUINT32_FORMAT* = 'u'
-  G_HAVE_GINT64* = 1
-  G_GINT64_FORMAT* = "I64i"
-  G_GUINT64_FORMAT* = "I64u"
-  GLIB_SIZEOF_VOID_P* = SizeOf(Pointer)
-  GLIB_SIZEOF_LONG* = SizeOf(int32)
-  GLIB_SIZEOF_SIZE_T* = SizeOf(int32)
-
-type 
-  PGSystemThread* = ptr TGSystemThread
-  TGSystemThread*{.final.} = object 
-    data*: array[0..3, char]
-    dummy_double*: float64
-    dummy_pointer*: pointer
-    dummy_long*: int32
-
-
-const 
-  GLIB_SYSDEF_POLLIN* = 1
-  GLIB_SYSDEF_POLLOUT* = 4
-  GLIB_SYSDEF_POLLPRI* = 2
-  GLIB_SYSDEF_POLLERR* = 8
-  GLIB_SYSDEF_POLLHUP* = 16
-  GLIB_SYSDEF_POLLNVAL* = 32
-
-proc GUINT_TO_POINTER*(i: guint): pointer
-type 
-  PGAsciiType* = ptr TGAsciiType
-  TGAsciiType* = int32
-
-const 
-  G_ASCII_ALNUM* = 1 shl 0
-  G_ASCII_ALPHA* = 1 shl 1
-  G_ASCII_CNTRL* = 1 shl 2
-  G_ASCII_DIGIT* = 1 shl 3
-  G_ASCII_GRAPH* = 1 shl 4
-  G_ASCII_LOWER* = 1 shl 5
-  G_ASCII_PRINT* = 1 shl 6
-  G_ASCII_PUNCT* = 1 shl 7
-  G_ASCII_SPACE* = 1 shl 8
-  G_ASCII_UPPER* = 1 shl 9
-  G_ASCII_XDIGIT* = 1 shl 10
-
-proc g_ascii_tolower*(c: gchar): gchar{.cdecl, dynlib: gliblib, 
-                                        importc: "g_ascii_tolower".}
-proc g_ascii_toupper*(c: gchar): gchar{.cdecl, dynlib: gliblib, 
-                                        importc: "g_ascii_toupper".}
-proc g_ascii_digit_value*(c: gchar): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_ascii_digit_value".}
-proc g_ascii_xdigit_value*(c: gchar): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_ascii_xdigit_value".}
-const 
-  G_STR_DELIMITERS* = "``-|> <."
-
-proc g_strdelimit*(str: cstring, delimiters: cstring, new_delimiter: gchar): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_strdelimit".}
-proc g_strcanon*(str: cstring, valid_chars: cstring, substitutor: gchar): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_strcanon".}
-proc g_strerror*(errnum: gint): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_strerror".}
-proc g_strsignal*(signum: gint): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_strsignal".}
-proc g_strreverse*(str: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_strreverse".}
-proc g_strlcpy*(dest: cstring, src: cstring, dest_size: gsize): gsize{.cdecl, 
-    dynlib: gliblib, importc: "g_strlcpy".}
-proc g_strlcat*(dest: cstring, src: cstring, dest_size: gsize): gsize{.cdecl, 
-    dynlib: gliblib, importc: "g_strlcat".}
-proc g_strstr_len*(haystack: cstring, haystack_len: gssize, needle: cstring): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_strstr_len".}
-proc g_strrstr*(haystack: cstring, needle: cstring): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_strrstr".}
-proc g_strrstr_len*(haystack: cstring, haystack_len: gssize, needle: cstring): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_strrstr_len".}
-proc g_str_has_suffix*(str: cstring, suffix: cstring): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_str_has_suffix".}
-proc g_str_has_prefix*(str: cstring, prefix: cstring): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_str_has_prefix".}
-proc g_strtod*(nptr: cstring, endptr: PPgchar): gdouble{.cdecl, dynlib: gliblib, 
-    importc: "g_strtod".}
-proc g_ascii_strtod*(nptr: cstring, endptr: PPgchar): gdouble{.cdecl, 
-    dynlib: gliblib, importc: "g_ascii_strtod".}
-const 
-  G_ASCII_DTOSTR_BUF_SIZE* = 29 + 10
-
-proc g_ascii_dtostr*(buffer: cstring, buf_len: gint, d: gdouble): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_ascii_dtostr".}
-proc g_ascii_formatd*(buffer: cstring, buf_len: gint, format: cstring, 
-                      d: gdouble): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_ascii_formatd".}
-proc g_strchug*(str: cstring): cstring{.cdecl, dynlib: gliblib, 
-                                        importc: "g_strchug".}
-proc g_strchomp*(str: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_strchomp".}
-proc g_ascii_strcasecmp*(s1: cstring, s2: cstring): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_ascii_strcasecmp".}
-proc g_ascii_strncasecmp*(s1: cstring, s2: cstring, n: gsize): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_ascii_strncasecmp".}
-proc g_ascii_strdown*(str: cstring, len: gssize): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_ascii_strdown".}
-proc g_ascii_strup*(str: cstring, len: gssize): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_ascii_strup".}
-proc g_strdup*(str: cstring): cstring{.cdecl, dynlib: gliblib, 
-                                       importc: "g_strdup".}
-proc g_strndup*(str: cstring, n: gsize): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_strndup".}
-proc g_strnfill*(length: gsize, fill_char: gchar): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_strnfill".}
-proc g_strcompress*(source: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_strcompress".}
-proc g_strescape*(source: cstring, exceptions: cstring): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_strescape".}
-proc g_memdup*(mem: gconstpointer, byte_size: guint): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_memdup".}
-proc g_strsplit*(str: cstring, delimiter: cstring, max_tokens: gint): PPgchar{.
-    cdecl, dynlib: gliblib, importc: "g_strsplit".}
-proc g_strjoinv*(separator: cstring, str_array: PPgchar): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_strjoinv".}
-proc g_strfreev*(str_array: PPgchar){.cdecl, dynlib: gliblib, 
-                                      importc: "g_strfreev".}
-proc g_strdupv*(str_array: PPgchar): PPgchar{.cdecl, dynlib: gliblib, 
-    importc: "g_strdupv".}
-proc g_stpcpy*(dest: cstring, src: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_stpcpy".}
-proc g_get_user_name*(): cstring{.cdecl, dynlib: gliblib, 
-                                  importc: "g_get_user_name".}
-proc g_get_real_name*(): cstring{.cdecl, dynlib: gliblib, 
-                                  importc: "g_get_real_name".}
-proc g_get_home_dir*(): cstring{.cdecl, dynlib: gliblib, 
-                                 importc: "g_get_home_dir".}
-proc g_get_tmp_dir*(): cstring{.cdecl, dynlib: gliblib, importc: "g_get_tmp_dir".}
-proc g_get_prgname*(): cstring{.cdecl, dynlib: gliblib, importc: "g_get_prgname".}
-proc g_set_prgname*(prgname: cstring){.cdecl, dynlib: gliblib, 
-                                       importc: "g_set_prgname".}
-type 
-  PGDebugKey* = ptr TGDebugKey
-  TGDebugKey*{.final.} = object 
-    key*: cstring
-    value*: guint
-
-
-proc g_parse_debug_string*(str: cstring, keys: PGDebugKey, nkeys: guint): guint{.
-    cdecl, dynlib: gliblib, importc: "g_parse_debug_string".}
-proc g_path_is_absolute*(file_name: cstring): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_path_is_absolute".}
-proc g_path_skip_root*(file_name: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_path_skip_root".}
-proc g_basename*(file_name: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_basename".}
-proc g_dirname*(file_name: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_path_get_dirname".}
-proc g_get_current_dir*(): cstring{.cdecl, dynlib: gliblib, 
-                                    importc: "g_get_current_dir".}
-proc g_path_get_basename*(file_name: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_path_get_basename".}
-proc g_path_get_dirname*(file_name: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_path_get_dirname".}
-proc nullify_pointer*(nullify_location: Pgpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_nullify_pointer".}
-proc g_getenv*(variable: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_getenv".}
-type 
-  TGVoidFunc* = proc (){.cdecl.}
-
-proc g_atexit*(func: TGVoidFunc){.cdecl, dynlib: gliblib, importc: "g_atexit".}
-proc g_find_program_in_path*(program: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_find_program_in_path".}
-proc g_bit_nth_lsf*(mask: gulong, nth_bit: gint): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_bit_nth_lsf".}
-proc g_bit_nth_msf*(mask: gulong, nth_bit: gint): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_bit_nth_msf".}
-proc g_bit_storage*(number: gulong): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_bit_storage".}
-type 
-  PPGTrashStack* = ptr PGTrashStack
-  PGTrashStack* = ptr TGTrashStack
-  TGTrashStack*{.final.} = object 
-    next*: PGTrashStack
-
-
-proc g_trash_stack_push*(stack_p: PPGTrashStack, data_p: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_trash_stack_push".}
-proc g_trash_stack_pop*(stack_p: PPGTrashStack): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_trash_stack_pop".}
-proc g_trash_stack_peek*(stack_p: PPGTrashStack): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_trash_stack_peek".}
-proc g_trash_stack_height*(stack_p: PPGTrashStack): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_trash_stack_height".}
-type 
-  PGHashTable* = pointer
-  TGHRFunc* = proc (key, value, user_data: gpointer): gboolean{.cdecl.}
-
-proc g_hash_table_new*(hash_func: TGHashFunc, key_equal_func: TGEqualFunc): PGHashTable{.
-    cdecl, dynlib: gliblib, importc: "g_hash_table_new".}
-proc g_hash_table_new_full*(hash_func: TGHashFunc, key_equal_func: TGEqualFunc, 
-                            key_destroy_func: TGDestroyNotify, 
-                            value_destroy_func: TGDestroyNotify): PGHashTable{.
-    cdecl, dynlib: gliblib, importc: "g_hash_table_new_full".}
-proc table_destroy*(hash_table: PGHashTable){.cdecl, dynlib: gliblib, 
-    importc: "g_hash_table_destroy".}
-proc table_insert*(hash_table: PGHashTable, key: gpointer, 
-                          value: gpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_hash_table_insert".}
-proc table_replace*(hash_table: PGHashTable, key: gpointer, 
-                           value: gpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_hash_table_replace".}
-proc table_remove*(hash_table: PGHashTable, key: gconstpointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_hash_table_remove".}
-proc table_steal*(hash_table: PGHashTable, key: gconstpointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_hash_table_steal".}
-proc table_lookup*(hash_table: PGHashTable, key: gconstpointer): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_hash_table_lookup".}
-proc table_lookup_extended*(hash_table: PGHashTable, 
-                                   lookup_key: gconstpointer, 
-                                   orig_key: Pgpointer, value: Pgpointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_hash_table_lookup_extended".}
-proc table_foreach*(hash_table: PGHashTable, func: TGHFunc, 
-                           user_data: gpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_hash_table_foreach".}
-proc table_foreach_remove*(hash_table: PGHashTable, func: TGHRFunc, 
-                                  user_data: gpointer): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_hash_table_foreach_remove".}
-proc table_foreach_steal*(hash_table: PGHashTable, func: TGHRFunc, 
-                                 user_data: gpointer): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_hash_table_foreach_steal".}
-proc table_size*(hash_table: PGHashTable): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_hash_table_size".}
-proc g_str_equal*(v: gconstpointer, v2: gconstpointer): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_str_equal".}
-proc g_str_hash*(v: gconstpointer): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_str_hash".}
-proc g_int_equal*(v: gconstpointer, v2: gconstpointer): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_int_equal".}
-proc g_int_hash*(v: gconstpointer): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_int_hash".}
-proc g_direct_hash*(v: gconstpointer): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_direct_hash".}
-proc g_direct_equal*(v: gconstpointer, v2: gconstpointer): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_direct_equal".}
-proc g_quark_try_string*(str: cstring): TGQuark{.cdecl, dynlib: gliblib, 
-    importc: "g_quark_try_string".}
-proc g_quark_from_static_string*(str: cstring): TGQuark{.cdecl, dynlib: gliblib, 
-    importc: "g_quark_from_static_string".}
-proc g_quark_from_string*(str: cstring): TGQuark{.cdecl, dynlib: gliblib, 
-    importc: "g_quark_from_string".}
-proc g_quark_to_string*(quark: TGQuark): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_quark_to_string".}
-const 
-  G_MEM_ALIGN* = GLIB_SIZEOF_VOID_P
-
-type 
-  PGMemVTable* = ptr TGMemVTable
-  TGMemVTable*{.final.} = object 
-    malloc*: proc (n_bytes: gsize): gpointer{.cdecl.}
-    realloc*: proc (mem: gpointer, n_bytes: gsize): gpointer{.cdecl.}
-    free*: proc (mem: gpointer){.cdecl.}
-    calloc*: proc (n_blocks: gsize, n_block_bytes: gsize): gpointer{.cdecl.}
-    try_malloc*: proc (n_bytes: gsize): gpointer{.cdecl.}
-    try_realloc*: proc (mem: gpointer, n_bytes: gsize): gpointer{.cdecl.}
-
-  PGMemChunk* = pointer
-  PGAllocator* = pointer
-
-proc g_malloc*(n_bytes: gulong): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_malloc".}
-proc g_malloc0*(n_bytes: gulong): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_malloc0".}
-proc g_realloc*(mem: gpointer, n_bytes: gulong): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_realloc".}
-proc g_free*(mem: gpointer){.cdecl, dynlib: gliblib, importc: "g_free".}
-proc g_try_malloc*(n_bytes: gulong): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_try_malloc".}
-proc g_try_realloc*(mem: gpointer, n_bytes: gulong): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_try_realloc".}
-#proc g_new*(bytes_per_struct, n_structs: gsize): gpointer
-#proc g_new0*(bytes_per_struct, n_structs: gsize): gpointer
-#proc g_renew*(struct_size: gsize, OldMem: gpointer, n_structs: gsize): gpointer
-
-proc set_vtable*(vtable: PGMemVTable){.cdecl, dynlib: gliblib, 
-    importc: "g_mem_set_vtable".}
-proc g_mem_is_system_malloc*(): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_mem_is_system_malloc".}
-proc g_mem_profile*(){.cdecl, dynlib: gliblib, importc: "g_mem_profile".}
-proc g_chunk_new*(chunk: Pointer): Pointer
-proc g_chunk_new0*(chunk: Pointer): Pointer
-
-const 
-  G_ALLOC_ONLY* = 1
-  G_ALLOC_AND_FREE* = 2
-
-proc g_mem_chunk_new*(name: cstring, atom_size: gint, area_size: gulong, 
-                      theType: gint): PGMemChunk{.cdecl, dynlib: gliblib, 
-    importc: "g_mem_chunk_new".}
-proc chunk_destroy*(mem_chunk: PGMemChunk){.cdecl, dynlib: gliblib, 
-    importc: "g_mem_chunk_destroy".}
-proc chunk_alloc*(mem_chunk: PGMemChunk): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_mem_chunk_alloc".}
-proc chunk_alloc0*(mem_chunk: PGMemChunk): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_mem_chunk_alloc0".}
-proc chunk_free*(mem_chunk: PGMemChunk, mem: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_mem_chunk_free".}
-proc chunk_clean*(mem_chunk: PGMemChunk){.cdecl, dynlib: gliblib, 
-    importc: "g_mem_chunk_clean".}
-proc chunk_reset*(mem_chunk: PGMemChunk){.cdecl, dynlib: gliblib, 
-    importc: "g_mem_chunk_reset".}
-proc chunk_print*(mem_chunk: PGMemChunk){.cdecl, dynlib: gliblib, 
-    importc: "g_mem_chunk_print".}
-proc g_mem_chunk_info*(){.cdecl, dynlib: gliblib, importc: "g_mem_chunk_info".}
-proc g_blow_chunks*(){.cdecl, dynlib: gliblib, importc: "g_blow_chunks".}
-proc g_allocator_new*(name: cstring, n_preallocs: guint): PGAllocator{.cdecl, 
-    dynlib: gliblib, importc: "g_allocator_new".}
-proc free*(allocator: PGAllocator){.cdecl, dynlib: gliblib, 
-    importc: "g_allocator_free".}
-const 
-  G_ALLOCATOR_LIST* = 1
-  G_ALLOCATOR_SLIST* = 2
-  G_ALLOCATOR_NODE* = 3
-
-proc slist_push_allocator*(allocator: PGAllocator){.cdecl, dynlib: gliblib, 
-    importc: "g_slist_push_allocator".}
-proc g_slist_pop_allocator*(){.cdecl, dynlib: gliblib, 
-                               importc: "g_slist_pop_allocator".}
-proc g_slist_alloc*(): PGSList{.cdecl, dynlib: gliblib, importc: "g_slist_alloc".}
-proc free*(list: PGSList){.cdecl, dynlib: gliblib, 
-                                   importc: "g_slist_free".}
-proc free_1*(list: PGSList){.cdecl, dynlib: gliblib, 
-                                     importc: "g_slist_free_1".}
-proc append*(list: PGSList, data: gpointer): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_append".}
-proc prepend*(list: PGSList, data: gpointer): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_prepend".}
-proc insert*(list: PGSList, data: gpointer, position: gint): PGSList{.
-    cdecl, dynlib: gliblib, importc: "g_slist_insert".}
-proc insert_sorted*(list: PGSList, data: gpointer, func: TGCompareFunc): PGSList{.
-    cdecl, dynlib: gliblib, importc: "g_slist_insert_sorted".}
-proc insert_before*(slist: PGSList, sibling: PGSList, data: gpointer): PGSList{.
-    cdecl, dynlib: gliblib, importc: "g_slist_insert_before".}
-proc concat*(list1: PGSList, list2: PGSList): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_concat".}
-proc remove*(list: PGSList, data: gconstpointer): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_remove".}
-proc remove_all*(list: PGSList, data: gconstpointer): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_remove_all".}
-proc remove_link*(list: PGSList, link: PGSList): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_remove_link".}
-proc delete_link*(list: PGSList, link: PGSList): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_delete_link".}
-proc reverse*(list: PGSList): PGSList{.cdecl, dynlib: gliblib, 
-    importc: "g_slist_reverse".}
-proc copy*(list: PGSList): PGSList{.cdecl, dynlib: gliblib, 
-    importc: "g_slist_copy".}
-proc nth*(list: PGSList, n: guint): PGSList{.cdecl, dynlib: gliblib, 
-    importc: "g_slist_nth".}
-proc find*(list: PGSList, data: gconstpointer): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_find".}
-proc find_custom*(list: PGSList, data: gconstpointer, 
-                          func: TGCompareFunc): PGSList{.cdecl, dynlib: gliblib, 
-    importc: "g_slist_find_custom".}
-proc position*(list: PGSList, llink: PGSList): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_position".}
-proc index*(list: PGSList, data: gconstpointer): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_index".}
-proc last*(list: PGSList): PGSList{.cdecl, dynlib: gliblib, 
-    importc: "g_slist_last".}
-proc length*(list: PGSList): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_slist_length".}
-proc foreach*(list: PGSList, func: TGFunc, user_data: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_slist_foreach".}
-proc sort*(list: PGSList, compare_func: TGCompareFunc): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_sort".}
-proc sort*(list: PGSList, compare_func: TGCompareDataFunc, 
-                             user_data: gpointer): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_sort_with_data".}
-proc nth_data*(list: PGSList, n: guint): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_nth_data".}
-proc next*(slist: PGSList): PGSList
-proc list_push_allocator*(allocator: PGAllocator){.cdecl, dynlib: gliblib, 
-    importc: "g_list_push_allocator".}
-proc g_list_pop_allocator*(){.cdecl, dynlib: gliblib, 
-                              importc: "g_list_pop_allocator".}
-proc g_list_alloc*(): PGList{.cdecl, dynlib: gliblib, importc: "g_list_alloc".}
-proc free*(list: PGList){.cdecl, dynlib: gliblib, importc: "g_list_free".}
-proc free_1*(list: PGList){.cdecl, dynlib: gliblib, 
-                                   importc: "g_list_free_1".}
-proc append*(list: PGList, data: gpointer): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_append".}
-proc prepend*(list: PGList, data: gpointer): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_prepend".}
-proc insert*(list: PGList, data: gpointer, position: gint): PGList{.
-    cdecl, dynlib: gliblib, importc: "g_list_insert".}
-proc insert_sorted*(list: PGList, data: gpointer, func: TGCompareFunc): PGList{.
-    cdecl, dynlib: gliblib, importc: "g_list_insert_sorted".}
-proc insert_before*(list: PGList, sibling: PGList, data: gpointer): PGList{.
-    cdecl, dynlib: gliblib, importc: "g_list_insert_before".}
-proc concat*(list1: PGList, list2: PGList): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_concat".}
-proc remove*(list: PGList, data: gconstpointer): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_remove".}
-proc remove_all*(list: PGList, data: gconstpointer): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_remove_all".}
-proc remove_link*(list: PGList, llink: PGList): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_remove_link".}
-proc delete_link*(list: PGList, link: PGList): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_delete_link".}
-proc reverse*(list: PGList): PGList{.cdecl, dynlib: gliblib, 
-    importc: "g_list_reverse".}
-proc copy*(list: PGList): PGList{.cdecl, dynlib: gliblib, 
-    importc: "g_list_copy".}
-proc nth*(list: PGList, n: guint): PGList{.cdecl, dynlib: gliblib, 
-    importc: "g_list_nth".}
-proc nth_prev*(list: PGList, n: guint): PGList{.cdecl, dynlib: gliblib, 
-    importc: "g_list_nth_prev".}
-proc find*(list: PGList, data: gconstpointer): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_find".}
-proc find_custom*(list: PGList, data: gconstpointer, func: TGCompareFunc): PGList{.
-    cdecl, dynlib: gliblib, importc: "g_list_find_custom".}
-proc position*(list: PGList, llink: PGList): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_list_position".}
-proc index*(list: PGList, data: gconstpointer): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_list_index".}
-proc last*(list: PGList): PGList{.cdecl, dynlib: gliblib, 
-    importc: "g_list_last".}
-proc first*(list: PGList): PGList{.cdecl, dynlib: gliblib, 
-    importc: "g_list_first".}
-proc length*(list: PGList): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_list_length".}
-proc foreach*(list: PGList, func: TGFunc, user_data: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_list_foreach".}
-proc sort*(list: PGList, compare_func: TGCompareFunc): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_sort".}
-proc sort*(list: PGList, compare_func: TGCompareDataFunc, 
-                            user_data: gpointer): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_sort_with_data".}
-proc nth_data*(list: PGList, n: guint): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_list_nth_data".}
-proc previous*(list: PGList): PGList
-proc next*(list: PGList): PGList
-type 
-  PGCache* = pointer
-  TGCacheNewFunc* = proc (key: gpointer): gpointer{.cdecl.}
-  TGCacheDupFunc* = proc (value: gpointer): gpointer{.cdecl.}
-  TGCacheDestroyFunc* = proc (value: gpointer){.cdecl.}
-
-proc g_cache_new*(value_new_func: TGCacheNewFunc, 
-                  value_destroy_func: TGCacheDestroyFunc, 
-                  key_dup_func: TGCacheDupFunc, 
-                  key_destroy_func: TGCacheDestroyFunc, 
-                  hash_key_func: TGHashFunc, hash_value_func: TGHashFunc, 
-                  key_equal_func: TGEqualFunc): PGCache{.cdecl, dynlib: gliblib, 
-    importc: "g_cache_new".}
-proc destroy*(cache: PGCache){.cdecl, dynlib: gliblib, 
-                                       importc: "g_cache_destroy".}
-proc insert*(cache: PGCache, key: gpointer): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_cache_insert".}
-proc remove*(cache: PGCache, value: gconstpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_cache_remove".}
-proc key_foreach*(cache: PGCache, func: TGHFunc, user_data: gpointer){.
-    cdecl, dynlib: gliblib, importc: "g_cache_key_foreach".}
-proc value_foreach*(cache: PGCache, func: TGHFunc, user_data: gpointer){.
-    cdecl, dynlib: gliblib, importc: "g_cache_value_foreach".}
-type 
-  PGCompletionFunc* = ptr TGCompletionFunc
-  TGCompletionFunc* = gchar
-  TGCompletionStrncmpFunc* = proc (s1: cstring, s2: cstring, n: gsize): gint{.
-      cdecl.}
-  PGCompletion* = ptr TGCompletion
-  TGCompletion*{.final.} = object 
-    items*: PGList
-    func*: TGCompletionFunc
-    prefix*: cstring
-    cache*: PGList
-    strncmp_func*: TGCompletionStrncmpFunc
-
-
-proc g_completion_new*(func: TGCompletionFunc): PGCompletion{.cdecl, 
-    dynlib: gliblib, importc: "g_completion_new".}
-proc add_items*(cmp: PGCompletion, items: PGList){.cdecl, 
-    dynlib: gliblib, importc: "g_completion_add_items".}
-proc remove_items*(cmp: PGCompletion, items: PGList){.cdecl, 
-    dynlib: gliblib, importc: "g_completion_remove_items".}
-proc clear_items*(cmp: PGCompletion){.cdecl, dynlib: gliblib, 
-    importc: "g_completion_clear_items".}
-proc complete*(cmp: PGCompletion, prefix: cstring, 
-                            new_prefix: PPgchar): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_completion_complete".}
-proc set_compare*(cmp: PGCompletion, 
-                               strncmp_func: TGCompletionStrncmpFunc){.cdecl, 
-    dynlib: gliblib, importc: "g_completion_set_compare".}
-proc free*(cmp: PGCompletion){.cdecl, dynlib: gliblib, 
-    importc: "g_completion_free".}
-type 
-  PGConvertError* = ptr TGConvertError
-  TGConvertError* = enum 
-    G_CONVERT_ERROR_NO_CONVERSION, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, 
-    G_CONVERT_ERROR_FAILED, G_CONVERT_ERROR_PARTIAL_INPUT, 
-    G_CONVERT_ERROR_BAD_URI, G_CONVERT_ERROR_NOT_ABSOLUTE_PATH
-
-proc G_CONVERT_ERROR*(): TGQuark
-proc g_convert_error_quark*(): TGQuark{.cdecl, dynlib: gliblib, 
-                                        importc: "g_convert_error_quark".}
-type 
-  PGIConv* = ptr TGIConv
-  TGIConv* = pointer
-
-proc g_iconv_open*(to_codeset: cstring, from_codeset: cstring): TGIConv{.cdecl, 
-    dynlib: gliblib, importc: "g_iconv_open".}
-proc g_iconv*(`converter`: TGIConv, inbuf: PPgchar, inbytes_left: Pgsize, 
-              outbuf: PPgchar, outbytes_left: Pgsize): gsize{.cdecl, 
-    dynlib: gliblib, importc: "g_iconv".}
-proc g_iconv_close*(`converter`: TGIConv): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_iconv_close".}
-proc g_convert*(str: cstring, len: gssize, to_codeset: cstring, 
-                from_codeset: cstring, bytes_read: Pgsize, 
-                bytes_written: Pgsize, error: pointer): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_convert".}
-proc g_convert*(str: cstring, len: gssize, `converter`: TGIConv, 
-                           bytes_read: Pgsize, bytes_written: Pgsize, 
-                           error: pointer): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_convert_with_iconv".}
-proc g_convert*(str: cstring, len: gssize, to_codeset: cstring, 
-                              from_codeset: cstring, fallback: cstring, 
-                              bytes_read: Pgsize, bytes_written: Pgsize, 
-                              error: pointer): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_convert_with_fallback".}
-proc g_locale_to_utf8*(opsysstring: cstring, len: gssize, bytes_read: Pgsize, 
-                       bytes_written: Pgsize, error: pointer): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_locale_to_utf8".}
-proc g_locale_from_utf8*(utf8string: cstring, len: gssize, bytes_read: Pgsize, 
-                         bytes_written: Pgsize, error: pointer): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_locale_from_utf8".}
-proc g_filename_to_utf8*(opsysstring: cstring, len: gssize, bytes_read: Pgsize, 
-                         bytes_written: Pgsize, error: pointer): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_filename_to_utf8".}
-proc g_filename_from_utf8*(utf8string: cstring, len: gssize, bytes_read: Pgsize, 
-                           bytes_written: Pgsize, error: pointer): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_filename_from_utf8".}
-proc g_filename_from_uri*(uri: cstring, hostname: PPchar, error: pointer): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_filename_from_uri".}
-proc g_filename_to_uri*(filename: cstring, hostname: cstring, error: pointer): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_filename_to_uri".}
-type 
-  TGDataForeachFunc* = proc (key_id: TGQuark, data: gpointer, 
-                             user_data: gpointer){.cdecl.}
-
-proc g_datalist_init*(datalist: PPGData){.cdecl, dynlib: gliblib, 
-    importc: "g_datalist_init".}
-proc g_datalist_clear*(datalist: PPGData){.cdecl, dynlib: gliblib, 
-    importc: "g_datalist_clear".}
-proc g_datalist_id_get_data*(datalist: PPGData, key_id: TGQuark): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_datalist_id_get_data".}
-proc g_datalist_id_set_data_full*(datalist: PPGData, key_id: TGQuark, 
-                                  data: gpointer, destroy_func: TGDestroyNotify){.
-    cdecl, dynlib: gliblib, importc: "g_datalist_id_set_data_full".}
-proc g_datalist_id_remove_no_notify*(datalist: PPGData, key_id: TGQuark): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_datalist_id_remove_no_notify".}
-proc g_datalist_foreach*(datalist: PPGData, func: TGDataForeachFunc, 
-                         user_data: gpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_datalist_foreach".}
-proc g_datalist_id_set_data*(datalist: PPGData, key_id: TGQuark, data: gpointer)
-proc g_datalist_id_remove_data*(datalist: PPGData, key_id: TGQuark)
-proc g_datalist_get_data*(datalist: PPGData, key_str: cstring): PPGData
-proc g_datalist_set_data_full*(datalist: PPGData, key_str: cstring, 
-                               data: gpointer, destroy_func: TGDestroyNotify)
-proc g_datalist_set_data*(datalist: PPGData, key_str: cstring, data: gpointer)
-proc g_datalist_remove_no_notify*(datalist: PPGData, key_str: cstring)
-proc g_datalist_remove_data*(datalist: PPGData, key_str: cstring)
-proc g_dataset_id_get_data*(dataset_location: gconstpointer, key_id: TGQuark): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_dataset_id_get_data".}
-proc g_dataset_id_set_data_full*(dataset_location: gconstpointer, 
-                                 key_id: TGQuark, data: gpointer, 
-                                 destroy_func: TGDestroyNotify){.cdecl, 
-    dynlib: gliblib, importc: "g_dataset_id_set_data_full".}
-proc g_dataset_id_remove_no_notify*(dataset_location: gconstpointer, 
-                                    key_id: TGQuark): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_dataset_id_remove_no_notify".}
-proc g_dataset_foreach*(dataset_location: gconstpointer, 
-                        func: TGDataForeachFunc, user_data: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_dataset_foreach".}
-proc g_dataset_id_set_data*(location: gconstpointer, key_id: TGQuark, 
-                            data: gpointer)
-proc g_dataset_id_remove_data*(location: gconstpointer, key_id: TGQuark)
-proc g_dataset_get_data*(location: gconstpointer, key_str: cstring): gpointer
-proc g_dataset_set_data_full*(location: gconstpointer, key_str: cstring, 
-                              data: gpointer, destroy_func: TGDestroyNotify)
-proc g_dataset_remove_no_notify*(location: gconstpointer, key_str: cstring)
-proc g_dataset_set_data*(location: gconstpointer, key_str: cstring, 
-                         data: gpointer)
-proc g_dataset_remove_data*(location: gconstpointer, key_str: cstring)
-type 
-  PGTime* = ptr TGTime
-  TGTime* = gint32
-  PGDateYear* = ptr TGDateYear
-  TGDateYear* = guint16
-  PGDateDay* = ptr TGDateDay
-  TGDateDay* = guint8
-  Ptm* = ptr Ttm
-  Ttm*{.final.} = object 
-    tm_sec*: gint
-    tm_min*: gint
-    tm_hour*: gint
-    tm_mday*: gint
-    tm_mon*: gint
-    tm_year*: gint
-    tm_wday*: gint
-    tm_yday*: gint
-    tm_isdst*: gint
-    tm_gmtoff*: glong
-    tm_zone*: cstring
-
-
-type 
-  PGDateDMY* = ptr TGDateDMY
-  TGDateDMY* = int
-
-const 
-  G_DATE_DAY* = 0
-  G_DATE_MONTH* = 1
-  G_DATE_YEAR* = 2
-
-type 
-  PGDateWeekday* = ptr TGDateWeekday
-  TGDateWeekday* = int
-
-const 
-  G_DATE_BAD_WEEKDAY* = 0
-  G_DATE_MONDAY* = 1
-  G_DATE_TUESDAY* = 2
-  G_DATE_WEDNESDAY* = 3
-  G_DATE_THURSDAY* = 4
-  G_DATE_FRIDAY* = 5
-  G_DATE_SATURDAY* = 6
-  G_DATE_SUNDAY* = 7
-
-type 
-  PGDateMonth* = ptr TGDateMonth
-  TGDateMonth* = int
-
-const 
-  G_DATE_BAD_MONTH* = 0
-  G_DATE_JANUARY* = 1
-  G_DATE_FEBRUARY* = 2
-  G_DATE_MARCH* = 3
-  G_DATE_APRIL* = 4
-  G_DATE_MAY* = 5
-  G_DATE_JUNE* = 6
-  G_DATE_JULY* = 7
-  G_DATE_AUGUST* = 8
-  G_DATE_SEPTEMBER* = 9
-  G_DATE_OCTOBER* = 10
-  G_DATE_NOVEMBER* = 11
-  G_DATE_DECEMBER* = 12
-
-const 
-  G_DATE_BAD_JULIAN* = 0
-  G_DATE_BAD_DAY* = 0
-  G_DATE_BAD_YEAR* = 0
-
-type 
-  PGDate* = ptr TGDate
-  TGDate*{.final.} = object 
-    flag0*: int32
-    flag1*: int32
-
-
-proc g_date_new*(): PGDate{.cdecl, dynlib: gliblib, importc: "g_date_new".}
-proc g_date_new_dmy*(day: TGDateDay, month: TGDateMonth, year: TGDateYear): PGDate{.
-    cdecl, dynlib: gliblib, importc: "g_date_new_dmy".}
-proc g_date_new_julian*(julian_day: guint32): PGDate{.cdecl, dynlib: gliblib, 
-    importc: "g_date_new_julian".}
-proc free*(date: PGDate){.cdecl, dynlib: gliblib, importc: "g_date_free".}
-proc valid*(date: PGDate): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_date_valid".}
-proc g_date_valid_month*(month: TGDateMonth): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_date_valid_month".}
-proc g_date_valid_year*(year: TGDateYear): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_date_valid_year".}
-proc g_date_valid_weekday*(weekday: TGDateWeekday): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_date_valid_weekday".}
-proc g_date_valid_julian*(julian_date: guint32): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_date_valid_julian".}
-proc get_weekday*(date: PGDate): TGDateWeekday{.cdecl, dynlib: gliblib, 
-    importc: "g_date_get_weekday".}
-proc get_month*(date: PGDate): TGDateMonth{.cdecl, dynlib: gliblib, 
-    importc: "g_date_get_month".}
-proc get_year*(date: PGDate): TGDateYear{.cdecl, dynlib: gliblib, 
-    importc: "g_date_get_year".}
-proc get_day*(date: PGDate): TGDateDay{.cdecl, dynlib: gliblib, 
-    importc: "g_date_get_day".}
-proc get_julian*(date: PGDate): guint32{.cdecl, dynlib: gliblib, 
-    importc: "g_date_get_julian".}
-proc get_day_of_year*(date: PGDate): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_date_get_day_of_year".}
-proc get_monday_week_of_year*(date: PGDate): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_date_get_monday_week_of_year".}
-proc get_sunday_week_of_year*(date: PGDate): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_date_get_sunday_week_of_year".}
-proc clear*(date: PGDate, n_dates: guint){.cdecl, dynlib: gliblib, 
-    importc: "g_date_clear".}
-proc set_parse*(date: PGDate, str: cstring){.cdecl, dynlib: gliblib, 
-    importc: "g_date_set_parse".}
-proc set_time*(date: PGDate, time: TGTime){.cdecl, dynlib: gliblib, 
-    importc: "g_date_set_time".}
-proc set_month*(date: PGDate, month: TGDateMonth){.cdecl, 
-    dynlib: gliblib, importc: "g_date_set_month".}
-proc set_day*(date: PGDate, day: TGDateDay){.cdecl, dynlib: gliblib, 
-    importc: "g_date_set_day".}
-proc set_year*(date: PGDate, year: TGDateYear){.cdecl, dynlib: gliblib, 
-    importc: "g_date_set_year".}
-proc set_dmy*(date: PGDate, day: TGDateDay, month: TGDateMonth, 
-                     y: TGDateYear){.cdecl, dynlib: gliblib, 
-                                     importc: "g_date_set_dmy".}
-proc set_julian*(date: PGDate, julian_date: guint32){.cdecl, 
-    dynlib: gliblib, importc: "g_date_set_julian".}
-proc is_first_of_month*(date: PGDate): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_date_is_first_of_month".}
-proc is_last_of_month*(date: PGDate): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_date_is_last_of_month".}
-proc add_days*(date: PGDate, n_days: guint){.cdecl, dynlib: gliblib, 
-    importc: "g_date_add_days".}
-proc subtract_days*(date: PGDate, n_days: guint){.cdecl, dynlib: gliblib, 
-    importc: "g_date_subtract_days".}
-proc add_months*(date: PGDate, n_months: guint){.cdecl, dynlib: gliblib, 
-    importc: "g_date_add_months".}
-proc subtract_months*(date: PGDate, n_months: guint){.cdecl, 
-    dynlib: gliblib, importc: "g_date_subtract_months".}
-proc add_years*(date: PGDate, n_years: guint){.cdecl, dynlib: gliblib, 
-    importc: "g_date_add_years".}
-proc subtract_years*(date: PGDate, n_years: guint){.cdecl, 
-    dynlib: gliblib, importc: "g_date_subtract_years".}
-proc g_date_is_leap_year*(year: TGDateYear): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_date_is_leap_year".}
-proc g_date_get_days_in_month*(month: TGDateMonth, year: TGDateYear): guint8{.
-    cdecl, dynlib: gliblib, importc: "g_date_get_days_in_month".}
-proc g_date_get_monday_weeks_in_year*(year: TGDateYear): guint8{.cdecl, 
-    dynlib: gliblib, importc: "g_date_get_monday_weeks_in_year".}
-proc g_date_get_sunday_weeks_in_year*(year: TGDateYear): guint8{.cdecl, 
-    dynlib: gliblib, importc: "g_date_get_sunday_weeks_in_year".}
-proc days_between*(date1: PGDate, date2: PGDate): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_date_days_between".}
-proc compare*(lhs: PGDate, rhs: PGDate): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_date_compare".}
-proc to_struct_tm*(date: PGDate, tm: Ptm){.cdecl, dynlib: gliblib, 
-    importc: "g_date_to_struct_tm".}
-proc clamp*(date: PGDate, min_date: PGDate, max_date: PGDate){.cdecl, 
-    dynlib: gliblib, importc: "g_date_clamp".}
-proc order*(date1: PGDate, date2: PGDate){.cdecl, dynlib: gliblib, 
-    importc: "g_date_order".}
-proc g_date_strftime*(s: cstring, slen: gsize, format: cstring, date: PGDate): gsize{.
-    cdecl, dynlib: gliblib, importc: "g_date_strftime".}
-type 
-  PGDir* = pointer
-
-proc g_dir_open*(path: cstring, flags: guint, error: pointer): PGDir{.cdecl, 
-    dynlib: gliblib, importc: "g_dir_open".}
-proc read_name*(dir: PGDir): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_dir_read_name".}
-proc rewind*(dir: PGDir){.cdecl, dynlib: gliblib, importc: "g_dir_rewind".}
-proc close*(dir: PGDir){.cdecl, dynlib: gliblib, importc: "g_dir_close".}
-type 
-  PGFileError* = ptr TGFileError
-  TGFileError* = gint
-
-type 
-  PGFileTest* = ptr TGFileTest
-  TGFileTest* = int
-
-const 
-  G_FILE_TEST_IS_REGULAR* = 1 shl 0
-  G_FILE_TEST_IS_SYMLINK* = 1 shl 1
-  G_FILE_TEST_IS_DIR* = 1 shl 2
-  G_FILE_TEST_IS_EXECUTABLE* = 1 shl 3
-  G_FILE_TEST_EXISTS* = 1 shl 4
-
-const 
-  G_FILE_ERROR_EXIST* = 0
-  G_FILE_ERROR_ISDIR* = 1
-  G_FILE_ERROR_ACCES* = 2
-  G_FILE_ERROR_NAMETOOLONG* = 3
-  G_FILE_ERROR_NOENT* = 4
-  G_FILE_ERROR_NOTDIR* = 5
-  G_FILE_ERROR_NXIO* = 6
-  G_FILE_ERROR_NODEV* = 7
-  G_FILE_ERROR_ROFS* = 8
-  G_FILE_ERROR_TXTBSY* = 9
-  G_FILE_ERROR_FAULT* = 10
-  G_FILE_ERROR_LOOP* = 11
-  G_FILE_ERROR_NOSPC* = 12
-  G_FILE_ERROR_NOMEM* = 13
-  G_FILE_ERROR_MFILE* = 14
-  G_FILE_ERROR_NFILE* = 15
-  G_FILE_ERROR_BADF* = 16
-  G_FILE_ERROR_INVAL* = 17
-  G_FILE_ERROR_PIPE* = 18
-  G_FILE_ERROR_AGAIN* = 19
-  G_FILE_ERROR_INTR* = 20
-  G_FILE_ERROR_IO* = 21
-  G_FILE_ERROR_PERM* = 22
-  G_FILE_ERROR_FAILED* = 23
-
-proc G_FILE_ERROR*(): TGQuark
-proc g_file_error_quark*(): TGQuark{.cdecl, dynlib: gliblib, 
-                                     importc: "g_file_error_quark".}
-proc g_file_error_from_errno*(err_no: gint): TGFileError{.cdecl, 
-    dynlib: gliblib, importc: "g_file_error_from_errno".}
-proc g_file_test*(filename: cstring, test: TGFileTest): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_file_test".}
-proc g_file_get_contents*(filename: cstring, contents: PPgchar, length: Pgsize, 
-                          error: pointer): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_file_get_contents".}
-proc g_mkstemp*(tmpl: cstring): int32{.cdecl, dynlib: gliblib, 
-                                       importc: "g_mkstemp".}
-proc g_file_open_tmp*(tmpl: cstring, name_used: PPchar, error: pointer): int32{.
-    cdecl, dynlib: gliblib, importc: "g_file_open_tmp".}
-type 
-  PGHook* = ptr TGHook
-  TGHook*{.final.} = object 
-    data*: gpointer
-    next*: PGHook
-    prev*: PGHook
-    ref_count*: guint
-    hook_id*: gulong
-    flags*: guint
-    func*: gpointer
-    destroy*: TGDestroyNotify
-
-  PGHookList* = ptr TGHookList
-  TGHookCompareFunc* = proc (new_hook: PGHook, sibling: PGHook): gint{.cdecl.}
-  TGHookFindFunc* = proc (hook: PGHook, data: gpointer): gboolean{.cdecl.}
-  TGHookMarshaller* = proc (hook: PGHook, marshal_data: gpointer){.cdecl.}
-  TGHookCheckMarshaller* = proc (hook: PGHook, marshal_data: gpointer): gboolean{.
-      cdecl.}
-  TGHookFunc* = proc (data: gpointer){.cdecl.}
-  TGHookCheckFunc* = proc (data: gpointer): gboolean{.cdecl.}
-  TGHookFinalizeFunc* = proc (hook_list: PGHookList, hook: PGHook){.cdecl.}
-  TGHookList*{.final.} = object 
-    seq_id*: gulong
-    flag0*: int32
-    hooks*: PGHook
-    hook_memchunk*: PGMemChunk
-    finalize_hook*: TGHookFinalizeFunc
-    dummy*: array[0..1, gpointer]
-
-
-type 
-  PGHookFlagMask* = ptr TGHookFlagMask
-  TGHookFlagMask* = int
-
-const 
-  G_HOOK_FLAG_ACTIVE* = 1'i32 shl 0'i32
-  G_HOOK_FLAG_IN_CALL* = 1'i32 shl 1'i32
-  G_HOOK_FLAG_MASK* = 0x0000000F'i32
-
-const 
-  G_HOOK_FLAG_USER_SHIFT* = 4'i32
-  bm_TGHookList_hook_size* = 0x0000FFFF'i32
-  bp_TGHookList_hook_size* = 0'i32
-  bm_TGHookList_is_setup* = 0x00010000'i32
-  bp_TGHookList_is_setup* = 16'i32
-
-proc TGHookList_hook_size*(a: PGHookList): guint
-proc TGHookList_set_hook_size*(a: PGHookList, `hook_size`: guint)
-proc TGHookList_is_setup*(a: PGHookList): guint
-proc TGHookList_set_is_setup*(a: PGHookList, `is_setup`: guint)
-proc G_HOOK*(hook: pointer): PGHook
-proc FLAGS*(hook: PGHook): guint
-proc ACTIVE*(hook: PGHook): bool
-proc IN_CALL*(hook: PGHook): bool
-proc IS_VALID*(hook: PGHook): bool
-proc IS_UNLINKED*(hook: PGHook): bool
-proc list_init*(hook_list: PGHookList, hook_size: guint){.cdecl, 
-    dynlib: gliblib, importc: "g_hook_list_init".}
-proc list_clear*(hook_list: PGHookList){.cdecl, dynlib: gliblib, 
-    importc: "g_hook_list_clear".}
-proc alloc*(hook_list: PGHookList): PGHook{.cdecl, dynlib: gliblib, 
-    importc: "g_hook_alloc".}
-proc free*(hook_list: PGHookList, hook: PGHook){.cdecl, dynlib: gliblib, 
-    importc: "g_hook_free".}
-proc reference*(hook_list: PGHookList, hook: PGHook){.cdecl, dynlib: gliblib, 
-    importc: "g_hook_ref".}
-proc unref*(hook_list: PGHookList, hook: PGHook){.cdecl, dynlib: gliblib, 
-    importc: "g_hook_unref".}
-proc destroy*(hook_list: PGHookList, hook_id: gulong): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_hook_destroy".}
-proc destroy_link*(hook_list: PGHookList, hook: PGHook){.cdecl, 
-    dynlib: gliblib, importc: "g_hook_destroy_link".}
-proc prepend*(hook_list: PGHookList, hook: PGHook){.cdecl, 
-    dynlib: gliblib, importc: "g_hook_prepend".}
-proc insert_before*(hook_list: PGHookList, sibling: PGHook, hook: PGHook){.
-    cdecl, dynlib: gliblib, importc: "g_hook_insert_before".}
-proc insert_sorted*(hook_list: PGHookList, hook: PGHook, 
-                           func: TGHookCompareFunc){.cdecl, dynlib: gliblib, 
-    importc: "g_hook_insert_sorted".}
-proc get*(hook_list: PGHookList, hook_id: gulong): PGHook{.cdecl, 
-    dynlib: gliblib, importc: "g_hook_get".}
-proc find*(hook_list: PGHookList, need_valids: gboolean, 
-                  func: TGHookFindFunc, data: gpointer): PGHook{.cdecl, 
-    dynlib: gliblib, importc: "g_hook_find".}
-proc find_data*(hook_list: PGHookList, need_valids: gboolean, 
-                       data: gpointer): PGHook{.cdecl, dynlib: gliblib, 
-    importc: "g_hook_find_data".}
-proc find_func*(hook_list: PGHookList, need_valids: gboolean, 
-                       func: gpointer): PGHook{.cdecl, dynlib: gliblib, 
-    importc: "g_hook_find_func".}
-proc find_func_data*(hook_list: PGHookList, need_valids: gboolean, 
-                            func: gpointer, data: gpointer): PGHook{.cdecl, 
-    dynlib: gliblib, importc: "g_hook_find_func_data".}
-proc first_valid*(hook_list: PGHookList, may_be_in_call: gboolean): PGHook{.
-    cdecl, dynlib: gliblib, importc: "g_hook_first_valid".}
-proc next_valid*(hook_list: PGHookList, hook: PGHook, 
-                        may_be_in_call: gboolean): PGHook{.cdecl, 
-    dynlib: gliblib, importc: "g_hook_next_valid".}
-proc compare_ids*(new_hook: PGHook, sibling: PGHook): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_hook_compare_ids".}
-proc append*(hook_list: PGHookList, hook: PGHook)
-proc list_invoke_check*(hook_list: PGHookList, may_recurse: gboolean){.
-    cdecl, dynlib: gliblib, importc: "g_hook_list_invoke_check".}
-proc list_marshal*(hook_list: PGHookList, may_recurse: gboolean, 
-                          marshaller: TGHookMarshaller, marshal_data: gpointer){.
-    cdecl, dynlib: gliblib, importc: "g_hook_list_marshal".}
-proc list_marshal_check*(hook_list: PGHookList, may_recurse: gboolean, 
-                                marshaller: TGHookCheckMarshaller, 
-                                marshal_data: gpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_hook_list_marshal_check".}
-type 
-  PGThreadPool* = ptr TGThreadPool
-  TGThreadPool*{.final.} = object 
-    func*: TGFunc
-    user_data*: gpointer
-    exclusive*: gboolean
-
-
-proc g_thread_pool_new*(func: TGFunc, user_data: gpointer, max_threads: gint, 
-                        exclusive: gboolean, error: pointer): PGThreadPool{.
-    cdecl, dynlib: gliblib, importc: "g_thread_pool_new".}
-proc pool_push*(pool: PGThreadPool, data: gpointer, error: pointer){.
-    cdecl, dynlib: gliblib, importc: "g_thread_pool_push".}
-proc pool_set_max_threads*(pool: PGThreadPool, max_threads: gint, 
-                                    error: pointer){.cdecl, dynlib: gliblib, 
-    importc: "g_thread_pool_set_max_threads".}
-proc pool_get_max_threads*(pool: PGThreadPool): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_thread_pool_get_max_threads".}
-proc pool_get_num_threads*(pool: PGThreadPool): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_thread_pool_get_num_threads".}
-proc pool_unprocessed*(pool: PGThreadPool): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_thread_pool_unprocessed".}
-proc pool_free*(pool: PGThreadPool, immediate: gboolean, wait: gboolean){.
-    cdecl, dynlib: gliblib, importc: "g_thread_pool_free".}
-proc g_thread_pool_set_max_unused_threads*(max_threads: gint){.cdecl, 
-    dynlib: gliblib, importc: "g_thread_pool_set_max_unused_threads".}
-proc g_thread_pool_get_max_unused_threads*(): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_thread_pool_get_max_unused_threads".}
-proc g_thread_pool_get_num_unused_threads*(): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_thread_pool_get_num_unused_threads".}
-proc g_thread_pool_stop_unused_threads*(){.cdecl, dynlib: gliblib, 
-    importc: "g_thread_pool_stop_unused_threads".}
-type 
-  PGTimer* = pointer
-
-const 
-  G_USEC_PER_SEC* = 1000000
-
-proc g_timer_new*(): PGTimer{.cdecl, dynlib: gliblib, importc: "g_timer_new".}
-proc destroy*(timer: PGTimer){.cdecl, dynlib: gliblib, 
-                                       importc: "g_timer_destroy".}
-proc start*(timer: PGTimer){.cdecl, dynlib: gliblib, 
-                                     importc: "g_timer_start".}
-proc stop*(timer: PGTimer){.cdecl, dynlib: gliblib, 
-                                    importc: "g_timer_stop".}
-proc reset*(timer: PGTimer){.cdecl, dynlib: gliblib, 
-                                     importc: "g_timer_reset".}
-proc elapsed*(timer: PGTimer, microseconds: Pgulong): gdouble{.cdecl, 
-    dynlib: gliblib, importc: "g_timer_elapsed".}
-proc g_usleep*(microseconds: gulong){.cdecl, dynlib: gliblib, 
-                                      importc: "g_usleep".}
-proc val_add*(time: PGTimeVal, microseconds: glong){.cdecl, 
-    dynlib: gliblib, importc: "g_time_val_add".}
-type 
-  Pgunichar* = ptr gunichar
-  gunichar* = guint32
-  Pgunichar2* = ptr gunichar2
-  gunichar2* = guint16
-  PGUnicodeType* = ptr TGUnicodeType
-  TGUnicodeType* = enum 
-    G_UNICODE_CONTROL, G_UNICODE_FORMAT, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_PRIVATE_USE, G_UNICODE_SURROGATE, G_UNICODE_LOWERCASE_LETTER, 
-    G_UNICODE_MODIFIER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_TITLECASE_LETTER, G_UNICODE_UPPERCASE_LETTER, 
-    G_UNICODE_COMBINING_MARK, G_UNICODE_ENCLOSING_MARK, 
-    G_UNICODE_NON_SPACING_MARK, G_UNICODE_DECIMAL_NUMBER, 
-    G_UNICODE_LETTER_NUMBER, G_UNICODE_OTHER_NUMBER, 
-    G_UNICODE_CONNECT_PUNCTUATION, G_UNICODE_DASH_PUNCTUATION, 
-    G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_FINAL_PUNCTUATION, 
-    G_UNICODE_INITIAL_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, 
-    G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CURRENCY_SYMBOL, 
-    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_LINE_SEPARATOR, G_UNICODE_PARAGRAPH_SEPARATOR, 
-    G_UNICODE_SPACE_SEPARATOR
-  PGUnicodeBreakType* = ptr TGUnicodeBreakType
-  TGUnicodeBreakType* = enum 
-    G_UNICODE_BREAK_MANDATORY, G_UNICODE_BREAK_CARRIAGE_RETURN, 
-    G_UNICODE_BREAK_LINE_FEED, G_UNICODE_BREAK_COMBINING_MARK, 
-    G_UNICODE_BREAK_SURROGATE, G_UNICODE_BREAK_ZERO_WIDTH_SPACE, 
-    G_UNICODE_BREAK_INSEPARABLE, G_UNICODE_BREAK_NON_BREAKING_GLUE, 
-    G_UNICODE_BREAK_CONTINGENT, G_UNICODE_BREAK_SPACE, G_UNICODE_BREAK_AFTER, 
-    G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_BEFORE_AND_AFTER, 
-    G_UNICODE_BREAK_HYPHEN, G_UNICODE_BREAK_NON_STARTER, 
-    G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
-    G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_EXCLAMATION, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NUMERIC, 
-    G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_SYMBOL, 
-    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, 
-    G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_AMBIGUOUS, 
-    G_UNICODE_BREAK_UNKNOWN
-
-proc g_get_charset*(charset: PPchar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_get_charset".}
-proc g_unichar_isalnum*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isalnum".}
-proc g_unichar_isalpha*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isalpha".}
-proc g_unichar_iscntrl*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_iscntrl".}
-proc g_unichar_isdigit*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isdigit".}
-proc g_unichar_isgraph*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isgraph".}
-proc g_unichar_islower*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_islower".}
-proc g_unichar_isprint*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isprint".}
-proc g_unichar_ispunct*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_ispunct".}
-proc g_unichar_isspace*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isspace".}
-proc g_unichar_isupper*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isupper".}
-proc g_unichar_isxdigit*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isxdigit".}
-proc g_unichar_istitle*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_istitle".}
-proc g_unichar_isdefined*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isdefined".}
-proc g_unichar_iswide*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_iswide".}
-proc g_unichar_toupper*(c: gunichar): gunichar{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_toupper".}
-proc g_unichar_tolower*(c: gunichar): gunichar{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_tolower".}
-proc g_unichar_totitle*(c: gunichar): gunichar{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_totitle".}
-proc g_unichar_digit_value*(c: gunichar): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_digit_value".}
-proc g_unichar_xdigit_value*(c: gunichar): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_xdigit_value".}
-proc g_unichar_type*(c: gunichar): TGUnicodeType{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_type".}
-proc g_unichar_break_type*(c: gunichar): TGUnicodeBreakType{.cdecl, 
-    dynlib: gliblib, importc: "g_unichar_break_type".}
-proc unicode_canonical_ordering*(str: Pgunichar, len: gsize){.cdecl, 
-    dynlib: gliblib, importc: "g_unicode_canonical_ordering".}
-proc g_unicode_canonical_decomposition*(ch: gunichar, result_len: Pgsize): Pgunichar{.
-    cdecl, dynlib: gliblib, importc: "g_unicode_canonical_decomposition".}
-proc utf8_next_char*(p: pguchar): pguchar
-proc g_utf8_get_char*(p: cstring): gunichar{.cdecl, dynlib: gliblib, 
-    importc: "g_utf8_get_char".}
-proc g_utf8_get_char_validated*(p: cstring, max_len: gssize): gunichar{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_get_char_validated".}
-proc g_utf8_offset_to_pointer*(str: cstring, offset: glong): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_offset_to_pointer".}
-proc g_utf8_pointer_to_offset*(str: cstring, pos: cstring): glong{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_pointer_to_offset".}
-proc g_utf8_prev_char*(p: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_utf8_prev_char".}
-proc g_utf8_find_next_char*(p: cstring, `end`: cstring): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_find_next_char".}
-proc g_utf8_find_prev_char*(str: cstring, p: cstring): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_find_prev_char".}
-proc g_utf8_strlen*(p: cstring, max: gssize): glong{.cdecl, dynlib: gliblib, 
-    importc: "g_utf8_strlen".}
-proc g_utf8_strncpy*(dest: cstring, src: cstring, n: gsize): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_strncpy".}
-proc g_utf8_strchr*(p: cstring, len: gssize, c: gunichar): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_strchr".}
-proc g_utf8_strrchr*(p: cstring, len: gssize, c: gunichar): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_strrchr".}
-proc g_utf8_to_utf16*(str: cstring, len: glong, items_read: Pglong, 
-                      items_written: Pglong, error: pointer): Pgunichar2{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_to_utf16".}
-proc g_utf8_to_ucs4*(str: cstring, len: glong, items_read: Pglong, 
-                     items_written: Pglong, error: pointer): Pgunichar{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_to_ucs4".}
-proc g_utf8_to_ucs4_fast*(str: cstring, len: glong, items_written: Pglong): Pgunichar{.
-    cdecl, dynlib: gliblib, importc: "g_utf8_to_ucs4_fast".}
-proc utf16_to_ucs4*(str: Pgunichar2, len: glong, items_read: Pglong, 
-                      items_written: Pglong, error: pointer): Pgunichar{.cdecl, 
-    dynlib: gliblib, importc: "g_utf16_to_ucs4".}
-proc utf16_to_utf8*(str: Pgunichar2, len: glong, items_read: Pglong, 
-                      items_written: Pglong, error: pointer): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf16_to_utf8".}
-proc ucs4_to_utf16*(str: Pgunichar, len: glong, items_read: Pglong, 
-                      items_written: Pglong, error: pointer): Pgunichar2{.cdecl, 
-    dynlib: gliblib, importc: "g_ucs4_to_utf16".}
-proc ucs4_to_utf8*(str: Pgunichar, len: glong, items_read: Pglong, 
-                     items_written: Pglong, error: pointer): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_ucs4_to_utf8".}
-proc g_unichar_to_utf8*(c: gunichar, outbuf: cstring): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_unichar_to_utf8".}
-proc g_utf8_validate*(str: cstring, max_len: gssize, `end`: PPgchar): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_utf8_validate".}
-proc g_unichar_validate*(ch: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_validate".}
-proc g_utf8_strup*(str: cstring, len: gssize): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_utf8_strup".}
-proc g_utf8_strdown*(str: cstring, len: gssize): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_strdown".}
-proc g_utf8_casefold*(str: cstring, len: gssize): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_casefold".}
-type 
-  PGNormalizeMode* = ptr TGNormalizeMode
-  TGNormalizeMode* = gint
-
-const 
-  G_NORMALIZE_DEFAULT* = 0
-  G_NORMALIZE_NFD* = G_NORMALIZE_DEFAULT
-  G_NORMALIZE_DEFAULT_COMPOSE* = 1
-  G_NORMALIZE_NFC* = G_NORMALIZE_DEFAULT_COMPOSE
-  G_NORMALIZE_ALL* = 2
-  G_NORMALIZE_NFKD* = G_NORMALIZE_ALL
-  G_NORMALIZE_ALL_COMPOSE* = 3
-  G_NORMALIZE_NFKC* = G_NORMALIZE_ALL_COMPOSE
-
-proc g_utf8_normalize*(str: cstring, len: gssize, mode: TGNormalizeMode): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_utf8_normalize".}
-proc g_utf8_collate*(str1: cstring, str2: cstring): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_collate".}
-proc g_utf8_collate_key*(str: cstring, len: gssize): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_collate_key".}
-type 
-  PGString* = ptr TGString
-  TGString*{.final.} = object 
-    str*: cstring
-    len*: gsize
-    allocated_len*: gsize
-
-  PGStringChunk* = pointer
-
-proc g_string_chunk_new*(size: gsize): PGStringChunk{.cdecl, dynlib: gliblib, 
-    importc: "g_string_chunk_new".}
-proc chunk_free*(chunk: PGStringChunk){.cdecl, dynlib: gliblib, 
-    importc: "g_string_chunk_free".}
-proc chunk_insert*(chunk: PGStringChunk, str: cstring): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_string_chunk_insert".}
-proc chunk_insert_const*(chunk: PGStringChunk, str: cstring): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_string_chunk_insert_const".}
-proc g_string_new*(init: cstring): PGString{.cdecl, dynlib: gliblib, 
-    importc: "g_string_new".}
-proc g_string_new_len*(init: cstring, len: gssize): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_new_len".}
-proc g_string_sized_new*(dfl_size: gsize): PGString{.cdecl, dynlib: gliblib, 
-    importc: "g_string_sized_new".}
-proc free*(str: PGString, free_segment: gboolean): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_string_free".}
-proc equal*(v: PGString, v2: PGString): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_string_equal".}
-proc hash*(str: PGString): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_string_hash".}
-proc assign*(str: PGString, rval: cstring): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_assign".}
-proc truncate*(str: PGString, len: gsize): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_truncate".}
-proc set_size*(str: PGString, len: gsize): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_set_size".}
-proc insert_len*(str: PGString, pos: gssize, val: cstring, len: gssize): PGString{.
-    cdecl, dynlib: gliblib, importc: "g_string_insert_len".}
-proc append*(str: PGString, val: cstring): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_append".}
-proc append_len*(str: PGString, val: cstring, len: gssize): PGString{.
-    cdecl, dynlib: gliblib, importc: "g_string_append_len".}
-proc append_c*(str: PGString, c: gchar): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_append_c".}
-proc append_unichar*(str: PGString, wc: gunichar): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_append_unichar".}
-proc prepend*(str: PGString, val: cstring): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_prepend".}
-proc prepend_c*(str: PGString, c: gchar): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_prepend_c".}
-proc prepend_unichar*(str: PGString, wc: gunichar): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_prepend_unichar".}
-proc prepend_len*(str: PGString, val: cstring, len: gssize): PGString{.
-    cdecl, dynlib: gliblib, importc: "g_string_prepend_len".}
-proc insert*(str: PGString, pos: gssize, val: cstring): PGString{.
-    cdecl, dynlib: gliblib, importc: "g_string_insert".}
-proc insert_c*(str: PGString, pos: gssize, c: gchar): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_insert_c".}
-proc insert_unichar*(str: PGString, pos: gssize, wc: gunichar): PGString{.
-    cdecl, dynlib: gliblib, importc: "g_string_insert_unichar".}
-proc erase*(str: PGString, pos: gssize, len: gssize): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_erase".}
-proc ascii_down*(str: PGString): PGString{.cdecl, dynlib: gliblib, 
-    importc: "g_string_ascii_down".}
-proc ascii_up*(str: PGString): PGString{.cdecl, dynlib: gliblib, 
-    importc: "g_string_ascii_up".}
-proc down*(str: PGString): PGString{.cdecl, dynlib: gliblib, 
-    importc: "g_string_down".}
-proc up*(str: PGString): PGString{.cdecl, dynlib: gliblib, 
-    importc: "g_string_up".}
-type 
-  PGIOError* = ptr TGIOError
-  TGIOError* = enum 
-    G_IO_ERROR_NONE, G_IO_ERROR_AGAIN, G_IO_ERROR_INVAL, G_IO_ERROR_UNKNOWN
-
-proc G_IO_CHANNEL_ERROR*(): TGQuark
-type 
-  PGIOChannelError* = ptr TGIOChannelError
-  TGIOChannelError* = enum 
-    G_IO_CHANNEL_ERROR_FBIG, G_IO_CHANNEL_ERROR_INVAL, G_IO_CHANNEL_ERROR_IO, 
-    G_IO_CHANNEL_ERROR_ISDIR, G_IO_CHANNEL_ERROR_NOSPC, G_IO_CHANNEL_ERROR_NXIO, 
-    G_IO_CHANNEL_ERROR_OVERFLOW, G_IO_CHANNEL_ERROR_PIPE, 
-    G_IO_CHANNEL_ERROR_FAILED
-  PGIOStatus* = ptr TGIOStatus
-  TGIOStatus* = enum 
-    G_IO_STATUS_ERROR, G_IO_STATUS_NORMAL, G_IO_STATUS_EOF, G_IO_STATUS_AGAIN
-  PGSeekType* = ptr TGSeekType
-  TGSeekType* = enum 
-    G_SEEK_CUR, G_SEEK_SET, G_SEEK_END
-  PGIOCondition* = ptr TGIOCondition
-  TGIOCondition* = gint
-
-const 
-  G_IO_IN* = GLIB_SYSDEF_POLLIN
-  G_IO_OUT* = GLIB_SYSDEF_POLLOUT
-  G_IO_PRI* = GLIB_SYSDEF_POLLPRI
-  G_IO_ERR* = GLIB_SYSDEF_POLLERR
-  G_IO_HUP* = GLIB_SYSDEF_POLLHUP
-  G_IO_NVAL* = GLIB_SYSDEF_POLLNVAL
-
-type 
-  PGIOFlags* = ptr TGIOFlags
-  TGIOFlags* = gint
-
-const 
-  G_IO_FLAG_APPEND* = 1 shl 0
-  G_IO_FLAG_NONBLOCK* = 1 shl 1
-  G_IO_FLAG_IS_READABLE* = 1 shl 2
-  G_IO_FLAG_IS_WRITEABLE* = 1 shl 3
-  G_IO_FLAG_IS_SEEKABLE* = 1 shl 4
-  G_IO_FLAG_MASK* = (1 shl 5) - 1
-  G_IO_FLAG_GET_MASK* = G_IO_FLAG_MASK
-  G_IO_FLAG_SET_MASK* = G_IO_FLAG_APPEND or G_IO_FLAG_NONBLOCK
-
-type 
-  PGIOChannel* = ptr TGIOChannel
-  TGIOFunc* = proc (source: PGIOChannel, condition: TGIOCondition, 
-                    data: gpointer): gboolean{.cdecl.}
-  PGIOFuncs* = ptr TGIOFuncs
-  TGIOFuncs*{.final.} = object 
-    io_read*: proc (channel: PGIOChannel, buf: cstring, count: gsize, 
-                    bytes_read: Pgsize, err: pointer): TGIOStatus{.cdecl.}
-    io_write*: proc (channel: PGIOChannel, buf: cstring, count: gsize, 
-                     bytes_written: Pgsize, err: pointer): TGIOStatus{.cdecl.}
-    io_seek*: proc (channel: PGIOChannel, offset: gint64, theType: TGSeekType, 
-                    err: pointer): TGIOStatus{.cdecl.}
-    io_close*: proc (channel: PGIOChannel, err: pointer): TGIOStatus{.cdecl.}
-    io_create_watch*: proc (channel: PGIOChannel, condition: TGIOCondition): PGSource{.
-        cdecl.}
-    io_free*: proc (channel: PGIOChannel){.cdecl.}
-    io_set_flags*: proc (channel: PGIOChannel, flags: TGIOFlags, err: pointer): TGIOStatus{.
-        cdecl.}
-    io_get_flags*: proc (channel: PGIOChannel): TGIOFlags{.cdecl.}
-
-  TGIOChannel*{.final.} = object 
-    ref_count*: guint
-    funcs*: PGIOFuncs
-    encoding*: cstring
-    read_cd*: TGIConv
-    write_cd*: TGIConv
-    line_term*: cstring
-    line_term_len*: guint
-    buf_size*: gsize
-    read_buf*: PGString
-    encoded_read_buf*: PGString
-    write_buf*: PGString
-    partial_write_buf*: array[0..5, gchar]
-    flag0*: guint16
-    reserved1*: gpointer
-    reserved2*: gpointer
-
-
-const 
-  bm_TGIOChannel_use_buffer* = 0x0001'i16
-  bp_TGIOChannel_use_buffer* = 0'i16
-  bm_TGIOChannel_do_encode* = 0x0002'i16
-  bp_TGIOChannel_do_encode* = 1'i16
-  bm_TGIOChannel_close_on_unref* = 0x0004'i16
-  bp_TGIOChannel_close_on_unref* = 2'i16
-  bm_TGIOChannel_is_readable* = 0x0008'i16
-  bp_TGIOChannel_is_readable* = 3'i16
-  bm_TGIOChannel_is_writeable* = 0x0010'i16
-  bp_TGIOChannel_is_writeable* = 4'i16
-  bm_TGIOChannel_is_seekable* = 0x0020'i16
-  bp_TGIOChannel_is_seekable* = 5'i16
-
-proc TGIOChannel_use_buffer*(a: PGIOChannel): guint
-proc TGIOChannel_set_use_buffer*(a: PGIOChannel, `use_buffer`: guint)
-proc TGIOChannel_do_encode*(a: PGIOChannel): guint
-proc TGIOChannel_set_do_encode*(a: PGIOChannel, `do_encode`: guint)
-proc TGIOChannel_close_on_unref*(a: PGIOChannel): guint
-proc TGIOChannel_set_close_on_unref*(a: PGIOChannel, `close_on_unref`: guint)
-proc TGIOChannel_is_readable*(a: PGIOChannel): guint
-proc TGIOChannel_set_is_readable*(a: PGIOChannel, `is_readable`: guint)
-proc TGIOChannel_is_writeable*(a: PGIOChannel): guint
-proc TGIOChannel_set_is_writeable*(a: PGIOChannel, `is_writeable`: guint)
-proc TGIOChannel_is_seekable*(a: PGIOChannel): guint
-proc TGIOChannel_set_is_seekable*(a: PGIOChannel, `is_seekable`: guint)
-proc channel_init*(channel: PGIOChannel){.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_init".}
-proc channel_ref*(channel: PGIOChannel){.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_ref".}
-proc channel_unref*(channel: PGIOChannel){.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_unref".}
-proc channel_read*(channel: PGIOChannel, buf: cstring, count: gsize, 
-                        bytes_read: Pgsize): TGIOError{.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_read".}
-proc channel_write*(channel: PGIOChannel, buf: cstring, count: gsize, 
-                         bytes_written: Pgsize): TGIOError{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_write".}
-proc channel_seek*(channel: PGIOChannel, offset: gint64, 
-                        theType: TGSeekType): TGIOError{.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_seek".}
-proc channel_close*(channel: PGIOChannel){.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_close".}
-proc channel_shutdown*(channel: PGIOChannel, flush: gboolean, err: pointer): TGIOStatus{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_shutdown".}
-proc add_watch_full*(channel: PGIOChannel, priority: gint, 
-                          condition: TGIOCondition, func: TGIOFunc, 
-                          user_data: gpointer, notify: TGDestroyNotify): guint{.
-    cdecl, dynlib: gliblib, importc: "g_io_add_watch_full".}
-proc create_watch*(channel: PGIOChannel, condition: TGIOCondition): PGSource{.
-    cdecl, dynlib: gliblib, importc: "g_io_create_watch".}
-proc add_watch*(channel: PGIOChannel, condition: TGIOCondition, 
-                     func: TGIOFunc, user_data: gpointer): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_io_add_watch".}
-proc channel_set_buffer_size*(channel: PGIOChannel, size: gsize){.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_set_buffer_size".}
-proc channel_get_buffer_size*(channel: PGIOChannel): gsize{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_get_buffer_size".}
-proc channel_get_buffer_condition*(channel: PGIOChannel): TGIOCondition{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_get_buffer_condition".}
-proc channel_set_flags*(channel: PGIOChannel, flags: TGIOFlags, 
-                             error: pointer): TGIOStatus{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_set_flags".}
-proc channel_get_flags*(channel: PGIOChannel): TGIOFlags{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_get_flags".}
-proc channel_set_line_term*(channel: PGIOChannel, line_term: cstring, 
-                                 length: gint){.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_set_line_term".}
-proc channel_get_line_term*(channel: PGIOChannel, length: Pgint): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_get_line_term".}
-proc channel_set_buffered*(channel: PGIOChannel, buffered: gboolean){.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_set_buffered".}
-proc channel_get_buffered*(channel: PGIOChannel): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_get_buffered".}
-proc channel_set_encoding*(channel: PGIOChannel, encoding: cstring, 
-                                error: pointer): TGIOStatus{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_set_encoding".}
-proc channel_get_encoding*(channel: PGIOChannel): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_get_encoding".}
-proc channel_set_close_on_unref*(channel: PGIOChannel, do_close: gboolean){.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_set_close_on_unref".}
-proc channel_get_close_on_unref*(channel: PGIOChannel): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_get_close_on_unref".}
-proc channel_flush*(channel: PGIOChannel, error: pointer): TGIOStatus{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_flush".}
-proc channel_read_line*(channel: PGIOChannel, str_return: PPgchar, 
-                             length: Pgsize, terminator_pos: Pgsize, 
-                             error: pointer): TGIOStatus{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_read_line".}
-proc channel_read_line_string*(channel: PGIOChannel, buffer: PGString, 
-                                    terminator_pos: Pgsize, error: pointer): TGIOStatus{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_read_line_string".}
-proc channel_read_to_end*(channel: PGIOChannel, str_return: PPgchar, 
-                               length: Pgsize, error: pointer): TGIOStatus{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_read_to_end".}
-proc channel_read_chars*(channel: PGIOChannel, buf: cstring, count: gsize, 
-                              bytes_read: Pgsize, error: pointer): TGIOStatus{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_read_chars".}
-proc channel_read_unichar*(channel: PGIOChannel, thechar: Pgunichar, 
-                                error: pointer): TGIOStatus{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_read_unichar".}
-proc channel_write_chars*(channel: PGIOChannel, buf: cstring, 
-                               count: gssize, bytes_written: Pgsize, 
-                               error: pointer): TGIOStatus{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_write_chars".}
-proc channel_write_unichar*(channel: PGIOChannel, thechar: gunichar, 
-                                 error: pointer): TGIOStatus{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_write_unichar".}
-proc channel_seek_position*(channel: PGIOChannel, offset: gint64, 
-                                 theType: TGSeekType, error: pointer): TGIOStatus{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_seek_position".}
-proc g_io_channel_new_file*(filename: cstring, mode: cstring, error: pointer): PGIOChannel{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_new_file".}
-proc g_io_channel_error_quark*(): TGQuark{.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_error_quark".}
-proc g_io_channel_error_from_errno*(en: gint): TGIOChannelError{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_error_from_errno".}
-proc g_io_channel_unix_new*(fd: int32): PGIOChannel{.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_unix_new".}
-proc channel_unix_get_fd*(channel: PGIOChannel): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_unix_get_fd".}
-const 
-  G_LOG_LEVEL_USER_SHIFT* = 8
-
-type 
-  PGLogLevelFlags* = ptr TGLogLevelFlags
-  TGLogLevelFlags* = int32
-
-const 
-  G_LOG_FLAG_RECURSION* = 1 shl 0
-  G_LOG_FLAG_FATAL* = 1 shl 1
-  G_LOG_LEVEL_ERROR* = 1 shl 2
-  G_LOG_LEVEL_CRITICAL* = 1 shl 3
-  G_LOG_LEVEL_WARNING* = 1 shl 4
-  G_LOG_LEVEL_MESSAGE* = 1 shl 5
-  G_LOG_LEVEL_INFO* = 1 shl 6
-  G_LOG_LEVEL_DEBUG* = 1 shl 7
-  G_LOG_LEVEL_MASK* = not 3
-
-const 
-  G_LOG_FATAL_MASK* = 5
-
-type 
-  TGLogFunc* = proc (log_domain: cstring, log_level: TGLogLevelFlags, 
-                     TheMessage: cstring, user_data: gpointer){.cdecl.}
-
-proc g_log_set_handler*(log_domain: cstring, log_levels: TGLogLevelFlags, 
-                        log_func: TGLogFunc, user_data: gpointer): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_log_set_handler".}
-proc g_log_remove_handler*(log_domain: cstring, handler_id: guint){.cdecl, 
-    dynlib: gliblib, importc: "g_log_remove_handler".}
-proc g_log_default_handler*(log_domain: cstring, log_level: TGLogLevelFlags, 
-                            TheMessage: cstring, unused_data: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_log_default_handler".}
-proc g_log_set_fatal_mask*(log_domain: cstring, fatal_mask: TGLogLevelFlags): TGLogLevelFlags{.
-    cdecl, dynlib: gliblib, importc: "g_log_set_fatal_mask".}
-proc g_log_set_always_fatal*(fatal_mask: TGLogLevelFlags): TGLogLevelFlags{.
-    cdecl, dynlib: gliblib, importc: "g_log_set_always_fatal".}
-proc `g_log_fallback_handler`*(log_domain: cstring, log_level: TGLogLevelFlags, 
-                               message: cstring, unused_data: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_log_fallback_handler".}
-const 
-  G_LOG_DOMAIN* = nil
-
-when false: 
-  proc g_error*(format: cstring){.varargs.}
-  proc g_message*(format: cstring){.varargs.}
-  proc g_critical*(format: cstring){.varargs.}
-  proc g_warning*(format: cstring){.varargs.}
-type 
-  TGPrintFunc* = proc (str: cstring){.cdecl, varargs.}
-
-proc g_set_print_handler*(func: TGPrintFunc): TGPrintFunc{.cdecl, 
-    dynlib: gliblib, importc: "g_set_print_handler".}
-proc g_set_printerr_handler*(func: TGPrintFunc): TGPrintFunc{.cdecl, 
-    dynlib: gliblib, importc: "g_set_printerr_handler".}
-type 
-  PGMarkupError* = ptr TGMarkupError
-  TGMarkupError* = enum 
-    G_MARKUP_ERROR_BAD_UTF8, G_MARKUP_ERROR_EMPTY, G_MARKUP_ERROR_PARSE, 
-    G_MARKUP_ERROR_UNKNOWN_ELEMENT, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, 
-    G_MARKUP_ERROR_INVALID_CONTENT
-
-proc G_MARKUP_ERROR*(): TGQuark
-proc g_markup_error_quark*(): TGQuark{.cdecl, dynlib: gliblib, 
-                                       importc: "g_markup_error_quark".}
-type 
-  PGMarkupParseFlags* = ptr TGMarkupParseFlags
-  TGMarkupParseFlags* = int
-
-const 
-  G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG* = 1 shl 0
-
-type 
-  PGMarkupParseContext* = ptr TGMarkupParseContext
-  TGMarkupParseContext* = pointer
-  PGMarkupParser* = ptr TGMarkupParser
-  TGMarkupParser*{.final.} = object 
-    start_element*: proc (context: PGMarkupParseContext, element_name: cstring, 
-                          attribute_names: PPgchar, attribute_values: PPgchar, 
-                          user_data: gpointer, error: pointer){.cdecl.}
-    end_element*: proc (context: PGMarkupParseContext, element_name: cstring, 
-                        user_data: gpointer, error: pointer){.cdecl.}
-    text*: proc (context: PGMarkupParseContext, text: cstring, text_len: gsize, 
-                 user_data: gpointer, error: pointer){.cdecl.}
-    passthrough*: proc (context: PGMarkupParseContext, 
-                        passthrough_text: cstring, text_len: gsize, 
-                        user_data: gpointer, error: pointer){.cdecl.}
-    error*: proc (context: PGMarkupParseContext, error: pointer, 
-                  user_data: gpointer){.cdecl.}
-
-
-proc parse_context_new*(parser: PGMarkupParser, 
-                                 flags: TGMarkupParseFlags, user_data: gpointer, 
-                                 user_data_dnotify: TGDestroyNotify): PGMarkupParseContext{.
-    cdecl, dynlib: gliblib, importc: "g_markup_parse_context_new".}
-proc parse_context_free*(context: PGMarkupParseContext){.cdecl, 
-    dynlib: gliblib, importc: "g_markup_parse_context_free".}
-proc parse_context_parse*(context: PGMarkupParseContext, text: cstring, 
-                                   text_len: gssize, error: pointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_markup_parse_context_parse".}
-proc parse_context_end_parse*(context: PGMarkupParseContext, 
-                                       error: pointer): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_markup_parse_context_end_parse".}
-proc parse_context_get_position*(context: PGMarkupParseContext, 
-    line_number: Pgint, char_number: Pgint){.cdecl, dynlib: gliblib, 
-    importc: "g_markup_parse_context_get_position".}
-proc g_markup_escape_text*(text: cstring, length: gssize): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_markup_escape_text".}
-type 
-  PGNode* = ptr TGNode
-  TGNode*{.final.} = object 
-    data*: gpointer
-    next*: PGNode
-    prev*: PGNode
-    parent*: PGNode
-    children*: PGNode
-
-  PGTraverseFlags* = ptr TGTraverseFlags
-  TGTraverseFlags* = gint
-
-const 
-  G_TRAVERSE_LEAFS* = 1 shl 0
-  G_TRAVERSE_NON_LEAFS* = 1 shl 1
-  G_TRAVERSE_ALL* = G_TRAVERSE_LEAFS or G_TRAVERSE_NON_LEAFS
-  G_TRAVERSE_MASK* = 0x00000003
-
-type 
-  PGTraverseType* = ptr TGTraverseType
-  TGTraverseType* = enum 
-    G_IN_ORDER, G_PRE_ORDER, G_POST_ORDER, G_LEVEL_ORDER
-  TGNodeTraverseFunc* = proc (node: PGNode, data: gpointer): gboolean{.cdecl.}
-  TGNodeForeachFunc* = proc (node: PGNode, data: gpointer){.cdecl.}
-
-proc IS_ROOT*(node: PGNode): bool
-proc IS_LEAF*(node: PGNode): bool
-proc node_push_allocator*(allocator: PGAllocator){.cdecl, dynlib: gliblib, 
-    importc: "g_node_push_allocator".}
-proc g_node_pop_allocator*(){.cdecl, dynlib: gliblib, 
-                              importc: "g_node_pop_allocator".}
-proc g_node_new*(data: gpointer): PGNode{.cdecl, dynlib: gliblib, 
-    importc: "g_node_new".}
-proc destroy*(root: PGNode){.cdecl, dynlib: gliblib, 
-                                    importc: "g_node_destroy".}
-proc unlink*(node: PGNode){.cdecl, dynlib: gliblib, 
-                                   importc: "g_node_unlink".}
-proc copy*(node: PGNode): PGNode{.cdecl, dynlib: gliblib, 
-    importc: "g_node_copy".}
-proc insert*(parent: PGNode, position: gint, node: PGNode): PGNode{.
-    cdecl, dynlib: gliblib, importc: "g_node_insert".}
-proc insert_before*(parent: PGNode, sibling: PGNode, node: PGNode): PGNode{.
-    cdecl, dynlib: gliblib, importc: "g_node_insert_before".}
-proc insert_after*(parent: PGNode, sibling: PGNode, node: PGNode): PGNode{.
-    cdecl, dynlib: gliblib, importc: "g_node_insert_after".}
-proc prepend*(parent: PGNode, node: PGNode): PGNode{.cdecl, 
-    dynlib: gliblib, importc: "g_node_prepend".}
-proc n_nodes*(root: PGNode, flags: TGTraverseFlags): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_node_n_nodes".}
-proc get_root*(node: PGNode): PGNode{.cdecl, dynlib: gliblib, 
-    importc: "g_node_get_root".}
-proc is_ancestor*(node: PGNode, descendant: PGNode): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_node_is_ancestor".}
-proc depth*(node: PGNode): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_node_depth".}
-proc find*(root: PGNode, order: TGTraverseType, flags: TGTraverseFlags, 
-                  data: gpointer): PGNode{.cdecl, dynlib: gliblib, 
-    importc: "g_node_find".}
-proc append*(parent: PGNode, node: PGNode): PGNode
-proc insert_data*(parent: PGNode, position: gint, data: gpointer): PGNode
-proc insert_data_before*(parent: PGNode, sibling: PGNode, data: gpointer): PGNode
-proc prepend_data*(parent: PGNode, data: gpointer): PGNode
-proc append_data*(parent: PGNode, data: gpointer): PGNode
-proc traverse*(root: PGNode, order: TGTraverseType, 
-                      flags: TGTraverseFlags, max_depth: gint, 
-                      func: TGNodeTraverseFunc, data: gpointer): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_node_traverse".}
-proc max_height*(root: PGNode): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_node_max_height".}
-proc children_foreach*(node: PGNode, flags: TGTraverseFlags, 
-                              func: TGNodeForeachFunc, data: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_node_children_foreach".}
-proc reverse_children*(node: PGNode){.cdecl, dynlib: gliblib, 
-    importc: "g_node_reverse_children".}
-proc n_children*(node: PGNode): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_node_n_children".}
-proc nth_child*(node: PGNode, n: guint): PGNode{.cdecl, dynlib: gliblib, 
-    importc: "g_node_nth_child".}
-proc last_child*(node: PGNode): PGNode{.cdecl, dynlib: gliblib, 
-    importc: "g_node_last_child".}
-proc find_child*(node: PGNode, flags: TGTraverseFlags, data: gpointer): PGNode{.
-    cdecl, dynlib: gliblib, importc: "g_node_find_child".}
-proc child_position*(node: PGNode, child: PGNode): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_node_child_position".}
-proc child_index*(node: PGNode, data: gpointer): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_node_child_index".}
-proc first_sibling*(node: PGNode): PGNode{.cdecl, dynlib: gliblib, 
-    importc: "g_node_first_sibling".}
-proc last_sibling*(node: PGNode): PGNode{.cdecl, dynlib: gliblib, 
-    importc: "g_node_last_sibling".}
-proc prev_sibling*(node: PGNode): PGNode
-proc next_sibling*(node: PGNode): PGNode
-proc first_child*(node: PGNode): PGNode
-type 
-  PGTree* = pointer
-  TGTraverseFunc* = proc (key: gpointer, value: gpointer, data: gpointer): gboolean{.
-      cdecl.}
-
-proc g_tree_new*(key_compare_func: TGCompareFunc): PGTree{.cdecl, 
-    dynlib: gliblib, importc: "g_tree_new".}
-proc g_tree_new*(key_compare_func: TGCompareDataFunc, 
-                           key_compare_data: gpointer): PGTree{.cdecl, 
-    dynlib: gliblib, importc: "g_tree_new_with_data".}
-proc g_tree_new_full*(key_compare_func: TGCompareDataFunc, 
-                      key_compare_data: gpointer, 
-                      key_destroy_func: TGDestroyNotify, 
-                      value_destroy_func: TGDestroyNotify): PGTree{.cdecl, 
-    dynlib: gliblib, importc: "g_tree_new_full".}
-proc destroy*(tree: PGTree){.cdecl, dynlib: gliblib, 
-                                    importc: "g_tree_destroy".}
-proc insert*(tree: PGTree, key: gpointer, value: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_tree_insert".}
-proc replace*(tree: PGTree, key: gpointer, value: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_tree_replace".}
-proc remove*(tree: PGTree, key: gconstpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_tree_remove".}
-proc steal*(tree: PGTree, key: gconstpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_tree_steal".}
-proc lookup*(tree: PGTree, key: gconstpointer): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_tree_lookup".}
-proc lookup_extended*(tree: PGTree, lookup_key: gconstpointer, 
-                             orig_key: Pgpointer, value: Pgpointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_tree_lookup_extended".}
-proc foreach*(tree: PGTree, func: TGTraverseFunc, user_data: gpointer){.
-    cdecl, dynlib: gliblib, importc: "g_tree_foreach".}
-proc search*(tree: PGTree, search_func: TGCompareFunc, 
-                    user_data: gconstpointer): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_tree_search".}
-proc height*(tree: PGTree): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_tree_height".}
-proc nnodes*(tree: PGTree): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_tree_nnodes".}
-type 
-  PGPatternSpec* = pointer
-
-proc g_pattern_spec_new*(pattern: cstring): PGPatternSpec{.cdecl, 
-    dynlib: gliblib, importc: "g_pattern_spec_new".}
-proc spec_free*(pspec: PGPatternSpec){.cdecl, dynlib: gliblib, 
-    importc: "g_pattern_spec_free".}
-proc spec_equal*(pspec1: PGPatternSpec, pspec2: PGPatternSpec): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_pattern_spec_equal".}
-proc match*(pspec: PGPatternSpec, string_length: guint, str: cstring, 
-                      string_reversed: cstring): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_pattern_match".}
-proc match_string*(pspec: PGPatternSpec, str: cstring): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_pattern_match_string".}
-proc g_pattern_match_simple*(pattern: cstring, str: cstring): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_pattern_match_simple".}
-proc g_spaced_primes_closest*(num: guint): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_spaced_primes_closest".}
-proc g_qsort*(pbase: gconstpointer, total_elems: gint, size: gsize, 
-                        compare_func: TGCompareDataFunc, user_data: gpointer){.
-    cdecl, dynlib: gliblib, importc: "g_qsort_with_data".}
-type 
-  PGQueue* = ptr TGQueue
-  TGQueue*{.final.} = object 
-    head*: PGList
-    tail*: PGList
-    length*: guint
-
-
-proc g_queue_new*(): PGQueue{.cdecl, dynlib: gliblib, importc: "g_queue_new".}
-proc free*(queue: PGQueue){.cdecl, dynlib: gliblib, 
-                                    importc: "g_queue_free".}
-proc push_head*(queue: PGQueue, data: gpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_queue_push_head".}
-proc push_tail*(queue: PGQueue, data: gpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_queue_push_tail".}
-proc pop_head*(queue: PGQueue): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_queue_pop_head".}
-proc pop_tail*(queue: PGQueue): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_queue_pop_tail".}
-proc is_empty*(queue: PGQueue): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_queue_is_empty".}
-proc peek_head*(queue: PGQueue): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_queue_peek_head".}
-proc peek_tail*(queue: PGQueue): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_queue_peek_tail".}
-proc push_head_link*(queue: PGQueue, link: PGList){.cdecl, 
-    dynlib: gliblib, importc: "g_queue_push_head_link".}
-proc push_tail_link*(queue: PGQueue, link: PGList){.cdecl, 
-    dynlib: gliblib, importc: "g_queue_push_tail_link".}
-proc pop_head_link*(queue: PGQueue): PGList{.cdecl, dynlib: gliblib, 
-    importc: "g_queue_pop_head_link".}
-proc pop_tail_link*(queue: PGQueue): PGList{.cdecl, dynlib: gliblib, 
-    importc: "g_queue_pop_tail_link".}
-type 
-  PGRand* = pointer
-
-proc g_rand_new*(seed: guint32): PGRand{.cdecl, dynlib: gliblib, 
-    importc: "g_rand_new_with_seed".}
-proc g_rand_new*(): PGRand{.cdecl, dynlib: gliblib, importc: "g_rand_new".}
-proc free*(rand: PGRand){.cdecl, dynlib: gliblib, importc: "g_rand_free".}
-proc set_seed*(rand: PGRand, seed: guint32){.cdecl, dynlib: gliblib, 
-    importc: "g_rand_set_seed".}
-proc boolean*(rand: PGRand): gboolean
-proc randint*(rand: PGRand): guint32{.cdecl, dynlib: gliblib, 
-    importc: "g_rand_int".}
-proc int_range*(rand: PGRand, `begin`: gint32, `end`: gint32): gint32{.
-    cdecl, dynlib: gliblib, importc: "g_rand_int_range".}
-proc double*(rand: PGRand): gdouble{.cdecl, dynlib: gliblib, 
-    importc: "g_rand_double".}
-proc double_range*(rand: PGRand, `begin`: gdouble, `end`: gdouble): gdouble{.
-    cdecl, dynlib: gliblib, importc: "g_rand_double_range".}
-proc g_random_set_seed*(seed: guint32){.cdecl, dynlib: gliblib, 
-                                        importc: "g_random_set_seed".}
-proc g_random_boolean*(): gboolean
-proc g_random_int*(): guint32{.cdecl, dynlib: gliblib, importc: "g_random_int".}
-proc g_random_int_range*(`begin`: gint32, `end`: gint32): gint32{.cdecl, 
-    dynlib: gliblib, importc: "g_random_int_range".}
-proc g_random_double*(): gdouble{.cdecl, dynlib: gliblib, 
-                                  importc: "g_random_double".}
-proc g_random_double_range*(`begin`: gdouble, `end`: gdouble): gdouble{.cdecl, 
-    dynlib: gliblib, importc: "g_random_double_range".}
-type 
-  PGTuples* = ptr TGTuples
-  TGTuples*{.final.} = object 
-    len*: guint
-
-  PGRelation* = pointer
-
-proc g_relation_new*(fields: gint): PGRelation{.cdecl, dynlib: gliblib, 
-    importc: "g_relation_new".}
-proc destroy*(relation: PGRelation){.cdecl, dynlib: gliblib, 
-    importc: "g_relation_destroy".}
-proc index*(relation: PGRelation, field: gint, hash_func: TGHashFunc, 
-                       key_equal_func: TGEqualFunc){.cdecl, dynlib: gliblib, 
-    importc: "g_relation_index".}
-proc delete*(relation: PGRelation, key: gconstpointer, field: gint): gint{.
-    cdecl, dynlib: gliblib, importc: "g_relation_delete".}
-proc select*(relation: PGRelation, key: gconstpointer, field: gint): PGTuples{.
-    cdecl, dynlib: gliblib, importc: "g_relation_select".}
-proc count*(relation: PGRelation, key: gconstpointer, field: gint): gint{.
-    cdecl, dynlib: gliblib, importc: "g_relation_count".}
-proc print*(relation: PGRelation){.cdecl, dynlib: gliblib, 
-    importc: "g_relation_print".}
-proc destroy*(tuples: PGTuples){.cdecl, dynlib: gliblib, 
-    importc: "g_tuples_destroy".}
-proc index*(tuples: PGTuples, index: gint, field: gint): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_tuples_index".}
-type 
-  PGTokenType* = ptr TGTokenType
-  TGTokenType* = gint
-
-const 
-  G_TOKEN_LEFT_PAREN* = 40
-  G_TOKEN_RIGHT_PAREN* = 41
-  G_TOKEN_LEFT_CURLY* = 123
-  G_TOKEN_RIGHT_CURLY* = 125
-  G_TOKEN_LEFT_BRACE* = 91
-  G_TOKEN_RIGHT_BRACE* = 93
-  G_TOKEN_EQUAL_SIGN* = 61
-  G_TOKEN_COMMA* = 44
-  G_TOKEN_NONE* = 256
-  G_TOKEN_ERROR* = 257
-  G_TOKEN_CHAR* = 258
-  G_TOKEN_OCTAL* = 260
-  G_TOKEN_INT* = 261
-  G_TOKEN_HEX* = 262
-  G_TOKEN_FLOAT* = 263
-  G_TOKEN_STRING* = 264
-  G_TOKEN_SYMBOL* = 265
-  G_TOKEN_IDENTIFIER* = 266
-  G_TOKEN_IDENTIFIER_NULL* = 267
-  G_TOKEN_COMMENT_SINGLE* = 268
-  G_TOKEN_COMMENT_MULTI* = 269
-  G_TOKEN_LAST* = 270
-
-type 
-  PGScanner* = ptr TGScanner
-  PGScannerConfig* = ptr TGScannerConfig
-  PGTokenValue* = ptr TGTokenValue
-  TGTokenValue*{.final.} = object 
-    v_float*: gdouble
-
-  TGScannerMsgFunc* = proc (scanner: PGScanner, message: cstring, 
-                            error: gboolean){.cdecl.}
-  TGScanner*{.final.} = object 
-    user_data*: gpointer
-    max_parse_errors*: guint
-    parse_errors*: guint
-    input_name*: cstring
-    qdata*: PGData
-    config*: PGScannerConfig
-    token*: TGTokenType
-    value*: TGTokenValue
-    line*: guint
-    position*: guint
-    next_token*: TGTokenType
-    next_value*: TGTokenValue
-    next_line*: guint
-    next_position*: guint
-    symbol_table*: PGHashTable
-    input_fd*: gint
-    text*: cstring
-    text_end*: cstring
-    buffer*: cstring
-    scope_id*: guint
-    msg_handler*: TGScannerMsgFunc
-
-  TGScannerConfig*{.final.} = object 
-    cset_skip_characters*: cstring
-    cset_identifier_first*: cstring
-    cset_identifier_nth*: cstring
-    cpair_comment_single*: cstring
-    flag0*: int32
-    padding_dummy*: guint
-
-
-const 
-  G_CSET_A_2_Z_UCASE* = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
-  G_CSET_a_2_z_lcase* = "abcdefghijklmnopqrstuvwxyz"
-  G_CSET_DIGITS* = "0123456789"
-
-const 
-  bm_TGScannerConfig_case_sensitive* = 0x00000001'i32
-  bp_TGScannerConfig_case_sensitive* = 0'i32
-  bm_TGScannerConfig_skip_comment_multi* = 0x00000002'i32
-  bp_TGScannerConfig_skip_comment_multi* = 1'i32
-  bm_TGScannerConfig_skip_comment_single* = 0x00000004'i32
-  bp_TGScannerConfig_skip_comment_single* = 2'i32
-  bm_TGScannerConfig_scan_comment_multi* = 0x00000008'i32
-  bp_TGScannerConfig_scan_comment_multi* = 3'i32
-  bm_TGScannerConfig_scan_identifier* = 0x00000010'i32
-  bp_TGScannerConfig_scan_identifier* = 4'i32
-  bm_TGScannerConfig_scan_identifier_1char* = 0x00000020'i32
-  bp_TGScannerConfig_scan_identifier_1char* = 5'i32
-  bm_TGScannerConfig_scan_identifier_NULL* = 0x00000040'i32
-  bp_TGScannerConfig_scan_identifier_NULL* = 6'i32
-  bm_TGScannerConfig_scan_symbols* = 0x00000080'i32
-  bp_TGScannerConfig_scan_symbols* = 7'i32
-  bm_TGScannerConfig_scan_binary* = 0x00000100'i32
-  bp_TGScannerConfig_scan_binary* = 8'i32
-  bm_TGScannerConfig_scan_octal* = 0x00000200'i32
-  bp_TGScannerConfig_scan_octal* = 9'i32
-  bm_TGScannerConfig_scan_float* = 0x00000400'i32
-  bp_TGScannerConfig_scan_float* = 10'i32
-  bm_TGScannerConfig_scan_hex* = 0x00000800'i32
-  bp_TGScannerConfig_scan_hex* = 11'i32
-  bm_TGScannerConfig_scan_hex_dollar* = 0x00001000'i32
-  bp_TGScannerConfig_scan_hex_dollar* = 12'i32
-  bm_TGScannerConfig_scan_string_sq* = 0x00002000'i32
-  bp_TGScannerConfig_scan_string_sq* = 13'i32
-  bm_TGScannerConfig_scan_string_dq* = 0x00004000'i32
-  bp_TGScannerConfig_scan_string_dq* = 14'i32
-  bm_TGScannerConfig_numbers_2_int* = 0x00008000'i32
-  bp_TGScannerConfig_numbers_2_int* = 15'i32
-  bm_TGScannerConfig_int_2_float* = 0x00010000'i32
-  bp_TGScannerConfig_int_2_float* = 16'i32
-  bm_TGScannerConfig_identifier_2_string* = 0x00020000'i32
-  bp_TGScannerConfig_identifier_2_string* = 17'i32
-  bm_TGScannerConfig_char_2_token* = 0x00040000'i32
-  bp_TGScannerConfig_char_2_token* = 18'i32
-  bm_TGScannerConfig_symbol_2_token* = 0x00080000'i32
-  bp_TGScannerConfig_symbol_2_token* = 19'i32
-  bm_TGScannerConfig_scope_0_fallback* = 0x00100000'i32
-  bp_TGScannerConfig_scope_0_fallback* = 20'i32
-
-proc TGScannerConfig_case_sensitive*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_case_sensitive*(a: PGScannerConfig, 
-    `case_sensitive`: guint)
-proc TGScannerConfig_skip_comment_multi*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_skip_comment_multi*(a: PGScannerConfig, 
-    `skip_comment_multi`: guint)
-proc TGScannerConfig_skip_comment_single*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_skip_comment_single*(a: PGScannerConfig, 
-    `skip_comment_single`: guint)
-proc TGScannerConfig_scan_comment_multi*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_comment_multi*(a: PGScannerConfig, 
-    `scan_comment_multi`: guint)
-proc TGScannerConfig_scan_identifier*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_identifier*(a: PGScannerConfig, 
-    `scan_identifier`: guint)
-proc TGScannerConfig_scan_identifier_1char*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_identifier_1char*(a: PGScannerConfig, 
-    `scan_identifier_1char`: guint)
-proc TGScannerConfig_scan_identifier_NULL*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_identifier_NULL*(a: PGScannerConfig, 
-    `scan_identifier_NULL`: guint)
-proc TGScannerConfig_scan_symbols*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_symbols*(a: PGScannerConfig, 
-                                       `scan_symbols`: guint)
-proc TGScannerConfig_scan_binary*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_binary*(a: PGScannerConfig, 
-                                      `scan_binary`: guint)
-proc TGScannerConfig_scan_octal*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_octal*(a: PGScannerConfig, `scan_octal`: guint)
-proc TGScannerConfig_scan_float*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_float*(a: PGScannerConfig, `scan_float`: guint)
-proc TGScannerConfig_scan_hex*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_hex*(a: PGScannerConfig, `scan_hex`: guint)
-proc TGScannerConfig_scan_hex_dollar*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_hex_dollar*(a: PGScannerConfig, 
-    `scan_hex_dollar`: guint)
-proc TGScannerConfig_scan_string_sq*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_string_sq*(a: PGScannerConfig, 
-    `scan_string_sq`: guint)
-proc TGScannerConfig_scan_string_dq*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_string_dq*(a: PGScannerConfig, 
-    `scan_string_dq`: guint)
-proc TGScannerConfig_numbers_2_int*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_numbers_2_int*(a: PGScannerConfig, 
-                                        `numbers_2_int`: guint)
-proc TGScannerConfig_int_2_float*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_int_2_float*(a: PGScannerConfig, 
-                                      `int_2_float`: guint)
-proc TGScannerConfig_identifier_2_string*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_identifier_2_string*(a: PGScannerConfig, 
-    `identifier_2_string`: guint)
-proc TGScannerConfig_char_2_token*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_char_2_token*(a: PGScannerConfig, 
-                                       `char_2_token`: guint)
-proc TGScannerConfig_symbol_2_token*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_symbol_2_token*(a: PGScannerConfig, 
-    `symbol_2_token`: guint)
-proc TGScannerConfig_scope_0_fallback*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scope_0_fallback*(a: PGScannerConfig, 
-    `scope_0_fallback`: guint)
-proc new*(config_templ: PGScannerConfig): PGScanner{.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_new".}
-proc destroy*(scanner: PGScanner){.cdecl, dynlib: gliblib, 
-    importc: "g_scanner_destroy".}
-proc input_file*(scanner: PGScanner, input_fd: gint){.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_input_file".}
-proc sync_file_offset*(scanner: PGScanner){.cdecl, dynlib: gliblib, 
-    importc: "g_scanner_sync_file_offset".}
-proc input_text*(scanner: PGScanner, text: cstring, text_len: guint){.
-    cdecl, dynlib: gliblib, importc: "g_scanner_input_text".}
-proc get_next_token*(scanner: PGScanner): TGTokenType{.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_get_next_token".}
-proc peek_next_token*(scanner: PGScanner): TGTokenType{.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_peek_next_token".}
-proc cur_token*(scanner: PGScanner): TGTokenType{.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_cur_token".}
-proc cur_value*(scanner: PGScanner): TGTokenValue{.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_cur_value".}
-proc cur_line*(scanner: PGScanner): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_scanner_cur_line".}
-proc cur_position*(scanner: PGScanner): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_scanner_cur_position".}
-proc eof*(scanner: PGScanner): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_scanner_eof".}
-proc set_scope*(scanner: PGScanner, scope_id: guint): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_set_scope".}
-proc scope_add_symbol*(scanner: PGScanner, scope_id: guint, 
-                                 symbol: cstring, value: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_scope_add_symbol".}
-proc scope_remove_symbol*(scanner: PGScanner, scope_id: guint, 
-                                    symbol: cstring){.cdecl, dynlib: gliblib, 
-    importc: "g_scanner_scope_remove_symbol".}
-proc scope_lookup_symbol*(scanner: PGScanner, scope_id: guint, 
-                                    symbol: cstring): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_scope_lookup_symbol".}
-proc scope_foreach_symbol*(scanner: PGScanner, scope_id: guint, 
-                                     func: TGHFunc, user_data: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_scope_foreach_symbol".}
-proc lookup_symbol*(scanner: PGScanner, symbol: cstring): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_scanner_lookup_symbol".}
-proc unexp_token*(scanner: PGScanner, expected_token: TGTokenType, 
-                            identifier_spec: cstring, symbol_spec: cstring, 
-                            symbol_name: cstring, `message`: cstring, 
-                            is_error: gint){.cdecl, dynlib: gliblib, 
-    importc: "g_scanner_unexp_token".}
-proc G_SHELL_ERROR*(): TGQuark
-type 
-  PGShellError* = ptr TGShellError
-  TGShellError* = enum 
-    G_SHELL_ERROR_BAD_QUOTING, G_SHELL_ERROR_EMPTY_STRING, G_SHELL_ERROR_FAILED
-
-proc g_shell_error_quark*(): TGQuark{.cdecl, dynlib: gliblib, 
-                                      importc: "g_shell_error_quark".}
-proc g_shell_quote*(unquoted_string: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_shell_quote".}
-proc g_shell_unquote*(quoted_string: cstring, error: pointer): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_shell_unquote".}
-proc g_shell_parse_argv*(command_line: cstring, argcp: Pgint, argvp: PPPgchar, 
-                         error: pointer): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_shell_parse_argv".}
-proc G_SPAWN_ERROR*(): TGQuark
-type 
-  PGSpawnError* = ptr TGSpawnError
-  TGSpawnError* = enum 
-    G_SPAWN_ERROR_FORK, G_SPAWN_ERROR_READ, G_SPAWN_ERROR_CHDIR, 
-    G_SPAWN_ERROR_ACCES, G_SPAWN_ERROR_PERM, G_SPAWN_ERROR_2BIG, 
-    G_SPAWN_ERROR_NOEXEC, G_SPAWN_ERROR_NAMETOOLONG, G_SPAWN_ERROR_NOENT, 
-    G_SPAWN_ERROR_NOMEM, G_SPAWN_ERROR_NOTDIR, G_SPAWN_ERROR_LOOP, 
-    G_SPAWN_ERROR_TXTBUSY, G_SPAWN_ERROR_IO, G_SPAWN_ERROR_NFILE, 
-    G_SPAWN_ERROR_MFILE, G_SPAWN_ERROR_INVAL, G_SPAWN_ERROR_ISDIR, 
-    G_SPAWN_ERROR_LIBBAD, G_SPAWN_ERROR_FAILED
-  TGSpawnChildSetupFunc* = proc (user_data: gpointer){.cdecl.}
-  PGSpawnFlags* = ptr TGSpawnFlags
-  TGSpawnFlags* = int
-
-const 
-  G_SPAWN_LEAVE_DESCRIPTORS_OPEN* = 1 shl 0
-  G_SPAWN_DO_NOT_REAP_CHILD* = 1 shl 1
-  G_SPAWN_SEARCH_PATH* = 1 shl 2
-  G_SPAWN_STDOUT_TO_DEV_NULL* = 1 shl 3
-  G_SPAWN_STDERR_TO_DEV_NULL* = 1 shl 4
-  G_SPAWN_CHILD_INHERITS_STDIN* = 1 shl 5
-  G_SPAWN_FILE_AND_ARGV_ZERO* = 1 shl 6
-
-proc g_spawn_error_quark*(): TGQuark{.cdecl, dynlib: gliblib, 
-                                      importc: "g_spawn_error_quark".}
-proc g_spawn_async*(working_directory: cstring, argv: PPgchar, envp: PPgchar, 
-                    flags: TGSpawnFlags, child_setup: TGSpawnChildSetupFunc, 
-                    user_data: gpointer, child_pid: Pgint, error: pointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_spawn_async".}
-proc g_spawn_async*(working_directory: cstring, argv: PPgchar, 
-                               envp: PPgchar, flags: TGSpawnFlags, 
-                               child_setup: TGSpawnChildSetupFunc, 
-                               user_data: gpointer, child_pid: Pgint, 
-                               standard_input: Pgint, standard_output: Pgint, 
-                               standard_error: Pgint, error: pointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_spawn_async_with_pipes".}
-proc g_spawn_sync*(working_directory: cstring, argv: PPgchar, envp: PPgchar, 
-                   flags: TGSpawnFlags, child_setup: TGSpawnChildSetupFunc, 
-                   user_data: gpointer, standard_output: PPgchar, 
-                   standard_error: PPgchar, exit_status: Pgint, error: pointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_spawn_sync".}
-proc g_spawn_command_line_sync*(command_line: cstring, standard_output: PPgchar, 
-                                standard_error: PPgchar, exit_status: Pgint, 
-                                error: pointer): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_spawn_command_line_sync".}
-proc g_spawn_command_line_async*(command_line: cstring, error: pointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_spawn_command_line_async".}
-proc G_TYPE_IS_BOXED*(theType: GType): gboolean
-proc HOLDS_BOXED*(value: PGValue): gboolean
-proc G_TYPE_CLOSURE*(): GType
-proc G_TYPE_VALUE*(): GType
-proc G_TYPE_VALUE_ARRAY*(): GType
-proc G_TYPE_GSTRING*(): GType
-proc g_boxed_copy*(boxed_type: GType, src_boxed: gconstpointer): gpointer{.
-    cdecl, dynlib: gobjectlib, importc: "g_boxed_copy".}
-proc g_boxed_free*(boxed_type: GType, boxed: gpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_boxed_free".}
-proc set_boxed*(value: PGValue, v_boxed: gconstpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_boxed".}
-proc set_static_boxed*(value: PGValue, v_boxed: gconstpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_static_boxed".}
-proc get_boxed*(value: PGValue): gpointer{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_boxed".}
-proc dup_boxed*(value: PGValue): gpointer{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_dup_boxed".}
-proc g_boxed_type_register_static*(name: cstring, boxed_copy: TGBoxedCopyFunc, 
-                                   boxed_free: TGBoxedFreeFunc): GType{.cdecl, 
-    dynlib: gobjectlib, importc: "g_boxed_type_register_static".}
-proc set_boxed_take_ownership*(value: PGValue, v_boxed: gconstpointer){.
-    cdecl, dynlib: gobjectlib, importc: "g_value_set_boxed_take_ownership".}
-proc g_closure_get_type*(): GType{.cdecl, dynlib: gobjectlib, 
-                                   importc: "g_closure_get_type".}
-proc g_value_get_type*(): GType{.cdecl, dynlib: gobjectlib, 
-                                 importc: "g_value_get_type".}
-proc g_value_array_get_type*(): GType{.cdecl, dynlib: gobjectlib, 
-                                       importc: "g_value_array_get_type".}
-proc g_gstring_get_type*(): GType{.cdecl, dynlib: gobjectlib, 
-                                   importc: "g_gstring_get_type".}
-type 
-  PGModule* = pointer
-  TGModuleFlags* = int32
-  TGModuleCheckInit* = proc (module: PGModule): cstring{.cdecl.}
-  TGModuleUnload* = proc (module: PGModule){.cdecl.}
-
-const 
-  G_MODULE_BIND_LAZY* = 1 shl 0
-  G_MODULE_BIND_MASK* = 1
-
-proc g_module_supported*(): gboolean{.cdecl, dynlib: gmodulelib, 
-                                      importc: "g_module_supported".}
-proc g_module_open*(file_name: cstring, flags: TGModuleFlags): PGModule{.cdecl, 
-    dynlib: gmodulelib, importc: "g_module_open".}
-proc close*(module: PGModule): gboolean{.cdecl, dynlib: gmodulelib, 
-    importc: "g_module_close".}
-proc make_resident*(module: PGModule){.cdecl, dynlib: gmodulelib, 
-    importc: "g_module_make_resident".}
-proc g_module_error*(): cstring{.cdecl, dynlib: gmodulelib, 
-                                 importc: "g_module_error".}
-proc symbol*(module: PGModule, symbol_name: cstring, symbol: Pgpointer): gboolean{.
-    cdecl, dynlib: gmodulelib, importc: "g_module_symbol".}
-proc name*(module: PGModule): cstring{.cdecl, dynlib: gmodulelib, 
-    importc: "g_module_name".}
-proc g_module_build_path*(directory: cstring, module_name: cstring): cstring{.
-    cdecl, dynlib: gmodulelib, importc: "g_module_build_path".}
-proc cclosure_marshal_VOID_VOID*(closure: PGClosure, return_value: PGValue, 
-                                    n_param_values: GUInt, 
-                                    param_values: PGValue, 
-                                    invocation_hint: GPointer, 
-                                    marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__VOID".}
-proc cclosure_marshal_VOID_BOOLEAN*(closure: PGClosure, 
-                                       return_value: PGValue, 
-                                       n_param_values: GUInt, 
-                                       param_values: PGValue, 
-                                       invocation_hint: GPointer, 
-                                       marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__BOOLEAN".}
-proc cclosure_marshal_VOID_CHAR*(closure: PGClosure, return_value: PGValue, 
-                                    n_param_values: GUInt, 
-                                    param_values: PGValue, 
-                                    invocation_hint: GPointer, 
-                                    marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__CHAR".}
-proc cclosure_marshal_VOID_UCHAR*(closure: PGClosure, return_value: PGValue, 
-                                     n_param_values: GUInt, 
-                                     param_values: PGValue, 
-                                     invocation_hint: GPointer, 
-                                     marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__UCHAR".}
-proc cclosure_marshal_VOID_INT*(closure: PGClosure, return_value: PGValue, 
-                                   n_param_values: GUInt, param_values: PGValue, 
-                                   invocation_hint: GPointer, 
-                                   marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__INT".}
-proc cclosure_marshal_VOID_UINT*(closure: PGClosure, return_value: PGValue, 
-                                    n_param_values: GUInt, 
-                                    param_values: PGValue, 
-                                    invocation_hint: GPointer, 
-                                    marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__UINT".}
-proc cclosure_marshal_VOID_LONG*(closure: PGClosure, return_value: PGValue, 
-                                    n_param_values: GUInt, 
-                                    param_values: PGValue, 
-                                    invocation_hint: GPointer, 
-                                    marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__LONG".}
-proc cclosure_marshal_VOID_ULONG*(closure: PGClosure, return_value: PGValue, 
-                                     n_param_values: GUInt, 
-                                     param_values: PGValue, 
-                                     invocation_hint: GPointer, 
-                                     marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__ULONG".}
-proc cclosure_marshal_VOID_ENUM*(closure: PGClosure, return_value: PGValue, 
-                                    n_param_values: GUInt, 
-                                    param_values: PGValue, 
-                                    invocation_hint: GPointer, 
-                                    marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__ENUM".}
-proc cclosure_marshal_VOID_FLAGS*(closure: PGClosure, return_value: PGValue, 
-                                     n_param_values: GUInt, 
-                                     param_values: PGValue, 
-                                     invocation_hint: GPointer, 
-                                     marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__FLAGS".}
-proc cclosure_marshal_VOID_FLOAT*(closure: PGClosure, return_value: PGValue, 
-                                     n_param_values: GUInt, 
-                                     param_values: PGValue, 
-                                     invocation_hint: GPointer, 
-                                     marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__FLOAT".}
-proc cclosure_marshal_VOID_DOUBLE*(closure: PGClosure, return_value: PGValue, 
-                                      n_param_values: GUInt, 
-                                      param_values: PGValue, 
-                                      invocation_hint: GPointer, 
-                                      marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__DOUBLE".}
-proc cclosure_marshal_VOID_STRING*(closure: PGClosure, return_value: PGValue, 
-                                      n_param_values: GUInt, 
-                                      param_values: PGValue, 
-                                      invocation_hint: GPointer, 
-                                      marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__STRING".}
-proc cclosure_marshal_VOID_PARAM*(closure: PGClosure, return_value: PGValue, 
-                                     n_param_values: GUInt, 
-                                     param_values: PGValue, 
-                                     invocation_hint: GPointer, 
-                                     marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__PARAM".}
-proc cclosure_marshal_VOID_BOXED*(closure: PGClosure, return_value: PGValue, 
-                                     n_param_values: GUInt, 
-                                     param_values: PGValue, 
-                                     invocation_hint: GPointer, 
-                                     marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__BOXED".}
-proc cclosure_marshal_VOID_POINTER*(closure: PGClosure, 
-                                       return_value: PGValue, 
-                                       n_param_values: GUInt, 
-                                       param_values: PGValue, 
-                                       invocation_hint: GPointer, 
-                                       marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__POINTER".}
-proc cclosure_marshal_VOID_OBJECT*(closure: PGClosure, return_value: PGValue, 
-                                      n_param_values: GUInt, 
-                                      param_values: PGValue, 
-                                      invocation_hint: GPointer, 
-                                      marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__OBJECT".}
-proc cclosure_marshal_STRING_OBJECT_POINTER*(closure: PGClosure, 
-    return_value: PGValue, n_param_values: GUInt, param_values: PGValue, 
-    invocation_hint: GPointer, marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_STRING__OBJECT_POINTER".}
-proc cclosure_marshal_VOID_UINT_POINTER*(closure: PGClosure, 
-    return_value: PGValue, n_param_values: GUInt, param_values: PGValue, 
-    invocation_hint: GPointer, marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__UINT_POINTER".}
-proc cclosure_marshal_BOOLEAN_FLAGS*(closure: PGClosure, 
-                                        return_value: PGValue, 
-                                        n_param_values: GUInt, 
-                                        param_values: PGValue, 
-                                        invocation_hint: GPointer, 
-                                        marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_BOOLEAN__FLAGS".}
-proc cclosure_marshal_BOOL_FLAGS*(closure: PGClosure, return_value: PGValue, 
-                                     n_param_values: GUInt, 
-                                     param_values: PGValue, 
-                                     invocation_hint: GPointer, 
-                                     marshal_data: GPointer){.cdecl, 
-    dynlib: gliblib, importc: "g_cclosure_marshal_BOOLEAN__FLAGS".}
-proc GUINT16_SWAP_LE_BE_CONSTANT*(val: guint16): guint16 = 
-  Result = ((val and 0x00FF'i16) shl 8'i16) or
-      ((val and 0xFF00'i16) shr 8'i16)
-
-proc GUINT32_SWAP_LE_BE_CONSTANT*(val: guint32): guint32 = 
-  Result = ((val and 0x000000FF'i32) shl 24'i32) or
-      ((val and 0x0000FF00'i32) shl 8'i32) or
-      ((val and 0x00FF0000'i32) shr 8'i32) or
-      ((val and 0xFF000000'i32) shr 24'i32)
-
-proc GUINT_TO_POINTER*(i: guint): pointer = 
-  Result = cast[Pointer](TAddress(i))
-
-when false: 
-  type 
-    PGArray* = pointer
-  proc g_array_append_val*(a: PGArray, v: gpointer): PGArray = 
-    result = g_array_append_vals(a, addr(v), 1)
-
-  proc g_array_prepend_val*(a: PGArray, v: gpointer): PGArray = 
-    result = g_array_prepend_vals(a, addr(v), 1)
-
-  proc g_array_insert_val*(a: PGArray, i: guint, v: gpointer): PGArray = 
-    result = g_array_insert_vals(a, i, addr(v), 1)
-
-  proc g_ptr_array_index*(parray: PGPtrArray, index: guint): gpointer = 
-    result = cast[PGPointer](cast[int](parray []. pdata) +
-        index * SizeOf(GPointer))[] 
-
-  proc G_THREAD_ERROR*(): TGQuark = 
-    result = g_thread_error_quark()
-
-  proc g_mutex_lock*(mutex: PGMutex) = 
-    if g_threads_got_initialized: 
-      g_thread_functions_for_glib_use.mutex_lock(mutex)
-
-  proc g_mutex_trylock*(mutex: PGMutex): gboolean = 
-    if g_threads_got_initialized: 
-      result = g_thread_functions_for_glib_use.mutex_trylock(mutex)
-    else: 
-      result = true
-
-  proc g_mutex_unlock*(mutex: PGMutex) = 
-    if g_threads_got_initialized: 
-      g_thread_functions_for_glib_use.mutex_unlock(mutex)
-
-  proc g_mutex_free*(mutex: PGMutex) = 
-    if g_threads_got_initialized: 
-      g_thread_functions_for_glib_use.mutex_free(mutex)
-
-  proc g_cond_wait*(cond: PGCond, mutex: PGMutex) = 
-    if g_threads_got_initialized: 
-      g_thread_functions_for_glib_use.cond_wait(cond, mutex)
-
-  proc g_cond_timed_wait*(cond: PGCond, mutex: PGMutex, end_time: PGTimeVal): gboolean = 
-    if g_threads_got_initialized: 
-      result = g_thread_functions_for_glib_use.cond_timed_wait(cond, mutex, 
-          end_time)
-    else: 
-      result = true
-
-  proc g_thread_supported*(): gboolean = 
-    result = g_threads_got_initialized
-
-  proc g_mutex_new*(): PGMutex = 
-    result = g_thread_functions_for_glib_use.mutex_new()
-
-  proc g_cond_new*(): PGCond = 
-    result = g_thread_functions_for_glib_use.cond_new()
-
-  proc g_cond_signal*(cond: PGCond) = 
-    if g_threads_got_initialized: 
-      g_thread_functions_for_glib_use.cond_signal(cond)
-
-  proc g_cond_broadcast*(cond: PGCond) = 
-    if g_threads_got_initialized: 
-      g_thread_functions_for_glib_use.cond_broadcast(cond)
-
-  proc g_cond_free*(cond: PGCond) = 
-    if g_threads_got_initialized: 
-      g_thread_functions_for_glib_use.cond_free(cond)
-
-  proc g_private_new*(dest: TGDestroyNotify): PGPrivate = 
-    result = g_thread_functions_for_glib_use.private_new(dest)
-
-  proc g_private_get*(private_key: PGPrivate): gpointer = 
-    if g_threads_got_initialized: 
-      result = g_thread_functions_for_glib_use.private_get(private_key)
-    else: 
-      result = private_key
-
-  proc g_private_set*(private_key: var PGPrivate, data: gpointer) = 
-    if g_threads_got_initialized: 
-      nil
-    else: 
-      private_key = data
-
-  proc g_thread_yield*() = 
-    if g_threads_got_initialized: 
-      g_thread_functions_for_glib_use.thread_yield
-
-  proc g_thread_create*(func: TGThreadFunc, data: gpointer, joinable: gboolean, 
-                        error: pointer): PGThread = 
-    result = g_thread_create_full(func, data, 0, joinable, false, 
-                                  G_THREAD_PRIORITY_NORMAL, error)
-
-  proc g_static_mutex_get_mutex*(mutex: PPGMutex): PGMutex = 
-    result = g_static_mutex_get_mutex_impl(mutex)
-
-  proc g_static_mutex_lock*(mutex: PGStaticMutex) = 
-    g_mutex_lock(g_static_mutex_get_mutex_impl(PPGMutex(mutex)))
-
-  proc g_static_mutex_trylock*(mutex: PGStaticMutex): gboolean = 
-    result = g_mutex_trylock(g_static_mutex_get_mutex(PPGMutex(mutex)))
-
-  proc g_static_mutex_unlock*(mutex: PGStaticMutex) = 
-    g_mutex_unlock(g_static_mutex_get_mutex_impl(PPGMutex(mutex)))
-
-  proc g_main_new*(is_running: gboolean): PGMainLoop = 
-    result = g_main_loop_new(nil, is_running)
-
-  proc g_main_iteration*(may_block: gboolean): gboolean = 
-    result = g_main_context_iteration(nil, may_block)
-
-  proc g_main_pending*(): gboolean = 
-    result = g_main_context_pending(nil)
-
-  proc g_main_set_poll_func*(func: TGPollFunc) = 
-    g_main_context_set_poll_func(nil, func)
-
-proc next*(slist: PGSList): PGSList = 
-  if slist != nil: 
-    result = slist.next
-  else: 
-    result = nil
-
-proc g_new*(bytes_per_struct, n_structs: int): gpointer = 
-  result = g_malloc(n_structs * bytes_per_struct)
-
-proc g_new0*(bytes_per_struct, n_structs: int): gpointer = 
-  result = g_malloc0(n_structs * bytes_per_struct)
-
-proc g_renew*(struct_size: int, OldMem: gpointer, n_structs: int): gpointer = 
-  result = g_realloc(OldMem, struct_size * n_structs)
-
-proc g_chunk_new*(chunk: Pointer): Pointer = 
-  result = chunk_alloc(chunk)
-
-proc g_chunk_new0*(chunk: Pointer): Pointer = 
-  result = chunk_alloc0(chunk)
-
-proc previous*(list: PGList): PGList = 
-  if list != nil: 
-    result = list.prev
-  else: 
-    result = nil
-
-proc next*(list: PGList): PGList = 
-  if list != nil: 
-    result = list.next
-  else: 
-    result = nil
-
-proc G_CONVERT_ERROR*(): TGQuark = 
-  result = g_convert_error_quark()
-
-proc g_datalist_id_set_data*(datalist: PPGData, key_id: TGQuark, data: gpointer) = 
-  g_datalist_id_set_data_full(datalist, key_id, data, TGDestroyNotify(nil))
-
-proc g_datalist_id_remove_data*(datalist: PPGData, key_id: TGQuark) = 
-  g_datalist_id_set_data(datalist, key_id, nil)
-
-proc g_datalist_get_data*(datalist: PPGData, key_str: cstring): PPGData = 
-  result = cast[PPGData](g_datalist_id_get_data(datalist, 
-      g_quark_try_string(key_str)))
-
-proc g_datalist_set_data_full*(datalist: PPGData, key_str: cstring, 
-                               data: gpointer, destroy_func: TGDestroyNotify) = 
-  g_datalist_id_set_data_full(datalist, g_quark_from_string(key_str), data, 
-                              destroy_func)
-
-proc g_datalist_set_data*(datalist: PPGData, key_str: cstring, data: gpointer) = 
-  g_datalist_set_data_full(datalist, key_str, data, nil)
-
-proc g_datalist_remove_no_notify*(datalist: PPGData, key_str: cstring) = 
-  discard g_datalist_id_remove_no_notify(datalist, g_quark_try_string(key_str))
-
-proc g_datalist_remove_data*(datalist: PPGData, key_str: cstring) = 
-  g_datalist_id_set_data(datalist, g_quark_try_string(key_str), nil)
-
-proc g_dataset_id_set_data*(location: gconstpointer, key_id: TGQuark, 
-                            data: gpointer) = 
-  g_dataset_id_set_data_full(location, key_id, data, nil)
-
-proc g_dataset_id_remove_data*(location: gconstpointer, key_id: TGQuark) = 
-  g_dataset_id_set_data(location, key_id, nil)
-
-proc g_dataset_get_data*(location: gconstpointer, key_str: cstring): gpointer = 
-  result = g_dataset_id_get_data(location, g_quark_try_string(key_str))
-
-proc g_dataset_set_data_full*(location: gconstpointer, key_str: cstring, 
-                              data: gpointer, destroy_func: TGDestroyNotify) = 
-  g_dataset_id_set_data_full(location, g_quark_from_string(key_str), data, 
-                             destroy_func)
-
-proc g_dataset_remove_no_notify*(location: gconstpointer, key_str: cstring) = 
-  discard g_dataset_id_remove_no_notify(location, g_quark_try_string(key_str))
-
-proc g_dataset_set_data*(location: gconstpointer, key_str: cstring, 
-                         data: gpointer) = 
-  g_dataset_set_data_full(location, key_str, data, nil)
-
-proc g_dataset_remove_data*(location: gconstpointer, key_str: cstring) = 
-  g_dataset_id_set_data(location, g_quark_try_string(key_str), nil)
-
-proc G_FILE_ERROR*(): TGQuark = 
-  result = g_file_error_quark()
-
-proc TGHookList_hook_size*(a: PGHookList): guint = 
-  result = (a.flag0 and bm_TGHookList_hook_size) shr bp_TGHookList_hook_size
-
-proc TGHookList_set_hook_size*(a: PGHookList, `hook_size`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`hook_size` shl bp_TGHookList_hook_size) and bm_TGHookList_hook_size)
-
-proc TGHookList_is_setup*(a: PGHookList): guint = 
-  result = (a.flag0 and bm_TGHookList_is_setup) shr bp_TGHookList_is_setup
-
-proc TGHookList_set_is_setup*(a: PGHookList, `is_setup`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`is_setup` shl bp_TGHookList_is_setup) and bm_TGHookList_is_setup)
-
-proc G_HOOK*(hook: pointer): PGHook = 
-  result = cast[PGHook](hook)
-
-proc FLAGS*(hook: PGHook): guint = 
-  result = hook.flags
-
-proc ACTIVE*(hook: PGHook): bool = 
-  result = (hook.flags and G_HOOK_FLAG_ACTIVE) != 0'i32
-
-proc IN_CALL*(hook: PGHook): bool = 
-  result = (hook.flags and G_HOOK_FLAG_IN_CALL) != 0'i32
-
-proc IS_VALID*(hook: PGHook): bool = 
-  result = (hook.hook_id != 0) and ACTIVE(hook)
-
-proc IS_UNLINKED*(hook: PGHook): bool = 
-  result = (hook.next == nil) and (hook.prev == nil) and (hook.hook_id == 0) and
-      (hook.ref_count == 0'i32)
-
-proc append*(hook_list: PGHookList, hook: PGHook) = 
-  insert_before(hook_list, nil, hook)
-
-proc G_IO_CHANNEL_ERROR*(): TGQuark = 
-  result = g_io_channel_error_quark()
-
-proc TGIOChannel_use_buffer*(a: PGIOChannel): guint = 
-  result = (a.flag0 and bm_TGIOChannel_use_buffer) shr
-      bp_TGIOChannel_use_buffer
-
-proc TGIOChannel_set_use_buffer*(a: PGIOChannel, `use_buffer`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`use_buffer` shl bp_TGIOChannel_use_buffer) and
-      bm_TGIOChannel_use_buffer)
-
-proc TGIOChannel_do_encode*(a: PGIOChannel): guint = 
-  result = (a.flag0 and bm_TGIOChannel_do_encode) shr
-      bp_TGIOChannel_do_encode
-
-proc TGIOChannel_set_do_encode*(a: PGIOChannel, `do_encode`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`do_encode` shl bp_TGIOChannel_do_encode) and
-      bm_TGIOChannel_do_encode)
-
-proc TGIOChannel_close_on_unref*(a: PGIOChannel): guint = 
-  result = (a.flag0 and bm_TGIOChannel_close_on_unref) shr
-      bp_TGIOChannel_close_on_unref
-
-proc TGIOChannel_set_close_on_unref*(a: PGIOChannel, `close_on_unref`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`close_on_unref` shl bp_TGIOChannel_close_on_unref) and
-      bm_TGIOChannel_close_on_unref)
-
-proc TGIOChannel_is_readable*(a: PGIOChannel): guint = 
-  result = (a.flag0 and bm_TGIOChannel_is_readable) shr
-      bp_TGIOChannel_is_readable
-
-proc TGIOChannel_set_is_readable*(a: PGIOChannel, `is_readable`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_readable` shl bp_TGIOChannel_is_readable) and
-      bm_TGIOChannel_is_readable)
-
-proc TGIOChannel_is_writeable*(a: PGIOChannel): guint = 
-  result = (a.flag0 and bm_TGIOChannel_is_writeable) shr
-      bp_TGIOChannel_is_writeable
-
-proc TGIOChannel_set_is_writeable*(a: PGIOChannel, `is_writeable`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_writeable` shl bp_TGIOChannel_is_writeable) and
-      bm_TGIOChannel_is_writeable)
-
-proc TGIOChannel_is_seekable*(a: PGIOChannel): guint = 
-  result = (a.flag0 and bm_TGIOChannel_is_seekable) shr
-      bp_TGIOChannel_is_seekable
-
-proc TGIOChannel_set_is_seekable*(a: PGIOChannel, `is_seekable`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_seekable` shl bp_TGIOChannel_is_seekable) and
-      bm_TGIOChannel_is_seekable)
-
-proc utf8_next_char*(p: pguchar): pguchar = 
-  result = cast[pguchar](cast[TAddress](p) + 1) # p + ord((g_utf8_skip + p[] )[] )
-  
-when false: 
-  proc GLIB_CHECK_VERSION*(major, minor, micro: guint): bool = 
-    result = ((GLIB_MAJOR_VERSION > major) or
-        ((GLIB_MAJOR_VERSION == major) and (GLIB_MINOR_VERSION > minor)) or
-        ((GLIB_MAJOR_VERSION == major) and (GLIB_MINOR_VERSION == minor) and
-        (GLIB_MICRO_VERSION >= micro)))
-
-  proc g_error*(format: cstring) = 
-    g_log(G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, format)
-
-  proc g_message*(format: cstring) = 
-    g_log(G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, format)
-
-  proc g_critical*(format: cstring) = 
-    g_log(G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, format)
-
-  proc g_warning*(format: cstring) = 
-    g_log(G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, format)
-
-proc G_MARKUP_ERROR*(): TGQuark = 
-  result = g_markup_error_quark()
-
-proc IS_ROOT*(node: PGNode): bool = 
-  result = (node.parent == nil) and (node.next == nil) and (node.prev == nil)
-
-proc IS_LEAF*(node: PGNode): bool = 
-  result = node.children == nil
-
-proc append*(parent: PGNode, node: PGNode): PGNode = 
-  result = insert_before(parent, nil, node)
-
-proc insert_data*(parent: PGNode, position: gint, data: gpointer): PGNode = 
-  result = insert(parent, position, g_node_new(data))
-
-proc insert_data_before*(parent: PGNode, sibling: PGNode, 
-                         data: gpointer): PGNode = 
-  result = insert_before(parent, sibling, g_node_new(data))
-
-proc prepend_data*(parent: PGNode, data: gpointer): PGNode = 
-  result = prepend(parent, g_node_new(data))
-
-proc append_data*(parent: PGNode, data: gpointer): PGNode = 
-  result = insert_before(parent, nil, g_node_new(data))
-
-proc prev_sibling*(node: PGNode): PGNode = 
-  if node != nil: 
-    result = node.prev
-  else: 
-    result = nil
-
-proc next_sibling*(node: PGNode): PGNode = 
-  if node != nil: 
-    result = node.next
-  else: 
-    result = nil
-
-proc first_child*(node: PGNode): PGNode = 
-  if node != nil: 
-    result = node.children
-  else: 
-    result = nil
-
-proc boolean*(rand: PGRand): gboolean = 
-  result = (int(rand_int(rand)) and (1 shl 15)) != 0
-
-proc g_random_boolean*(): gboolean = 
-  result = (int(g_random_int()) and (1 shl 15)) != 0
-
-proc TGScannerConfig_case_sensitive*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_case_sensitive) shr
-      bp_TGScannerConfig_case_sensitive
-
-proc TGScannerConfig_set_case_sensitive*(a: PGScannerConfig, 
-    `case_sensitive`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`case_sensitive` shl bp_TGScannerConfig_case_sensitive) and
-      bm_TGScannerConfig_case_sensitive)
-
-proc TGScannerConfig_skip_comment_multi*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_skip_comment_multi) shr
-      bp_TGScannerConfig_skip_comment_multi
-
-proc TGScannerConfig_set_skip_comment_multi*(a: PGScannerConfig, 
-    `skip_comment_multi`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`skip_comment_multi` shl bp_TGScannerConfig_skip_comment_multi) and
-      bm_TGScannerConfig_skip_comment_multi)
-
-proc TGScannerConfig_skip_comment_single*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_skip_comment_single) shr
-      bp_TGScannerConfig_skip_comment_single
-
-proc TGScannerConfig_set_skip_comment_single*(a: PGScannerConfig, 
-    `skip_comment_single`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`skip_comment_single` shl bp_TGScannerConfig_skip_comment_single) and
-      bm_TGScannerConfig_skip_comment_single)
-
-proc TGScannerConfig_scan_comment_multi*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_comment_multi) shr
-      bp_TGScannerConfig_scan_comment_multi
-
-proc TGScannerConfig_set_scan_comment_multi*(a: PGScannerConfig, 
-    `scan_comment_multi`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_comment_multi` shl bp_TGScannerConfig_scan_comment_multi) and
-      bm_TGScannerConfig_scan_comment_multi)
-
-proc TGScannerConfig_scan_identifier*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_identifier) shr
-      bp_TGScannerConfig_scan_identifier
-
-proc TGScannerConfig_set_scan_identifier*(a: PGScannerConfig, 
-    `scan_identifier`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_identifier` shl bp_TGScannerConfig_scan_identifier) and
-      bm_TGScannerConfig_scan_identifier)
-
-proc TGScannerConfig_scan_identifier_1char*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_identifier_1char) shr
-      bp_TGScannerConfig_scan_identifier_1char
-
-proc TGScannerConfig_set_scan_identifier_1char*(a: PGScannerConfig, 
-    `scan_identifier_1char`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_identifier_1char` shl bp_TGScannerConfig_scan_identifier_1char) and
-      bm_TGScannerConfig_scan_identifier_1char)
-
-proc TGScannerConfig_scan_identifier_NULL*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_identifier_NULL) shr
-      bp_TGScannerConfig_scan_identifier_NULL
-
-proc TGScannerConfig_set_scan_identifier_NULL*(a: PGScannerConfig, 
-    `scan_identifier_NULL`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_identifier_NULL` shl bp_TGScannerConfig_scan_identifier_NULL) and
-      bm_TGScannerConfig_scan_identifier_NULL)
-
-proc TGScannerConfig_scan_symbols*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_symbols) shr
-      bp_TGScannerConfig_scan_symbols
-
-proc TGScannerConfig_set_scan_symbols*(a: PGScannerConfig, 
-                                       `scan_symbols`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_symbols` shl bp_TGScannerConfig_scan_symbols) and
-      bm_TGScannerConfig_scan_symbols)
-
-proc TGScannerConfig_scan_binary*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_binary) shr
-      bp_TGScannerConfig_scan_binary
-
-proc TGScannerConfig_set_scan_binary*(a: PGScannerConfig, 
-                                      `scan_binary`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_binary` shl bp_TGScannerConfig_scan_binary) and
-      bm_TGScannerConfig_scan_binary)
-
-proc TGScannerConfig_scan_octal*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_octal) shr
-      bp_TGScannerConfig_scan_octal
-
-proc TGScannerConfig_set_scan_octal*(a: PGScannerConfig, `scan_octal`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_octal` shl bp_TGScannerConfig_scan_octal) and
-      bm_TGScannerConfig_scan_octal)
-
-proc TGScannerConfig_scan_float*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_float) shr
-      bp_TGScannerConfig_scan_float
-
-proc TGScannerConfig_set_scan_float*(a: PGScannerConfig, `scan_float`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_float` shl bp_TGScannerConfig_scan_float) and
-      bm_TGScannerConfig_scan_float)
-
-proc TGScannerConfig_scan_hex*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_hex) shr
-      bp_TGScannerConfig_scan_hex
-
-proc TGScannerConfig_set_scan_hex*(a: PGScannerConfig, `scan_hex`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_hex` shl bp_TGScannerConfig_scan_hex) and
-      bm_TGScannerConfig_scan_hex)
-
-proc TGScannerConfig_scan_hex_dollar*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_hex_dollar) shr
-      bp_TGScannerConfig_scan_hex_dollar
-
-proc TGScannerConfig_set_scan_hex_dollar*(a: PGScannerConfig, 
-    `scan_hex_dollar`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_hex_dollar` shl bp_TGScannerConfig_scan_hex_dollar) and
-      bm_TGScannerConfig_scan_hex_dollar)
-
-proc TGScannerConfig_scan_string_sq*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_string_sq) shr
-      bp_TGScannerConfig_scan_string_sq
-
-proc TGScannerConfig_set_scan_string_sq*(a: PGScannerConfig, 
-    `scan_string_sq`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_string_sq` shl bp_TGScannerConfig_scan_string_sq) and
-      bm_TGScannerConfig_scan_string_sq)
-
-proc TGScannerConfig_scan_string_dq*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_string_dq) shr
-      bp_TGScannerConfig_scan_string_dq
-
-proc TGScannerConfig_set_scan_string_dq*(a: PGScannerConfig, 
-    `scan_string_dq`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_string_dq` shl bp_TGScannerConfig_scan_string_dq) and
-      bm_TGScannerConfig_scan_string_dq)
-
-proc TGScannerConfig_numbers_2_int*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_numbers_2_int) shr
-      bp_TGScannerConfig_numbers_2_int
-
-proc TGScannerConfig_set_numbers_2_int*(a: PGScannerConfig, 
-                                        `numbers_2_int`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`numbers_2_int` shl bp_TGScannerConfig_numbers_2_int) and
-      bm_TGScannerConfig_numbers_2_int)
-
-proc TGScannerConfig_int_2_float*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_int_2_float) shr
-      bp_TGScannerConfig_int_2_float
-
-proc TGScannerConfig_set_int_2_float*(a: PGScannerConfig, 
-                                      `int_2_float`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`int_2_float` shl bp_TGScannerConfig_int_2_float) and
-      bm_TGScannerConfig_int_2_float)
-
-proc TGScannerConfig_identifier_2_string*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_identifier_2_string) shr
-      bp_TGScannerConfig_identifier_2_string
-
-proc TGScannerConfig_set_identifier_2_string*(a: PGScannerConfig, 
-    `identifier_2_string`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`identifier_2_string` shl bp_TGScannerConfig_identifier_2_string) and
-      bm_TGScannerConfig_identifier_2_string)
-
-proc TGScannerConfig_char_2_token*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_char_2_token) shr
-      bp_TGScannerConfig_char_2_token
-
-proc TGScannerConfig_set_char_2_token*(a: PGScannerConfig, 
-                                       `char_2_token`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`char_2_token` shl bp_TGScannerConfig_char_2_token) and
-      bm_TGScannerConfig_char_2_token)
-
-proc TGScannerConfig_symbol_2_token*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_symbol_2_token) shr
-      bp_TGScannerConfig_symbol_2_token
-
-proc TGScannerConfig_set_symbol_2_token*(a: PGScannerConfig, 
-    `symbol_2_token`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`symbol_2_token` shl bp_TGScannerConfig_symbol_2_token) and
-      bm_TGScannerConfig_symbol_2_token)
-
-proc TGScannerConfig_scope_0_fallback*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scope_0_fallback) shr
-      bp_TGScannerConfig_scope_0_fallback
-
-proc TGScannerConfig_set_scope_0_fallback*(a: PGScannerConfig, 
-    `scope_0_fallback`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scope_0_fallback` shl bp_TGScannerConfig_scope_0_fallback) and
-      bm_TGScannerConfig_scope_0_fallback)
-
-proc freeze_symbol_table*(scanner: PGScanner) = 
-  if Scanner == nil: nil
-  
-proc thaw_symbol_table*(scanner: PGScanner) = 
-  if Scanner == nil: nil
-  
-proc G_SHELL_ERROR*(): TGQuark = 
-  result = g_shell_error_quark()
-
-proc G_SPAWN_ERROR*(): TGQuark = 
-  result = g_spawn_error_quark()
-
-when false: 
-  proc g_ascii_isalnum*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_ALNUM) != 0
-
-  proc g_ascii_isalpha*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_ALPHA) != 0
-
-  proc g_ascii_iscntrl*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_CNTRL) != 0
-
-  proc g_ascii_isdigit*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_DIGIT) != 0
-
-  proc g_ascii_isgraph*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_GRAPH) != 0
-
-  proc g_ascii_islower*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_LOWER) != 0
-
-  proc g_ascii_isprint*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_PRINT) != 0
-
-  proc g_ascii_ispunct*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_PUNCT) != 0
-
-  proc g_ascii_isspace*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_SPACE) != 0
-
-  proc g_ascii_isupper*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_UPPER) != 0
-
-  proc g_ascii_isxdigit*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_XDIGIT) != 0
-
-  proc g_strstrip*(str: cstring): cstring = 
-    result = g_strchomp(g_strchug(str))
-
-proc G_TYPE_MAKE_FUNDAMENTAL*(x: int): GType = 
-  result = GType(x shl G_TYPE_FUNDAMENTAL_SHIFT)
-
-proc G_TYPE_IS_FUNDAMENTAL*(theType: GType): bool = 
-  result = theType <= G_TYPE_FUNDAMENTAL_MAX
-
-proc G_TYPE_IS_DERIVED*(theType: GType): bool = 
-  result = theType > G_TYPE_FUNDAMENTAL_MAX
-
-proc G_TYPE_IS_INTERFACE*(theType: GType): bool = 
-  result = (G_TYPE_FUNDAMENTAL(theType)) == G_TYPE_INTERFACE
-
-proc G_TYPE_IS_CLASSED*(theType: GType): gboolean = 
-  result = private_g_type_test_flags(theType, G_TYPE_FLAG_CLASSED)
-
-proc G_TYPE_IS_INSTANTIATABLE*(theType: GType): bool = 
-  result = private_g_type_test_flags(theType, G_TYPE_FLAG_INSTANTIATABLE)
-
-proc G_TYPE_IS_DERIVABLE*(theType: GType): bool = 
-  result = private_g_type_test_flags(theType, G_TYPE_FLAG_DERIVABLE)
-
-proc G_TYPE_IS_DEEP_DERIVABLE*(theType: GType): bool = 
-  result = private_g_type_test_flags(theType, G_TYPE_FLAG_DEEP_DERIVABLE)
-
-proc G_TYPE_IS_ABSTRACT*(theType: GType): bool = 
-  result = private_g_type_test_flags(theType, G_TYPE_FLAG_ABSTRACT)
-
-proc G_TYPE_IS_VALUE_ABSTRACT*(theType: GType): bool = 
-  result = private_g_type_test_flags(theType, G_TYPE_FLAG_VALUE_ABSTRACT)
-
-proc G_TYPE_IS_VALUE_TYPE*(theType: GType): bool = 
-  result = private_g_type_check_is_value_type(theType)
-
-proc G_TYPE_HAS_VALUE_TABLE*(theType: GType): bool = 
-  result = (g_type_value_table_peek(theType)) != nil
-
-proc G_TYPE_CHECK_INSTANCE*(instance: Pointer): gboolean = 
-  result = private_g_type_check_instance(cast[PGTypeInstance](instance))
-
-proc G_TYPE_CHECK_INSTANCE_CAST*(instance: Pointer, g_type: GType): PGTypeInstance = 
-  result = cast[PGTypeInstance](private_g_type_check_instance_cast(
-      cast[PGTypeInstance](instance), g_type))
-
-proc G_TYPE_CHECK_INSTANCE_TYPE*(instance: Pointer, g_type: GType): bool = 
-  result = private_g_type_check_instance_is_a(cast[PGTypeInstance](instance), 
-      g_type)
-
-proc G_TYPE_INSTANCE_GET_CLASS*(instance: Pointer, g_type: GType): PGTypeClass = 
-  result = cast[PGTypeInstance](Instance).g_class
-  result = private_g_type_check_class_cast(result, g_type)
-
-proc G_TYPE_INSTANCE_GET_INTERFACE*(instance: Pointer, g_type: GType): Pointer = 
-  result = g_type_interface_peek((cast[PGTypeInstance](instance)).g_class, 
-                                 g_type)
-
-proc G_TYPE_CHECK_CLASS_CAST*(g_class: pointer, g_type: GType): Pointer = 
-  result = private_g_type_check_class_cast(cast[PGTypeClass](g_class), g_type)
-
-proc G_TYPE_CHECK_CLASS_TYPE*(g_class: pointer, g_type: GType): bool = 
-  result = private_g_type_check_class_is_a(cast[PGTypeClass](g_class), g_type)
-
-proc G_TYPE_CHECK_VALUE*(value: Pointer): bool = 
-  result = private_g_type_check_value(cast[PGValue](Value))
-
-proc G_TYPE_CHECK_VALUE_TYPE*(value: pointer, g_type: GType): bool = 
-  result = private_g_type_check_value_holds(cast[PGValue](value), g_type)
-
-proc G_TYPE_FROM_INSTANCE*(instance: Pointer): GType = 
-  result = G_TYPE_FROM_CLASS((cast[PGTypeInstance](instance)).g_class)
-
-proc G_TYPE_FROM_CLASS*(g_class: Pointer): GType = 
-  result = (cast[PGTypeClass](g_class)).g_type
-
-proc G_TYPE_FROM_INTERFACE*(g_iface: Pointer): GType = 
-  result = (cast[PGTypeInterface](g_iface)).g_type
-
-proc G_TYPE_IS_VALUE*(theType: GType): bool = 
-  result = private_g_type_check_is_value_type(theType)
-
-proc G_IS_VALUE*(value: Pointer): bool = 
-  result = G_TYPE_CHECK_VALUE(value)
-
-proc G_VALUE_TYPE*(value: Pointer): GType = 
-  result = (cast[PGValue](value)).g_type
-
-proc G_VALUE_TYPE_NAME*(value: Pointer): cstring = 
-  result = g_type_name(G_VALUE_TYPE(value))
-
-proc G_VALUE_HOLDS*(value: pointer, g_type: GType): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, g_type)
-
-proc G_TYPE_IS_PARAM*(theType: GType): bool = 
-  result = (G_TYPE_FUNDAMENTAL(theType)) == G_TYPE_PARAM
-
-proc G_PARAM_SPEC*(pspec: Pointer): PGParamSpec = 
-  result = cast[PGParamSpec](G_TYPE_CHECK_INSTANCE_CAST(pspec, G_TYPE_PARAM))
-
-proc G_IS_PARAM_SPEC*(pspec: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(pspec, G_TYPE_PARAM)
-
-proc G_PARAM_SPEC_CLASS*(pclass: Pointer): PGParamSpecClass = 
-  result = cast[PGParamSpecClass](G_TYPE_CHECK_CLASS_CAST(pclass, G_TYPE_PARAM))
-
-proc G_IS_PARAM_SPEC_CLASS*(pclass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(pclass, G_TYPE_PARAM)
-
-proc G_PARAM_SPEC_GET_CLASS*(pspec: Pointer): PGParamSpecClass = 
-  result = cast[PGParamSpecClass](G_TYPE_INSTANCE_GET_CLASS(pspec, G_TYPE_PARAM))
-
-proc G_PARAM_SPEC_TYPE*(pspec: Pointer): GType = 
-  result = G_TYPE_FROM_INSTANCE(pspec)
-
-proc G_PARAM_SPEC_TYPE_NAME*(pspec: Pointer): cstring = 
-  result = g_type_name(G_PARAM_SPEC_TYPE(pspec))
-
-proc G_PARAM_SPEC_VALUE_TYPE*(pspec: Pointer): GType = 
-  result = (G_PARAM_SPEC(pspec)).value_type
-
-proc G_VALUE_HOLDS_PARAM*(value: Pointer): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_PARAM)
-
-proc G_CLOSURE_NEEDS_MARSHAL*(closure: Pointer): bool = 
-  result = cast[PGClosure](closure).marshal == nil
-
-proc N_NOTIFIERS*(cl: PGClosure): int32 = 
-  result = ((meta_marshal(cl) + ((n_guards(cl)) shl 1'i32)) +
-      (n_fnotifiers(cl))) + (n_inotifiers(cl))
-
-proc CCLOSURE_SWAP_DATA*(cclosure: PGClosure): int32 = 
-  result = derivative_flag(cclosure)
-
-proc G_CALLBACK*(f: pointer): TGCallback = 
-  result = cast[TGCallback](f)
-
-proc ref_count*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_ref_count) shr bp_TGClosure_ref_count
-
-proc set_ref_count*(a: PGClosure, `ref_count`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`ref_count` shl bp_TGClosure_ref_count) and bm_TGClosure_ref_count)
-
-proc meta_marshal*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_meta_marshal) shr
-      bp_TGClosure_meta_marshal
-
-proc set_meta_marshal*(a: PGClosure, `meta_marshal`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`meta_marshal` shl bp_TGClosure_meta_marshal) and
-      bm_TGClosure_meta_marshal)
-
-proc n_guards*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_n_guards) shr bp_TGClosure_n_guards
-
-proc set_n_guards*(a: PGClosure, `n_guards`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`n_guards` shl bp_TGClosure_n_guards) and bm_TGClosure_n_guards)
-
-proc n_fnotifiers*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_n_fnotifiers) shr
-      bp_TGClosure_n_fnotifiers
-
-proc set_n_fnotifiers*(a: PGClosure, `n_fnotifiers`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`n_fnotifiers` shl bp_TGClosure_n_fnotifiers) and
-      bm_TGClosure_n_fnotifiers)
-
-proc n_inotifiers*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_n_inotifiers) shr
-      bp_TGClosure_n_inotifiers
-
-proc set_n_inotifiers*(a: PGClosure, `n_inotifiers`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`n_inotifiers` shl bp_TGClosure_n_inotifiers) and
-      bm_TGClosure_n_inotifiers)
-
-proc in_inotify*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_in_inotify) shr bp_TGClosure_in_inotify
-
-proc set_in_inotify*(a: PGClosure, `in_inotify`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`in_inotify` shl bp_TGClosure_in_inotify) and bm_TGClosure_in_inotify)
-
-proc floating*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_floating) shr bp_TGClosure_floating
-
-proc set_floating*(a: PGClosure, `floating`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`floating` shl bp_TGClosure_floating) and bm_TGClosure_floating)
-
-proc derivative_flag*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_derivative_flag) shr
-      bp_TGClosure_derivative_flag
-
-proc set_derivative_flag*(a: PGClosure, `derivative_flag`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`derivative_flag` shl bp_TGClosure_derivative_flag) and
-      bm_TGClosure_derivative_flag)
-
-proc in_marshal*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_in_marshal) shr bp_TGClosure_in_marshal
-
-proc set_in_marshal*(a: PGClosure, in_marshal: guint) = 
-  a.flag0 = a.flag0 or
-      ((in_marshal shl bp_TGClosure_in_marshal) and bm_TGClosure_in_marshal)
-
-proc is_invalid*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_is_invalid) shr bp_TGClosure_is_invalid
-
-proc set_is_invalid*(a: PGClosure, is_invalid: guint) = 
-  a.flag0 = a.flag0 or
-      ((is_invalid shl bp_TGClosure_is_invalid) and bm_TGClosure_is_invalid)
-
-proc g_signal_connect*(instance: gpointer, detailed_signal: cstring, 
-                       c_handler: TGCallback, data: gpointer): gulong = 
-  result = g_signal_connect_data(instance, detailed_signal, c_handler, data, 
-                                 nil, TGConnectFlags(0))
-
-proc g_signal_connect_after*(instance: gpointer, detailed_signal: cstring, 
-                             c_handler: TGCallback, data: gpointer): gulong = 
-  result = g_signal_connect_data(instance, detailed_signal, c_handler, data, 
-                                 nil, G_CONNECT_AFTER)
-
-proc g_signal_connect_swapped*(instance: gpointer, detailed_signal: cstring, 
-                               c_handler: TGCallback, data: gpointer): gulong = 
-  result = g_signal_connect_data(instance, detailed_signal, c_handler, data, 
-                                 nil, G_CONNECT_SWAPPED)
-
-proc g_signal_handlers_disconnect_by_func*(instance: gpointer, 
-    func, data: gpointer): guint = 
-  result = g_signal_handlers_disconnect_matched(instance, 
-      TGSignalMatchType(G_SIGNAL_MATCH_FUNC or G_SIGNAL_MATCH_DATA), 0, 0, nil, 
-      func, data)
-
-proc g_signal_handlers_block_by_func*(instance: gpointer, func, data: gpointer) = 
-  discard g_signal_handlers_block_matched(instance, 
-      TGSignalMatchType(G_SIGNAL_MATCH_FUNC or G_SIGNAL_MATCH_DATA), 0, 0, nil, 
-      func, data)
-
-proc g_signal_handlers_unblock_by_func*(instance: gpointer, func, data: gpointer) = 
-  discard g_signal_handlers_unblock_matched(instance, 
-      TGSignalMatchType(G_SIGNAL_MATCH_FUNC or G_SIGNAL_MATCH_DATA), 0, 0, nil, 
-      func, data)
-
-proc G_TYPE_IS_OBJECT*(theType: GType): bool = 
-  result = (G_TYPE_FUNDAMENTAL(theType)) == G_TYPE_OBJECT
-
-proc G_OBJECT*(anObject: pointer): PGObject = 
-  result = cast[PGObject](G_TYPE_CHECK_INSTANCE_CAST(anObject, G_TYPE_OBJECT))
-
-proc G_OBJECT_CLASS*(class: Pointer): PGObjectClass = 
-  result = cast[PGObjectClass](G_TYPE_CHECK_CLASS_CAST(class, G_TYPE_OBJECT))
-
-proc G_IS_OBJECT*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, G_TYPE_OBJECT)
-
-proc G_IS_OBJECT_CLASS*(class: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(class, G_TYPE_OBJECT)
-
-proc G_OBJECT_GET_CLASS*(anObject: pointer): PGObjectClass = 
-  result = cast[PGObjectClass](G_TYPE_INSTANCE_GET_CLASS(anObject, G_TYPE_OBJECT))
-
-proc G_OBJECT_TYPE*(anObject: pointer): GType = 
-  result = G_TYPE_FROM_INSTANCE(anObject)
-
-proc G_OBJECT_TYPE_NAME*(anObject: pointer): cstring = 
-  result = g_type_name(G_OBJECT_TYPE(anObject))
-
-proc G_OBJECT_CLASS_TYPE*(class: Pointer): GType = 
-  result = G_TYPE_FROM_CLASS(class)
-
-proc G_OBJECT_CLASS_NAME*(class: Pointer): cstring = 
-  result = g_type_name(G_OBJECT_CLASS_TYPE(class))
-
-proc G_VALUE_HOLDS_OBJECT*(value: Pointer): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_OBJECT)
-
-proc G_OBJECT_WARN_INVALID_PROPERTY_ID*(anObject: gpointer, property_id: gint, 
-                                        pspec: gpointer) = 
-  G_OBJECT_WARN_INVALID_PSPEC(anObject, "property", property_id, pspec)
-
-proc G_OBJECT_WARN_INVALID_PSPEC*(anObject: gpointer, pname: cstring, 
-                                  property_id: gint, pspec: gpointer) = 
-  var 
-    theObject: PGObject
-    pspec2: PGParamSpec
-    property_id: guint
-  theObject = cast[PGObject](anObject)
-  pspec2 = cast[PGParamSpec](pspec)
-  property_id = (property_id)
-  write(stdout, "invalid thingy\x0A")
-  #g_warning("%s: invalid %s id %u for \"%s\" of type `%s\' in `%s\'", "", pname,
-  #          `property_id`, `pspec` . name,
-  #          g_type_name(G_PARAM_SPEC_TYPE(`pspec`)),
-  #          G_OBJECT_TYPE_NAME(theobject))
-  
-proc G_TYPE_TYPE_PLUGIN*(): GType = 
-  result = g_type_plugin_get_type()
-
-proc G_TYPE_PLUGIN*(inst: Pointer): PGTypePlugin = 
-  result = PGTypePlugin(G_TYPE_CHECK_INSTANCE_CAST(inst, G_TYPE_TYPE_PLUGIN()))
-
-proc G_TYPE_PLUGIN_CLASS*(vtable: Pointer): PGTypePluginClass = 
-  result = cast[PGTypePluginClass](G_TYPE_CHECK_CLASS_CAST(vtable, 
-      G_TYPE_TYPE_PLUGIN()))
-
-proc G_IS_TYPE_PLUGIN*(inst: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(inst, G_TYPE_TYPE_PLUGIN())
-
-proc G_IS_TYPE_PLUGIN_CLASS*(vtable: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(vtable, G_TYPE_TYPE_PLUGIN())
-
-proc G_TYPE_PLUGIN_GET_CLASS*(inst: Pointer): PGTypePluginClass = 
-  result = cast[PGTypePluginClass](G_TYPE_INSTANCE_GET_INTERFACE(inst, 
-      G_TYPE_TYPE_PLUGIN()))
-
-proc G_TYPE_IS_ENUM*(theType: GType): gboolean = 
-  result = (G_TYPE_FUNDAMENTAL(theType) == G_TYPE_ENUM)
-
-proc G_ENUM_CLASS*(class: pointer): PGEnumClass = 
-  result = cast[PGEnumClass](G_TYPE_CHECK_CLASS_CAST(class, G_TYPE_ENUM))
-
-proc G_IS_ENUM_CLASS*(class: pointer): gboolean = 
-  result = G_TYPE_CHECK_CLASS_TYPE(class, G_TYPE_ENUM)
-
-proc G_ENUM_CLASS_TYPE*(class: pointer): GType = 
-  result = G_TYPE_FROM_CLASS(class)
-
-proc G_ENUM_CLASS_TYPE_NAME*(class: pointer): cstring = 
-  result = g_type_name(G_ENUM_CLASS_TYPE(class))
-
-proc G_TYPE_IS_FLAGS*(theType: GType): gboolean = 
-  result = (G_TYPE_FUNDAMENTAL(theType)) == G_TYPE_FLAGS
-
-proc G_FLAGS_CLASS*(class: pointer): PGFlagsClass = 
-  result = cast[PGFlagsClass](G_TYPE_CHECK_CLASS_CAST(class, G_TYPE_FLAGS))
-
-proc G_IS_FLAGS_CLASS*(class: pointer): gboolean = 
-  result = G_TYPE_CHECK_CLASS_TYPE(class, G_TYPE_FLAGS)
-
-proc G_FLAGS_CLASS_TYPE*(class: pointer): GType = 
-  result = G_TYPE_FROM_CLASS(class)
-
-proc G_FLAGS_CLASS_TYPE_NAME*(class: pointer): cstring = 
-  result = g_type_name(G_FLAGS_TYPE(cast[TAddress](class)))
-
-proc G_VALUE_HOLDS_ENUM*(value: pointer): gboolean = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_ENUM)
-
-proc G_VALUE_HOLDS_FLAGS*(value: pointer): gboolean = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_FLAGS)
-
-proc CLAMP*(x, MinX, MaxX: int): int = 
-  if x < MinX: 
-    result = MinX
-  elif x > MaxX: 
-    result = MaxX
-  else: 
-    result = x
-
-proc GPOINTER_TO_SIZE*(p: GPointer): GSize = 
-  result = GSize(cast[TAddress](p))
-
-proc GSIZE_TO_POINTER*(s: GSize): GPointer = 
-  result = cast[GPointer](s)
-
-proc HOLDS_CHAR*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_CHAR)
-
-proc HOLDS_UCHAR*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_UCHAR)
-
-proc HOLDS_BOOLEAN*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_BOOLEAN)
-
-proc HOLDS_INT*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_INT)
-
-proc HOLDS_UINT*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_UINT)
-
-proc HOLDS_LONG*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_LONG)
-
-proc HOLDS_ULONG*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_ULONG)
-
-proc HOLDS_INT64*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_INT64)
-
-proc HOLDS_UINT64*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_UINT64)
-
-proc HOLDS_FLOAT*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_FLOAT)
-
-proc HOLDS_DOUBLE*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_DOUBLE)
-
-proc HOLDS_STRING*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_STRING)
-
-proc HOLDS_POINTER*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_POINTER)
-
-proc G_TYPE_IS_BOXED*(theType: GType): gboolean = 
-  result = (G_TYPE_FUNDAMENTAL(theType)) == G_TYPE_BOXED
-
-proc HOLDS_BOXED*(value: PGValue): gboolean = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_BOXED)
-
-proc G_TYPE_CLOSURE*(): GType = 
-  result = g_closure_get_type()
-
-proc G_TYPE_VALUE*(): GType = 
-  result = g_value_get_type()
-
-proc G_TYPE_VALUE_ARRAY*(): GType = 
-  result = g_value_array_get_type()
-
-proc G_TYPE_GSTRING*(): GType = 
-  result = g_gstring_get_type()
-  
-proc g_thread_init*(vtable: pointer) {.
-  cdecl, dynlib: gobjectlib, importc: "g_thread_init".}
-
-proc g_timeout_add*(interval: guint, function, data: gpointer): guint {.
-  cdecl, dynlib: gliblib, importc: "g_timeout_add".}
-
-proc g_timeout_add_full*(priority: guint, interval: guint, function,
-  data, notify: gpointer): guint {.cdecl, dynlib: gliblib, 
-  importc: "g_timeout_add_full".}
-
-proc g_idle_add*(function, data: gpointer): guint {.
-  cdecl, dynlib: gliblib, importc: "g_idle_add".}
-
-proc g_idle_add_full*(priority: guint, function,
-  data, notify: gpointer): guint {.cdecl, dynlib: gliblib, 
-  importc: "g_idle_add_full".}
-
-proc g_source_remove*(tag: guint): gboolean {.
-  cdecl, dynlib: gliblib, importc: "g_source_remove".}
-
-proc g_signal_emit_by_name*(instance: gpointer, detailed_signal: cstring) {.
-  cdecl, varargs, dynlib: gobjectlib, importc.}
diff --git a/lib/wrappers/gtk/gtk2.nim b/lib/wrappers/gtk/gtk2.nim
deleted file mode 100644
index 63e69130a..000000000
--- a/lib/wrappers/gtk/gtk2.nim
+++ /dev/null
@@ -1,17064 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  glib2, atk, pango, gdk2pixbuf, gdk2
-
-export gbool, toBool
-
-when defined(win32): 
-  const 
-    lib = "libgtk-win32-2.0-0.dll"
-elif defined(macosx): 
-  const 
-    lib = "libgtk-x11-2.0.dylib"
-  # linklib gtk-x11-2.0
-  # linklib gdk-x11-2.0
-  # linklib pango-1.0.0
-  # linklib glib-2.0.0
-  # linklib gobject-2.0.0
-  # linklib gdk_pixbuf-2.0.0
-  # linklib atk-1.0.0
-else: 
-  const 
-    lib = "libgtk-x11-2.0.so(|.0)"
-
-const 
-  MAX_COMPOSE_LEN* = 7
-
-type 
-  PObject* = ptr TObject
-  PPGtkObject* = ptr PObject
-  PArg* = ptr TArg
-  PType* = ptr TType
-  TType* = GType
-  PWidget* = ptr TWidget
-  PMisc* = ptr TMisc
-  PLabel* = ptr TLabel
-  PMenu* = ptr TMenu
-  PAnchorType* = ptr TAnchorType
-  TAnchorType* = int32
-  PArrowType* = ptr TArrowType
-  TArrowType* = int32
-  PAttachOptions* = ptr TAttachOptions
-  TAttachOptions* = int32
-  PButtonBoxStyle* = ptr TButtonBoxStyle
-  TButtonBoxStyle* = int32
-  PCurveType* = ptr TCurveType
-  TCurveType* = int32
-  PDeleteType* = ptr TDeleteType
-  TDeleteType* = int32
-  PDirectionType* = ptr TDirectionType
-  TDirectionType* = int32
-  PExpanderStyle* = ptr TExpanderStyle
-  TExpanderStyle* = int32
-  PPGtkIconSize* = ptr PIconSize
-  PIconSize* = ptr TIconSize
-  TIconSize* = int32
-  PTextDirection* = ptr TTextDirection
-  TTextDirection* = int32
-  PJustification* = ptr TJustification
-  TJustification* = int32
-  PMenuDirectionType* = ptr TMenuDirectionType
-  TMenuDirectionType* = int32
-  PMetricType* = ptr TMetricType
-  TMetricType* = int32
-  PMovementStep* = ptr TMovementStep
-  TMovementStep* = int32
-  POrientation* = ptr TOrientation
-  TOrientation* = int32
-  PCornerType* = ptr TCornerType
-  TCornerType* = int32
-  PPackType* = ptr TPackType
-  TPackType* = int32
-  PPathPriorityType* = ptr TPathPriorityType
-  TPathPriorityType* = int32
-  PPathType* = ptr TPathType
-  TPathType* = int32
-  PPolicyType* = ptr TPolicyType
-  TPolicyType* = int32
-  PPositionType* = ptr TPositionType
-  TPositionType* = int32
-  PReliefStyle* = ptr TReliefStyle
-  TReliefStyle* = int32
-  PResizeMode* = ptr TResizeMode
-  TResizeMode* = int32
-  PScrollType* = ptr TScrollType
-  TScrollType* = int32
-  PSelectionMode* = ptr TSelectionMode
-  TSelectionMode* = int32
-  PShadowType* = ptr TShadowType
-  TShadowType* = int32
-  PStateType* = ptr TStateType
-  TStateType* = int32
-  PSubmenuDirection* = ptr TSubmenuDirection
-  TSubmenuDirection* = int32
-  PSubmenuPlacement* = ptr TSubmenuPlacement
-  TSubmenuPlacement* = int32
-  PToolbarStyle* = ptr TToolbarStyle
-  TToolbarStyle* = int32
-  PUpdateType* = ptr TUpdateType
-  TUpdateType* = int32
-  PVisibility* = ptr TVisibility
-  TVisibility* = int32
-  PWindowPosition* = ptr TWindowPosition
-  TWindowPosition* = int32
-  PWindowType* = ptr TWindowType
-  TWindowType* = int32
-  PWrapMode* = ptr TWrapMode
-  TWrapMode* = int32
-  PSortType* = ptr TSortType
-  TSortType* = int32
-  PStyle* = ptr TStyle
-  PPGtkTreeModel* = ptr PTreeModel
-  PTreeModel* = pointer
-  PTreePath* = pointer
-  PTreeIter* = ptr TTreeIter
-  PSelectionData* = ptr TSelectionData
-  PTextTagTable* = ptr TTextTagTable
-  PTextBTreeNode* = pointer
-  PTextBTree* = pointer
-  PTextLine* = ptr TTextLine
-  PTreeViewColumn* = ptr TTreeViewColumn
-  PTreeView* = ptr TTreeView
-  TTreeViewColumnDropFunc* = proc (tree_view: PTreeView, 
-                                   column: PTreeViewColumn, 
-                                   prev_column: PTreeViewColumn, 
-                                   next_column: PTreeViewColumn, data: gpointer): gboolean{.
-      cdecl.}
-  TTreeViewMappingFunc* = proc (tree_view: PTreeView, path: PTreePath, 
-                                user_data: gpointer){.cdecl.}
-  TTreeViewSearchEqualFunc* = proc (model: PTreeModel, column: gint, 
-                                    key: cstring, iter: PTreeIter, 
-                                    search_data: gpointer): gboolean{.cdecl.}
-  TTreeDestroyCountFunc* = proc (tree_view: PTreeView, path: PTreePath, 
-                                 children: gint, user_data: gpointer){.cdecl.}
-  PTreeViewDropPosition* = ptr TTreeViewDropPosition
-  TTreeViewDropPosition* = enum 
-    TREE_VIEW_DROP_BEFORE, TREE_VIEW_DROP_AFTER, TREE_VIEW_DROP_INTO_OR_BEFORE, 
-    TREE_VIEW_DROP_INTO_OR_AFTER
-  PObjectFlags* = ptr TObjectFlags
-  TObjectFlags* = int32
-  TObject* = object of TGObject
-    flags*: guint32
-
-  PObjectClass* = ptr TObjectClass
-  TObjectClass* = object of TGObjectClass
-    set_arg*: proc (anObject: PObject, arg: PArg, arg_id: guint){.cdecl.}
-    get_arg*: proc (anObject: PObject, arg: PArg, arg_id: guint){.cdecl.}
-    destroy*: proc (anObject: PObject){.cdecl.}
-
-  PFundamentalType* = ptr TFundamentalType
-  TFundamentalType* = GType
-  TFunction* = proc (data: gpointer): gboolean{.cdecl.}
-  TDestroyNotify* = proc (data: gpointer){.cdecl.}
-  TCallbackMarshal* = proc (anObject: PObject, data: gpointer, n_args: guint, 
-                            args: PArg){.cdecl.}
-  TSignalFunc* = proc (para1: pointer){.cdecl.}
-  PSignalMarshaller* = ptr TSignalMarshaller
-  TSignalMarshaller* = TGSignalCMarshaller
-  TArgSignalData*{.final, pure.} = object 
-    f*: TSignalFunc
-    d*: gpointer
-
-  TArg*{.final, pure.} = object 
-    `type`*: TType
-    name*: cstring
-    d*: gdouble               # was a union type
-  
-  PTypeInfo* = ptr TTypeInfo
-  TTypeInfo*{.final, pure.} = object 
-    type_name*: cstring
-    object_size*: guint
-    class_size*: guint
-    class_init_func*: pointer #TGtkClassInitFunc
-    object_init_func*: pointer #TGtkObjectInitFunc
-    reserved_1*: gpointer
-    reserved_2*: gpointer
-    base_class_init_func*: pointer #TGtkClassInitFunc
-  
-  PEnumValue* = ptr TEnumValue
-  TEnumValue* = TGEnumValue
-  PFlagValue* = ptr TFlagValue
-  TFlagValue* = TGFlagsValue
-  PWidgetFlags* = ptr TWidgetFlags
-  TWidgetFlags* = int32
-  PWidgetHelpType* = ptr TWidgetHelpType
-  TWidgetHelpType* = enum 
-    WIDGET_HELP_TOOLTIP, WIDGET_HELP_WHATS_THIS
-  PAllocation* = ptr TAllocation
-  TAllocation* = Gdk2.TRectangle
-  TCallback* = proc (widget: PWidget, data: gpointer){.cdecl.}
-  PRequisition* = ptr TRequisition
-  TRequisition*{.final, pure.} = object 
-    width*: gint
-    height*: gint
-
-  TWidget* = object of TObject
-    private_flags*: guint16
-    state*: guint8
-    saved_state*: guint8
-    name*: cstring
-    style*: PStyle
-    requisition*: TRequisition
-    allocation*: TAllocation
-    window*: Gdk2.PWindow
-    parent*: PWidget
-
-  PWidgetClass* = ptr TWidgetClass
-  TWidgetClass* = object of TObjectClass
-    activate_signal*: guint
-    set_scroll_adjustments_signal*: guint
-    dispatch_child_properties_changed*: proc (widget: PWidget, n_pspecs: guint, 
-        pspecs: PPGParamSpec){.cdecl.}
-    show*: proc (widget: PWidget){.cdecl.}
-    show_all*: proc (widget: PWidget){.cdecl.}
-    hide*: proc (widget: PWidget){.cdecl.}
-    hide_all*: proc (widget: PWidget){.cdecl.}
-    map*: proc (widget: PWidget){.cdecl.}
-    unmap*: proc (widget: PWidget){.cdecl.}
-    realize*: proc (widget: PWidget){.cdecl.}
-    unrealize*: proc (widget: PWidget){.cdecl.}
-    size_request*: proc (widget: PWidget, requisition: PRequisition){.cdecl.}
-    size_allocate*: proc (widget: PWidget, allocation: PAllocation){.cdecl.}
-    state_changed*: proc (widget: PWidget, previous_state: TStateType){.cdecl.}
-    parent_set*: proc (widget: PWidget, previous_parent: PWidget){.cdecl.}
-    hierarchy_changed*: proc (widget: PWidget, previous_toplevel: PWidget){.
-        cdecl.}
-    style_set*: proc (widget: PWidget, previous_style: PStyle){.cdecl.}
-    direction_changed*: proc (widget: PWidget, 
-                              previous_direction: TTextDirection){.cdecl.}
-    grab_notify*: proc (widget: PWidget, was_grabbed: gboolean){.cdecl.}
-    child_notify*: proc (widget: PWidget, pspec: PGParamSpec){.cdecl.}
-    mnemonic_activate*: proc (widget: PWidget, group_cycling: gboolean): gboolean{.
-        cdecl.}
-    grab_focus*: proc (widget: PWidget){.cdecl.}
-    focus*: proc (widget: PWidget, direction: TDirectionType): gboolean{.cdecl.}
-    event*: proc (widget: PWidget, event: Gdk2.PEvent): gboolean{.cdecl.}
-    button_press_event*: proc (widget: PWidget, event: PEventButton): gboolean{.
-        cdecl.}
-    button_release_event*: proc (widget: PWidget, event: PEventButton): gboolean{.
-        cdecl.}
-    scroll_event*: proc (widget: PWidget, event: PEventScroll): gboolean{.
-        cdecl.}
-    motion_notify_event*: proc (widget: PWidget, event: PEventMotion): gboolean{.
-        cdecl.}
-    delete_event*: proc (widget: PWidget, event: PEventAny): gboolean{.cdecl.}
-    destroy_event*: proc (widget: PWidget, event: PEventAny): gboolean{.cdecl.}
-    expose_event*: proc (widget: PWidget, event: PEventExpose): gboolean{.
-        cdecl.}
-    key_press_event*: proc (widget: PWidget, event: PEventKey): gboolean{.
-        cdecl.}
-    key_release_event*: proc (widget: PWidget, event: PEventKey): gboolean{.
-        cdecl.}
-    enter_notify_event*: proc (widget: PWidget, event: PEventCrossing): gboolean{.
-        cdecl.}
-    leave_notify_event*: proc (widget: PWidget, event: PEventCrossing): gboolean{.
-        cdecl.}
-    configure_event*: proc (widget: PWidget, event: PEventConfigure): gboolean{.
-        cdecl.}
-    focus_in_event*: proc (widget: PWidget, event: PEventFocus): gboolean{.
-        cdecl.}
-    focus_out_event*: proc (widget: PWidget, event: PEventFocus): gboolean{.
-        cdecl.}
-    map_event*: proc (widget: PWidget, event: PEventAny): gboolean{.cdecl.}
-    unmap_event*: proc (widget: PWidget, event: PEventAny): gboolean{.cdecl.}
-    property_notify_event*: proc (widget: PWidget, event: PEventProperty): gboolean{.
-        cdecl.}
-    selection_clear_event*: proc (widget: PWidget, event: PEventSelection): gboolean{.
-        cdecl.}
-    selection_request_event*: proc (widget: PWidget, event: PEventSelection): gboolean{.
-        cdecl.}
-    selection_notify_event*: proc (widget: PWidget, event: PEventSelection): gboolean{.
-        cdecl.}
-    proximity_in_event*: proc (widget: PWidget, event: PEventProximity): gboolean{.
-        cdecl.}
-    proximity_out_event*: proc (widget: PWidget, event: PEventProximity): gboolean{.
-        cdecl.}
-    visibility_notify_event*: proc (widget: PWidget, event: PEventVisibility): gboolean{.
-        cdecl.}
-    client_event*: proc (widget: PWidget, event: PEventClient): gboolean{.
-        cdecl.}
-    no_expose_event*: proc (widget: PWidget, event: PEventAny): gboolean{.
-        cdecl.}
-    window_state_event*: proc (widget: PWidget, event: PEventWindowState): gboolean{.
-        cdecl.}
-    selection_get*: proc (widget: PWidget, selection_data: PSelectionData, 
-                          info: guint, time: guint){.cdecl.}
-    selection_received*: proc (widget: PWidget, selection_data: PSelectionData, 
-                               time: guint){.cdecl.}
-    drag_begin*: proc (widget: PWidget, context: PDragContext){.cdecl.}
-    drag_end*: proc (widget: PWidget, context: PDragContext){.cdecl.}
-    drag_data_get*: proc (widget: PWidget, context: PDragContext, 
-                          selection_data: PSelectionData, info: guint, 
-                          time: guint){.cdecl.}
-    drag_data_delete*: proc (widget: PWidget, context: PDragContext){.cdecl.}
-    drag_leave*: proc (widget: PWidget, context: PDragContext, time: guint){.
-        cdecl.}
-    drag_motion*: proc (widget: PWidget, context: PDragContext, x: gint, 
-                        y: gint, time: guint): gboolean{.cdecl.}
-    drag_drop*: proc (widget: PWidget, context: PDragContext, x: gint, 
-                      y: gint, time: guint): gboolean{.cdecl.}
-    drag_data_received*: proc (widget: PWidget, context: PDragContext, 
-                               x: gint, y: gint, selection_data: PSelectionData, 
-                               info: guint, time: guint){.cdecl.}
-    popup_menu*: proc (widget: PWidget): gboolean{.cdecl.}
-    show_help*: proc (widget: PWidget, help_type: TWidgetHelpType): gboolean{.
-        cdecl.}
-    get_accessible*: proc (widget: PWidget): atk.PObject{.cdecl.}
-    reserved1: proc (){.cdecl.}
-    reserved2: proc (){.cdecl.}
-    reserved3: proc (){.cdecl.}
-    reserved4: proc (){.cdecl.}
-    reserved5*: proc (){.cdecl.}
-    reserved6*: proc (){.cdecl.}
-    reserved7*: proc (){.cdecl.}
-    reserved8*: proc (){.cdecl.}
-
-  PWidgetAuxInfo* = ptr TWidgetAuxInfo
-  TWidgetAuxInfo*{.final, pure.} = object 
-    x*: gint
-    y*: gint
-    width*: gint
-    height*: gint
-    flag0*: guint16
-
-  PWidgetShapeInfo* = ptr TWidgetShapeInfo
-  TWidgetShapeInfo*{.final, pure.} = object 
-    offset_x*: gint16
-    offset_y*: gint16
-    shape_mask*: gdk2.PBitmap
-
-  TMisc* = object of TWidget
-    xalign*: gfloat
-    yalign*: gfloat
-    xpad*: guint16
-    ypad*: guint16
-
-  PMiscClass* = ptr TMiscClass
-  TMiscClass* = object of TWidgetClass
-  PAccelFlags* = ptr TAccelFlags
-  TAccelFlags* = int32
-  PAccelGroup* = ptr TAccelGroup
-  PAccelGroupEntry* = ptr TAccelGroupEntry
-  TAccelGroupActivate* = proc (accel_group: PAccelGroup, 
-                               acceleratable: PGObject, keyval: guint, 
-                               modifier: gdk2.TModifierType): gboolean{.cdecl.}
-  TAccelGroup* = object of TGObject
-    lock_count*: guint
-    modifier_mask*: gdk2.TModifierType
-    acceleratables*: PGSList
-    n_accels*: guint
-    priv_accels*: PAccelGroupEntry
-
-  PAccelGroupClass* = ptr TAccelGroupClass
-  TAccelGroupClass* = object of TGObjectClass
-    accel_changed*: proc (accel_group: PAccelGroup, keyval: guint, 
-                          modifier: gdk2.TModifierType, accel_closure: PGClosure){.
-        cdecl.}
-    reserved1: proc (){.cdecl.}
-    reserved2: proc (){.cdecl.}
-    reserved3: proc (){.cdecl.}
-    reserved4: proc (){.cdecl.}
-
-  PAccelKey* = ptr TAccelKey
-  TAccelKey*{.final, pure.} = object 
-    accel_key*: guint
-    accel_mods*: gdk2.TModifierType
-    flag0*: guint16
-
-  TAccelGroupEntry*{.final, pure.} = object 
-    key*: TAccelKey
-    closure*: PGClosure
-    accel_path_quark*: TGQuark
-
-  Taccel_group_find_func* = proc (key: PAccelKey, closure: PGClosure, 
-                                  data: gpointer): gboolean{.cdecl.}
-  PContainer* = ptr TContainer
-  TContainer* = object of TWidget
-    focus_child*: PWidget
-    Container_flag0*: int32
-
-  PContainerClass* = ptr TContainerClass
-  TContainerClass* = object of TWidgetClass
-    add*: proc (container: PContainer, widget: PWidget){.cdecl.}
-    remove*: proc (container: PContainer, widget: PWidget){.cdecl.}
-    check_resize*: proc (container: PContainer){.cdecl.}
-    forall*: proc (container: PContainer, include_internals: gboolean, 
-                   callback: TCallback, callback_data: gpointer){.cdecl.}
-    set_focus_child*: proc (container: PContainer, widget: PWidget){.cdecl.}
-    child_type*: proc (container: PContainer): TType{.cdecl.}
-    composite_name*: proc (container: PContainer, child: PWidget): cstring{.
-        cdecl.}
-    set_child_property*: proc (container: PContainer, child: PWidget, 
-                               property_id: guint, value: PGValue, 
-                               pspec: PGParamSpec){.cdecl.}
-    get_child_property*: proc (container: PContainer, child: PWidget, 
-                               property_id: guint, value: PGValue, 
-                               pspec: PGParamSpec){.cdecl.}
-    reserved20: proc (){.cdecl.}
-    reserved21: proc (){.cdecl.}
-    reserved23: proc (){.cdecl.}
-    reserved24: proc (){.cdecl.}
-
-  PBin* = ptr TBin
-  TBin* = object of TContainer
-    child*: PWidget
-
-  PBinClass* = ptr TBinClass
-  TBinClass* = object of TContainerClass
-  PWindowGeometryInfo* = pointer
-  PWindowGroup* = ptr TWindowGroup
-  PWindow* = ptr TWindow
-  TWindow* = object of TBin
-    title*: cstring
-    wmclass_name*: cstring
-    wmclass_class*: cstring
-    wm_role*: cstring
-    focus_widget*: PWidget
-    default_widget*: PWidget
-    transient_parent*: PWindow
-    geometry_info*: PWindowGeometryInfo
-    frame*: gdk2.PWindow
-    group*: PWindowGroup
-    configure_request_count*: guint16
-    window_flag0*: int32
-    frame_left*: guint
-    frame_top*: guint
-    frame_right*: guint
-    frame_bottom*: guint
-    keys_changed_handler*: guint
-    mnemonic_modifier*: gdk2.TModifierType
-    screen*: gdk2.PScreen
-
-  PWindowClass* = ptr TWindowClass
-  TWindowClass* = object of TBinClass
-    set_focus*: proc (window: PWindow, focus: PWidget){.cdecl.}
-    frame_event*: proc (window: PWindow, event: gdk2.PEvent): gboolean{.cdecl.}
-    activate_focus*: proc (window: PWindow){.cdecl.}
-    activate_default*: proc (window: PWindow){.cdecl.}
-    move_focus*: proc (window: PWindow, direction: TDirectionType){.cdecl.}
-    keys_changed*: proc (window: PWindow){.cdecl.}
-    reserved30: proc (){.cdecl.}
-    reserved31: proc (){.cdecl.}
-    reserved32: proc (){.cdecl.}
-    reserved33: proc (){.cdecl.}
-
-  TWindowGroup* = object of TGObject
-    grabs*: PGSList
-
-  PWindowGroupClass* = ptr TWindowGroupClass
-  TWindowGroupClass* = object of TGObjectClass
-    reserved40: proc (){.cdecl.}
-    reserved41: proc (){.cdecl.}
-    reserved42: proc (){.cdecl.}
-    reserved43: proc (){.cdecl.}
-
-  TWindowKeysForeachFunc* = proc (window: PWindow, keyval: guint, 
-                                  modifiers: gdk2.TModifierType, 
-                                  is_mnemonic: gboolean, data: gpointer){.cdecl.}
-  PLabelSelectionInfo* = pointer
-  TLabel* = object of TMisc
-    `label`*: cstring
-    Label_flag0*: guint16
-    mnemonic_keyval*: guint
-    text*: cstring
-    attrs*: pango.PAttrList
-    effective_attrs*: pango.PAttrList
-    layout*: pango.PLayout
-    mnemonic_widget*: PWidget
-    mnemonic_window*: PWindow
-    select_info*: PLabelSelectionInfo
-
-  PLabelClass* = ptr TLabelClass
-  TLabelClass* = object of TMiscClass
-    move_cursor*: proc (`label`: PLabel, step: TMovementStep, count: gint, 
-                        extend_selection: gboolean){.cdecl.}
-    copy_clipboard*: proc (`label`: PLabel){.cdecl.}
-    populate_popup*: proc (`label`: PLabel, menu: PMenu){.cdecl.}
-    reserved50: proc (){.cdecl.}
-    reserved51: proc (){.cdecl.}
-    reserved52: proc (){.cdecl.}
-    reserved53: proc (){.cdecl.}
-
-  PAccelLabel* = ptr TAccelLabel
-  TAccelLabel* = object of TLabel
-    queue_id*: guint
-    accel_padding*: guint
-    accel_widget*: PWidget
-    accel_closure*: PGClosure
-    accel_group*: PAccelGroup
-    accel_string*: cstring
-    accel_string_width*: guint16
-
-  PAccelLabelClass* = ptr TAccelLabelClass
-  TAccelLabelClass* = object of TLabelClass
-    signal_quote1*: cstring
-    signal_quote2*: cstring
-    mod_name_shift*: cstring
-    mod_name_control*: cstring
-    mod_name_alt*: cstring
-    mod_separator*: cstring
-    accel_seperator*: cstring
-    AccelLabelClass_flag0*: guint16
-    reserved61: proc (){.cdecl.}
-    reserved62: proc (){.cdecl.}
-    reserved63: proc (){.cdecl.}
-    reserved64: proc (){.cdecl.}
-
-  TAccelMapForeach* = proc (data: gpointer, accel_path: cstring, 
-                            accel_key: guint, accel_mods: gdk2.TModifierType, 
-                            changed: gboolean){.cdecl.}
-  PAccessible* = ptr TAccessible
-  TAccessible* = object of atk.TObject
-    widget*: PWidget
-
-  PAccessibleClass* = ptr TAccessibleClass
-  TAccessibleClass* = object of atk.TObjectClass
-    connect_widget_destroyed*: proc (accessible: PAccessible){.cdecl.}
-    reserved71: proc (){.cdecl.}
-    reserved72: proc (){.cdecl.}
-    reserved73: proc (){.cdecl.}
-    reserved74: proc (){.cdecl.}
-
-  PAdjustment* = ptr TAdjustment
-  TAdjustment* = object of TObject
-    lower*: gdouble
-    upper*: gdouble
-    value*: gdouble
-    step_increment*: gdouble
-    page_increment*: gdouble
-    page_size*: gdouble
-
-  PAdjustmentClass* = ptr TAdjustmentClass
-  TAdjustmentClass* = object of TObjectClass
-    changed*: proc (adjustment: PAdjustment){.cdecl.}
-    value_changed*: proc (adjustment: PAdjustment){.cdecl.}
-    reserved81: proc (){.cdecl.}
-    reserved82: proc (){.cdecl.}
-    reserved83: proc (){.cdecl.}
-    reserved84: proc (){.cdecl.}
-
-  PAlignment* = ptr TAlignment
-  TAlignment* = object of TBin
-    xalign*: gfloat
-    yalign*: gfloat
-    xscale*: gfloat
-    yscale*: gfloat
-
-  PAlignmentClass* = ptr TAlignmentClass
-  TAlignmentClass* = object of TBinClass
-  PFrame* = ptr TFrame
-  TFrame* = object of TBin
-    label_widget*: PWidget
-    shadow_type*: gint16
-    label_xalign*: gfloat
-    label_yalign*: gfloat
-    child_allocation*: TAllocation
-
-  PFrameClass* = ptr TFrameClass
-  TFrameClass* = object of TBinClass
-    compute_child_allocation*: proc (frame: PFrame, allocation: PAllocation){.
-        cdecl.}
-
-  PAspectFrame* = ptr TAspectFrame
-  TAspectFrame* = object of TFrame
-    xalign*: gfloat
-    yalign*: gfloat
-    ratio*: gfloat
-    obey_child*: gboolean
-    center_allocation*: TAllocation
-
-  PAspectFrameClass* = ptr TAspectFrameClass
-  TAspectFrameClass* = object of TFrameClass
-  PArrow* = ptr TArrow
-  TArrow* = object of TMisc
-    arrow_type*: gint16
-    shadow_type*: gint16
-
-  PArrowClass* = ptr TArrowClass
-  TArrowClass* = object of TMiscClass
-  PBindingEntry* = ptr TBindingEntry
-  PBindingSignal* = ptr TBindingSignal
-  PBindingArg* = ptr TBindingArg
-  PBindingSet* = ptr TBindingSet
-  TBindingSet*{.final, pure.} = object 
-    set_name*: cstring
-    priority*: gint
-    widget_path_pspecs*: PGSList
-    widget_class_pspecs*: PGSList
-    class_branch_pspecs*: PGSList
-    entries*: PBindingEntry
-    current*: PBindingEntry
-    flag0*: guint16
-
-  TBindingEntry*{.final, pure.} = object 
-    keyval*: guint
-    modifiers*: gdk2.TModifierType
-    binding_set*: PBindingSet
-    flag0*: guint16
-    set_next*: PBindingEntry
-    hash_next*: PBindingEntry
-    signals*: PBindingSignal
-
-  TBindingSignal*{.final, pure.} = object 
-    next*: PBindingSignal
-    signal_name*: cstring
-    n_args*: guint
-    args*: PBindingArg
-
-  TBindingArg*{.final, pure.} = object 
-    arg_type*: TType
-    d*: gdouble
-
-  PBox* = ptr TBox
-  TBox* = object of TContainer
-    children*: PGList
-    spacing*: gint16
-    box_flag0*: guint16
-
-  PBoxClass* = ptr TBoxClass
-  TBoxClass* = object of TContainerClass
-  PBoxChild* = ptr TBoxChild
-  TBoxChild*{.final, pure.} = object 
-    widget*: PWidget
-    padding*: guint16
-    flag0*: guint16
-
-  PButtonBox* = ptr TButtonBox
-  TButtonBox* = object of TBox
-    child_min_width*: gint
-    child_min_height*: gint
-    child_ipad_x*: gint
-    child_ipad_y*: gint
-    layout_style*: TButtonBoxStyle
-
-  PButtonBoxClass* = ptr TButtonBoxClass
-  TButtonBoxClass* = object of TBoxClass
-  PButton* = ptr TButton
-  TButton* = object of TBin
-    event_window*: gdk2.PWindow
-    label_text*: cstring
-    activate_timeout*: guint
-    button_flag0*: guint16
-
-  PButtonClass* = ptr TButtonClass
-  TButtonClass* = object of TBinClass
-    pressed*: proc (button: PButton){.cdecl.}
-    released*: proc (button: PButton){.cdecl.}
-    clicked*: proc (button: PButton){.cdecl.}
-    enter*: proc (button: PButton){.cdecl.}
-    leave*: proc (button: PButton){.cdecl.}
-    activate*: proc (button: PButton){.cdecl.}
-    reserved101: proc (){.cdecl.}
-    reserved102: proc (){.cdecl.}
-    reserved103: proc (){.cdecl.}
-    reserved104: proc (){.cdecl.}
-
-  PCalendarDisplayOptions* = ptr TCalendarDisplayOptions
-  TCalendarDisplayOptions* = int32
-  PCalendar* = ptr TCalendar
-  TCalendar* = object of TWidget
-    header_style*: PStyle
-    label_style*: PStyle
-    month*: gint
-    year*: gint
-    selected_day*: gint
-    day_month*: array[0..5, array[0..6, gint]]
-    day*: array[0..5, array[0..6, gint]]
-    num_marked_dates*: gint
-    marked_date*: array[0..30, gint]
-    display_flags*: TCalendarDisplayOptions
-    marked_date_color*: array[0..30, gdk2.TColor]
-    gc*: gdk2.PGC
-    xor_gc*: gdk2.PGC
-    focus_row*: gint
-    focus_col*: gint
-    highlight_row*: gint
-    highlight_col*: gint
-    private_data*: gpointer
-    grow_space*: array[0..31, gchar]
-    reserved111: proc (){.cdecl.}
-    reserved112: proc (){.cdecl.}
-    reserved113: proc (){.cdecl.}
-    reserved114: proc (){.cdecl.}
-
-  PCalendarClass* = ptr TCalendarClass
-  TCalendarClass* = object of TWidgetClass
-    month_changed*: proc (calendar: PCalendar){.cdecl.}
-    day_selected*: proc (calendar: PCalendar){.cdecl.}
-    day_selected_double_click*: proc (calendar: PCalendar){.cdecl.}
-    prev_month*: proc (calendar: PCalendar){.cdecl.}
-    next_month*: proc (calendar: PCalendar){.cdecl.}
-    prev_year*: proc (calendar: PCalendar){.cdecl.}
-    next_year*: proc (calendar: PCalendar){.cdecl.}
-
-  PCellEditable* = pointer
-  PCellEditableIface* = ptr TCellEditableIface
-  TCellEditableIface* = object of TGTypeInterface
-    editing_done*: proc (cell_editable: PCellEditable){.cdecl.}
-    remove_widget*: proc (cell_editable: PCellEditable){.cdecl.}
-    start_editing*: proc (cell_editable: PCellEditable, event: gdk2.PEvent){.cdecl.}
-
-  PCellRendererState* = ptr TCellRendererState
-  TCellRendererState* = int32
-  PCellRendererMode* = ptr TCellRendererMode
-  TCellRendererMode* = enum 
-    CELL_RENDERER_MODE_INERT, CELL_RENDERER_MODE_ACTIVATABLE, 
-    CELL_RENDERER_MODE_EDITABLE
-  PCellRenderer* = ptr TCellRenderer
-  TCellRenderer* = object of TObject
-    xalign*: gfloat
-    yalign*: gfloat
-    width*: gint
-    height*: gint
-    xpad*: guint16
-    ypad*: guint16
-    CellRenderer_flag0*: guint16
-
-  PCellRendererClass* = ptr TCellRendererClass
-  TCellRendererClass* = object of TObjectClass
-    get_size*: proc (cell: PCellRenderer, widget: PWidget, 
-                     cell_area: gdk2.PRectangle, x_offset: Pgint, y_offset: Pgint, 
-                     width: Pgint, height: Pgint){.cdecl.}
-    render*: proc (cell: PCellRenderer, window: gdk2.PWindow, widget: PWidget, 
-                   background_area: gdk2.PRectangle, cell_area: gdk2.PRectangle, 
-                   expose_area: gdk2.PRectangle, flags: TCellRendererState){.cdecl.}
-    activate*: proc (cell: PCellRenderer, event: gdk2.PEvent, widget: PWidget, 
-                     path: cstring, background_area: gdk2.PRectangle, 
-                     cell_area: gdk2.PRectangle, flags: TCellRendererState): gboolean{.
-        cdecl.}
-    start_editing*: proc (cell: PCellRenderer, event: gdk2.PEvent, 
-                          widget: PWidget, path: cstring, 
-                          background_area: gdk2.PRectangle, 
-                          cell_area: gdk2.PRectangle, flags: TCellRendererState): PCellEditable{.
-        cdecl.}
-    reserved121: proc (){.cdecl.}
-    reserved122: proc (){.cdecl.}
-    reserved123: proc (){.cdecl.}
-    reserved124: proc (){.cdecl.}
-
-  PCellRendererText* = ptr TCellRendererText
-  TCellRendererText* = object of TCellRenderer
-    text*: cstring
-    font*: pango.PFontDescription
-    font_scale*: gdouble
-    foreground*: pango.TColor
-    background*: pango.TColor
-    extra_attrs*: pango.PAttrList
-    underline_style*: pango.TUnderline
-    rise*: gint
-    fixed_height_rows*: gint
-    CellRendererText_flag0*: guint16
-
-  PCellRendererTextClass* = ptr TCellRendererTextClass
-  TCellRendererTextClass* = object of TCellRendererClass
-    edited*: proc (cell_renderer_text: PCellRendererText, path: cstring, 
-                   new_text: cstring){.cdecl.}
-    reserved131: proc (){.cdecl.}
-    reserved132: proc (){.cdecl.}
-    reserved133: proc (){.cdecl.}
-    reserved134: proc (){.cdecl.}
-
-  PCellRendererToggle* = ptr TCellRendererToggle
-  TCellRendererToggle* = object of TCellRenderer
-    CellRendererToggle_flag0*: guint16
-
-  PCellRendererToggleClass* = ptr TCellRendererToggleClass
-  TCellRendererToggleClass* = object of TCellRendererClass
-    toggled*: proc (cell_renderer_toggle: PCellRendererToggle, path: cstring){.
-        cdecl.}
-    reserved141: proc (){.cdecl.}
-    reserved142: proc (){.cdecl.}
-    reserved143: proc (){.cdecl.}
-    reserved144: proc (){.cdecl.}
-
-  PCellRendererPixbuf* = ptr TCellRendererPixbuf
-  TCellRendererPixbuf* = object of TCellRenderer
-    pixbuf*: gdk2pixbuf.PPixbuf
-    pixbuf_expander_open*: gdk2pixbuf.PPixbuf
-    pixbuf_expander_closed*: gdk2pixbuf.PPixbuf
-
-  PCellRendererPixbufClass* = ptr TCellRendererPixbufClass
-  TCellRendererPixbufClass* = object of TCellRendererClass
-    reserved151: proc (){.cdecl.}
-    reserved152: proc (){.cdecl.}
-    reserved153: proc (){.cdecl.}
-    reserved154: proc (){.cdecl.}
-
-  PItem* = ptr TItem
-  TItem* = object of TBin
-  PItemClass* = ptr TItemClass
-  TItemClass* = object of TBinClass
-    select*: proc (item: PItem){.cdecl.}
-    deselect*: proc (item: PItem){.cdecl.}
-    toggle*: proc (item: PItem){.cdecl.}
-    reserved161: proc (){.cdecl.}
-    reserved162: proc (){.cdecl.}
-    reserved163: proc (){.cdecl.}
-    reserved164: proc (){.cdecl.}
-
-  PMenuItem* = ptr TMenuItem
-  TMenuItem* = object of TItem
-    submenu*: PWidget
-    event_window*: gdk2.PWindow
-    toggle_size*: guint16
-    accelerator_width*: guint16
-    accel_path*: cstring
-    MenuItem_flag0*: guint16
-    timer*: guint
-
-  PMenuItemClass* = ptr TMenuItemClass
-  TMenuItemClass* = object of TItemClass
-    MenuItemClass_flag0*: guint16
-    activate*: proc (menu_item: PMenuItem){.cdecl.}
-    activate_item*: proc (menu_item: PMenuItem){.cdecl.}
-    toggle_size_request*: proc (menu_item: PMenuItem, requisition: Pgint){.cdecl.}
-    toggle_size_allocate*: proc (menu_item: PMenuItem, allocation: gint){.cdecl.}
-    reserved171: proc (){.cdecl.}
-    reserved172: proc (){.cdecl.}
-    reserved173: proc (){.cdecl.}
-    reserved174: proc (){.cdecl.}
-
-  PToggleButton* = ptr TToggleButton
-  TToggleButton* = object of TButton
-    ToggleButton_flag0*: guint16
-
-  PToggleButtonClass* = ptr TToggleButtonClass
-  TToggleButtonClass* = object of TButtonClass
-    toggled*: proc (toggle_button: PToggleButton){.cdecl.}
-    reserved171: proc (){.cdecl.}
-    reserved172: proc (){.cdecl.}
-    reserved173: proc (){.cdecl.}
-    reserved174: proc (){.cdecl.}
-
-  PCheckButton* = ptr TCheckButton
-  TCheckButton* = object of TToggleButton
-  PCheckButtonClass* = ptr TCheckButtonClass
-  TCheckButtonClass* = object of TToggleButtonClass
-    draw_indicator*: proc (check_button: PCheckButton, area: gdk2.PRectangle){.
-        cdecl.}
-    reserved181: proc (){.cdecl.}
-    reserved182: proc (){.cdecl.}
-    reserved183: proc (){.cdecl.}
-    reserved184: proc (){.cdecl.}
-
-  PCheckMenuItem* = ptr TCheckMenuItem
-  TCheckMenuItem* = object of TMenuItem
-    CheckMenuItem_flag0*: guint16
-
-  PCheckMenuItemClass* = ptr TCheckMenuItemClass
-  TCheckMenuItemClass* = object of TMenuItemClass
-    toggled*: proc (check_menu_item: PCheckMenuItem){.cdecl.}
-    draw_indicator*: proc (check_menu_item: PCheckMenuItem, area: gdk2.PRectangle){.
-        cdecl.}
-    reserved191: proc (){.cdecl.}
-    reserved192: proc (){.cdecl.}
-    reserved193: proc (){.cdecl.}
-    reserved194: proc (){.cdecl.}
-
-  PClipboard* = pointer
-  TClipboardReceivedFunc* = proc (clipboard: PClipboard, 
-                                  selection_data: PSelectionData, data: gpointer){.
-      cdecl.}
-  TClipboardTextReceivedFunc* = proc (clipboard: PClipboard, text: cstring, 
-                                      data: gpointer){.cdecl.}
-  TClipboardGetFunc* = proc (clipboard: PClipboard, 
-                             selection_data: PSelectionData, info: guint, 
-                             user_data_or_owner: gpointer){.cdecl.}
-  TClipboardClearFunc* = proc (clipboard: PClipboard, 
-                               user_data_or_owner: gpointer){.cdecl.}
-  PCList* = ptr TCList
-  PCListColumn* = ptr TCListColumn
-  PCListRow* = ptr TCListRow
-  PCell* = ptr TCell
-  PCellType* = ptr TCellType
-  TCellType* = enum 
-    CELL_EMPTY, CELL_TEXT, CELL_PIXMAP, CELL_PIXTEXT, CELL_WIDGET
-  PCListDragPos* = ptr TCListDragPos
-  TCListDragPos* = enum 
-    CLIST_DRAG_NONE, CLIST_DRAG_BEFORE, CLIST_DRAG_INTO, CLIST_DRAG_AFTER
-  PButtonAction* = ptr TButtonAction
-  TButtonAction* = int32
-  TCListCompareFunc* = proc (clist: PCList, ptr1: gconstpointer, 
-                             ptr2: gconstpointer): gint{.cdecl.}
-  PCListCellInfo* = ptr TCListCellInfo
-  TCListCellInfo*{.final, pure.} = object 
-    row*: gint
-    column*: gint
-
-  PCListDestInfo* = ptr TCListDestInfo
-  TCListDestInfo*{.final, pure.} = object 
-    cell*: TCListCellInfo
-    insert_pos*: TCListDragPos
-
-  TCList* = object of TContainer
-    CList_flags*: guint16
-    row_mem_chunk*: PGMemChunk
-    cell_mem_chunk*: PGMemChunk
-    freeze_count*: guint
-    internal_allocation*: gdk2.TRectangle
-    rows*: gint
-    row_height*: gint
-    row_list*: PGList
-    row_list_end*: PGList
-    columns*: gint
-    column_title_area*: gdk2.TRectangle
-    title_window*: gdk2.PWindow
-    column*: PCListColumn
-    clist_window*: gdk2.PWindow
-    clist_window_width*: gint
-    clist_window_height*: gint
-    hoffset*: gint
-    voffset*: gint
-    shadow_type*: TShadowType
-    selection_mode*: TSelectionMode
-    selection*: PGList
-    selection_end*: PGList
-    undo_selection*: PGList
-    undo_unselection*: PGList
-    undo_anchor*: gint
-    button_actions*: array[0..4, guint8]
-    drag_button*: guint8
-    click_cell*: TCListCellInfo
-    hadjustment*: PAdjustment
-    vadjustment*: PAdjustment
-    xor_gc*: gdk2.PGC
-    fg_gc*: gdk2.PGC
-    bg_gc*: gdk2.PGC
-    cursor_drag*: gdk2.PCursor
-    x_drag*: gint
-    focus_row*: gint
-    focus_header_column*: gint
-    anchor*: gint
-    anchor_state*: TStateType
-    drag_pos*: gint
-    htimer*: gint
-    vtimer*: gint
-    sort_type*: TSortType
-    compare*: TCListCompareFunc
-    sort_column*: gint
-    drag_highlight_row*: gint
-    drag_highlight_pos*: TCListDragPos
-
-  PCListClass* = ptr TCListClass
-  TCListClass* = object of TContainerClass
-    set_scroll_adjustments*: proc (clist: PCList, hadjustment: PAdjustment, 
-                                   vadjustment: PAdjustment){.cdecl.}
-    refresh*: proc (clist: PCList){.cdecl.}
-    select_row*: proc (clist: PCList, row: gint, column: gint, event: gdk2.PEvent){.
-        cdecl.}
-    unselect_row*: proc (clist: PCList, row: gint, column: gint, 
-                         event: gdk2.PEvent){.cdecl.}
-    row_move*: proc (clist: PCList, source_row: gint, dest_row: gint){.cdecl.}
-    click_column*: proc (clist: PCList, column: gint){.cdecl.}
-    resize_column*: proc (clist: PCList, column: gint, width: gint){.cdecl.}
-    toggle_focus_row*: proc (clist: PCList){.cdecl.}
-    select_all*: proc (clist: PCList){.cdecl.}
-    unselect_all*: proc (clist: PCList){.cdecl.}
-    undo_selection*: proc (clist: PCList){.cdecl.}
-    start_selection*: proc (clist: PCList){.cdecl.}
-    end_selection*: proc (clist: PCList){.cdecl.}
-    extend_selection*: proc (clist: PCList, scroll_type: TScrollType, 
-                             position: gfloat, auto_start_selection: gboolean){.
-        cdecl.}
-    scroll_horizontal*: proc (clist: PCList, scroll_type: TScrollType, 
-                              position: gfloat){.cdecl.}
-    scroll_vertical*: proc (clist: PCList, scroll_type: TScrollType, 
-                            position: gfloat){.cdecl.}
-    toggle_add_mode*: proc (clist: PCList){.cdecl.}
-    abort_column_resize*: proc (clist: PCList){.cdecl.}
-    resync_selection*: proc (clist: PCList, event: gdk2.PEvent){.cdecl.}
-    selection_find*: proc (clist: PCList, row_number: gint, 
-                           row_list_element: PGList): PGList{.cdecl.}
-    draw_row*: proc (clist: PCList, area: gdk2.PRectangle, row: gint, 
-                     clist_row: PCListRow){.cdecl.}
-    draw_drag_highlight*: proc (clist: PCList, target_row: PCListRow, 
-                                target_row_number: gint, drag_pos: TCListDragPos){.
-        cdecl.}
-    clear*: proc (clist: PCList){.cdecl.}
-    fake_unselect_all*: proc (clist: PCList, row: gint){.cdecl.}
-    sort_list*: proc (clist: PCList){.cdecl.}
-    insert_row*: proc (clist: PCList, row: gint): gint{.cdecl, varargs.}
-    remove_row*: proc (clist: PCList, row: gint){.cdecl.}
-    set_cell_contents*: proc (clist: PCList, clist_row: PCListRow, column: gint, 
-                              thetype: TCellType, text: cstring, 
-                              spacing: guint8, pixmap: gdk2.PPixmap, 
-                              mask: gdk2.PBitmap){.cdecl.}
-    cell_size_request*: proc (clist: PCList, clist_row: PCListRow, column: gint, 
-                              requisition: PRequisition){.cdecl.}
-
-  PGPtrArray = pointer
-  PGArray = pointer
-  TCListColumn*{.final, pure.} = object 
-    title*: cstring
-    area*: gdk2.TRectangle
-    button*: PWidget
-    window*: gdk2.PWindow
-    width*: gint
-    min_width*: gint
-    max_width*: gint
-    justification*: TJustification
-    flag0*: guint16
-
-  TCListRow*{.final, pure.} = object 
-    cell*: PCell
-    state*: TStateType
-    foreground*: gdk2.TColor
-    background*: gdk2.TColor
-    style*: PStyle
-    data*: gpointer
-    destroy*: TDestroyNotify
-    flag0*: guint16
-
-  PCellText* = ptr TCellText
-  TCellText*{.final, pure.} = object 
-    `type`*: TCellType
-    vertical*: gint16
-    horizontal*: gint16
-    style*: PStyle
-    text*: cstring
-
-  PCellPixmap* = ptr TCellPixmap
-  TCellPixmap*{.final, pure.} = object 
-    `type`*: TCellType
-    vertical*: gint16
-    horizontal*: gint16
-    style*: PStyle
-    pixmap*: gdk2.PPixmap
-    mask*: gdk2.PBitmap
-
-  PCellPixText* = ptr TCellPixText
-  TCellPixText*{.final, pure.} = object 
-    `type`*: TCellType
-    vertical*: gint16
-    horizontal*: gint16
-    style*: PStyle
-    text*: cstring
-    spacing*: guint8
-    pixmap*: gdk2.PPixmap
-    mask*: gdk2.PBitmap
-
-  PCellWidget* = ptr TCellWidget
-  TCellWidget*{.final, pure.} = object 
-    `type`*: TCellType
-    vertical*: gint16
-    horizontal*: gint16
-    style*: PStyle
-    widget*: PWidget
-
-  TCell*{.final, pure.} = object 
-    `type`*: TCellType
-    vertical*: gint16
-    horizontal*: gint16
-    style*: PStyle
-    text*: cstring
-    spacing*: guint8
-    pixmap*: gdk2.PPixmap
-    mask*: gdk2.PBitmap
-
-  PDialogFlags* = ptr TDialogFlags
-  TDialogFlags* = int32
-  PResponseType* = ptr TResponseType
-  TResponseType* = int32
-  PDialog* = ptr TDialog
-  TDialog* = object of TWindow
-    vbox*: PBox
-    action_area*: PWidget
-    separator*: PWidget
-
-  PDialogClass* = ptr TDialogClass
-  TDialogClass* = object of TWindowClass
-    response*: proc (dialog: PDialog, response_id: gint){.cdecl.}
-    closeFile*: proc (dialog: PDialog){.cdecl.}
-    reserved201: proc (){.cdecl.}
-    reserved202: proc (){.cdecl.}
-    reserved203: proc (){.cdecl.}
-    reserved204: proc (){.cdecl.}
-
-  PVBox* = ptr TVBox
-  TVBox* = object of TBox
-  PVBoxClass* = ptr TVBoxClass
-  TVBoxClass* = object of TBoxClass
-  TColorSelectionChangePaletteFunc* = proc (colors: gdk2.PColor, n_colors: gint){.
-      cdecl.}
-  TColorSelectionChangePaletteWithScreenFunc* = proc (screen: gdk2.PScreen, 
-      colors: gdk2.PColor, n_colors: gint){.cdecl.}
-  PColorSelection* = ptr TColorSelection
-  TColorSelection* = object of TVBox
-    private_data*: gpointer
-
-  PColorSelectionClass* = ptr TColorSelectionClass
-  TColorSelectionClass* = object of TVBoxClass
-    color_changed*: proc (color_selection: PColorSelection){.cdecl.}
-    reserved211: proc (){.cdecl.}
-    reserved212: proc (){.cdecl.}
-    reserved213: proc (){.cdecl.}
-    reserved214: proc (){.cdecl.}
-
-  PColorSelectionDialog* = ptr TColorSelectionDialog
-  TColorSelectionDialog* = object of TDialog
-    colorsel*: PWidget
-    ok_button*: PWidget
-    cancel_button*: PWidget
-    help_button*: PWidget
-
-  PColorSelectionDialogClass* = ptr TColorSelectionDialogClass
-  TColorSelectionDialogClass* = object of TDialogClass
-    reserved221: proc (){.cdecl.}
-    reserved222: proc (){.cdecl.}
-    reserved223: proc (){.cdecl.}
-    reserved224: proc (){.cdecl.}
-
-  PHBox* = ptr THBox
-  THBox* = object of TBox
-  PHBoxClass* = ptr THBoxClass
-  THBoxClass* = object of TBoxClass
-  PCombo* = ptr TCombo
-  TCombo* = object of THBox
-    entry*: PWidget
-    button*: PWidget
-    popup*: PWidget
-    popwin*: PWidget
-    list*: PWidget
-    entry_change_id*: guint
-    list_change_id*: guint
-    Combo_flag0*: guint16
-    current_button*: guint16
-    activate_id*: guint
-
-  PComboClass* = ptr TComboClass
-  TComboClass* = object of THBoxClass
-    reserved231: proc (){.cdecl.}
-    reserved232: proc (){.cdecl.}
-    reserved233: proc (){.cdecl.}
-    reserved234: proc (){.cdecl.}
-
-  PCTreePos* = ptr TCTreePos
-  TCTreePos* = enum 
-    CTREE_POS_BEFORE, CTREE_POS_AS_CHILD, CTREE_POS_AFTER
-  PCTreeLineStyle* = ptr TCTreeLineStyle
-  TCTreeLineStyle* = enum 
-    CTREE_LINES_NONE, CTREE_LINES_SOLID, CTREE_LINES_DOTTED, CTREE_LINES_TABBED
-  PCTreeExpanderStyle* = ptr TCTreeExpanderStyle
-  TCTreeExpanderStyle* = enum 
-    CTREE_EXPANDER_NONE, CTREE_EXPANDER_SQUARE, CTREE_EXPANDER_TRIANGLE, 
-    CTREE_EXPANDER_CIRCULAR
-  PCTreeExpansionType* = ptr TCTreeExpansionType
-  TCTreeExpansionType* = enum 
-    CTREE_EXPANSION_EXPAND, CTREE_EXPANSION_EXPAND_RECURSIVE, 
-    CTREE_EXPANSION_COLLAPSE, CTREE_EXPANSION_COLLAPSE_RECURSIVE, 
-    CTREE_EXPANSION_TOGGLE, CTREE_EXPANSION_TOGGLE_RECURSIVE
-  PCTree* = ptr TCTree
-  PCTreeNode* = ptr TCTreeNode
-  TCTreeFunc* = proc (ctree: PCTree, node: PCTreeNode, data: gpointer){.cdecl.}
-  TCTreeGNodeFunc* = proc (ctree: PCTree, depth: guint, gnode: PGNode, 
-                           cnode: PCTreeNode, data: gpointer): gboolean{.cdecl.}
-  TCTreeCompareDragFunc* = proc (ctree: PCTree, source_node: PCTreeNode, 
-                                 new_parent: PCTreeNode, new_sibling: PCTreeNode): gboolean{.
-      cdecl.}
-  TCTree* = object of TCList
-    lines_gc*: gdk2.PGC
-    tree_indent*: gint
-    tree_spacing*: gint
-    tree_column*: gint
-    CTree_flag0*: guint16
-    drag_compare*: TCTreeCompareDragFunc
-
-  PCTreeClass* = ptr TCTreeClass
-  TCTreeClass* = object of TCListClass
-    tree_select_row*: proc (ctree: PCTree, row: PCTreeNode, column: gint){.cdecl.}
-    tree_unselect_row*: proc (ctree: PCTree, row: PCTreeNode, column: gint){.
-        cdecl.}
-    tree_expand*: proc (ctree: PCTree, node: PCTreeNode){.cdecl.}
-    tree_collapse*: proc (ctree: PCTree, node: PCTreeNode){.cdecl.}
-    tree_move*: proc (ctree: PCTree, node: PCTreeNode, new_parent: PCTreeNode, 
-                      new_sibling: PCTreeNode){.cdecl.}
-    change_focus_row_expansion*: proc (ctree: PCTree, 
-                                       action: TCTreeExpansionType){.cdecl.}
-
-  PCTreeRow* = ptr TCTreeRow
-  TCTreeRow*{.final, pure.} = object 
-    row*: TCListRow
-    parent*: PCTreeNode
-    sibling*: PCTreeNode
-    children*: PCTreeNode
-    pixmap_closed*: gdk2.PPixmap
-    mask_closed*: gdk2.PBitmap
-    pixmap_opened*: gdk2.PPixmap
-    mask_opened*: gdk2.PBitmap
-    level*: guint16
-    CTreeRow_flag0*: guint16
-
-  TCTreeNode*{.final, pure.} = object 
-    list*: TGList
-
-  PDrawingArea* = ptr TDrawingArea
-  TDrawingArea* = object of TWidget
-    draw_data*: gpointer
-
-  PDrawingAreaClass* = ptr TDrawingAreaClass
-  TDrawingAreaClass* = object of TWidgetClass
-    reserved241: proc (){.cdecl.}
-    reserved242: proc (){.cdecl.}
-    reserved243: proc (){.cdecl.}
-    reserved244: proc (){.cdecl.}
-
-  Tctlpoint* = array[0..1, gfloat]
-  Pctlpoint* = ptr Tctlpoint
-  PCurve* = ptr TCurve
-  TCurve* = object of TDrawingArea
-    cursor_type*: gint
-    min_x*: gfloat
-    max_x*: gfloat
-    min_y*: gfloat
-    max_y*: gfloat
-    pixmap*: gdk2.PPixmap
-    curve_type*: TCurveType
-    height*: gint
-    grab_point*: gint
-    last*: gint
-    num_points*: gint
-    point*: gdk2.PPoint
-    num_ctlpoints*: gint
-    ctlpoint*: Pctlpoint
-
-  PCurveClass* = ptr TCurveClass
-  TCurveClass* = object of TDrawingAreaClass
-    curve_type_changed*: proc (curve: PCurve){.cdecl.}
-    reserved251: proc (){.cdecl.}
-    reserved252: proc (){.cdecl.}
-    reserved253: proc (){.cdecl.}
-    reserved254: proc (){.cdecl.}
-
-  PDestDefaults* = ptr TDestDefaults
-  TDestDefaults* = int32
-  PTargetFlags* = ptr TTargetFlags
-  TTargetFlags* = int32
-  PEditable* = pointer
-  PEditableClass* = ptr TEditableClass
-  TEditableClass* = object of TGTypeInterface
-    insert_text*: proc (editable: PEditable, text: cstring, length: gint, 
-                        position: Pgint){.cdecl.}
-    delete_text*: proc (editable: PEditable, start_pos: gint, end_pos: gint){.
-        cdecl.}
-    changed*: proc (editable: PEditable){.cdecl.}
-    do_insert_text*: proc (editable: PEditable, text: cstring, length: gint, 
-                           position: Pgint){.cdecl.}
-    do_delete_text*: proc (editable: PEditable, start_pos: gint, end_pos: gint){.
-        cdecl.}
-    get_chars*: proc (editable: PEditable, start_pos: gint, end_pos: gint): cstring{.
-        cdecl.}
-    set_selection_bounds*: proc (editable: PEditable, start_pos: gint, 
-                                 end_pos: gint){.cdecl.}
-    get_selection_bounds*: proc (editable: PEditable, start_pos: Pgint, 
-                                 end_pos: Pgint): gboolean{.cdecl.}
-    set_position*: proc (editable: PEditable, position: gint){.cdecl.}
-    get_position*: proc (editable: PEditable): gint{.cdecl.}
-
-  PIMContext* = ptr TIMContext
-  TIMContext* = object of TGObject
-  PIMContextClass* = ptr TIMContextClass
-  TIMContextClass* = object of TObjectClass
-    preedit_start*: proc (context: PIMContext){.cdecl.}
-    preedit_end*: proc (context: PIMContext){.cdecl.}
-    preedit_changed*: proc (context: PIMContext){.cdecl.}
-    commit*: proc (context: PIMContext, str: cstring){.cdecl.}
-    retrieve_surrounding*: proc (context: PIMContext): gboolean{.cdecl.}
-    delete_surrounding*: proc (context: PIMContext, offset: gint, n_chars: gint): gboolean{.
-        cdecl.}
-    set_client_window*: proc (context: PIMContext, window: gdk2.PWindow){.cdecl.}
-    get_preedit_string*: proc (context: PIMContext, str: PPgchar, 
-                               attrs: var pango.PAttrList, cursor_pos: Pgint){.
-        cdecl.}
-    filter_keypress*: proc (context: PIMContext, event: gdk2.PEventKey): gboolean{.
-        cdecl.}
-    focus_in*: proc (context: PIMContext){.cdecl.}
-    focus_out*: proc (context: PIMContext){.cdecl.}
-    reset*: proc (context: PIMContext){.cdecl.}
-    set_cursor_location*: proc (context: PIMContext, area: gdk2.PRectangle){.cdecl.}
-    set_use_preedit*: proc (context: PIMContext, use_preedit: gboolean){.cdecl.}
-    set_surrounding*: proc (context: PIMContext, text: cstring, len: gint, 
-                            cursor_index: gint){.cdecl.}
-    get_surrounding*: proc (context: PIMContext, text: PPgchar, 
-                            cursor_index: Pgint): gboolean{.cdecl.}
-    reserved261: proc (){.cdecl.}
-    reserved262: proc (){.cdecl.}
-    reserved263: proc (){.cdecl.}
-    reserved264: proc (){.cdecl.}
-    reserved265: proc (){.cdecl.}
-    reserved266: proc (){.cdecl.}
-
-  PMenuShell* = ptr TMenuShell
-  TMenuShell* = object of TContainer
-    children*: PGList
-    active_menu_item*: PWidget
-    parent_menu_shell*: PWidget
-    button*: guint
-    activate_time*: guint32
-    MenuShell_flag0*: guint16
-
-  PMenuShellClass* = ptr TMenuShellClass
-  TMenuShellClass* = object of TContainerClass
-    MenuShellClass_flag0*: guint16
-    deactivate*: proc (menu_shell: PMenuShell){.cdecl.}
-    selection_done*: proc (menu_shell: PMenuShell){.cdecl.}
-    move_current*: proc (menu_shell: PMenuShell, direction: TMenuDirectionType){.
-        cdecl.}
-    activate_current*: proc (menu_shell: PMenuShell, force_hide: gboolean){.
-        cdecl.}
-    cancel*: proc (menu_shell: PMenuShell){.cdecl.}
-    select_item*: proc (menu_shell: PMenuShell, menu_item: PWidget){.cdecl.}
-    insert*: proc (menu_shell: PMenuShell, child: PWidget, position: gint){.
-        cdecl.}
-    reserved271: proc (){.cdecl.}
-    reserved272: proc (){.cdecl.}
-    reserved273: proc (){.cdecl.}
-    reserved274: proc (){.cdecl.}
-
-  TMenuPositionFunc* = proc (menu: PMenu, x: Pgint, y: Pgint, 
-                             push_in: Pgboolean, user_data: gpointer){.cdecl.}
-  TMenuDetachFunc* = proc (attach_widget: PWidget, menu: PMenu){.cdecl.}
-  TMenu* = object of TMenuShell
-    parent_menu_item*: PWidget
-    old_active_menu_item*: PWidget
-    accel_group*: PAccelGroup
-    accel_path*: cstring
-    position_func*: TMenuPositionFunc
-    position_func_data*: gpointer
-    toggle_size*: guint
-    toplevel*: PWidget
-    tearoff_window*: PWidget
-    tearoff_hbox*: PWidget
-    tearoff_scrollbar*: PWidget
-    tearoff_adjustment*: PAdjustment
-    view_window*: gdk2.PWindow
-    bin_window*: gdk2.PWindow
-    scroll_offset*: gint
-    saved_scroll_offset*: gint
-    scroll_step*: gint
-    timeout_id*: guint
-    navigation_region*: gdk2.PRegion
-    navigation_timeout*: guint
-    Menu_flag0*: guint16
-
-  PMenuClass* = ptr TMenuClass
-  TMenuClass* = object of TMenuShellClass
-    reserved281: proc (){.cdecl.}
-    reserved282: proc (){.cdecl.}
-    reserved283: proc (){.cdecl.}
-    reserved284: proc (){.cdecl.}
-
-  PEntry* = ptr TEntry
-  TEntry* = object of TWidget
-    text*: cstring
-    Entry_flag0*: guint16
-    text_length*: guint16
-    text_max_length*: guint16
-    text_area*: gdk2.PWindow
-    im_context*: PIMContext
-    popup_menu*: PWidget
-    current_pos*: gint
-    selection_bound*: gint
-    cached_layout*: pango.PLayout
-    flag1*: guint16
-    button*: guint
-    blink_timeout*: guint
-    recompute_idle*: guint
-    scroll_offset*: gint
-    ascent*: gint
-    descent*: gint
-    text_size*: guint16
-    n_bytes*: guint16
-    preedit_length*: guint16
-    preedit_cursor*: guint16
-    dnd_position*: gint
-    drag_start_x*: gint
-    drag_start_y*: gint
-    invisible_char*: gunichar
-    width_chars*: gint
-
-  PEntryClass* = ptr TEntryClass
-  TEntryClass* = object of TWidgetClass
-    populate_popup*: proc (entry: PEntry, menu: PMenu){.cdecl.}
-    activate*: proc (entry: PEntry){.cdecl.}
-    move_cursor*: proc (entry: PEntry, step: TMovementStep, count: gint, 
-                        extend_selection: gboolean){.cdecl.}
-    insert_at_cursor*: proc (entry: PEntry, str: cstring){.cdecl.}
-    delete_from_cursor*: proc (entry: PEntry, thetype: TDeleteType, count: gint){.
-        cdecl.}
-    cut_clipboard*: proc (entry: PEntry){.cdecl.}
-    copy_clipboard*: proc (entry: PEntry){.cdecl.}
-    paste_clipboard*: proc (entry: PEntry){.cdecl.}
-    toggle_overwrite*: proc (entry: PEntry){.cdecl.}
-    reserved291: proc (){.cdecl.}
-    reserved292: proc (){.cdecl.}
-    reserved293: proc (){.cdecl.}
-    reserved294: proc (){.cdecl.}
-
-  PEventBox* = ptr TEventBox
-  TEventBox* = object of TBin
-  PEventBoxClass* = ptr TEventBoxClass
-  TEventBoxClass* = object of TBinClass
-  PFileSelection* = ptr TFileSelection
-  TFileSelection* = object of TDialog
-    dir_list*: PWidget
-    file_list*: PWidget
-    selection_entry*: PWidget
-    selection_text*: PWidget
-    main_vbox*: PWidget
-    ok_button*: PWidget
-    cancel_button*: PWidget
-    help_button*: PWidget
-    history_pulldown*: PWidget
-    history_menu*: PWidget
-    history_list*: PGList
-    fileop_dialog*: PWidget
-    fileop_entry*: PWidget
-    fileop_file*: cstring
-    cmpl_state*: gpointer
-    fileop_c_dir*: PWidget
-    fileop_del_file*: PWidget
-    fileop_ren_file*: PWidget
-    button_area*: PWidget
-    FileSelection_action_area*: PWidget
-    selected_names*: PGPtrArray
-    last_selected*: cstring
-
-  PFileSelectionClass* = ptr TFileSelectionClass
-  TFileSelectionClass* = object of TDialogClass
-    reserved301: proc (){.cdecl.}
-    reserved302: proc (){.cdecl.}
-    reserved303: proc (){.cdecl.}
-    reserved304: proc (){.cdecl.}
-
-  PFixed* = ptr TFixed
-  TFixed* = object of TContainer
-    children*: PGList
-
-  PFixedClass* = ptr TFixedClass
-  TFixedClass* = object of TContainerClass
-  PFixedChild* = ptr TFixedChild
-  TFixedChild*{.final, pure.} = object 
-    widget*: PWidget
-    x*: gint
-    y*: gint
-
-  PFontSelection* = ptr TFontSelection
-  TFontSelection* = object of TVBox
-    font_entry*: PWidget
-    family_list*: PWidget
-    font_style_entry*: PWidget
-    face_list*: PWidget
-    size_entry*: PWidget
-    size_list*: PWidget
-    pixels_button*: PWidget
-    points_button*: PWidget
-    filter_button*: PWidget
-    preview_entry*: PWidget
-    family*: pango.PFontFamily
-    face*: pango.PFontFace
-    size*: gint
-    font*: gdk2.PFont
-
-  PFontSelectionClass* = ptr TFontSelectionClass
-  TFontSelectionClass* = object of TVBoxClass
-    reserved311: proc (){.cdecl.}
-    reserved312: proc (){.cdecl.}
-    reserved313: proc (){.cdecl.}
-    reserved314: proc (){.cdecl.}
-
-  PFontSelectionDialog* = ptr TFontSelectionDialog
-  TFontSelectionDialog* = object of TDialog
-    fontsel*: PWidget
-    main_vbox*: PWidget
-    FontSelectionDialog_action_area*: PWidget
-    ok_button*: PWidget
-    apply_button*: PWidget
-    cancel_button*: PWidget
-    dialog_width*: gint
-    auto_resize*: gboolean
-
-  PFontSelectionDialogClass* = ptr TFontSelectionDialogClass
-  TFontSelectionDialogClass* = object of TDialogClass
-    reserved321: proc (){.cdecl.}
-    reserved322: proc (){.cdecl.}
-    reserved323: proc (){.cdecl.}
-    reserved324: proc (){.cdecl.}
-
-  PGammaCurve* = ptr TGammaCurve
-  TGammaCurve* = object of TVBox
-    table*: PWidget
-    curve*: PWidget
-    button*: array[0..4, PWidget]
-    gamma*: gfloat
-    gamma_dialog*: PWidget
-    gamma_text*: PWidget
-
-  PGammaCurveClass* = ptr TGammaCurveClass
-  TGammaCurveClass* = object of TVBoxClass
-    reserved331: proc (){.cdecl.}
-    reserved332: proc (){.cdecl.}
-    reserved333: proc (){.cdecl.}
-    reserved334: proc (){.cdecl.}
-
-  PHandleBox* = ptr THandleBox
-  THandleBox* = object of TBin
-    bin_window*: gdk2.PWindow
-    float_window*: gdk2.PWindow
-    shadow_type*: TShadowType
-    HandleBox_flag0*: guint16
-    deskoff_x*: gint
-    deskoff_y*: gint
-    attach_allocation*: TAllocation
-    float_allocation*: TAllocation
-
-  PHandleBoxClass* = ptr THandleBoxClass
-  THandleBoxClass* = object of TBinClass
-    child_attached*: proc (handle_box: PHandleBox, child: PWidget){.cdecl.}
-    child_detached*: proc (handle_box: PHandleBox, child: PWidget){.cdecl.}
-    reserved341: proc (){.cdecl.}
-    reserved342: proc (){.cdecl.}
-    reserved343: proc (){.cdecl.}
-    reserved344: proc (){.cdecl.}
-
-  PPaned* = ptr TPaned
-  TPaned* = object of TContainer
-    child1*: PWidget
-    child2*: PWidget
-    handle*: gdk2.PWindow
-    xor_gc*: gdk2.PGC
-    cursor_type*: gdk2.TCursorType
-    handle_pos*: gdk2.TRectangle
-    child1_size*: gint
-    last_allocation*: gint
-    min_position*: gint
-    max_position*: gint
-    Paned_flag0*: guint16
-    last_child1_focus*: PWidget
-    last_child2_focus*: PWidget
-    saved_focus*: PWidget
-    drag_pos*: gint
-    original_position*: gint
-
-  PPanedClass* = ptr TPanedClass
-  TPanedClass* = object of TContainerClass
-    cycle_child_focus*: proc (paned: PPaned, reverse: gboolean): gboolean{.cdecl.}
-    toggle_handle_focus*: proc (paned: PPaned): gboolean{.cdecl.}
-    move_handle*: proc (paned: PPaned, scroll: TScrollType): gboolean{.cdecl.}
-    cycle_handle_focus*: proc (paned: PPaned, reverse: gboolean): gboolean{.
-        cdecl.}
-    accept_position*: proc (paned: PPaned): gboolean{.cdecl.}
-    cancel_position*: proc (paned: PPaned): gboolean{.cdecl.}
-    reserved351: proc (){.cdecl.}
-    reserved352: proc (){.cdecl.}
-    reserved353: proc (){.cdecl.}
-    reserved354: proc (){.cdecl.}
-
-  PHButtonBox* = ptr THButtonBox
-  THButtonBox* = object of TButtonBox
-  PHButtonBoxClass* = ptr THButtonBoxClass
-  THButtonBoxClass* = object of TButtonBoxClass
-  PHPaned* = ptr THPaned
-  THPaned* = object of TPaned
-  PHPanedClass* = ptr THPanedClass
-  THPanedClass* = object of TPanedClass
-  PRulerMetric* = ptr TRulerMetric
-  PRuler* = ptr TRuler
-  TRuler* = object of TWidget
-    backing_store*: gdk2.PPixmap
-    non_gr_exp_gc*: gdk2.PGC
-    metric*: PRulerMetric
-    xsrc*: gint
-    ysrc*: gint
-    slider_size*: gint
-    lower*: gdouble
-    upper*: gdouble
-    position*: gdouble
-    max_size*: gdouble
-
-  PRulerClass* = ptr TRulerClass
-  TRulerClass* = object of TWidgetClass
-    draw_ticks*: proc (ruler: PRuler){.cdecl.}
-    draw_pos*: proc (ruler: PRuler){.cdecl.}
-    reserved361: proc (){.cdecl.}
-    reserved362: proc (){.cdecl.}
-    reserved363: proc (){.cdecl.}
-    reserved364: proc (){.cdecl.}
-
-  TRulerMetric*{.final, pure.} = object 
-    metric_name*: cstring
-    abbrev*: cstring
-    pixels_per_unit*: gdouble
-    ruler_scale*: array[0..9, gdouble]
-    subdivide*: array[0..4, gint]
-
-  PHRuler* = ptr THRuler
-  THRuler* = object of TRuler
-  PHRulerClass* = ptr THRulerClass
-  THRulerClass* = object of TRulerClass
-  PRcContext* = pointer
-  PSettings* = ptr TSettings
-  TSettings* = object of TGObject
-    queued_settings*: PGData
-    property_values*: PGValue
-    rc_context*: PRcContext
-    screen*: gdk2.PScreen
-
-  PSettingsClass* = ptr TSettingsClass
-  TSettingsClass* = object of TGObjectClass
-  PSettingsValue* = ptr TSettingsValue
-  TSettingsValue*{.final, pure.} = object 
-    origin*: cstring
-    value*: TGValue
-
-  PRcFlags* = ptr TRcFlags
-  TRcFlags* = int32
-  PRcStyle* = ptr TRcStyle
-  TRcStyle* = object of TGObject
-    name*: cstring
-    bg_pixmap_name*: array[0..4, cstring]
-    font_desc*: pango.PFontDescription
-    color_flags*: array[0..4, TRcFlags]
-    fg*: array[0..4, gdk2.TColor]
-    bg*: array[0..4, gdk2.TColor]
-    text*: array[0..4, gdk2.TColor]
-    base*: array[0..4, gdk2.TColor]
-    xthickness*: gint
-    ythickness*: gint
-    rc_properties*: PGArray
-    rc_style_lists*: PGSList
-    icon_factories*: PGSList
-    RcStyle_flag0*: guint16
-
-  PRcStyleClass* = ptr TRcStyleClass
-  TRcStyleClass* = object of TGObjectClass
-    create_rc_style*: proc (rc_style: PRcStyle): PRcStyle{.cdecl.}
-    parse*: proc (rc_style: PRcStyle, settings: PSettings, scanner: PGScanner): guint{.
-        cdecl.}
-    merge*: proc (dest: PRcStyle, src: PRcStyle){.cdecl.}
-    create_style*: proc (rc_style: PRcStyle): PStyle{.cdecl.}
-    reserved371: proc (){.cdecl.}
-    reserved372: proc (){.cdecl.}
-    reserved373: proc (){.cdecl.}
-    reserved374: proc (){.cdecl.}
-
-  PRcTokenType* = ptr TRcTokenType
-  TRcTokenType* = enum 
-    RC_TOKEN_INVALID, RC_TOKEN_INCLUDE, RC_TOKEN_NORMAL, RC_TOKEN_ACTIVE, 
-    RC_TOKEN_PRELIGHT, RC_TOKEN_SELECTED, RC_TOKEN_INSENSITIVE, RC_TOKEN_FG, 
-    RC_TOKEN_BG, RC_TOKEN_TEXT, RC_TOKEN_BASE, RC_TOKEN_XTHICKNESS, 
-    RC_TOKEN_YTHICKNESS, RC_TOKEN_FONT, RC_TOKEN_FONTSET, RC_TOKEN_FONT_NAME, 
-    RC_TOKEN_BG_PIXMAP, RC_TOKEN_PIXMAP_PATH, RC_TOKEN_STYLE, RC_TOKEN_BINDING, 
-    RC_TOKEN_BIND, RC_TOKEN_WIDGET, RC_TOKEN_WIDGET_CLASS, RC_TOKEN_CLASS, 
-    RC_TOKEN_LOWEST, RC_TOKEN_GTK, RC_TOKEN_APPLICATION, RC_TOKEN_THEME, 
-    RC_TOKEN_RC, RC_TOKEN_HIGHEST, RC_TOKEN_ENGINE, RC_TOKEN_MODULE_PATH, 
-    RC_TOKEN_IM_MODULE_PATH, RC_TOKEN_IM_MODULE_FILE, RC_TOKEN_STOCK, 
-    RC_TOKEN_LTR, RC_TOKEN_RTL, RC_TOKEN_LAST
-  PRcProperty* = ptr TRcProperty
-  TRcProperty*{.final, pure.} = object 
-    type_name*: TGQuark
-    property_name*: TGQuark
-    origin*: cstring
-    value*: TGValue
-
-  PIconSource* = pointer
-  TRcPropertyParser* = proc (pspec: PGParamSpec, rc_string: PGString, 
-                             property_value: PGValue): gboolean{.cdecl.}
-  TStyle* = object of TGObject
-    fg*: array[0..4, gdk2.TColor]
-    bg*: array[0..4, gdk2.TColor]
-    light*: array[0..4, gdk2.TColor]
-    dark*: array[0..4, gdk2.TColor]
-    mid*: array[0..4, gdk2.TColor]
-    text*: array[0..4, gdk2.TColor]
-    base*: array[0..4, gdk2.TColor]
-    text_aa*: array[0..4, gdk2.TColor]
-    black*: gdk2.TColor
-    white*: gdk2.TColor
-    font_desc*: pango.PFontDescription
-    xthickness*: gint
-    ythickness*: gint
-    fg_gc*: array[0..4, gdk2.PGC]
-    bg_gc*: array[0..4, gdk2.PGC]
-    light_gc*: array[0..4, gdk2.PGC]
-    dark_gc*: array[0..4, gdk2.PGC]
-    mid_gc*: array[0..4, gdk2.PGC]
-    text_gc*: array[0..4, gdk2.PGC]
-    base_gc*: array[0..4, gdk2.PGC]
-    text_aa_gc*: array[0..4, gdk2.PGC]
-    black_gc*: gdk2.PGC
-    white_gc*: gdk2.PGC
-    bg_pixmap*: array[0..4, gdk2.PPixmap]
-    attach_count*: gint
-    depth*: gint
-    colormap*: gdk2.PColormap
-    private_font*: gdk2.PFont
-    private_font_desc*: pango.PFontDescription
-    rc_style*: PRcStyle
-    styles*: PGSList
-    property_cache*: PGArray
-    icon_factories*: PGSList
-
-  PStyleClass* = ptr TStyleClass
-  TStyleClass* = object of TGObjectClass
-    realize*: proc (style: PStyle){.cdecl.}
-    unrealize*: proc (style: PStyle){.cdecl.}
-    copy*: proc (style: PStyle, src: PStyle){.cdecl.}
-    clone*: proc (style: PStyle): PStyle{.cdecl.}
-    init_from_rc*: proc (style: PStyle, rc_style: PRcStyle){.cdecl.}
-    set_background*: proc (style: PStyle, window: gdk2.PWindow, 
-                           state_type: TStateType){.cdecl.}
-    render_icon*: proc (style: PStyle, source: PIconSource, 
-                        direction: TTextDirection, state: TStateType, 
-                        size: TIconSize, widget: PWidget, detail: cstring): gdk2pixbuf.PPixbuf{.
-        cdecl.}
-    draw_hline*: proc (style: PStyle, window: gdk2.PWindow, 
-                       state_type: TStateType, area: gdk2.PRectangle, 
-                       widget: PWidget, detail: cstring, x1: gint, x2: gint, 
-                       y: gint){.cdecl.}
-    draw_vline*: proc (style: PStyle, window: gdk2.PWindow, 
-                       state_type: TStateType, area: gdk2.PRectangle, 
-                       widget: PWidget, detail: cstring, y1: gint, y2: gint, 
-                       x: gint){.cdecl.}
-    draw_shadow*: proc (style: PStyle, window: gdk2.PWindow, 
-                        state_type: TStateType, shadow_type: TShadowType, 
-                        area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                        x: gint, y: gint, width: gint, height: gint){.cdecl.}
-    draw_polygon*: proc (style: PStyle, window: gdk2.PWindow, 
-                         state_type: TStateType, shadow_type: TShadowType, 
-                         area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                         point: gdk2.PPoint, npoints: gint, fill: gboolean){.cdecl.}
-    draw_arrow*: proc (style: PStyle, window: gdk2.PWindow, 
-                       state_type: TStateType, shadow_type: TShadowType, 
-                       area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                       arrow_type: TArrowType, fill: gboolean, x: gint, y: gint, 
-                       width: gint, height: gint){.cdecl.}
-    draw_diamond*: proc (style: PStyle, window: gdk2.PWindow, 
-                         state_type: TStateType, shadow_type: TShadowType, 
-                         area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                         x: gint, y: gint, width: gint, height: gint){.cdecl.}
-    draw_string*: proc (style: PStyle, window: gdk2.PWindow, 
-                        state_type: TStateType, area: gdk2.PRectangle, 
-                        widget: PWidget, detail: cstring, x: gint, y: gint, 
-                        `string`: cstring){.cdecl.}
-    draw_box*: proc (style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                     shadow_type: TShadowType, area: gdk2.PRectangle, 
-                     widget: PWidget, detail: cstring, x: gint, y: gint, 
-                     width: gint, height: gint){.cdecl.}
-    draw_flat_box*: proc (style: PStyle, window: gdk2.PWindow, 
-                          state_type: TStateType, shadow_type: TShadowType, 
-                          area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                          x: gint, y: gint, width: gint, height: gint){.cdecl.}
-    draw_check*: proc (style: PStyle, window: gdk2.PWindow, 
-                       state_type: TStateType, shadow_type: TShadowType, 
-                       area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                       x: gint, y: gint, width: gint, height: gint){.cdecl.}
-    draw_option*: proc (style: PStyle, window: gdk2.PWindow, 
-                        state_type: TStateType, shadow_type: TShadowType, 
-                        area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                        x: gint, y: gint, width: gint, height: gint){.cdecl.}
-    draw_tab*: proc (style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                     shadow_type: TShadowType, area: gdk2.PRectangle, 
-                     widget: PWidget, detail: cstring, x: gint, y: gint, 
-                     width: gint, height: gint){.cdecl.}
-    draw_shadow_gap*: proc (style: PStyle, window: gdk2.PWindow, 
-                            state_type: TStateType, shadow_type: TShadowType, 
-                            area: gdk2.PRectangle, widget: PWidget, 
-                            detail: cstring, x: gint, y: gint, width: gint, 
-                            height: gint, gap_side: TPositionType, gap_x: gint, 
-                            gap_width: gint){.cdecl.}
-    draw_box_gap*: proc (style: PStyle, window: gdk2.PWindow, 
-                         state_type: TStateType, shadow_type: TShadowType, 
-                         area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                         x: gint, y: gint, width: gint, height: gint, 
-                         gap_side: TPositionType, gap_x: gint, gap_width: gint){.
-        cdecl.}
-    draw_extension*: proc (style: PStyle, window: gdk2.PWindow, 
-                           state_type: TStateType, shadow_type: TShadowType, 
-                           area: gdk2.PRectangle, widget: PWidget, 
-                           detail: cstring, x: gint, y: gint, width: gint, 
-                           height: gint, gap_side: TPositionType){.cdecl.}
-    draw_focus*: proc (style: PStyle, window: gdk2.PWindow, 
-                       state_type: TStateType, area: gdk2.PRectangle, 
-                       widget: PWidget, detail: cstring, x: gint, y: gint, 
-                       width: gint, height: gint){.cdecl.}
-    draw_slider*: proc (style: PStyle, window: gdk2.PWindow, 
-                        state_type: TStateType, shadow_type: TShadowType, 
-                        area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                        x: gint, y: gint, width: gint, height: gint, 
-                        orientation: TOrientation){.cdecl.}
-    draw_handle*: proc (style: PStyle, window: gdk2.PWindow, 
-                        state_type: TStateType, shadow_type: TShadowType, 
-                        area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                        x: gint, y: gint, width: gint, height: gint, 
-                        orientation: TOrientation){.cdecl.}
-    draw_expander*: proc (style: PStyle, window: gdk2.PWindow, 
-                          state_type: TStateType, area: gdk2.PRectangle, 
-                          widget: PWidget, detail: cstring, x: gint, y: gint, 
-                          expander_style: TExpanderStyle){.cdecl.}
-    draw_layout*: proc (style: PStyle, window: gdk2.PWindow, 
-                        state_type: TStateType, use_text: gboolean, 
-                        area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                        x: gint, y: gint, layout: pango.PLayout){.cdecl.}
-    draw_resize_grip*: proc (style: PStyle, window: gdk2.PWindow, 
-                             state_type: TStateType, area: gdk2.PRectangle, 
-                             widget: PWidget, detail: cstring, 
-                             edge: gdk2.TWindowEdge, x: gint, y: gint, 
-                             width: gint, height: gint){.cdecl.}
-    reserved381: proc (){.cdecl.}
-    reserved382: proc (){.cdecl.}
-    reserved383: proc (){.cdecl.}
-    reserved384: proc (){.cdecl.}
-    reserved385: proc (){.cdecl.}
-    reserved386: proc (){.cdecl.}
-    reserved387: proc (){.cdecl.}
-    reserved388: proc (){.cdecl.}
-    reserved389: proc (){.cdecl.}
-    reserved3810: proc (){.cdecl.}
-    reserved3811: proc (){.cdecl.}
-    reserved3812: proc (){.cdecl.}
-
-  PBorder* = ptr TBorder
-  TBorder*{.final, pure.} = object 
-    left*: gint
-    right*: gint
-    top*: gint
-    bottom*: gint
-
-  PRangeLayout* = pointer
-  PRangeStepTimer* = pointer
-  PRange* = ptr TRange
-  TRange* = object of TWidget
-    adjustment*: PAdjustment
-    update_policy*: TUpdateType
-    Range_flag0*: guint16
-    min_slider_size*: gint
-    orientation*: TOrientation
-    range_rect*: gdk2.TRectangle
-    slider_start*: gint
-    slider_end*: gint
-    round_digits*: gint
-    flag1*: guint16
-    layout*: PRangeLayout
-    timer*: PRangeStepTimer
-    slide_initial_slider_position*: gint
-    slide_initial_coordinate*: gint
-    update_timeout_id*: guint
-    event_window*: gdk2.PWindow
-
-  PRangeClass* = ptr TRangeClass
-  TRangeClass* = object of TWidgetClass
-    slider_detail*: cstring
-    stepper_detail*: cstring
-    value_changed*: proc (range: PRange){.cdecl.}
-    adjust_bounds*: proc (range: PRange, new_value: gdouble){.cdecl.}
-    move_slider*: proc (range: PRange, scroll: TScrollType){.cdecl.}
-    get_range_border*: proc (range: PRange, border: PBorder){.cdecl.}
-    reserved401: proc (){.cdecl.}
-    reserved402: proc (){.cdecl.}
-    reserved403: proc (){.cdecl.}
-    reserved404: proc (){.cdecl.}
-
-  PScale* = ptr TScale
-  TScale* = object of TRange
-    digits*: gint
-    Scale_flag0*: guint16
-
-  PScaleClass* = ptr TScaleClass
-  TScaleClass* = object of TRangeClass
-    format_value*: proc (scale: PScale, value: gdouble): cstring{.cdecl.}
-    draw_value*: proc (scale: PScale){.cdecl.}
-    reserved411: proc (){.cdecl.}
-    reserved412: proc (){.cdecl.}
-    reserved413: proc (){.cdecl.}
-    reserved414: proc (){.cdecl.}
-
-  PHScale* = ptr THScale
-  THScale* = object of TScale
-  PHScaleClass* = ptr THScaleClass
-  THScaleClass* = object of TScaleClass
-  PScrollbar* = ptr TScrollbar
-  TScrollbar* = object of TRange
-  PScrollbarClass* = ptr TScrollbarClass
-  TScrollbarClass* = object of TRangeClass
-    reserved421: proc (){.cdecl.}
-    reserved422: proc (){.cdecl.}
-    reserved423: proc (){.cdecl.}
-    reserved424: proc (){.cdecl.}
-
-  PHScrollbar* = ptr THScrollbar
-  THScrollbar* = object of TScrollbar
-  PHScrollbarClass* = ptr THScrollbarClass
-  THScrollbarClass* = object of TScrollbarClass
-  PSeparator* = ptr TSeparator
-  TSeparator* = object of TWidget
-  PSeparatorClass* = ptr TSeparatorClass
-  TSeparatorClass* = object of TWidgetClass
-  PHSeparator* = ptr THSeparator
-  THSeparator* = object of TSeparator
-  PHSeparatorClass* = ptr THSeparatorClass
-  THSeparatorClass* = object of TSeparatorClass
-  PIconFactory* = ptr TIconFactory
-  TIconFactory* = object of TGObject
-    icons*: PGHashTable
-
-  PIconFactoryClass* = ptr TIconFactoryClass
-  TIconFactoryClass* = object of TGObjectClass
-    reserved431: proc (){.cdecl.}
-    reserved432: proc (){.cdecl.}
-    reserved433: proc (){.cdecl.}
-    reserved434: proc (){.cdecl.}
-
-  PIconSet* = pointer
-  PImagePixmapData* = ptr TImagePixmapData
-  TImagePixmapData*{.final, pure.} = object 
-    pixmap*: gdk2.PPixmap
-
-  PImageImageData* = ptr TImageImageData
-  TImageImageData*{.final, pure.} = object 
-    image*: gdk2.PImage
-
-  PImagePixbufData* = ptr TImagePixbufData
-  TImagePixbufData*{.final, pure.} = object 
-    pixbuf*: gdk2pixbuf.PPixbuf
-
-  PImageStockData* = ptr TImageStockData
-  TImageStockData*{.final, pure.} = object 
-    stock_id*: cstring
-
-  PImageIconSetData* = ptr TImageIconSetData
-  TImageIconSetData*{.final, pure.} = object 
-    icon_set*: PIconSet
-
-  PImageAnimationData* = ptr TImageAnimationData
-  TImageAnimationData*{.final, pure.} = object 
-    anim*: gdk2pixbuf.PPixbufAnimation
-    iter*: gdk2pixbuf.PPixbufAnimationIter
-    frame_timeout*: guint
-
-  PImageType* = ptr TImageType
-  TImageType* = enum 
-    IMAGE_EMPTY, IMAGE_PIXMAP, IMAGE_IMAGE, IMAGE_PIXBUF, IMAGE_STOCK, 
-    IMAGE_ICON_SET, IMAGE_ANIMATION
-  PImage* = ptr TImage
-  TImage* = object of TMisc
-    storage_type*: TImageType
-    pixmap*: TImagePixmapData
-    mask*: gdk2.PBitmap
-    icon_size*: TIconSize
-
-  PImageClass* = ptr TImageClass
-  TImageClass* = object of TMiscClass
-    reserved441: proc (){.cdecl.}
-    reserved442: proc (){.cdecl.}
-    reserved443: proc (){.cdecl.}
-    reserved444: proc (){.cdecl.}
-
-  PImageMenuItem* = ptr TImageMenuItem
-  TImageMenuItem* = object of TMenuItem
-    image*: PWidget
-
-  PImageMenuItemClass* = ptr TImageMenuItemClass
-  TImageMenuItemClass* = object of TMenuItemClass
-  PIMContextSimple* = ptr TIMContextSimple
-  TIMContextSimple* = object of TIMContext
-    tables*: PGSList
-    compose_buffer*: array[0..(MAX_COMPOSE_LEN + 1) - 1, guint]
-    tentative_match*: gunichar
-    tentative_match_len*: gint
-    IMContextSimple_flag0*: guint16
-
-  PIMContextSimpleClass* = ptr TIMContextSimpleClass
-  TIMContextSimpleClass* = object of TIMContextClass
-  PIMMulticontext* = ptr TIMMulticontext
-  TIMMulticontext* = object of TIMContext
-    slave*: PIMContext
-    client_window*: gdk2.PWindow
-    context_id*: cstring
-
-  PIMMulticontextClass* = ptr TIMMulticontextClass
-  TIMMulticontextClass* = object of TIMContextClass
-    reserved451: proc (){.cdecl.}
-    reserved452: proc (){.cdecl.}
-    reserved453: proc (){.cdecl.}
-    reserved454: proc (){.cdecl.}
-
-  PInputDialog* = ptr TInputDialog
-  TInputDialog* = object of TDialog
-    axis_list*: PWidget
-    axis_listbox*: PWidget
-    mode_optionmenu*: PWidget
-    close_button*: PWidget
-    save_button*: PWidget
-    axis_items*: array[0..(gdk2.AXIS_LAST) - 1, PWidget]
-    current_device*: gdk2.PDevice
-    keys_list*: PWidget
-    keys_listbox*: PWidget
-
-  PInputDialogClass* = ptr TInputDialogClass
-  TInputDialogClass* = object of TDialogClass
-    enable_device*: proc (inputd: PInputDialog, device: gdk2.PDevice){.cdecl.}
-    disable_device*: proc (inputd: PInputDialog, device: gdk2.PDevice){.cdecl.}
-    reserved461: proc (){.cdecl.}
-    reserved462: proc (){.cdecl.}
-    reserved463: proc (){.cdecl.}
-    reserved464: proc (){.cdecl.}
-
-  PInvisible* = ptr TInvisible
-  TInvisible* = object of TWidget
-    has_user_ref_count*: gboolean
-    screen*: gdk2.PScreen
-
-  PInvisibleClass* = ptr TInvisibleClass
-  TInvisibleClass* = object of TWidgetClass
-    reserved701: proc (){.cdecl.}
-    reserved702: proc (){.cdecl.}
-    reserved703: proc (){.cdecl.}
-    reserved704: proc (){.cdecl.}
-
-  TPrintFunc* = proc (func_data: gpointer, str: cstring){.cdecl.}
-  PTranslateFunc* = ptr TTranslateFunc
-  TTranslateFunc* = gchar
-  TItemFactoryCallback* = proc (){.cdecl.}
-  TItemFactoryCallback1* = proc (callback_data: gpointer, 
-                                 callback_action: guint, widget: PWidget){.cdecl.}
-  PItemFactory* = ptr TItemFactory
-  TItemFactory* = object of TObject
-    path*: cstring
-    accel_group*: PAccelGroup
-    widget*: PWidget
-    items*: PGSList
-    translate_func*: TTranslateFunc
-    translate_data*: gpointer
-    translate_notify*: TDestroyNotify
-
-  PItemFactoryClass* = ptr TItemFactoryClass
-  TItemFactoryClass* = object of TObjectClass
-    item_ht*: PGHashTable
-    reserved471: proc (){.cdecl.}
-    reserved472: proc (){.cdecl.}
-    reserved473: proc (){.cdecl.}
-    reserved474: proc (){.cdecl.}
-
-  PItemFactoryEntry* = ptr TItemFactoryEntry
-  TItemFactoryEntry*{.final, pure.} = object 
-    path*: cstring
-    accelerator*: cstring
-    callback*: TItemFactoryCallback
-    callback_action*: guint
-    item_type*: cstring
-    extra_data*: gconstpointer
-
-  PItemFactoryItem* = ptr TItemFactoryItem
-  TItemFactoryItem*{.final, pure.} = object 
-    path*: cstring
-    widgets*: PGSList
-
-  PLayout* = ptr TLayout
-  TLayout* = object of TContainer
-    children*: PGList
-    width*: guint
-    height*: guint
-    hadjustment*: PAdjustment
-    vadjustment*: PAdjustment
-    bin_window*: gdk2.PWindow
-    visibility*: gdk2.TVisibilityState
-    scroll_x*: gint
-    scroll_y*: gint
-    freeze_count*: guint
-
-  PLayoutClass* = ptr TLayoutClass
-  TLayoutClass* = object of TContainerClass
-    set_scroll_adjustments*: proc (layout: PLayout, hadjustment: PAdjustment, 
-                                   vadjustment: PAdjustment){.cdecl.}
-    reserved481: proc (){.cdecl.}
-    reserved482: proc (){.cdecl.}
-    reserved483: proc (){.cdecl.}
-    reserved484: proc (){.cdecl.}
-
-  PList* = ptr TList
-  TList* = object of TContainer
-    children*: PGList
-    selection*: PGList
-    undo_selection*: PGList
-    undo_unselection*: PGList
-    last_focus_child*: PWidget
-    undo_focus_child*: PWidget
-    htimer*: guint
-    vtimer*: guint
-    anchor*: gint
-    drag_pos*: gint
-    anchor_state*: TStateType
-    List_flag0*: guint16
-
-  PListClass* = ptr TListClass
-  TListClass* = object of TContainerClass
-    selection_changed*: proc (list: PList){.cdecl.}
-    select_child*: proc (list: PList, child: PWidget){.cdecl.}
-    unselect_child*: proc (list: PList, child: PWidget){.cdecl.}
-
-  TTreeModelForeachFunc* = proc (model: PTreeModel, path: PTreePath, 
-                                 iter: PTreeIter, data: gpointer): gboolean{.
-      cdecl.}
-  PTreeModelFlags* = ptr TTreeModelFlags
-  TTreeModelFlags* = int32
-  TTreeIter*{.final, pure.} = object 
-    stamp*: gint
-    user_data*: gpointer
-    user_data2*: gpointer
-    user_data3*: gpointer
-
-  PTreeModelIface* = ptr TTreeModelIface
-  TTreeModelIface* = object of TGTypeInterface
-    row_changed*: proc (tree_model: PTreeModel, path: PTreePath, iter: PTreeIter){.
-        cdecl.}
-    row_inserted*: proc (tree_model: PTreeModel, path: PTreePath, 
-                         iter: PTreeIter){.cdecl.}
-    row_has_child_toggled*: proc (tree_model: PTreeModel, path: PTreePath, 
-                                  iter: PTreeIter){.cdecl.}
-    row_deleted*: proc (tree_model: PTreeModel, path: PTreePath){.cdecl.}
-    rows_reordered*: proc (tree_model: PTreeModel, path: PTreePath, 
-                           iter: PTreeIter, new_order: Pgint){.cdecl.}
-    get_flags*: proc (tree_model: PTreeModel): TTreeModelFlags{.cdecl.}
-    get_n_columns*: proc (tree_model: PTreeModel): gint{.cdecl.}
-    get_column_type*: proc (tree_model: PTreeModel, index: gint): GType{.cdecl.}
-    get_iter*: proc (tree_model: PTreeModel, iter: PTreeIter, path: PTreePath): gboolean{.
-        cdecl.}
-    get_path*: proc (tree_model: PTreeModel, iter: PTreeIter): PTreePath{.cdecl.}
-    get_value*: proc (tree_model: PTreeModel, iter: PTreeIter, column: gint, 
-                      value: PGValue){.cdecl.}
-    iter_next*: proc (tree_model: PTreeModel, iter: PTreeIter): gboolean{.cdecl.}
-    iter_children*: proc (tree_model: PTreeModel, iter: PTreeIter, 
-                          parent: PTreeIter): gboolean{.cdecl.}
-    iter_has_child*: proc (tree_model: PTreeModel, iter: PTreeIter): gboolean{.
-        cdecl.}
-    iter_n_children*: proc (tree_model: PTreeModel, iter: PTreeIter): gint{.
-        cdecl.}
-    iter_nth_child*: proc (tree_model: PTreeModel, iter: PTreeIter, 
-                           parent: PTreeIter, n: gint): gboolean{.cdecl.}
-    iter_parent*: proc (tree_model: PTreeModel, iter: PTreeIter, 
-                        child: PTreeIter): gboolean{.cdecl.}
-    ref_node*: proc (tree_model: PTreeModel, iter: PTreeIter){.cdecl.}
-    unref_node*: proc (tree_model: PTreeModel, iter: PTreeIter){.cdecl.}
-
-  PTreeSortable* = pointer
-  TTreeIterCompareFunc* = proc (model: PTreeModel, a: PTreeIter, b: PTreeIter, 
-                                user_data: gpointer): gint{.cdecl.}
-  PTreeSortableIface* = ptr TTreeSortableIface
-  TTreeSortableIface* = object of TGTypeInterface
-    sort_column_changed*: proc (sortable: PTreeSortable){.cdecl.}
-    get_sort_column_id*: proc (sortable: PTreeSortable, sort_column_id: Pgint, 
-                               order: PSortType): gboolean{.cdecl.}
-    set_sort_column_id*: proc (sortable: PTreeSortable, sort_column_id: gint, 
-                               order: TSortType){.cdecl.}
-    set_sort_func*: proc (sortable: PTreeSortable, sort_column_id: gint, 
-                          func: TTreeIterCompareFunc, data: gpointer, 
-                          destroy: TDestroyNotify){.cdecl.}
-    set_default_sort_func*: proc (sortable: PTreeSortable, 
-                                  func: TTreeIterCompareFunc, data: gpointer, 
-                                  destroy: TDestroyNotify){.cdecl.}
-    has_default_sort_func*: proc (sortable: PTreeSortable): gboolean{.cdecl.}
-
-  PTreeModelSort* = ptr TTreeModelSort
-  TTreeModelSort* = object of TGObject
-    root*: gpointer
-    stamp*: gint
-    child_flags*: guint
-    child_model*: PTreeModel
-    zero_ref_count*: gint
-    sort_list*: PGList
-    sort_column_id*: gint
-    order*: TSortType
-    default_sort_func*: TTreeIterCompareFunc
-    default_sort_data*: gpointer
-    default_sort_destroy*: TDestroyNotify
-    changed_id*: guint
-    inserted_id*: guint
-    has_child_toggled_id*: guint
-    deleted_id*: guint
-    reordered_id*: guint
-
-  PTreeModelSortClass* = ptr TTreeModelSortClass
-  TTreeModelSortClass* = object of TGObjectClass
-    reserved491: proc (){.cdecl.}
-    reserved492: proc (){.cdecl.}
-    reserved493: proc (){.cdecl.}
-    reserved494: proc (){.cdecl.}
-
-  PListStore* = ptr TListStore
-  TListStore* = object of TGObject
-    stamp*: gint
-    root*: gpointer
-    tail*: gpointer
-    sort_list*: PGList
-    n_columns*: gint
-    sort_column_id*: gint
-    order*: TSortType
-    column_headers*: PGType
-    length*: gint
-    default_sort_func*: TTreeIterCompareFunc
-    default_sort_data*: gpointer
-    default_sort_destroy*: TDestroyNotify
-    ListStore_flag0*: guint16
-
-  PListStoreClass* = ptr TListStoreClass
-  TListStoreClass* = object of TGObjectClass
-    reserved501: proc (){.cdecl.}
-    reserved502: proc (){.cdecl.}
-    reserved503: proc (){.cdecl.}
-    reserved504: proc (){.cdecl.}
-
-  TModuleInitFunc* = proc (argc: Pgint, argv: PPPgchar){.cdecl.}
-  TKeySnoopFunc* = proc (grab_widget: PWidget, event: gdk2.PEventKey, 
-                         func_data: gpointer): gint{.cdecl.}
-  PMenuBar* = ptr TMenuBar
-  TMenuBar* = object of TMenuShell
-  PMenuBarClass* = ptr TMenuBarClass
-  TMenuBarClass* = object of TMenuShellClass
-    reserved511: proc (){.cdecl.}
-    reserved512: proc (){.cdecl.}
-    reserved513: proc (){.cdecl.}
-    reserved514: proc (){.cdecl.}
-
-  PMessageType* = ptr TMessageType
-  TMessageType* = enum 
-    MESSAGE_INFO, MESSAGE_WARNING, MESSAGE_QUESTION, MESSAGE_ERROR
-  PButtonsType* = ptr TButtonsType
-  TButtonsType* = enum 
-    BUTTONS_NONE, BUTTONS_OK, BUTTONS_CLOSE, BUTTONS_CANCEL, BUTTONS_YES_NO, 
-    BUTTONS_OK_CANCEL
-  PMessageDialog* = ptr TMessageDialog
-  TMessageDialog* = object of TDialog
-    image*: PWidget
-    label*: PWidget
-
-  PMessageDialogClass* = ptr TMessageDialogClass
-  TMessageDialogClass* = object of TDialogClass
-    reserved521: proc (){.cdecl.}
-    reserved522: proc (){.cdecl.}
-    reserved523: proc (){.cdecl.}
-    reserved524: proc (){.cdecl.}
-
-  PNotebookPage* = pointer
-  PNotebookTab* = ptr TNotebookTab
-  TNotebookTab* = enum 
-    NOTEBOOK_TAB_FIRST, NOTEBOOK_TAB_LAST
-  PNotebook* = ptr TNotebook
-  TNotebook* = object of TContainer
-    cur_page*: PNotebookPage
-    children*: PGList
-    first_tab*: PGList
-    focus_tab*: PGList
-    menu*: PWidget
-    event_window*: gdk2.PWindow
-    timer*: guint32
-    tab_hborder*: guint16
-    tab_vborder*: guint16
-    Notebook_flag0*: guint16
-
-  PNotebookClass* = ptr TNotebookClass
-  TNotebookClass* = object of TContainerClass
-    switch_page*: proc (notebook: PNotebook, page: PNotebookPage, 
-                        page_num: guint){.cdecl.}
-    select_page*: proc (notebook: PNotebook, move_focus: gboolean): gboolean{.
-        cdecl.}
-    focus_tab*: proc (notebook: PNotebook, thetype: TNotebookTab): gboolean{.
-        cdecl.}
-    change_current_page*: proc (notebook: PNotebook, offset: gint){.cdecl.}
-    move_focus_out*: proc (notebook: PNotebook, direction: TDirectionType){.
-        cdecl.}
-    reserved531: proc (){.cdecl.}
-    reserved532: proc (){.cdecl.}
-    reserved533: proc (){.cdecl.}
-    reserved534: proc (){.cdecl.}
-
-  POldEditable* = ptr TOldEditable
-  TOldEditable* = object of TWidget
-    current_pos*: guint
-    selection_start_pos*: guint
-    selection_end_pos*: guint
-    OldEditable_flag0*: guint16
-    clipboard_text*: cstring
-
-  TTextFunction* = proc (editable: POldEditable, time: guint32){.cdecl.}
-  POldEditableClass* = ptr TOldEditableClass
-  TOldEditableClass* = object of TWidgetClass
-    activate*: proc (editable: POldEditable){.cdecl.}
-    set_editable*: proc (editable: POldEditable, is_editable: gboolean){.cdecl.}
-    move_cursor*: proc (editable: POldEditable, x: gint, y: gint){.cdecl.}
-    move_word*: proc (editable: POldEditable, n: gint){.cdecl.}
-    move_page*: proc (editable: POldEditable, x: gint, y: gint){.cdecl.}
-    move_to_row*: proc (editable: POldEditable, row: gint){.cdecl.}
-    move_to_column*: proc (editable: POldEditable, row: gint){.cdecl.}
-    kill_char*: proc (editable: POldEditable, direction: gint){.cdecl.}
-    kill_word*: proc (editable: POldEditable, direction: gint){.cdecl.}
-    kill_line*: proc (editable: POldEditable, direction: gint){.cdecl.}
-    cut_clipboard*: proc (editable: POldEditable){.cdecl.}
-    copy_clipboard*: proc (editable: POldEditable){.cdecl.}
-    paste_clipboard*: proc (editable: POldEditable){.cdecl.}
-    update_text*: proc (editable: POldEditable, start_pos: gint, end_pos: gint){.
-        cdecl.}
-    get_chars*: proc (editable: POldEditable, start_pos: gint, end_pos: gint): cstring{.
-        cdecl.}
-    set_selection*: proc (editable: POldEditable, start_pos: gint, end_pos: gint){.
-        cdecl.}
-    set_position*: proc (editable: POldEditable, position: gint){.cdecl.}
-
-  POptionMenu* = ptr TOptionMenu
-  TOptionMenu* = object of TButton
-    menu*: PWidget
-    menu_item*: PWidget
-    width*: guint16
-    height*: guint16
-
-  POptionMenuClass* = ptr TOptionMenuClass
-  TOptionMenuClass* = object of TButtonClass
-    changed*: proc (option_menu: POptionMenu){.cdecl.}
-    reserved541: proc (){.cdecl.}
-    reserved542: proc (){.cdecl.}
-    reserved543: proc (){.cdecl.}
-    reserved544: proc (){.cdecl.}
-
-  PPixmap* = ptr TPixmap
-  TPixmap* = object of TMisc
-    pixmap*: gdk2.PPixmap
-    mask*: gdk2.PBitmap
-    pixmap_insensitive*: gdk2.PPixmap
-    Pixmap_flag0*: guint16
-
-  PPixmapClass* = ptr TPixmapClass
-  TPixmapClass* = object of TMiscClass
-  PPlug* = ptr TPlug
-  TPlug* = object of TWindow
-    socket_window*: gdk2.PWindow
-    modality_window*: PWidget
-    modality_group*: PWindowGroup
-    grabbed_keys*: PGHashTable
-    Plug_flag0*: guint16
-
-  PPlugClass* = ptr TPlugClass
-  TPlugClass* = object of TWindowClass
-    embedded*: proc (plug: PPlug){.cdecl.}
-    reserved551: proc (){.cdecl.}
-    reserved552: proc (){.cdecl.}
-    reserved553: proc (){.cdecl.}
-    reserved554: proc (){.cdecl.}
-
-  PPreview* = ptr TPreview
-  TPreview* = object of TWidget
-    buffer*: Pguchar
-    buffer_width*: guint16
-    buffer_height*: guint16
-    bpp*: guint16
-    rowstride*: guint16
-    dither*: gdk2.TRgbDither
-    Preview_flag0*: guint16
-
-  PPreviewInfo* = ptr TPreviewInfo
-  TPreviewInfo*{.final, pure.} = object 
-    lookup*: Pguchar
-    gamma*: gdouble
-
-  PDitherInfo* = ptr TDitherInfo
-  TDitherInfo*{.final, pure.} = object 
-    c*: array[0..3, guchar]
-
-  PPreviewClass* = ptr TPreviewClass
-  TPreviewClass* = object of TWidgetClass
-    info*: TPreviewInfo
-
-  PProgress* = ptr TProgress
-  TProgress* = object of TWidget
-    adjustment*: PAdjustment
-    offscreen_pixmap*: gdk2.PPixmap
-    format*: cstring
-    x_align*: gfloat
-    y_align*: gfloat
-    Progress_flag0*: guint16
-
-  PProgressClass* = ptr TProgressClass
-  TProgressClass* = object of TWidgetClass
-    paint*: proc (progress: PProgress){.cdecl.}
-    update*: proc (progress: PProgress){.cdecl.}
-    act_mode_enter*: proc (progress: PProgress){.cdecl.}
-    reserved561: proc (){.cdecl.}
-    reserved562: proc (){.cdecl.}
-    reserved563: proc (){.cdecl.}
-    reserved564: proc (){.cdecl.}
-
-  PProgressBarStyle* = ptr TProgressBarStyle
-  TProgressBarStyle* = enum 
-    PROGRESS_CONTINUOUS, PROGRESS_DISCRETE
-  PProgressBarOrientation* = ptr TProgressBarOrientation
-  TProgressBarOrientation* = enum 
-    PROGRESS_LEFT_TO_RIGHT, PROGRESS_RIGHT_TO_LEFT, PROGRESS_BOTTOM_TO_TOP, 
-    PROGRESS_TOP_TO_BOTTOM
-  PProgressBar* = ptr TProgressBar
-  TProgressBar* = object of TProgress
-    bar_style*: TProgressBarStyle
-    orientation*: TProgressBarOrientation
-    blocks*: guint
-    in_block*: gint
-    activity_pos*: gint
-    activity_step*: guint
-    activity_blocks*: guint
-    pulse_fraction*: gdouble
-    ProgressBar_flag0*: guint16
-
-  PProgressBarClass* = ptr TProgressBarClass
-  TProgressBarClass* = object of TProgressClass
-    reserved571: proc (){.cdecl.}
-    reserved572: proc (){.cdecl.}
-    reserved573: proc (){.cdecl.}
-    reserved574: proc (){.cdecl.}
-
-  PRadioButton* = ptr TRadioButton
-  TRadioButton* = object of TCheckButton
-    group*: PGSList
-
-  PRadioButtonClass* = ptr TRadioButtonClass
-  TRadioButtonClass* = object of TCheckButtonClass
-    reserved581: proc (){.cdecl.}
-    reserved582: proc (){.cdecl.}
-    reserved583: proc (){.cdecl.}
-    reserved584: proc (){.cdecl.}
-
-  PRadioMenuItem* = ptr TRadioMenuItem
-  TRadioMenuItem* = object of TCheckMenuItem
-    group*: PGSList
-
-  PRadioMenuItemClass* = ptr TRadioMenuItemClass
-  TRadioMenuItemClass* = object of TCheckMenuItemClass
-    reserved591: proc (){.cdecl.}
-    reserved592: proc (){.cdecl.}
-    reserved593: proc (){.cdecl.}
-    reserved594: proc (){.cdecl.}
-
-  PScrolledWindow* = ptr TScrolledWindow
-  TScrolledWindow* = object of TBin
-    hscrollbar*: PWidget
-    vscrollbar*: PWidget
-    ScrolledWindow_flag0*: guint16
-    shadow_type*: guint16
-
-  PScrolledWindowClass* = ptr TScrolledWindowClass
-  TScrolledWindowClass* = object of TBinClass
-    scrollbar_spacing*: gint
-    scroll_child*: proc (scrolled_window: PScrolledWindow, scroll: TScrollType, 
-                         horizontal: gboolean){.cdecl.}
-    move_focus_out*: proc (scrolled_window: PScrolledWindow, 
-                           direction: TDirectionType){.cdecl.}
-    reserved601: proc (){.cdecl.}
-    reserved602: proc (){.cdecl.}
-    reserved603: proc (){.cdecl.}
-    reserved604: proc (){.cdecl.}
-
-  TSelectionData*{.final, pure.} = object 
-    selection*: gdk2.TAtom
-    target*: gdk2.TAtom
-    thetype*: gdk2.TAtom
-    format*: gint
-    data*: Pguchar
-    length*: gint
-    display*: gdk2.PDisplay
-
-  PTargetEntry* = ptr TTargetEntry
-  TTargetEntry*{.final, pure.} = object 
-    target*: cstring
-    flags*: guint
-    info*: guint
-
-  PTargetList* = ptr TTargetList
-  TTargetList*{.final, pure.} = object 
-    list*: PGList
-    ref_count*: guint
-
-  PTargetPair* = ptr TTargetPair
-  TTargetPair*{.final, pure.} = object 
-    target*: gdk2.TAtom
-    flags*: guint
-    info*: guint
-
-  PSeparatorMenuItem* = ptr TSeparatorMenuItem
-  TSeparatorMenuItem* = object of TMenuItem
-  PSeparatorMenuItemClass* = ptr TSeparatorMenuItemClass
-  TSeparatorMenuItemClass* = object of TMenuItemClass
-  PSizeGroup* = ptr TSizeGroup
-  TSizeGroup* = object of TGObject
-    widgets*: PGSList
-    mode*: guint8
-    SizeGroup_flag0*: guint16
-    requisition*: TRequisition
-
-  PSizeGroupClass* = ptr TSizeGroupClass
-  TSizeGroupClass* = object of TGObjectClass
-    reserved611: proc (){.cdecl.}
-    reserved612: proc (){.cdecl.}
-    reserved613: proc (){.cdecl.}
-    reserved614: proc (){.cdecl.}
-
-  PSizeGroupMode* = ptr TSizeGroupMode
-  TSizeGroupMode* = enum 
-    SIZE_GROUP_NONE, SIZE_GROUP_HORIZONTAL, SIZE_GROUP_VERTICAL, SIZE_GROUP_BOTH
-  PSocket* = ptr TSocket
-  TSocket* = object of TContainer
-    request_width*: guint16
-    request_height*: guint16
-    current_width*: guint16
-    current_height*: guint16
-    plug_window*: gdk2.PWindow
-    plug_widget*: PWidget
-    xembed_version*: gshort
-    Socket_flag0*: guint16
-    accel_group*: PAccelGroup
-    toplevel*: PWidget
-
-  PSocketClass* = ptr TSocketClass
-  TSocketClass* = object of TContainerClass
-    plug_added*: proc (socket: PSocket){.cdecl.}
-    plug_removed*: proc (socket: PSocket): gboolean{.cdecl.}
-    reserved621: proc (){.cdecl.}
-    reserved622: proc (){.cdecl.}
-    reserved623: proc (){.cdecl.}
-    reserved624: proc (){.cdecl.}
-
-  PSpinButtonUpdatePolicy* = ptr TSpinButtonUpdatePolicy
-  TSpinButtonUpdatePolicy* = enum 
-    UPDATE_ALWAYS, UPDATE_IF_VALID
-  PSpinType* = ptr TSpinType
-  TSpinType* = enum 
-    SPIN_STEP_FORWARD, SPIN_STEP_BACKWARD, SPIN_PAGE_FORWARD, 
-    SPIN_PAGE_BACKWARD, SPIN_HOME, SPIN_END, SPIN_USER_DEFINED
-  PSpinButton* = ptr TSpinButton
-  TSpinButton* = object of TEntry
-    adjustment*: PAdjustment
-    panel*: gdk2.PWindow
-    timer*: guint32
-    climb_rate*: gdouble
-    timer_step*: gdouble
-    update_policy*: TSpinButtonUpdatePolicy
-    SpinButton_flag0*: int32
-
-  PSpinButtonClass* = ptr TSpinButtonClass
-  TSpinButtonClass* = object of TEntryClass
-    input*: proc (spin_button: PSpinButton, new_value: Pgdouble): gint{.cdecl.}
-    output*: proc (spin_button: PSpinButton): gint{.cdecl.}
-    value_changed*: proc (spin_button: PSpinButton){.cdecl.}
-    change_value*: proc (spin_button: PSpinButton, scroll: TScrollType){.cdecl.}
-    reserved631: proc (){.cdecl.}
-    reserved632: proc (){.cdecl.}
-    reserved633: proc (){.cdecl.}
-    reserved634: proc (){.cdecl.}
-
-  PStockItem* = ptr TStockItem
-  TStockItem*{.final, pure.} = object 
-    stock_id*: cstring
-    label*: cstring
-    modifier*: gdk2.TModifierType
-    keyval*: guint
-    translation_domain*: cstring
-
-  PStatusbar* = ptr TStatusbar
-  TStatusbar* = object of THBox
-    frame*: PWidget
-    `label`*: PWidget
-    messages*: PGSList
-    keys*: PGSList
-    seq_context_id*: guint
-    seq_message_id*: guint
-    grip_window*: gdk2.PWindow
-    Statusbar_flag0*: guint16
-
-  PStatusbarClass* = ptr TStatusbarClass
-  TStatusbarClass* = object of THBoxClass
-    messages_mem_chunk*: PGMemChunk
-    text_pushed*: proc (statusbar: PStatusbar, context_id: guint, text: cstring){.
-        cdecl.}
-    text_popped*: proc (statusbar: PStatusbar, context_id: guint, text: cstring){.
-        cdecl.}
-    reserved641: proc (){.cdecl.}
-    reserved642: proc (){.cdecl.}
-    reserved643: proc (){.cdecl.}
-    reserved644: proc (){.cdecl.}
-
-  PTableRowCol* = ptr TTableRowCol
-  PTable* = ptr TTable
-  TTable* = object of TContainer
-    children*: PGList
-    rows*: PTableRowCol
-    cols*: PTableRowCol
-    nrows*: guint16
-    ncols*: guint16
-    column_spacing*: guint16
-    row_spacing*: guint16
-    Table_flag0*: guint16
-
-  PTableClass* = ptr TTableClass
-  TTableClass* = object of TContainerClass
-  PTableChild* = ptr TTableChild
-  TTableChild*{.final, pure.} = object 
-    widget*: PWidget
-    left_attach*: guint16
-    right_attach*: guint16
-    top_attach*: guint16
-    bottom_attach*: guint16
-    xpadding*: guint16
-    ypadding*: guint16
-    TableChild_flag0*: guint16
-
-  TTableRowCol*{.final, pure.} = object 
-    requisition*: guint16
-    allocation*: guint16
-    spacing*: guint16
-    flag0*: guint16
-
-  PTearoffMenuItem* = ptr TTearoffMenuItem
-  TTearoffMenuItem* = object of TMenuItem
-    TearoffMenuItem_flag0*: guint16
-
-  PTearoffMenuItemClass* = ptr TTearoffMenuItemClass
-  TTearoffMenuItemClass* = object of TMenuItemClass
-    reserved651: proc (){.cdecl.}
-    reserved652: proc (){.cdecl.}
-    reserved653: proc (){.cdecl.}
-    reserved654: proc (){.cdecl.}
-
-  PTextFont* = pointer
-  PPropertyMark* = ptr TPropertyMark
-  TPropertyMark*{.final, pure.} = object 
-    `property`*: PGList
-    offset*: guint
-    index*: guint
-
-  PText* = ptr TText
-  TText* = object of TOldEditable
-    text_area*: gdk2.PWindow
-    hadj*: PAdjustment
-    vadj*: PAdjustment
-    gc*: gdk2.PGC
-    line_wrap_bitmap*: gdk2.PPixmap
-    line_arrow_bitmap*: gdk2.PPixmap
-    text*: Pguchar
-    text_len*: guint
-    gap_position*: guint
-    gap_size*: guint
-    text_end*: guint
-    line_start_cache*: PGList
-    first_line_start_index*: guint
-    first_cut_pixels*: guint
-    first_onscreen_hor_pixel*: guint
-    first_onscreen_ver_pixel*: guint
-    Text_flag0*: guint16
-    freeze_count*: guint
-    text_properties*: PGList
-    text_properties_end*: PGList
-    point*: TPropertyMark
-    scratch_buffer*: Pguchar
-    scratch_buffer_len*: guint
-    last_ver_value*: gint
-    cursor_pos_x*: gint
-    cursor_pos_y*: gint
-    cursor_mark*: TPropertyMark
-    cursor_char*: gdk2.TWChar
-    cursor_char_offset*: gchar
-    cursor_virtual_x*: gint
-    cursor_drawn_level*: gint
-    current_line*: PGList
-    tab_stops*: PGList
-    default_tab_width*: gint
-    current_font*: PTextFont
-    timer*: gint
-    button*: guint
-    bg_gc*: gdk2.PGC
-
-  PTextClass* = ptr TTextClass
-  TTextClass* = object of TOldEditableClass
-    set_scroll_adjustments*: proc (text: PText, hadjustment: PAdjustment, 
-                                   vadjustment: PAdjustment){.cdecl.}
-
-  PTextSearchFlags* = ptr TTextSearchFlags
-  TTextSearchFlags* = int32
-  PTextIter* = ptr TTextIter
-  TTextIter*{.final, pure.} = object 
-    dummy1*: gpointer
-    dummy2*: gpointer
-    dummy3*: gint
-    dummy4*: gint
-    dummy5*: gint
-    dummy6*: gint
-    dummy7*: gint
-    dummy8*: gint
-    dummy9*: gpointer
-    dummy10*: gpointer
-    dummy11*: gint
-    dummy12*: gint
-    dummy13*: gint
-    dummy14*: gpointer
-
-  TTextCharPredicate* = proc (ch: gunichar, user_data: gpointer): gboolean{.
-      cdecl.}
-  PTextTagClass* = ptr TTextTagClass
-  PTextAttributes* = ptr TTextAttributes
-  PTextTag* = ptr TTextTag
-  PPGtkTextTag* = ptr PTextTag
-  TTextTag* = object of TGObject
-    table*: PTextTagTable
-    name*: cstring
-    priority*: int32
-    values*: PTextAttributes
-    TextTag_flag0*: int32
-
-  TTextTagClass* = object of TGObjectClass
-    event*: proc (tag: PTextTag, event_object: PGObject, event: gdk2.PEvent, 
-                  iter: PTextIter): gboolean{.cdecl.}
-    reserved661: proc (){.cdecl.}
-    reserved662: proc (){.cdecl.}
-    reserved663: proc (){.cdecl.}
-    reserved664: proc (){.cdecl.}
-
-  PTextAppearance* = ptr TTextAppearance
-  TTextAppearance*{.final, pure.} = object 
-    bg_color*: gdk2.TColor
-    fg_color*: gdk2.TColor
-    bg_stipple*: gdk2.PBitmap
-    fg_stipple*: gdk2.PBitmap
-    rise*: gint
-    padding1*: gpointer
-    flag0*: guint16
-
-  TTextAttributes*{.final, pure.} = object 
-    refcount*: guint
-    appearance*: TTextAppearance
-    justification*: TJustification
-    direction*: TTextDirection
-    font*: pango.PFontDescription
-    font_scale*: gdouble
-    left_margin*: gint
-    indent*: gint
-    right_margin*: gint
-    pixels_above_lines*: gint
-    pixels_below_lines*: gint
-    pixels_inside_wrap*: gint
-    tabs*: pango.PTabArray
-    wrap_mode*: TWrapMode
-    language*: pango.PLanguage
-    padding1*: gpointer
-    flag0*: guint16
-
-  TTextTagTableForeach* = proc (tag: PTextTag, data: gpointer){.cdecl.}
-  TTextTagTable* = object of TGObject
-    hash*: PGHashTable
-    anonymous*: PGSList
-    anon_count*: gint
-    buffers*: PGSList
-
-  PTextTagTableClass* = ptr TTextTagTableClass
-  TTextTagTableClass* = object of TGObjectClass
-    tag_changed*: proc (table: PTextTagTable, tag: PTextTag, 
-                        size_changed: gboolean){.cdecl.}
-    tag_added*: proc (table: PTextTagTable, tag: PTextTag){.cdecl.}
-    tag_removed*: proc (table: PTextTagTable, tag: PTextTag){.cdecl.}
-    reserved1: proc (){.cdecl.}
-    reserved2: proc (){.cdecl.}
-    reserved3: proc (){.cdecl.}
-    reserved4: proc (){.cdecl.}
-
-  PTextMark* = ptr TTextMark
-  TTextMark* = object of TGObject
-    segment*: gpointer
-
-  PTextMarkClass* = ptr TTextMarkClass
-  TTextMarkClass* = object of TGObjectClass
-    reserved1: proc (){.cdecl.}
-    reserved2: proc (){.cdecl.}
-    reserved3: proc (){.cdecl.}
-    reserved4: proc (){.cdecl.}
-
-  PTextMarkBody* = ptr TTextMarkBody
-  TTextMarkBody*{.final, pure.} = object 
-    obj*: PTextMark
-    name*: cstring
-    tree*: PTextBTree
-    line*: PTextLine
-    flag0*: guint16
-
-  PTextChildAnchor* = ptr TTextChildAnchor
-  TTextChildAnchor* = object of TGObject
-    segment*: gpointer
-
-  PTextChildAnchorClass* = ptr TTextChildAnchorClass
-  TTextChildAnchorClass* = object of TGObjectClass
-    reserved1: proc (){.cdecl.}
-    reserved2: proc (){.cdecl.}
-    reserved3: proc (){.cdecl.}
-    reserved4: proc (){.cdecl.}
-
-  PTextPixbuf* = ptr TTextPixbuf
-  TTextPixbuf*{.final, pure.} = object 
-    pixbuf*: gdk2pixbuf.PPixbuf
-
-  PTextChildBody* = ptr TTextChildBody
-  TTextChildBody*{.final, pure.} = object 
-    obj*: PTextChildAnchor
-    widgets*: PGSList
-    tree*: PTextBTree
-    line*: PTextLine
-
-  PTextLineSegment* = ptr TTextLineSegment
-  PTextLineSegmentClass* = ptr TTextLineSegmentClass
-  PTextTagInfo* = ptr TTextTagInfo
-  TTextTagInfo*{.final, pure.} = object 
-    tag*: PTextTag
-    tag_root*: PTextBTreeNode
-    toggle_count*: gint
-
-  PTextToggleBody* = ptr TTextToggleBody
-  TTextToggleBody*{.final, pure.} = object 
-    info*: PTextTagInfo
-    inNodeCounts*: gboolean
-
-  TTextLineSegment*{.final, pure.} = object 
-    `type`*: PTextLineSegmentClass
-    next*: PTextLineSegment
-    char_count*: int32
-    byte_count*: int32
-    body*: TTextChildBody
-
-  PTextSegSplitFunc* = ptr TTextSegSplitFunc
-  TTextSegSplitFunc* = TTextLineSegment
-  TTextSegDeleteFunc* = proc (seg: PTextLineSegment, line: PTextLine, 
-                              tree_gone: gboolean): gboolean{.cdecl.}
-  PTextSegCleanupFunc* = ptr TTextSegCleanupFunc
-  TTextSegCleanupFunc* = TTextLineSegment
-  TTextSegLineChangeFunc* = proc (seg: PTextLineSegment, line: PTextLine){.cdecl.}
-  TTextSegCheckFunc* = proc (seg: PTextLineSegment, line: PTextLine){.cdecl.}
-  TTextLineSegmentClass*{.final, pure.} = object 
-    name*: cstring
-    leftGravity*: gboolean
-    splitFunc*: TTextSegSplitFunc
-    deleteFunc*: TTextSegDeleteFunc
-    cleanupFunc*: TTextSegCleanupFunc
-    lineChangeFunc*: TTextSegLineChangeFunc
-    checkFunc*: TTextSegCheckFunc
-
-  PTextLineData* = ptr TTextLineData
-  TTextLineData*{.final, pure.} = object 
-    view_id*: gpointer
-    next*: PTextLineData
-    height*: gint
-    flag0*: int32
-
-  TTextLine*{.final, pure.} = object 
-    parent*: PTextBTreeNode
-    next*: PTextLine
-    segments*: PTextLineSegment
-    views*: PTextLineData
-
-  PTextLogAttrCache* = pointer
-  PTextBuffer* = ptr TTextBuffer
-  TTextBuffer* = object of TGObject
-    tag_table*: PTextTagTable
-    btree*: PTextBTree
-    clipboard_contents_buffers*: PGSList
-    selection_clipboards*: PGSList
-    log_attr_cache*: PTextLogAttrCache
-    user_action_count*: guint
-    TextBuffer_flag0*: guint16
-
-  PTextBufferClass* = ptr TTextBufferClass
-  TTextBufferClass* = object of TGObjectClass
-    insert_text*: proc (buffer: PTextBuffer, pos: PTextIter, text: cstring, 
-                        length: gint){.cdecl.}
-    insert_pixbuf*: proc (buffer: PTextBuffer, pos: PTextIter, 
-                          pixbuf: gdk2pixbuf.PPixbuf){.cdecl.}
-    insert_child_anchor*: proc (buffer: PTextBuffer, pos: PTextIter, 
-                                anchor: PTextChildAnchor){.cdecl.}
-    delete_range*: proc (buffer: PTextBuffer, start: PTextIter, 
-                         theEnd: PTextIter){.cdecl.}
-    changed*: proc (buffer: PTextBuffer){.cdecl.}
-    modified_changed*: proc (buffer: PTextBuffer){.cdecl.}
-    mark_set*: proc (buffer: PTextBuffer, location: PTextIter, mark: PTextMark){.
-        cdecl.}
-    mark_deleted*: proc (buffer: PTextBuffer, mark: PTextMark){.cdecl.}
-    apply_tag*: proc (buffer: PTextBuffer, tag: PTextTag, start_char: PTextIter, 
-                      end_char: PTextIter){.cdecl.}
-    remove_tag*: proc (buffer: PTextBuffer, tag: PTextTag, 
-                       start_char: PTextIter, end_char: PTextIter){.cdecl.}
-    begin_user_action*: proc (buffer: PTextBuffer){.cdecl.}
-    end_user_action*: proc (buffer: PTextBuffer){.cdecl.}
-    reserved1: proc (){.cdecl.}
-    reserved2: proc (){.cdecl.}
-    reserved3: proc (){.cdecl.}
-    reserved4: proc (){.cdecl.}
-    reserved5: proc (){.cdecl.}
-    reserved6: proc (){.cdecl.}
-
-  PTextLineDisplay* = ptr TTextLineDisplay
-  PTextLayout* = ptr TTextLayout
-  TTextLayout* = object of TGObject
-    screen_width*: gint
-    width*: gint
-    height*: gint
-    buffer*: PTextBuffer
-    default_style*: PTextAttributes
-    ltr_context*: pango.PContext
-    rtl_context*: pango.PContext
-    one_style_cache*: PTextAttributes
-    one_display_cache*: PTextLineDisplay
-    wrap_loop_count*: gint
-    TextLayout_flag0*: guint16
-    preedit_string*: cstring
-    preedit_attrs*: pango.PAttrList
-    preedit_len*: gint
-    preedit_cursor*: gint
-
-  PTextLayoutClass* = ptr TTextLayoutClass
-  TTextLayoutClass* = object of TGObjectClass
-    invalidated*: proc (layout: PTextLayout){.cdecl.}
-    changed*: proc (layout: PTextLayout, y: gint, old_height: gint, 
-                    new_height: gint){.cdecl.}
-    wrap*: proc (layout: PTextLayout, line: PTextLine, line_data: PTextLineData): PTextLineData{.
-        cdecl.}
-    get_log_attrs*: proc (layout: PTextLayout, line: PTextLine, 
-                          attrs: var pango.PLogAttr, n_attrs: Pgint){.cdecl.}
-    invalidate*: proc (layout: PTextLayout, start: PTextIter, theEnd: PTextIter){.
-        cdecl.}
-    free_line_data*: proc (layout: PTextLayout, line: PTextLine, 
-                           line_data: PTextLineData){.cdecl.}
-    allocate_child*: proc (layout: PTextLayout, child: PWidget, x: gint, y: gint){.
-        cdecl.}
-    reserved1: proc (){.cdecl.}
-    reserved2: proc (){.cdecl.}
-    reserved3: proc (){.cdecl.}
-    reserved4: proc (){.cdecl.}
-
-  PTextAttrAppearance* = ptr TTextAttrAppearance
-  TTextAttrAppearance*{.final, pure.} = object 
-    attr*: pango.TAttribute
-    appearance*: TTextAppearance
-
-  PTextCursorDisplay* = ptr TTextCursorDisplay
-  TTextCursorDisplay*{.final, pure.} = object 
-    x*: gint
-    y*: gint
-    height*: gint
-    flag0*: guint16
-
-  TTextLineDisplay*{.final, pure.} = object 
-    layout*: pango.PLayout
-    cursors*: PGSList
-    shaped_objects*: PGSList
-    direction*: TTextDirection
-    width*: gint
-    total_width*: gint
-    height*: gint
-    x_offset*: gint
-    left_margin*: gint
-    right_margin*: gint
-    top_margin*: gint
-    bottom_margin*: gint
-    insert_index*: gint
-    size_only*: gboolean
-    line*: PTextLine
-
-  PTextWindow* = pointer
-  PTextPendingScroll* = pointer
-  PTextWindowType* = ptr TTextWindowType
-  TTextWindowType* = enum 
-    TEXT_WINDOW_PRIVATE, TEXT_WINDOW_WIDGET, TEXT_WINDOW_TEXT, TEXT_WINDOW_LEFT, 
-    TEXT_WINDOW_RIGHT, TEXT_WINDOW_TOP, TEXT_WINDOW_BOTTOM
-  PTextView* = ptr TTextView
-  TTextView* = object of TContainer
-    layout*: PTextLayout
-    buffer*: PTextBuffer
-    selection_drag_handler*: guint
-    scroll_timeout*: guint
-    pixels_above_lines*: gint
-    pixels_below_lines*: gint
-    pixels_inside_wrap*: gint
-    wrap_mode*: TWrapMode
-    justify*: TJustification
-    left_margin*: gint
-    right_margin*: gint
-    indent*: gint
-    tabs*: pango.PTabArray
-    TextView_flag0*: guint16
-    text_window*: PTextWindow
-    left_window*: PTextWindow
-    right_window*: PTextWindow
-    top_window*: PTextWindow
-    bottom_window*: PTextWindow
-    hadjustment*: PAdjustment
-    vadjustment*: PAdjustment
-    xoffset*: gint
-    yoffset*: gint
-    width*: gint
-    height*: gint
-    virtual_cursor_x*: gint
-    virtual_cursor_y*: gint
-    first_para_mark*: PTextMark
-    first_para_pixels*: gint
-    dnd_mark*: PTextMark
-    blink_timeout*: guint
-    first_validate_idle*: guint
-    incremental_validate_idle*: guint
-    im_context*: PIMContext
-    popup_menu*: PWidget
-    drag_start_x*: gint
-    drag_start_y*: gint
-    children*: PGSList
-    pending_scroll*: PTextPendingScroll
-    pending_place_cursor_button*: gint
-
-  PTextViewClass* = ptr TTextViewClass
-  TTextViewClass* = object of TContainerClass
-    set_scroll_adjustments*: proc (text_view: PTextView, 
-                                   hadjustment: PAdjustment, 
-                                   vadjustment: PAdjustment){.cdecl.}
-    populate_popup*: proc (text_view: PTextView, menu: PMenu){.cdecl.}
-    move_cursor*: proc (text_view: PTextView, step: TMovementStep, count: gint, 
-                        extend_selection: gboolean){.cdecl.}
-    page_horizontally*: proc (text_view: PTextView, count: gint, 
-                              extend_selection: gboolean){.cdecl.}
-    set_anchor*: proc (text_view: PTextView){.cdecl.}
-    insert_at_cursor*: proc (text_view: PTextView, str: cstring){.cdecl.}
-    delete_from_cursor*: proc (text_view: PTextView, thetype: TDeleteType, 
-                               count: gint){.cdecl.}
-    cut_clipboard*: proc (text_view: PTextView){.cdecl.}
-    copy_clipboard*: proc (text_view: PTextView){.cdecl.}
-    paste_clipboard*: proc (text_view: PTextView){.cdecl.}
-    toggle_overwrite*: proc (text_view: PTextView){.cdecl.}
-    move_focus*: proc (text_view: PTextView, direction: TDirectionType){.cdecl.}
-    reserved711: proc (){.cdecl.}
-    reserved712: proc (){.cdecl.}
-    reserved713: proc (){.cdecl.}
-    reserved714: proc (){.cdecl.}
-    reserved715: proc (){.cdecl.}
-    reserved716: proc (){.cdecl.}
-    reserved717: proc (){.cdecl.}
-    reserved718: proc (){.cdecl.}
-
-  PTipsQuery* = ptr TTipsQuery
-  TTipsQuery* = object of TLabel
-    TipsQuery_flag0*: guint16
-    label_inactive*: cstring
-    label_no_tip*: cstring
-    caller*: PWidget
-    last_crossed*: PWidget
-    query_cursor*: gdk2.PCursor
-
-  PTipsQueryClass* = ptr TTipsQueryClass
-  TTipsQueryClass* = object of TLabelClass
-    start_query*: proc (tips_query: PTipsQuery){.cdecl.}
-    stop_query*: proc (tips_query: PTipsQuery){.cdecl.}
-    widget_entered*: proc (tips_query: PTipsQuery, widget: PWidget, 
-                           tip_text: cstring, tip_private: cstring){.cdecl.}
-    widget_selected*: proc (tips_query: PTipsQuery, widget: PWidget, 
-                            tip_text: cstring, tip_private: cstring, 
-                            event: gdk2.PEventButton): gint{.cdecl.}
-    reserved721: proc (){.cdecl.}
-    reserved722: proc (){.cdecl.}
-    reserved723: proc (){.cdecl.}
-    reserved724: proc (){.cdecl.}
-
-  PTooltips* = ptr TTooltips
-  PTooltipsData* = ptr TTooltipsData
-  TTooltipsData*{.final, pure.} = object 
-    tooltips*: PTooltips
-    widget*: PWidget
-    tip_text*: cstring
-    tip_private*: cstring
-
-  TTooltips* = object of TObject
-    tip_window*: PWidget
-    tip_label*: PWidget
-    active_tips_data*: PTooltipsData
-    tips_data_list*: PGList
-    Tooltips_flag0*: int32
-    flag1*: guint16
-    timer_tag*: gint
-    last_popdown*: TGTimeVal
-
-  PTooltipsClass* = ptr TTooltipsClass
-  TTooltipsClass* = object of TObjectClass
-    reserved1: proc (){.cdecl.}
-    reserved2: proc (){.cdecl.}
-    reserved3: proc (){.cdecl.}
-    reserved4: proc (){.cdecl.}
-
-  PToolbarChildType* = ptr TToolbarChildType
-  TToolbarChildType* = enum 
-    TOOLBAR_CHILD_SPACE, TOOLBAR_CHILD_BUTTON, TOOLBAR_CHILD_TOGGLEBUTTON, 
-    TOOLBAR_CHILD_RADIOBUTTON, TOOLBAR_CHILD_WIDGET
-  PToolbarSpaceStyle* = ptr TToolbarSpaceStyle
-  TToolbarSpaceStyle* = enum 
-    TOOLBAR_SPACE_EMPTY, TOOLBAR_SPACE_LINE
-  PToolbarChild* = ptr TToolbarChild
-  TToolbarChild*{.final, pure.} = object 
-    `type`*: TToolbarChildType
-    widget*: PWidget
-    icon*: PWidget
-    label*: PWidget
-
-  PToolbar* = ptr TToolbar
-  TToolbar* = object of TContainer
-    num_children*: gint
-    children*: PGList
-    orientation*: TOrientation
-    Toolbar_style*: TToolbarStyle
-    icon_size*: TIconSize
-    tooltips*: PTooltips
-    button_maxw*: gint
-    button_maxh*: gint
-    style_set_connection*: guint
-    icon_size_connection*: guint
-    Toolbar_flag0*: guint16
-
-  PToolbarClass* = ptr TToolbarClass
-  TToolbarClass* = object of TContainerClass
-    orientation_changed*: proc (toolbar: PToolbar, orientation: TOrientation){.
-        cdecl.}
-    style_changed*: proc (toolbar: PToolbar, style: TToolbarStyle){.cdecl.}
-    reserved731: proc (){.cdecl.}
-    reserved732: proc (){.cdecl.}
-    reserved733: proc (){.cdecl.}
-    reserved734: proc (){.cdecl.}
-
-  PTreeViewMode* = ptr TTreeViewMode
-  TTreeViewMode* = enum 
-    TREE_VIEW_LINE, TREE_VIEW_ITEM
-  PTree* = ptr TTree
-  TTree* = object of TContainer
-    children*: PGList
-    root_tree*: PTree
-    tree_owner*: PWidget
-    selection*: PGList
-    level*: guint
-    indent_value*: guint
-    current_indent*: guint
-    Tree_flag0*: guint16
-
-  PTreeClass* = ptr TTreeClass
-  TTreeClass* = object of TContainerClass
-    selection_changed*: proc (tree: PTree){.cdecl.}
-    select_child*: proc (tree: PTree, child: PWidget){.cdecl.}
-    unselect_child*: proc (tree: PTree, child: PWidget){.cdecl.}
-
-  PTreeDragSource* = pointer
-  PTreeDragDest* = pointer
-  PTreeDragSourceIface* = ptr TTreeDragSourceIface
-  TTreeDragSourceIface* = object of TGTypeInterface
-    row_draggable*: proc (drag_source: PTreeDragSource, path: PTreePath): gboolean{.
-        cdecl.}
-    drag_data_get*: proc (drag_source: PTreeDragSource, path: PTreePath, 
-                          selection_data: PSelectionData): gboolean{.cdecl.}
-    drag_data_delete*: proc (drag_source: PTreeDragSource, path: PTreePath): gboolean{.
-        cdecl.}
-
-  PTreeDragDestIface* = ptr TTreeDragDestIface
-  TTreeDragDestIface* = object of TGTypeInterface
-    drag_data_received*: proc (drag_dest: PTreeDragDest, dest: PTreePath, 
-                               selection_data: PSelectionData): gboolean{.cdecl.}
-    row_drop_possible*: proc (drag_dest: PTreeDragDest, dest_path: PTreePath, 
-                              selection_data: PSelectionData): gboolean{.cdecl.}
-
-  PTreeItem* = ptr TTreeItem
-  TTreeItem* = object of TItem
-    subtree*: PWidget
-    pixmaps_box*: PWidget
-    plus_pix_widget*: PWidget
-    minus_pix_widget*: PWidget
-    pixmaps*: PGList
-    TreeItem_flag0*: guint16
-
-  PTreeItemClass* = ptr TTreeItemClass
-  TTreeItemClass* = object of TItemClass
-    expand*: proc (tree_item: PTreeItem){.cdecl.}
-    collapse*: proc (tree_item: PTreeItem){.cdecl.}
-
-  PTreeSelection* = ptr TTreeSelection
-  TTreeSelectionFunc* = proc (selection: PTreeSelection, model: PTreeModel, 
-                              path: PTreePath, 
-                              path_currently_selected: gboolean, data: gpointer): gboolean{.
-      cdecl.}
-  TTreeSelectionForeachFunc* = proc (model: PTreeModel, path: PTreePath, 
-                                     iter: PTreeIter, data: gpointer){.cdecl.}
-  TTreeSelection* = object of TGObject
-    tree_view*: PTreeView
-    thetype*: TSelectionMode
-    user_func*: TTreeSelectionFunc
-    user_data*: gpointer
-    destroy*: TDestroyNotify
-
-  PTreeSelectionClass* = ptr TTreeSelectionClass
-  TTreeSelectionClass* = object of TGObjectClass
-    changed*: proc (selection: PTreeSelection){.cdecl.}
-    reserved741: proc (){.cdecl.}
-    reserved742: proc (){.cdecl.}
-    reserved743: proc (){.cdecl.}
-    reserved744: proc (){.cdecl.}
-
-  PTreeStore* = ptr TTreeStore
-  TTreeStore* = object of TGObject
-    stamp*: gint
-    root*: gpointer
-    last*: gpointer
-    n_columns*: gint
-    sort_column_id*: gint
-    sort_list*: PGList
-    order*: TSortType
-    column_headers*: PGType
-    default_sort_func*: TTreeIterCompareFunc
-    default_sort_data*: gpointer
-    default_sort_destroy*: TDestroyNotify
-    TreeStore_flag0*: guint16
-
-  PTreeStoreClass* = ptr TTreeStoreClass
-  TTreeStoreClass* = object of TGObjectClass
-    reserved751: proc (){.cdecl.}
-    reserved752: proc (){.cdecl.}
-    reserved753: proc (){.cdecl.}
-    reserved754: proc (){.cdecl.}
-
-  PTreeViewColumnSizing* = ptr TTreeViewColumnSizing
-  TTreeViewColumnSizing* = enum 
-    TREE_VIEW_COLUMN_GROW_ONLY, TREE_VIEW_COLUMN_AUTOSIZE, 
-    TREE_VIEW_COLUMN_FIXED
-  TTreeCellDataFunc* = proc (tree_column: PTreeViewColumn, cell: PCellRenderer, 
-                             tree_model: PTreeModel, iter: PTreeIter, 
-                             data: gpointer){.cdecl.}
-  TTreeViewColumn* = object of TObject
-    tree_view*: PWidget
-    button*: PWidget
-    child*: PWidget
-    arrow*: PWidget
-    alignment*: PWidget
-    window*: gdk2.PWindow
-    editable_widget*: PCellEditable
-    xalign*: gfloat
-    property_changed_signal*: guint
-    spacing*: gint
-    column_type*: TTreeViewColumnSizing
-    requested_width*: gint
-    button_request*: gint
-    resized_width*: gint
-    width*: gint
-    fixed_width*: gint
-    min_width*: gint
-    max_width*: gint
-    drag_x*: gint
-    drag_y*: gint
-    title*: cstring
-    cell_list*: PGList
-    sort_clicked_signal*: guint
-    sort_column_changed_signal*: guint
-    sort_column_id*: gint
-    sort_order*: TSortType
-    TreeViewColumn_flag0*: guint16
-
-  PTreeViewColumnClass* = ptr TTreeViewColumnClass
-  TTreeViewColumnClass* = object of TObjectClass
-    clicked*: proc (tree_column: PTreeViewColumn){.cdecl.}
-    reserved751: proc (){.cdecl.}
-    reserved752: proc (){.cdecl.}
-    reserved753: proc (){.cdecl.}
-    reserved754: proc (){.cdecl.}
-
-  PRBNodeColor* = ptr TRBNodeColor
-  TRBNodeColor* = int32
-  PRBTree* = ptr TRBTree
-  PRBNode* = ptr TRBNode
-  TRBTreeTraverseFunc* = proc (tree: PRBTree, node: PRBNode, data: gpointer){.
-      cdecl.}
-  TRBTree*{.final, pure.} = object 
-    root*: PRBNode
-    `nil`*: PRBNode
-    parent_tree*: PRBTree
-    parent_node*: PRBNode
-
-  TRBNode*{.final, pure.} = object 
-    flag0*: guint16
-    left*: PRBNode
-    right*: PRBNode
-    parent*: PRBNode
-    count*: gint
-    offset*: gint
-    children*: PRBTree
-
-  PTreeRowReference* = pointer
-  PTreeViewFlags* = ptr TTreeViewFlags
-  TTreeViewFlags* = int32
-  TTreeViewSearchDialogPositionFunc* = proc (tree_view: PTreeView, 
-      search_dialog: PWidget){.cdecl.}
-  PTreeViewColumnReorder* = ptr TTreeViewColumnReorder
-  TTreeViewColumnReorder*{.final, pure.} = object 
-    left_align*: gint
-    right_align*: gint
-    left_column*: PTreeViewColumn
-    right_column*: PTreeViewColumn
-
-  PTreeViewPrivate* = ptr TTreeViewPrivate
-  TTreeViewPrivate*{.final, pure.} = object 
-    model*: PTreeModel
-    flags*: guint
-    tree*: PRBTree
-    button_pressed_node*: PRBNode
-    button_pressed_tree*: PRBTree
-    children*: PGList
-    width*: gint
-    height*: gint
-    expander_size*: gint
-    hadjustment*: PAdjustment
-    vadjustment*: PAdjustment
-    bin_window*: gdk2.PWindow
-    header_window*: gdk2.PWindow
-    drag_window*: gdk2.PWindow
-    drag_highlight_window*: gdk2.PWindow
-    drag_column*: PTreeViewColumn
-    last_button_press*: PTreeRowReference
-    last_button_press_2*: PTreeRowReference
-    top_row*: PTreeRowReference
-    top_row_dy*: gint
-    dy*: gint
-    drag_column_x*: gint
-    expander_column*: PTreeViewColumn
-    edited_column*: PTreeViewColumn
-    presize_handler_timer*: guint
-    validate_rows_timer*: guint
-    scroll_sync_timer*: guint
-    focus_column*: PTreeViewColumn
-    anchor*: PTreeRowReference
-    cursor*: PTreeRowReference
-    drag_pos*: gint
-    x_drag*: gint
-    prelight_node*: PRBNode
-    prelight_tree*: PRBTree
-    expanded_collapsed_node*: PRBNode
-    expanded_collapsed_tree*: PRBTree
-    expand_collapse_timeout*: guint
-    selection*: PTreeSelection
-    n_columns*: gint
-    columns*: PGList
-    header_height*: gint
-    column_drop_func*: TTreeViewColumnDropFunc
-    column_drop_func_data*: gpointer
-    column_drop_func_data_destroy*: TDestroyNotify
-    column_drag_info*: PGList
-    cur_reorder*: PTreeViewColumnReorder
-    destroy_count_func*: TTreeDestroyCountFunc
-    destroy_count_data*: gpointer
-    destroy_count_destroy*: TDestroyNotify
-    scroll_timeout*: guint
-    drag_dest_row*: PTreeRowReference
-    drag_dest_pos*: TTreeViewDropPosition
-    open_dest_timeout*: guint
-    pressed_button*: gint
-    press_start_x*: gint
-    press_start_y*: gint
-    scroll_to_path*: PTreeRowReference
-    scroll_to_column*: PTreeViewColumn
-    scroll_to_row_align*: gfloat
-    scroll_to_col_align*: gfloat
-    flag0*: guint16
-    search_column*: gint
-    search_dialog_position_func*: TTreeViewSearchDialogPositionFunc
-    search_equal_func*: TTreeViewSearchEqualFunc
-    search_user_data*: gpointer
-    search_destroy*: TDestroyNotify
-
-  TTreeView* = object of TContainer
-    priv*: PTreeViewPrivate
-
-  PTreeViewClass* = ptr TTreeViewClass
-  TTreeViewClass* = object of TContainerClass
-    set_scroll_adjustments*: proc (tree_view: PTreeView, 
-                                   hadjustment: PAdjustment, 
-                                   vadjustment: PAdjustment){.cdecl.}
-    row_activated*: proc (tree_view: PTreeView, path: PTreePath, 
-                          column: PTreeViewColumn){.cdecl.}
-    test_expand_row*: proc (tree_view: PTreeView, iter: PTreeIter, 
-                            path: PTreePath): gboolean{.cdecl.}
-    test_collapse_row*: proc (tree_view: PTreeView, iter: PTreeIter, 
-                              path: PTreePath): gboolean{.cdecl.}
-    row_expanded*: proc (tree_view: PTreeView, iter: PTreeIter, path: PTreePath){.
-        cdecl.}
-    row_collapsed*: proc (tree_view: PTreeView, iter: PTreeIter, path: PTreePath){.
-        cdecl.}
-    columns_changed*: proc (tree_view: PTreeView){.cdecl.}
-    cursor_changed*: proc (tree_view: PTreeView){.cdecl.}
-    move_cursor*: proc (tree_view: PTreeView, step: TMovementStep, count: gint): gboolean{.
-        cdecl.}
-    select_all*: proc (tree_view: PTreeView){.cdecl.}
-    unselect_all*: proc (tree_view: PTreeView){.cdecl.}
-    select_cursor_row*: proc (tree_view: PTreeView, start_editing: gboolean){.
-        cdecl.}
-    toggle_cursor_row*: proc (tree_view: PTreeView){.cdecl.}
-    expand_collapse_cursor_row*: proc (tree_view: PTreeView, logical: gboolean, 
-                                       expand: gboolean, open_all: gboolean){.
-        cdecl.}
-    select_cursor_parent*: proc (tree_view: PTreeView){.cdecl.}
-    start_interactive_search*: proc (tree_view: PTreeView){.cdecl.}
-    reserved760: proc (){.cdecl.}
-    reserved761: proc (){.cdecl.}
-    reserved762: proc (){.cdecl.}
-    reserved763: proc (){.cdecl.}
-    reserved764: proc (){.cdecl.}
-
-  PVButtonBox* = ptr TVButtonBox
-  TVButtonBox* = object of TButtonBox
-  PVButtonBoxClass* = ptr TVButtonBoxClass
-  TVButtonBoxClass* = object of TButtonBoxClass
-  PViewport* = ptr TViewport
-  TViewport* = object of TBin
-    shadow_type*: TShadowType
-    view_window*: gdk2.PWindow
-    bin_window*: gdk2.PWindow
-    hadjustment*: PAdjustment
-    vadjustment*: PAdjustment
-
-  PViewportClass* = ptr TViewportClass
-  TViewportClass* = object of TBinClass
-    set_scroll_adjustments*: proc (viewport: PViewport, 
-                                   hadjustment: PAdjustment, 
-                                   vadjustment: PAdjustment){.cdecl.}
-
-  PVPaned* = ptr TVPaned
-  TVPaned* = object of TPaned
-  PVPanedClass* = ptr TVPanedClass
-  TVPanedClass* = object of TPanedClass
-  PVRuler* = ptr TVRuler
-  TVRuler* = object of TRuler
-  PVRulerClass* = ptr TVRulerClass
-  TVRulerClass* = object of TRulerClass
-  PVScale* = ptr TVScale
-  TVScale* = object of TScale
-  PVScaleClass* = ptr TVScaleClass
-  TVScaleClass* = object of TScaleClass
-  PVScrollbar* = ptr TVScrollbar
-  TVScrollbar* = object of TScrollbar
-  PVScrollbarClass* = ptr TVScrollbarClass
-  TVScrollbarClass* = object of TScrollbarClass
-  PVSeparator* = ptr TVSeparator
-  TVSeparator* = object of TSeparator
-  PVSeparatorClass* = ptr TVSeparatorClass
-  TVSeparatorClass* = object of TSeparatorClass
-
-const 
-  IN_DESTRUCTION* = 1 shl 0
-  FLOATING* = 1 shl 1
-  RESERVED_1* = 1 shl 2
-  RESERVED_2* = 1 shl 3
-  ARG_READABLE* = G_PARAM_READABLE
-  ARG_WRITABLE* = G_PARAM_WRITABLE
-  ARG_CONSTRUCT* = G_PARAM_CONSTRUCT
-  ARG_CONSTRUCT_ONLY* = G_PARAM_CONSTRUCT_ONLY
-  ARG_CHILD_ARG* = 1 shl 4
-
-proc TYPE_OBJECT*(): GType
-proc `OBJECT`*(anObject: pointer): PObject
-proc OBJECT_CLASS*(klass: pointer): PObjectClass
-proc IS_OBJECT*(anObject: pointer): bool
-proc IS_OBJECT_CLASS*(klass: pointer): bool
-proc OBJECT_GET_CLASS*(anObject: pointer): PObjectClass
-proc OBJECT_TYPE*(anObject: pointer): GType
-proc OBJECT_TYPE_NAME*(anObject: pointer): cstring
-proc OBJECT_FLAGS*(obj: pointer): guint32
-proc OBJECT_FLOATING*(obj: pointer): gboolean
-proc OBJECT_SET_FLAGS*(obj: pointer, flag: guint32)
-proc OBJECT_UNSET_FLAGS*(obj: pointer, flag: guint32)
-proc object_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_object_get_type".}
-proc object_new*(thetype: TType, first_property_name: cstring): PObject{.cdecl, 
-    varargs, dynlib: lib, importc: "gtk_object_new".}
-proc sink*(anObject: PObject){.cdecl, dynlib: lib, 
-                                      importc: "gtk_object_sink".}
-proc destroy*(anObject: PObject){.cdecl, dynlib: lib, 
-    importc: "gtk_object_destroy".}
-const 
-  TYPE_INVALID* = G_TYPE_INVALID
-  TYPE_NONE* = G_TYPE_NONE
-  TYPE_ENUM* = G_TYPE_ENUM
-  TYPE_FLAGS* = G_TYPE_FLAGS
-  TYPE_CHAR* = G_TYPE_CHAR
-  TYPE_UCHAR* = G_TYPE_UCHAR
-  TYPE_BOOL* = G_TYPE_BOOLEAN
-  TYPE_INT* = G_TYPE_INT
-  TYPE_UINT* = G_TYPE_UINT
-  TYPE_LONG* = G_TYPE_LONG
-  TYPE_ULONG* = G_TYPE_ULONG
-  TYPE_FLOAT* = G_TYPE_FLOAT
-  TYPE_DOUBLE* = G_TYPE_DOUBLE
-  TYPE_STRING* = G_TYPE_STRING
-  TYPE_BOXED* = G_TYPE_BOXED
-  TYPE_POINTER* = G_TYPE_POINTER
-
-proc TYPE_IDENTIFIER*(): GType
-proc identifier_get_type*(): GType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_identifier_get_type".}
-proc SIGNAL_FUNC*(f: pointer): TSignalFunc
-proc type_class*(thetype: TType): gpointer{.cdecl, dynlib: lib, 
-    importc: "gtk_type_class".}
-const 
-  TOPLEVEL* = 1 shl 4
-  NO_WINDOW* = 1 shl 5
-  constREALIZED* = 1 shl 6
-  MAPPED* = 1 shl 7
-  constVISIBLE* = 1 shl 8
-  SENSITIVE* = 1 shl 9
-  PARENT_SENSITIVE* = 1 shl 10
-  CAN_FOCUS* = 1 shl 11
-  constHAS_FOCUS* = 1 shl 12
-  CAN_DEFAULT* = 1 shl 13
-  HAS_DEFAULT* = 1 shl 14
-  HAS_GRAB* = 1 shl 15
-  RC_STYLE* = 1 shl 16
-  COMPOSITE_CHILD* = 1 shl 17
-  NO_REPARENT* = 1 shl 18
-  APP_PAINTABLE* = 1 shl 19
-  RECEIVES_DEFAULT* = 1 shl 20
-  DOUBLE_BUFFERED* = 1 shl 21
-
-const 
-  bm_TGtkWidgetAuxInfo_x_set* = 0x0001'i16
-  bp_TGtkWidgetAuxInfo_x_set* = 0'i16
-  bm_TGtkWidgetAuxInfo_y_set* = 0x0002'i16
-  bp_TGtkWidgetAuxInfo_y_set* = 1'i16
-
-proc TYPE_WIDGET*(): GType
-proc WIDGET*(widget: pointer): PWidget
-proc WIDGET_CLASS*(klass: pointer): PWidgetClass
-proc IS_WIDGET*(widget: pointer): bool
-proc IS_WIDGET_CLASS*(klass: pointer): bool
-proc WIDGET_GET_CLASS*(obj: pointer): PWidgetClass
-proc WIDGET_TYPE*(wid: pointer): GType
-proc WIDGET_STATE*(wid: pointer): int32
-proc WIDGET_SAVED_STATE*(wid: pointer): int32
-proc WIDGET_FLAGS*(wid: pointer): guint32
-proc WIDGET_TOPLEVEL*(wid: pointer): gboolean
-proc WIDGET_NO_WINDOW*(wid: pointer): gboolean
-proc WIDGET_REALIZED*(wid: pointer): gboolean
-proc WIDGET_MAPPED*(wid: pointer): gboolean
-proc WIDGET_VISIBLE*(wid: pointer): gboolean
-proc WIDGET_DRAWABLE*(wid: pointer): gboolean
-proc WIDGET_SENSITIVE*(wid: pointer): gboolean
-proc WIDGET_PARENT_SENSITIVE*(wid: pointer): gboolean
-proc WIDGET_IS_SENSITIVE*(wid: pointer): gboolean
-proc WIDGET_CAN_FOCUS*(wid: pointer): gboolean
-proc WIDGET_HAS_FOCUS*(wid: pointer): gboolean
-proc WIDGET_CAN_DEFAULT*(wid: pointer): gboolean
-proc WIDGET_HAS_DEFAULT*(wid: pointer): gboolean
-proc WIDGET_HAS_GRAB*(wid: pointer): gboolean
-proc WIDGET_RC_STYLE*(wid: pointer): gboolean
-proc WIDGET_COMPOSITE_CHILD*(wid: pointer): gboolean
-proc WIDGET_APP_PAINTABLE*(wid: pointer): gboolean
-proc WIDGET_RECEIVES_DEFAULT*(wid: pointer): gboolean
-proc WIDGET_DOUBLE_BUFFERED*(wid: pointer): gboolean
-proc SET_FLAGS*(wid: PWidget, flags: TWidgetFlags): TWidgetFlags
-proc UNSET_FLAGS*(wid: PWidget, flags: TWidgetFlags): TWidgetFlags
-proc TYPE_REQUISITION*(): GType
-proc x_set*(a: PWidgetAuxInfo): guint
-proc set_x_set*(a: PWidgetAuxInfo, x_set: guint)
-proc y_set*(a: PWidgetAuxInfo): guint
-proc set_y_set*(a: PWidgetAuxInfo, y_set: guint)
-proc widget_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_widget_get_type".}
-proc reference*(widget: PWidget): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_ref".}
-proc unref*(widget: PWidget){.cdecl, dynlib: lib, 
-                                     importc: "gtk_widget_unref".}
-proc destroy*(widget: PWidget){.cdecl, dynlib: lib, 
-                                       importc: "gtk_widget_destroy".}
-proc destroyed*(widget: PWidget, r: var PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_destroyed".}
-proc unparent*(widget: PWidget){.cdecl, dynlib: lib, 
-                                        importc: "gtk_widget_unparent".}
-proc show*(widget: PWidget){.cdecl, dynlib: lib, 
-                                    importc: "gtk_widget_show".}
-proc show_now*(widget: PWidget){.cdecl, dynlib: lib, 
-                                        importc: "gtk_widget_show_now".}
-proc hide*(widget: PWidget){.cdecl, dynlib: lib, 
-                                    importc: "gtk_widget_hide".}
-proc show_all*(widget: PWidget){.cdecl, dynlib: lib, 
-                                        importc: "gtk_widget_show_all".}
-proc hide_all*(widget: PWidget){.cdecl, dynlib: lib, 
-                                        importc: "gtk_widget_hide_all".}
-proc map*(widget: PWidget){.cdecl, dynlib: lib, importc: "gtk_widget_map".}
-proc unmap*(widget: PWidget){.cdecl, dynlib: lib, 
-                                     importc: "gtk_widget_unmap".}
-proc realize*(widget: PWidget){.cdecl, dynlib: lib, 
-                                       importc: "gtk_widget_realize".}
-proc unrealize*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_unrealize".}
-proc queue_draw*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_queue_draw".}
-proc queue_draw_area*(widget: PWidget, x: gint, y: gint, width: gint, 
-                             height: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_queue_draw_area".}
-proc queue_resize*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_queue_resize".}
-proc size_request*(widget: PWidget, requisition: PRequisition){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_size_request".}
-proc size_allocate*(widget: PWidget, allocation: PAllocation){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_size_allocate".}
-proc get_child_requisition*(widget: PWidget, requisition: PRequisition){.
-    cdecl, dynlib: lib, importc: "gtk_widget_get_child_requisition".}
-proc add_accelerator*(widget: PWidget, accel_signal: cstring, 
-                             accel_group: PAccelGroup, accel_key: guint, 
-                             accel_mods: gdk2.TModifierType, 
-                             accel_flags: TAccelFlags){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_add_accelerator".}
-proc remove_accelerator*(widget: PWidget, accel_group: PAccelGroup, 
-                                accel_key: guint, accel_mods: gdk2.TModifierType): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_widget_remove_accelerator".}
-proc set_accel_path*(widget: PWidget, accel_path: cstring, 
-                            accel_group: PAccelGroup){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_set_accel_path".}
-proc get_accel_path*(widget: PWidget, locked: Pgboolean): cstring{.cdecl, 
-    dynlib: lib, importc: "_gtk_widget_get_accel_path".}
-proc list_accel_closures*(widget: PWidget): PGList{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_list_accel_closures".}
-proc mnemonic_activate*(widget: PWidget, group_cycling: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_widget_mnemonic_activate".}
-proc event*(widget: PWidget, event: gdk2.PEvent): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_event".}
-proc send_expose*(widget: PWidget, event: gdk2.PEvent): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_send_expose".}
-proc activate*(widget: PWidget): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_activate".}
-proc set_scroll_adjustments*(widget: PWidget, hadjustment: PAdjustment, 
-                                    vadjustment: PAdjustment): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_set_scroll_adjustments".}
-proc reparent*(widget: PWidget, new_parent: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_reparent".}
-proc intersect*(widget: PWidget, area: gdk2.PRectangle, 
-                       intersection: gdk2.PRectangle): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_intersect".}
-proc region_intersect*(widget: PWidget, region: gdk2.PRegion): gdk2.PRegion{.
-    cdecl, dynlib: lib, importc: "gtk_widget_region_intersect".}
-proc freeze_child_notify*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_freeze_child_notify".}
-proc child_notify*(widget: PWidget, child_property: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_child_notify".}
-proc thaw_child_notify*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_thaw_child_notify".}
-proc is_focus*(widget: PWidget): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_is_focus".}
-proc grab_focus*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_grab_focus".}
-proc grab_default*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_grab_default".}
-proc set_name*(widget: PWidget, name: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_set_name".}
-proc get_name*(widget: PWidget): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_name".}
-proc set_state*(widget: PWidget, state: TStateType){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_set_state".}
-proc set_sensitive*(widget: PWidget, sensitive: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_set_sensitive".}
-proc set_app_paintable*(widget: PWidget, app_paintable: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_set_app_paintable".}
-proc set_double_buffered*(widget: PWidget, double_buffered: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_widget_set_double_buffered".}
-proc set_redraw_on_allocate*(widget: PWidget, 
-                                    redraw_on_allocate: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_set_redraw_on_allocate".}
-proc set_parent*(widget: PWidget, parent: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_set_parent".}
-proc set_parent_window*(widget: PWidget, parent_window: gdk2.PWindow){.
-    cdecl, dynlib: lib, importc: "gtk_widget_set_parent_window".}
-proc set_child_visible*(widget: PWidget, is_visible: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_set_child_visible".}
-proc get_child_visible*(widget: PWidget): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_child_visible".}
-proc get_parent*(widget: PWidget): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_parent".}
-proc get_parent_window*(widget: PWidget): gdk2.PWindow{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_parent_window".}
-proc child_focus*(widget: PWidget, direction: TDirectionType): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_widget_child_focus".}
-proc set_size_request*(widget: PWidget, width: gint, height: gint){.
-    cdecl, dynlib: lib, importc: "gtk_widget_set_size_request".}
-proc get_size_request*(widget: PWidget, width: Pgint, height: Pgint){.
-    cdecl, dynlib: lib, importc: "gtk_widget_get_size_request".}
-proc set_events*(widget: PWidget, events: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_set_events".}
-proc add_events*(widget: PWidget, events: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_add_events".}
-proc set_extension_events*(widget: PWidget, mode: gdk2.TExtensionMode){.
-    cdecl, dynlib: lib, importc: "gtk_widget_set_extension_events".}
-proc get_extension_events*(widget: PWidget): gdk2.TExtensionMode{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_get_extension_events".}
-proc get_toplevel*(widget: PWidget): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_toplevel".}
-proc get_ancestor*(widget: PWidget, widget_type: TType): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_get_ancestor".}
-proc get_colormap*(widget: PWidget): gdk2.PColormap{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_colormap".}
-proc get_visual*(widget: PWidget): gdk2.PVisual{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_visual".}
-proc get_screen*(widget: PWidget): gdk2.PScreen{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_screen".}
-proc has_screen*(widget: PWidget): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_has_screen".}
-proc get_display*(widget: PWidget): gdk2.PDisplay{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_display".}
-proc get_root_window*(widget: PWidget): gdk2.PWindow{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_root_window".}
-proc get_settings*(widget: PWidget): PSettings{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_settings".}
-proc get_clipboard*(widget: PWidget, selection: gdk2.TAtom): PClipboard{.
-    cdecl, dynlib: lib, importc: "gtk_widget_get_clipboard".}
-proc get_accessible*(widget: PWidget): atk.PObject{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_accessible".}
-proc set_colormap*(widget: PWidget, colormap: gdk2.PColormap){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_set_colormap".}
-proc get_events*(widget: PWidget): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_events".}
-proc get_pointer*(widget: PWidget, x: Pgint, y: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_get_pointer".}
-proc is_ancestor*(widget: PWidget, ancestor: PWidget): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_is_ancestor".}
-proc translate_coordinates*(src_widget: PWidget, dest_widget: PWidget, 
-                                   src_x: gint, src_y: gint, dest_x: Pgint, 
-                                   dest_y: Pgint): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_translate_coordinates".}
-proc hide_on_delete*(widget: PWidget): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_hide_on_delete".}
-proc set_style*(widget: PWidget, style: PStyle){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_set_style".}
-proc ensure_style*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_ensure_style".}
-proc get_style*(widget: PWidget): PStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_style".}
-proc modify_style*(widget: PWidget, style: PRcStyle){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_modify_style".}
-proc get_modifier_style*(widget: PWidget): PRcStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_modifier_style".}
-proc modify_fg*(widget: PWidget, state: TStateType, color: gdk2.PColor){.
-    cdecl, dynlib: lib, importc: "gtk_widget_modify_fg".}
-proc modify_bg*(widget: PWidget, state: TStateType, color: gdk2.PColor){.
-    cdecl, dynlib: lib, importc: "gtk_widget_modify_bg".}
-proc modify_text*(widget: PWidget, state: TStateType, color: gdk2.PColor){.
-    cdecl, dynlib: lib, importc: "gtk_widget_modify_text".}
-proc modify_base*(widget: PWidget, state: TStateType, color: gdk2.PColor){.
-    cdecl, dynlib: lib, importc: "gtk_widget_modify_base".}
-proc modify_font*(widget: PWidget, font_desc: pango.PFontDescription){.
-    cdecl, dynlib: lib, importc: "gtk_widget_modify_font".}
-proc create_pango_context*(widget: PWidget): pango.PContext{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_create_pango_context".}
-proc get_pango_context*(widget: PWidget): pango.PContext{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_get_pango_context".}
-proc create_pango_layout*(widget: PWidget, text: cstring): pango.PLayout{.
-    cdecl, dynlib: lib, importc: "gtk_widget_create_pango_layout".}
-proc render_icon*(widget: PWidget, stock_id: cstring, size: TIconSize, 
-                         detail: cstring): gdk2pixbuf.PPixbuf{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_render_icon".}
-proc set_composite_name*(widget: PWidget, name: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_set_composite_name".}
-proc get_composite_name*(widget: PWidget): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_composite_name".}
-proc reset_rc_styles*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_reset_rc_styles".}
-proc widget_push_colormap*(cmap: gdk2.PColormap){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_push_colormap".}
-proc widget_push_composite_child*(){.cdecl, dynlib: lib, 
-                                     importc: "gtk_widget_push_composite_child".}
-proc widget_pop_composite_child*(){.cdecl, dynlib: lib, 
-                                    importc: "gtk_widget_pop_composite_child".}
-proc widget_pop_colormap*(){.cdecl, dynlib: lib, 
-                             importc: "gtk_widget_pop_colormap".}
-proc install_style_property*(klass: PWidgetClass, 
-    pspec: PGParamSpec){.cdecl, dynlib: lib, 
-                         importc: "gtk_widget_class_install_style_property".}
-proc install_style_property_parser*(klass: PWidgetClass, 
-    pspec: PGParamSpec, parser: TRcPropertyParser){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_class_install_style_property_parser".}
-proc find_style_property*(klass: PWidgetClass, 
-                                       property_name: cstring): PGParamSpec{.
-    cdecl, dynlib: lib, importc: "gtk_widget_class_find_style_property".}
-proc list_style_properties*(klass: PWidgetClass, 
-    n_properties: Pguint): PPGParamSpec{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_class_list_style_properties".}
-proc style_get_property*(widget: PWidget, property_name: cstring, 
-                                value: PGValue){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_style_get_property".}
-proc widget_set_default_colormap*(colormap: gdk2.PColormap){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_set_default_colormap".}
-proc widget_get_default_style*(): PStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_default_style".}
-proc set_direction*(widget: PWidget, dir: TTextDirection){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_set_direction".}
-proc get_direction*(widget: PWidget): TTextDirection{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_direction".}
-proc widget_set_default_direction*(dir: TTextDirection){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_set_default_direction".}
-proc widget_get_default_direction*(): TTextDirection{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_default_direction".}
-proc shape_combine_mask*(widget: PWidget, shape_mask: gdk2.PBitmap, 
-                                offset_x: gint, offset_y: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_shape_combine_mask".}
-proc reset_shapes*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_reset_shapes".}
-proc path*(widget: PWidget, path_length: Pguint, path: PPgchar, 
-                  path_reversed: PPgchar){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_path".}
-proc class_path*(widget: PWidget, path_length: Pguint, path: PPgchar, 
-                        path_reversed: PPgchar){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_class_path".}
-proc requisition_get_type*(): GType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_requisition_get_type".}
-proc copy*(requisition: PRequisition): PRequisition{.cdecl, 
-    dynlib: lib, importc: "gtk_requisition_copy".}
-proc free*(requisition: PRequisition){.cdecl, dynlib: lib, 
-    importc: "gtk_requisition_free".}
-proc get_aux_info*(widget: PWidget, create: gboolean): PWidgetAuxInfo{.
-    cdecl, dynlib: lib, importc: "gtk_widget_get_aux_info".}
-proc propagate_hierarchy_changed*(widget: PWidget, 
-    previous_toplevel: PWidget){.cdecl, dynlib: lib, importc: "_gtk_widget_propagate_hierarchy_changed".}
-proc widget_peek_colormap*(): gdk2.PColormap{.cdecl, dynlib: lib, 
-    importc: "_gtk_widget_peek_colormap".}
-proc TYPE_MISC*(): GType
-proc MISC*(obj: pointer): PMisc
-proc MISC_CLASS*(klass: pointer): PMiscClass
-proc IS_MISC*(obj: pointer): bool
-proc IS_MISC_CLASS*(klass: pointer): bool
-proc MISC_GET_CLASS*(obj: pointer): PMiscClass
-proc misc_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_misc_get_type".}
-proc set_alignment*(misc: PMisc, xalign: gfloat, yalign: gfloat){.cdecl, 
-    dynlib: lib, importc: "gtk_misc_set_alignment".}
-proc get_alignment*(misc: PMisc, xalign, yalign: var Pgfloat){.cdecl, 
-    dynlib: lib, importc: "gtk_misc_get_alignment".}
-proc set_padding*(misc: PMisc, xpad: gint, ypad: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_misc_set_padding".}
-proc get_padding*(misc: PMisc, xpad, ypad: var Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_misc_get_padding".}
-const 
-  ACCEL_VISIBLE* = 1 shl 0
-  ACCEL_LOCKED* = 1 shl 1
-  ACCEL_MASK* = 0x00000007
-  bm_TGtkAccelKey_accel_flags* = 0xFFFF'i16
-  bp_TGtkAccelKey_accel_flags* = 0'i16
-
-proc TYPE_ACCEL_GROUP*(): GType
-proc ACCEL_GROUP*(anObject: pointer): PAccelGroup
-proc ACCEL_GROUP_CLASS*(klass: pointer): PAccelGroupClass
-proc IS_ACCEL_GROUP*(anObject: pointer): bool
-proc IS_ACCEL_GROUP_CLASS*(klass: pointer): bool
-proc ACCEL_GROUP_GET_CLASS*(obj: pointer): PAccelGroupClass
-proc accel_flags*(a: PAccelKey): guint
-proc set_accel_flags*(a: PAccelKey, `accel_flags`: guint)
-proc accel_group_get_type*(): GType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_accel_group_get_type".}
-proc accel_group_new*(): PAccelGroup{.cdecl, dynlib: lib, 
-                                      importc: "gtk_accel_group_new".}
-proc lock*(accel_group: PAccelGroup){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_group_lock".}
-proc unlock*(accel_group: PAccelGroup){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_group_unlock".}
-proc connect*(accel_group: PAccelGroup, accel_key: guint, 
-                          accel_mods: gdk2.TModifierType, 
-                          accel_flags: TAccelFlags, closure: PGClosure){.cdecl, 
-    dynlib: lib, importc: "gtk_accel_group_connect".}
-proc connect_by_path*(accel_group: PAccelGroup, accel_path: cstring, 
-                                  closure: PGClosure){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_group_connect_by_path".}
-proc disconnect*(accel_group: PAccelGroup, closure: PGClosure): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_accel_group_disconnect".}
-proc disconnect_key*(accel_group: PAccelGroup, accel_key: guint, 
-                                 accel_mods: gdk2.TModifierType): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_accel_group_disconnect_key".}
-proc attach*(accel_group: PAccelGroup, anObject: PGObject){.cdecl, 
-    dynlib: lib, importc: "_gtk_accel_group_attach".}
-proc detach*(accel_group: PAccelGroup, anObject: PGObject){.cdecl, 
-    dynlib: lib, importc: "_gtk_accel_group_detach".}
-proc accel_groups_activate*(anObject: PGObject, accel_key: guint, 
-                            accel_mods: gdk2.TModifierType): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_accel_groups_activate".}
-proc accel_groups_from_object*(anObject: PGObject): PGSList{.cdecl, dynlib: lib, 
-    importc: "gtk_accel_groups_from_object".}
-proc find*(accel_group: PAccelGroup, 
-                       find_func: Taccel_group_find_func, data: gpointer): PAccelKey{.
-    cdecl, dynlib: lib, importc: "gtk_accel_group_find".}
-proc accel_group_from_accel_closure*(closure: PGClosure): PAccelGroup{.cdecl, 
-    dynlib: lib, importc: "gtk_accel_group_from_accel_closure".}
-proc accelerator_valid*(keyval: guint, modifiers: gdk2.TModifierType): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_accelerator_valid".}
-proc accelerator_parse*(accelerator: cstring, accelerator_key: Pguint, 
-                        accelerator_mods: gdk2.PModifierType){.cdecl, dynlib: lib, 
-    importc: "gtk_accelerator_parse".}
-proc accelerator_name*(accelerator_key: guint, 
-                       accelerator_mods: gdk2.TModifierType): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_accelerator_name".}
-proc accelerator_set_default_mod_mask*(default_mod_mask: gdk2.TModifierType){.
-    cdecl, dynlib: lib, importc: "gtk_accelerator_set_default_mod_mask".}
-proc accelerator_get_default_mod_mask*(): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_accelerator_get_default_mod_mask".}
-proc query*(accel_group: PAccelGroup, accel_key: guint, 
-                        accel_mods: gdk2.TModifierType, n_entries: Pguint): PAccelGroupEntry{.
-    cdecl, dynlib: lib, importc: "gtk_accel_group_query".}
-proc reconnect*(accel_group: PAccelGroup, accel_path_quark: TGQuark){.
-    cdecl, dynlib: lib, importc: "_gtk_accel_group_reconnect".}
-const 
-  bm_TGtkContainer_border_width* = 0x0000FFFF'i32
-  bp_TGtkContainer_border_width* = 0'i32
-  bm_TGtkContainer_need_resize* = 0x00010000'i32
-  bp_TGtkContainer_need_resize* = 16'i32
-  bm_TGtkContainer_resize_mode* = 0x00060000'i32
-  bp_TGtkContainer_resize_mode* = 17'i32
-  bm_TGtkContainer_reallocate_redraws* = 0x00080000'i32
-  bp_TGtkContainer_reallocate_redraws* = 19'i32
-  bm_TGtkContainer_has_focus_chain* = 0x00100000'i32
-  bp_TGtkContainer_has_focus_chain* = 20'i32
-
-proc TYPE_CONTAINER*(): GType
-proc CONTAINER*(obj: pointer): PContainer
-proc CONTAINER_CLASS*(klass: pointer): PContainerClass
-proc IS_CONTAINER*(obj: pointer): bool
-proc IS_CONTAINER_CLASS*(klass: pointer): bool
-proc CONTAINER_GET_CLASS*(obj: pointer): PContainerClass
-proc IS_RESIZE_CONTAINER*(widget: pointer): bool
-proc border_width*(a: PContainer): guint
-proc need_resize*(a: PContainer): guint
-proc set_need_resize*(a: PContainer, `need_resize`: guint)
-proc resize_mode*(a: PContainer): guint
-proc set_resize_mode*(a: PContainer, `resize_mode`: guint)
-proc reallocate_redraws*(a: PContainer): guint
-proc set_reallocate_redraws*(a: PContainer, `reallocate_redraws`: guint)
-proc has_focus_chain*(a: PContainer): guint
-proc set_has_focus_chain*(a: PContainer, `has_focus_chain`: guint)
-proc container_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_container_get_type".}
-proc set_border_width*(container: PContainer, border_width: guint){.
-    cdecl, dynlib: lib, importc: "gtk_container_set_border_width".}
-proc get_border_width*(container: PContainer): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_container_get_border_width".}
-proc add*(container: PContainer, widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_container_add".}
-proc remove*(container: PContainer, widget: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_container_remove".}
-proc set_resize_mode*(container: PContainer, resize_mode: TResizeMode){.
-    cdecl, dynlib: lib, importc: "gtk_container_set_resize_mode".}
-proc get_resize_mode*(container: PContainer): TResizeMode{.cdecl, 
-    dynlib: lib, importc: "gtk_container_get_resize_mode".}
-proc check_resize*(container: PContainer){.cdecl, dynlib: lib, 
-    importc: "gtk_container_check_resize".}
-proc foreach*(container: PContainer, callback: TCallback, 
-                        callback_data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_container_foreach".}
-proc get_children*(container: PContainer): PGList{.cdecl, dynlib: lib, 
-    importc: "gtk_container_get_children".}
-proc propagate_expose*(container: PContainer, child: PWidget, 
-                                 event: gdk2.PEventExpose){.cdecl, dynlib: lib, 
-    importc: "gtk_container_propagate_expose".}
-proc set_focus_chain*(container: PContainer, focusable_widgets: PGList){.
-    cdecl, dynlib: lib, importc: "gtk_container_set_focus_chain".}
-proc get_focus_chain*(container: PContainer, s: var PGList): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_container_get_focus_chain".}
-proc unset_focus_chain*(container: PContainer){.cdecl, dynlib: lib, 
-    importc: "gtk_container_unset_focus_chain".}
-proc set_reallocate_redraws*(container: PContainer, 
-                                       needs_redraws: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_container_set_reallocate_redraws".}
-proc set_focus_child*(container: PContainer, child: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_container_set_focus_child".}
-proc set_focus_vadjustment*(container: PContainer, 
-                                      adjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_container_set_focus_vadjustment".}
-proc get_focus_vadjustment*(container: PContainer): PAdjustment{.
-    cdecl, dynlib: lib, importc: "gtk_container_get_focus_vadjustment".}
-proc set_focus_hadjustment*(container: PContainer, 
-                                      adjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_container_set_focus_hadjustment".}
-proc get_focus_hadjustment*(container: PContainer): PAdjustment{.
-    cdecl, dynlib: lib, importc: "gtk_container_get_focus_hadjustment".}
-proc resize_children*(container: PContainer){.cdecl, dynlib: lib, 
-    importc: "gtk_container_resize_children".}
-proc child_type*(container: PContainer): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_container_child_type".}
-proc install_child_property*(cclass: PContainerClass, 
-    property_id: guint, pspec: PGParamSpec){.cdecl, dynlib: lib, 
-    importc: "gtk_container_class_install_child_property".}
-proc container_class_find_child_property*(cclass: PGObjectClass, 
-    property_name: cstring): PGParamSpec{.cdecl, dynlib: lib, 
-    importc: "gtk_container_class_find_child_property".}
-proc container_class_list_child_properties*(cclass: PGObjectClass, 
-    n_properties: Pguint): PPGParamSpec{.cdecl, dynlib: lib, 
-    importc: "gtk_container_class_list_child_properties".}
-proc child_set_property*(container: PContainer, child: PWidget, 
-                                   property_name: cstring, value: PGValue){.
-    cdecl, dynlib: lib, importc: "gtk_container_child_set_property".}
-proc child_get_property*(container: PContainer, child: PWidget, 
-                                   property_name: cstring, value: PGValue){.
-    cdecl, dynlib: lib, importc: "gtk_container_child_get_property".}
-proc CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID*(anObject: pointer, 
-    property_id: guint, pspec: pointer)
-proc forall*(container: PContainer, callback: TCallback, 
-                       callback_data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_container_forall".}
-proc queue_resize*(container: PContainer){.cdecl, dynlib: lib, 
-    importc: "_gtk_container_queue_resize".}
-proc clear_resize_widgets*(container: PContainer){.cdecl, dynlib: lib, 
-    importc: "_gtk_container_clear_resize_widgets".}
-proc child_composite_name*(container: PContainer, child: PWidget): cstring{.
-    cdecl, dynlib: lib, importc: "_gtk_container_child_composite_name".}
-proc dequeue_resize_handler*(container: PContainer){.cdecl, 
-    dynlib: lib, importc: "_gtk_container_dequeue_resize_handler".}
-proc focus_sort*(container: PContainer, children: PGList, 
-                           direction: TDirectionType, old_focus: PWidget): PGList{.
-    cdecl, dynlib: lib, importc: "_gtk_container_focus_sort".}
-proc TYPE_BIN*(): GType
-proc BIN*(obj: pointer): PBin
-proc BIN_CLASS*(klass: pointer): PBinClass
-proc IS_BIN*(obj: pointer): bool
-proc IS_BIN_CLASS*(klass: pointer): bool
-proc BIN_GET_CLASS*(obj: pointer): PBinClass
-proc bin_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_bin_get_type".}
-proc get_child*(bin: PBin): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_bin_get_child".}
-const 
-  bm_TGtkWindow_allow_shrink* = 0x00000001'i32
-  bp_TGtkWindow_allow_shrink* = 0'i32
-  bm_TGtkWindow_allow_grow* = 0x00000002'i32
-  bp_TGtkWindow_allow_grow* = 1'i32
-  bm_TGtkWindow_configure_notify_received* = 0x00000004'i32
-  bp_TGtkWindow_configure_notify_received* = 2'i32
-  bm_TGtkWindow_need_default_position* = 0x00000008'i32
-  bp_TGtkWindow_need_default_position* = 3'i32
-  bm_TGtkWindow_need_default_size* = 0x00000010'i32
-  bp_TGtkWindow_need_default_size* = 4'i32
-  bm_TGtkWindow_position* = 0x000000E0'i32
-  bp_TGtkWindow_position* = 5'i32
-  bm_TGtkWindow_type* = 0x00000F00'i32
-  bp_TGtkWindow_type* = 8'i32
-  bm_TGtkWindow_has_user_ref_count* = 0x00001000'i32
-  bp_TGtkWindow_has_user_ref_count* = 12'i32
-  bm_TGtkWindow_has_focus* = 0x00002000'i32
-  bp_TGtkWindow_has_focus* = 13'i32
-  bm_TGtkWindow_modal* = 0x00004000'i32
-  bp_TGtkWindow_modal* = 14'i32
-  bm_TGtkWindow_destroy_with_parent* = 0x00008000'i32
-  bp_TGtkWindow_destroy_with_parent* = 15'i32
-  bm_TGtkWindow_has_frame* = 0x00010000'i32
-  bp_TGtkWindow_has_frame* = 16'i32
-  bm_TGtkWindow_iconify_initially* = 0x00020000'i32
-  bp_TGtkWindow_iconify_initially* = 17'i32
-  bm_TGtkWindow_stick_initially* = 0x00040000'i32
-  bp_TGtkWindow_stick_initially* = 18'i32
-  bm_TGtkWindow_maximize_initially* = 0x00080000'i32
-  bp_TGtkWindow_maximize_initially* = 19'i32
-  bm_TGtkWindow_decorated* = 0x00100000'i32
-  bp_TGtkWindow_decorated* = 20'i32
-  bm_TGtkWindow_type_hint* = 0x00E00000'i32
-  bp_TGtkWindow_type_hint* = 21'i32
-  bm_TGtkWindow_gravity* = 0x1F000000'i32
-  bp_TGtkWindow_gravity* = 24'i32
-
-proc TYPE_WINDOW*(): GType
-proc WINDOW*(obj: pointer): PWindow
-proc WINDOW_CLASS*(klass: pointer): PWindowClass
-proc IS_WINDOW*(obj: pointer): bool
-proc IS_WINDOW_CLASS*(klass: pointer): bool
-proc WINDOW_GET_CLASS*(obj: pointer): PWindowClass
-proc allow_shrink*(a: gtk2.PWindow): guint
-proc set_allow_shrink*(a: gtk2.PWindow, `allow_shrink`: guint)
-proc allow_grow*(a: gtk2.PWindow): guint
-proc set_allow_grow*(a: gtk2.PWindow, `allow_grow`: guint)
-proc configure_notify_received*(a: gtk2.PWindow): guint
-proc set_configure_notify_received*(a: gtk2.PWindow, 
-                                    `configure_notify_received`: guint)
-proc need_default_position*(a: gtk2.PWindow): guint
-proc set_need_default_position*(a: gtk2.PWindow, `need_default_position`: guint)
-proc need_default_size*(a: gtk2.PWindow): guint
-proc set_need_default_size*(a: gtk2.PWindow, `need_default_size`: guint)
-proc position*(a: gtk2.PWindow): guint
-proc get_type*(a: gtk2.PWindow): guint
-proc set_type*(a: gtk2.PWindow, `type`: guint)
-proc has_user_ref_count*(a: gtk2.PWindow): guint
-proc set_has_user_ref_count*(a: gtk2.PWindow, `has_user_ref_count`: guint)
-proc has_focus*(a: gtk2.PWindow): guint
-proc set_has_focus*(a: gtk2.PWindow, `has_focus`: guint)
-proc modal*(a: gtk2.PWindow): guint
-proc set_modal*(a: gtk2.PWindow, `modal`: guint)
-proc destroy_with_parent*(a: gtk2.PWindow): guint
-proc set_destroy_with_parent*(a: gtk2.PWindow, `destroy_with_parent`: guint)
-proc has_frame*(a: gtk2.PWindow): guint
-proc set_has_frame*(a: gtk2.PWindow, `has_frame`: guint)
-proc iconify_initially*(a: gtk2.PWindow): guint
-proc set_iconify_initially*(a: gtk2.PWindow, `iconify_initially`: guint)
-proc stick_initially*(a: gtk2.PWindow): guint
-proc set_stick_initially*(a: gtk2.PWindow, `stick_initially`: guint)
-proc maximize_initially*(a: gtk2.PWindow): guint
-proc set_maximize_initially*(a: gtk2.PWindow, `maximize_initially`: guint)
-proc decorated*(a: gtk2.PWindow): guint
-proc set_decorated*(a: gtk2.PWindow, `decorated`: guint)
-proc type_hint*(a: gtk2.PWindow): guint
-proc set_type_hint*(a: gtk2.PWindow, `type_hint`: guint)
-proc gravity*(a: gtk2.PWindow): guint
-proc set_gravity*(a: gtk2.PWindow, `gravity`: guint)
-proc TYPE_WINDOW_GROUP*(): GType
-proc WINDOW_GROUP*(anObject: pointer): PWindowGroup
-proc WINDOW_GROUP_CLASS*(klass: pointer): PWindowGroupClass
-proc IS_WINDOW_GROUP*(anObject: pointer): bool
-proc IS_WINDOW_GROUP_CLASS*(klass: pointer): bool
-proc WINDOW_GROUP_GET_CLASS*(obj: pointer): PWindowGroupClass
-proc window_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_window_get_type".}
-proc window_new*(thetype: TWindowType): PWindow{.cdecl, dynlib: lib, 
-    importc: "gtk_window_new".}
-proc set_title*(window: PWindow, title: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_title".}
-proc get_title*(window: PWindow): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_title".}
-proc set_wmclass*(window: PWindow, wmclass_name: cstring, 
-                         wmclass_class: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_wmclass".}
-proc set_role*(window: PWindow, role: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_role".}
-proc get_role*(window: PWindow): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_role".}
-proc add_accel_group*(window: PWindow, accel_group: PAccelGroup){.cdecl, 
-    dynlib: lib, importc: "gtk_window_add_accel_group".}
-proc remove_accel_group*(window: PWindow, accel_group: PAccelGroup){.
-    cdecl, dynlib: lib, importc: "gtk_window_remove_accel_group".}
-proc set_position*(window: PWindow, position: TWindowPosition){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_position".}
-proc activate_focus*(window: PWindow): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_window_activate_focus".}
-proc set_focus*(window: PWindow, focus: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_focus".}
-proc get_focus*(window: PWindow): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_focus".}
-proc set_default*(window: PWindow, default_widget: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_default".}
-proc activate_default*(window: PWindow): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_window_activate_default".}
-proc set_transient_for*(window: PWindow, parent: PWindow){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_transient_for".}
-proc get_transient_for*(window: PWindow): PWindow{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_transient_for".}
-proc set_type_hint*(window: PWindow, hint: gdk2.TWindowTypeHint){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_type_hint".}
-proc get_type_hint*(window: PWindow): gdk2.TWindowTypeHint{.cdecl, 
-    dynlib: lib, importc: "gtk_window_get_type_hint".}
-proc set_destroy_with_parent*(window: PWindow, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_destroy_with_parent".}
-proc get_destroy_with_parent*(window: PWindow): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_window_get_destroy_with_parent".}
-proc set_resizable*(window: PWindow, resizable: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_resizable".}
-proc get_resizable*(window: PWindow): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_resizable".}
-proc set_gravity*(window: PWindow, gravity: gdk2.TGravity){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_gravity".}
-proc get_gravity*(window: PWindow): gdk2.TGravity{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_gravity".}
-proc set_geometry_hints*(window: PWindow, geometry_widget: PWidget, 
-                                geometry: gdk2.PGeometry, 
-                                geom_mask: gdk2.TWindowHints){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_geometry_hints".}
-proc set_screen*(window: PWindow, screen: gdk2.PScreen){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_screen".}
-proc get_screen*(window: PWindow): gdk2.PScreen{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_screen".}
-proc set_has_frame*(window: PWindow, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_has_frame".}
-proc get_has_frame*(window: PWindow): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_has_frame".}
-proc set_frame_dimensions*(window: PWindow, left: gint, top: gint, 
-                                  right: gint, bottom: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_frame_dimensions".}
-proc get_frame_dimensions*(window: PWindow, left: Pgint, top: Pgint, 
-                                  right: Pgint, bottom: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_window_get_frame_dimensions".}
-proc set_decorated*(window: PWindow, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_decorated".}
-proc get_decorated*(window: PWindow): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_decorated".}
-proc set_icon_list*(window: PWindow, list: PGList){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_icon_list".}
-proc get_icon_list*(window: PWindow): PGList{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_icon_list".}
-proc set_icon*(window: PWindow, icon: gdk2pixbuf.PPixbuf){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_icon".}
-proc get_icon*(window: PWindow): gdk2pixbuf.PPixbuf{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_icon".}
-proc window_set_default_icon_list*(list: PGList){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_default_icon_list".}
-proc window_get_default_icon_list*(): PGList{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_default_icon_list".}
-proc set_modal*(window: PWindow, modal: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_modal".}
-proc get_modal*(window: PWindow): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_modal".}
-proc window_list_toplevels*(): PGList{.cdecl, dynlib: lib, 
-                                       importc: "gtk_window_list_toplevels".}
-proc add_mnemonic*(window: PWindow, keyval: guint, target: PWidget){.
-    cdecl, dynlib: lib, importc: "gtk_window_add_mnemonic".}
-proc remove_mnemonic*(window: PWindow, keyval: guint, target: PWidget){.
-    cdecl, dynlib: lib, importc: "gtk_window_remove_mnemonic".}
-proc mnemonic_activate*(window: PWindow, keyval: guint, 
-                               modifier: gdk2.TModifierType): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_window_mnemonic_activate".}
-proc set_mnemonic_modifier*(window: PWindow, modifier: gdk2.TModifierType){.
-    cdecl, dynlib: lib, importc: "gtk_window_set_mnemonic_modifier".}
-proc get_mnemonic_modifier*(window: PWindow): gdk2.TModifierType{.cdecl, 
-    dynlib: lib, importc: "gtk_window_get_mnemonic_modifier".}
-proc present*(window: PWindow){.cdecl, dynlib: lib, 
-                                       importc: "gtk_window_present".}
-proc iconify*(window: PWindow){.cdecl, dynlib: lib, 
-                                       importc: "gtk_window_iconify".}
-proc deiconify*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gtk_window_deiconify".}
-proc stick*(window: PWindow){.cdecl, dynlib: lib, 
-                                     importc: "gtk_window_stick".}
-proc unstick*(window: PWindow){.cdecl, dynlib: lib, 
-                                       importc: "gtk_window_unstick".}
-proc maximize*(window: PWindow){.cdecl, dynlib: lib, 
-                                        importc: "gtk_window_maximize".}
-proc unmaximize*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gtk_window_unmaximize".}
-proc begin_resize_drag*(window: PWindow, edge: gdk2.TWindowEdge, 
-                               button: gint, root_x: gint, root_y: gint, 
-                               timestamp: guint32){.cdecl, dynlib: lib, 
-    importc: "gtk_window_begin_resize_drag".}
-proc begin_move_drag*(window: PWindow, button: gint, root_x: gint, 
-                             root_y: gint, timestamp: guint32){.cdecl, 
-    dynlib: lib, importc: "gtk_window_begin_move_drag".}
-proc set_default_size*(window: PWindow, width: gint, height: gint){.
-    cdecl, dynlib: lib, importc: "gtk_window_set_default_size".}
-proc get_default_size*(window: PWindow, width: Pgint, height: Pgint){.
-    cdecl, dynlib: lib, importc: "gtk_window_get_default_size".}
-proc resize*(window: PWindow, width: gint, height: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_window_resize".}
-proc get_size*(window: PWindow, width: Pgint, height: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_window_get_size".}
-proc move*(window: PWindow, x: gint, y: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_window_move".}
-proc get_position*(window: PWindow, root_x: Pgint, root_y: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_window_get_position".}
-proc parse_geometry*(window: PWindow, geometry: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_window_parse_geometry".}
-proc reshow_with_initial_size*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gtk_window_reshow_with_initial_size".}
-proc window_group_get_type*(): GType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_window_group_get_type".}
-proc window_group_new*(): PWindowGroup{.cdecl, dynlib: lib, 
-                                        importc: "gtk_window_group_new".}
-proc add_window*(window_group: PWindowGroup, window: PWindow){.
-    cdecl, dynlib: lib, importc: "gtk_window_group_add_window".}
-proc remove_window*(window_group: PWindowGroup, window: PWindow){.
-    cdecl, dynlib: lib, importc: "gtk_window_group_remove_window".}
-proc window_set_default_icon_name*(name: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_default_icon_name".}
-proc internal_set_focus*(window: PWindow, focus: PWidget){.cdecl, 
-    dynlib: lib, importc: "_gtk_window_internal_set_focus".}
-proc remove_embedded_xid*(window: PWindow, xid: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_window_remove_embedded_xid".}
-proc add_embedded_xid*(window: PWindow, xid: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_window_add_embedded_xid".}
-proc reposition*(window: PWindow, x: gint, y: gint){.cdecl, dynlib: lib, 
-    importc: "_gtk_window_reposition".}
-proc constrain_size*(window: PWindow, width: gint, height: gint, 
-                            new_width: Pgint, new_height: Pgint){.cdecl, 
-    dynlib: lib, importc: "_gtk_window_constrain_size".}
-proc get_group*(window: PWindow): PWindowGroup{.cdecl, dynlib: lib, 
-    importc: "_gtk_window_get_group".}
-proc activate_key*(window: PWindow, event: gdk2.PEventKey): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_window_activate_key".}
-proc keys_foreach*(window: PWindow, func: TWindowKeysForeachFunc, 
-                          func_data: gpointer){.cdecl, dynlib: lib, 
-    importc: "_gtk_window_keys_foreach".}
-proc query_nonaccels*(window: PWindow, accel_key: guint, 
-                             accel_mods: gdk2.TModifierType): gboolean{.cdecl, 
-    dynlib: lib, importc: "_gtk_window_query_nonaccels".}
-const 
-  bm_TGtkLabel_jtype* = 0x0003'i16
-  bp_TGtkLabel_jtype* = 0'i16
-  bm_TGtkLabel_wrap* = 0x0004'i16
-  bp_TGtkLabel_wrap* = 2'i16
-  bm_TGtkLabel_use_underline* = 0x0008'i16
-  bp_TGtkLabel_use_underline* = 3'i16
-  bm_TGtkLabel_use_markup* = 0x0010'i16
-  bp_TGtkLabel_use_markup* = 4'i16
-
-proc TYPE_LABEL*(): GType
-proc LABEL*(obj: pointer): PLabel
-proc LABEL_CLASS*(klass: pointer): PLabelClass
-proc IS_LABEL*(obj: pointer): bool
-proc IS_LABEL_CLASS*(klass: pointer): bool
-proc LABEL_GET_CLASS*(obj: pointer): PLabelClass
-proc jtype*(a: PLabel): guint
-proc set_jtype*(a: PLabel, `jtype`: guint)
-proc wrap*(a: PLabel): guint
-proc set_wrap*(a: PLabel, `wrap`: guint)
-proc use_underline*(a: PLabel): guint
-proc set_use_underline*(a: PLabel, `use_underline`: guint)
-proc use_markup*(a: PLabel): guint
-proc set_use_markup*(a: PLabel, `use_markup`: guint)
-proc label_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_label_get_type".}
-proc label_new*(str: cstring): PLabel{.cdecl, dynlib: lib, 
-                                       importc: "gtk_label_new".}
-proc label_new_with_mnemonic*(str: cstring): PLabel{.cdecl, dynlib: lib, 
-    importc: "gtk_label_new_with_mnemonic".}
-proc set_text*(`label`: PLabel, str: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_label_set_text".}
-proc get_text*(`label`: PLabel): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_text".}
-proc set_attributes*(`label`: PLabel, attrs: pango.PAttrList){.cdecl, 
-    dynlib: lib, importc: "gtk_label_set_attributes".}
-proc get_attributes*(`label`: PLabel): pango.PAttrList{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_attributes".}
-proc set_label*(`label`: PLabel, str: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_label_set_label".}
-proc get_label*(`label`: PLabel): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_label".}
-proc set_markup*(`label`: PLabel, str: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_label_set_markup".}
-proc set_use_markup*(`label`: PLabel, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_label_set_use_markup".}
-proc get_use_markup*(`label`: PLabel): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_use_markup".}
-proc set_use_underline*(`label`: PLabel, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_label_set_use_underline".}
-proc get_use_underline*(`label`: PLabel): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_use_underline".}
-proc set_markup_with_mnemonic*(`label`: PLabel, str: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_label_set_markup_with_mnemonic".}
-proc get_mnemonic_keyval*(`label`: PLabel): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_mnemonic_keyval".}
-proc set_mnemonic_widget*(`label`: PLabel, widget: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_label_set_mnemonic_widget".}
-proc get_mnemonic_widget*(`label`: PLabel): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_mnemonic_widget".}
-proc set_text_with_mnemonic*(`label`: PLabel, str: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_label_set_text_with_mnemonic".}
-proc set_justify*(`label`: PLabel, jtype: TJustification){.cdecl, 
-    dynlib: lib, importc: "gtk_label_set_justify".}
-proc get_justify*(`label`: PLabel): TJustification{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_justify".}
-proc set_pattern*(`label`: PLabel, pattern: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_label_set_pattern".}
-proc set_line_wrap*(`label`: PLabel, wrap: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_label_set_line_wrap".}
-proc get_line_wrap*(`label`: PLabel): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_line_wrap".}
-proc set_selectable*(`label`: PLabel, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_label_set_selectable".}
-proc get_selectable*(`label`: PLabel): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_selectable".}
-proc select_region*(`label`: PLabel, start_offset: gint, end_offset: gint){.
-    cdecl, dynlib: lib, importc: "gtk_label_select_region".}
-proc get_selection_bounds*(`label`: PLabel, start: Pgint, theEnd: Pgint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_label_get_selection_bounds".}
-proc get_layout*(`label`: PLabel): pango.PLayout{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_layout".}
-proc get_layout_offsets*(`label`: PLabel, x: Pgint, y: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_label_get_layout_offsets".}
-const 
-  bm_TGtkAccelLabelClass_latin1_to_char* = 0x0001'i16
-  bp_TGtkAccelLabelClass_latin1_to_char* = 0'i16
-
-proc TYPE_ACCEL_LABEL*(): GType
-proc ACCEL_LABEL*(obj: pointer): PAccelLabel
-proc ACCEL_LABEL_CLASS*(klass: pointer): PAccelLabelClass
-proc IS_ACCEL_LABEL*(obj: pointer): bool
-proc IS_ACCEL_LABEL_CLASS*(klass: pointer): bool
-proc ACCEL_LABEL_GET_CLASS*(obj: pointer): PAccelLabelClass
-proc latin1_to_char*(a: PAccelLabelClass): guint
-proc set_latin1_to_char*(a: PAccelLabelClass, `latin1_to_char`: guint)
-proc accel_label_get_type*(): TType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_accel_label_get_type".}
-proc accel_label_new*(`string`: cstring): PAccelLabel{.cdecl, dynlib: lib, 
-    importc: "gtk_accel_label_new".}
-proc get_accel_widget*(accel_label: PAccelLabel): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_accel_label_get_accel_widget".}
-proc get_accel_width*(accel_label: PAccelLabel): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_accel_label_get_accel_width".}
-proc set_accel_widget*(accel_label: PAccelLabel, 
-                                   accel_widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_label_set_accel_widget".}
-proc set_accel_closure*(accel_label: PAccelLabel, 
-                                    accel_closure: PGClosure){.cdecl, 
-    dynlib: lib, importc: "gtk_accel_label_set_accel_closure".}
-proc refetch*(accel_label: PAccelLabel): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_accel_label_refetch".}
-proc accel_map_add_entry*(accel_path: cstring, accel_key: guint, 
-                          accel_mods: gdk2.TModifierType){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_map_add_entry".}
-proc accel_map_lookup_entry*(accel_path: cstring, key: PAccelKey): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_accel_map_lookup_entry".}
-proc accel_map_change_entry*(accel_path: cstring, accel_key: guint, 
-                             accel_mods: gdk2.TModifierType, replace: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_accel_map_change_entry".}
-proc accel_map_load*(file_name: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_map_load".}
-proc accel_map_save*(file_name: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_map_save".}
-proc accel_map_foreach*(data: gpointer, foreach_func: TAccelMapForeach){.cdecl, 
-    dynlib: lib, importc: "gtk_accel_map_foreach".}
-proc accel_map_load_fd*(fd: gint){.cdecl, dynlib: lib, 
-                                   importc: "gtk_accel_map_load_fd".}
-proc accel_map_load_scanner*(scanner: PGScanner){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_map_load_scanner".}
-proc accel_map_save_fd*(fd: gint){.cdecl, dynlib: lib, 
-                                   importc: "gtk_accel_map_save_fd".}
-proc accel_map_add_filter*(filter_pattern: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_map_add_filter".}
-proc accel_map_foreach_unfiltered*(data: gpointer, 
-                                   foreach_func: TAccelMapForeach){.cdecl, 
-    dynlib: lib, importc: "gtk_accel_map_foreach_unfiltered".}
-proc accel_map_init*(){.cdecl, dynlib: lib, importc: "_gtk_accel_map_init".}
-proc accel_map_add_group*(accel_path: cstring, accel_group: PAccelGroup){.cdecl, 
-    dynlib: lib, importc: "_gtk_accel_map_add_group".}
-proc accel_map_remove_group*(accel_path: cstring, accel_group: PAccelGroup){.
-    cdecl, dynlib: lib, importc: "_gtk_accel_map_remove_group".}
-proc accel_path_is_valid*(accel_path: cstring): gboolean{.cdecl, dynlib: lib, 
-    importc: "_gtk_accel_path_is_valid".}
-proc TYPE_ACCESSIBLE*(): GType
-proc ACCESSIBLE*(obj: pointer): PAccessible
-proc ACCESSIBLE_CLASS*(klass: pointer): PAccessibleClass
-proc IS_ACCESSIBLE*(obj: pointer): bool
-proc IS_ACCESSIBLE_CLASS*(klass: pointer): bool
-proc ACCESSIBLE_GET_CLASS*(obj: pointer): PAccessibleClass
-proc accessible_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_accessible_get_type".}
-proc connect_widget_destroyed*(accessible: PAccessible){.cdecl, 
-    dynlib: lib, importc: "gtk_accessible_connect_widget_destroyed".}
-proc TYPE_ADJUSTMENT*(): GType
-proc ADJUSTMENT*(obj: pointer): PAdjustment
-proc ADJUSTMENT_CLASS*(klass: pointer): PAdjustmentClass
-proc IS_ADJUSTMENT*(obj: pointer): bool
-proc IS_ADJUSTMENT_CLASS*(klass: pointer): bool
-proc ADJUSTMENT_GET_CLASS*(obj: pointer): PAdjustmentClass
-proc adjustment_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_adjustment_get_type".}
-proc adjustment_new*(value: gdouble, lower: gdouble, upper: gdouble, 
-                     step_increment: gdouble, page_increment: gdouble, 
-                     page_size: gdouble): PAdjustment{.cdecl, dynlib: lib, 
-    importc: "gtk_adjustment_new".}
-proc changed*(adjustment: PAdjustment){.cdecl, dynlib: lib, 
-    importc: "gtk_adjustment_changed".}
-proc value_changed*(adjustment: PAdjustment){.cdecl, dynlib: lib, 
-    importc: "gtk_adjustment_value_changed".}
-proc clamp_page*(adjustment: PAdjustment, lower: gdouble, 
-                            upper: gdouble){.cdecl, dynlib: lib, 
-    importc: "gtk_adjustment_clamp_page".}
-proc get_value*(adjustment: PAdjustment): gdouble{.cdecl, 
-    dynlib: lib, importc: "gtk_adjustment_get_value".}
-proc set_value*(adjustment: PAdjustment, value: gdouble){.cdecl, 
-    dynlib: lib, importc: "gtk_adjustment_set_value".}
-proc get_upper*(adjustment: PAdjustment): gdouble{.cdecl, 
-    dynlib: lib, importc: "gtk_adjustment_get_upper".}
-proc get_page_size*(adjustment: PAdjustment): gdouble{.cdecl, 
-    dynlib: lib, importc: "gtk_adjustment_get_page_size".}
-proc TYPE_ALIGNMENT*(): GType
-proc ALIGNMENT*(obj: pointer): PAlignment
-proc ALIGNMENT_CLASS*(klass: pointer): PAlignmentClass
-proc IS_ALIGNMENT*(obj: pointer): bool
-proc IS_ALIGNMENT_CLASS*(klass: pointer): bool
-proc ALIGNMENT_GET_CLASS*(obj: pointer): PAlignmentClass
-proc alignment_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_alignment_get_type".}
-proc alignment_new*(xalign: gfloat, yalign: gfloat, xscale: gfloat, 
-                    yscale: gfloat): PAlignment{.cdecl, dynlib: lib, 
-    importc: "gtk_alignment_new".}
-proc set*(alignment: PAlignment, xalign: gfloat, yalign: gfloat, 
-                    xscale: gfloat, yscale: gfloat){.cdecl, dynlib: lib, 
-    importc: "gtk_alignment_set".}
-proc TYPE_FRAME*(): GType
-proc FRAME*(obj: pointer): PFrame
-proc FRAME_CLASS*(klass: pointer): PFrameClass
-proc IS_FRAME*(obj: pointer): bool
-proc IS_FRAME_CLASS*(klass: pointer): bool
-proc FRAME_GET_CLASS*(obj: pointer): PFrameClass
-proc frame_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_frame_get_type".}
-proc frame_new*(`label`: cstring): PFrame{.cdecl, dynlib: lib, 
-    importc: "gtk_frame_new".}
-proc set_label*(frame: PFrame, `label`: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_frame_set_label".}
-proc get_label*(frame: PFrame): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_frame_get_label".}
-proc set_label_widget*(frame: PFrame, label_widget: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_frame_set_label_widget".}
-proc get_label_widget*(frame: PFrame): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_frame_get_label_widget".}
-proc set_label_align*(frame: PFrame, xalign: gfloat, yalign: gfloat){.
-    cdecl, dynlib: lib, importc: "gtk_frame_set_label_align".}
-proc get_label_align*(frame: PFrame, xalign: Pgfloat, yalign: Pgfloat){.
-    cdecl, dynlib: lib, importc: "gtk_frame_get_label_align".}
-proc set_shadow_type*(frame: PFrame, thetype: TShadowType){.cdecl, 
-    dynlib: lib, importc: "gtk_frame_set_shadow_type".}
-proc get_shadow_type*(frame: PFrame): TShadowType{.cdecl, dynlib: lib, 
-    importc: "gtk_frame_get_shadow_type".}
-proc TYPE_ASPECT_FRAME*(): GType
-proc ASPECT_FRAME*(obj: pointer): PAspectFrame
-proc ASPECT_FRAME_CLASS*(klass: pointer): PAspectFrameClass
-proc IS_ASPECT_FRAME*(obj: pointer): bool
-proc IS_ASPECT_FRAME_CLASS*(klass: pointer): bool
-proc ASPECT_FRAME_GET_CLASS*(obj: pointer): PAspectFrameClass
-proc aspect_frame_get_type*(): TType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_aspect_frame_get_type".}
-proc aspect_frame_new*(`label`: cstring, xalign: gfloat, yalign: gfloat, 
-                       ratio: gfloat, obey_child: gboolean): PAspectFrame{.
-    cdecl, dynlib: lib, importc: "gtk_aspect_frame_new".}
-proc set*(aspect_frame: PAspectFrame, xalign: gfloat, 
-                       yalign: gfloat, ratio: gfloat, obey_child: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_aspect_frame_set".}
-proc TYPE_ARROW*(): GType
-proc ARROW*(obj: pointer): PArrow
-proc ARROW_CLASS*(klass: pointer): PArrowClass
-proc IS_ARROW*(obj: pointer): bool
-proc IS_ARROW_CLASS*(klass: pointer): bool
-proc ARROW_GET_CLASS*(obj: pointer): PArrowClass
-proc arrow_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_arrow_get_type".}
-proc arrow_new*(arrow_type: TArrowType, shadow_type: TShadowType): PArrow{.
-    cdecl, dynlib: lib, importc: "gtk_arrow_new".}
-proc set*(arrow: PArrow, arrow_type: TArrowType, shadow_type: TShadowType){.
-    cdecl, dynlib: lib, importc: "gtk_arrow_set".}
-const 
-  bm_TGtkBindingSet_parsed* = 0x0001'i16
-  bp_TGtkBindingSet_parsed* = 0'i16
-  bm_TGtkBindingEntry_destroyed* = 0x0001'i16
-  bp_TGtkBindingEntry_destroyed* = 0'i16
-  bm_TGtkBindingEntry_in_emission* = 0x0002'i16
-  bp_TGtkBindingEntry_in_emission* = 1'i16
-
-proc entry_add*(binding_set: PBindingSet, keyval: guint, 
-                        modifiers: gdk2.TModifierType)
-proc parsed*(a: PBindingSet): guint
-proc set_parsed*(a: PBindingSet, `parsed`: guint)
-proc destroyed*(a: PBindingEntry): guint
-proc set_destroyed*(a: PBindingEntry, `destroyed`: guint)
-proc in_emission*(a: PBindingEntry): guint
-proc set_in_emission*(a: PBindingEntry, `in_emission`: guint)
-proc binding_set_new*(set_name: cstring): PBindingSet{.cdecl, dynlib: lib, 
-    importc: "gtk_binding_set_new".}
-proc binding_set_by_class*(object_class: gpointer): PBindingSet{.cdecl, 
-    dynlib: lib, importc: "gtk_binding_set_by_class".}
-proc binding_set_find*(set_name: cstring): PBindingSet{.cdecl, dynlib: lib, 
-    importc: "gtk_binding_set_find".}
-proc bindings_activate*(anObject: PObject, keyval: guint, 
-                        modifiers: gdk2.TModifierType): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_bindings_activate".}
-proc activate*(binding_set: PBindingSet, keyval: guint, 
-                           modifiers: gdk2.TModifierType, anObject: PObject): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_binding_set_activate".}
-proc entry_clear*(binding_set: PBindingSet, keyval: guint, 
-                          modifiers: gdk2.TModifierType){.cdecl, dynlib: lib, 
-    importc: "gtk_binding_entry_clear".}
-proc add_path*(binding_set: PBindingSet, path_type: TPathType, 
-                           path_pattern: cstring, priority: TPathPriorityType){.
-    cdecl, dynlib: lib, importc: "gtk_binding_set_add_path".}
-proc entry_remove*(binding_set: PBindingSet, keyval: guint, 
-                           modifiers: gdk2.TModifierType){.cdecl, dynlib: lib, 
-    importc: "gtk_binding_entry_remove".}
-proc entry_add_signall*(binding_set: PBindingSet, keyval: guint, 
-                                modifiers: gdk2.TModifierType, 
-                                signal_name: cstring, binding_args: PGSList){.
-    cdecl, dynlib: lib, importc: "gtk_binding_entry_add_signall".}
-proc binding_parse_binding*(scanner: PGScanner): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_binding_parse_binding".}
-proc bindings_activate_event*(anObject: PObject, event: gdk2.PEventKey): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_bindings_activate_event".}
-proc binding_reset_parsed*(){.cdecl, dynlib: lib, 
-                              importc: "_gtk_binding_reset_parsed".}
-const 
-  bm_TGtkBox_homogeneous* = 0x0001'i16
-  bp_TGtkBox_homogeneous* = 0'i16
-  bm_TGtkBoxChild_expand* = 0x0001'i16
-  bp_TGtkBoxChild_expand* = 0'i16
-  bm_TGtkBoxChild_fill* = 0x0002'i16
-  bp_TGtkBoxChild_fill* = 1'i16
-  bm_TGtkBoxChild_pack* = 0x0004'i16
-  bp_TGtkBoxChild_pack* = 2'i16
-  bm_TGtkBoxChild_is_secondary* = 0x0008'i16
-  bp_TGtkBoxChild_is_secondary* = 3'i16
-
-proc TYPE_BOX*(): GType
-proc BOX*(obj: pointer): PBox
-proc BOX_CLASS*(klass: pointer): PBoxClass
-proc IS_BOX*(obj: pointer): bool
-proc IS_BOX_CLASS*(klass: pointer): bool
-proc BOX_GET_CLASS*(obj: pointer): PBoxClass
-proc homogeneous*(a: PBox): guint
-proc set_homogeneous*(a: PBox, `homogeneous`: guint)
-proc expand*(a: PBoxChild): guint
-proc set_expand*(a: PBoxChild, `expand`: guint)
-proc fill*(a: PBoxChild): guint
-proc set_fill*(a: PBoxChild, `fill`: guint)
-proc pack*(a: PBoxChild): guint
-proc set_pack*(a: PBoxChild, `pack`: guint)
-proc is_secondary*(a: PBoxChild): guint
-proc set_is_secondary*(a: PBoxChild, `is_secondary`: guint)
-proc box_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_box_get_type".}
-proc pack_start*(box: PBox, child: PWidget, expand: gboolean, 
-                     fill: gboolean, padding: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_box_pack_start".}
-proc pack_end*(box: PBox, child: PWidget, expand: gboolean, fill: gboolean, 
-                   padding: guint){.cdecl, dynlib: lib, 
-                                    importc: "gtk_box_pack_end".}
-proc pack_start_defaults*(box: PBox, widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_box_pack_start_defaults".}
-proc pack_end_defaults*(box: PBox, widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_box_pack_end_defaults".}
-proc set_homogeneous*(box: PBox, homogeneous: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_box_set_homogeneous".}
-proc get_homogeneous*(box: PBox): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_box_get_homogeneous".}
-proc set_spacing*(box: PBox, spacing: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_box_set_spacing".}
-proc get_spacing*(box: PBox): gint{.cdecl, dynlib: lib, 
-                                        importc: "gtk_box_get_spacing".}
-proc reorder_child*(box: PBox, child: PWidget, position: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_box_reorder_child".}
-proc query_child_packing*(box: PBox, child: PWidget, expand: Pgboolean, 
-                              fill: Pgboolean, padding: Pguint, 
-                              pack_type: PPackType){.cdecl, dynlib: lib, 
-    importc: "gtk_box_query_child_packing".}
-proc set_child_packing*(box: PBox, child: PWidget, expand: gboolean, 
-                            fill: gboolean, padding: guint, pack_type: TPackType){.
-    cdecl, dynlib: lib, importc: "gtk_box_set_child_packing".}
-const 
-  BUTTONBOX_DEFAULT* = - (1)
-
-proc TYPE_BUTTON_BOX*(): GType
-proc BUTTON_BOX*(obj: pointer): PButtonBox
-proc BUTTON_BOX_CLASS*(klass: pointer): PButtonBoxClass
-proc IS_BUTTON_BOX*(obj: pointer): bool
-proc IS_BUTTON_BOX_CLASS*(klass: pointer): bool
-proc BUTTON_BOX_GET_CLASS*(obj: pointer): PButtonBoxClass
-proc button_box_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_button_box_get_type".}
-proc get_layout*(widget: PButtonBox): TButtonBoxStyle{.cdecl, 
-    dynlib: lib, importc: "gtk_button_box_get_layout".}
-proc set_layout*(widget: PButtonBox, layout_style: TButtonBoxStyle){.
-    cdecl, dynlib: lib, importc: "gtk_button_box_set_layout".}
-proc set_child_secondary*(widget: PButtonBox, child: PWidget, 
-                                     is_secondary: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_button_box_set_child_secondary".}
-proc button_box_child_requisition*(widget: PWidget, nvis_children: var int32, 
-                                   nvis_secondaries: var int32, 
-                                   width: var int32, height: var int32){.cdecl, 
-    dynlib: lib, importc: "_gtk_button_box_child_requisition".}
-const 
-  bm_TGtkButton_constructed* = 0x0001'i16
-  bp_TGtkButton_constructed* = 0'i16
-  bm_TGtkButton_in_button* = 0x0002'i16
-  bp_TGtkButton_in_button* = 1'i16
-  bm_TGtkButton_button_down* = 0x0004'i16
-  bp_TGtkButton_button_down* = 2'i16
-  bm_TGtkButton_relief* = 0x0018'i16
-  bp_TGtkButton_relief* = 3'i16
-  bm_TGtkButton_use_underline* = 0x0020'i16
-  bp_TGtkButton_use_underline* = 5'i16
-  bm_TGtkButton_use_stock* = 0x0040'i16
-  bp_TGtkButton_use_stock* = 6'i16
-  bm_TGtkButton_depressed* = 0x0080'i16
-  bp_TGtkButton_depressed* = 7'i16
-  bm_TGtkButton_depress_on_activate* = 0x0100'i16
-  bp_TGtkButton_depress_on_activate* = 8'i16
-
-proc TYPE_BUTTON*(): GType
-proc BUTTON*(obj: pointer): PButton
-proc BUTTON_CLASS*(klass: pointer): PButtonClass
-proc IS_BUTTON*(obj: pointer): bool
-proc IS_BUTTON_CLASS*(klass: pointer): bool
-proc BUTTON_GET_CLASS*(obj: pointer): PButtonClass
-proc constructed*(a: PButton): guint
-proc set_constructed*(a: PButton, `constructed`: guint)
-proc in_button*(a: PButton): guint
-proc set_in_button*(a: PButton, `in_button`: guint)
-proc button_down*(a: PButton): guint
-proc set_button_down*(a: PButton, `button_down`: guint)
-proc relief*(a: PButton): guint
-proc use_underline*(a: PButton): guint
-proc set_use_underline*(a: PButton, `use_underline`: guint)
-proc use_stock*(a: PButton): guint
-proc set_use_stock*(a: PButton, `use_stock`: guint)
-proc depressed*(a: PButton): guint
-proc set_depressed*(a: PButton, `depressed`: guint)
-proc depress_on_activate*(a: PButton): guint
-proc set_depress_on_activate*(a: PButton, `depress_on_activate`: guint)
-proc button_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_button_get_type".}
-proc button_new*(): PButton{.cdecl, dynlib: lib, importc: "gtk_button_new".}
-proc button_new*(`label`: cstring): PButton{.cdecl, dynlib: lib, 
-    importc: "gtk_button_new_with_label".}
-proc button_new_from_stock*(stock_id: cstring): PButton{.cdecl, dynlib: lib, 
-    importc: "gtk_button_new_from_stock".}
-proc button_new_with_mnemonic*(`label`: cstring): PButton{.cdecl, dynlib: lib, 
-    importc: "gtk_button_new_with_mnemonic".}
-proc pressed*(button: PButton){.cdecl, dynlib: lib, 
-                                       importc: "gtk_button_pressed".}
-proc released*(button: PButton){.cdecl, dynlib: lib, 
-                                        importc: "gtk_button_released".}
-proc clicked*(button: PButton){.cdecl, dynlib: lib, 
-                                       importc: "gtk_button_clicked".}
-proc enter*(button: PButton){.cdecl, dynlib: lib, 
-                                     importc: "gtk_button_enter".}
-proc leave*(button: PButton){.cdecl, dynlib: lib, 
-                                     importc: "gtk_button_leave".}
-proc set_relief*(button: PButton, newstyle: TReliefStyle){.cdecl, 
-    dynlib: lib, importc: "gtk_button_set_relief".}
-proc get_relief*(button: PButton): TReliefStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_button_get_relief".}
-proc set_label*(button: PButton, `label`: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_button_set_label".}
-proc get_label*(button: PButton): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_button_get_label".}
-proc set_use_underline*(button: PButton, use_underline: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_button_set_use_underline".}
-proc get_use_underline*(button: PButton): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_button_get_use_underline".}
-proc set_use_stock*(button: PButton, use_stock: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_button_set_use_stock".}
-proc get_use_stock*(button: PButton): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_button_get_use_stock".}
-proc set_depressed*(button: PButton, depressed: gboolean){.cdecl, 
-    dynlib: lib, importc: "_gtk_button_set_depressed".}
-proc paint*(button: PButton, area: gdk2.PRectangle, state_type: TStateType, 
-                   shadow_type: TShadowType, main_detail: cstring, 
-                   default_detail: cstring){.cdecl, dynlib: lib, 
-    importc: "_gtk_button_paint".}
-proc set_image*(button: PButton, image: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_button_set_image".}
-proc get_image*(button: PButton): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_button_get_image".}
-const 
-  CALENDAR_SHOW_HEADING* = 1 shl 0
-  CALENDAR_SHOW_DAY_NAMES* = 1 shl 1
-  CALENDAR_NO_MONTH_CHANGE* = 1 shl 2
-  CALENDAR_SHOW_WEEK_NUMBERS* = 1 shl 3
-  CALENDAR_WEEK_START_MONDAY* = 1 shl 4
-
-proc TYPE_CALENDAR*(): GType
-proc CALENDAR*(obj: pointer): PCalendar
-proc CALENDAR_CLASS*(klass: pointer): PCalendarClass
-proc IS_CALENDAR*(obj: pointer): bool
-proc IS_CALENDAR_CLASS*(klass: pointer): bool
-proc CALENDAR_GET_CLASS*(obj: pointer): PCalendarClass
-proc calendar_get_type*(): TType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_calendar_get_type".}
-proc calendar_new*(): PCalendar{.cdecl, dynlib: lib, importc: "gtk_calendar_new".}
-proc select_month*(calendar: PCalendar, month: guint, year: guint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_calendar_select_month".}
-proc select_day*(calendar: PCalendar, day: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_calendar_select_day".}
-proc mark_day*(calendar: PCalendar, day: guint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_calendar_mark_day".}
-proc unmark_day*(calendar: PCalendar, day: guint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_calendar_unmark_day".}
-proc clear_marks*(calendar: PCalendar){.cdecl, dynlib: lib, 
-    importc: "gtk_calendar_clear_marks".}
-proc display_options*(calendar: PCalendar, 
-                               flags: TCalendarDisplayOptions){.cdecl, 
-    dynlib: lib, importc: "gtk_calendar_display_options".}
-proc get_date*(calendar: PCalendar, year: Pguint, month: Pguint, 
-                        day: Pguint){.cdecl, dynlib: lib, 
-                                      importc: "gtk_calendar_get_date".}
-proc freeze*(calendar: PCalendar){.cdecl, dynlib: lib, 
-    importc: "gtk_calendar_freeze".}
-proc thaw*(calendar: PCalendar){.cdecl, dynlib: lib, 
-    importc: "gtk_calendar_thaw".}
-proc TYPE_CELL_EDITABLE*(): GType
-proc CELL_EDITABLE*(obj: pointer): PCellEditable
-proc CELL_EDITABLE_CLASS*(obj: pointer): PCellEditableIface
-proc IS_CELL_EDITABLE*(obj: pointer): bool
-proc CELL_EDITABLE_GET_IFACE*(obj: pointer): PCellEditableIface
-proc cell_editable_get_type*(): GType{.cdecl, dynlib: lib, 
-                                       importc: "gtk_cell_editable_get_type".}
-proc start_editing*(cell_editable: PCellEditable, event: gdk2.PEvent){.
-    cdecl, dynlib: lib, importc: "gtk_cell_editable_start_editing".}
-proc editing_done*(cell_editable: PCellEditable){.cdecl, 
-    dynlib: lib, importc: "gtk_cell_editable_editing_done".}
-proc remove_widget*(cell_editable: PCellEditable){.cdecl, 
-    dynlib: lib, importc: "gtk_cell_editable_remove_widget".}
-const 
-  CELL_RENDERER_SELECTED* = 1 shl 0
-  CELL_RENDERER_PRELIT* = 1 shl 1
-  CELL_RENDERER_INSENSITIVE* = 1 shl 2
-  CELL_RENDERER_SORTED* = 1 shl 3
-
-const 
-  bm_TGtkCellRenderer_mode* = 0x0003'i16
-  bp_TGtkCellRenderer_mode* = 0'i16
-  bm_TGtkCellRenderer_visible* = 0x0004'i16
-  bp_TGtkCellRenderer_visible* = 2'i16
-  bm_TGtkCellRenderer_is_expander* = 0x0008'i16
-  bp_TGtkCellRenderer_is_expander* = 3'i16
-  bm_TGtkCellRenderer_is_expanded* = 0x0010'i16
-  bp_TGtkCellRenderer_is_expanded* = 4'i16
-  bm_TGtkCellRenderer_cell_background_set* = 0x0020'i16
-  bp_TGtkCellRenderer_cell_background_set* = 5'i16
-
-proc TYPE_CELL_RENDERER*(): GType
-proc CELL_RENDERER*(obj: pointer): PCellRenderer
-proc CELL_RENDERER_CLASS*(klass: pointer): PCellRendererClass
-proc IS_CELL_RENDERER*(obj: pointer): bool
-proc IS_CELL_RENDERER_CLASS*(klass: pointer): bool
-proc CELL_RENDERER_GET_CLASS*(obj: pointer): PCellRendererClass
-proc mode*(a: PCellRenderer): guint
-proc set_mode*(a: PCellRenderer, `mode`: guint)
-proc visible*(a: PCellRenderer): guint
-proc set_visible*(a: PCellRenderer, `visible`: guint)
-proc is_expander*(a: PCellRenderer): guint
-proc set_is_expander*(a: PCellRenderer, `is_expander`: guint)
-proc is_expanded*(a: PCellRenderer): guint
-proc set_is_expanded*(a: PCellRenderer, `is_expanded`: guint)
-proc cell_background_set*(a: PCellRenderer): guint
-proc set_cell_background_set*(a: PCellRenderer, `cell_background_set`: guint)
-proc cell_renderer_get_type*(): GType{.cdecl, dynlib: lib, 
-                                       importc: "gtk_cell_renderer_get_type".}
-proc get_size*(cell: PCellRenderer, widget: PWidget, 
-                             cell_area: gdk2.PRectangle, x_offset: Pgint, 
-                             y_offset: Pgint, width: Pgint, height: Pgint){.
-    cdecl, dynlib: lib, importc: "gtk_cell_renderer_get_size".}
-proc render*(cell: PCellRenderer, window: gdk2.PWindow, 
-                           widget: PWidget, background_area: gdk2.PRectangle, 
-                           cell_area: gdk2.PRectangle, expose_area: gdk2.PRectangle, 
-                           flags: TCellRendererState){.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_render".}
-proc activate*(cell: PCellRenderer, event: gdk2.PEvent, 
-                             widget: PWidget, path: cstring, 
-                             background_area: gdk2.PRectangle, 
-                             cell_area: gdk2.PRectangle, flags: TCellRendererState): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_cell_renderer_activate".}
-proc start_editing*(cell: PCellRenderer, event: gdk2.PEvent, 
-                                  widget: PWidget, path: cstring, 
-                                  background_area: gdk2.PRectangle, 
-                                  cell_area: gdk2.PRectangle, 
-                                  flags: TCellRendererState): PCellEditable{.
-    cdecl, dynlib: lib, importc: "gtk_cell_renderer_start_editing".}
-proc set_fixed_size*(cell: PCellRenderer, width: gint, 
-                                   height: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_set_fixed_size".}
-proc get_fixed_size*(cell: PCellRenderer, width: Pgint, 
-                                   height: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_get_fixed_size".}
-const 
-  bm_TGtkCellRendererText_strikethrough* = 0x0001'i16
-  bp_TGtkCellRendererText_strikethrough* = 0'i16
-  bm_TGtkCellRendererText_editable* = 0x0002'i16
-  bp_TGtkCellRendererText_editable* = 1'i16
-  bm_TGtkCellRendererText_scale_set* = 0x0004'i16
-  bp_TGtkCellRendererText_scale_set* = 2'i16
-  bm_TGtkCellRendererText_foreground_set* = 0x0008'i16
-  bp_TGtkCellRendererText_foreground_set* = 3'i16
-  bm_TGtkCellRendererText_background_set* = 0x0010'i16
-  bp_TGtkCellRendererText_background_set* = 4'i16
-  bm_TGtkCellRendererText_underline_set* = 0x0020'i16
-  bp_TGtkCellRendererText_underline_set* = 5'i16
-  bm_TGtkCellRendererText_rise_set* = 0x0040'i16
-  bp_TGtkCellRendererText_rise_set* = 6'i16
-  bm_TGtkCellRendererText_strikethrough_set* = 0x0080'i16
-  bp_TGtkCellRendererText_strikethrough_set* = 7'i16
-  bm_TGtkCellRendererText_editable_set* = 0x0100'i16
-  bp_TGtkCellRendererText_editable_set* = 8'i16
-  bm_TGtkCellRendererText_calc_fixed_height* = 0x0200'i16
-  bp_TGtkCellRendererText_calc_fixed_height* = 9'i16
-
-proc TYPE_CELL_RENDERER_TEXT*(): GType
-proc CELL_RENDERER_TEXT*(obj: pointer): PCellRendererText
-proc CELL_RENDERER_TEXT_CLASS*(klass: pointer): PCellRendererTextClass
-proc IS_CELL_RENDERER_TEXT*(obj: pointer): bool
-proc IS_CELL_RENDERER_TEXT_CLASS*(klass: pointer): bool
-proc CELL_RENDERER_TEXT_GET_CLASS*(obj: pointer): PCellRendererTextClass
-proc strikethrough*(a: PCellRendererText): guint
-proc set_strikethrough*(a: PCellRendererText, `strikethrough`: guint)
-proc editable*(a: PCellRendererText): guint
-proc set_editable*(a: PCellRendererText, `editable`: guint)
-proc scale_set*(a: PCellRendererText): guint
-proc set_scale_set*(a: PCellRendererText, `scale_set`: guint)
-proc foreground_set*(a: PCellRendererText): guint
-proc set_foreground_set*(a: PCellRendererText, `foreground_set`: guint)
-proc background_set*(a: PCellRendererText): guint
-proc set_background_set*(a: PCellRendererText, `background_set`: guint)
-proc underline_set*(a: PCellRendererText): guint
-proc set_underline_set*(a: PCellRendererText, `underline_set`: guint)
-proc rise_set*(a: PCellRendererText): guint
-proc set_rise_set*(a: PCellRendererText, `rise_set`: guint)
-proc strikethrough_set*(a: PCellRendererText): guint
-proc set_strikethrough_set*(a: PCellRendererText, `strikethrough_set`: guint)
-proc editable_set*(a: PCellRendererText): guint
-proc set_editable_set*(a: PCellRendererText, `editable_set`: guint)
-proc calc_fixed_height*(a: PCellRendererText): guint
-proc set_calc_fixed_height*(a: PCellRendererText, `calc_fixed_height`: guint)
-proc cell_renderer_text_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_text_get_type".}
-proc cell_renderer_text_new*(): PCellRenderer{.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_text_new".}
-proc text_set_fixed_height_from_font*(renderer: PCellRendererText, 
-    number_of_rows: gint){.cdecl, dynlib: lib, importc: "gtk_cell_renderer_text_set_fixed_height_from_font".}
-const 
-  bm_TGtkCellRendererToggle_active* = 0x0001'i16
-  bp_TGtkCellRendererToggle_active* = 0'i16
-  bm_TGtkCellRendererToggle_activatable* = 0x0002'i16
-  bp_TGtkCellRendererToggle_activatable* = 1'i16
-  bm_TGtkCellRendererToggle_radio* = 0x0004'i16
-  bp_TGtkCellRendererToggle_radio* = 2'i16
-
-proc TYPE_CELL_RENDERER_TOGGLE*(): GType
-proc CELL_RENDERER_TOGGLE*(obj: pointer): PCellRendererToggle
-proc CELL_RENDERER_TOGGLE_CLASS*(klass: pointer): PCellRendererToggleClass
-proc IS_CELL_RENDERER_TOGGLE*(obj: pointer): bool
-proc IS_CELL_RENDERER_TOGGLE_CLASS*(klass: pointer): bool
-proc CELL_RENDERER_TOGGLE_GET_CLASS*(obj: pointer): PCellRendererToggleClass
-proc active*(a: PCellRendererToggle): guint
-proc set_active*(a: PCellRendererToggle, `active`: guint)
-proc activatable*(a: PCellRendererToggle): guint
-proc set_activatable*(a: PCellRendererToggle, `activatable`: guint)
-proc radio*(a: PCellRendererToggle): guint
-proc set_radio*(a: PCellRendererToggle, `radio`: guint)
-proc cell_renderer_toggle_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_toggle_get_type".}
-proc cell_renderer_toggle_new*(): PCellRenderer{.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_toggle_new".}
-proc toggle_get_radio*(toggle: PCellRendererToggle): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_cell_renderer_toggle_get_radio".}
-proc toggle_set_radio*(toggle: PCellRendererToggle, 
-                                     radio: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_toggle_set_radio".}
-proc toggle_get_active*(toggle: PCellRendererToggle): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_cell_renderer_toggle_get_active".}
-proc toggle_set_active*(toggle: PCellRendererToggle, 
-                                      setting: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_toggle_set_active".}
-proc TYPE_CELL_RENDERER_PIXBUF*(): GType
-proc CELL_RENDERER_PIXBUF*(obj: pointer): PCellRendererPixbuf
-proc CELL_RENDERER_PIXBUF_CLASS*(klass: pointer): PCellRendererPixbufClass
-proc IS_CELL_RENDERER_PIXBUF*(obj: pointer): bool
-proc IS_CELL_RENDERER_PIXBUF_CLASS*(klass: pointer): bool
-proc CELL_RENDERER_PIXBUF_GET_CLASS*(obj: pointer): PCellRendererPixbufClass
-proc cell_renderer_pixbuf_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_pixbuf_get_type".}
-proc cell_renderer_pixbuf_new*(): PCellRenderer{.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_pixbuf_new".}
-proc TYPE_ITEM*(): GType
-proc ITEM*(obj: pointer): PItem
-proc ITEM_CLASS*(klass: pointer): PItemClass
-proc IS_ITEM*(obj: pointer): bool
-proc IS_ITEM_CLASS*(klass: pointer): bool
-proc ITEM_GET_CLASS*(obj: pointer): PItemClass
-proc item_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_item_get_type".}
-proc select*(item: PItem){.cdecl, dynlib: lib, importc: "gtk_item_select".}
-proc deselect*(item: PItem){.cdecl, dynlib: lib, 
-                                  importc: "gtk_item_deselect".}
-proc toggle*(item: PItem){.cdecl, dynlib: lib, importc: "gtk_item_toggle".}
-const 
-  bm_TGtkMenuItem_show_submenu_indicator* = 0x0001'i16
-  bp_TGtkMenuItem_show_submenu_indicator* = 0'i16
-  bm_TGtkMenuItem_submenu_placement* = 0x0002'i16
-  bp_TGtkMenuItem_submenu_placement* = 1'i16
-  bm_TGtkMenuItem_submenu_direction* = 0x0004'i16
-  bp_TGtkMenuItem_submenu_direction* = 2'i16
-  bm_TGtkMenuItem_right_justify* = 0x0008'i16
-  bp_TGtkMenuItem_right_justify* = 3'i16
-  bm_TGtkMenuItem_timer_from_keypress* = 0x0010'i16
-  bp_TGtkMenuItem_timer_from_keypress* = 4'i16
-  bm_TGtkMenuItemClass_hide_on_activate* = 0x0001'i16
-  bp_TGtkMenuItemClass_hide_on_activate* = 0'i16
-
-proc TYPE_MENU_ITEM*(): GType
-proc MENU_ITEM*(obj: pointer): PMenuItem
-proc MENU_ITEM_CLASS*(klass: pointer): PMenuItemClass
-proc IS_MENU_ITEM*(obj: pointer): bool
-proc IS_MENU_ITEM_CLASS*(klass: pointer): bool
-proc MENU_ITEM_GET_CLASS*(obj: pointer): PMenuItemClass
-proc show_submenu_indicator*(a: PMenuItem): guint
-proc set_show_submenu_indicator*(a: PMenuItem, 
-                                 `show_submenu_indicator`: guint)
-proc submenu_placement*(a: PMenuItem): guint
-proc set_submenu_placement*(a: PMenuItem, `submenu_placement`: guint)
-proc submenu_direction*(a: PMenuItem): guint
-proc set_submenu_direction*(a: PMenuItem, `submenu_direction`: guint)
-proc right_justify*(a: PMenuItem): guint
-proc set_right_justify*(a: PMenuItem, `right_justify`: guint)
-proc timer_from_keypress*(a: PMenuItem): guint
-proc set_timer_from_keypress*(a: PMenuItem, `timer_from_keypress`: guint)
-proc hide_on_activate*(a: PMenuItemClass): guint
-proc set_hide_on_activate*(a: PMenuItemClass, `hide_on_activate`: guint)
-proc menu_item_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_menu_item_get_type".}
-proc menu_item_new*(): PMenuItem{.cdecl, dynlib: lib, 
-                                  importc: "gtk_menu_item_new".}
-proc menu_item_new*(`label`: cstring): PMenuItem{.cdecl, dynlib: lib, 
-    importc: "gtk_menu_item_new_with_label".}
-proc menu_item_new_with_mnemonic*(`label`: cstring): PMenuItem{.cdecl, 
-    dynlib: lib, importc: "gtk_menu_item_new_with_mnemonic".}
-proc set_submenu*(menu_item: PMenuItem, submenu: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_item_set_submenu".}
-proc get_submenu*(menu_item: PMenuItem): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_menu_item_get_submenu".}
-proc remove_submenu*(menu_item: PMenuItem){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_item_remove_submenu".}
-proc select*(menu_item: PMenuItem){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_item_select".}
-proc deselect*(menu_item: PMenuItem){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_item_deselect".}
-proc activate*(menu_item: PMenuItem){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_item_activate".}
-proc toggle_size_request*(menu_item: PMenuItem, requisition: Pgint){.
-    cdecl, dynlib: lib, importc: "gtk_menu_item_toggle_size_request".}
-proc toggle_size_allocate*(menu_item: PMenuItem, allocation: gint){.
-    cdecl, dynlib: lib, importc: "gtk_menu_item_toggle_size_allocate".}
-proc set_right_justified*(menu_item: PMenuItem, 
-                                    right_justified: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_item_set_right_justified".}
-proc get_right_justified*(menu_item: PMenuItem): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_menu_item_get_right_justified".}
-proc set_accel_path*(menu_item: PMenuItem, accel_path: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_menu_item_set_accel_path".}
-proc refresh_accel_path*(menu_item: PMenuItem, prefix: cstring, 
-                                   accel_group: PAccelGroup, 
-                                   group_changed: gboolean){.cdecl, dynlib: lib, 
-    importc: "_gtk_menu_item_refresh_accel_path".}
-proc menu_item_is_selectable*(menu_item: PWidget): gboolean{.cdecl, dynlib: lib, 
-    importc: "_gtk_menu_item_is_selectable".}
-const 
-  bm_TGtkToggleButton_active* = 0x0001'i16
-  bp_TGtkToggleButton_active* = 0'i16
-  bm_TGtkToggleButton_draw_indicator* = 0x0002'i16
-  bp_TGtkToggleButton_draw_indicator* = 1'i16
-  bm_TGtkToggleButton_inconsistent* = 0x0004'i16
-  bp_TGtkToggleButton_inconsistent* = 2'i16
-
-proc TYPE_TOGGLE_BUTTON*(): GType
-proc TOGGLE_BUTTON*(obj: pointer): PToggleButton
-proc TOGGLE_BUTTON_CLASS*(klass: pointer): PToggleButtonClass
-proc IS_TOGGLE_BUTTON*(obj: pointer): bool
-proc IS_TOGGLE_BUTTON_CLASS*(klass: pointer): bool
-proc TOGGLE_BUTTON_GET_CLASS*(obj: pointer): PToggleButtonClass
-proc active*(a: PToggleButton): guint
-proc set_active*(a: PToggleButton, `active`: guint)
-proc draw_indicator*(a: PToggleButton): guint
-proc set_draw_indicator*(a: PToggleButton, `draw_indicator`: guint)
-proc inconsistent*(a: PToggleButton): guint
-proc set_inconsistent*(a: PToggleButton, `inconsistent`: guint)
-proc toggle_button_get_type*(): TType{.cdecl, dynlib: lib, 
-                                       importc: "gtk_toggle_button_get_type".}
-proc toggle_button_new*(): PToggleButton{.cdecl, dynlib: lib, 
-    importc: "gtk_toggle_button_new".}
-proc toggle_button_new*(`label`: cstring): PToggleButton{.cdecl, 
-    dynlib: lib, importc: "gtk_toggle_button_new_with_label".}
-proc toggle_button_new_with_mnemonic*(`label`: cstring): PToggleButton{.cdecl, 
-    dynlib: lib, importc: "gtk_toggle_button_new_with_mnemonic".}
-proc set_mode*(toggle_button: PToggleButton, 
-                             draw_indicator: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_toggle_button_set_mode".}
-proc get_mode*(toggle_button: PToggleButton): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_toggle_button_get_mode".}
-proc set_active*(toggle_button: PToggleButton, is_active: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_toggle_button_set_active".}
-proc get_active*(toggle_button: PToggleButton): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_toggle_button_get_active".}
-proc toggled*(toggle_button: PToggleButton){.cdecl, dynlib: lib, 
-    importc: "gtk_toggle_button_toggled".}
-proc set_inconsistent*(toggle_button: PToggleButton, 
-                                     setting: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_toggle_button_set_inconsistent".}
-proc get_inconsistent*(toggle_button: PToggleButton): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_toggle_button_get_inconsistent".}
-proc TYPE_CHECK_BUTTON*(): GType
-proc CHECK_BUTTON*(obj: pointer): PCheckButton
-proc CHECK_BUTTON_CLASS*(klass: pointer): PCheckButtonClass
-proc IS_CHECK_BUTTON*(obj: pointer): bool
-proc IS_CHECK_BUTTON_CLASS*(klass: pointer): bool
-proc CHECK_BUTTON_GET_CLASS*(obj: pointer): PCheckButtonClass
-proc check_button_get_type*(): TType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_check_button_get_type".}
-proc check_button_new*(): PCheckButton{.cdecl, dynlib: lib, 
-                                        importc: "gtk_check_button_new".}
-proc check_button_new*(`label`: cstring): PCheckButton{.cdecl, 
-    dynlib: lib, importc: "gtk_check_button_new_with_label".}
-proc check_button_new_with_mnemonic*(`label`: cstring): PCheckButton{.cdecl, 
-    dynlib: lib, importc: "gtk_check_button_new_with_mnemonic".}
-proc get_props*(check_button: PCheckButton, indicator_size: Pgint, 
-                             indicator_spacing: Pgint){.cdecl, dynlib: lib, 
-    importc: "_gtk_check_button_get_props".}
-const 
-  bm_TGtkCheckMenuItem_active* = 0x0001'i16
-  bp_TGtkCheckMenuItem_active* = 0'i16
-  bm_TGtkCheckMenuItem_always_show_toggle* = 0x0002'i16
-  bp_TGtkCheckMenuItem_always_show_toggle* = 1'i16
-  bm_TGtkCheckMenuItem_inconsistent* = 0x0004'i16
-  bp_TGtkCheckMenuItem_inconsistent* = 2'i16
-
-proc TYPE_CHECK_MENU_ITEM*(): GType
-proc CHECK_MENU_ITEM*(obj: pointer): PCheckMenuItem
-proc CHECK_MENU_ITEM_CLASS*(klass: pointer): PCheckMenuItemClass
-proc IS_CHECK_MENU_ITEM*(obj: pointer): bool
-proc IS_CHECK_MENU_ITEM_CLASS*(klass: pointer): bool
-proc CHECK_MENU_ITEM_GET_CLASS*(obj: pointer): PCheckMenuItemClass
-proc active*(a: PCheckMenuItem): guint
-proc set_active*(a: PCheckMenuItem, `active`: guint)
-proc always_show_toggle*(a: PCheckMenuItem): guint
-proc set_always_show_toggle*(a: PCheckMenuItem, `always_show_toggle`: guint)
-proc inconsistent*(a: PCheckMenuItem): guint
-proc set_inconsistent*(a: PCheckMenuItem, `inconsistent`: guint)
-proc check_menu_item_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_check_menu_item_get_type".}
-proc check_menu_item_new*(): PCheckMenuItem{.cdecl, dynlib: lib, 
-                                      importc: "gtk_check_menu_item_new".}
-proc check_menu_item_new*(`label`: cstring): PCheckMenuItem{.cdecl, 
-    dynlib: lib, importc: "gtk_check_menu_item_new_with_label".}
-proc check_menu_item_new_with_mnemonic*(`label`: cstring): PCheckMenuItem{.cdecl, 
-    dynlib: lib, importc: "gtk_check_menu_item_new_with_mnemonic".}
-proc item_set_active*(check_menu_item: PCheckMenuItem, 
-                                 is_active: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_check_menu_item_set_active".}
-proc item_get_active*(check_menu_item: PCheckMenuItem): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_check_menu_item_get_active".}
-proc item_toggled*(check_menu_item: PCheckMenuItem){.cdecl, 
-    dynlib: lib, importc: "gtk_check_menu_item_toggled".}
-proc item_set_inconsistent*(check_menu_item: PCheckMenuItem, 
-                                       setting: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_check_menu_item_set_inconsistent".}
-proc item_get_inconsistent*(check_menu_item: PCheckMenuItem): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_check_menu_item_get_inconsistent".}
-proc clipboard_get_for_display*(display: gdk2.PDisplay, selection: gdk2.TAtom): PClipboard{.
-    cdecl, dynlib: lib, importc: "gtk_clipboard_get_for_display".}
-proc get_display*(clipboard: PClipboard): gdk2.PDisplay{.cdecl, 
-    dynlib: lib, importc: "gtk_clipboard_get_display".}
-proc set_with_data*(clipboard: PClipboard, targets: PTargetEntry, 
-                              n_targets: guint, get_func: TClipboardGetFunc, 
-                              clear_func: TClipboardClearFunc, 
-                              user_data: gpointer): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_clipboard_set_with_data".}
-proc set_with_owner*(clipboard: PClipboard, targets: PTargetEntry, 
-                               n_targets: guint, get_func: TClipboardGetFunc, 
-                               clear_func: TClipboardClearFunc, owner: PGObject): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_clipboard_set_with_owner".}
-proc get_owner*(clipboard: PClipboard): PGObject{.cdecl, dynlib: lib, 
-    importc: "gtk_clipboard_get_owner".}
-proc clear*(clipboard: PClipboard){.cdecl, dynlib: lib, 
-    importc: "gtk_clipboard_clear".}
-proc set_text*(clipboard: PClipboard, text: cstring, len: gint){.
-    cdecl, dynlib: lib, importc: "gtk_clipboard_set_text".}
-proc request_contents*(clipboard: PClipboard, target: gdk2.TAtom, 
-                                 callback: TClipboardReceivedFunc, 
-                                 user_data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_clipboard_request_contents".}
-proc request_text*(clipboard: PClipboard, 
-                             callback: TClipboardTextReceivedFunc, 
-                             user_data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_clipboard_request_text".}
-proc wait_for_contents*(clipboard: PClipboard, target: gdk2.TAtom): PSelectionData{.
-    cdecl, dynlib: lib, importc: "gtk_clipboard_wait_for_contents".}
-proc wait_for_text*(clipboard: PClipboard): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_clipboard_wait_for_text".}
-proc wait_is_text_available*(clipboard: PClipboard): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_clipboard_wait_is_text_available".}
-const 
-  CLIST_IN_DRAG* = 1 shl 0
-  CLIST_ROW_HEIGHT_SET* = 1 shl 1
-  CLIST_SHOW_TITLES* = 1 shl 2
-  CLIST_ADD_MODE* = 1 shl 4
-  CLIST_AUTO_SORT* = 1 shl 5
-  CLIST_AUTO_RESIZE_BLOCKED* = 1 shl 6
-  CLIST_REORDERABLE* = 1 shl 7
-  CLIST_USE_DRAG_ICONS* = 1 shl 8
-  CLIST_DRAW_DRAG_LINE* = 1 shl 9
-  CLIST_DRAW_DRAG_RECT* = 1 shl 10
-  BUTTON_IGNORED* = 0
-  BUTTON_SELECTS* = 1 shl 0
-  BUTTON_DRAGS* = 1 shl 1
-  BUTTON_EXPANDS* = 1 shl 2
-
-const 
-  bm_TGtkCListColumn_visible* = 0x0001'i16
-  bp_TGtkCListColumn_visible* = 0'i16
-  bm_TGtkCListColumn_width_set* = 0x0002'i16
-  bp_TGtkCListColumn_width_set* = 1'i16
-  bm_TGtkCListColumn_resizeable* = 0x0004'i16
-  bp_TGtkCListColumn_resizeable* = 2'i16
-  bm_TGtkCListColumn_auto_resize* = 0x0008'i16
-  bp_TGtkCListColumn_auto_resize* = 3'i16
-  bm_TGtkCListColumn_button_passive* = 0x0010'i16
-  bp_TGtkCListColumn_button_passive* = 4'i16
-  bm_TGtkCListRow_fg_set* = 0x0001'i16
-  bp_TGtkCListRow_fg_set* = 0'i16
-  bm_TGtkCListRow_bg_set* = 0x0002'i16
-  bp_TGtkCListRow_bg_set* = 1'i16
-  bm_TGtkCListRow_selectable* = 0x0004'i16
-  bp_TGtkCListRow_selectable* = 2'i16
-
-proc TYPE_CLIST*(): GType
-proc CLIST*(obj: pointer): PCList
-proc CLIST_CLASS*(klass: pointer): PCListClass
-proc IS_CLIST*(obj: pointer): bool
-proc IS_CLIST_CLASS*(klass: pointer): bool
-proc CLIST_GET_CLASS*(obj: pointer): PCListClass
-proc CLIST_FLAGS*(clist: pointer): guint16
-proc SET_FLAG*(clist: PCList, flag: guint16)
-proc UNSET_FLAG*(clist: PCList, flag: guint16)
-#proc GTK_CLIST_IN_DRAG_get*(clist: pointer): bool
-#proc GTK_CLIST_ROW_HEIGHT_SET_get*(clist: pointer): bool
-#proc GTK_CLIST_SHOW_TITLES_get*(clist: pointer): bool
-#proc GTK_CLIST_ADD_MODE_get*(clist: pointer): bool
-#proc GTK_CLIST_AUTO_SORT_get*(clist: pointer): bool
-#proc GTK_CLIST_AUTO_RESIZE_BLOCKED_get*(clist: pointer): bool
-#proc GTK_CLIST_REORDERABLE_get*(clist: pointer): bool
-#proc GTK_CLIST_USE_DRAG_ICONS_get*(clist: pointer): bool
-#proc GTK_CLIST_DRAW_DRAG_LINE_get*(clist: pointer): bool
-#proc GTK_CLIST_DRAW_DRAG_RECT_get*(clist: pointer): bool
-#proc GTK_CLIST_ROW_get*(glist: PGList): PGtkCListRow
-#proc GTK_CELL_TEXT_get*(cell: pointer): PGtkCellText
-#proc GTK_CELL_PIXMAP_get*(cell: pointer): PGtkCellPixmap
-#proc GTK_CELL_PIXTEXT_get*(cell: pointer): PGtkCellPixText
-#proc GTK_CELL_WIDGET_get*(cell: pointer): PGtkCellWidget
-
-proc visible*(a: PCListColumn): guint
-proc set_visible*(a: PCListColumn, `visible`: guint)
-proc width_set*(a: PCListColumn): guint
-proc set_width_set*(a: PCListColumn, `width_set`: guint)
-proc resizeable*(a: PCListColumn): guint
-proc set_resizeable*(a: PCListColumn, `resizeable`: guint)
-proc auto_resize*(a: PCListColumn): guint
-proc set_auto_resize*(a: PCListColumn, `auto_resize`: guint)
-proc button_passive*(a: PCListColumn): guint
-proc set_button_passive*(a: PCListColumn, `button_passive`: guint)
-proc fg_set*(a: PCListRow): guint
-proc set_fg_set*(a: PCListRow, `fg_set`: guint)
-proc bg_set*(a: PCListRow): guint
-proc set_bg_set*(a: PCListRow, `bg_set`: guint)
-proc selectable*(a: PCListRow): guint
-proc set_selectable*(a: PCListRow, `selectable`: guint)
-proc clist_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_clist_get_type".}
-proc clist_new*(columns: gint): PCList{.cdecl, dynlib: lib, 
-                                        importc: "gtk_clist_new".}
-proc set_hadjustment*(clist: PCList, adjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_hadjustment".}
-proc set_vadjustment*(clist: PCList, adjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_vadjustment".}
-proc get_hadjustment*(clist: PCList): PAdjustment{.cdecl, dynlib: lib, 
-    importc: "gtk_clist_get_hadjustment".}
-proc get_vadjustment*(clist: PCList): PAdjustment{.cdecl, dynlib: lib, 
-    importc: "gtk_clist_get_vadjustment".}
-proc set_shadow_type*(clist: PCList, thetype: TShadowType){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_shadow_type".}
-proc set_selection_mode*(clist: PCList, mode: TSelectionMode){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_selection_mode".}
-proc set_reorderable*(clist: PCList, reorderable: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_reorderable".}
-proc set_use_drag_icons*(clist: PCList, use_icons: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_use_drag_icons".}
-proc set_button_actions*(clist: PCList, button: guint, 
-                               button_actions: guint8){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_set_button_actions".}
-proc freeze*(clist: PCList){.cdecl, dynlib: lib, 
-                                   importc: "gtk_clist_freeze".}
-proc thaw*(clist: PCList){.cdecl, dynlib: lib, importc: "gtk_clist_thaw".}
-proc column_titles_show*(clist: PCList){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_column_titles_show".}
-proc column_titles_hide*(clist: PCList){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_column_titles_hide".}
-proc column_title_active*(clist: PCList, column: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_column_title_active".}
-proc column_title_passive*(clist: PCList, column: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_column_title_passive".}
-proc column_titles_active*(clist: PCList){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_column_titles_active".}
-proc column_titles_passive*(clist: PCList){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_column_titles_passive".}
-proc set_column_title*(clist: PCList, column: gint, title: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_column_title".}
-proc get_column_title*(clist: PCList, column: gint): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_clist_get_column_title".}
-proc set_column_widget*(clist: PCList, column: gint, widget: PWidget){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_column_widget".}
-proc get_column_widget*(clist: PCList, column: gint): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_clist_get_column_widget".}
-proc set_column_justification*(clist: PCList, column: gint, 
-                                     justification: TJustification){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_column_justification".}
-proc set_column_visibility*(clist: PCList, column: gint, visible: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_column_visibility".}
-proc set_column_resizeable*(clist: PCList, column: gint, 
-                                  resizeable: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_set_column_resizeable".}
-proc set_column_auto_resize*(clist: PCList, column: gint, 
-                                   auto_resize: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_set_column_auto_resize".}
-proc columns_autosize*(clist: PCList): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_clist_columns_autosize".}
-proc optimal_column_width*(clist: PCList, column: gint): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_clist_optimal_column_width".}
-proc set_column_width*(clist: PCList, column: gint, width: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_column_width".}
-proc set_column_min_width*(clist: PCList, column: gint, min_width: gint){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_column_min_width".}
-proc set_column_max_width*(clist: PCList, column: gint, max_width: gint){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_column_max_width".}
-proc set_row_height*(clist: PCList, height: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_set_row_height".}
-proc moveto*(clist: PCList, row: gint, column: gint, row_align: gfloat, 
-                   col_align: gfloat){.cdecl, dynlib: lib, 
-                                       importc: "gtk_clist_moveto".}
-proc row_is_visible*(clist: PCList, row: gint): TVisibility{.cdecl, 
-    dynlib: lib, importc: "gtk_clist_row_is_visible".}
-proc get_cell_type*(clist: PCList, row: gint, column: gint): TCellType{.
-    cdecl, dynlib: lib, importc: "gtk_clist_get_cell_type".}
-proc set_text*(clist: PCList, row: gint, column: gint, text: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_text".}
-proc get_text*(clist: PCList, row: gint, column: gint, text: PPgchar): gint{.
-    cdecl, dynlib: lib, importc: "gtk_clist_get_text".}
-proc set_pixmap*(clist: PCList, row: gint, column: gint, 
-                       pixmap: gdk2.PPixmap, mask: gdk2.PBitmap){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_pixmap".}
-proc get_pixmap*(clist: PCList, row: gint, column: gint, 
-                       pixmap: var gdk2.PPixmap, mask: var gdk2.PBitmap): gint{.
-    cdecl, dynlib: lib, importc: "gtk_clist_get_pixmap".}
-proc set_pixtext*(clist: PCList, row: gint, column: gint, text: cstring, 
-                        spacing: guint8, pixmap: gdk2.PPixmap, mask: gdk2.PBitmap){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_pixtext".}
-proc set_foreground*(clist: PCList, row: gint, color: gdk2.PColor){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_foreground".}
-proc set_background*(clist: PCList, row: gint, color: gdk2.PColor){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_background".}
-proc set_cell_style*(clist: PCList, row: gint, column: gint, style: PStyle){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_cell_style".}
-proc get_cell_style*(clist: PCList, row: gint, column: gint): PStyle{.
-    cdecl, dynlib: lib, importc: "gtk_clist_get_cell_style".}
-proc set_row_style*(clist: PCList, row: gint, style: PStyle){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_row_style".}
-proc get_row_style*(clist: PCList, row: gint): PStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_clist_get_row_style".}
-proc set_shift*(clist: PCList, row: gint, column: gint, vertical: gint, 
-                      horizontal: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_set_shift".}
-proc set_selectable*(clist: PCList, row: gint, selectable: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_selectable".}
-proc get_selectable*(clist: PCList, row: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_clist_get_selectable".}
-proc remove*(clist: PCList, row: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_remove".}
-proc set_row_data*(clist: PCList, row: gint, data: gpointer){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_row_data".}
-proc set_row_data_full*(clist: PCList, row: gint, data: gpointer, 
-                              destroy: TDestroyNotify){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_set_row_data_full".}
-proc get_row_data*(clist: PCList, row: gint): gpointer{.cdecl, 
-    dynlib: lib, importc: "gtk_clist_get_row_data".}
-proc find_row_from_data*(clist: PCList, data: gpointer): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_clist_find_row_from_data".}
-proc select_row*(clist: PCList, row: gint, column: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_select_row".}
-proc unselect_row*(clist: PCList, row: gint, column: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_unselect_row".}
-proc undo_selection*(clist: PCList){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_undo_selection".}
-proc clear*(clist: PCList){.cdecl, dynlib: lib, importc: "gtk_clist_clear".}
-proc get_selection_info*(clist: PCList, x: gint, y: gint, row: Pgint, 
-                               column: Pgint): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_clist_get_selection_info".}
-proc select_all*(clist: PCList){.cdecl, dynlib: lib, 
-                                       importc: "gtk_clist_select_all".}
-proc unselect_all*(clist: PCList){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_unselect_all".}
-proc swap_rows*(clist: PCList, row1: gint, row2: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_swap_rows".}
-proc row_move*(clist: PCList, source_row: gint, dest_row: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_row_move".}
-proc set_compare_func*(clist: PCList, cmp_func: TCListCompareFunc){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_compare_func".}
-proc set_sort_column*(clist: PCList, column: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_set_sort_column".}
-proc set_sort_type*(clist: PCList, sort_type: TSortType){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_sort_type".}
-proc sort*(clist: PCList){.cdecl, dynlib: lib, importc: "gtk_clist_sort".}
-proc set_auto_sort*(clist: PCList, auto_sort: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_auto_sort".}
-proc create_cell_layout*(clist: PCList, clist_row: PCListRow, column: gint): pango.PLayout{.
-    cdecl, dynlib: lib, importc: "_gtk_clist_create_cell_layout".}
-const 
-  DIALOG_MODAL* = cint(1 shl 0)
-  DIALOG_DESTROY_WITH_PARENT* = cint(1 shl 1)
-  DIALOG_NO_SEPARATOR* = cint(1 shl 2)
-  RESPONSE_NONE* = - cint(1)
-  RESPONSE_REJECT* = - cint(2)
-  RESPONSE_ACCEPT* = - cint(3)
-  RESPONSE_DELETE_EVENT* = - cint(4)
-  RESPONSE_OK* = - cint(5)
-  RESPONSE_CANCEL* = cint(-6)
-  RESPONSE_CLOSE* = - cint(7)
-  RESPONSE_YES* = - cint(8)
-  RESPONSE_NO* = - cint(9)
-  RESPONSE_APPLY* = - cint(10)
-  RESPONSE_HELP* = - cint(11)
-
-proc TYPE_DIALOG*(): GType
-proc DIALOG*(obj: pointer): PDialog
-proc DIALOG_CLASS*(klass: pointer): PDialogClass
-proc IS_DIALOG*(obj: pointer): bool
-proc IS_DIALOG_CLASS*(klass: pointer): bool
-proc DIALOG_GET_CLASS*(obj: pointer): PDialogClass
-proc dialog_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_dialog_get_type".}
-proc dialog_new*(): PDialog{.cdecl, dynlib: lib, importc: "gtk_dialog_new".}
-proc add_action_widget*(dialog: PDialog, child: PWidget, 
-                               response_id: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_dialog_add_action_widget".}
-proc add_button*(dialog: PDialog, button_text: cstring, response_id: gint): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_dialog_add_button".}
-proc set_response_sensitive*(dialog: PDialog, response_id: gint, 
-                                    setting: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_dialog_set_response_sensitive".}
-proc set_default_response*(dialog: PDialog, response_id: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_dialog_set_default_response".}
-proc set_has_separator*(dialog: PDialog, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_dialog_set_has_separator".}
-proc get_has_separator*(dialog: PDialog): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_dialog_get_has_separator".}
-proc response*(dialog: PDialog, response_id: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_dialog_response".}
-proc run*(dialog: PDialog): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_dialog_run".}
-proc show_about_dialog*(parent: PWindow, firstPropertyName: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_show_about_dialog", varargs.}
-proc TYPE_VBOX*(): GType
-proc VBOX*(obj: pointer): PVBox
-proc VBOX_CLASS*(klass: pointer): PVBoxClass
-proc IS_VBOX*(obj: pointer): bool
-proc IS_VBOX_CLASS*(klass: pointer): bool
-proc VBOX_GET_CLASS*(obj: pointer): PVBoxClass
-proc vbox_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_vbox_get_type".}
-proc vbox_new*(homogeneous: gboolean, spacing: gint): PVBox{.cdecl, dynlib: lib, 
-    importc: "gtk_vbox_new".}
-proc TYPE_COLOR_SELECTION*(): GType
-proc COLOR_SELECTION*(obj: pointer): PColorSelection
-proc COLOR_SELECTION_CLASS*(klass: pointer): PColorSelectionClass
-proc IS_COLOR_SELECTION*(obj: pointer): bool
-proc IS_COLOR_SELECTION_CLASS*(klass: pointer): bool
-proc COLOR_SELECTION_GET_CLASS*(obj: pointer): PColorSelectionClass
-proc color_selection_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_color_selection_get_type".}
-proc color_selection_new*(): PColorSelection{.cdecl, dynlib: lib, 
-    importc: "gtk_color_selection_new".}
-proc get_has_opacity_control*(colorsel: PColorSelection): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_color_selection_get_has_opacity_control".}
-proc set_has_opacity_control*(colorsel: PColorSelection, 
-    has_opacity: gboolean){.cdecl, dynlib: lib, importc: "gtk_color_selection_set_has_opacity_control".}
-proc get_has_palette*(colorsel: PColorSelection): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_color_selection_get_has_palette".}
-proc set_has_palette*(colorsel: PColorSelection, 
-                                      has_palette: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_color_selection_set_has_palette".}
-proc set_current_color*(colorsel: PColorSelection, 
-                                        color: gdk2.PColor){.cdecl, dynlib: lib, 
-    importc: "gtk_color_selection_set_current_color".}
-proc set_current_alpha*(colorsel: PColorSelection, 
-                                        alpha: guint16){.cdecl, dynlib: lib, 
-    importc: "gtk_color_selection_set_current_alpha".}
-proc get_current_color*(colorsel: PColorSelection, 
-                                        color: gdk2.PColor){.cdecl, dynlib: lib, 
-    importc: "gtk_color_selection_get_current_color".}
-proc get_current_alpha*(colorsel: PColorSelection): guint16{.
-    cdecl, dynlib: lib, importc: "gtk_color_selection_get_current_alpha".}
-proc set_previous_color*(colorsel: PColorSelection, 
-    color: gdk2.PColor){.cdecl, dynlib: lib, 
-                       importc: "gtk_color_selection_set_previous_color".}
-proc set_previous_alpha*(colorsel: PColorSelection, 
-    alpha: guint16){.cdecl, dynlib: lib, 
-                     importc: "gtk_color_selection_set_previous_alpha".}
-proc get_previous_color*(colorsel: PColorSelection, 
-    color: gdk2.PColor){.cdecl, dynlib: lib, 
-                       importc: "gtk_color_selection_get_previous_color".}
-proc get_previous_alpha*(colorsel: PColorSelection): guint16{.
-    cdecl, dynlib: lib, importc: "gtk_color_selection_get_previous_alpha".}
-proc is_adjusting*(colorsel: PColorSelection): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_color_selection_is_adjusting".}
-proc color_selection_palette_from_string*(str: cstring, colors: var gdk2.PColor, 
-    n_colors: Pgint): gboolean{.cdecl, dynlib: lib, importc: "gtk_color_selection_palette_from_string".}
-proc color_selection_palette_to_string*(colors: gdk2.PColor, n_colors: gint): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_color_selection_palette_to_string".}
-proc color_selection_set_change_palette_with_screen_hook*(
-    func: TColorSelectionChangePaletteWithScreenFunc): TColorSelectionChangePaletteWithScreenFunc{.
-    cdecl, dynlib: lib, 
-    importc: "gtk_color_selection_set_change_palette_with_screen_hook".}
-proc TYPE_COLOR_SELECTION_DIALOG*(): GType
-proc COLOR_SELECTION_DIALOG*(obj: pointer): PColorSelectionDialog
-proc COLOR_SELECTION_DIALOG_CLASS*(klass: pointer): PColorSelectionDialogClass
-proc IS_COLOR_SELECTION_DIALOG*(obj: pointer): bool
-proc IS_COLOR_SELECTION_DIALOG_CLASS*(klass: pointer): bool
-proc COLOR_SELECTION_DIALOG_GET_CLASS*(obj: pointer): PColorSelectionDialogClass
-proc color_selection_dialog_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_color_selection_dialog_get_type".}
-proc color_selection_dialog_new*(title: cstring): PColorSelectionDialog{.cdecl, 
-    dynlib: lib, importc: "gtk_color_selection_dialog_new".}
-proc TYPE_HBOX*(): GType
-proc HBOX*(obj: pointer): PHBox
-proc HBOX_CLASS*(klass: pointer): PHBoxClass
-proc IS_HBOX*(obj: pointer): bool
-proc IS_HBOX_CLASS*(klass: pointer): bool
-proc HBOX_GET_CLASS*(obj: pointer): PHBoxClass
-proc hbox_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_hbox_get_type".}
-proc hbox_new*(homogeneous: gboolean, spacing: gint): PHBox{.cdecl, dynlib: lib, 
-    importc: "gtk_hbox_new".}
-const 
-  bm_TGtkCombo_value_in_list* = 0x0001'i16
-  bp_TGtkCombo_value_in_list* = 0'i16
-  bm_TGtkCombo_ok_if_empty* = 0x0002'i16
-  bp_TGtkCombo_ok_if_empty* = 1'i16
-  bm_TGtkCombo_case_sensitive* = 0x0004'i16
-  bp_TGtkCombo_case_sensitive* = 2'i16
-  bm_TGtkCombo_use_arrows* = 0x0008'i16
-  bp_TGtkCombo_use_arrows* = 3'i16
-  bm_TGtkCombo_use_arrows_always* = 0x0010'i16
-  bp_TGtkCombo_use_arrows_always* = 4'i16
-
-proc TYPE_COMBO*(): GType
-proc COMBO*(obj: pointer): PCombo
-proc COMBO_CLASS*(klass: pointer): PComboClass
-proc IS_COMBO*(obj: pointer): bool
-proc IS_COMBO_CLASS*(klass: pointer): bool
-proc COMBO_GET_CLASS*(obj: pointer): PComboClass
-proc value_in_list*(a: PCombo): guint
-proc set_value_in_list*(a: PCombo, `value_in_list`: guint)
-proc ok_if_empty*(a: PCombo): guint
-proc set_ok_if_empty*(a: PCombo, `ok_if_empty`: guint)
-proc case_sensitive*(a: PCombo): guint
-proc set_case_sensitive*(a: PCombo, `case_sensitive`: guint)
-proc use_arrows*(a: PCombo): guint
-proc set_use_arrows*(a: PCombo, `use_arrows`: guint)
-proc use_arrows_always*(a: PCombo): guint
-proc set_use_arrows_always*(a: PCombo, `use_arrows_always`: guint)
-proc combo_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_combo_get_type".}
-proc combo_new*(): PCombo{.cdecl, dynlib: lib, importc: "gtk_combo_new".}
-proc set_value_in_list*(combo: PCombo, val: gboolean, 
-                              ok_if_empty: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_combo_set_value_in_list".}
-proc set_use_arrows*(combo: PCombo, val: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_combo_set_use_arrows".}
-proc set_use_arrows_always*(combo: PCombo, val: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_combo_set_use_arrows_always".}
-proc set_case_sensitive*(combo: PCombo, val: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_combo_set_case_sensitive".}
-proc set_item_string*(combo: PCombo, item: PItem, item_value: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_combo_set_item_string".}
-proc set_popdown_strings*(combo: PCombo, strings: PGList){.cdecl, 
-    dynlib: lib, importc: "gtk_combo_set_popdown_strings".}
-proc disable_activate*(combo: PCombo){.cdecl, dynlib: lib, 
-    importc: "gtk_combo_disable_activate".}
-const 
-  bm_TGtkCTree_line_style* = 0x0003'i16
-  bp_TGtkCTree_line_style* = 0'i16
-  bm_TGtkCTree_expander_style* = 0x000C'i16
-  bp_TGtkCTree_expander_style* = 2'i16
-  bm_TGtkCTree_show_stub* = 0x0010'i16
-  bp_TGtkCTree_show_stub* = 4'i16
-  bm_TGtkCTreeRow_is_leaf* = 0x0001'i16
-  bp_TGtkCTreeRow_is_leaf* = 0'i16
-  bm_TGtkCTreeRow_expanded* = 0x0002'i16
-  bp_TGtkCTreeRow_expanded* = 1'i16
-
-proc TYPE_CTREE*(): GType
-proc CTREE*(obj: pointer): PCTree
-proc CTREE_CLASS*(klass: pointer): PCTreeClass
-proc IS_CTREE*(obj: pointer): bool
-proc IS_CTREE_CLASS*(klass: pointer): bool
-proc CTREE_GET_CLASS*(obj: pointer): PCTreeClass
-proc CTREE_ROW*(node: TAddress): PCTreeRow
-proc CTREE_NODE*(node: TAddress): PCTreeNode
-proc CTREE_NODE_NEXT*(nnode: TAddress): PCTreeNode
-proc CTREE_NODE_PREV*(pnode: TAddress): PCTreeNode
-proc CTREE_FUNC*(fun: TAddress): TCTreeFunc
-proc TYPE_CTREE_NODE*(): GType
-proc line_style*(a: PCTree): guint
-proc set_line_style*(a: PCTree, `line_style`: guint)
-proc expander_style*(a: PCTree): guint
-proc set_expander_style*(a: PCTree, `expander_style`: guint)
-proc show_stub*(a: PCTree): guint
-proc set_show_stub*(a: PCTree, `show_stub`: guint)
-proc is_leaf*(a: PCTreeRow): guint
-proc set_is_leaf*(a: PCTreeRow, `is_leaf`: guint)
-proc expanded*(a: PCTreeRow): guint
-proc set_expanded*(a: PCTreeRow, `expanded`: guint)
-proc ctree_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_ctree_get_type".}
-proc ctree_new*(columns: gint, tree_column: gint): PCTree{.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_new".}
-proc insert_node*(ctree: PCTree, parent: PCTreeNode, sibling: PCTreeNode, 
-                        text: openarray[cstring], spacing: guint8, 
-                        pixmap_closed: gdk2.PPixmap, mask_closed: gdk2.PBitmap, 
-                        pixmap_opened: gdk2.PPixmap, mask_opened: gdk2.PBitmap, 
-                        is_leaf: gboolean, expanded: gboolean): PCTreeNode{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_insert_node".}
-proc remove_node*(ctree: PCTree, node: PCTreeNode){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_remove_node".}
-proc insert_gnode*(ctree: PCTree, parent: PCTreeNode, sibling: PCTreeNode, 
-                         gnode: PGNode, fun: TCTreeGNodeFunc, data: gpointer): PCTreeNode{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_insert_gnode".}
-proc export_to_gnode*(ctree: PCTree, parent: PGNode, sibling: PGNode, 
-                            node: PCTreeNode, fun: TCTreeGNodeFunc, 
-                            data: gpointer): PGNode{.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_export_to_gnode".}
-proc post_recursive*(ctree: PCTree, node: PCTreeNode, fun: TCTreeFunc, 
-                           data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_post_recursive".}
-proc post_recursive_to_depth*(ctree: PCTree, node: PCTreeNode, 
-                                    depth: gint, fun: TCTreeFunc, 
-                                    data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_post_recursive_to_depth".}
-proc pre_recursive*(ctree: PCTree, node: PCTreeNode, fun: TCTreeFunc, 
-                          data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_pre_recursive".}
-proc pre_recursive_to_depth*(ctree: PCTree, node: PCTreeNode, 
-                                   depth: gint, fun: TCTreeFunc, 
-                                   data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_pre_recursive_to_depth".}
-proc is_viewable*(ctree: PCTree, node: PCTreeNode): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_is_viewable".}
-proc last*(ctree: PCTree, node: PCTreeNode): PCTreeNode{.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_last".}
-proc find_node_ptr*(ctree: PCTree, ctree_row: PCTreeRow): PCTreeNode{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_find_node_ptr".}
-proc node_nth*(ctree: PCTree, row: guint): PCTreeNode{.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_node_nth".}
-proc find*(ctree: PCTree, node: PCTreeNode, child: PCTreeNode): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_find".}
-proc is_ancestor*(ctree: PCTree, node: PCTreeNode, child: PCTreeNode): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_is_ancestor".}
-proc find_by_row_data*(ctree: PCTree, node: PCTreeNode, data: gpointer): PCTreeNode{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_find_by_row_data".}
-proc find_all_by_row_data*(ctree: PCTree, node: PCTreeNode, 
-                                 data: gpointer): PGList{.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_find_all_by_row_data".}
-proc find_by_row_data_custom*(ctree: PCTree, node: PCTreeNode, 
-                                    data: gpointer, fun: TGCompareFunc): PCTreeNode{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_find_by_row_data_custom".}
-proc find_all_by_row_data_custom*(ctree: PCTree, node: PCTreeNode, 
-                                        data: gpointer, fun: TGCompareFunc): PGList{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_find_all_by_row_data_custom".}
-proc is_hot_spot*(ctree: PCTree, x: gint, y: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_is_hot_spot".}
-proc move*(ctree: PCTree, node: PCTreeNode, new_parent: PCTreeNode, 
-                 new_sibling: PCTreeNode){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_move".}
-proc expand*(ctree: PCTree, node: PCTreeNode){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_expand".}
-proc expand_recursive*(ctree: PCTree, node: PCTreeNode){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_expand_recursive".}
-proc expand_to_depth*(ctree: PCTree, node: PCTreeNode, depth: gint){.
-    cdecl, dynlib: lib, importc: "gtk_ctree_expand_to_depth".}
-proc collapse*(ctree: PCTree, node: PCTreeNode){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_collapse".}
-proc collapse_recursive*(ctree: PCTree, node: PCTreeNode){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_collapse_recursive".}
-proc collapse_to_depth*(ctree: PCTree, node: PCTreeNode, depth: gint){.
-    cdecl, dynlib: lib, importc: "gtk_ctree_collapse_to_depth".}
-proc toggle_expansion*(ctree: PCTree, node: PCTreeNode){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_toggle_expansion".}
-proc toggle_expansion_recursive*(ctree: PCTree, node: PCTreeNode){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_toggle_expansion_recursive".}
-proc select*(ctree: PCTree, node: PCTreeNode){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_select".}
-proc select_recursive*(ctree: PCTree, node: PCTreeNode){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_select_recursive".}
-proc unselect*(ctree: PCTree, node: PCTreeNode){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_unselect".}
-proc unselect_recursive*(ctree: PCTree, node: PCTreeNode){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_unselect_recursive".}
-proc real_select_recursive*(ctree: PCTree, node: PCTreeNode, state: gint){.
-    cdecl, dynlib: lib, importc: "gtk_ctree_real_select_recursive".}
-proc node_set_text*(ctree: PCTree, node: PCTreeNode, column: gint, 
-                          text: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_node_set_text".}
-proc node_set_pixmap*(ctree: PCTree, node: PCTreeNode, column: gint, 
-                            pixmap: gdk2.PPixmap, mask: gdk2.PBitmap){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_node_set_pixmap".}
-proc node_set_pixtext*(ctree: PCTree, node: PCTreeNode, column: gint, 
-                             text: cstring, spacing: guint8, pixmap: gdk2.PPixmap, 
-                             mask: gdk2.PBitmap){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_node_set_pixtext".}
-proc set_node_info*(ctree: PCTree, node: PCTreeNode, text: cstring, 
-                          spacing: guint8, pixmap_closed: gdk2.PPixmap, 
-                          mask_closed: gdk2.PBitmap, pixmap_opened: gdk2.PPixmap, 
-                          mask_opened: gdk2.PBitmap, is_leaf: gboolean, 
-                          expanded: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_set_node_info".}
-proc node_set_shift*(ctree: PCTree, node: PCTreeNode, column: gint, 
-                           vertical: gint, horizontal: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_node_set_shift".}
-proc node_set_selectable*(ctree: PCTree, node: PCTreeNode, 
-                                selectable: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_node_set_selectable".}
-proc node_get_selectable*(ctree: PCTree, node: PCTreeNode): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_node_get_selectable".}
-proc node_get_cell_type*(ctree: PCTree, node: PCTreeNode, column: gint): TCellType{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_node_get_cell_type".}
-proc node_get_text*(ctree: PCTree, node: PCTreeNode, column: gint, 
-                          text: PPgchar): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_node_get_text".}
-proc node_set_row_style*(ctree: PCTree, node: PCTreeNode, style: PStyle){.
-    cdecl, dynlib: lib, importc: "gtk_ctree_node_set_row_style".}
-proc node_get_row_style*(ctree: PCTree, node: PCTreeNode): PStyle{.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_node_get_row_style".}
-proc node_set_cell_style*(ctree: PCTree, node: PCTreeNode, column: gint, 
-                                style: PStyle){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_node_set_cell_style".}
-proc node_get_cell_style*(ctree: PCTree, node: PCTreeNode, column: gint): PStyle{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_node_get_cell_style".}
-proc node_set_foreground*(ctree: PCTree, node: PCTreeNode, 
-                                color: gdk2.PColor){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_node_set_foreground".}
-proc node_set_background*(ctree: PCTree, node: PCTreeNode, 
-                                color: gdk2.PColor){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_node_set_background".}
-proc node_set_row_data*(ctree: PCTree, node: PCTreeNode, data: gpointer){.
-    cdecl, dynlib: lib, importc: "gtk_ctree_node_set_row_data".}
-proc node_set_row_data_full*(ctree: PCTree, node: PCTreeNode, 
-                                   data: gpointer, destroy: TDestroyNotify){.
-    cdecl, dynlib: lib, importc: "gtk_ctree_node_set_row_data_full".}
-proc node_get_row_data*(ctree: PCTree, node: PCTreeNode): gpointer{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_node_get_row_data".}
-proc node_moveto*(ctree: PCTree, node: PCTreeNode, column: gint, 
-                        row_align: gfloat, col_align: gfloat){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_node_moveto".}
-proc node_is_visible*(ctree: PCTree, node: PCTreeNode): TVisibility{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_node_is_visible".}
-proc set_indent*(ctree: PCTree, indent: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_set_indent".}
-proc set_spacing*(ctree: PCTree, spacing: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_set_spacing".}
-proc set_show_stub*(ctree: PCTree, show_stub: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_set_show_stub".}
-proc set_line_style*(ctree: PCTree, line_style: TCTreeLineStyle){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_set_line_style".}
-proc set_expander_style*(ctree: PCTree, 
-                               expander_style: TCTreeExpanderStyle){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_set_expander_style".}
-proc set_drag_compare_func*(ctree: PCTree, cmp_func: TCTreeCompareDragFunc){.
-    cdecl, dynlib: lib, importc: "gtk_ctree_set_drag_compare_func".}
-proc sort_node*(ctree: PCTree, node: PCTreeNode){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_sort_node".}
-proc sort_recursive*(ctree: PCTree, node: PCTreeNode){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_sort_recursive".}
-proc ctree_set_reorderable*(t: pointer, r: bool)
-proc ctree_node_get_type*(): GType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_ctree_node_get_type".}
-proc TYPE_DRAWING_AREA*(): GType
-proc DRAWING_AREA*(obj: pointer): PDrawingArea
-proc DRAWING_AREA_CLASS*(klass: pointer): PDrawingAreaClass
-proc IS_DRAWING_AREA*(obj: pointer): bool
-proc IS_DRAWING_AREA_CLASS*(klass: pointer): bool
-proc DRAWING_AREA_GET_CLASS*(obj: pointer): PDrawingAreaClass
-proc drawing_area_get_type*(): TType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_drawing_area_get_type".}
-proc drawing_area_new*(): PDrawingArea{.cdecl, dynlib: lib, 
-                                        importc: "gtk_drawing_area_new".}
-proc TYPE_CURVE*(): GType
-proc CURVE*(obj: pointer): PCurve
-proc CURVE_CLASS*(klass: pointer): PCurveClass
-proc IS_CURVE*(obj: pointer): bool
-proc IS_CURVE_CLASS*(klass: pointer): bool
-proc CURVE_GET_CLASS*(obj: pointer): PCurveClass
-proc curve_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_curve_get_type".}
-proc curve_new*(): PCurve{.cdecl, dynlib: lib, importc: "gtk_curve_new".}
-proc reset*(curve: PCurve){.cdecl, dynlib: lib, importc: "gtk_curve_reset".}
-proc set_gamma*(curve: PCurve, gamma: gfloat){.cdecl, dynlib: lib, 
-    importc: "gtk_curve_set_gamma".}
-proc set_range*(curve: PCurve, min_x: gfloat, max_x: gfloat, 
-                      min_y: gfloat, max_y: gfloat){.cdecl, dynlib: lib, 
-    importc: "gtk_curve_set_range".}
-proc set_curve_type*(curve: PCurve, thetype: TCurveType){.cdecl, 
-    dynlib: lib, importc: "gtk_curve_set_curve_type".}
-const 
-  DEST_DEFAULT_MOTION* = 1 shl 0
-  DEST_DEFAULT_HIGHLIGHT* = 1 shl 1
-  DEST_DEFAULT_DROP* = 1 shl 2
-  DEST_DEFAULT_ALL* = 0x00000007
-  TARGET_SAME_APP* = 1 shl 0
-  TARGET_SAME_WIDGET* = 1 shl 1
-
-proc drag_get_data*(widget: PWidget, context: gdk2.PDragContext, target: gdk2.TAtom, 
-                    time: guint32){.cdecl, dynlib: lib, 
-                                    importc: "gtk_drag_get_data".}
-proc drag_finish*(context: gdk2.PDragContext, success: gboolean, del: gboolean, 
-                  time: guint32){.cdecl, dynlib: lib, importc: "gtk_drag_finish".}
-proc drag_get_source_widget*(context: gdk2.PDragContext): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_drag_get_source_widget".}
-proc drag_highlight*(widget: PWidget){.cdecl, dynlib: lib, 
-                                       importc: "gtk_drag_highlight".}
-proc drag_unhighlight*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_unhighlight".}
-proc drag_dest_set*(widget: PWidget, flags: TDestDefaults, 
-                    targets: PTargetEntry, n_targets: gint, 
-                    actions: gdk2.TDragAction){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_dest_set".}
-proc drag_dest_set_proxy*(widget: PWidget, proxy_window: gdk2.PWindow, 
-                          protocol: gdk2.TDragProtocol, use_coordinates: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_drag_dest_set_proxy".}
-proc drag_dest_unset*(widget: PWidget){.cdecl, dynlib: lib, 
-                                        importc: "gtk_drag_dest_unset".}
-proc drag_dest_find_target*(widget: PWidget, context: gdk2.PDragContext, 
-                            target_list: PTargetList): gdk2.TAtom{.cdecl, 
-    dynlib: lib, importc: "gtk_drag_dest_find_target".}
-proc drag_dest_get_target_list*(widget: PWidget): PTargetList{.cdecl, 
-    dynlib: lib, importc: "gtk_drag_dest_get_target_list".}
-proc drag_dest_set_target_list*(widget: PWidget, target_list: PTargetList){.
-    cdecl, dynlib: lib, importc: "gtk_drag_dest_set_target_list".}
-proc drag_source_set*(widget: PWidget, start_button_mask: gdk2.TModifierType, 
-                      targets: PTargetEntry, n_targets: gint, 
-                      actions: gdk2.TDragAction){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_source_set".}
-proc drag_source_unset*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_source_unset".}
-proc drag_source_set_icon*(widget: PWidget, colormap: gdk2.PColormap, 
-                           pixmap: gdk2.PPixmap, mask: gdk2.PBitmap){.cdecl, 
-    dynlib: lib, importc: "gtk_drag_source_set_icon".}
-proc drag_source_set_icon_pixbuf*(widget: PWidget, pixbuf: gdk2pixbuf.PPixbuf){.cdecl, 
-    dynlib: lib, importc: "gtk_drag_source_set_icon_pixbuf".}
-proc drag_source_set_icon_stock*(widget: PWidget, stock_id: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_drag_source_set_icon_stock".}
-proc drag_begin*(widget: PWidget, targets: PTargetList, actions: gdk2.TDragAction, 
-                 button: gint, event: gdk2.PEvent): gdk2.PDragContext{.cdecl, 
-    dynlib: lib, importc: "gtk_drag_begin".}
-proc drag_set_icon_widget*(context: gdk2.PDragContext, widget: PWidget, 
-                           hot_x: gint, hot_y: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_set_icon_widget".}
-proc drag_set_icon_pixmap*(context: gdk2.PDragContext, colormap: gdk2.PColormap, 
-                           pixmap: gdk2.PPixmap, mask: gdk2.PBitmap, hot_x: gint, 
-                           hot_y: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_set_icon_pixmap".}
-proc drag_set_icon_pixbuf*(context: gdk2.PDragContext, pixbuf: gdk2pixbuf.PPixbuf, 
-                           hot_x: gint, hot_y: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_set_icon_pixbuf".}
-proc drag_set_icon_stock*(context: gdk2.PDragContext, stock_id: cstring, 
-                          hot_x: gint, hot_y: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_set_icon_stock".}
-proc drag_set_icon_default*(context: gdk2.PDragContext){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_set_icon_default".}
-proc drag_check_threshold*(widget: PWidget, start_x: gint, start_y: gint, 
-                           current_x: gint, current_y: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_drag_check_threshold".}
-proc drag_source_handle_event*(widget: PWidget, event: gdk2.PEvent){.cdecl, 
-    dynlib: lib, importc: "_gtk_drag_source_handle_event".}
-proc drag_dest_handle_event*(toplevel: PWidget, event: gdk2.PEvent){.cdecl, 
-    dynlib: lib, importc: "_gtk_drag_dest_handle_event".}
-proc TYPE_EDITABLE*(): GType
-proc EDITABLE*(obj: pointer): PEditable
-proc EDITABLE_CLASS*(vtable: pointer): PEditableClass
-proc IS_EDITABLE*(obj: pointer): bool
-proc IS_EDITABLE_CLASS*(vtable: pointer): bool
-proc EDITABLE_GET_CLASS*(inst: pointer): PEditableClass
-proc editable_get_type*(): TType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_editable_get_type".}
-proc select_region*(editable: PEditable, start: gint, theEnd: gint){.
-    cdecl, dynlib: lib, importc: "gtk_editable_select_region".}
-proc get_selection_bounds*(editable: PEditable, start: Pgint, 
-                                    theEnd: Pgint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_editable_get_selection_bounds".}
-proc insert_text*(editable: PEditable, new_text: cstring, 
-                           new_text_length: gint, position: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_editable_insert_text".}
-proc delete_text*(editable: PEditable, start_pos: gint, end_pos: gint){.
-    cdecl, dynlib: lib, importc: "gtk_editable_delete_text".}
-proc get_chars*(editable: PEditable, start_pos: gint, end_pos: gint): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_editable_get_chars".}
-proc cut_clipboard*(editable: PEditable){.cdecl, dynlib: lib, 
-    importc: "gtk_editable_cut_clipboard".}
-proc copy_clipboard*(editable: PEditable){.cdecl, dynlib: lib, 
-    importc: "gtk_editable_copy_clipboard".}
-proc paste_clipboard*(editable: PEditable){.cdecl, dynlib: lib, 
-    importc: "gtk_editable_paste_clipboard".}
-proc delete_selection*(editable: PEditable){.cdecl, dynlib: lib, 
-    importc: "gtk_editable_delete_selection".}
-proc set_position*(editable: PEditable, position: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_editable_set_position".}
-proc get_position*(editable: PEditable): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_editable_get_position".}
-proc set_editable*(editable: PEditable, is_editable: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_editable_set_editable".}
-proc get_editable*(editable: PEditable): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_editable_get_editable".}
-proc TYPE_IM_CONTEXT*(): GType
-proc IM_CONTEXT*(obj: pointer): PIMContext
-proc IM_CONTEXT_CLASS*(klass: pointer): PIMContextClass
-proc IS_IM_CONTEXT*(obj: pointer): bool
-proc IS_IM_CONTEXT_CLASS*(klass: pointer): bool
-proc IM_CONTEXT_GET_CLASS*(obj: pointer): PIMContextClass
-proc im_context_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_im_context_get_type".}
-proc set_client_window*(context: PIMContext, window: gdk2.PWindow){.
-    cdecl, dynlib: lib, importc: "gtk_im_context_set_client_window".}
-proc filter_keypress*(context: PIMContext, event: gdk2.PEventKey): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_im_context_filter_keypress".}
-proc focus_in*(context: PIMContext){.cdecl, dynlib: lib, 
-    importc: "gtk_im_context_focus_in".}
-proc focus_out*(context: PIMContext){.cdecl, dynlib: lib, 
-    importc: "gtk_im_context_focus_out".}
-proc reset*(context: PIMContext){.cdecl, dynlib: lib, 
-    importc: "gtk_im_context_reset".}
-proc set_cursor_location*(context: PIMContext, area: gdk2.PRectangle){.
-    cdecl, dynlib: lib, importc: "gtk_im_context_set_cursor_location".}
-proc set_use_preedit*(context: PIMContext, use_preedit: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_im_context_set_use_preedit".}
-proc set_surrounding*(context: PIMContext, text: cstring, len: gint, 
-                                 cursor_index: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_im_context_set_surrounding".}
-proc get_surrounding*(context: PIMContext, text: PPgchar, 
-                                 cursor_index: Pgint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_im_context_get_surrounding".}
-proc delete_surrounding*(context: PIMContext, offset: gint, 
-                                    n_chars: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_im_context_delete_surrounding".}
-const 
-  bm_TGtkMenuShell_active* = 0x0001'i16
-  bp_TGtkMenuShell_active* = 0'i16
-  bm_TGtkMenuShell_have_grab* = 0x0002'i16
-  bp_TGtkMenuShell_have_grab* = 1'i16
-  bm_TGtkMenuShell_have_xgrab* = 0x0004'i16
-  bp_TGtkMenuShell_have_xgrab* = 2'i16
-  bm_TGtkMenuShell_ignore_leave* = 0x0008'i16
-  bp_TGtkMenuShell_ignore_leave* = 3'i16
-  bm_TGtkMenuShell_menu_flag* = 0x0010'i16
-  bp_TGtkMenuShell_menu_flag* = 4'i16
-  bm_TGtkMenuShell_ignore_enter* = 0x0020'i16
-  bp_TGtkMenuShell_ignore_enter* = 5'i16
-  bm_TGtkMenuShellClass_submenu_placement* = 0x0001'i16
-  bp_TGtkMenuShellClass_submenu_placement* = 0'i16
-
-proc TYPE_MENU_SHELL*(): GType
-proc MENU_SHELL*(obj: pointer): PMenuShell
-proc MENU_SHELL_CLASS*(klass: pointer): PMenuShellClass
-proc IS_MENU_SHELL*(obj: pointer): bool
-proc IS_MENU_SHELL_CLASS*(klass: pointer): bool
-proc MENU_SHELL_GET_CLASS*(obj: pointer): PMenuShellClass
-proc active*(a: PMenuShell): guint
-proc set_active*(a: PMenuShell, `active`: guint)
-proc have_grab*(a: PMenuShell): guint
-proc set_have_grab*(a: PMenuShell, `have_grab`: guint)
-proc have_xgrab*(a: PMenuShell): guint
-proc set_have_xgrab*(a: PMenuShell, `have_xgrab`: guint)
-proc ignore_leave*(a: PMenuShell): guint
-proc set_ignore_leave*(a: PMenuShell, `ignore_leave`: guint)
-proc menu_flag*(a: PMenuShell): guint
-proc set_menu_flag*(a: PMenuShell, `menu_flag`: guint)
-proc ignore_enter*(a: PMenuShell): guint
-proc set_ignore_enter*(a: PMenuShell, `ignore_enter`: guint)
-proc submenu_placement*(a: PMenuShellClass): guint
-proc set_submenu_placement*(a: PMenuShellClass, `submenu_placement`: guint)
-proc menu_shell_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_menu_shell_get_type".}
-proc append*(menu_shell: PMenuShell, child: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_shell_append".}
-proc prepend*(menu_shell: PMenuShell, child: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_shell_prepend".}
-proc insert*(menu_shell: PMenuShell, child: PWidget, position: gint){.
-    cdecl, dynlib: lib, importc: "gtk_menu_shell_insert".}
-proc deactivate*(menu_shell: PMenuShell){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_shell_deactivate".}
-proc select_item*(menu_shell: PMenuShell, menu_item: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_shell_select_item".}
-proc deselect*(menu_shell: PMenuShell){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_shell_deselect".}
-proc activate_item*(menu_shell: PMenuShell, menu_item: PWidget, 
-                               force_deactivate: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_shell_activate_item".}
-proc select_first*(menu_shell: PMenuShell){.cdecl, dynlib: lib, 
-    importc: "_gtk_menu_shell_select_first".}
-proc activate*(menu_shell: PMenuShell){.cdecl, dynlib: lib, 
-    importc: "_gtk_menu_shell_activate".}
-const 
-  bm_TGtkMenu_needs_destruction_ref_count* = 0x0001'i16
-  bp_TGtkMenu_needs_destruction_ref_count* = 0'i16
-  bm_TGtkMenu_torn_off* = 0x0002'i16
-  bp_TGtkMenu_torn_off* = 1'i16
-  bm_TGtkMenu_tearoff_active* = 0x0004'i16
-  bp_TGtkMenu_tearoff_active* = 2'i16
-  bm_TGtkMenu_scroll_fast* = 0x0008'i16
-  bp_TGtkMenu_scroll_fast* = 3'i16
-  bm_TGtkMenu_upper_arrow_visible* = 0x0010'i16
-  bp_TGtkMenu_upper_arrow_visible* = 4'i16
-  bm_TGtkMenu_lower_arrow_visible* = 0x0020'i16
-  bp_TGtkMenu_lower_arrow_visible* = 5'i16
-  bm_TGtkMenu_upper_arrow_prelight* = 0x0040'i16
-  bp_TGtkMenu_upper_arrow_prelight* = 6'i16
-  bm_TGtkMenu_lower_arrow_prelight* = 0x0080'i16
-  bp_TGtkMenu_lower_arrow_prelight* = 7'i16
-
-proc TYPE_MENU*(): GType
-proc MENU*(obj: pointer): PMenu
-proc MENU_CLASS*(klass: pointer): PMenuClass
-proc IS_MENU*(obj: pointer): bool
-proc IS_MENU_CLASS*(klass: pointer): bool
-proc MENU_GET_CLASS*(obj: pointer): PMenuClass
-proc needs_destruction_ref_count*(a: PMenu): guint
-proc set_needs_destruction_ref_count*(a: PMenu, 
-                                      `needs_destruction_ref_count`: guint)
-proc torn_off*(a: PMenu): guint
-proc set_torn_off*(a: PMenu, `torn_off`: guint)
-proc tearoff_active*(a: PMenu): guint
-proc set_tearoff_active*(a: PMenu, `tearoff_active`: guint)
-proc scroll_fast*(a: PMenu): guint
-proc set_scroll_fast*(a: PMenu, `scroll_fast`: guint)
-proc upper_arrow_visible*(a: PMenu): guint
-proc set_upper_arrow_visible*(a: PMenu, `upper_arrow_visible`: guint)
-proc lower_arrow_visible*(a: PMenu): guint
-proc set_lower_arrow_visible*(a: PMenu, `lower_arrow_visible`: guint)
-proc upper_arrow_prelight*(a: PMenu): guint
-proc set_upper_arrow_prelight*(a: PMenu, `upper_arrow_prelight`: guint)
-proc lower_arrow_prelight*(a: PMenu): guint
-proc set_lower_arrow_prelight*(a: PMenu, `lower_arrow_prelight`: guint)
-proc menu_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_menu_get_type".}
-proc menu_new*(): PMenu{.cdecl, dynlib: lib, importc: "gtk_menu_new".}
-proc popup*(menu: PMenu, parent_menu_shell: PWidget, 
-                 parent_menu_item: PWidget, fun: TMenuPositionFunc, 
-                 data: gpointer, button: guint, activate_time: guint32){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_popup".}
-proc reposition*(menu: PMenu){.cdecl, dynlib: lib, 
-                                    importc: "gtk_menu_reposition".}
-proc popdown*(menu: PMenu){.cdecl, dynlib: lib, importc: "gtk_menu_popdown".}
-proc get_active*(menu: PMenu): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_menu_get_active".}
-proc set_active*(menu: PMenu, index: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_set_active".}
-proc set_accel_group*(menu: PMenu, accel_group: PAccelGroup){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_set_accel_group".}
-proc get_accel_group*(menu: PMenu): PAccelGroup{.cdecl, dynlib: lib, 
-    importc: "gtk_menu_get_accel_group".}
-proc set_accel_path*(menu: PMenu, accel_path: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_set_accel_path".}
-proc attach_to_widget*(menu: PMenu, attach_widget: PWidget, 
-                            detacher: TMenuDetachFunc){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_attach_to_widget".}
-proc detach*(menu: PMenu){.cdecl, dynlib: lib, importc: "gtk_menu_detach".}
-proc get_attach_widget*(menu: PMenu): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_menu_get_attach_widget".}
-proc set_tearoff_state*(menu: PMenu, torn_off: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_set_tearoff_state".}
-proc get_tearoff_state*(menu: PMenu): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_menu_get_tearoff_state".}
-proc set_title*(menu: PMenu, title: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_set_title".}
-proc get_title*(menu: PMenu): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_menu_get_title".}
-proc reorder_child*(menu: PMenu, child: PWidget, position: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_reorder_child".}
-proc set_screen*(menu: PMenu, screen: gdk2.PScreen){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_set_screen".}
-const 
-  bm_TGtkEntry_editable* = 0x0001'i16
-  bp_TGtkEntry_editable* = 0'i16
-  bm_TGtkEntry_visible* = 0x0002'i16
-  bp_TGtkEntry_visible* = 1'i16
-  bm_TGtkEntry_overwrite_mode* = 0x0004'i16
-  bp_TGtkEntry_overwrite_mode* = 2'i16
-  bm_TGtkEntry_in_drag* = 0x0008'i16
-  bp_TGtkEntry_in_drag* = 3'i16
-  bm_TGtkEntry_cache_includes_preedit* = 0x0001'i16
-  bp_TGtkEntry_cache_includes_preedit* = 0'i16
-  bm_TGtkEntry_need_im_reset* = 0x0002'i16
-  bp_TGtkEntry_need_im_reset* = 1'i16
-  bm_TGtkEntry_has_frame* = 0x0004'i16
-  bp_TGtkEntry_has_frame* = 2'i16
-  bm_TGtkEntry_activates_default* = 0x0008'i16
-  bp_TGtkEntry_activates_default* = 3'i16
-  bm_TGtkEntry_cursor_visible* = 0x0010'i16
-  bp_TGtkEntry_cursor_visible* = 4'i16
-  bm_TGtkEntry_in_click* = 0x0020'i16
-  bp_TGtkEntry_in_click* = 5'i16
-  bm_TGtkEntry_is_cell_renderer* = 0x0040'i16
-  bp_TGtkEntry_is_cell_renderer* = 6'i16
-  bm_TGtkEntry_editing_canceled* = 0x0080'i16
-  bp_TGtkEntry_editing_canceled* = 7'i16
-  bm_TGtkEntry_mouse_cursor_obscured* = 0x0100'i16
-  bp_TGtkEntry_mouse_cursor_obscured* = 8'i16
-
-proc TYPE_ENTRY*(): GType
-proc ENTRY*(obj: pointer): PEntry
-proc ENTRY_CLASS*(klass: pointer): PEntryClass
-proc IS_ENTRY*(obj: pointer): bool
-proc IS_ENTRY_CLASS*(klass: pointer): bool
-proc ENTRY_GET_CLASS*(obj: pointer): PEntryClass
-proc editable*(a: PEntry): guint
-proc set_editable*(a: PEntry, `editable`: guint)
-proc visible*(a: PEntry): guint
-proc set_visible*(a: PEntry, `visible`: guint)
-proc overwrite_mode*(a: PEntry): guint
-proc set_overwrite_mode*(a: PEntry, `overwrite_mode`: guint)
-proc in_drag*(a: PEntry): guint
-proc set_in_drag*(a: PEntry, `in_drag`: guint)
-proc cache_includes_preedit*(a: PEntry): guint
-proc set_cache_includes_preedit*(a: PEntry, `cache_includes_preedit`: guint)
-proc need_im_reset*(a: PEntry): guint
-proc set_need_im_reset*(a: PEntry, `need_im_reset`: guint)
-proc has_frame*(a: PEntry): guint
-proc set_has_frame*(a: PEntry, `has_frame`: guint)
-proc activates_default*(a: PEntry): guint
-proc set_activates_default*(a: PEntry, `activates_default`: guint)
-proc cursor_visible*(a: PEntry): guint
-proc set_cursor_visible*(a: PEntry, `cursor_visible`: guint)
-proc in_click*(a: PEntry): guint
-proc set_in_click*(a: PEntry, `in_click`: guint)
-proc is_cell_renderer*(a: PEntry): guint
-proc set_is_cell_renderer*(a: PEntry, `is_cell_renderer`: guint)
-proc editing_canceled*(a: PEntry): guint
-proc set_editing_canceled*(a: PEntry, `editing_canceled`: guint)
-proc mouse_cursor_obscured*(a: PEntry): guint
-proc set_mouse_cursor_obscured*(a: PEntry, `mouse_cursor_obscured`: guint)
-proc entry_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_entry_get_type".}
-proc entry_new*(): PEntry{.cdecl, dynlib: lib, importc: "gtk_entry_new".}
-proc set_visibility*(entry: PEntry, visible: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_entry_set_visibility".}
-proc get_visibility*(entry: PEntry): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_entry_get_visibility".}
-proc set_invisible_char*(entry: PEntry, ch: gunichar){.cdecl, dynlib: lib, 
-    importc: "gtk_entry_set_invisible_char".}
-proc get_invisible_char*(entry: PEntry): gunichar{.cdecl, dynlib: lib, 
-    importc: "gtk_entry_get_invisible_char".}
-proc set_has_frame*(entry: PEntry, setting: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_entry_set_has_frame".}
-proc get_has_frame*(entry: PEntry): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_entry_get_has_frame".}
-proc set_max_length*(entry: PEntry, max: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_entry_set_max_length".}
-proc get_max_length*(entry: PEntry): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_entry_get_max_length".}
-proc set_activates_default*(entry: PEntry, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_entry_set_activates_default".}
-proc get_activates_default*(entry: PEntry): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_entry_get_activates_default".}
-proc set_width_chars*(entry: PEntry, n_chars: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_entry_set_width_chars".}
-proc get_width_chars*(entry: PEntry): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_entry_get_width_chars".}
-proc set_text*(entry: PEntry, text: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_entry_set_text".}
-proc get_text*(entry: PEntry): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_entry_get_text".}
-proc get_layout*(entry: PEntry): pango.PLayout{.cdecl, dynlib: lib, 
-    importc: "gtk_entry_get_layout".}
-proc get_layout_offsets*(entry: PEntry, x: Pgint, y: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_entry_get_layout_offsets".}
-const 
-  ANCHOR_CENTER* = 0
-  ANCHOR_NORTH* = 1
-  ANCHOR_NORTH_WEST* = 2
-  ANCHOR_NORTH_EAST* = 3
-  ANCHOR_SOUTH* = 4
-  ANCHOR_SOUTH_WEST* = 5
-  ANCHOR_SOUTH_EAST* = 6
-  ANCHOR_WEST* = 7
-  ANCHOR_EAST* = 8
-  ANCHOR_N* = ANCHOR_NORTH
-  ANCHOR_NW* = ANCHOR_NORTH_WEST
-  ANCHOR_NE* = ANCHOR_NORTH_EAST
-  ANCHOR_S* = ANCHOR_SOUTH
-  ANCHOR_SW* = ANCHOR_SOUTH_WEST
-  ANCHOR_SE* = ANCHOR_SOUTH_EAST
-  ANCHOR_W* = ANCHOR_WEST
-  ANCHOR_E* = ANCHOR_EAST
-  ARROW_UP* = 0
-  ARROW_DOWN* = 1
-  ARROW_LEFT* = 2
-  ARROW_RIGHT* = 3
-  constEXPAND* = 1 shl 0
-  constSHRINK* = 1 shl 1
-  constFILL* = 1 shl 2
-  BUTTONBOX_DEFAULT_STYLE* = 0
-  BUTTONBOX_SPREAD* = 1
-  BUTTONBOX_EDGE* = 2
-  BUTTONBOX_START* = 3
-  BUTTONBOX_END* = 4
-  CURVE_TYPE_LINEAR* = 0
-  CURVE_TYPE_SPLINE* = 1
-  CURVE_TYPE_FREE* = 2
-  DELETE_CHARS* = 0
-  DELETE_WORD_ENDS* = 1
-  DELETE_WORDS* = 2
-  DELETE_DISPLAY_LINES* = 3
-  DELETE_DISPLAY_LINE_ENDS* = 4
-  DELETE_PARAGRAPH_ENDS* = 5
-  DELETE_PARAGRAPHS* = 6
-  DELETE_WHITESPACE* = 7
-  DIR_TAB_FORWARD* = 0
-  DIR_TAB_BACKWARD* = 1
-  DIR_UP* = 2
-  DIR_DOWN* = 3
-  DIR_LEFT* = 4
-  DIR_RIGHT* = 5
-  EXPANDER_COLLAPSED* = 0
-  EXPANDER_SEMI_COLLAPSED* = 1
-  EXPANDER_SEMI_EXPANDED* = 2
-  EXPANDER_EXPANDED* = 3
-  ICON_SIZE_INVALID* = 0
-  ICON_SIZE_MENU* = 1
-  ICON_SIZE_SMALL_TOOLBAR* = 2
-  ICON_SIZE_LARGE_TOOLBAR* = 3
-  ICON_SIZE_BUTTON* = 4
-  ICON_SIZE_DND* = 5
-  ICON_SIZE_DIALOG* = 6
-  TEXT_DIR_NONE* = 0
-  TEXT_DIR_LTR* = 1
-  TEXT_DIR_RTL* = 2
-  JUSTIFY_LEFT* = 0
-  JUSTIFY_RIGHT* = 1
-  JUSTIFY_CENTER* = 2
-  JUSTIFY_FILL* = 3
-  MENU_DIR_PARENT* = 0
-  MENU_DIR_CHILD* = 1
-  MENU_DIR_NEXT* = 2
-  MENU_DIR_PREV* = 3
-  PIXELS* = 0
-  INCHES* = 1
-  CENTIMETERS* = 2
-  MOVEMENT_LOGICAL_POSITIONS* = 0
-  MOVEMENT_VISUAL_POSITIONS* = 1
-  MOVEMENT_WORDS* = 2
-  MOVEMENT_DISPLAY_LINES* = 3
-  MOVEMENT_DISPLAY_LINE_ENDS* = 4
-  MOVEMENT_PARAGRAPHS* = 5
-  MOVEMENT_PARAGRAPH_ENDS* = 6
-  MOVEMENT_PAGES* = 7
-  MOVEMENT_BUFFER_ENDS* = 8
-  ORIENTATION_HORIZONTAL* = 0
-  ORIENTATION_VERTICAL* = 1
-  CORNER_TOP_LEFT* = 0
-  CORNER_BOTTOM_LEFT* = 1
-  CORNER_TOP_RIGHT* = 2
-  CORNER_BOTTOM_RIGHT* = 3
-  constPACK_START* = 0
-  constPACK_END* = 1
-  PATH_PRIO_LOWEST* = 0
-  PATH_PRIO_GTK* = 4
-  PATH_PRIO_APPLICATION* = 8
-  PATH_PRIO_THEME* = 10
-  PATH_PRIO_RC* = 12
-  PATH_PRIO_HIGHEST* = 15
-  PATH_WIDGET* = 0
-  PATH_WIDGET_CLASS* = 1
-  PATH_CLASS* = 2
-  POLICY_ALWAYS* = 0
-  POLICY_AUTOMATIC* = 1
-  POLICY_NEVER* = 2
-  POS_LEFT* = 0
-  POS_RIGHT* = 1
-  POS_TOP* = 2
-  POS_BOTTOM* = 3
-  PREVIEW_COLOR* = 0
-  PREVIEW_GRAYSCALE* = 1
-  RELIEF_NORMAL* = 0
-  RELIEF_HALF* = 1
-  RELIEF_NONE* = 2
-  RESIZE_PARENT* = 0
-  RESIZE_QUEUE* = 1
-  RESIZE_IMMEDIATE* = 2
-  SCROLL_NONE* = 0
-  SCROLL_JUMP* = 1
-  SCROLL_STEP_BACKWARD* = 2
-  SCROLL_STEP_FORWARD* = 3
-  SCROLL_PAGE_BACKWARD* = 4
-  SCROLL_PAGE_FORWARD* = 5
-  SCROLL_STEP_UP* = 6
-  SCROLL_STEP_DOWN* = 7
-  SCROLL_PAGE_UP* = 8
-  SCROLL_PAGE_DOWN* = 9
-  SCROLL_STEP_LEFT* = 10
-  SCROLL_STEP_RIGHT* = 11
-  SCROLL_PAGE_LEFT* = 12
-  SCROLL_PAGE_RIGHT* = 13
-  SCROLL_START* = 14
-  SCROLL_END* = 15
-  SELECTION_NONE* = 0
-  SELECTION_SINGLE* = 1
-  SELECTION_BROWSE* = 2
-  SELECTION_MULTIPLE* = 3
-  SELECTION_EXTENDED* = SELECTION_MULTIPLE
-  SHADOW_NONE* = 0
-  SHADOW_IN* = 1
-  SHADOW_OUT* = 2
-  SHADOW_ETCHED_IN* = 3
-  SHADOW_ETCHED_OUT* = 4
-  STATE_NORMAL* = 0
-  STATE_ACTIVE* = 1
-  STATE_PRELIGHT* = 2
-  STATE_SELECTED* = 3
-  STATE_INSENSITIVE* = 4
-  DIRECTION_LEFT* = 0
-  DIRECTION_RIGHT* = 1
-  TOP_BOTTOM* = 0
-  LEFT_RIGHT* = 1
-  TOOLBAR_ICONS* = 0
-  TOOLBAR_TEXT* = 1
-  TOOLBAR_BOTH* = 2
-  TOOLBAR_BOTH_HORIZ* = 3
-  UPDATE_CONTINUOUS* = 0
-  UPDATE_DISCONTINUOUS* = 1
-  UPDATE_DELAYED* = 2
-  VISIBILITY_NONE* = 0
-  VISIBILITY_PARTIAL* = 1
-  VISIBILITY_FULL* = 2
-  WIN_POS_NONE* = 0
-  WIN_POS_CENTER* = 1
-  WIN_POS_MOUSE* = 2
-  WIN_POS_CENTER_ALWAYS* = 3
-  WIN_POS_CENTER_ON_PARENT* = 4
-  WINDOW_TOPLEVEL* = 0
-  WINDOW_POPUP* = 1
-  WRAP_NONE* = 0
-  WRAP_CHAR* = 1
-  WRAP_WORD* = 2
-  SORT_ASCENDING* = 0
-  SORT_DESCENDING* = 1
-
-proc TYPE_EVENT_BOX*(): GType
-proc EVENT_BOX*(obj: pointer): PEventBox
-proc EVENT_BOX_CLASS*(klass: pointer): PEventBoxClass
-proc IS_EVENT_BOX*(obj: pointer): bool
-proc IS_EVENT_BOX_CLASS*(klass: pointer): bool
-proc EVENT_BOX_GET_CLASS*(obj: pointer): PEventBoxClass
-proc event_box_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_event_box_get_type".}
-proc event_box_new*(): PEventBox{.cdecl, dynlib: lib, 
-                                  importc: "gtk_event_box_new".}
-const 
-  FNM_PATHNAME* = 1 shl 0
-  FNM_NOESCAPE* = 1 shl 1
-  FNM_PERIOD* = 1 shl 2
-
-const 
-  FNM_FILE_NAME* = FNM_PATHNAME
-  FNM_LEADING_DIR* = 1 shl 3
-  FNM_CASEFOLD* = 1 shl 4
-
-const 
-  FNM_NOMATCH* = 1
-
-proc fnmatch*(`pattern`: char, `string`: char, `flags`: gint): gint{.cdecl, 
-    dynlib: lib, importc: "fnmatch".}
-proc TYPE_FILE_SELECTION*(): GType
-proc FILE_SELECTION*(obj: pointer): PFileSelection
-proc FILE_SELECTION_CLASS*(klass: pointer): PFileSelectionClass
-proc IS_FILE_SELECTION*(obj: pointer): bool
-proc IS_FILE_SELECTION_CLASS*(klass: pointer): bool
-proc FILE_SELECTION_GET_CLASS*(obj: pointer): PFileSelectionClass
-proc file_selection_get_type*(): TType{.cdecl, dynlib: lib, 
-                                        importc: "gtk_file_selection_get_type".}
-proc file_selection_new*(title: cstring): PFileSelection{.cdecl, dynlib: lib, 
-    importc: "gtk_file_selection_new".}
-proc set_filename*(filesel: PFileSelection, filename: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_file_selection_set_filename".}
-proc get_filename*(filesel: PFileSelection): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_file_selection_get_filename".}
-proc complete*(filesel: PFileSelection, pattern: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_file_selection_complete".}
-proc show_fileop_buttons*(filesel: PFileSelection){.cdecl, 
-    dynlib: lib, importc: "gtk_file_selection_show_fileop_buttons".}
-proc hide_fileop_buttons*(filesel: PFileSelection){.cdecl, 
-    dynlib: lib, importc: "gtk_file_selection_hide_fileop_buttons".}
-proc get_selections*(filesel: PFileSelection): PPgchar{.cdecl, 
-    dynlib: lib, importc: "gtk_file_selection_get_selections".}
-proc set_select_multiple*(filesel: PFileSelection, 
-    select_multiple: gboolean){.cdecl, dynlib: lib, importc: "gtk_file_selection_set_select_multiple".}
-proc get_select_multiple*(filesel: PFileSelection): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_selection_get_select_multiple".}
-proc TYPE_FIXED*(): GType
-proc FIXED*(obj: pointer): PFixed
-proc FIXED_CLASS*(klass: pointer): PFixedClass
-proc IS_FIXED*(obj: pointer): bool
-proc IS_FIXED_CLASS*(klass: pointer): bool
-proc FIXED_GET_CLASS*(obj: pointer): PFixedClass
-proc fixed_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_fixed_get_type".}
-proc fixed_new*(): PFixed{.cdecl, dynlib: lib, importc: "gtk_fixed_new".}
-proc put*(fixed: PFixed, widget: PWidget, x: gint, y: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_fixed_put".}
-proc move*(fixed: PFixed, widget: PWidget, x: gint, y: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_fixed_move".}
-proc set_has_window*(fixed: PFixed, has_window: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_fixed_set_has_window".}
-proc get_has_window*(fixed: PFixed): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_fixed_get_has_window".}
-proc TYPE_FONT_SELECTION*(): GType
-proc FONT_SELECTION*(obj: pointer): PFontSelection
-proc FONT_SELECTION_CLASS*(klass: pointer): PFontSelectionClass
-proc IS_FONT_SELECTION*(obj: pointer): bool
-proc IS_FONT_SELECTION_CLASS*(klass: pointer): bool
-proc FONT_SELECTION_GET_CLASS*(obj: pointer): PFontSelectionClass
-proc TYPE_FONT_SELECTION_DIALOG*(): GType
-proc FONT_SELECTION_DIALOG*(obj: pointer): PFontSelectionDialog
-proc FONT_SELECTION_DIALOG_CLASS*(klass: pointer): PFontSelectionDialogClass
-proc IS_FONT_SELECTION_DIALOG*(obj: pointer): bool
-proc IS_FONT_SELECTION_DIALOG_CLASS*(klass: pointer): bool
-proc FONT_SELECTION_DIALOG_GET_CLASS*(obj: pointer): PFontSelectionDialogClass
-proc font_selection_get_type*(): TType{.cdecl, dynlib: lib, 
-                                        importc: "gtk_font_selection_get_type".}
-proc font_selection_new*(): PFontSelection{.cdecl, dynlib: lib, 
-    importc: "gtk_font_selection_new".}
-proc get_font_name*(fontsel: PFontSelection): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_font_selection_get_font_name".}
-proc set_font_name*(fontsel: PFontSelection, fontname: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_font_selection_set_font_name".}
-proc get_preview_text*(fontsel: PFontSelection): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_font_selection_get_preview_text".}
-proc set_preview_text*(fontsel: PFontSelection, text: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_font_selection_set_preview_text".}
-proc font_selection_dialog_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_font_selection_dialog_get_type".}
-proc font_selection_dialog_new*(title: cstring): PFontSelectionDialog{.cdecl, 
-    dynlib: lib, importc: "gtk_font_selection_dialog_new".}
-proc dialog_get_font_name*(fsd: PFontSelectionDialog): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_font_selection_dialog_get_font_name".}
-proc dialog_set_font_name*(fsd: PFontSelectionDialog, 
-    fontname: cstring): gboolean{.cdecl, dynlib: lib, importc: "gtk_font_selection_dialog_set_font_name".}
-proc dialog_get_preview_text*(fsd: PFontSelectionDialog): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_font_selection_dialog_get_preview_text".}
-proc dialog_set_preview_text*(fsd: PFontSelectionDialog, 
-    text: cstring){.cdecl, dynlib: lib, 
-                    importc: "gtk_font_selection_dialog_set_preview_text".}
-proc TYPE_GAMMA_CURVE*(): GType
-proc GAMMA_CURVE*(obj: pointer): PGammaCurve
-proc GAMMA_CURVE_CLASS*(klass: pointer): PGammaCurveClass
-proc IS_GAMMA_CURVE*(obj: pointer): bool
-proc IS_GAMMA_CURVE_CLASS*(klass: pointer): bool
-proc GAMMA_CURVE_GET_CLASS*(obj: pointer): PGammaCurveClass
-proc gamma_curve_get_type*(): TType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_gamma_curve_get_type".}
-proc gamma_curve_new*(): PGammaCurve{.cdecl, dynlib: lib, 
-                                      importc: "gtk_gamma_curve_new".}
-proc gc_get*(depth: gint, colormap: gdk2.PColormap, values: gdk2.PGCValues, 
-             values_mask: gdk2.TGCValuesMask): gdk2.PGC{.cdecl, dynlib: lib, 
-    importc: "gtk_gc_get".}
-proc gc_release*(gc: gdk2.PGC){.cdecl, dynlib: lib, importc: "gtk_gc_release".}
-const 
-  bm_TGtkHandleBox_handle_position* = 0x0003'i16
-  bp_TGtkHandleBox_handle_position* = 0'i16
-  bm_TGtkHandleBox_float_window_mapped* = 0x0004'i16
-  bp_TGtkHandleBox_float_window_mapped* = 2'i16
-  bm_TGtkHandleBox_child_detached* = 0x0008'i16
-  bp_TGtkHandleBox_child_detached* = 3'i16
-  bm_TGtkHandleBox_in_drag* = 0x0010'i16
-  bp_TGtkHandleBox_in_drag* = 4'i16
-  bm_TGtkHandleBox_shrink_on_detach* = 0x0020'i16
-  bp_TGtkHandleBox_shrink_on_detach* = 5'i16
-  bm_TGtkHandleBox_snap_edge* = 0x01C0'i16
-  bp_TGtkHandleBox_snap_edge* = 6'i16
-
-proc TYPE_HANDLE_BOX*(): GType
-proc HANDLE_BOX*(obj: pointer): PHandleBox
-proc HANDLE_BOX_CLASS*(klass: pointer): PHandleBoxClass
-proc IS_HANDLE_BOX*(obj: pointer): bool
-proc IS_HANDLE_BOX_CLASS*(klass: pointer): bool
-proc HANDLE_BOX_GET_CLASS*(obj: pointer): PHandleBoxClass
-proc handle_position*(a: PHandleBox): guint
-proc set_handle_position*(a: PHandleBox, `handle_position`: guint)
-proc float_window_mapped*(a: PHandleBox): guint
-proc set_float_window_mapped*(a: PHandleBox, `float_window_mapped`: guint)
-proc child_detached*(a: PHandleBox): guint
-proc set_child_detached*(a: PHandleBox, `child_detached`: guint)
-proc in_drag*(a: PHandleBox): guint
-proc set_in_drag*(a: PHandleBox, `in_drag`: guint)
-proc shrink_on_detach*(a: PHandleBox): guint
-proc set_shrink_on_detach*(a: PHandleBox, `shrink_on_detach`: guint)
-proc snap_edge*(a: PHandleBox): gint
-proc set_snap_edge*(a: PHandleBox, `snap_edge`: gint)
-proc handle_box_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_handle_box_get_type".}
-proc handle_box_new*(): PHandleBox{.cdecl, dynlib: lib, 
-                                    importc: "gtk_handle_box_new".}
-proc set_shadow_type*(handle_box: PHandleBox, thetype: TShadowType){.
-    cdecl, dynlib: lib, importc: "gtk_handle_box_set_shadow_type".}
-proc get_shadow_type*(handle_box: PHandleBox): TShadowType{.cdecl, 
-    dynlib: lib, importc: "gtk_handle_box_get_shadow_type".}
-proc set_handle_position*(handle_box: PHandleBox, 
-                                     position: TPositionType){.cdecl, 
-    dynlib: lib, importc: "gtk_handle_box_set_handle_position".}
-proc get_handle_position*(handle_box: PHandleBox): TPositionType{.
-    cdecl, dynlib: lib, importc: "gtk_handle_box_get_handle_position".}
-proc set_snap_edge*(handle_box: PHandleBox, edge: TPositionType){.
-    cdecl, dynlib: lib, importc: "gtk_handle_box_set_snap_edge".}
-proc get_snap_edge*(handle_box: PHandleBox): TPositionType{.cdecl, 
-    dynlib: lib, importc: "gtk_handle_box_get_snap_edge".}
-const 
-  bm_TGtkPaned_position_set* = 0x0001'i16
-  bp_TGtkPaned_position_set* = 0'i16
-  bm_TGtkPaned_in_drag* = 0x0002'i16
-  bp_TGtkPaned_in_drag* = 1'i16
-  bm_TGtkPaned_child1_shrink* = 0x0004'i16
-  bp_TGtkPaned_child1_shrink* = 2'i16
-  bm_TGtkPaned_child1_resize* = 0x0008'i16
-  bp_TGtkPaned_child1_resize* = 3'i16
-  bm_TGtkPaned_child2_shrink* = 0x0010'i16
-  bp_TGtkPaned_child2_shrink* = 4'i16
-  bm_TGtkPaned_child2_resize* = 0x0020'i16
-  bp_TGtkPaned_child2_resize* = 5'i16
-  bm_TGtkPaned_orientation* = 0x0040'i16
-  bp_TGtkPaned_orientation* = 6'i16
-  bm_TGtkPaned_in_recursion* = 0x0080'i16
-  bp_TGtkPaned_in_recursion* = 7'i16
-  bm_TGtkPaned_handle_prelit* = 0x0100'i16
-  bp_TGtkPaned_handle_prelit* = 8'i16
-
-proc TYPE_PANED*(): GType
-proc PANED*(obj: pointer): PPaned
-proc PANED_CLASS*(klass: pointer): PPanedClass
-proc IS_PANED*(obj: pointer): bool
-proc IS_PANED_CLASS*(klass: pointer): bool
-proc PANED_GET_CLASS*(obj: pointer): PPanedClass
-proc position_set*(a: PPaned): guint
-proc set_position_set*(a: PPaned, `position_set`: guint)
-proc in_drag*(a: PPaned): guint
-proc set_in_drag*(a: PPaned, `in_drag`: guint)
-proc child1_shrink*(a: PPaned): guint
-proc set_child1_shrink*(a: PPaned, `child1_shrink`: guint)
-proc child1_resize*(a: PPaned): guint
-proc set_child1_resize*(a: PPaned, `child1_resize`: guint)
-proc child2_shrink*(a: PPaned): guint
-proc set_child2_shrink*(a: PPaned, `child2_shrink`: guint)
-proc child2_resize*(a: PPaned): guint
-proc set_child2_resize*(a: PPaned, `child2_resize`: guint)
-proc orientation*(a: PPaned): guint
-proc set_orientation*(a: PPaned, `orientation`: guint)
-proc in_recursion*(a: PPaned): guint
-proc set_in_recursion*(a: PPaned, `in_recursion`: guint)
-proc handle_prelit*(a: PPaned): guint
-proc set_handle_prelit*(a: PPaned, `handle_prelit`: guint)
-proc paned_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_paned_get_type".}
-proc add1*(paned: PPaned, child: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_paned_add1".}
-proc add2*(paned: PPaned, child: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_paned_add2".}
-proc pack1*(paned: PPaned, child: PWidget, resize: gboolean, 
-                  shrink: gboolean){.cdecl, dynlib: lib, 
-                                     importc: "gtk_paned_pack1".}
-proc pack2*(paned: PPaned, child: PWidget, resize: gboolean, 
-                  shrink: gboolean){.cdecl, dynlib: lib, 
-                                     importc: "gtk_paned_pack2".}
-proc get_position*(paned: PPaned): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_paned_get_position".}
-proc set_position*(paned: PPaned, position: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paned_set_position".}
-proc compute_position*(paned: PPaned, allocation: gint, child1_req: gint, 
-                             child2_req: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paned_compute_position".}
-proc TYPE_HBUTTON_BOX*(): GType
-proc HBUTTON_BOX*(obj: pointer): PHButtonBox
-proc HBUTTON_BOX_CLASS*(klass: pointer): PHButtonBoxClass
-proc IS_HBUTTON_BOX*(obj: pointer): bool
-proc IS_HBUTTON_BOX_CLASS*(klass: pointer): bool
-proc HBUTTON_BOX_GET_CLASS*(obj: pointer): PHButtonBoxClass
-proc hbutton_box_get_type*(): TType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_hbutton_box_get_type".}
-proc hbutton_box_new*(): PHButtonBox{.cdecl, dynlib: lib, 
-                                      importc: "gtk_hbutton_box_new".}
-proc TYPE_HPANED*(): GType
-proc HPANED*(obj: pointer): PHPaned
-proc HPANED_CLASS*(klass: pointer): PHPanedClass
-proc IS_HPANED*(obj: pointer): bool
-proc IS_HPANED_CLASS*(klass: pointer): bool
-proc HPANED_GET_CLASS*(obj: pointer): PHPanedClass
-proc hpaned_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_hpaned_get_type".}
-proc hpaned_new*(): PHPaned{.cdecl, dynlib: lib, importc: "gtk_hpaned_new".}
-proc TYPE_RULER*(): GType
-proc RULER*(obj: pointer): PRuler
-proc RULER_CLASS*(klass: pointer): PRulerClass
-proc IS_RULER*(obj: pointer): bool
-proc IS_RULER_CLASS*(klass: pointer): bool
-proc RULER_GET_CLASS*(obj: pointer): PRulerClass
-proc ruler_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_ruler_get_type".}
-proc set_metric*(ruler: PRuler, metric: TMetricType){.cdecl, dynlib: lib, 
-    importc: "gtk_ruler_set_metric".}
-proc set_range*(ruler: PRuler, lower: gdouble, upper: gdouble, 
-                      position: gdouble, max_size: gdouble){.cdecl, dynlib: lib, 
-    importc: "gtk_ruler_set_range".}
-proc draw_ticks*(ruler: PRuler){.cdecl, dynlib: lib, 
-                                       importc: "gtk_ruler_draw_ticks".}
-proc draw_pos*(ruler: PRuler){.cdecl, dynlib: lib, 
-                                     importc: "gtk_ruler_draw_pos".}
-proc get_metric*(ruler: PRuler): TMetricType{.cdecl, dynlib: lib, 
-    importc: "gtk_ruler_get_metric".}
-proc get_range*(ruler: PRuler, lower: Pgdouble, upper: Pgdouble, 
-                      position: Pgdouble, max_size: Pgdouble){.cdecl, 
-    dynlib: lib, importc: "gtk_ruler_get_range".}
-proc TYPE_HRULER*(): GType
-proc HRULER*(obj: pointer): PHRuler
-proc HRULER_CLASS*(klass: pointer): PHRulerClass
-proc IS_HRULER*(obj: pointer): bool
-proc IS_HRULER_CLASS*(klass: pointer): bool
-proc HRULER_GET_CLASS*(obj: pointer): PHRulerClass
-proc hruler_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_hruler_get_type".}
-proc hruler_new*(): PHRuler{.cdecl, dynlib: lib, importc: "gtk_hruler_new".}
-proc TYPE_SETTINGS*(): GType
-proc SETTINGS*(obj: pointer): PSettings
-proc SETTINGS_CLASS*(klass: pointer): PSettingsClass
-proc IS_SETTINGS*(obj: pointer): bool
-proc IS_SETTINGS_CLASS*(klass: pointer): bool
-proc SETTINGS_GET_CLASS*(obj: pointer): PSettingsClass
-proc settings_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_settings_get_type".}
-proc settings_get_for_screen*(screen: gdk2.PScreen): PSettings{.cdecl, 
-    dynlib: lib, importc: "gtk_settings_get_for_screen".}
-proc settings_install_property*(pspec: PGParamSpec){.cdecl, dynlib: lib, 
-    importc: "gtk_settings_install_property".}
-proc settings_install_property_parser*(pspec: PGParamSpec, 
-                                       parser: TRcPropertyParser){.cdecl, 
-    dynlib: lib, importc: "gtk_settings_install_property_parser".}
-proc rc_property_parse_color*(pspec: PGParamSpec, gstring: PGString, 
-                              property_value: PGValue): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_rc_property_parse_color".}
-proc rc_property_parse_enum*(pspec: PGParamSpec, gstring: PGString, 
-                             property_value: PGValue): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_rc_property_parse_enum".}
-proc rc_property_parse_flags*(pspec: PGParamSpec, gstring: PGString, 
-                              property_value: PGValue): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_rc_property_parse_flags".}
-proc rc_property_parse_requisition*(pspec: PGParamSpec, gstring: PGString, 
-                                    property_value: PGValue): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_rc_property_parse_requisition".}
-proc rc_property_parse_border*(pspec: PGParamSpec, gstring: PGString, 
-                               property_value: PGValue): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_rc_property_parse_border".}
-proc set_property_value*(settings: PSettings, name: cstring, 
-                                  svalue: PSettingsValue){.cdecl, dynlib: lib, 
-    importc: "gtk_settings_set_property_value".}
-proc set_string_property*(settings: PSettings, name: cstring, 
-                                   v_string: cstring, origin: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_settings_set_string_property".}
-proc set_long_property*(settings: PSettings, name: cstring, 
-                                 v_long: glong, origin: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_settings_set_long_property".}
-proc set_double_property*(settings: PSettings, name: cstring, 
-                                   v_double: gdouble, origin: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_settings_set_double_property".}
-proc settings_handle_event*(event: gdk2.PEventSetting){.cdecl, dynlib: lib, 
-    importc: "_gtk_settings_handle_event".}
-proc rc_property_parser_from_type*(thetype: GType): TRcPropertyParser{.cdecl, 
-    dynlib: lib, importc: "_gtk_rc_property_parser_from_type".}
-proc settings_parse_convert*(parser: TRcPropertyParser, src_value: PGValue, 
-                             pspec: PGParamSpec, dest_value: PGValue): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_settings_parse_convert".}
-const 
-  RC_FG* = 1 shl 0
-  RC_BG* = 1 shl 1
-  RC_TEXT* = 1 shl 2
-  RC_BASE* = 1 shl 3
-  bm_TGtkRcStyle_engine_specified* = 0x0001'i16
-  bp_TGtkRcStyle_engine_specified* = 0'i16
-
-proc TYPE_RC_STYLE*(): GType
-proc RC_STYLE_get*(anObject: pointer): PRcStyle
-proc RC_STYLE_CLASS*(klass: pointer): PRcStyleClass
-proc IS_RC_STYLE*(anObject: pointer): bool
-proc IS_RC_STYLE_CLASS*(klass: pointer): bool
-proc RC_STYLE_GET_CLASS*(obj: pointer): PRcStyleClass
-proc engine_specified*(a: PRcStyle): guint
-proc set_engine_specified*(a: PRcStyle, `engine_specified`: guint)
-proc rc_init*(){.cdecl, dynlib: lib, importc: "_gtk_rc_init".}
-proc rc_add_default_file*(filename: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_rc_add_default_file".}
-proc rc_set_default_files*(filenames: PPgchar){.cdecl, dynlib: lib, 
-    importc: "gtk_rc_set_default_files".}
-proc rc_get_default_files*(): PPgchar{.cdecl, dynlib: lib, 
-                                       importc: "gtk_rc_get_default_files".}
-proc rc_get_style*(widget: PWidget): PStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_rc_get_style".}
-proc rc_get_style_by_paths*(settings: PSettings, widget_path: cstring, 
-                            class_path: cstring, thetype: GType): PStyle{.cdecl, 
-    dynlib: lib, importc: "gtk_rc_get_style_by_paths".}
-proc rc_reparse_all_for_settings*(settings: PSettings, force_load: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_rc_reparse_all_for_settings".}
-proc rc_find_pixmap_in_path*(settings: PSettings, scanner: PGScanner, 
-                             pixmap_file: cstring): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_rc_find_pixmap_in_path".}
-proc rc_parse*(filename: cstring){.cdecl, dynlib: lib, importc: "gtk_rc_parse".}
-proc rc_parse_string*(rc_string: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_rc_parse_string".}
-proc rc_reparse_all*(): gboolean{.cdecl, dynlib: lib, 
-                                  importc: "gtk_rc_reparse_all".}
-proc rc_style_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_rc_style_get_type".}
-proc rc_style_new*(): PRcStyle{.cdecl, dynlib: lib, importc: "gtk_rc_style_new".}
-proc copy*(orig: PRcStyle): PRcStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_rc_style_copy".}
-proc reference*(rc_style: PRcStyle){.cdecl, dynlib: lib, 
-                                        importc: "gtk_rc_style_ref".}
-proc unref*(rc_style: PRcStyle){.cdecl, dynlib: lib, 
-    importc: "gtk_rc_style_unref".}
-proc rc_find_module_in_path*(module_file: cstring): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_rc_find_module_in_path".}
-proc rc_get_theme_dir*(): cstring{.cdecl, dynlib: lib, 
-                                   importc: "gtk_rc_get_theme_dir".}
-proc rc_get_module_dir*(): cstring{.cdecl, dynlib: lib, 
-                                    importc: "gtk_rc_get_module_dir".}
-proc rc_get_im_module_path*(): cstring{.cdecl, dynlib: lib, 
-                                        importc: "gtk_rc_get_im_module_path".}
-proc rc_get_im_module_file*(): cstring{.cdecl, dynlib: lib, 
-                                        importc: "gtk_rc_get_im_module_file".}
-proc rc_scanner_new*(): PGScanner{.cdecl, dynlib: lib, 
-                                   importc: "gtk_rc_scanner_new".}
-proc rc_parse_color*(scanner: PGScanner, color: gdk2.PColor): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_rc_parse_color".}
-proc rc_parse_state*(scanner: PGScanner, state: PStateType): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_rc_parse_state".}
-proc rc_parse_priority*(scanner: PGScanner, priority: PPathPriorityType): guint{.
-    cdecl, dynlib: lib, importc: "gtk_rc_parse_priority".}
-proc lookup_rc_property*(rc_style: PRcStyle, type_name: TGQuark, 
-                                  property_name: TGQuark): PRcProperty{.cdecl, 
-    dynlib: lib, importc: "_gtk_rc_style_lookup_rc_property".}
-proc rc_context_get_default_font_name*(settings: PSettings): cstring{.cdecl, 
-    dynlib: lib, importc: "_gtk_rc_context_get_default_font_name".}
-proc TYPE_STYLE*(): GType
-proc STYLE*(anObject: pointer): PStyle
-proc STYLE_CLASS*(klass: pointer): PStyleClass
-proc IS_STYLE*(anObject: pointer): bool
-proc IS_STYLE_CLASS*(klass: pointer): bool
-proc STYLE_GET_CLASS*(obj: pointer): PStyleClass
-proc TYPE_BORDER*(): GType
-proc STYLE_ATTACHED*(style: pointer): bool
-proc style_get_type*(): GType{.cdecl, dynlib: lib, importc: "gtk_style_get_type".}
-proc style_new*(): PStyle{.cdecl, dynlib: lib, importc: "gtk_style_new".}
-proc copy*(style: PStyle): PStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_style_copy".}
-proc attach*(style: PStyle, window: gdk2.PWindow): PStyle{.cdecl, 
-    dynlib: lib, importc: "gtk_style_attach".}
-proc detach*(style: PStyle){.cdecl, dynlib: lib, 
-                                   importc: "gtk_style_detach".}
-proc set_background*(style: PStyle, window: gdk2.PWindow, 
-                           state_type: TStateType){.cdecl, dynlib: lib, 
-    importc: "gtk_style_set_background".}
-proc apply_default_background*(style: PStyle, window: gdk2.PWindow, 
-                                     set_bg: gboolean, state_type: TStateType, 
-                                     area: gdk2.PRectangle, x: gint, y: gint, 
-                                     width: gint, height: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_style_apply_default_background".}
-proc lookup_icon_set*(style: PStyle, stock_id: cstring): PIconSet{.cdecl, 
-    dynlib: lib, importc: "gtk_style_lookup_icon_set".}
-proc render_icon*(style: PStyle, source: PIconSource, 
-                        direction: TTextDirection, state: TStateType, 
-                        size: TIconSize, widget: PWidget, detail: cstring): gdk2pixbuf.PPixbuf{.
-    cdecl, dynlib: lib, importc: "gtk_style_render_icon".}
-proc paint_hline*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                  area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                  x1: gint, x2: gint, y: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_hline".}
-proc paint_vline*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                  area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                  y1: gint, y2: gint, x: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_vline".}
-proc paint_shadow*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                   shadow_type: TShadowType, area: gdk2.PRectangle, 
-                   widget: PWidget, detail: cstring, x: gint, y: gint, 
-                   width: gint, height: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_shadow".}
-proc paint_polygon*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                    shadow_type: TShadowType, area: gdk2.PRectangle, 
-                    widget: PWidget, detail: cstring, points: gdk2.PPoint, 
-                    npoints: gint, fill: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_polygon".}
-proc paint_arrow*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                  shadow_type: TShadowType, area: gdk2.PRectangle, 
-                  widget: PWidget, detail: cstring, arrow_type: TArrowType, 
-                  fill: gboolean, x: gint, y: gint, width: gint, height: gint){.
-    cdecl, dynlib: lib, importc: "gtk_paint_arrow".}
-proc paint_diamond*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                    shadow_type: TShadowType, area: gdk2.PRectangle, 
-                    widget: PWidget, detail: cstring, x: gint, y: gint, 
-                    width: gint, height: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_diamond".}
-proc paint_box*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                shadow_type: TShadowType, area: gdk2.PRectangle, widget: PWidget, 
-                detail: cstring, x: gint, y: gint, width: gint, height: gint){.
-    cdecl, dynlib: lib, importc: "gtk_paint_box".}
-proc paint_flat_box*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                     shadow_type: TShadowType, area: gdk2.PRectangle, 
-                     widget: PWidget, detail: cstring, x: gint, y: gint, 
-                     width: gint, height: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_flat_box".}
-proc paint_check*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                  shadow_type: TShadowType, area: gdk2.PRectangle, 
-                  widget: PWidget, detail: cstring, x: gint, y: gint, 
-                  width: gint, height: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_check".}
-proc paint_option*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                   shadow_type: TShadowType, area: gdk2.PRectangle, 
-                   widget: PWidget, detail: cstring, x: gint, y: gint, 
-                   width: gint, height: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_option".}
-proc paint_tab*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                shadow_type: TShadowType, area: gdk2.PRectangle, widget: PWidget, 
-                detail: cstring, x: gint, y: gint, width: gint, height: gint){.
-    cdecl, dynlib: lib, importc: "gtk_paint_tab".}
-proc paint_shadow_gap*(style: PStyle, window: gdk2.PWindow, 
-                       state_type: TStateType, shadow_type: TShadowType, 
-                       area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                       x: gint, y: gint, width: gint, height: gint, 
-                       gap_side: TPositionType, gap_x: gint, gap_width: gint){.
-    cdecl, dynlib: lib, importc: "gtk_paint_shadow_gap".}
-proc paint_box_gap*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                    shadow_type: TShadowType, area: gdk2.PRectangle, 
-                    widget: PWidget, detail: cstring, x: gint, y: gint, 
-                    width: gint, height: gint, gap_side: TPositionType, 
-                    gap_x: gint, gap_width: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_box_gap".}
-proc paint_extension*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                      shadow_type: TShadowType, area: gdk2.PRectangle, 
-                      widget: PWidget, detail: cstring, x: gint, y: gint, 
-                      width: gint, height: gint, gap_side: TPositionType){.
-    cdecl, dynlib: lib, importc: "gtk_paint_extension".}
-proc paint_focus*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                  area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                  x: gint, y: gint, width: gint, height: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_paint_focus".}
-proc paint_slider*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                   shadow_type: TShadowType, area: gdk2.PRectangle, 
-                   widget: PWidget, detail: cstring, x: gint, y: gint, 
-                   width: gint, height: gint, orientation: TOrientation){.cdecl, 
-    dynlib: lib, importc: "gtk_paint_slider".}
-proc paint_handle*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                   shadow_type: TShadowType, area: gdk2.PRectangle, 
-                   widget: PWidget, detail: cstring, x: gint, y: gint, 
-                   width: gint, height: gint, orientation: TOrientation){.cdecl, 
-    dynlib: lib, importc: "gtk_paint_handle".}
-proc paint_expander*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                     area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                     x: gint, y: gint, expander_style: TExpanderStyle){.cdecl, 
-    dynlib: lib, importc: "gtk_paint_expander".}
-proc paint_layout*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                   use_text: gboolean, area: gdk2.PRectangle, widget: PWidget, 
-                   detail: cstring, x: gint, y: gint, layout: pango.PLayout){.
-    cdecl, dynlib: lib, importc: "gtk_paint_layout".}
-proc paint_resize_grip*(style: PStyle, window: gdk2.PWindow, 
-                        state_type: TStateType, area: gdk2.PRectangle, 
-                        widget: PWidget, detail: cstring, edge: gdk2.TWindowEdge, 
-                        x: gint, y: gint, width: gint, height: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_paint_resize_grip".}
-proc border_get_type*(): GType{.cdecl, dynlib: lib, 
-                                importc: "gtk_border_get_type".}
-proc copy*(border: PBorder): PBorder{.cdecl, dynlib: lib, 
-    importc: "gtk_border_copy".}
-proc free*(border: PBorder){.cdecl, dynlib: lib, 
-                                    importc: "gtk_border_free".}
-proc peek_property_value*(style: PStyle, widget_type: GType, 
-                                pspec: PGParamSpec, parser: TRcPropertyParser): PGValue{.
-    cdecl, dynlib: lib, importc: "_gtk_style_peek_property_value".}
-proc get_insertion_cursor_gc*(widget: PWidget, is_primary: gboolean): gdk2.PGC{.
-    cdecl, dynlib: lib, importc: "_gtk_get_insertion_cursor_gc".}
-proc draw_insertion_cursor*(widget: PWidget, drawable: gdk2.PDrawable, gc: gdk2.PGC, 
-                            location: gdk2.PRectangle, direction: TTextDirection, 
-                            draw_arrow: gboolean){.cdecl, dynlib: lib, 
-    importc: "_gtk_draw_insertion_cursor".}
-const 
-  bm_TGtkRange_inverted* = 0x0001'i16
-  bp_TGtkRange_inverted* = 0'i16
-  bm_TGtkRange_flippable* = 0x0002'i16
-  bp_TGtkRange_flippable* = 1'i16
-  bm_TGtkRange_has_stepper_a* = 0x0004'i16
-  bp_TGtkRange_has_stepper_a* = 2'i16
-  bm_TGtkRange_has_stepper_b* = 0x0008'i16
-  bp_TGtkRange_has_stepper_b* = 3'i16
-  bm_TGtkRange_has_stepper_c* = 0x0010'i16
-  bp_TGtkRange_has_stepper_c* = 4'i16
-  bm_TGtkRange_has_stepper_d* = 0x0020'i16
-  bp_TGtkRange_has_stepper_d* = 5'i16
-  bm_TGtkRange_need_recalc* = 0x0040'i16
-  bp_TGtkRange_need_recalc* = 6'i16
-  bm_TGtkRange_slider_size_fixed* = 0x0080'i16
-  bp_TGtkRange_slider_size_fixed* = 7'i16
-  bm_TGtkRange_trough_click_forward* = 0x0001'i16
-  bp_TGtkRange_trough_click_forward* = 0'i16
-  bm_TGtkRange_update_pending* = 0x0002'i16
-  bp_TGtkRange_update_pending* = 1'i16
-
-proc TYPE_RANGE*(): GType
-proc RANGE*(obj: pointer): PRange
-proc RANGE_CLASS*(klass: pointer): PRangeClass
-proc IS_RANGE*(obj: pointer): bool
-proc IS_RANGE_CLASS*(klass: pointer): bool
-proc RANGE_GET_CLASS*(obj: pointer): PRangeClass
-proc inverted*(a: PRange): guint
-proc set_inverted*(a: PRange, `inverted`: guint)
-proc flippable*(a: PRange): guint
-proc set_flippable*(a: PRange, `flippable`: guint)
-proc has_stepper_a*(a: PRange): guint
-proc set_has_stepper_a*(a: PRange, `has_stepper_a`: guint)
-proc has_stepper_b*(a: PRange): guint
-proc set_has_stepper_b*(a: PRange, `has_stepper_b`: guint)
-proc has_stepper_c*(a: PRange): guint
-proc set_has_stepper_c*(a: PRange, `has_stepper_c`: guint)
-proc has_stepper_d*(a: PRange): guint
-proc set_has_stepper_d*(a: PRange, `has_stepper_d`: guint)
-proc need_recalc*(a: PRange): guint
-proc set_need_recalc*(a: PRange, `need_recalc`: guint)
-proc slider_size_fixed*(a: PRange): guint
-proc set_slider_size_fixed*(a: PRange, `slider_size_fixed`: guint)
-proc trough_click_forward*(a: PRange): guint
-proc set_trough_click_forward*(a: PRange, `trough_click_forward`: guint)
-proc update_pending*(a: PRange): guint
-proc set_update_pending*(a: PRange, `update_pending`: guint)
-proc range_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_range_get_type".}
-proc set_update_policy*(range: PRange, policy: TUpdateType){.cdecl, 
-    dynlib: lib, importc: "gtk_range_set_update_policy".}
-proc get_update_policy*(range: PRange): TUpdateType{.cdecl, dynlib: lib, 
-    importc: "gtk_range_get_update_policy".}
-proc set_adjustment*(range: PRange, adjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_range_set_adjustment".}
-proc get_adjustment*(range: PRange): PAdjustment{.cdecl, dynlib: lib, 
-    importc: "gtk_range_get_adjustment".}
-proc set_inverted*(range: PRange, setting: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_range_set_inverted".}
-proc get_inverted*(range: PRange): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_range_get_inverted".}
-proc set_increments*(range: PRange, step: gdouble, page: gdouble){.cdecl, 
-    dynlib: lib, importc: "gtk_range_set_increments".}
-proc set_range*(range: PRange, min: gdouble, max: gdouble){.cdecl, 
-    dynlib: lib, importc: "gtk_range_set_range".}
-proc set_value*(range: PRange, value: gdouble){.cdecl, dynlib: lib, 
-    importc: "gtk_range_set_value".}
-proc get_value*(range: PRange): gdouble{.cdecl, dynlib: lib, 
-    importc: "gtk_range_get_value".}
-const 
-  bm_TGtkScale_draw_value* = 0x0001'i16
-  bp_TGtkScale_draw_value* = 0'i16
-  bm_TGtkScale_value_pos* = 0x0006'i16
-  bp_TGtkScale_value_pos* = 1'i16
-
-proc TYPE_SCALE*(): GType
-proc SCALE*(obj: pointer): PScale
-proc SCALE_CLASS*(klass: pointer): PScaleClass
-proc IS_SCALE*(obj: pointer): bool
-proc IS_SCALE_CLASS*(klass: pointer): bool
-proc SCALE_GET_CLASS*(obj: pointer): PScaleClass
-proc draw_value*(a: PScale): guint
-proc set_draw_value*(a: PScale, `draw_value`: guint)
-proc value_pos*(a: PScale): guint
-proc set_value_pos*(a: PScale, `value_pos`: guint)
-proc scale_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_scale_get_type".}
-proc set_digits*(scale: PScale, digits: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_scale_set_digits".}
-proc get_digits*(scale: PScale): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_scale_get_digits".}
-proc set_draw_value*(scale: PScale, draw_value: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_scale_set_draw_value".}
-proc get_draw_value*(scale: PScale): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_scale_get_draw_value".}
-proc set_value_pos*(scale: PScale, pos: TPositionType){.cdecl, 
-    dynlib: lib, importc: "gtk_scale_set_value_pos".}
-proc get_value_pos*(scale: PScale): TPositionType{.cdecl, dynlib: lib, 
-    importc: "gtk_scale_get_value_pos".}
-proc get_value_size*(scale: PScale, width: Pgint, height: Pgint){.cdecl, 
-    dynlib: lib, importc: "_gtk_scale_get_value_size".}
-proc format_value*(scale: PScale, value: gdouble): cstring{.cdecl, 
-    dynlib: lib, importc: "_gtk_scale_format_value".}
-proc TYPE_HSCALE*(): GType
-proc HSCALE*(obj: pointer): PHScale
-proc HSCALE_CLASS*(klass: pointer): PHScaleClass
-proc IS_HSCALE*(obj: pointer): bool
-proc IS_HSCALE_CLASS*(klass: pointer): bool
-proc HSCALE_GET_CLASS*(obj: pointer): PHScaleClass
-proc hscale_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_hscale_get_type".}
-proc hscale_new*(adjustment: PAdjustment): PHScale{.cdecl, dynlib: lib, 
-    importc: "gtk_hscale_new".}
-proc hscale_new*(min: gdouble, max: gdouble, step: gdouble): PHScale{.
-    cdecl, dynlib: lib, importc: "gtk_hscale_new_with_range".}
-proc TYPE_SCROLLBAR*(): GType
-proc SCROLLBAR*(obj: pointer): PScrollbar
-proc SCROLLBAR_CLASS*(klass: pointer): PScrollbarClass
-proc IS_SCROLLBAR*(obj: pointer): bool
-proc IS_SCROLLBAR_CLASS*(klass: pointer): bool
-proc SCROLLBAR_GET_CLASS*(obj: pointer): PScrollbarClass
-proc scrollbar_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_scrollbar_get_type".}
-proc TYPE_HSCROLLBAR*(): GType
-proc HSCROLLBAR*(obj: pointer): PHScrollbar
-proc HSCROLLBAR_CLASS*(klass: pointer): PHScrollbarClass
-proc IS_HSCROLLBAR*(obj: pointer): bool
-proc IS_HSCROLLBAR_CLASS*(klass: pointer): bool
-proc HSCROLLBAR_GET_CLASS*(obj: pointer): PHScrollbarClass
-proc hscrollbar_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_hscrollbar_get_type".}
-proc hscrollbar_new*(adjustment: PAdjustment): PHScrollbar{.cdecl, dynlib: lib, 
-    importc: "gtk_hscrollbar_new".}
-proc TYPE_SEPARATOR*(): GType
-proc SEPARATOR*(obj: pointer): PSeparator
-proc SEPARATOR_CLASS*(klass: pointer): PSeparatorClass
-proc IS_SEPARATOR*(obj: pointer): bool
-proc IS_SEPARATOR_CLASS*(klass: pointer): bool
-proc SEPARATOR_GET_CLASS*(obj: pointer): PSeparatorClass
-proc separator_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_separator_get_type".}
-proc TYPE_HSEPARATOR*(): GType
-proc HSEPARATOR*(obj: pointer): PHSeparator
-proc HSEPARATOR_CLASS*(klass: pointer): PHSeparatorClass
-proc IS_HSEPARATOR*(obj: pointer): bool
-proc IS_HSEPARATOR_CLASS*(klass: pointer): bool
-proc HSEPARATOR_GET_CLASS*(obj: pointer): PHSeparatorClass
-proc hseparator_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_hseparator_get_type".}
-proc hseparator_new*(): PHSeparator{.cdecl, dynlib: lib, 
-                                     importc: "gtk_hseparator_new".}
-proc TYPE_ICON_FACTORY*(): GType
-proc ICON_FACTORY*(anObject: pointer): PIconFactory
-proc ICON_FACTORY_CLASS*(klass: pointer): PIconFactoryClass
-proc IS_ICON_FACTORY*(anObject: pointer): bool
-proc IS_ICON_FACTORY_CLASS*(klass: pointer): bool
-proc ICON_FACTORY_GET_CLASS*(obj: pointer): PIconFactoryClass
-proc TYPE_ICON_SET*(): GType
-proc TYPE_ICON_SOURCE*(): GType
-proc icon_factory_get_type*(): GType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_icon_factory_get_type".}
-proc icon_factory_new*(): PIconFactory{.cdecl, dynlib: lib, 
-                                        importc: "gtk_icon_factory_new".}
-proc add*(factory: PIconFactory, stock_id: cstring, 
-                       icon_set: PIconSet){.cdecl, dynlib: lib, 
-    importc: "gtk_icon_factory_add".}
-proc lookup*(factory: PIconFactory, stock_id: cstring): PIconSet{.
-    cdecl, dynlib: lib, importc: "gtk_icon_factory_lookup".}
-proc add_default*(factory: PIconFactory){.cdecl, dynlib: lib, 
-    importc: "gtk_icon_factory_add_default".}
-proc remove_default*(factory: PIconFactory){.cdecl, dynlib: lib, 
-    importc: "gtk_icon_factory_remove_default".}
-proc icon_factory_lookup_default*(stock_id: cstring): PIconSet{.cdecl, 
-    dynlib: lib, importc: "gtk_icon_factory_lookup_default".}
-proc icon_size_lookup*(size: TIconSize, width: Pgint, height: Pgint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_icon_size_lookup".}
-proc icon_size_register*(name: cstring, width: gint, height: gint): TIconSize{.
-    cdecl, dynlib: lib, importc: "gtk_icon_size_register".}
-proc icon_size_register_alias*(alias: cstring, target: TIconSize){.cdecl, 
-    dynlib: lib, importc: "gtk_icon_size_register_alias".}
-proc icon_size_from_name*(name: cstring): TIconSize{.cdecl, dynlib: lib, 
-    importc: "gtk_icon_size_from_name".}
-proc icon_size_get_name*(size: TIconSize): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_icon_size_get_name".}
-proc icon_set_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_icon_set_get_type".}
-proc icon_set_new*(): PIconSet{.cdecl, dynlib: lib, importc: "gtk_icon_set_new".}
-proc icon_set_new_from_pixbuf*(pixbuf: gdk2pixbuf.PPixbuf): PIconSet{.cdecl, 
-    dynlib: lib, importc: "gtk_icon_set_new_from_pixbuf".}
-proc reference*(icon_set: PIconSet): PIconSet{.cdecl, dynlib: lib, 
-    importc: "gtk_icon_set_ref".}
-proc unref*(icon_set: PIconSet){.cdecl, dynlib: lib, 
-    importc: "gtk_icon_set_unref".}
-proc copy*(icon_set: PIconSet): PIconSet{.cdecl, dynlib: lib, 
-    importc: "gtk_icon_set_copy".}
-proc render_icon*(icon_set: PIconSet, style: PStyle, 
-                           direction: TTextDirection, state: TStateType, 
-                           size: TIconSize, widget: PWidget, detail: cstring): gdk2pixbuf.PPixbuf{.
-    cdecl, dynlib: lib, importc: "gtk_icon_set_render_icon".}
-proc add_source*(icon_set: PIconSet, source: PIconSource){.cdecl, 
-    dynlib: lib, importc: "gtk_icon_set_add_source".}
-proc get_sizes*(icon_set: PIconSet, sizes: PPGtkIconSize, 
-                         n_sizes: pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_icon_set_get_sizes".}
-proc icon_source_get_type*(): GType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_icon_source_get_type".}
-proc icon_source_new*(): PIconSource{.cdecl, dynlib: lib, 
-                                      importc: "gtk_icon_source_new".}
-proc copy*(source: PIconSource): PIconSource{.cdecl, dynlib: lib, 
-    importc: "gtk_icon_source_copy".}
-proc free*(source: PIconSource){.cdecl, dynlib: lib, 
-    importc: "gtk_icon_source_free".}
-proc set_filename*(source: PIconSource, filename: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_set_filename".}
-proc set_pixbuf*(source: PIconSource, pixbuf: gdk2pixbuf.PPixbuf){.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_set_pixbuf".}
-proc get_filename*(source: PIconSource): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_get_filename".}
-proc get_pixbuf*(source: PIconSource): gdk2pixbuf.PPixbuf{.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_get_pixbuf".}
-proc set_direction_wildcarded*(source: PIconSource, 
-    setting: gboolean){.cdecl, dynlib: lib, 
-                        importc: "gtk_icon_source_set_direction_wildcarded".}
-proc set_state_wildcarded*(source: PIconSource, setting: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_icon_source_set_state_wildcarded".}
-proc set_size_wildcarded*(source: PIconSource, setting: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_icon_source_set_size_wildcarded".}
-proc get_size_wildcarded*(source: PIconSource): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_get_size_wildcarded".}
-proc get_state_wildcarded*(source: PIconSource): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_get_state_wildcarded".}
-proc get_direction_wildcarded*(source: PIconSource): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_icon_source_get_direction_wildcarded".}
-proc set_direction*(source: PIconSource, direction: TTextDirection){.
-    cdecl, dynlib: lib, importc: "gtk_icon_source_set_direction".}
-proc set_state*(source: PIconSource, state: TStateType){.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_set_state".}
-proc set_size*(source: PIconSource, size: TIconSize){.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_set_size".}
-proc get_direction*(source: PIconSource): TTextDirection{.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_get_direction".}
-proc get_state*(source: PIconSource): TStateType{.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_get_state".}
-proc get_size*(source: PIconSource): TIconSize{.cdecl, dynlib: lib, 
-    importc: "gtk_icon_source_get_size".}
-proc icon_set_invalidate_caches*(){.cdecl, dynlib: lib, 
-                                    importc: "_gtk_icon_set_invalidate_caches".}
-proc icon_factory_list_ids*(): PGSList{.cdecl, dynlib: lib, 
-                                        importc: "_gtk_icon_factory_list_ids".}
-proc TYPE_IMAGE*(): GType
-proc IMAGE*(obj: pointer): PImage
-proc IMAGE_CLASS*(klass: pointer): PImageClass
-proc IS_IMAGE*(obj: pointer): bool
-proc IS_IMAGE_CLASS*(klass: pointer): bool
-proc IMAGE_GET_CLASS*(obj: pointer): PImageClass
-proc image_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_image_get_type".}
-proc image_new*(): PImage{.cdecl, dynlib: lib, importc: "gtk_image_new".}
-proc image_new_from_pixmap*(pixmap: gdk2.PPixmap, mask: gdk2.PBitmap): PImage{.
-    cdecl, dynlib: lib, importc: "gtk_image_new_from_pixmap".}
-proc image_new_from_image*(image: gdk2.PImage, mask: gdk2.PBitmap): PImage{.cdecl, 
-    dynlib: lib, importc: "gtk_image_new_from_image".}
-proc image_new_from_file*(filename: cstring): PImage{.cdecl, dynlib: lib, 
-    importc: "gtk_image_new_from_file".}
-proc image_new_from_pixbuf*(pixbuf: gdk2pixbuf.PPixbuf): PImage{.cdecl, dynlib: lib, 
-    importc: "gtk_image_new_from_pixbuf".}
-proc image_new_from_stock*(stock_id: cstring, size: TIconSize): PImage{.cdecl, 
-    dynlib: lib, importc: "gtk_image_new_from_stock".}
-proc image_new_from_icon_set*(icon_set: PIconSet, size: TIconSize): PImage{.
-    cdecl, dynlib: lib, importc: "gtk_image_new_from_icon_set".}
-proc image_new_from_animation*(animation: gdk2pixbuf.PPixbufAnimation): PImage{.cdecl, 
-    dynlib: lib, importc: "gtk_image_new_from_animation".}
-proc set_from_pixmap*(image: PImage, pixmap: gdk2.PPixmap, mask: gdk2.PBitmap){.
-    cdecl, dynlib: lib, importc: "gtk_image_set_from_pixmap".}
-proc set_from_image*(image: PImage, gdk_image: gdk2.PImage, mask: gdk2.PBitmap){.
-    cdecl, dynlib: lib, importc: "gtk_image_set_from_image".}
-proc set_from_file*(image: PImage, filename: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_image_set_from_file".}
-proc set_from_pixbuf*(image: PImage, pixbuf: gdk2pixbuf.PPixbuf){.cdecl, 
-    dynlib: lib, importc: "gtk_image_set_from_pixbuf".}
-proc set_from_stock*(image: PImage, stock_id: cstring, size: TIconSize){.
-    cdecl, dynlib: lib, importc: "gtk_image_set_from_stock".}
-proc set_from_icon_set*(image: PImage, icon_set: PIconSet, size: TIconSize){.
-    cdecl, dynlib: lib, importc: "gtk_image_set_from_icon_set".}
-proc set_from_animation*(image: PImage, animation: gdk2pixbuf.PPixbufAnimation){.
-    cdecl, dynlib: lib, importc: "gtk_image_set_from_animation".}
-proc get_storage_type*(image: PImage): TImageType{.cdecl, dynlib: lib, 
-    importc: "gtk_image_get_storage_type".}
-proc get_pixbuf*(image: PImage): gdk2pixbuf.PPixbuf{.cdecl, dynlib: lib, 
-    importc: "gtk_image_get_pixbuf".}
-proc get_stock*(image: PImage, stock_id: PPgchar, size: PIconSize){.cdecl, 
-    dynlib: lib, importc: "gtk_image_get_stock".}
-proc get_animation*(image: PImage): gdk2pixbuf.PPixbufAnimation{.cdecl, 
-    dynlib: lib, importc: "gtk_image_get_animation".}
-proc TYPE_IMAGE_MENU_ITEM*(): GType
-proc IMAGE_MENU_ITEM*(obj: pointer): PImageMenuItem
-proc IMAGE_MENU_ITEM_CLASS*(klass: pointer): PImageMenuItemClass
-proc IS_IMAGE_MENU_ITEM*(obj: pointer): bool
-proc IS_IMAGE_MENU_ITEM_CLASS*(klass: pointer): bool
-proc IMAGE_MENU_ITEM_GET_CLASS*(obj: pointer): PImageMenuItemClass
-proc image_menu_item_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_image_menu_item_get_type".}
-proc image_menu_item_new*(): PImageMenuItem{.cdecl, dynlib: lib, 
-    importc: "gtk_image_menu_item_new".}
-proc image_menu_item_new*(`label`: cstring): PImageMenuItem{.cdecl, 
-    dynlib: lib, importc: "gtk_image_menu_item_new_with_label".}
-proc image_menu_item_new_with_mnemonic*(`label`: cstring): PImageMenuItem{.
-    cdecl, dynlib: lib, importc: "gtk_image_menu_item_new_with_mnemonic".}
-proc image_menu_item_new_from_stock*(stock_id: cstring, accel_group: PAccelGroup): PImageMenuItem{.
-    cdecl, dynlib: lib, importc: "gtk_image_menu_item_new_from_stock".}
-proc item_set_image*(image_menu_item: PImageMenuItem, image: PWidget){.
-    cdecl, dynlib: lib, importc: "gtk_image_menu_item_set_image".}
-proc item_get_image*(image_menu_item: PImageMenuItem): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_image_menu_item_get_image".}
-const 
-  bm_TGtkIMContextSimple_in_hex_sequence* = 0x0001'i16
-  bp_TGtkIMContextSimple_in_hex_sequence* = 0'i16
-
-proc TYPE_IM_CONTEXT_SIMPLE*(): GType
-proc IM_CONTEXT_SIMPLE*(obj: pointer): PIMContextSimple
-proc IM_CONTEXT_SIMPLE_CLASS*(klass: pointer): PIMContextSimpleClass
-proc IS_IM_CONTEXT_SIMPLE*(obj: pointer): bool
-proc IS_IM_CONTEXT_SIMPLE_CLASS*(klass: pointer): bool
-proc IM_CONTEXT_SIMPLE_GET_CLASS*(obj: pointer): PIMContextSimpleClass
-proc in_hex_sequence*(a: PIMContextSimple): guint
-proc set_in_hex_sequence*(a: PIMContextSimple, `in_hex_sequence`: guint)
-proc im_context_simple_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_im_context_simple_get_type".}
-proc im_context_simple_new*(): PIMContext{.cdecl, dynlib: lib, 
-    importc: "gtk_im_context_simple_new".}
-proc simple_add_table*(context_simple: PIMContextSimple, 
-                                  data: Pguint16, max_seq_len: gint, 
-                                  n_seqs: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_im_context_simple_add_table".}
-proc TYPE_IM_MULTICONTEXT*(): GType
-proc IM_MULTICONTEXT*(obj: pointer): PIMMulticontext
-proc IM_MULTICONTEXT_CLASS*(klass: pointer): PIMMulticontextClass
-proc IS_IM_MULTICONTEXT*(obj: pointer): bool
-proc IS_IM_MULTICONTEXT_CLASS*(klass: pointer): bool
-proc IM_MULTICONTEXT_GET_CLASS*(obj: pointer): PIMMulticontextClass
-proc im_multicontext_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_im_multicontext_get_type".}
-proc im_multicontext_new*(): PIMContext{.cdecl, dynlib: lib, 
-    importc: "gtk_im_multicontext_new".}
-proc append_menuitems*(context: PIMMulticontext, 
-                                       menushell: PMenuShell){.cdecl, 
-    dynlib: lib, importc: "gtk_im_multicontext_append_menuitems".}
-proc TYPE_INPUT_DIALOG*(): GType
-proc INPUT_DIALOG*(obj: pointer): PInputDialog
-proc INPUT_DIALOG_CLASS*(klass: pointer): PInputDialogClass
-proc IS_INPUT_DIALOG*(obj: pointer): bool
-proc IS_INPUT_DIALOG_CLASS*(klass: pointer): bool
-proc INPUT_DIALOG_GET_CLASS*(obj: pointer): PInputDialogClass
-proc input_dialog_get_type*(): TType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_input_dialog_get_type".}
-proc input_dialog_new*(): PInputDialog{.cdecl, dynlib: lib, 
-                                        importc: "gtk_input_dialog_new".}
-proc TYPE_INVISIBLE*(): GType
-proc INVISIBLE*(obj: pointer): PInvisible
-proc INVISIBLE_CLASS*(klass: pointer): PInvisibleClass
-proc IS_INVISIBLE*(obj: pointer): bool
-proc IS_INVISIBLE_CLASS*(klass: pointer): bool
-proc INVISIBLE_GET_CLASS*(obj: pointer): PInvisibleClass
-proc invisible_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_invisible_get_type".}
-proc invisible_new*(): PInvisible{.cdecl, dynlib: lib, 
-                                   importc: "gtk_invisible_new".}
-proc invisible_new_for_screen*(screen: gdk2.PScreen): PInvisible{.cdecl, 
-    dynlib: lib, importc: "gtk_invisible_new_for_screen".}
-proc set_screen*(invisible: PInvisible, screen: gdk2.PScreen){.cdecl, 
-    dynlib: lib, importc: "gtk_invisible_set_screen".}
-proc get_screen*(invisible: PInvisible): gdk2.PScreen{.cdecl, 
-    dynlib: lib, importc: "gtk_invisible_get_screen".}
-proc TYPE_ITEM_FACTORY*(): GType
-proc ITEM_FACTORY*(anObject: pointer): PItemFactory
-proc ITEM_FACTORY_CLASS*(klass: pointer): PItemFactoryClass
-proc IS_ITEM_FACTORY*(anObject: pointer): bool
-proc IS_ITEM_FACTORY_CLASS*(klass: pointer): bool
-proc ITEM_FACTORY_GET_CLASS*(obj: pointer): PItemFactoryClass
-proc item_factory_get_type*(): TType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_item_factory_get_type".}
-proc item_factory_new*(container_type: TType, path: cstring, 
-                       accel_group: PAccelGroup): PItemFactory{.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_new".}
-proc construct*(ifactory: PItemFactory, container_type: TType, 
-                             path: cstring, accel_group: PAccelGroup){.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_construct".}
-proc item_factory_add_foreign*(accel_widget: PWidget, full_path: cstring, 
-                               accel_group: PAccelGroup, keyval: guint, 
-                               modifiers: gdk2.TModifierType){.cdecl, dynlib: lib, 
-    importc: "gtk_item_factory_add_foreign".}
-proc item_factory_from_widget*(widget: PWidget): PItemFactory{.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_from_widget".}
-proc item_factory_path_from_widget*(widget: PWidget): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_path_from_widget".}
-proc get_item*(ifactory: PItemFactory, path: cstring): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_item_factory_get_item".}
-proc get_widget*(ifactory: PItemFactory, path: cstring): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_item_factory_get_widget".}
-proc get_widget_by_action*(ifactory: PItemFactory, action: guint): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_item_factory_get_widget_by_action".}
-proc get_item_by_action*(ifactory: PItemFactory, action: guint): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_item_factory_get_item_by_action".}
-proc create_item*(ifactory: PItemFactory, entry: PItemFactoryEntry, 
-                               callback_data: gpointer, callback_type: guint){.
-    cdecl, dynlib: lib, importc: "gtk_item_factory_create_item".}
-proc create_items*(ifactory: PItemFactory, n_entries: guint, 
-                                entries: PItemFactoryEntry, 
-                                callback_data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_item_factory_create_items".}
-proc delete_item*(ifactory: PItemFactory, path: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_delete_item".}
-proc delete_entry*(ifactory: PItemFactory, entry: PItemFactoryEntry){.
-    cdecl, dynlib: lib, importc: "gtk_item_factory_delete_entry".}
-proc delete_entries*(ifactory: PItemFactory, n_entries: guint, 
-                                  entries: PItemFactoryEntry){.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_delete_entries".}
-proc popup*(ifactory: PItemFactory, x: guint, y: guint, 
-                         mouse_button: guint, time: guint32){.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_popup".}
-proc popup*(ifactory: PItemFactory, popup_data: gpointer, 
-                                   destroy: TDestroyNotify, x: guint, y: guint, 
-                                   mouse_button: guint, time: guint32){.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_popup_with_data".}
-proc popup_data*(ifactory: PItemFactory): gpointer{.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_popup_data".}
-proc item_factory_popup_data_from_widget*(widget: PWidget): gpointer{.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_popup_data_from_widget".}
-proc set_translate_func*(ifactory: PItemFactory, 
-                                      fun: TTranslateFunc, data: gpointer, 
-                                      notify: TDestroyNotify){.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_set_translate_func".}
-proc TYPE_LAYOUT*(): GType
-proc LAYOUT*(obj: pointer): PLayout
-proc LAYOUT_CLASS*(klass: pointer): PLayoutClass
-proc IS_LAYOUT*(obj: pointer): bool
-proc IS_LAYOUT_CLASS*(klass: pointer): bool
-proc LAYOUT_GET_CLASS*(obj: pointer): PLayoutClass
-proc layout_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_layout_get_type".}
-proc layout_new*(hadjustment: PAdjustment, vadjustment: PAdjustment): PLayout{.
-    cdecl, dynlib: lib, importc: "gtk_layout_new".}
-proc put*(layout: PLayout, child_widget: PWidget, x: gint, y: gint){.
-    cdecl, dynlib: lib, importc: "gtk_layout_put".}
-proc move*(layout: PLayout, child_widget: PWidget, x: gint, y: gint){.
-    cdecl, dynlib: lib, importc: "gtk_layout_move".}
-proc set_size*(layout: PLayout, width: guint, height: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_layout_set_size".}
-proc get_size*(layout: PLayout, width: Pguint, height: Pguint){.cdecl, 
-    dynlib: lib, importc: "gtk_layout_get_size".}
-proc get_hadjustment*(layout: PLayout): PAdjustment{.cdecl, dynlib: lib, 
-    importc: "gtk_layout_get_hadjustment".}
-proc get_vadjustment*(layout: PLayout): PAdjustment{.cdecl, dynlib: lib, 
-    importc: "gtk_layout_get_vadjustment".}
-proc set_hadjustment*(layout: PLayout, adjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_layout_set_hadjustment".}
-proc set_vadjustment*(layout: PLayout, adjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_layout_set_vadjustment".}
-const 
-  bm_TGtkList_selection_mode* = 0x0003'i16
-  bp_TGtkList_selection_mode* = 0'i16
-  bm_TGtkList_drag_selection* = 0x0004'i16
-  bp_TGtkList_drag_selection* = 2'i16
-  bm_TGtkList_add_mode* = 0x0008'i16
-  bp_TGtkList_add_mode* = 3'i16
-
-proc TYPE_LIST*(): GType
-proc LIST*(obj: pointer): PList
-proc LIST_CLASS*(klass: pointer): PListClass
-proc IS_LIST*(obj: pointer): bool
-proc IS_LIST_CLASS*(klass: pointer): bool
-proc LIST_GET_CLASS*(obj: pointer): PListClass
-proc selection_mode*(a: PList): guint
-proc set_selection_mode*(a: PList, `selection_mode`: guint)
-proc drag_selection*(a: PList): guint
-proc set_drag_selection*(a: PList, `drag_selection`: guint)
-proc add_mode*(a: PList): guint
-proc set_add_mode*(a: PList, `add_mode`: guint)
-proc list_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_list_get_type".}
-proc list_new*(): PList{.cdecl, dynlib: lib, importc: "gtk_list_new".}
-proc insert_items*(list: PList, items: PGList, position: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_list_insert_items".}
-proc append_items*(list: PList, items: PGList){.cdecl, dynlib: lib, 
-    importc: "gtk_list_append_items".}
-proc prepend_items*(list: PList, items: PGList){.cdecl, dynlib: lib, 
-    importc: "gtk_list_prepend_items".}
-proc remove_items*(list: PList, items: PGList){.cdecl, dynlib: lib, 
-    importc: "gtk_list_remove_items".}
-proc remove_items_no_unref*(list: PList, items: PGList){.cdecl, 
-    dynlib: lib, importc: "gtk_list_remove_items_no_unref".}
-proc clear_items*(list: PList, start: gint, theEnd: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_list_clear_items".}
-proc select_item*(list: PList, item: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_list_select_item".}
-proc unselect_item*(list: PList, item: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_list_unselect_item".}
-proc select_child*(list: PList, child: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_list_select_child".}
-proc unselect_child*(list: PList, child: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_list_unselect_child".}
-proc child_position*(list: PList, child: PWidget): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_list_child_position".}
-proc set_selection_mode*(list: PList, mode: TSelectionMode){.cdecl, 
-    dynlib: lib, importc: "gtk_list_set_selection_mode".}
-proc extend_selection*(list: PList, scroll_type: TScrollType, 
-                            position: gfloat, auto_start_selection: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_list_extend_selection".}
-proc start_selection*(list: PList){.cdecl, dynlib: lib, 
-    importc: "gtk_list_start_selection".}
-proc end_selection*(list: PList){.cdecl, dynlib: lib, 
-                                       importc: "gtk_list_end_selection".}
-proc select_all*(list: PList){.cdecl, dynlib: lib, 
-                                    importc: "gtk_list_select_all".}
-proc unselect_all*(list: PList){.cdecl, dynlib: lib, 
-                                      importc: "gtk_list_unselect_all".}
-proc scroll_horizontal*(list: PList, scroll_type: TScrollType, 
-                             position: gfloat){.cdecl, dynlib: lib, 
-    importc: "gtk_list_scroll_horizontal".}
-proc scroll_vertical*(list: PList, scroll_type: TScrollType, 
-                           position: gfloat){.cdecl, dynlib: lib, 
-    importc: "gtk_list_scroll_vertical".}
-proc toggle_add_mode*(list: PList){.cdecl, dynlib: lib, 
-    importc: "gtk_list_toggle_add_mode".}
-proc toggle_focus_row*(list: PList){.cdecl, dynlib: lib, 
-    importc: "gtk_list_toggle_focus_row".}
-proc toggle_row*(list: PList, item: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_list_toggle_row".}
-proc undo_selection*(list: PList){.cdecl, dynlib: lib, 
-                                        importc: "gtk_list_undo_selection".}
-proc end_drag_selection*(list: PList){.cdecl, dynlib: lib, 
-    importc: "gtk_list_end_drag_selection".}
-const 
-  TREE_MODEL_ITERS_PERSIST* = 1 shl 0
-  TREE_MODEL_LIST_ONLY* = 1 shl 1
-
-proc TYPE_TREE_MODEL*(): GType
-proc TREE_MODEL*(obj: pointer): PTreeModel
-proc IS_TREE_MODEL*(obj: pointer): bool
-proc TREE_MODEL_GET_IFACE*(obj: pointer): PTreeModelIface
-proc TYPE_TREE_ITER*(): GType
-proc TYPE_TREE_PATH*(): GType
-proc tree_path_new*(): PTreePath{.cdecl, dynlib: lib, 
-                                  importc: "gtk_tree_path_new".}
-proc tree_path_new_from_string*(path: cstring): PTreePath{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_new_from_string".}
-proc to_string*(path: PTreePath): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_to_string".}
-proc tree_path_new_root*(): PTreePath
-proc tree_path_new_first*(): PTreePath{.cdecl, dynlib: lib, 
-                                        importc: "gtk_tree_path_new_first".}
-proc append_index*(path: PTreePath, index: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_append_index".}
-proc prepend_index*(path: PTreePath, index: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_prepend_index".}
-proc get_depth*(path: PTreePath): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_get_depth".}
-proc get_indices*(path: PTreePath): Pgint{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_get_indices".}
-proc free*(path: PTreePath){.cdecl, dynlib: lib, 
-                                       importc: "gtk_tree_path_free".}
-proc copy*(path: PTreePath): PTreePath{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_copy".}
-proc tree_path_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_tree_path_get_type".}
-proc compare*(a: PTreePath, b: PTreePath): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_compare".}
-proc next*(path: PTreePath){.cdecl, dynlib: lib, 
-                                       importc: "gtk_tree_path_next".}
-proc prev*(path: PTreePath): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_prev".}
-proc up*(path: PTreePath): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_up".}
-proc down*(path: PTreePath){.cdecl, dynlib: lib, 
-                                       importc: "gtk_tree_path_down".}
-proc is_ancestor*(path: PTreePath, descendant: PTreePath): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_path_is_ancestor".}
-proc is_descendant*(path: PTreePath, ancestor: PTreePath): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_path_is_descendant".}
-proc row_reference_new*(model: PTreeModel, path: PTreePath): PTreeRowReference{.
-    cdecl, dynlib: lib, importc: "gtk_tree_row_reference_new".}
-proc tree_row_reference_new_proxy*(proxy: PGObject, model: PTreeModel, 
-                                   path: PTreePath): PTreeRowReference{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_row_reference_new_proxy".}
-proc reference_get_path*(reference: PTreeRowReference): PTreePath{.
-    cdecl, dynlib: lib, importc: "gtk_tree_row_reference_get_path".}
-proc reference_valid*(reference: PTreeRowReference): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_row_reference_valid".}
-proc reference_free*(reference: PTreeRowReference){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_row_reference_free".}
-proc tree_row_reference_inserted*(proxy: PGObject, path: PTreePath){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_row_reference_inserted".}
-proc tree_row_reference_deleted*(proxy: PGObject, path: PTreePath){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_row_reference_deleted".}
-proc tree_row_reference_reordered*(proxy: PGObject, path: PTreePath, 
-                                   iter: PTreeIter, new_order: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_row_reference_reordered".}
-proc copy*(iter: PTreeIter): PTreeIter{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_iter_copy".}
-proc free*(iter: PTreeIter){.cdecl, dynlib: lib, 
-                                       importc: "gtk_tree_iter_free".}
-proc tree_iter_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_tree_iter_get_type".}
-proc tree_model_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_tree_model_get_type".}
-proc get_flags*(tree_model: PTreeModel): TTreeModelFlags{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_get_flags".}
-proc get_n_columns*(tree_model: PTreeModel): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_get_n_columns".}
-proc get_column_type*(tree_model: PTreeModel, index: gint): GType{.
-    cdecl, dynlib: lib, importc: "gtk_tree_model_get_column_type".}
-proc get_iter*(tree_model: PTreeModel, iter: PTreeIter, 
-                          path: PTreePath): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_get_iter".}
-proc get_iter_from_string*(tree_model: PTreeModel, iter: PTreeIter, 
-                                      path_string: cstring): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_get_iter_from_string".}
-proc get_iter_root*(tree_model: PTreeModel, iter: PTreeIter): gboolean
-proc get_iter_first*(tree_model: PTreeModel, iter: PTreeIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_model_get_iter_first".}
-proc get_path*(tree_model: PTreeModel, iter: PTreeIter): PTreePath{.
-    cdecl, dynlib: lib, importc: "gtk_tree_model_get_path".}
-proc get_value*(tree_model: PTreeModel, iter: PTreeIter, 
-                           column: gint, value: PGValue){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_get_value".}
-proc iter_next*(tree_model: PTreeModel, iter: PTreeIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_model_iter_next".}
-proc iter_children*(tree_model: PTreeModel, iter: PTreeIter, 
-                               parent: PTreeIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_iter_children".}
-proc iter_has_child*(tree_model: PTreeModel, iter: PTreeIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_model_iter_has_child".}
-proc iter_n_children*(tree_model: PTreeModel, iter: PTreeIter): gint{.
-    cdecl, dynlib: lib, importc: "gtk_tree_model_iter_n_children".}
-proc iter_nth_child*(tree_model: PTreeModel, iter: PTreeIter, 
-                                parent: PTreeIter, n: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_iter_nth_child".}
-proc iter_parent*(tree_model: PTreeModel, iter: PTreeIter, 
-                             child: PTreeIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_iter_parent".}
-proc get_string_from_iter*(tree_model: PTreeModel, iter: PTreeIter): 
-    cstring{.cdecl, dynlib: lib,
-             importc: "gtk_tree_model_get_string_from_iter".}
-proc ref_node*(tree_model: PTreeModel, iter: PTreeIter){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_ref_node".}
-proc unref_node*(tree_model: PTreeModel, iter: PTreeIter){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_unref_node".}
-proc foreach*(model: PTreeModel, fun: TTreeModelForeachFunc, 
-                         user_data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_foreach".}
-proc row_changed*(tree_model: PTreeModel, path: PTreePath, 
-                             iter: PTreeIter){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_row_changed".}
-proc row_inserted*(tree_model: PTreeModel, path: PTreePath, 
-                              iter: PTreeIter){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_row_inserted".}
-proc row_has_child_toggled*(tree_model: PTreeModel, path: PTreePath, 
-                                       iter: PTreeIter){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_row_has_child_toggled".}
-proc row_deleted*(tree_model: PTreeModel, path: PTreePath){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_row_deleted".}
-proc rows_reordered*(tree_model: PTreeModel, path: PTreePath, 
-                                iter: PTreeIter, new_order: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_rows_reordered".}
-const 
-  TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID* = - (1)
-
-proc TYPE_TREE_SORTABLE*(): GType
-proc TREE_SORTABLE*(obj: pointer): PTreeSortable
-proc TREE_SORTABLE_CLASS*(obj: pointer): PTreeSortableIface
-proc IS_TREE_SORTABLE*(obj: pointer): bool
-proc TREE_SORTABLE_GET_IFACE*(obj: pointer): PTreeSortableIface
-proc tree_sortable_get_type*(): GType{.cdecl, dynlib: lib, 
-                                       importc: "gtk_tree_sortable_get_type".}
-proc sort_column_changed*(sortable: PTreeSortable){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_sortable_sort_column_changed".}
-proc get_sort_column_id*(sortable: PTreeSortable, 
-                                       sort_column_id: Pgint, order: PSortType): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_sortable_get_sort_column_id".}
-proc set_sort_column_id*(sortable: PTreeSortable, 
-                                       sort_column_id: gint, order: TSortType){.
-    cdecl, dynlib: lib, importc: "gtk_tree_sortable_set_sort_column_id".}
-proc set_sort_func*(sortable: PTreeSortable, sort_column_id: gint, 
-                                  sort_func: TTreeIterCompareFunc, 
-                                  user_data: gpointer, destroy: TDestroyNotify){.
-    cdecl, dynlib: lib, importc: "gtk_tree_sortable_set_sort_func".}
-proc set_default_sort_func*(sortable: PTreeSortable, 
-    sort_func: TTreeIterCompareFunc, user_data: gpointer, 
-    destroy: TDestroyNotify){.cdecl, dynlib: lib, importc: "gtk_tree_sortable_set_default_sort_func".}
-proc has_default_sort_func*(sortable: PTreeSortable): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_sortable_has_default_sort_func".}
-proc TYPE_TREE_MODEL_SORT*(): GType
-proc TREE_MODEL_SORT*(obj: pointer): PTreeModelSort
-proc TREE_MODEL_SORT_CLASS*(klass: pointer): PTreeModelSortClass
-proc IS_TREE_MODEL_SORT*(obj: pointer): bool
-proc IS_TREE_MODEL_SORT_CLASS*(klass: pointer): bool
-proc TREE_MODEL_SORT_GET_CLASS*(obj: pointer): PTreeModelSortClass
-proc tree_model_sort_get_type*(): GType{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_sort_get_type".}
-proc sort_new*(child_model: PTreeModel): PTreeModel{.
-    cdecl, dynlib: lib, importc: "gtk_tree_model_sort_new_with_model".}
-proc sort_get_model*(tree_model: PTreeModelSort): PTreeModel{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_sort_get_model".}
-proc tree_model_sort_convert_child_path_to_path*(
-    tree_model_sort: PTreeModelSort, child_path: PTreePath): PTreePath{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_sort_convert_child_path_to_path".}
-proc tree_model_sort_convert_child_iter_to_iter*(
-    tree_model_sort: PTreeModelSort, sort_iter: PTreeIter, child_iter: PTreeIter){.
-    cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_sort_convert_child_iter_to_iter".}
-proc tree_model_sort_convert_path_to_child_path*(
-    tree_model_sort: PTreeModelSort, sorted_path: PTreePath): PTreePath{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_sort_convert_path_to_child_path".}
-proc tree_model_sort_convert_iter_to_child_iter*(
-    tree_model_sort: PTreeModelSort, child_iter: PTreeIter, 
-    sorted_iter: PTreeIter){.cdecl, dynlib: lib, importc: "gtk_tree_model_sort_convert_iter_to_child_iter".}
-proc sort_reset_default_sort_func*(tree_model_sort: PTreeModelSort){.
-    cdecl, dynlib: lib, importc: "gtk_tree_model_sort_reset_default_sort_func".}
-proc sort_clear_cache*(tree_model_sort: PTreeModelSort){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_sort_clear_cache".}
-const 
-  bm_TGtkListStore_columns_dirty* = 0x0001'i16
-  bp_TGtkListStore_columns_dirty* = 0'i16
-
-proc TYPE_LIST_STORE*(): GType
-proc LIST_STORE*(obj: pointer): PListStore
-proc LIST_STORE_CLASS*(klass: pointer): PListStoreClass
-proc IS_LIST_STORE*(obj: pointer): bool
-proc IS_LIST_STORE_CLASS*(klass: pointer): bool
-proc LIST_STORE_GET_CLASS*(obj: pointer): PListStoreClass
-proc columns_dirty*(a: PListStore): guint
-proc set_columns_dirty*(a: PListStore, `columns_dirty`: guint)
-proc list_store_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_list_store_get_type".}
-proc list_store_newv*(n_columns: gint, types: PGType): PListStore{.cdecl, 
-    dynlib: lib, importc: "gtk_list_store_newv".}
-proc set_column_types*(list_store: PListStore, n_columns: gint, 
-                                  types: PGType){.cdecl, dynlib: lib, 
-    importc: "gtk_list_store_set_column_types".}
-proc set_value*(list_store: PListStore, iter: PTreeIter, 
-                           column: gint, value: PGValue){.cdecl, dynlib: lib, 
-    importc: "gtk_list_store_set_value".}
-proc remove*(list_store: PListStore, iter: PTreeIter){.cdecl, 
-    dynlib: lib, importc: "gtk_list_store_remove".}
-proc insert*(list_store: PListStore, iter: PTreeIter, position: gint){.
-    cdecl, dynlib: lib, importc: "gtk_list_store_insert".}
-proc insert_before*(list_store: PListStore, iter: PTreeIter, 
-                               sibling: PTreeIter){.cdecl, dynlib: lib, 
-    importc: "gtk_list_store_insert_before".}
-proc insert_after*(list_store: PListStore, iter: PTreeIter, 
-                              sibling: PTreeIter){.cdecl, dynlib: lib, 
-    importc: "gtk_list_store_insert_after".}
-proc prepend*(list_store: PListStore, iter: PTreeIter){.cdecl, 
-    dynlib: lib, importc: "gtk_list_store_prepend".}
-proc append*(list_store: PListStore, iter: PTreeIter){.cdecl, 
-    dynlib: lib, importc: "gtk_list_store_append".}
-proc clear*(list_store: PListStore){.cdecl, dynlib: lib, 
-    importc: "gtk_list_store_clear".}
-when false: 
-  const 
-    PRIORITY_RESIZE* = G_PRIORITY_HIGH_IDLE + 10
-proc check_version*(required_major: guint, required_minor: guint, 
-                    required_micro: guint): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_check_version".}
-proc disable_setlocale*(){.cdecl, dynlib: lib, importc: "gtk_disable_setlocale".}
-proc set_locale*(): cstring{.cdecl, dynlib: lib, importc: "gtk_set_locale".}
-proc get_default_language*(): pango.PLanguage{.cdecl, dynlib: lib, 
-    importc: "gtk_get_default_language".}
-proc events_pending*(): gint{.cdecl, dynlib: lib, importc: "gtk_events_pending".}
-proc main_do_event*(event: gdk2.PEvent){.cdecl, dynlib: lib, 
-                                       importc: "gtk_main_do_event".}
-proc main*(){.cdecl, dynlib: lib, importc: "gtk_main".}
-proc init*(argc, argv: pointer){.cdecl, dynlib: lib, importc: "gtk_init".}
-proc main_level*(): guint{.cdecl, dynlib: lib, importc: "gtk_main_level".}
-proc main_quit*(){.cdecl, dynlib: lib, importc: "gtk_main_quit".}
-proc main_iteration*(): gboolean{.cdecl, dynlib: lib, 
-                                  importc: "gtk_main_iteration".}
-proc main_iteration_do*(blocking: gboolean): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_main_iteration_do".}
-proc gtkTrue*(): gboolean{.cdecl, dynlib: lib, importc: "gtk_true".}
-proc gtkFalse*(): gboolean{.cdecl, dynlib: lib, importc: "gtk_false".}
-proc grab_add*(widget: PWidget){.cdecl, dynlib: lib, importc: "gtk_grab_add".}
-proc grab_get_current*(): PWidget{.cdecl, dynlib: lib, 
-                                   importc: "gtk_grab_get_current".}
-proc grab_remove*(widget: PWidget){.cdecl, dynlib: lib, 
-                                    importc: "gtk_grab_remove".}
-proc init_add*(`function`: TFunction, data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_init_add".}
-proc quit_add_destroy*(main_level: guint, anObject: PObject){.cdecl, 
-    dynlib: lib, importc: "gtk_quit_add_destroy".}
-proc quit_add*(main_level: guint, `function`: TFunction, data: gpointer): guint{.
-    cdecl, dynlib: lib, importc: "gtk_quit_add".}
-proc quit_add_full*(main_level: guint, `function`: TFunction, 
-                    marshal: TCallbackMarshal, data: gpointer, 
-                    destroy: TDestroyNotify): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_quit_add_full".}
-proc quit_remove*(quit_handler_id: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_quit_remove".}
-proc quit_remove_by_data*(data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_quit_remove_by_data".}
-proc timeout_add*(interval: guint32, `function`: TFunction, data: gpointer): guint{.
-    cdecl, dynlib: lib, importc: "gtk_timeout_add".}
-proc timeout_add_full*(interval: guint32, `function`: TFunction, 
-                       marshal: TCallbackMarshal, data: gpointer, 
-                       destroy: TDestroyNotify): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_timeout_add_full".}
-proc timeout_remove*(timeout_handler_id: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_timeout_remove".}
-proc idle_add*(`function`: TFunction, data: gpointer): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_idle_add".}
-proc idle_add_priority*(priority: gint, `function`: TFunction, data: gpointer): guint{.
-    cdecl, dynlib: lib, importc: "gtk_idle_add_priority".}
-proc idle_add_full*(priority: gint, `function`: TFunction, 
-                    marshal: TCallbackMarshal, data: gpointer, 
-                    destroy: TDestroyNotify): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_idle_add_full".}
-proc idle_remove*(idle_handler_id: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_idle_remove".}
-proc idle_remove_by_data*(data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_idle_remove_by_data".}
-proc input_add_full*(source: gint, condition: gdk2.TInputCondition, 
-                     `function`: gdk2.TInputFunction, marshal: TCallbackMarshal, 
-                     data: gpointer, destroy: TDestroyNotify): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_input_add_full".}
-proc input_remove*(input_handler_id: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_input_remove".}
-proc key_snooper_install*(snooper: TKeySnoopFunc, func_data: gpointer): guint{.
-    cdecl, dynlib: lib, importc: "gtk_key_snooper_install".}
-proc key_snooper_remove*(snooper_handler_id: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_key_snooper_remove".}
-proc get_current_event*(): gdk2.PEvent{.cdecl, dynlib: lib, 
-                                      importc: "gtk_get_current_event".}
-proc get_current_event_time*(): guint32{.cdecl, dynlib: lib, 
-    importc: "gtk_get_current_event_time".}
-proc get_current_event_state*(state: gdk2.PModifierType): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_get_current_event_state".}
-proc get_event_widget*(event: gdk2.PEvent): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_get_event_widget".}
-proc propagate_event*(widget: PWidget, event: gdk2.PEvent){.cdecl, dynlib: lib, 
-    importc: "gtk_propagate_event".}
-proc boolean_handled_accumulator*(ihint: PGSignalInvocationHint, 
-                                  return_accu: PGValue, handler_return: PGValue, 
-                                  dummy: gpointer): gboolean{.cdecl, 
-    dynlib: lib, importc: "_gtk_boolean_handled_accumulator".}
-proc find_module*(name: cstring, thetype: cstring): cstring{.cdecl, dynlib: lib, 
-    importc: "_gtk_find_module".}
-proc get_module_path*(thetype: cstring): PPgchar{.cdecl, dynlib: lib, 
-    importc: "_gtk_get_module_path".}
-proc TYPE_MENU_BAR*(): GType
-proc MENU_BAR*(obj: pointer): PMenuBar
-proc MENU_BAR_CLASS*(klass: pointer): PMenuBarClass
-proc IS_MENU_BAR*(obj: pointer): bool
-proc IS_MENU_BAR_CLASS*(klass: pointer): bool
-proc MENU_BAR_GET_CLASS*(obj: pointer): PMenuBarClass
-proc menu_bar_get_type*(): TType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_menu_bar_get_type".}
-proc menu_bar_new*(): PMenuBar{.cdecl, dynlib: lib, importc: "gtk_menu_bar_new".}
-proc cycle_focus*(menubar: PMenuBar, dir: TDirectionType){.cdecl, 
-    dynlib: lib, importc: "_gtk_menu_bar_cycle_focus".}
-proc TYPE_MESSAGE_DIALOG*(): GType
-proc MESSAGE_DIALOG*(obj: pointer): PMessageDialog
-proc MESSAGE_DIALOG_CLASS*(klass: pointer): PMessageDialogClass
-proc IS_MESSAGE_DIALOG*(obj: pointer): bool
-proc IS_MESSAGE_DIALOG_CLASS*(klass: pointer): bool
-proc MESSAGE_DIALOG_GET_CLASS*(obj: pointer): PMessageDialogClass
-proc message_dialog_get_type*(): TType{.cdecl, dynlib: lib, 
-                                        importc: "gtk_message_dialog_get_type".}
-const 
-  bm_TGtkNotebook_show_tabs* = 0x0001'i16
-  bp_TGtkNotebook_show_tabs* = 0'i16
-  bm_TGtkNotebook_homogeneous* = 0x0002'i16
-  bp_TGtkNotebook_homogeneous* = 1'i16
-  bm_TGtkNotebook_show_border* = 0x0004'i16
-  bp_TGtkNotebook_show_border* = 2'i16
-  bm_TGtkNotebook_tab_pos* = 0x0018'i16
-  bp_TGtkNotebook_tab_pos* = 3'i16
-  bm_TGtkNotebook_scrollable* = 0x0020'i16
-  bp_TGtkNotebook_scrollable* = 5'i16
-  bm_TGtkNotebook_in_child* = 0x00C0'i16
-  bp_TGtkNotebook_in_child* = 6'i16
-  bm_TGtkNotebook_click_child* = 0x0300'i16
-  bp_TGtkNotebook_click_child* = 8'i16
-  bm_TGtkNotebook_button* = 0x0C00'i16
-  bp_TGtkNotebook_button* = 10'i16
-  bm_TGtkNotebook_need_timer* = 0x1000'i16
-  bp_TGtkNotebook_need_timer* = 12'i16
-  bm_TGtkNotebook_child_has_focus* = 0x2000'i16
-  bp_TGtkNotebook_child_has_focus* = 13'i16
-  bm_TGtkNotebook_have_visible_child* = 0x4000'i16
-  bp_TGtkNotebook_have_visible_child* = 14'i16
-  bm_TGtkNotebook_focus_out* = 0x8000'i16
-  bp_TGtkNotebook_focus_out* = 15'i16
-
-proc TYPE_NOTEBOOK*(): GType
-proc NOTEBOOK*(obj: pointer): PNotebook
-proc NOTEBOOK_CLASS*(klass: pointer): PNotebookClass
-proc IS_NOTEBOOK*(obj: pointer): bool
-proc IS_NOTEBOOK_CLASS*(klass: pointer): bool
-proc NOTEBOOK_GET_CLASS*(obj: pointer): PNotebookClass
-proc show_tabs*(a: PNotebook): guint
-proc set_show_tabs*(a: PNotebook, `show_tabs`: guint)
-proc homogeneous*(a: PNotebook): guint
-proc set_homogeneous*(a: PNotebook, `homogeneous`: guint)
-proc show_border*(a: PNotebook): guint
-proc set_show_border*(a: PNotebook, `show_border`: guint)
-proc tab_pos*(a: PNotebook): guint
-proc scrollable*(a: PNotebook): guint
-proc set_scrollable*(a: PNotebook, `scrollable`: guint)
-proc in_child*(a: PNotebook): guint
-proc set_in_child*(a: PNotebook, `in_child`: guint)
-proc click_child*(a: PNotebook): guint
-proc set_click_child*(a: PNotebook, `click_child`: guint)
-proc button*(a: PNotebook): guint
-proc set_button*(a: PNotebook, `button`: guint)
-proc need_timer*(a: PNotebook): guint
-proc set_need_timer*(a: PNotebook, `need_timer`: guint)
-proc child_has_focus*(a: PNotebook): guint
-proc set_child_has_focus*(a: PNotebook, `child_has_focus`: guint)
-proc have_visible_child*(a: PNotebook): guint
-proc set_have_visible_child*(a: PNotebook, `have_visible_child`: guint)
-proc focus_out*(a: PNotebook): guint
-proc set_focus_out*(a: PNotebook, `focus_out`: guint)
-proc notebook_get_type*(): TType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_notebook_get_type".}
-proc notebook_new*(): PNotebook{.cdecl, dynlib: lib, importc: "gtk_notebook_new".}
-proc append_page*(notebook: PNotebook, child: PWidget, 
-                           tab_label: PWidget): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_append_page".}
-proc append_page_menu*(notebook: PNotebook, child: PWidget, 
-                                tab_label: PWidget, menu_label: PWidget): gint{.
-    cdecl, dynlib: lib, importc: "gtk_notebook_append_page_menu".}
-proc prepend_page*(notebook: PNotebook, child: PWidget, 
-                            tab_label: PWidget): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_prepend_page".}
-proc prepend_page_menu*(notebook: PNotebook, child: PWidget, 
-                                 tab_label: PWidget, menu_label: PWidget): gint{.
-    cdecl, dynlib: lib, importc: "gtk_notebook_prepend_page_menu".}
-proc insert_page*(notebook: PNotebook, child: PWidget, 
-                           tab_label: PWidget, position: gint): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_insert_page".}
-proc insert_page_menu*(notebook: PNotebook, child: PWidget, 
-                                tab_label: PWidget, menu_label: PWidget, 
-                                position: gint): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_insert_page_menu".}
-proc remove_page*(notebook: PNotebook, page_num: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_remove_page".}
-proc get_current_page*(notebook: PNotebook): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_get_current_page".}
-proc get_n_pages*(notebook: PNotebook): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_get_n_pages".}
-proc get_nth_page*(notebook: PNotebook, page_num: gint): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_notebook_get_nth_page".}
-proc page_num*(notebook: PNotebook, child: PWidget): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_page_num".}
-proc set_current_page*(notebook: PNotebook, page_num: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_set_current_page".}
-proc next_page*(notebook: PNotebook){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_next_page".}
-proc prev_page*(notebook: PNotebook){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_prev_page".}
-proc set_show_border*(notebook: PNotebook, show_border: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_notebook_set_show_border".}
-proc get_show_border*(notebook: PNotebook): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_get_show_border".}
-proc set_show_tabs*(notebook: PNotebook, show_tabs: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_set_show_tabs".}
-proc get_show_tabs*(notebook: PNotebook): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_get_show_tabs".}
-#proc set_tab_pos*(notebook: PNotebook, pos: TPositionType){.cdecl, 
-#    dynlib: lib, importc: "gtk_notebook_set_tab_pos".}
-proc get_tab_pos*(notebook: PNotebook): TPositionType{.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_get_tab_pos".}
-proc set_scrollable*(notebook: PNotebook, scrollable: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_set_scrollable".}
-proc get_scrollable*(notebook: PNotebook): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_get_scrollable".}
-proc set_tab_reorderable*(notebook: PNotebook, child: PWidget, b: bool){.cdecl,
-    dynlib: lib, importc: "gtk_notebook_set_tab_reorderable".}
-proc get_tab_reorderable*(notebook: PNotebook, child: PWidget): bool {.cdecl,
-    dynlib: lib, importc: "gtk_notebook_get_tab_reorderable".}
-proc popup_enable*(notebook: PNotebook){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_popup_enable".}
-proc popup_disable*(notebook: PNotebook){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_popup_disable".}
-proc get_tab_label*(notebook: PNotebook, child: PWidget): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_notebook_get_tab_label".}
-proc set_tab_label*(notebook: PNotebook, child: PWidget, 
-                             tab_label: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_set_tab_label".}
-proc set_tab_label_text*(notebook: PNotebook, child: PWidget, 
-                                  tab_text: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_set_tab_label_text".}
-proc get_tab_label_text*(notebook: PNotebook, child: PWidget): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_notebook_get_tab_label_text".}
-proc get_menu_label*(notebook: PNotebook, child: PWidget): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_notebook_get_menu_label".}
-proc set_menu_label*(notebook: PNotebook, child: PWidget, 
-                              menu_label: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_set_menu_label".}
-proc set_menu_label_text*(notebook: PNotebook, child: PWidget, 
-                                   menu_text: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_set_menu_label_text".}
-proc get_menu_label_text*(notebook: PNotebook, child: PWidget): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_notebook_get_menu_label_text".}
-proc query_tab_label_packing*(notebook: PNotebook, child: PWidget, 
-                                       expand: Pgboolean, fill: Pgboolean, 
-                                       pack_type: PPackType){.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_query_tab_label_packing".}
-proc set_tab_label_packing*(notebook: PNotebook, child: PWidget, 
-                                     expand: gboolean, fill: gboolean, 
-                                     pack_type: TPackType){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_set_tab_label_packing".}
-proc reorder_child*(notebook: PNotebook, child: PWidget, position: gint){.
-    cdecl, dynlib: lib, importc: "gtk_notebook_reorder_child".}
-const 
-  bm_TGtkOldEditable_has_selection* = 0x0001'i16
-  bp_TGtkOldEditable_has_selection* = 0'i16
-  bm_TGtkOldEditable_editable* = 0x0002'i16
-  bp_TGtkOldEditable_editable* = 1'i16
-  bm_TGtkOldEditable_visible* = 0x0004'i16
-  bp_TGtkOldEditable_visible* = 2'i16
-
-proc TYPE_OLD_EDITABLE*(): GType
-proc OLD_EDITABLE*(obj: pointer): POldEditable
-proc OLD_EDITABLE_CLASS*(klass: pointer): POldEditableClass
-proc IS_OLD_EDITABLE*(obj: pointer): bool
-proc IS_OLD_EDITABLE_CLASS*(klass: pointer): bool
-proc OLD_EDITABLE_GET_CLASS*(obj: pointer): POldEditableClass
-proc has_selection*(a: POldEditable): guint
-proc set_has_selection*(a: POldEditable, `has_selection`: guint)
-proc editable*(a: POldEditable): guint
-proc set_editable*(a: POldEditable, `editable`: guint)
-proc visible*(a: POldEditable): guint
-proc set_visible*(a: POldEditable, `visible`: guint)
-proc old_editable_get_type*(): TType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_old_editable_get_type".}
-proc claim_selection*(old_editable: POldEditable, claim: gboolean, 
-                                   time: guint32){.cdecl, dynlib: lib, 
-    importc: "gtk_old_editable_claim_selection".}
-proc changed*(old_editable: POldEditable){.cdecl, dynlib: lib, 
-    importc: "gtk_old_editable_changed".}
-proc TYPE_OPTION_MENU*(): GType
-proc OPTION_MENU*(obj: pointer): POptionMenu
-proc OPTION_MENU_CLASS*(klass: pointer): POptionMenuClass
-proc IS_OPTION_MENU*(obj: pointer): bool
-proc IS_OPTION_MENU_CLASS*(klass: pointer): bool
-proc OPTION_MENU_GET_CLASS*(obj: pointer): POptionMenuClass
-proc option_menu_get_type*(): TType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_option_menu_get_type".}
-proc option_menu_new*(): POptionMenu{.cdecl, dynlib: lib, 
-                                      importc: "gtk_option_menu_new".}
-proc get_menu*(option_menu: POptionMenu): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_option_menu_get_menu".}
-proc set_menu*(option_menu: POptionMenu, menu: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_option_menu_set_menu".}
-proc remove_menu*(option_menu: POptionMenu){.cdecl, dynlib: lib, 
-    importc: "gtk_option_menu_remove_menu".}
-proc get_history*(option_menu: POptionMenu): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_option_menu_get_history".}
-proc set_history*(option_menu: POptionMenu, index: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_option_menu_set_history".}
-const 
-  bm_TGtkPixmap_build_insensitive* = 0x0001'i16
-  bp_TGtkPixmap_build_insensitive* = 0'i16
-
-proc TYPE_PIXMAP*(): GType
-proc PIXMAP*(obj: pointer): PPixmap
-proc PIXMAP_CLASS*(klass: pointer): PPixmapClass
-proc IS_PIXMAP*(obj: pointer): bool
-proc IS_PIXMAP_CLASS*(klass: pointer): bool
-proc PIXMAP_GET_CLASS*(obj: pointer): PPixmapClass
-proc build_insensitive*(a: PPixmap): guint
-proc set_build_insensitive*(a: PPixmap, `build_insensitive`: guint)
-proc pixmap_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_pixmap_get_type".}
-proc pixmap_new*(pixmap: gdk2.PPixmap, mask: gdk2.PBitmap): PPixmap{.cdecl, 
-    dynlib: lib, importc: "gtk_pixmap_new".}
-proc set*(pixmap: PPixmap, val: gdk2.PPixmap, mask: gdk2.PBitmap){.cdecl, 
-    dynlib: lib, importc: "gtk_pixmap_set".}
-proc get*(pixmap: PPixmap, val: var gdk2.PPixmap, mask: var gdk2.PBitmap){.
-    cdecl, dynlib: lib, importc: "gtk_pixmap_get".}
-proc set_build_insensitive*(pixmap: PPixmap, build: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_pixmap_set_build_insensitive".}
-const 
-  bm_TGtkPlug_same_app* = 0x0001'i16
-  bp_TGtkPlug_same_app* = 0'i16
-
-proc TYPE_PLUG*(): GType
-proc PLUG*(obj: pointer): PPlug
-proc PLUG_CLASS*(klass: pointer): PPlugClass
-proc IS_PLUG*(obj: pointer): bool
-proc IS_PLUG_CLASS*(klass: pointer): bool
-proc PLUG_GET_CLASS*(obj: pointer): PPlugClass
-proc same_app*(a: PPlug): guint
-proc set_same_app*(a: PPlug, `same_app`: guint)
-proc plug_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_plug_get_type".}
-proc construct_for_display*(plug: PPlug, display: gdk2.PDisplay, 
-                                 socket_id: gdk2.TNativeWindow){.cdecl, 
-    dynlib: lib, importc: "gtk_plug_construct_for_display".}
-proc plug_new_for_display*(display: gdk2.PDisplay, socket_id: gdk2.TNativeWindow): PPlug{.
-    cdecl, dynlib: lib, importc: "gtk_plug_new_for_display".}
-proc get_id*(plug: PPlug): gdk2.TNativeWindow{.cdecl, dynlib: lib, 
-    importc: "gtk_plug_get_id".}
-proc add_to_socket*(plug: PPlug, socket: PSocket){.cdecl, dynlib: lib, 
-    importc: "_gtk_plug_add_to_socket".}
-proc remove_from_socket*(plug: PPlug, socket: PSocket){.cdecl, dynlib: lib, 
-    importc: "_gtk_plug_remove_from_socket".}
-const 
-  bm_TGtkPreview_type* = 0x0001'i16
-  bp_TGtkPreview_type* = 0'i16
-  bm_TGtkPreview_expand* = 0x0002'i16
-  bp_TGtkPreview_expand* = 1'i16
-
-proc TYPE_PREVIEW*(): GType
-proc PREVIEW*(obj: pointer): PPreview
-proc PREVIEW_CLASS*(klass: pointer): PPreviewClass
-proc IS_PREVIEW*(obj: pointer): bool
-proc IS_PREVIEW_CLASS*(klass: pointer): bool
-proc PREVIEW_GET_CLASS*(obj: pointer): PPreviewClass
-proc get_type*(a: PPreview): guint
-proc set_type*(a: PPreview, `type`: guint)
-proc get_expand*(a: PPreview): guint
-proc set_expand*(a: PPreview, `expand`: guint)
-proc preview_get_type*(): TType{.cdecl, dynlib: lib, 
-                                 importc: "gtk_preview_get_type".}
-proc preview_uninit*(){.cdecl, dynlib: lib, importc: "gtk_preview_uninit".}
-proc preview_new*(thetype: TPreviewClass): PPreview{.cdecl, dynlib: lib, 
-    importc: "gtk_preview_new".}
-proc size*(preview: PPreview, width: gint, height: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_preview_size".}
-proc put*(preview: PPreview, window: gdk2.PWindow, gc: gdk2.PGC, srcx: gint, 
-                  srcy: gint, destx: gint, desty: gint, width: gint, 
-                  height: gint){.cdecl, dynlib: lib, importc: "gtk_preview_put".}
-proc draw_row*(preview: PPreview, data: Pguchar, x: gint, y: gint, 
-                       w: gint){.cdecl, dynlib: lib, 
-                                 importc: "gtk_preview_draw_row".}
-proc set_expand*(preview: PPreview, expand: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_preview_set_expand".}
-proc preview_set_gamma*(gamma: float64){.cdecl, dynlib: lib, 
-    importc: "gtk_preview_set_gamma".}
-proc preview_set_color_cube*(nred_shades: guint, ngreen_shades: guint, 
-                             nblue_shades: guint, ngray_shades: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_preview_set_color_cube".}
-proc preview_set_install_cmap*(install_cmap: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_preview_set_install_cmap".}
-proc preview_set_reserved*(nreserved: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_preview_set_reserved".}
-proc set_dither*(preview: PPreview, dither: gdk2.TRgbDither){.cdecl, 
-    dynlib: lib, importc: "gtk_preview_set_dither".}
-proc preview_get_info*(): PPreviewInfo{.cdecl, dynlib: lib, 
-                                        importc: "gtk_preview_get_info".}
-proc preview_reset*(){.cdecl, dynlib: lib, importc: "gtk_preview_reset".}
-const 
-  bm_TGtkProgress_show_text* = 0x0001'i16
-  bp_TGtkProgress_show_text* = 0'i16
-  bm_TGtkProgress_activity_mode* = 0x0002'i16
-  bp_TGtkProgress_activity_mode* = 1'i16
-  bm_TGtkProgress_use_text_format* = 0x0004'i16
-  bp_TGtkProgress_use_text_format* = 2'i16
-
-proc show_text*(a: PProgress): guint
-proc set_show_text*(a: PProgress, `show_text`: guint)
-proc activity_mode*(a: PProgress): guint
-proc set_activity_mode*(a: PProgress, `activity_mode`: guint)
-proc use_text_format*(a: PProgress): guint
-proc set_use_text_format*(a: PProgress, `use_text_format`: guint)
-const 
-  bm_TGtkProgressBar_activity_dir* = 0x0001'i16
-  bp_TGtkProgressBar_activity_dir* = 0'i16
-
-proc TYPE_PROGRESS_BAR*(): GType
-proc PROGRESS_BAR*(obj: pointer): PProgressBar
-proc PROGRESS_BAR_CLASS*(klass: pointer): PProgressBarClass
-proc IS_PROGRESS_BAR*(obj: pointer): bool
-proc IS_PROGRESS_BAR_CLASS*(klass: pointer): bool
-proc PROGRESS_BAR_GET_CLASS*(obj: pointer): PProgressBarClass
-proc activity_dir*(a: PProgressBar): guint
-proc set_activity_dir*(a: PProgressBar, `activity_dir`: guint)
-proc progress_bar_get_type*(): TType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_progress_bar_get_type".}
-proc progress_bar_new*(): PProgressBar{.cdecl, dynlib: lib, 
-                                        importc: "gtk_progress_bar_new".}
-proc pulse*(pbar: PProgressBar){.cdecl, dynlib: lib, 
-    importc: "gtk_progress_bar_pulse".}
-proc set_text*(pbar: PProgressBar, text: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_progress_bar_set_text".}
-proc set_fraction*(pbar: PProgressBar, fraction: gdouble){.cdecl, 
-    dynlib: lib, importc: "gtk_progress_bar_set_fraction".}
-proc set_pulse_step*(pbar: PProgressBar, fraction: gdouble){.cdecl, 
-    dynlib: lib, importc: "gtk_progress_bar_set_pulse_step".}
-proc set_orientation*(pbar: PProgressBar, 
-                                   orientation: TProgressBarOrientation){.cdecl, 
-    dynlib: lib, importc: "gtk_progress_bar_set_orientation".}
-proc get_text*(pbar: PProgressBar): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_progress_bar_get_text".}
-proc get_fraction*(pbar: PProgressBar): gdouble{.cdecl, 
-    dynlib: lib, importc: "gtk_progress_bar_get_fraction".}
-proc get_pulse_step*(pbar: PProgressBar): gdouble{.cdecl, 
-    dynlib: lib, importc: "gtk_progress_bar_get_pulse_step".}
-proc get_orientation*(pbar: PProgressBar): TProgressBarOrientation{.
-    cdecl, dynlib: lib, importc: "gtk_progress_bar_get_orientation".}
-proc TYPE_RADIO_BUTTON*(): GType
-proc RADIO_BUTTON*(obj: pointer): PRadioButton
-proc RADIO_BUTTON_CLASS*(klass: pointer): PRadioButtonClass
-proc IS_RADIO_BUTTON*(obj: pointer): bool
-proc IS_RADIO_BUTTON_CLASS*(klass: pointer): bool
-proc RADIO_BUTTON_GET_CLASS*(obj: pointer): PRadioButtonClass
-proc radio_button_get_type*(): TType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_radio_button_get_type".}
-proc radio_button_new*(group: PGSList): PRadioButton{.cdecl, dynlib: lib, 
-    importc: "gtk_radio_button_new".}
-proc new_from_widget*(group: PRadioButton): PRadioButton{.cdecl, 
-    dynlib: lib, importc: "gtk_radio_button_new_from_widget".}
-proc radio_button_new*(group: PGSList, `label`: cstring): PRadioButton{.
-    cdecl, dynlib: lib, importc: "gtk_radio_button_new_with_label".}
-proc radio_button_new_with_label_from_widget*(group: PRadioButton, 
-    `label`: cstring): PRadioButton{.cdecl, dynlib: lib, importc: "gtk_radio_button_new_with_label_from_widget".}
-proc radio_button_new_with_mnemonic*(group: PGSList, `label`: cstring): PRadioButton{.
-    cdecl, dynlib: lib, importc: "gtk_radio_button_new_with_mnemonic".}
-proc radio_button_new_with_mnemonic_from_widget*(group: PRadioButton, 
-    `label`: cstring): PRadioButton{.cdecl, dynlib: lib, importc: "gtk_radio_button_new_with_mnemonic_from_widget".}
-proc get_group*(radio_button: PRadioButton): PGSList{.cdecl, 
-    dynlib: lib, importc: "gtk_radio_button_get_group".}
-proc set_group*(radio_button: PRadioButton, group: PGSList){.cdecl, 
-    dynlib: lib, importc: "gtk_radio_button_set_group".}
-proc TYPE_RADIO_MENU_ITEM*(): GType
-proc RADIO_MENU_ITEM*(obj: pointer): PRadioMenuItem
-proc RADIO_MENU_ITEM_CLASS*(klass: pointer): PRadioMenuItemClass
-proc IS_RADIO_MENU_ITEM*(obj: pointer): bool
-proc IS_RADIO_MENU_ITEM_CLASS*(klass: pointer): bool
-proc RADIO_MENU_ITEM_GET_CLASS*(obj: pointer): PRadioMenuItemClass
-proc radio_menu_item_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_radio_menu_item_get_type".}
-proc radio_menu_item_new*(group: PGSList): PRadioMenuItem{.cdecl, dynlib: lib, 
-    importc: "gtk_radio_menu_item_new".}
-proc radio_menu_item_new*(group: PGSList, `label`: cstring): PRadioMenuItem{.
-    cdecl, dynlib: lib, importc: "gtk_radio_menu_item_new_with_label".}
-proc radio_menu_item_new_with_mnemonic*(group: PGSList, `label`: cstring): PRadioMenuItem{.
-    cdecl, dynlib: lib, importc: "gtk_radio_menu_item_new_with_mnemonic".}
-proc item_get_group*(radio_menu_item: PRadioMenuItem): PGSList{.
-    cdecl, dynlib: lib, importc: "gtk_radio_menu_item_get_group".}
-proc item_set_group*(radio_menu_item: PRadioMenuItem, group: PGSList){.
-    cdecl, dynlib: lib, importc: "gtk_radio_menu_item_set_group".}
-const 
-  bm_TGtkScrolledWindow_hscrollbar_policy* = 0x0003'i16
-  bp_TGtkScrolledWindow_hscrollbar_policy* = 0'i16
-  bm_TGtkScrolledWindow_vscrollbar_policy* = 0x000C'i16
-  bp_TGtkScrolledWindow_vscrollbar_policy* = 2'i16
-  bm_TGtkScrolledWindow_hscrollbar_visible* = 0x0010'i16
-  bp_TGtkScrolledWindow_hscrollbar_visible* = 4'i16
-  bm_TGtkScrolledWindow_vscrollbar_visible* = 0x0020'i16
-  bp_TGtkScrolledWindow_vscrollbar_visible* = 5'i16
-  bm_TGtkScrolledWindow_window_placement* = 0x00C0'i16
-  bp_TGtkScrolledWindow_window_placement* = 6'i16
-  bm_TGtkScrolledWindow_focus_out* = 0x0100'i16
-  bp_TGtkScrolledWindow_focus_out* = 8'i16
-
-proc TYPE_SCROLLED_WINDOW*(): GType
-proc SCROLLED_WINDOW*(obj: pointer): PScrolledWindow
-proc SCROLLED_WINDOW_CLASS*(klass: pointer): PScrolledWindowClass
-proc IS_SCROLLED_WINDOW*(obj: pointer): bool
-proc IS_SCROLLED_WINDOW_CLASS*(klass: pointer): bool
-proc SCROLLED_WINDOW_GET_CLASS*(obj: pointer): PScrolledWindowClass
-proc hscrollbar_policy*(a: PScrolledWindow): guint
-proc set_hscrollbar_policy*(a: PScrolledWindow, `hscrollbar_policy`: guint)
-proc vscrollbar_policy*(a: PScrolledWindow): guint
-proc set_vscrollbar_policy*(a: PScrolledWindow, `vscrollbar_policy`: guint)
-proc hscrollbar_visible*(a: PScrolledWindow): guint
-proc set_hscrollbar_visible*(a: PScrolledWindow, `hscrollbar_visible`: guint)
-proc vscrollbar_visible*(a: PScrolledWindow): guint
-proc set_vscrollbar_visible*(a: PScrolledWindow, `vscrollbar_visible`: guint)
-proc window_placement*(a: PScrolledWindow): guint
-proc set_window_placement*(a: PScrolledWindow, `window_placement`: guint)
-proc focus_out*(a: PScrolledWindow): guint
-proc set_focus_out*(a: PScrolledWindow, `focus_out`: guint)
-proc scrolled_window_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_scrolled_window_get_type".}
-proc scrolled_window_new*(hadjustment: PAdjustment, vadjustment: PAdjustment): PScrolledWindow{.
-    cdecl, dynlib: lib, importc: "gtk_scrolled_window_new".}
-proc set_hadjustment*(scrolled_window: PScrolledWindow, 
-                                      hadjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_scrolled_window_set_hadjustment".}
-proc set_vadjustment*(scrolled_window: PScrolledWindow, 
-                                      hadjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_scrolled_window_set_vadjustment".}
-proc get_hadjustment*(scrolled_window: PScrolledWindow): PAdjustment{.
-    cdecl, dynlib: lib, importc: "gtk_scrolled_window_get_hadjustment".}
-proc get_vadjustment*(scrolled_window: PScrolledWindow): PAdjustment{.
-    cdecl, dynlib: lib, importc: "gtk_scrolled_window_get_vadjustment".}
-proc set_policy*(scrolled_window: PScrolledWindow, 
-                                 hscrollbar_policy: TPolicyType, 
-                                 vscrollbar_policy: TPolicyType){.cdecl, 
-    dynlib: lib, importc: "gtk_scrolled_window_set_policy".}
-proc get_policy*(scrolled_window: PScrolledWindow, 
-                                 hscrollbar_policy: PPolicyType, 
-                                 vscrollbar_policy: PPolicyType){.cdecl, 
-    dynlib: lib, importc: "gtk_scrolled_window_get_policy".}
-proc set_placement*(scrolled_window: PScrolledWindow, 
-                                    window_placement: TCornerType){.cdecl, 
-    dynlib: lib, importc: "gtk_scrolled_window_set_placement".}
-proc get_placement*(scrolled_window: PScrolledWindow): TCornerType{.
-    cdecl, dynlib: lib, importc: "gtk_scrolled_window_get_placement".}
-proc set_shadow_type*(scrolled_window: PScrolledWindow, 
-                                      thetype: TShadowType){.cdecl, dynlib: lib, 
-    importc: "gtk_scrolled_window_set_shadow_type".}
-proc get_shadow_type*(scrolled_window: PScrolledWindow): TShadowType{.
-    cdecl, dynlib: lib, importc: "gtk_scrolled_window_get_shadow_type".}
-proc add_with_viewport*(scrolled_window: PScrolledWindow, 
-                                        child: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_scrolled_window_add_with_viewport".}
-proc TYPE_SELECTION_DATA*(): GType
-proc list_new*(targets: PTargetEntry, ntargets: guint): PTargetList{.
-    cdecl, dynlib: lib, importc: "gtk_target_list_new".}
-proc reference*(list: PTargetList){.cdecl, dynlib: lib, 
-    importc: "gtk_target_list_ref".}
-proc unref*(list: PTargetList){.cdecl, dynlib: lib, 
-    importc: "gtk_target_list_unref".}
-proc add*(list: PTargetList, target: gdk2.TAtom, flags: guint, 
-                      info: guint){.cdecl, dynlib: lib, 
-                                    importc: "gtk_target_list_add".}
-proc add_table*(list: PTargetList, targets: PTargetEntry, 
-                            ntargets: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_target_list_add_table".}
-proc remove*(list: PTargetList, target: gdk2.TAtom){.cdecl, 
-    dynlib: lib, importc: "gtk_target_list_remove".}
-proc find*(list: PTargetList, target: gdk2.TAtom, info: Pguint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_target_list_find".}
-proc selection_owner_set*(widget: PWidget, selection: gdk2.TAtom, time: guint32): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_selection_owner_set".}
-proc selection_owner_set_for_display*(display: gdk2.PDisplay, widget: PWidget, 
-                                      selection: gdk2.TAtom, time: guint32): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_selection_owner_set_for_display".}
-proc selection_add_target*(widget: PWidget, selection: gdk2.TAtom, 
-                           target: gdk2.TAtom, info: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_selection_add_target".}
-proc selection_add_targets*(widget: PWidget, selection: gdk2.TAtom, 
-                            targets: PTargetEntry, ntargets: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_selection_add_targets".}
-proc selection_clear_targets*(widget: PWidget, selection: gdk2.TAtom){.cdecl, 
-    dynlib: lib, importc: "gtk_selection_clear_targets".}
-proc selection_convert*(widget: PWidget, selection: gdk2.TAtom, target: gdk2.TAtom, 
-                        time: guint32): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_selection_convert".}
-proc set*(selection_data: PSelectionData, thetype: gdk2.TAtom, 
-                         format: gint, data: Pguchar, length: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_selection_data_set".}
-proc set_text*(selection_data: PSelectionData, str: cstring, 
-                              len: gint): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_selection_data_set_text".}
-proc get_text*(selection_data: PSelectionData): Pguchar{.cdecl, 
-    dynlib: lib, importc: "gtk_selection_data_get_text".}
-proc targets_include_text*(selection_data: PSelectionData): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_selection_data_targets_include_text".}
-proc selection_remove_all*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_selection_remove_all".}
-proc selection_clear*(widget: PWidget, event: gdk2.PEventSelection): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_selection_clear".}
-proc selection_request*(widget: PWidget, event: gdk2.PEventSelection): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_selection_request".}
-proc selection_incr_event*(window: gdk2.PWindow, event: gdk2.PEventProperty): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_selection_incr_event".}
-proc selection_notify*(widget: PWidget, event: gdk2.PEventSelection): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_selection_notify".}
-proc selection_property_notify*(widget: PWidget, event: gdk2.PEventProperty): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_selection_property_notify".}
-proc selection_data_get_type*(): GType{.cdecl, dynlib: lib, 
-                                        importc: "gtk_selection_data_get_type".}
-proc copy*(data: PSelectionData): PSelectionData{.cdecl, 
-    dynlib: lib, importc: "gtk_selection_data_copy".}
-proc free*(data: PSelectionData){.cdecl, dynlib: lib, 
-    importc: "gtk_selection_data_free".}
-proc TYPE_SEPARATOR_MENU_ITEM*(): GType
-proc SEPARATOR_MENU_ITEM*(obj: pointer): PSeparatorMenuItem
-proc SEPARATOR_MENU_ITEM_CLASS*(klass: pointer): PSeparatorMenuItemClass
-proc IS_SEPARATOR_MENU_ITEM*(obj: pointer): bool
-proc IS_SEPARATOR_MENU_ITEM_CLASS*(klass: pointer): bool
-proc SEPARATOR_MENU_ITEM_GET_CLASS*(obj: pointer): PSeparatorMenuItemClass
-proc separator_menu_item_get_type*(): GType{.cdecl, dynlib: lib, 
-    importc: "gtk_separator_menu_item_get_type".}
-proc separator_menu_item_new*(): PSeparatorMenuItem{.cdecl, dynlib: lib, 
-    importc: "gtk_separator_menu_item_new".}
-const 
-  bm_TGtkSizeGroup_have_width* = 0x0001'i16
-  bp_TGtkSizeGroup_have_width* = 0'i16
-  bm_TGtkSizeGroup_have_height* = 0x0002'i16
-  bp_TGtkSizeGroup_have_height* = 1'i16
-
-proc TYPE_SIZE_GROUP*(): GType
-proc SIZE_GROUP*(obj: pointer): PSizeGroup
-proc SIZE_GROUP_CLASS*(klass: pointer): PSizeGroupClass
-proc IS_SIZE_GROUP*(obj: pointer): bool
-proc IS_SIZE_GROUP_CLASS*(klass: pointer): bool
-proc SIZE_GROUP_GET_CLASS*(obj: pointer): PSizeGroupClass
-proc have_width*(a: PSizeGroup): guint
-proc set_have_width*(a: PSizeGroup, `have_width`: guint)
-proc have_height*(a: PSizeGroup): guint
-proc set_have_height*(a: PSizeGroup, `have_height`: guint)
-proc size_group_get_type*(): GType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_size_group_get_type".}
-proc size_group_new*(mode: TSizeGroupMode): PSizeGroup{.cdecl, dynlib: lib, 
-    importc: "gtk_size_group_new".}
-proc set_mode*(size_group: PSizeGroup, mode: TSizeGroupMode){.cdecl, 
-    dynlib: lib, importc: "gtk_size_group_set_mode".}
-proc get_mode*(size_group: PSizeGroup): TSizeGroupMode{.cdecl, 
-    dynlib: lib, importc: "gtk_size_group_get_mode".}
-proc add_widget*(size_group: PSizeGroup, widget: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_size_group_add_widget".}
-proc remove_widget*(size_group: PSizeGroup, widget: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_size_group_remove_widget".}
-proc size_group_get_child_requisition*(widget: PWidget, 
-                                       requisition: PRequisition){.cdecl, 
-    dynlib: lib, importc: "_gtk_size_group_get_child_requisition".}
-proc size_group_compute_requisition*(widget: PWidget, requisition: PRequisition){.
-    cdecl, dynlib: lib, importc: "_gtk_size_group_compute_requisition".}
-proc size_group_queue_resize*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "_gtk_size_group_queue_resize".}
-const 
-  bm_TGtkSocket_same_app* = 0x0001'i16
-  bp_TGtkSocket_same_app* = 0'i16
-  bm_TGtkSocket_focus_in* = 0x0002'i16
-  bp_TGtkSocket_focus_in* = 1'i16
-  bm_TGtkSocket_have_size* = 0x0004'i16
-  bp_TGtkSocket_have_size* = 2'i16
-  bm_TGtkSocket_need_map* = 0x0008'i16
-  bp_TGtkSocket_need_map* = 3'i16
-  bm_TGtkSocket_is_mapped* = 0x0010'i16
-  bp_TGtkSocket_is_mapped* = 4'i16
-
-proc TYPE_SOCKET*(): GType
-proc SOCKET*(obj: pointer): PSocket
-proc SOCKET_CLASS*(klass: pointer): PSocketClass
-proc IS_SOCKET*(obj: pointer): bool
-proc IS_SOCKET_CLASS*(klass: pointer): bool
-proc SOCKET_GET_CLASS*(obj: pointer): PSocketClass
-proc same_app*(a: PSocket): guint
-proc set_same_app*(a: PSocket, `same_app`: guint)
-proc focus_in*(a: PSocket): guint
-proc set_focus_in*(a: PSocket, `focus_in`: guint)
-proc have_size*(a: PSocket): guint
-proc set_have_size*(a: PSocket, `have_size`: guint)
-proc need_map*(a: PSocket): guint
-proc set_need_map*(a: PSocket, `need_map`: guint)
-proc is_mapped*(a: PSocket): guint
-proc set_is_mapped*(a: PSocket, `is_mapped`: guint)
-proc socket_new*(): PSocket{.cdecl, dynlib: lib, importc: "gtk_socket_new".}
-proc socket_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_socket_get_type".}
-proc add_id*(socket: PSocket, window_id: gdk2.TNativeWindow){.cdecl, 
-    dynlib: lib, importc: "gtk_socket_add_id".}
-proc get_id*(socket: PSocket): gdk2.TNativeWindow{.cdecl, dynlib: lib, 
-    importc: "gtk_socket_get_id".}
-const 
-  INPUT_ERROR* = - (1)
-  bm_TGtkSpinButton_in_child* = 0x00000003'i32
-  bp_TGtkSpinButton_in_child* = 0'i32
-  bm_TGtkSpinButton_click_child* = 0x0000000C'i32
-  bp_TGtkSpinButton_click_child* = 2'i32
-  bm_TGtkSpinButton_button* = 0x00000030'i32
-  bp_TGtkSpinButton_button* = 4'i32
-  bm_TGtkSpinButton_need_timer* = 0x00000040'i32
-  bp_TGtkSpinButton_need_timer* = 6'i32
-  bm_TGtkSpinButton_timer_calls* = 0x00000380'i32
-  bp_TGtkSpinButton_timer_calls* = 7'i32
-  bm_TGtkSpinButton_digits* = 0x000FFC00'i32
-  bp_TGtkSpinButton_digits* = 10'i32
-  bm_TGtkSpinButton_numeric* = 0x00100000'i32
-  bp_TGtkSpinButton_numeric* = 20'i32
-  bm_TGtkSpinButton_wrap* = 0x00200000'i32
-  bp_TGtkSpinButton_wrap* = 21'i32
-  bm_TGtkSpinButton_snap_to_ticks* = 0x00400000'i32
-  bp_TGtkSpinButton_snap_to_ticks* = 22'i32
-
-proc TYPE_SPIN_BUTTON*(): GType
-proc SPIN_BUTTON*(obj: pointer): PSpinButton
-proc SPIN_BUTTON_CLASS*(klass: pointer): PSpinButtonClass
-proc IS_SPIN_BUTTON*(obj: pointer): bool
-proc IS_SPIN_BUTTON_CLASS*(klass: pointer): bool
-proc SPIN_BUTTON_GET_CLASS*(obj: pointer): PSpinButtonClass
-proc in_child*(a: PSpinButton): guint
-proc set_in_child*(a: PSpinButton, `in_child`: guint)
-proc click_child*(a: PSpinButton): guint
-proc set_click_child*(a: PSpinButton, `click_child`: guint)
-proc button*(a: PSpinButton): guint
-proc set_button*(a: PSpinButton, `button`: guint)
-proc need_timer*(a: PSpinButton): guint
-proc set_need_timer*(a: PSpinButton, `need_timer`: guint)
-proc timer_calls*(a: PSpinButton): guint
-proc set_timer_calls*(a: PSpinButton, `timer_calls`: guint)
-proc digits*(a: PSpinButton): guint
-proc set_digits*(a: PSpinButton, `digits`: guint)
-proc numeric*(a: PSpinButton): guint
-proc set_numeric*(a: PSpinButton, `numeric`: guint)
-proc wrap*(a: PSpinButton): guint
-proc set_wrap*(a: PSpinButton, `wrap`: guint)
-proc snap_to_ticks*(a: PSpinButton): guint
-proc set_snap_to_ticks*(a: PSpinButton, `snap_to_ticks`: guint)
-proc spin_button_get_type*(): TType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_spin_button_get_type".}
-proc configure*(spin_button: PSpinButton, adjustment: PAdjustment, 
-                            climb_rate: gdouble, digits: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_configure".}
-proc spin_button_new*(adjustment: PAdjustment, climb_rate: gdouble, 
-                      digits: guint): PSpinButton{.cdecl, dynlib: lib, 
-    importc: "gtk_spin_button_new".}
-proc spin_button_new*(min: gdouble, max: gdouble, step: gdouble): PSpinButton{.
-    cdecl, dynlib: lib, importc: "gtk_spin_button_new_with_range".}
-proc set_adjustment*(spin_button: PSpinButton, 
-                                 adjustment: PAdjustment){.cdecl, dynlib: lib, 
-    importc: "gtk_spin_button_set_adjustment".}
-proc get_adjustment*(spin_button: PSpinButton): PAdjustment{.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_get_adjustment".}
-proc set_digits*(spin_button: PSpinButton, digits: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_set_digits".}
-proc get_digits*(spin_button: PSpinButton): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_get_digits".}
-proc set_increments*(spin_button: PSpinButton, step: gdouble, 
-                                 page: gdouble){.cdecl, dynlib: lib, 
-    importc: "gtk_spin_button_set_increments".}
-proc get_increments*(spin_button: PSpinButton, step: Pgdouble, 
-                                 page: Pgdouble){.cdecl, dynlib: lib, 
-    importc: "gtk_spin_button_get_increments".}
-proc set_range*(spin_button: PSpinButton, min: gdouble, max: gdouble){.
-    cdecl, dynlib: lib, importc: "gtk_spin_button_set_range".}
-proc get_range*(spin_button: PSpinButton, min: Pgdouble, 
-                            max: Pgdouble){.cdecl, dynlib: lib, 
-    importc: "gtk_spin_button_get_range".}
-proc get_value*(spin_button: PSpinButton): gdouble{.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_get_value".}
-proc get_value_as_int*(spin_button: PSpinButton): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_get_value_as_int".}
-proc set_value*(spin_button: PSpinButton, value: gdouble){.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_set_value".}
-proc set_update_policy*(spin_button: PSpinButton, 
-                                    policy: TSpinButtonUpdatePolicy){.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_set_update_policy".}
-proc get_update_policy*(spin_button: PSpinButton): TSpinButtonUpdatePolicy{.
-    cdecl, dynlib: lib, importc: "gtk_spin_button_get_update_policy".}
-proc set_numeric*(spin_button: PSpinButton, numeric: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_spin_button_set_numeric".}
-proc get_numeric*(spin_button: PSpinButton): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_get_numeric".}
-proc spin*(spin_button: PSpinButton, direction: TSpinType, 
-                       increment: gdouble){.cdecl, dynlib: lib, 
-    importc: "gtk_spin_button_spin".}
-proc set_wrap*(spin_button: PSpinButton, wrap: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_set_wrap".}
-proc get_wrap*(spin_button: PSpinButton): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_get_wrap".}
-proc set_snap_to_ticks*(spin_button: PSpinButton, 
-                                    snap_to_ticks: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_set_snap_to_ticks".}
-proc get_snap_to_ticks*(spin_button: PSpinButton): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_get_snap_to_ticks".}
-proc update*(spin_button: PSpinButton){.cdecl, dynlib: lib, 
-    importc: "gtk_spin_button_update".}
-const 
-  STOCK_DIALOG_INFO* = "gtk-dialog-info"
-  STOCK_DIALOG_WARNING* = "gtk-dialog-warning"
-  STOCK_DIALOG_ERROR* = "gtk-dialog-error"
-  STOCK_DIALOG_QUESTION* = "gtk-dialog-question"
-  STOCK_DND* = "gtk-dnd"
-  STOCK_DND_MULTIPLE* = "gtk-dnd-multiple"
-  STOCK_ABOUT* = "gtk-about"
-  STOCK_ADD_name* = "gtk-add"
-  STOCK_APPLY* = "gtk-apply"
-  STOCK_BOLD* = "gtk-bold"
-  STOCK_CANCEL* = "gtk-cancel"
-  STOCK_CDROM* = "gtk-cdrom"
-  STOCK_CLEAR* = "gtk-clear"
-  STOCK_CLOSE* = "gtk-close"
-  STOCK_COLOR_PICKER* = "gtk-color-picker"
-  STOCK_CONVERT* = "gtk-convert"
-  STOCK_CONNECT* = "gtk-connect"
-  STOCK_COPY* = "gtk-copy"
-  STOCK_CUT* = "gtk-cut"
-  STOCK_DELETE* = "gtk-delete"
-  STOCK_EDIT* = "gtk-edit"
-  STOCK_EXECUTE* = "gtk-execute"
-  STOCK_FIND* = "gtk-find"
-  STOCK_FIND_AND_REPLACE* = "gtk-find-and-replace"
-  STOCK_FLOPPY* = "gtk-floppy"
-  STOCK_GOTO_BOTTOM* = "gtk-goto-bottom"
-  STOCK_GOTO_FIRST* = "gtk-goto-first"
-  STOCK_GOTO_LAST* = "gtk-goto-last"
-  STOCK_GOTO_TOP* = "gtk-goto-top"
-  STOCK_GO_BACK* = "gtk-go-back"
-  STOCK_GO_DOWN* = "gtk-go-down"
-  STOCK_GO_FORWARD* = "gtk-go-forward"
-  STOCK_GO_UP* = "gtk-go-up"
-  STOCK_HELP* = "gtk-help"
-  STOCK_HOME* = "gtk-home"
-  STOCK_INDEX* = "gtk-index"
-  STOCK_ITALIC* = "gtk-italic"
-  STOCK_JUMP_TO* = "gtk-jump-to"
-  STOCK_JUSTIFY_CENTER* = "gtk-justify-center"
-  STOCK_JUSTIFY_FILL* = "gtk-justify-fill"
-  STOCK_JUSTIFY_LEFT* = "gtk-justify-left"
-  STOCK_JUSTIFY_RIGHT* = "gtk-justify-right"
-  STOCK_MEDIA_FORWARD* = "gtk-media-forward"
-  STOCK_MEDIA_NEXT* = "gtk-media-next"
-  STOCK_MEDIA_PAUSE* = "gtk-media-pause"
-  STOCK_MEDIA_PLAY* = "gtk-media-play"
-  STOCK_MEDIA_PREVIOUS* = "gtk-media-previous"
-  STOCK_MEDIA_RECORD* = "gtk-media-record"
-  STOCK_MEDIA_REWIND* = "gtk-media-rewind"
-  STOCK_MEDIA_STOP* = "gtk-media-stop"
-  STOCK_MISSING_IMAGE* = "gtk-missing-image"
-  STOCK_NEW* = "gtk-new"
-  STOCK_NO* = "gtk-no"
-  STOCK_OK* = "gtk-ok"
-  STOCK_OPEN* = "gtk-open"
-  STOCK_PASTE* = "gtk-paste"
-  STOCK_PREFERENCES* = "gtk-preferences"
-  STOCK_PRINT* = "gtk-print"
-  STOCK_PRINT_PREVIEW* = "gtk-print-preview"
-  STOCK_PROPERTIES* = "gtk-properties"
-  STOCK_QUIT* = "gtk-quit"
-  STOCK_REDO* = "gtk-redo"
-  STOCK_REFRESH* = "gtk-refresh"
-  STOCK_REMOVE* = "gtk-remove"
-  STOCK_REVERT_TO_SAVED* = "gtk-revert-to-saved"
-  STOCK_SAVE* = "gtk-save"
-  STOCK_SAVE_AS* = "gtk-save-as"
-  STOCK_SELECT_COLOR* = "gtk-select-color"
-  STOCK_SELECT_FONT* = "gtk-select-font"
-  STOCK_SORT_ASCENDING* = "gtk-sort-ascending"
-  STOCK_SORT_DESCENDING* = "gtk-sort-descending"
-  STOCK_SPELL_CHECK* = "gtk-spell-check"
-  STOCK_STOP* = "gtk-stop"
-  STOCK_STRIKETHROUGH* = "gtk-strikethrough"
-  STOCK_UNDELETE* = "gtk-undelete"
-  STOCK_UNDERLINE* = "gtk-underline"
-  STOCK_UNDO* = "gtk-undo"
-  STOCK_YES* = "gtk-yes"
-  STOCK_ZOOM_100* = "gtk-zoom-100"
-  STOCK_ZOOM_FIT* = "gtk-zoom-fit"
-  STOCK_ZOOM_IN* = "gtk-zoom-in"
-  STOCK_ZOOM_OUT* = "gtk-zoom-out"
-
-proc add*(items: PStockItem, n_items: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_stock_add".}
-proc add_static*(items: PStockItem, n_items: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_stock_add_static".}
-proc stock_lookup*(stock_id: cstring, item: PStockItem): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_stock_lookup".}
-proc stock_list_ids*(): PGSList{.cdecl, dynlib: lib, 
-                                 importc: "gtk_stock_list_ids".}
-proc copy*(item: PStockItem): PStockItem{.cdecl, dynlib: lib, 
-    importc: "gtk_stock_item_copy".}
-proc free*(item: PStockItem){.cdecl, dynlib: lib, 
-    importc: "gtk_stock_item_free".}
-proc TYPE_STATUSBAR*(): GType
-proc STATUSBAR*(obj: pointer): PStatusbar
-proc STATUSBAR_CLASS*(klass: pointer): PStatusbarClass
-proc IS_STATUSBAR*(obj: pointer): bool
-proc IS_STATUSBAR_CLASS*(klass: pointer): bool
-proc STATUSBAR_GET_CLASS*(obj: pointer): PStatusbarClass
-const 
-  bm_TGtkStatusbar_has_resize_grip* = 0x0001'i16
-  bp_TGtkStatusbar_has_resize_grip* = 0'i16
-
-proc has_resize_grip*(a: PStatusbar): guint
-proc set_has_resize_grip*(a: PStatusbar, `has_resize_grip`: guint)
-proc statusbar_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_statusbar_get_type".}
-proc statusbar_new*(): PStatusbar{.cdecl, dynlib: lib, 
-                                   importc: "gtk_statusbar_new".}
-proc get_context_id*(statusbar: PStatusbar, 
-                               context_description: cstring): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_statusbar_get_context_id".}
-proc push*(statusbar: PStatusbar, context_id: guint, text: cstring): guint{.
-    cdecl, dynlib: lib, importc: "gtk_statusbar_push".}
-proc pop*(statusbar: PStatusbar, context_id: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_statusbar_pop".}
-proc remove*(statusbar: PStatusbar, context_id: guint, 
-                       message_id: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_statusbar_remove".}
-proc set_has_resize_grip*(statusbar: PStatusbar, setting: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_statusbar_set_has_resize_grip".}
-proc get_has_resize_grip*(statusbar: PStatusbar): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_statusbar_get_has_resize_grip".}
-const 
-  bm_TGtkTable_homogeneous* = 0x0001'i16
-  bp_TGtkTable_homogeneous* = 0'i16
-  bm_TGtkTableChild_xexpand* = 0x0001'i16
-  bp_TGtkTableChild_xexpand* = 0'i16
-  bm_TGtkTableChild_yexpand* = 0x0002'i16
-  bp_TGtkTableChild_yexpand* = 1'i16
-  bm_TGtkTableChild_xshrink* = 0x0004'i16
-  bp_TGtkTableChild_xshrink* = 2'i16
-  bm_TGtkTableChild_yshrink* = 0x0008'i16
-  bp_TGtkTableChild_yshrink* = 3'i16
-  bm_TGtkTableChild_xfill* = 0x0010'i16
-  bp_TGtkTableChild_xfill* = 4'i16
-  bm_TGtkTableChild_yfill* = 0x0020'i16
-  bp_TGtkTableChild_yfill* = 5'i16
-  bm_TGtkTableRowCol_need_expand* = 0x0001'i16
-  bp_TGtkTableRowCol_need_expand* = 0'i16
-  bm_TGtkTableRowCol_need_shrink* = 0x0002'i16
-  bp_TGtkTableRowCol_need_shrink* = 1'i16
-  bm_TGtkTableRowCol_expand* = 0x0004'i16
-  bp_TGtkTableRowCol_expand* = 2'i16
-  bm_TGtkTableRowCol_shrink* = 0x0008'i16
-  bp_TGtkTableRowCol_shrink* = 3'i16
-  bm_TGtkTableRowCol_empty* = 0x0010'i16
-  bp_TGtkTableRowCol_empty* = 4'i16
-
-proc TYPE_TABLE*(): GType
-proc TABLE*(obj: pointer): PTable
-proc TABLE_CLASS*(klass: pointer): PTableClass
-proc IS_TABLE*(obj: pointer): bool
-proc IS_TABLE_CLASS*(klass: pointer): bool
-proc TABLE_GET_CLASS*(obj: pointer): PTableClass
-proc homogeneous*(a: PTable): guint
-proc set_homogeneous*(a: PTable, `homogeneous`: guint)
-proc xexpand*(a: PTableChild): guint
-proc set_xexpand*(a: PTableChild, `xexpand`: guint)
-proc yexpand*(a: PTableChild): guint
-proc set_yexpand*(a: PTableChild, `yexpand`: guint)
-proc xshrink*(a: PTableChild): guint
-proc set_xshrink*(a: PTableChild, `xshrink`: guint)
-proc yshrink*(a: PTableChild): guint
-proc set_yshrink*(a: PTableChild, `yshrink`: guint)
-proc xfill*(a: PTableChild): guint
-proc set_xfill*(a: PTableChild, `xfill`: guint)
-proc yfill*(a: PTableChild): guint
-proc set_yfill*(a: PTableChild, `yfill`: guint)
-proc need_expand*(a: PTableRowCol): guint
-proc set_need_expand*(a: PTableRowCol, `need_expand`: guint)
-proc need_shrink*(a: PTableRowCol): guint
-proc set_need_shrink*(a: PTableRowCol, `need_shrink`: guint)
-proc expand*(a: PTableRowCol): guint
-proc set_expand*(a: PTableRowCol, `expand`: guint)
-proc shrink*(a: PTableRowCol): guint
-proc set_shrink*(a: PTableRowCol, `shrink`: guint)
-proc empty*(a: PTableRowCol): guint
-proc set_empty*(a: PTableRowCol, `empty`: guint)
-proc table_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_table_get_type".}
-proc table_new*(rows: guint, columns: guint, homogeneous: gboolean): PTable{.
-    cdecl, dynlib: lib, importc: "gtk_table_new".}
-proc resize*(table: PTable, rows: guint, columns: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_table_resize".}
-proc attach*(table: PTable, child: PWidget, left_attach: guint, 
-                   right_attach: guint, top_attach: guint, bottom_attach: guint, 
-                   xoptions: TAttachOptions, yoptions: TAttachOptions, 
-                   xpadding: guint, ypadding: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_table_attach".}
-proc attach_defaults*(table: PTable, widget: PWidget, left_attach: guint, 
-                            right_attach: guint, top_attach: guint, 
-                            bottom_attach: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_table_attach_defaults".}
-proc set_row_spacing*(table: PTable, row: guint, spacing: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_table_set_row_spacing".}
-proc get_row_spacing*(table: PTable, row: guint): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_table_get_row_spacing".}
-proc set_col_spacing*(table: PTable, column: guint, spacing: guint){.
-    cdecl, dynlib: lib, importc: "gtk_table_set_col_spacing".}
-proc get_col_spacing*(table: PTable, column: guint): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_table_get_col_spacing".}
-proc set_row_spacings*(table: PTable, spacing: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_table_set_row_spacings".}
-proc get_default_row_spacing*(table: PTable): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_table_get_default_row_spacing".}
-proc set_col_spacings*(table: PTable, spacing: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_table_set_col_spacings".}
-proc get_default_col_spacing*(table: PTable): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_table_get_default_col_spacing".}
-proc set_homogeneous*(table: PTable, homogeneous: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_table_set_homogeneous".}
-proc get_homogeneous*(table: PTable): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_table_get_homogeneous".}
-const 
-  bm_TGtkTearoffMenuItem_torn_off* = 0x0001'i16
-  bp_TGtkTearoffMenuItem_torn_off* = 0'i16
-
-proc TYPE_TEAROFF_MENU_ITEM*(): GType
-proc TEAROFF_MENU_ITEM*(obj: pointer): PTearoffMenuItem
-proc TEAROFF_MENU_ITEM_CLASS*(klass: pointer): PTearoffMenuItemClass
-proc IS_TEAROFF_MENU_ITEM*(obj: pointer): bool
-proc IS_TEAROFF_MENU_ITEM_CLASS*(klass: pointer): bool
-proc TEAROFF_MENU_ITEM_GET_CLASS*(obj: pointer): PTearoffMenuItemClass
-proc torn_off*(a: PTearoffMenuItem): guint
-proc set_torn_off*(a: PTearoffMenuItem, `torn_off`: guint)
-proc tearoff_menu_item_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_tearoff_menu_item_get_type".}
-proc tearoff_menu_item_new*(): PTearoffMenuItem{.cdecl, dynlib: lib, 
-    importc: "gtk_tearoff_menu_item_new".}
-const 
-  bm_TGtkText_line_wrap* = 0x0001'i16
-  bp_TGtkText_line_wrap* = 0'i16
-  bm_TGtkText_word_wrap* = 0x0002'i16
-  bp_TGtkText_word_wrap* = 1'i16
-  bm_TGtkText_use_wchar* = 0x0004'i16
-  bp_TGtkText_use_wchar* = 2'i16
-
-proc TYPE_TEXT*(): GType
-proc TEXT*(obj: pointer): PText
-proc TEXT_CLASS*(klass: pointer): PTextClass
-proc IS_TEXT*(obj: pointer): bool
-proc IS_TEXT_CLASS*(klass: pointer): bool
-proc TEXT_GET_CLASS*(obj: pointer): PTextClass
-proc line_wrap*(a: PText): guint
-proc set_line_wrap*(a: PText, `line_wrap`: guint)
-proc word_wrap*(a: PText): guint
-proc set_word_wrap*(a: PText, `word_wrap`: guint)
-proc use_wchar*(a: PText): gboolean
-proc set_use_wchar*(a: PText, `use_wchar`: gboolean)
-proc text_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_text_get_type".}
-proc text_new*(hadj: PAdjustment, vadj: PAdjustment): PText{.cdecl, dynlib: lib, 
-    importc: "gtk_text_new".}
-proc set_editable*(text: PText, editable: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_text_set_editable".}
-proc set_word_wrap*(text: PText, word_wrap: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_text_set_word_wrap".}
-proc set_line_wrap*(text: PText, line_wrap: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_text_set_line_wrap".}
-proc set_adjustments*(text: PText, hadj: PAdjustment, vadj: PAdjustment){.
-    cdecl, dynlib: lib, importc: "gtk_text_set_adjustments".}
-proc set_point*(text: PText, index: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_set_point".}
-proc get_point*(text: PText): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_get_point".}
-proc get_length*(text: PText): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_get_length".}
-proc freeze*(text: PText){.cdecl, dynlib: lib, importc: "gtk_text_freeze".}
-proc thaw*(text: PText){.cdecl, dynlib: lib, importc: "gtk_text_thaw".}
-proc insert*(text: PText, font: gdk2.PFont, fore: gdk2.PColor, back: gdk2.PColor, 
-                  chars: cstring, length: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_insert".}
-proc backward_delete*(text: PText, nchars: guint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_backward_delete".}
-proc forward_delete*(text: PText, nchars: guint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_forward_delete".}
-proc INDEX_WCHAR*(t: PText, index: guint): guint32
-proc INDEX_UCHAR*(t: PText, index: guint): GUChar
-const 
-  TEXT_SEARCH_VISIBLE_ONLY* = 0
-  TEXT_SEARCH_TEXT_ONLY* = 1
-
-proc TYPE_TEXT_ITER*(): GType
-proc get_buffer*(iter: PTextIter): PTextBuffer{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_buffer".}
-proc copy*(iter: PTextIter): PTextIter{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_copy".}
-proc free*(iter: PTextIter){.cdecl, dynlib: lib, 
-                                       importc: "gtk_text_iter_free".}
-proc text_iter_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_text_iter_get_type".}
-proc get_offset*(iter: PTextIter): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_offset".}
-proc get_line*(iter: PTextIter): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_line".}
-proc get_line_offset*(iter: PTextIter): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_line_offset".}
-proc get_line_index*(iter: PTextIter): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_line_index".}
-proc get_visible_line_offset*(iter: PTextIter): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_get_visible_line_offset".}
-proc get_visible_line_index*(iter: PTextIter): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_get_visible_line_index".}
-proc get_char*(iter: PTextIter): gunichar{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_char".}
-proc get_slice*(start: PTextIter, theEnd: PTextIter): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_get_slice".}
-proc get_text*(start: PTextIter, theEnd: PTextIter): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_get_text".}
-proc get_visible_slice*(start: PTextIter, theEnd: PTextIter): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_get_visible_slice".}
-proc get_visible_text*(start: PTextIter, theEnd: PTextIter): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_get_visible_text".}
-proc get_pixbuf*(iter: PTextIter): gdk2pixbuf.PPixbuf{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_pixbuf".}
-proc get_marks*(iter: PTextIter): PGSList{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_marks".}
-proc get_child_anchor*(iter: PTextIter): PTextChildAnchor{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_get_child_anchor".}
-proc get_toggled_tags*(iter: PTextIter, toggled_on: gboolean): PGSList{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_get_toggled_tags".}
-proc begins_tag*(iter: PTextIter, tag: PTextTag): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_begins_tag".}
-proc ends_tag*(iter: PTextIter, tag: PTextTag): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_ends_tag".}
-proc toggles_tag*(iter: PTextIter, tag: PTextTag): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_toggles_tag".}
-proc has_tag*(iter: PTextIter, tag: PTextTag): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_has_tag".}
-proc get_tags*(iter: PTextIter): PGSList{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_tags".}
-proc editable*(iter: PTextIter, default_setting: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_editable".}
-proc can_insert*(iter: PTextIter, default_editability: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_can_insert".}
-proc starts_word*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_starts_word".}
-proc ends_word*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_ends_word".}
-proc inside_word*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_inside_word".}
-proc starts_sentence*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_starts_sentence".}
-proc ends_sentence*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_ends_sentence".}
-proc inside_sentence*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_inside_sentence".}
-proc starts_line*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_starts_line".}
-proc ends_line*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_ends_line".}
-proc is_cursor_position*(iter: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_is_cursor_position".}
-proc get_chars_in_line*(iter: PTextIter): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_chars_in_line".}
-proc get_bytes_in_line*(iter: PTextIter): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_bytes_in_line".}
-proc get_attributes*(iter: PTextIter, values: PTextAttributes): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_get_attributes".}
-proc get_language*(iter: PTextIter): pango.PLanguage{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_get_language".}
-proc is_end*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_is_end".}
-proc is_start*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_is_start".}
-proc forward_char*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_forward_char".}
-proc backward_char*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_backward_char".}
-proc forward_chars*(iter: PTextIter, count: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_forward_chars".}
-proc backward_chars*(iter: PTextIter, count: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_backward_chars".}
-proc forward_line*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_forward_line".}
-proc backward_line*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_backward_line".}
-proc forward_lines*(iter: PTextIter, count: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_forward_lines".}
-proc backward_lines*(iter: PTextIter, count: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_backward_lines".}
-proc forward_word_end*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_forward_word_end".}
-proc backward_word_start*(iter: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_backward_word_start".}
-proc forward_word_ends*(iter: PTextIter, count: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_forward_word_ends".}
-proc backward_word_starts*(iter: PTextIter, count: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_backward_word_starts".}
-proc forward_sentence_end*(iter: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_forward_sentence_end".}
-proc backward_sentence_start*(iter: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_backward_sentence_start".}
-proc forward_sentence_ends*(iter: PTextIter, count: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_forward_sentence_ends".}
-proc backward_sentence_starts*(iter: PTextIter, count: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_backward_sentence_starts".}
-proc forward_cursor_position*(iter: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_forward_cursor_position".}
-proc backward_cursor_position*(iter: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_backward_cursor_position".}
-proc forward_cursor_positions*(iter: PTextIter, count: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_forward_cursor_positions".}
-proc backward_cursor_positions*(iter: PTextIter, count: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_backward_cursor_positions".}
-proc set_offset*(iter: PTextIter, char_offset: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_set_offset".}
-proc set_line*(iter: PTextIter, line_number: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_set_line".}
-proc set_line_offset*(iter: PTextIter, char_on_line: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_set_line_offset".}
-proc set_line_index*(iter: PTextIter, byte_on_line: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_set_line_index".}
-proc forward_to_end*(iter: PTextIter){.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_forward_to_end".}
-proc forward_to_line_end*(iter: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_forward_to_line_end".}
-proc set_visible_line_offset*(iter: PTextIter, char_on_line: gint){.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_set_visible_line_offset".}
-proc set_visible_line_index*(iter: PTextIter, byte_on_line: gint){.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_set_visible_line_index".}
-proc forward_to_tag_toggle*(iter: PTextIter, tag: PTextTag): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_forward_to_tag_toggle".}
-proc backward_to_tag_toggle*(iter: PTextIter, tag: PTextTag): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_backward_to_tag_toggle".}
-proc forward_find_char*(iter: PTextIter, pred: TTextCharPredicate, 
-                                  user_data: gpointer, limit: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_forward_find_char".}
-proc backward_find_char*(iter: PTextIter, pred: TTextCharPredicate, 
-                                   user_data: gpointer, limit: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_backward_find_char".}
-proc forward_search*(iter: PTextIter, str: cstring, 
-                               flags: TTextSearchFlags, match_start: PTextIter, 
-                               match_end: PTextIter, limit: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_forward_search".}
-proc backward_search*(iter: PTextIter, str: cstring, 
-                                flags: TTextSearchFlags, match_start: PTextIter, 
-                                match_end: PTextIter, limit: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_backward_search".}
-proc equal*(lhs: PTextIter, rhs: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_equal".}
-proc compare*(lhs: PTextIter, rhs: PTextIter): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_compare".}
-proc in_range*(iter: PTextIter, start: PTextIter, theEnd: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_in_range".}
-proc order*(first: PTextIter, second: PTextIter){.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_order".}
-proc TYPE_TEXT_TAG*(): GType
-proc TEXT_TAG*(obj: pointer): PTextTag
-proc TEXT_TAG_CLASS*(klass: pointer): PTextTagClass
-proc IS_TEXT_TAG*(obj: pointer): bool
-proc IS_TEXT_TAG_CLASS*(klass: pointer): bool
-proc TEXT_TAG_GET_CLASS*(obj: pointer): PTextTagClass
-proc TYPE_TEXT_ATTRIBUTES*(): GType
-proc text_tag_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_text_tag_get_type".}
-proc text_tag_new*(name: cstring): PTextTag{.cdecl, dynlib: lib, 
-    importc: "gtk_text_tag_new".}
-proc get_priority*(tag: PTextTag): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_tag_get_priority".}
-proc set_priority*(tag: PTextTag, priority: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_tag_set_priority".}
-proc event*(tag: PTextTag, event_object: PGObject, event: gdk2.PEvent, 
-                     iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_tag_event".}
-proc text_attributes_new*(): PTextAttributes{.cdecl, dynlib: lib, 
-    importc: "gtk_text_attributes_new".}
-proc copy*(src: PTextAttributes): PTextAttributes{.cdecl, 
-    dynlib: lib, importc: "gtk_text_attributes_copy".}
-proc copy_values*(src: PTextAttributes, dest: PTextAttributes){.
-    cdecl, dynlib: lib, importc: "gtk_text_attributes_copy_values".}
-proc unref*(values: PTextAttributes){.cdecl, dynlib: lib, 
-    importc: "gtk_text_attributes_unref".}
-proc reference*(values: PTextAttributes){.cdecl, dynlib: lib, 
-    importc: "gtk_text_attributes_ref".}
-proc text_attributes_get_type*(): GType{.cdecl, dynlib: lib, 
-    importc: "gtk_text_attributes_get_type".}
-const 
-  bm_TGtkTextTag_bg_color_set* = 0x00000001'i32
-  bp_TGtkTextTag_bg_color_set* = 0'i32
-  bm_TGtkTextTag_bg_stipple_set* = 0x00000002'i32
-  bp_TGtkTextTag_bg_stipple_set* = 1'i32
-  bm_TGtkTextTag_fg_color_set* = 0x00000004'i32
-  bp_TGtkTextTag_fg_color_set* = 2'i32
-  bm_TGtkTextTag_scale_set* = 0x00000008'i32
-  bp_TGtkTextTag_scale_set* = 3'i32
-  bm_TGtkTextTag_fg_stipple_set* = 0x00000010'i32
-  bp_TGtkTextTag_fg_stipple_set* = 4'i32
-  bm_TGtkTextTag_justification_set* = 0x00000020'i32
-  bp_TGtkTextTag_justification_set* = 5'i32
-  bm_TGtkTextTag_left_margin_set* = 0x00000040'i32
-  bp_TGtkTextTag_left_margin_set* = 6'i32
-  bm_TGtkTextTag_indent_set* = 0x00000080'i32
-  bp_TGtkTextTag_indent_set* = 7'i32
-  bm_TGtkTextTag_rise_set* = 0x00000100'i32
-  bp_TGtkTextTag_rise_set* = 8'i32
-  bm_TGtkTextTag_strikethrough_set* = 0x00000200'i32
-  bp_TGtkTextTag_strikethrough_set* = 9'i32
-  bm_TGtkTextTag_right_margin_set* = 0x00000400'i32
-  bp_TGtkTextTag_right_margin_set* = 10'i32
-  bm_TGtkTextTag_pixels_above_lines_set* = 0x00000800'i32
-  bp_TGtkTextTag_pixels_above_lines_set* = 11'i32
-  bm_TGtkTextTag_pixels_below_lines_set* = 0x00001000'i32
-  bp_TGtkTextTag_pixels_below_lines_set* = 12'i32
-  bm_TGtkTextTag_pixels_inside_wrap_set* = 0x00002000'i32
-  bp_TGtkTextTag_pixels_inside_wrap_set* = 13'i32
-  bm_TGtkTextTag_tabs_set* = 0x00004000'i32
-  bp_TGtkTextTag_tabs_set* = 14'i32
-  bm_TGtkTextTag_underline_set* = 0x00008000'i32
-  bp_TGtkTextTag_underline_set* = 15'i32
-  bm_TGtkTextTag_wrap_mode_set* = 0x00010000'i32
-  bp_TGtkTextTag_wrap_mode_set* = 16'i32
-  bm_TGtkTextTag_bg_full_height_set* = 0x00020000'i32
-  bp_TGtkTextTag_bg_full_height_set* = 17'i32
-  bm_TGtkTextTag_invisible_set* = 0x00040000'i32
-  bp_TGtkTextTag_invisible_set* = 18'i32
-  bm_TGtkTextTag_editable_set* = 0x00080000'i32
-  bp_TGtkTextTag_editable_set* = 19'i32
-  bm_TGtkTextTag_language_set* = 0x00100000'i32
-  bp_TGtkTextTag_language_set* = 20'i32
-  bm_TGtkTextTag_pad1* = 0x00200000'i32
-  bp_TGtkTextTag_pad1* = 21'i32
-  bm_TGtkTextTag_pad2* = 0x00400000'i32
-  bp_TGtkTextTag_pad2* = 22'i32
-  bm_TGtkTextTag_pad3* = 0x00800000'i32
-  bp_TGtkTextTag_pad3* = 23'i32
-
-proc bg_color_set*(a: PTextTag): guint
-proc set_bg_color_set*(a: PTextTag, `bg_color_set`: guint)
-proc bg_stipple_set*(a: PTextTag): guint
-proc set_bg_stipple_set*(a: PTextTag, `bg_stipple_set`: guint)
-proc fg_color_set*(a: PTextTag): guint
-proc set_fg_color_set*(a: PTextTag, `fg_color_set`: guint)
-proc scale_set*(a: PTextTag): guint
-proc set_scale_set*(a: PTextTag, `scale_set`: guint)
-proc fg_stipple_set*(a: PTextTag): guint
-proc set_fg_stipple_set*(a: PTextTag, `fg_stipple_set`: guint)
-proc justification_set*(a: PTextTag): guint
-proc set_justification_set*(a: PTextTag, `justification_set`: guint)
-proc left_margin_set*(a: PTextTag): guint
-proc set_left_margin_set*(a: PTextTag, `left_margin_set`: guint)
-proc indent_set*(a: PTextTag): guint
-proc set_indent_set*(a: PTextTag, `indent_set`: guint)
-proc rise_set*(a: PTextTag): guint
-proc set_rise_set*(a: PTextTag, `rise_set`: guint)
-proc strikethrough_set*(a: PTextTag): guint
-proc set_strikethrough_set*(a: PTextTag, `strikethrough_set`: guint)
-proc right_margin_set*(a: PTextTag): guint
-proc set_right_margin_set*(a: PTextTag, `right_margin_set`: guint)
-proc pixels_above_lines_set*(a: PTextTag): guint
-proc set_pixels_above_lines_set*(a: PTextTag, 
-                                 `pixels_above_lines_set`: guint)
-proc pixels_below_lines_set*(a: PTextTag): guint
-proc set_pixels_below_lines_set*(a: PTextTag, 
-                                 `pixels_below_lines_set`: guint)
-proc pixels_inside_wrap_set*(a: PTextTag): guint
-proc set_pixels_inside_wrap_set*(a: PTextTag, 
-                                 `pixels_inside_wrap_set`: guint)
-proc tabs_set*(a: PTextTag): guint
-proc set_tabs_set*(a: PTextTag, `tabs_set`: guint)
-proc underline_set*(a: PTextTag): guint
-proc set_underline_set*(a: PTextTag, `underline_set`: guint)
-proc wrap_mode_set*(a: PTextTag): guint
-proc set_wrap_mode_set*(a: PTextTag, `wrap_mode_set`: guint)
-proc bg_full_height_set*(a: PTextTag): guint
-proc set_bg_full_height_set*(a: PTextTag, `bg_full_height_set`: guint)
-proc invisible_set*(a: PTextTag): guint
-proc set_invisible_set*(a: PTextTag, `invisible_set`: guint)
-proc editable_set*(a: PTextTag): guint
-proc set_editable_set*(a: PTextTag, `editable_set`: guint)
-proc language_set*(a: PTextTag): guint
-proc set_language_set*(a: PTextTag, `language_set`: guint)
-proc pad1*(a: PTextTag): guint
-proc set_pad1*(a: PTextTag, `pad1`: guint)
-proc pad2*(a: PTextTag): guint
-proc set_pad2*(a: PTextTag, `pad2`: guint)
-proc pad3*(a: PTextTag): guint
-proc set_pad3*(a: PTextTag, `pad3`: guint)
-const 
-  bm_TGtkTextAppearance_underline* = 0x000F'i16
-  bp_TGtkTextAppearance_underline* = 0'i16
-  bm_TGtkTextAppearance_strikethrough* = 0x0010'i16
-  bp_TGtkTextAppearance_strikethrough* = 4'i16
-  bm_TGtkTextAppearance_draw_bg* = 0x0020'i16
-  bp_TGtkTextAppearance_draw_bg* = 5'i16
-  bm_TGtkTextAppearance_inside_selection* = 0x0040'i16
-  bp_TGtkTextAppearance_inside_selection* = 6'i16
-  bm_TGtkTextAppearance_is_text* = 0x0080'i16
-  bp_TGtkTextAppearance_is_text* = 7'i16
-  bm_TGtkTextAppearance_pad1* = 0x0100'i16
-  bp_TGtkTextAppearance_pad1* = 8'i16
-  bm_TGtkTextAppearance_pad2* = 0x0200'i16
-  bp_TGtkTextAppearance_pad2* = 9'i16
-  bm_TGtkTextAppearance_pad3* = 0x0400'i16
-  bp_TGtkTextAppearance_pad3* = 10'i16
-  bm_TGtkTextAppearance_pad4* = 0x0800'i16
-  bp_TGtkTextAppearance_pad4* = 11'i16
-
-proc underline*(a: PTextAppearance): guint
-proc set_underline*(a: PTextAppearance, `underline`: guint)
-proc strikethrough*(a: PTextAppearance): guint
-proc set_strikethrough*(a: PTextAppearance, `strikethrough`: guint)
-proc draw_bg*(a: PTextAppearance): guint
-proc set_draw_bg*(a: PTextAppearance, `draw_bg`: guint)
-proc inside_selection*(a: PTextAppearance): guint
-proc set_inside_selection*(a: PTextAppearance, `inside_selection`: guint)
-proc is_text*(a: PTextAppearance): guint
-proc set_is_text*(a: PTextAppearance, `is_text`: guint)
-proc pad1*(a: PTextAppearance): guint
-proc set_pad1*(a: PTextAppearance, `pad1`: guint)
-proc pad2*(a: PTextAppearance): guint
-proc set_pad2*(a: PTextAppearance, `pad2`: guint)
-proc pad3*(a: PTextAppearance): guint
-proc set_pad3*(a: PTextAppearance, `pad3`: guint)
-proc pad4*(a: PTextAppearance): guint
-proc set_pad4*(a: PTextAppearance, `pad4`: guint)
-const 
-  bm_TGtkTextAttributes_invisible* = 0x0001'i16
-  bp_TGtkTextAttributes_invisible* = 0'i16
-  bm_TGtkTextAttributes_bg_full_height* = 0x0002'i16
-  bp_TGtkTextAttributes_bg_full_height* = 1'i16
-  bm_TGtkTextAttributes_editable* = 0x0004'i16
-  bp_TGtkTextAttributes_editable* = 2'i16
-  bm_TGtkTextAttributes_realized* = 0x0008'i16
-  bp_TGtkTextAttributes_realized* = 3'i16
-  bm_TGtkTextAttributes_pad1* = 0x0010'i16
-  bp_TGtkTextAttributes_pad1* = 4'i16
-  bm_TGtkTextAttributes_pad2* = 0x0020'i16
-  bp_TGtkTextAttributes_pad2* = 5'i16
-  bm_TGtkTextAttributes_pad3* = 0x0040'i16
-  bp_TGtkTextAttributes_pad3* = 6'i16
-  bm_TGtkTextAttributes_pad4* = 0x0080'i16
-  bp_TGtkTextAttributes_pad4* = 7'i16
-
-proc invisible*(a: PTextAttributes): guint
-proc set_invisible*(a: PTextAttributes, `invisible`: guint)
-proc bg_full_height*(a: PTextAttributes): guint
-proc set_bg_full_height*(a: PTextAttributes, `bg_full_height`: guint)
-proc editable*(a: PTextAttributes): guint
-proc set_editable*(a: PTextAttributes, `editable`: guint)
-proc realized*(a: PTextAttributes): guint
-proc set_realized*(a: PTextAttributes, `realized`: guint)
-proc pad1*(a: PTextAttributes): guint
-proc set_pad1*(a: PTextAttributes, `pad1`: guint)
-proc pad2*(a: PTextAttributes): guint
-proc set_pad2*(a: PTextAttributes, `pad2`: guint)
-proc pad3*(a: PTextAttributes): guint
-proc set_pad3*(a: PTextAttributes, `pad3`: guint)
-proc pad4*(a: PTextAttributes): guint
-proc set_pad4*(a: PTextAttributes, `pad4`: guint)
-proc TYPE_TEXT_TAG_TABLE*(): GType
-proc TEXT_TAG_TABLE*(obj: pointer): PTextTagTable
-proc TEXT_TAG_TABLE_CLASS*(klass: pointer): PTextTagTableClass
-proc IS_TEXT_TAG_TABLE*(obj: pointer): bool
-proc IS_TEXT_TAG_TABLE_CLASS*(klass: pointer): bool
-proc TEXT_TAG_TABLE_GET_CLASS*(obj: pointer): PTextTagTableClass
-proc text_tag_table_get_type*(): GType{.cdecl, dynlib: lib, 
-                                        importc: "gtk_text_tag_table_get_type".}
-proc text_tag_table_new*(): PTextTagTable{.cdecl, dynlib: lib, 
-    importc: "gtk_text_tag_table_new".}
-proc table_add*(table: PTextTagTable, tag: PTextTag){.cdecl, 
-    dynlib: lib, importc: "gtk_text_tag_table_add".}
-proc table_remove*(table: PTextTagTable, tag: PTextTag){.cdecl, 
-    dynlib: lib, importc: "gtk_text_tag_table_remove".}
-proc table_lookup*(table: PTextTagTable, name: cstring): PTextTag{.
-    cdecl, dynlib: lib, importc: "gtk_text_tag_table_lookup".}
-proc table_foreach*(table: PTextTagTable, fun: TTextTagTableForeach, 
-                             data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_text_tag_table_foreach".}
-proc table_get_size*(table: PTextTagTable): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_tag_table_get_size".}
-proc table_add_buffer*(table: PTextTagTable, buffer: gpointer){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_tag_table_add_buffer".}
-proc table_remove_buffer*(table: PTextTagTable, buffer: gpointer){.
-    cdecl, dynlib: lib, importc: "_gtk_text_tag_table_remove_buffer".}
-proc TYPE_TEXT_MARK*(): GType
-proc TEXT_MARK*(anObject: pointer): PTextMark
-proc TEXT_MARK_CLASS*(klass: pointer): PTextMarkClass
-proc IS_TEXT_MARK*(anObject: pointer): bool
-proc IS_TEXT_MARK_CLASS*(klass: pointer): bool
-proc TEXT_MARK_GET_CLASS*(obj: pointer): PTextMarkClass
-proc text_mark_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_text_mark_get_type".}
-proc set_visible*(mark: PTextMark, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_text_mark_set_visible".}
-proc get_visible*(mark: PTextMark): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_mark_get_visible".}
-proc get_name*(mark: PTextMark): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_text_mark_get_name".}
-proc get_deleted*(mark: PTextMark): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_mark_get_deleted".}
-proc get_buffer*(mark: PTextMark): PTextBuffer{.cdecl, dynlib: lib, 
-    importc: "gtk_text_mark_get_buffer".}
-proc get_left_gravity*(mark: PTextMark): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_mark_get_left_gravity".}
-const 
-  bm_TGtkTextMarkBody_visible* = 0x0001'i16
-  bp_TGtkTextMarkBody_visible* = 0'i16
-  bm_TGtkTextMarkBody_not_deleteable* = 0x0002'i16
-  bp_TGtkTextMarkBody_not_deleteable* = 1'i16
-
-proc visible*(a: PTextMarkBody): guint
-proc set_visible*(a: PTextMarkBody, `visible`: guint)
-proc not_deleteable*(a: PTextMarkBody): guint
-proc set_not_deleteable*(a: PTextMarkBody, `not_deleteable`: guint)
-proc mark_segment_new*(tree: PTextBTree, left_gravity: gboolean, name: cstring): PTextLineSegment{.
-    cdecl, dynlib: lib, importc: "_gtk_mark_segment_new".}
-proc TYPE_TEXT_CHILD_ANCHOR*(): GType
-proc TEXT_CHILD_ANCHOR*(anObject: pointer): PTextChildAnchor
-proc TEXT_CHILD_ANCHOR_CLASS*(klass: pointer): PTextChildAnchorClass
-proc IS_TEXT_CHILD_ANCHOR*(anObject: pointer): bool
-proc IS_TEXT_CHILD_ANCHOR_CLASS*(klass: pointer): bool
-proc TEXT_CHILD_ANCHOR_GET_CLASS*(obj: pointer): PTextChildAnchorClass
-proc text_child_anchor_get_type*(): GType{.cdecl, dynlib: lib, 
-    importc: "gtk_text_child_anchor_get_type".}
-proc text_child_anchor_new*(): PTextChildAnchor{.cdecl, dynlib: lib, 
-    importc: "gtk_text_child_anchor_new".}
-proc anchor_get_widgets*(anchor: PTextChildAnchor): PGList{.cdecl, 
-    dynlib: lib, importc: "gtk_text_child_anchor_get_widgets".}
-proc anchor_get_deleted*(anchor: PTextChildAnchor): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_child_anchor_get_deleted".}
-proc pixbuf_segment_new*(pixbuf: gdk2pixbuf.PPixbuf): PTextLineSegment{.cdecl, 
-    dynlib: lib, importc: "_gtk_pixbuf_segment_new".}
-proc widget_segment_new*(anchor: PTextChildAnchor): PTextLineSegment{.cdecl, 
-    dynlib: lib, importc: "_gtk_widget_segment_new".}
-proc widget_segment_add*(widget_segment: PTextLineSegment, child: PWidget){.
-    cdecl, dynlib: lib, importc: "_gtk_widget_segment_add".}
-proc widget_segment_remove*(widget_segment: PTextLineSegment, child: PWidget){.
-    cdecl, dynlib: lib, importc: "_gtk_widget_segment_remove".}
-proc widget_segment_ref*(widget_segment: PTextLineSegment){.cdecl, dynlib: lib, 
-    importc: "_gtk_widget_segment_ref".}
-proc widget_segment_unref*(widget_segment: PTextLineSegment){.cdecl, 
-    dynlib: lib, importc: "_gtk_widget_segment_unref".}
-proc anchored_child_get_layout*(child: PWidget): PTextLayout{.cdecl, 
-    dynlib: lib, importc: "_gtk_anchored_child_get_layout".}
-proc line_segment_split*(iter: PTextIter): PTextLineSegment{.cdecl, 
-    dynlib: lib, importc: "gtk_text_line_segment_split".}
-proc char_segment_new*(text: cstring, len: guint): PTextLineSegment{.cdecl, 
-    dynlib: lib, importc: "_gtk_char_segment_new".}
-proc char_segment_new_from_two_strings*(text1: cstring, len1: guint, 
-                                        text2: cstring, len2: guint): PTextLineSegment{.
-    cdecl, dynlib: lib, importc: "_gtk_char_segment_new_from_two_strings".}
-proc toggle_segment_new*(info: PTextTagInfo, StateOn: gboolean): PTextLineSegment{.
-    cdecl, dynlib: lib, importc: "_gtk_toggle_segment_new".}
-proc btree_new*(table: PTextTagTable, buffer: PTextBuffer): PTextBTree{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_new".}
-proc reference*(tree: PTextBTree){.cdecl, dynlib: lib, 
-                                   importc: "_gtk_text_btree_ref".}
-proc unref*(tree: PTextBTree){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_unref".}
-proc get_buffer*(tree: PTextBTree): PTextBuffer{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_get_buffer".}
-proc get_chars_changed_stamp*(tree: PTextBTree): guint{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_chars_changed_stamp".}
-proc get_segments_changed_stamp*(tree: PTextBTree): guint{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_segments_changed_stamp".}
-proc segments_changed*(tree: PTextBTree){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_segments_changed".}
-proc is_end*(tree: PTextBTree, line: PTextLine, 
-                        seg: PTextLineSegment, byte_index: int32, 
-                        char_offset: int32): gboolean{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_is_end".}
-proc btree_delete*(start: PTextIter, theEnd: PTextIter){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_delete".}
-proc btree_insert*(iter: PTextIter, text: cstring, len: gint){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_insert".}
-proc btree_insert_pixbuf*(iter: PTextIter, pixbuf: gdk2pixbuf.PPixbuf){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_insert_pixbuf".}
-proc btree_insert_child_anchor*(iter: PTextIter, anchor: PTextChildAnchor){.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_insert_child_anchor".}
-proc btree_unregister_child_anchor*(anchor: PTextChildAnchor){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_unregister_child_anchor".}
-proc find_line_by_y*(tree: PTextBTree, view_id: gpointer, 
-                                ypixel: gint, line_top_y: Pgint): PTextLine{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_find_line_by_y".}
-proc find_line_top*(tree: PTextBTree, line: PTextLine, 
-                               view_id: gpointer): gint{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_find_line_top".}
-proc add_view*(tree: PTextBTree, layout: PTextLayout){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_add_view".}
-proc remove_view*(tree: PTextBTree, view_id: gpointer){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_remove_view".}
-proc invalidate_region*(tree: PTextBTree, start: PTextIter, 
-                                   theEnd: PTextIter){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_invalidate_region".}
-proc get_view_size*(tree: PTextBTree, view_id: gpointer, 
-                               width: Pgint, height: Pgint){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_get_view_size".}
-proc is_valid*(tree: PTextBTree, view_id: gpointer): gboolean{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_is_valid".}
-proc validate*(tree: PTextBTree, view_id: gpointer, max_pixels: gint, 
-                          y: Pgint, old_height: Pgint, new_height: Pgint): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_validate".}
-proc validate_line*(tree: PTextBTree, line: PTextLine, 
-                               view_id: gpointer){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_validate_line".}
-proc btree_tag*(start: PTextIter, theEnd: PTextIter, tag: PTextTag, 
-                     apply: gboolean){.cdecl, dynlib: lib, 
-                                       importc: "_gtk_text_btree_tag".}
-proc get_line*(tree: PTextBTree, line_number: gint, 
-                          real_line_number: Pgint): PTextLine{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_line".}
-proc get_line_no_last*(tree: PTextBTree, line_number: gint, 
-                                  real_line_number: Pgint): PTextLine{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_line_no_last".}
-proc get_end_iter_line*(tree: PTextBTree): PTextLine{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_end_iter_line".}
-proc get_line_at_char*(tree: PTextBTree, char_index: gint, 
-                                  line_start_index: Pgint, 
-                                  real_char_index: Pgint): PTextLine{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_line_at_char".}
-proc btree_get_tags*(iter: PTextIter, num_tags: Pgint): PPGtkTextTag{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_get_tags".}
-proc btree_get_text*(start: PTextIter, theEnd: PTextIter, 
-                          include_hidden: gboolean, include_nonchars: gboolean): cstring{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_get_text".}
-proc line_count*(tree: PTextBTree): gint{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_line_count".}
-proc char_count*(tree: PTextBTree): gint{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_char_count".}
-proc btree_char_is_invisible*(iter: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_char_is_invisible".}
-proc get_iter_at_char*(tree: PTextBTree, iter: PTextIter, 
-                                  char_index: gint){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_get_iter_at_char".}
-proc get_iter_at_line_char*(tree: PTextBTree, iter: PTextIter, 
-                                       line_number: gint, char_index: gint){.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_get_iter_at_line_char".}
-proc get_iter_at_line_byte*(tree: PTextBTree, iter: PTextIter, 
-                                       line_number: gint, byte_index: gint){.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_get_iter_at_line_byte".}
-proc get_iter_from_string*(tree: PTextBTree, iter: PTextIter, 
-                                      `string`: cstring): gboolean{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_iter_from_string".}
-proc get_iter_at_mark_name*(tree: PTextBTree, iter: PTextIter, 
-                                       mark_name: cstring): gboolean{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_iter_at_mark_name".}
-proc get_iter_at_mark*(tree: PTextBTree, iter: PTextIter, 
-                                  mark: PTextMark){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_get_iter_at_mark".}
-proc get_end_iter*(tree: PTextBTree, iter: PTextIter){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_end_iter".}
-proc get_iter_at_line*(tree: PTextBTree, iter: PTextIter, 
-                                  line: PTextLine, byte_offset: gint){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_iter_at_line".}
-proc get_iter_at_first_toggle*(tree: PTextBTree, iter: PTextIter, 
-    tag: PTextTag): gboolean{.cdecl, dynlib: lib, importc: "_gtk_text_btree_get_iter_at_first_toggle".}
-proc get_iter_at_last_toggle*(tree: PTextBTree, iter: PTextIter, 
-    tag: PTextTag): gboolean{.cdecl, dynlib: lib, importc: "_gtk_text_btree_get_iter_at_last_toggle".}
-proc get_iter_at_child_anchor*(tree: PTextBTree, iter: PTextIter, 
-    anchor: PTextChildAnchor){.cdecl, dynlib: lib, importc: "_gtk_text_btree_get_iter_at_child_anchor".}
-proc set_mark*(tree: PTextBTree, existing_mark: PTextMark, 
-                          name: cstring, left_gravity: gboolean, 
-                          index: PTextIter, should_exist: gboolean): PTextMark{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_set_mark".}
-proc remove_mark_by_name*(tree: PTextBTree, name: cstring){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_remove_mark_by_name".}
-proc remove_mark*(tree: PTextBTree, segment: PTextMark){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_remove_mark".}
-proc get_selection_bounds*(tree: PTextBTree, start: PTextIter, 
-                                      theEnd: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_selection_bounds".}
-proc place_cursor*(tree: PTextBTree, `where`: PTextIter){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_place_cursor".}
-proc mark_is_insert*(tree: PTextBTree, segment: PTextMark): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_mark_is_insert".}
-proc mark_is_selection_bound*(tree: PTextBTree, segment: PTextMark): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_mark_is_selection_bound".}
-proc get_mark_by_name*(tree: PTextBTree, name: cstring): PTextMark{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_get_mark_by_name".}
-proc first_could_contain_tag*(tree: PTextBTree, tag: PTextTag): PTextLine{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_first_could_contain_tag".}
-proc last_could_contain_tag*(tree: PTextBTree, tag: PTextTag): PTextLine{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_last_could_contain_tag".}
-const 
-  bm_TGtkTextLineData_width* = 0x00FFFFFF'i32
-  bp_TGtkTextLineData_width* = 0'i32
-  bm_TGtkTextLineData_valid* = 0xFF000000'i32
-  bp_TGtkTextLineData_valid* = 24'i32
-
-proc width*(a: PTextLineData): gint
-proc set_width*(a: PTextLineData, NewWidth: gint)
-proc valid*(a: PTextLineData): gint
-proc set_valid*(a: PTextLineData, `valid`: gint)
-proc get_number*(line: PTextLine): gint{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_line_get_number".}
-proc char_has_tag*(line: PTextLine, tree: PTextBTree, 
-                             char_in_line: gint, tag: PTextTag): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_text_line_char_has_tag".}
-proc byte_has_tag*(line: PTextLine, tree: PTextBTree, 
-                             byte_in_line: gint, tag: PTextTag): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_text_line_byte_has_tag".}
-proc is_last*(line: PTextLine, tree: PTextBTree): gboolean{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_is_last".}
-proc contains_end_iter*(line: PTextLine, tree: PTextBTree): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_text_line_contains_end_iter".}
-proc next*(line: PTextLine): PTextLine{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_line_next".}
-proc next_excluding_last*(line: PTextLine): PTextLine{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_next_excluding_last".}
-proc previous*(line: PTextLine): PTextLine{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_line_previous".}
-proc add_data*(line: PTextLine, data: PTextLineData){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_add_data".}
-proc remove_data*(line: PTextLine, view_id: gpointer): gpointer{.
-    cdecl, dynlib: lib, importc: "_gtk_text_line_remove_data".}
-proc get_data*(line: PTextLine, view_id: gpointer): gpointer{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_get_data".}
-proc invalidate_wrap*(line: PTextLine, ld: PTextLineData){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_invalidate_wrap".}
-proc char_count*(line: PTextLine): gint{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_line_char_count".}
-proc byte_count*(line: PTextLine): gint{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_line_byte_count".}
-proc char_index*(line: PTextLine): gint{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_line_char_index".}
-proc byte_to_segment*(line: PTextLine, byte_offset: gint, 
-                                seg_offset: Pgint): PTextLineSegment{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_byte_to_segment".}
-proc char_to_segment*(line: PTextLine, char_offset: gint, 
-                                seg_offset: Pgint): PTextLineSegment{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_char_to_segment".}
-proc byte_to_char_offsets*(line: PTextLine, byte_offset: gint, 
-                                     line_char_offset: Pgint, 
-                                     seg_char_offset: Pgint){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_byte_to_char_offsets".}
-proc char_to_byte_offsets*(line: PTextLine, char_offset: gint, 
-                                     line_byte_offset: Pgint, 
-                                     seg_byte_offset: Pgint){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_char_to_byte_offsets".}
-proc byte_to_any_segment*(line: PTextLine, byte_offset: gint, 
-                                    seg_offset: Pgint): PTextLineSegment{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_byte_to_any_segment".}
-proc char_to_any_segment*(line: PTextLine, char_offset: gint, 
-                                    seg_offset: Pgint): PTextLineSegment{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_char_to_any_segment".}
-proc byte_to_char*(line: PTextLine, byte_offset: gint): gint{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_byte_to_char".}
-proc char_to_byte*(line: PTextLine, char_offset: gint): gint{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_char_to_byte".}
-proc next_could_contain_tag*(line: PTextLine, tree: PTextBTree, 
-                                       tag: PTextTag): PTextLine{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_next_could_contain_tag".}
-proc previous_could_contain_tag*(line: PTextLine, tree: PTextBTree, 
-    tag: PTextTag): PTextLine{.cdecl, dynlib: lib, importc: "_gtk_text_line_previous_could_contain_tag".}
-proc line_data_new*(layout: PTextLayout, line: PTextLine): PTextLineData{.
-    cdecl, dynlib: lib, importc: "_gtk_text_line_data_new".}
-proc check*(tree: PTextBTree){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_check".}
-proc spew*(tree: PTextBTree){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_spew".}
-proc toggle_segment_check_func*(segPtr: PTextLineSegment, line: PTextLine){.
-    cdecl, dynlib: lib, importc: "_gtk_toggle_segment_check_func".}
-proc change_node_toggle_count*(node: PTextBTreeNode, info: PTextTagInfo, 
-                               delta: gint){.cdecl, dynlib: lib, 
-    importc: "_gtk_change_node_toggle_count".}
-proc release_mark_segment*(tree: PTextBTree, 
-                                      segment: PTextLineSegment){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_release_mark_segment".}
-proc notify_will_remove_tag*(tree: PTextBTree, tag: PTextTag){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_notify_will_remove_tag".}
-const 
-  bm_TGtkTextBuffer_modified* = 0x0001'i16
-  bp_TGtkTextBuffer_modified* = 0'i16
-
-proc TYPE_TEXT_BUFFER*(): GType
-proc TEXT_BUFFER*(obj: pointer): PTextBuffer
-proc TEXT_BUFFER_CLASS*(klass: pointer): PTextBufferClass
-proc IS_TEXT_BUFFER*(obj: pointer): bool
-proc IS_TEXT_BUFFER_CLASS*(klass: pointer): bool
-proc TEXT_BUFFER_GET_CLASS*(obj: pointer): PTextBufferClass
-proc modified*(a: PTextBuffer): guint
-proc set_modified*(a: PTextBuffer, `modified`: guint)
-proc text_buffer_get_type*(): GType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_text_buffer_get_type".}
-proc text_buffer_new*(table: PTextTagTable): PTextBuffer{.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_new".}
-proc get_line_count*(buffer: PTextBuffer): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_get_line_count".}
-proc get_char_count*(buffer: PTextBuffer): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_get_char_count".}
-proc get_tag_table*(buffer: PTextBuffer): PTextTagTable{.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_get_tag_table".}
-proc set_text*(buffer: PTextBuffer, text: cstring, len: gint){.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_set_text".}
-proc insert*(buffer: PTextBuffer, iter: PTextIter, text: cstring, 
-                         len: gint){.cdecl, dynlib: lib, 
-                                     importc: "gtk_text_buffer_insert".}
-proc insert_at_cursor*(buffer: PTextBuffer, text: cstring, len: gint){.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_insert_at_cursor".}
-proc insert_interactive*(buffer: PTextBuffer, iter: PTextIter, 
-                                     text: cstring, len: gint, 
-                                     default_editable: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_insert_interactive".}
-proc insert_interactive_at_cursor*(buffer: PTextBuffer, 
-    text: cstring, len: gint, default_editable: gboolean): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_insert_interactive_at_cursor".}
-proc insert_range*(buffer: PTextBuffer, iter: PTextIter, 
-                               start: PTextIter, theEnd: PTextIter){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_insert_range".}
-proc insert_range_interactive*(buffer: PTextBuffer, iter: PTextIter, 
-    start: PTextIter, theEnd: PTextIter, default_editable: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_insert_range_interactive".}
-proc delete*(buffer: PTextBuffer, start: PTextIter, 
-                         theEnd: PTextIter){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_delete".}
-proc delete_interactive*(buffer: PTextBuffer, start_iter: PTextIter, 
-                                     end_iter: PTextIter, 
-                                     default_editable: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_delete_interactive".}
-proc get_text*(buffer: PTextBuffer, start: PTextIter, 
-                           theEnd: PTextIter, include_hidden_chars: gboolean): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_get_text".}
-proc get_slice*(buffer: PTextBuffer, start: PTextIter, 
-                            theEnd: PTextIter, include_hidden_chars: gboolean): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_get_slice".}
-proc insert_pixbuf*(buffer: PTextBuffer, iter: PTextIter, 
-                                pixbuf: gdk2pixbuf.PPixbuf){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_insert_pixbuf".}
-proc insert_child_anchor*(buffer: PTextBuffer, iter: PTextIter, 
-                                      anchor: PTextChildAnchor){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_insert_child_anchor".}
-proc create_child_anchor*(buffer: PTextBuffer, iter: PTextIter): PTextChildAnchor{.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_create_child_anchor".}
-proc create_mark*(buffer: PTextBuffer, mark_name: cstring, 
-                              `where`: PTextIter, left_gravity: gboolean): PTextMark{.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_create_mark".}
-proc move_mark*(buffer: PTextBuffer, mark: PTextMark, 
-                            `where`: PTextIter){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_move_mark".}
-proc delete_mark*(buffer: PTextBuffer, mark: PTextMark){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_delete_mark".}
-proc get_mark*(buffer: PTextBuffer, name: cstring): PTextMark{.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_get_mark".}
-proc move_mark_by_name*(buffer: PTextBuffer, name: cstring, 
-                                    `where`: PTextIter){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_move_mark_by_name".}
-proc delete_mark_by_name*(buffer: PTextBuffer, name: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_delete_mark_by_name".}
-proc get_insert*(buffer: PTextBuffer): PTextMark{.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_get_insert".}
-proc get_selection_bound*(buffer: PTextBuffer): PTextMark{.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_get_selection_bound".}
-proc place_cursor*(buffer: PTextBuffer, `where`: PTextIter){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_place_cursor".}
-proc apply_tag*(buffer: PTextBuffer, tag: PTextTag, 
-                            start: PTextIter, theEnd: PTextIter){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_apply_tag".}
-proc remove_tag*(buffer: PTextBuffer, tag: PTextTag, 
-                             start: PTextIter, theEnd: PTextIter){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_remove_tag".}
-proc apply_tag_by_name*(buffer: PTextBuffer, name: cstring, 
-                                    start: PTextIter, theEnd: PTextIter){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_apply_tag_by_name".}
-proc remove_tag_by_name*(buffer: PTextBuffer, name: cstring, 
-                                     start: PTextIter, theEnd: PTextIter){.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_remove_tag_by_name".}
-proc remove_all_tags*(buffer: PTextBuffer, start: PTextIter, 
-                                  theEnd: PTextIter){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_remove_all_tags".}
-proc get_iter_at_line_offset*(buffer: PTextBuffer, iter: PTextIter, 
-    line_number: gint, char_offset: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_get_iter_at_line_offset".}
-proc get_iter_at_line_index*(buffer: PTextBuffer, iter: PTextIter, 
-    line_number: gint, byte_index: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_get_iter_at_line_index".}
-proc get_iter_at_offset*(buffer: PTextBuffer, iter: PTextIter, 
-                                     char_offset: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_get_iter_at_offset".}
-proc get_iter_at_line*(buffer: PTextBuffer, iter: PTextIter, 
-                                   line_number: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_get_iter_at_line".}
-proc get_start_iter*(buffer: PTextBuffer, iter: PTextIter){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_get_start_iter".}
-proc get_end_iter*(buffer: PTextBuffer, iter: PTextIter){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_get_end_iter".}
-proc get_bounds*(buffer: PTextBuffer, start: PTextIter, 
-                             theEnd: PTextIter){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_get_bounds".}
-proc get_iter_at_mark*(buffer: PTextBuffer, iter: PTextIter, 
-                                   mark: PTextMark){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_get_iter_at_mark".}
-proc get_iter_at_child_anchor*(buffer: PTextBuffer, iter: PTextIter, 
-    anchor: PTextChildAnchor){.cdecl, dynlib: lib, importc: "gtk_text_buffer_get_iter_at_child_anchor".}
-proc get_modified*(buffer: PTextBuffer): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_get_modified".}
-proc set_modified*(buffer: PTextBuffer, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_set_modified".}
-proc add_selection_clipboard*(buffer: PTextBuffer, 
-    clipboard: PClipboard){.cdecl, dynlib: lib, 
-                            importc: "gtk_text_buffer_add_selection_clipboard".}
-proc remove_selection_clipboard*(buffer: PTextBuffer, 
-    clipboard: PClipboard){.cdecl, dynlib: lib, importc: "gtk_text_buffer_remove_selection_clipboard".}
-proc cut_clipboard*(buffer: PTextBuffer, clipboard: PClipboard, 
-                                default_editable: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_cut_clipboard".}
-proc copy_clipboard*(buffer: PTextBuffer, clipboard: PClipboard){.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_copy_clipboard".}
-proc paste_clipboard*(buffer: PTextBuffer, clipboard: PClipboard, 
-                                  override_location: PTextIter, 
-                                  default_editable: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_paste_clipboard".}
-proc get_selection_bounds*(buffer: PTextBuffer, start: PTextIter, 
-                                       theEnd: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_get_selection_bounds".}
-proc delete_selection*(buffer: PTextBuffer, interactive: gboolean, 
-                                   default_editable: gboolean): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_delete_selection".}
-proc begin_user_action*(buffer: PTextBuffer){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_begin_user_action".}
-proc end_user_action*(buffer: PTextBuffer){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_end_user_action".}
-proc spew*(buffer: PTextBuffer){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_buffer_spew".}
-proc get_btree*(buffer: PTextBuffer): PTextBTree{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_buffer_get_btree".}
-proc get_line_log_attrs*(buffer: PTextBuffer, 
-                                     anywhere_in_line: PTextIter, 
-                                     char_len: Pgint): pango.PLogAttr{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_buffer_get_line_log_attrs".}
-proc notify_will_remove_tag*(buffer: PTextBuffer, tag: PTextTag){.
-    cdecl, dynlib: lib, importc: "_gtk_text_buffer_notify_will_remove_tag".}
-proc get_has_selection*(buffer: PTextBuffer): bool {.cdecl,
-    dynlib: lib, importc: "gtk_text_buffer_get_has_selection".}
-proc select_range*(buffer: PTextBuffer, ins,
-    bound: PTextIter) {.cdecl, dynlib: lib, importc: "gtk_text_buffer_select_range".}
-proc backspace*(buffer: PTextBuffer, iter: PTextIter,
-    interactive, defaultEditable: bool): bool {.cdecl,
-    dynlib: lib, importc: "gtk_text_buffer_backspace".}
-
-proc TYPE_TEXT_LAYOUT*(): GType
-proc TEXT_LAYOUT*(obj: pointer): PTextLayout
-proc TEXT_LAYOUT_CLASS*(klass: pointer): PTextLayoutClass
-proc IS_TEXT_LAYOUT*(obj: pointer): bool
-proc IS_TEXT_LAYOUT_CLASS*(klass: pointer): bool
-proc TEXT_LAYOUT_GET_CLASS*(obj: pointer): PTextLayoutClass
-const 
-  bm_TGtkTextLayout_cursor_visible* = 0x0001'i16
-  bp_TGtkTextLayout_cursor_visible* = 0'i16
-  bm_TGtkTextLayout_cursor_direction* = 0x0006'i16
-  bp_TGtkTextLayout_cursor_direction* = 1'i16
-
-proc cursor_visible*(a: PTextLayout): guint
-proc set_cursor_visible*(a: PTextLayout, `cursor_visible`: guint)
-proc cursor_direction*(a: PTextLayout): gint
-proc set_cursor_direction*(a: PTextLayout, `cursor_direction`: gint)
-const 
-  bm_TGtkTextCursorDisplay_is_strong* = 0x0001'i16
-  bp_TGtkTextCursorDisplay_is_strong* = 0'i16
-  bm_TGtkTextCursorDisplay_is_weak* = 0x0002'i16
-  bp_TGtkTextCursorDisplay_is_weak* = 1'i16
-
-proc is_strong*(a: PTextCursorDisplay): guint
-proc set_is_strong*(a: PTextCursorDisplay, `is_strong`: guint)
-proc is_weak*(a: PTextCursorDisplay): guint
-proc set_is_weak*(a: PTextCursorDisplay, `is_weak`: guint)
-proc text_layout_get_type*(): GType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_text_layout_get_type".}
-proc text_layout_new*(): PTextLayout{.cdecl, dynlib: lib, 
-                                      importc: "gtk_text_layout_new".}
-proc set_buffer*(layout: PTextLayout, buffer: PTextBuffer){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_set_buffer".}
-proc get_buffer*(layout: PTextLayout): PTextBuffer{.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_get_buffer".}
-proc set_default_style*(layout: PTextLayout, values: PTextAttributes){.
-    cdecl, dynlib: lib, importc: "gtk_text_layout_set_default_style".}
-proc set_contexts*(layout: PTextLayout, ltr_context: pango.PContext, 
-                               rtl_context: pango.PContext){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_set_contexts".}
-proc set_cursor_direction*(layout: PTextLayout, 
-                                       direction: TTextDirection){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_set_cursor_direction".}
-proc default_style_changed*(layout: PTextLayout){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_default_style_changed".}
-proc set_screen_width*(layout: PTextLayout, width: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_set_screen_width".}
-proc set_preedit_string*(layout: PTextLayout, 
-                                     preedit_string: cstring, 
-                                     preedit_attrs: pango.PAttrList, 
-                                     cursor_pos: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_set_preedit_string".}
-proc set_cursor_visible*(layout: PTextLayout, 
-                                     cursor_visible: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_set_cursor_visible".}
-proc get_cursor_visible*(layout: PTextLayout): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_get_cursor_visible".}
-proc get_size*(layout: PTextLayout, width: Pgint, height: Pgint){.
-    cdecl, dynlib: lib, importc: "gtk_text_layout_get_size".}
-proc get_lines*(layout: PTextLayout, top_y: gint, bottom_y: gint, 
-                            first_line_y: Pgint): PGSList{.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_get_lines".}
-proc wrap_loop_start*(layout: PTextLayout){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_wrap_loop_start".}
-proc wrap_loop_end*(layout: PTextLayout){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_wrap_loop_end".}
-proc get_line_display*(layout: PTextLayout, line: PTextLine, 
-                                   size_only: gboolean): PTextLineDisplay{.
-    cdecl, dynlib: lib, importc: "gtk_text_layout_get_line_display".}
-proc free_line_display*(layout: PTextLayout, 
-                                    display: PTextLineDisplay){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_free_line_display".}
-proc get_line_at_y*(layout: PTextLayout, target_iter: PTextIter, 
-                                y: gint, line_top: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_get_line_at_y".}
-proc get_iter_at_pixel*(layout: PTextLayout, iter: PTextIter, 
-                                    x: gint, y: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_get_iter_at_pixel".}
-proc invalidate*(layout: PTextLayout, start: PTextIter, 
-                             theEnd: PTextIter){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_invalidate".}
-proc free_line_data*(layout: PTextLayout, line: PTextLine, 
-                                 line_data: PTextLineData){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_free_line_data".}
-proc is_valid*(layout: PTextLayout): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_is_valid".}
-proc validate_yrange*(layout: PTextLayout, anchor_line: PTextIter, 
-                                  y0: gint, y1: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_validate_yrange".}
-proc validate*(layout: PTextLayout, max_pixels: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_validate".}
-proc wrap*(layout: PTextLayout, line: PTextLine, 
-                       line_data: PTextLineData): PTextLineData{.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_wrap".}
-proc changed*(layout: PTextLayout, y: gint, old_height: gint, 
-                          new_height: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_changed".}
-proc get_iter_location*(layout: PTextLayout, iter: PTextIter, 
-                                    rect: gdk2.PRectangle){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_get_iter_location".}
-proc get_line_yrange*(layout: PTextLayout, iter: PTextIter, 
-                                  y: Pgint, height: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_get_line_yrange".}
-proc get_line_xrange*(layout: PTextLayout, iter: PTextIter, 
-                                  x: Pgint, width: Pgint){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_layout_get_line_xrange".}
-proc get_cursor_locations*(layout: PTextLayout, iter: PTextIter, 
-                                       strong_pos: gdk2.PRectangle, 
-                                       weak_pos: gdk2.PRectangle){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_get_cursor_locations".}
-proc clamp_iter_to_vrange*(layout: PTextLayout, iter: PTextIter, 
-                                       top: gint, bottom: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_layout_clamp_iter_to_vrange".}
-proc move_iter_to_line_end*(layout: PTextLayout, iter: PTextIter, 
-                                        direction: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_move_iter_to_line_end".}
-proc move_iter_to_previous_line*(layout: PTextLayout, 
-    iter: PTextIter): gboolean{.cdecl, dynlib: lib, importc: "gtk_text_layout_move_iter_to_previous_line".}
-proc move_iter_to_next_line*(layout: PTextLayout, iter: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_layout_move_iter_to_next_line".}
-proc move_iter_to_x*(layout: PTextLayout, iter: PTextIter, x: gint){.
-    cdecl, dynlib: lib, importc: "gtk_text_layout_move_iter_to_x".}
-proc move_iter_visually*(layout: PTextLayout, iter: PTextIter, 
-                                     count: gint): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_move_iter_visually".}
-proc iter_starts_line*(layout: PTextLayout, iter: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_layout_iter_starts_line".}
-proc get_iter_at_line*(layout: PTextLayout, iter: PTextIter, 
-                                   line: PTextLine, byte_offset: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_get_iter_at_line".}
-proc anchor_register_child*(anchor: PTextChildAnchor, child: PWidget, 
-                                       layout: PTextLayout){.cdecl, dynlib: lib, 
-    importc: "gtk_text_child_anchor_register_child".}
-proc anchor_unregister_child*(anchor: PTextChildAnchor, 
-    child: PWidget){.cdecl, dynlib: lib, 
-                     importc: "gtk_text_child_anchor_unregister_child".}
-proc anchor_queue_resize*(anchor: PTextChildAnchor, 
-                                     layout: PTextLayout){.cdecl, dynlib: lib, 
-    importc: "gtk_text_child_anchor_queue_resize".}
-proc text_anchored_child_set_layout*(child: PWidget, layout: PTextLayout){.
-    cdecl, dynlib: lib, importc: "gtk_text_anchored_child_set_layout".}
-proc spew*(layout: PTextLayout){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_spew".}
-const                         # GTK_TEXT_VIEW_PRIORITY_VALIDATE* = GDK_PRIORITY_REDRAW + 5
-  bm_TGtkTextView_editable* = 0x0001'i16
-  bp_TGtkTextView_editable* = 0'i16
-  bm_TGtkTextView_overwrite_mode* = 0x0002'i16
-  bp_TGtkTextView_overwrite_mode* = 1'i16
-  bm_TGtkTextView_cursor_visible* = 0x0004'i16
-  bp_TGtkTextView_cursor_visible* = 2'i16
-  bm_TGtkTextView_need_im_reset* = 0x0008'i16
-  bp_TGtkTextView_need_im_reset* = 3'i16
-  bm_TGtkTextView_just_selected_element* = 0x0010'i16
-  bp_TGtkTextView_just_selected_element* = 4'i16
-  bm_TGtkTextView_disable_scroll_on_focus* = 0x0020'i16
-  bp_TGtkTextView_disable_scroll_on_focus* = 5'i16
-  bm_TGtkTextView_onscreen_validated* = 0x0040'i16
-  bp_TGtkTextView_onscreen_validated* = 6'i16
-  bm_TGtkTextView_mouse_cursor_obscured* = 0x0080'i16
-  bp_TGtkTextView_mouse_cursor_obscured* = 7'i16
-
-proc TYPE_TEXT_VIEW*(): GType
-proc TEXT_VIEW*(obj: pointer): PTextView
-proc TEXT_VIEW_CLASS*(klass: pointer): PTextViewClass
-proc IS_TEXT_VIEW*(obj: pointer): bool
-proc IS_TEXT_VIEW_CLASS*(klass: pointer): bool
-proc TEXT_VIEW_GET_CLASS*(obj: pointer): PTextViewClass
-proc editable*(a: PTextView): guint
-proc set_editable*(a: PTextView, `editable`: guint)
-proc overwrite_mode*(a: PTextView): guint
-proc set_overwrite_mode*(a: PTextView, `overwrite_mode`: guint)
-proc cursor_visible*(a: PTextView): guint
-proc set_cursor_visible*(a: PTextView, `cursor_visible`: guint)
-proc need_im_reset*(a: PTextView): guint
-proc set_need_im_reset*(a: PTextView, `need_im_reset`: guint)
-proc just_selected_element*(a: PTextView): guint
-proc set_just_selected_element*(a: PTextView, `just_selected_element`: guint)
-proc disable_scroll_on_focus*(a: PTextView): guint
-proc set_disable_scroll_on_focus*(a: PTextView, 
-                                  `disable_scroll_on_focus`: guint)
-proc onscreen_validated*(a: PTextView): guint
-proc set_onscreen_validated*(a: PTextView, `onscreen_validated`: guint)
-proc mouse_cursor_obscured*(a: PTextView): guint
-proc set_mouse_cursor_obscured*(a: PTextView, `mouse_cursor_obscured`: guint)
-proc text_view_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_text_view_get_type".}
-proc text_view_new*(): PTextView{.cdecl, dynlib: lib, 
-                                  importc: "gtk_text_view_new".}
-proc text_view_new*(buffer: PTextBuffer): PTextView{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_new_with_buffer".}
-proc set_buffer*(text_view: PTextView, buffer: PTextBuffer){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_buffer".}
-proc get_buffer*(text_view: PTextView): PTextBuffer{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_buffer".}
-proc scroll_to_iter*(text_view: PTextView, iter: PTextIter, 
-                               within_margin: gdouble, use_align: gboolean, 
-                               xalign: gdouble, yalign: gdouble): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_scroll_to_iter".}
-proc scroll_to_mark*(text_view: PTextView, mark: PTextMark, 
-                               within_margin: gdouble, use_align: gboolean, 
-                               xalign: gdouble, yalign: gdouble){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_scroll_to_mark".}
-proc scroll_mark_onscreen*(text_view: PTextView, mark: PTextMark){.
-    cdecl, dynlib: lib, importc: "gtk_text_view_scroll_mark_onscreen".}
-proc move_mark_onscreen*(text_view: PTextView, mark: PTextMark): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_move_mark_onscreen".}
-proc place_cursor_onscreen*(text_view: PTextView): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_place_cursor_onscreen".}
-proc get_visible_rect*(text_view: PTextView, 
-                                 visible_rect: gdk2.PRectangle){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_visible_rect".}
-proc set_cursor_visible*(text_view: PTextView, setting: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_text_view_set_cursor_visible".}
-proc get_cursor_visible*(text_view: PTextView): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_cursor_visible".}
-proc get_iter_location*(text_view: PTextView, iter: PTextIter, 
-                                  location: gdk2.PRectangle){.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_get_iter_location".}
-proc get_iter_at_location*(text_view: PTextView, iter: PTextIter, 
-                                     x: gint, y: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_get_iter_at_location".}
-proc get_line_yrange*(text_view: PTextView, iter: PTextIter, y: Pgint, 
-                                height: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_get_line_yrange".}
-proc get_line_at_y*(text_view: PTextView, target_iter: PTextIter, 
-                              y: gint, line_top: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_get_line_at_y".}
-proc buffer_to_window_coords*(text_view: PTextView, 
-                                        win: TTextWindowType, buffer_x: gint, 
-                                        buffer_y: gint, window_x: Pgint, 
-                                        window_y: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_buffer_to_window_coords".}
-proc window_to_buffer_coords*(text_view: PTextView, 
-                                        win: TTextWindowType, window_x: gint, 
-                                        window_y: gint, buffer_x: Pgint, 
-                                        buffer_y: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_window_to_buffer_coords".}
-proc get_window*(text_view: PTextView, win: TTextWindowType): gdk2.PWindow{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_get_window".}
-proc get_window_type*(text_view: PTextView, window: gdk2.PWindow): TTextWindowType{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_get_window_type".}
-proc set_border_window_size*(text_view: PTextView, 
-                                       thetype: TTextWindowType, size: gint){.
-    cdecl, dynlib: lib, importc: "gtk_text_view_set_border_window_size".}
-proc get_border_window_size*(text_view: PTextView, 
-                                       thetype: TTextWindowType): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_border_window_size".}
-proc forward_display_line*(text_view: PTextView, iter: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_forward_display_line".}
-proc backward_display_line*(text_view: PTextView, iter: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_backward_display_line".}
-proc forward_display_line_end*(text_view: PTextView, iter: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_forward_display_line_end".}
-proc backward_display_line_start*(text_view: PTextView, 
-    iter: PTextIter): gboolean{.cdecl, dynlib: lib, importc: "gtk_text_view_backward_display_line_start".}
-proc starts_display_line*(text_view: PTextView, iter: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_starts_display_line".}
-proc move_visually*(text_view: PTextView, iter: PTextIter, count: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_move_visually".}
-proc add_child_at_anchor*(text_view: PTextView, child: PWidget, 
-                                    anchor: PTextChildAnchor){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_add_child_at_anchor".}
-proc add_child_in_window*(text_view: PTextView, child: PWidget, 
-                                    which_window: TTextWindowType, xpos: gint, 
-                                    ypos: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_add_child_in_window".}
-proc move_child*(text_view: PTextView, child: PWidget, xpos: gint, 
-                           ypos: gint){.cdecl, dynlib: lib, 
-                                        importc: "gtk_text_view_move_child".}
-proc set_wrap_mode*(text_view: PTextView, wrap_mode: TWrapMode){.
-    cdecl, dynlib: lib, importc: "gtk_text_view_set_wrap_mode".}
-proc get_wrap_mode*(text_view: PTextView): TWrapMode{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_wrap_mode".}
-proc set_editable*(text_view: PTextView, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_editable".}
-proc get_editable*(text_view: PTextView): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_editable".}
-proc set_pixels_above_lines*(text_view: PTextView, 
-                                       pixels_above_lines: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_pixels_above_lines".}
-proc get_pixels_above_lines*(text_view: PTextView): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_pixels_above_lines".}
-proc set_pixels_below_lines*(text_view: PTextView, 
-                                       pixels_below_lines: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_pixels_below_lines".}
-proc get_pixels_below_lines*(text_view: PTextView): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_pixels_below_lines".}
-proc set_pixels_inside_wrap*(text_view: PTextView, 
-                                       pixels_inside_wrap: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_pixels_inside_wrap".}
-proc get_pixels_inside_wrap*(text_view: PTextView): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_pixels_inside_wrap".}
-proc set_justification*(text_view: PTextView, 
-                                  justification: TJustification){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_justification".}
-proc get_justification*(text_view: PTextView): TJustification{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_justification".}
-proc set_left_margin*(text_view: PTextView, left_margin: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_left_margin".}
-proc get_left_margin*(text_view: PTextView): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_get_left_margin".}
-proc set_right_margin*(text_view: PTextView, right_margin: gint){.
-    cdecl, dynlib: lib, importc: "gtk_text_view_set_right_margin".}
-proc get_right_margin*(text_view: PTextView): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_right_margin".}
-proc set_indent*(text_view: PTextView, indent: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_indent".}
-proc get_indent*(text_view: PTextView): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_get_indent".}
-proc set_tabs*(text_view: PTextView, tabs: pango.PTabArray){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_tabs".}
-proc get_tabs*(text_view: PTextView): pango.PTabArray{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_tabs".}
-proc get_default_attributes*(text_view: PTextView): PTextAttributes{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_get_default_attributes".}
-const 
-  bm_TGtkTipsQuery_emit_always* = 0x0001'i16
-  bp_TGtkTipsQuery_emit_always* = 0'i16
-  bm_TGtkTipsQuery_in_query* = 0x0002'i16
-  bp_TGtkTipsQuery_in_query* = 1'i16
-
-proc TYPE_TIPS_QUERY*(): GType
-proc TIPS_QUERY*(obj: pointer): PTipsQuery
-proc TIPS_QUERY_CLASS*(klass: pointer): PTipsQueryClass
-proc IS_TIPS_QUERY*(obj: pointer): bool
-proc IS_TIPS_QUERY_CLASS*(klass: pointer): bool
-proc TIPS_QUERY_GET_CLASS*(obj: pointer): PTipsQueryClass
-proc emit_always*(a: PTipsQuery): guint
-proc set_emit_always*(a: PTipsQuery, `emit_always`: guint)
-proc in_query*(a: PTipsQuery): guint
-proc set_in_query*(a: PTipsQuery, `in_query`: guint)
-proc tips_query_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_tips_query_get_type".}
-proc tips_query_new*(): PTipsQuery{.cdecl, dynlib: lib, 
-                                    importc: "gtk_tips_query_new".}
-proc start_query*(tips_query: PTipsQuery){.cdecl, dynlib: lib, 
-    importc: "gtk_tips_query_start_query".}
-proc stop_query*(tips_query: PTipsQuery){.cdecl, dynlib: lib, 
-    importc: "gtk_tips_query_stop_query".}
-proc set_caller*(tips_query: PTipsQuery, caller: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_tips_query_set_caller".}
-proc set_labels*(tips_query: PTipsQuery, label_inactive: cstring, 
-                            label_no_tip: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_tips_query_set_labels".}
-const 
-  bm_TGtkTooltips_delay* = 0x3FFFFFFF'i32
-  bp_TGtkTooltips_delay* = 0'i32
-  bm_TGtkTooltips_enabled* = 0x40000000'i32
-  bp_TGtkTooltips_enabled* = 30'i32
-  bm_TGtkTooltips_have_grab* = 0x80000000'i32
-  bp_TGtkTooltips_have_grab* = 31'i32
-  bm_TGtkTooltips_use_sticky_delay* = 0x00000001'i32
-  bp_TGtkTooltips_use_sticky_delay* = 0'i32
-
-proc TYPE_TOOLTIPS*(): GType
-proc TOOLTIPS*(obj: pointer): PTooltips
-proc TOOLTIPS_CLASS*(klass: pointer): PTooltipsClass
-proc IS_TOOLTIPS*(obj: pointer): bool
-proc IS_TOOLTIPS_CLASS*(klass: pointer): bool
-proc TOOLTIPS_GET_CLASS*(obj: pointer): PTooltipsClass
-proc delay*(a: PTooltips): guint
-proc set_delay*(a: PTooltips, `delay`: guint)
-proc enabled*(a: PTooltips): guint
-proc set_enabled*(a: PTooltips, `enabled`: guint)
-proc have_grab*(a: PTooltips): guint
-proc set_have_grab*(a: PTooltips, `have_grab`: guint)
-proc use_sticky_delay*(a: PTooltips): guint
-proc set_use_sticky_delay*(a: PTooltips, `use_sticky_delay`: guint)
-proc tooltips_get_type*(): TType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_tooltips_get_type".}
-proc tooltips_new*(): PTooltips{.cdecl, dynlib: lib, importc: "gtk_tooltips_new".}
-proc enable*(tooltips: PTooltips){.cdecl, dynlib: lib, 
-    importc: "gtk_tooltips_enable".}
-proc disable*(tooltips: PTooltips){.cdecl, dynlib: lib, 
-    importc: "gtk_tooltips_disable".}
-proc set_tip*(tooltips: PTooltips, widget: PWidget, tip_text: cstring, 
-                       tip_private: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_tooltips_set_tip".}
-proc tooltips_data_get*(widget: PWidget): PTooltipsData{.cdecl, dynlib: lib, 
-    importc: "gtk_tooltips_data_get".}
-proc force_window*(tooltips: PTooltips){.cdecl, dynlib: lib, 
-    importc: "gtk_tooltips_force_window".}
-proc tooltips_toggle_keyboard_mode*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "_gtk_tooltips_toggle_keyboard_mode".}
-const 
-  bm_TGtkToolbar_style_set* = 0x0001'i16
-  bp_TGtkToolbar_style_set* = 0'i16
-  bm_TGtkToolbar_icon_size_set* = 0x0002'i16
-  bp_TGtkToolbar_icon_size_set* = 1'i16
-
-proc TYPE_TOOLBAR*(): GType
-proc TOOLBAR*(obj: pointer): PToolbar
-proc TOOLBAR_CLASS*(klass: pointer): PToolbarClass
-proc IS_TOOLBAR*(obj: pointer): bool
-proc IS_TOOLBAR_CLASS*(klass: pointer): bool
-proc TOOLBAR_GET_CLASS*(obj: pointer): PToolbarClass
-proc style_set*(a: PToolbar): guint
-proc set_style_set*(a: PToolbar, `style_set`: guint)
-proc icon_size_set*(a: PToolbar): guint
-proc set_icon_size_set*(a: PToolbar, `icon_size_set`: guint)
-proc toolbar_get_type*(): TType{.cdecl, dynlib: lib, 
-                                 importc: "gtk_toolbar_get_type".}
-proc toolbar_new*(): PToolbar{.cdecl, dynlib: lib, importc: "gtk_toolbar_new".}
-proc append_item*(toolbar: PToolbar, text: cstring, 
-                          tooltip_text: cstring, tooltip_private_text: cstring, 
-                          icon: PWidget, callback: TSignalFunc, 
-                          user_data: gpointer): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_append_item".}
-proc prepend_item*(toolbar: PToolbar, text: cstring, 
-                           tooltip_text: cstring, tooltip_private_text: cstring, 
-                           icon: PWidget, callback: TSignalFunc, 
-                           user_data: gpointer): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_prepend_item".}
-proc insert_item*(toolbar: PToolbar, text: cstring, 
-                          tooltip_text: cstring, tooltip_private_text: cstring, 
-                          icon: PWidget, callback: TSignalFunc, 
-                          user_data: gpointer, position: gint): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_toolbar_insert_item".}
-proc insert_stock*(toolbar: PToolbar, stock_id: cstring, 
-                           tooltip_text: cstring, tooltip_private_text: cstring, 
-                           callback: TSignalFunc, user_data: gpointer, 
-                           position: gint): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_insert_stock".}
-proc append_space*(toolbar: PToolbar){.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_append_space".}
-proc prepend_space*(toolbar: PToolbar){.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_prepend_space".}
-proc insert_space*(toolbar: PToolbar, position: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_toolbar_insert_space".}
-proc remove_space*(toolbar: PToolbar, position: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_toolbar_remove_space".}
-proc append_element*(toolbar: PToolbar, thetype: TToolbarChildType, 
-                             widget: PWidget, text: cstring, 
-                             tooltip_text: cstring, 
-                             tooltip_private_text: cstring, icon: PWidget, 
-                             callback: TSignalFunc, user_data: gpointer): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_toolbar_append_element".}
-proc prepend_element*(toolbar: PToolbar, thetype: TToolbarChildType, 
-                              widget: PWidget, text: cstring, 
-                              tooltip_text: cstring, 
-                              tooltip_private_text: cstring, icon: PWidget, 
-                              callback: TSignalFunc, user_data: gpointer): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_toolbar_prepend_element".}
-proc insert_element*(toolbar: PToolbar, thetype: TToolbarChildType, 
-                             widget: PWidget, text: cstring, 
-                             tooltip_text: cstring, 
-                             tooltip_private_text: cstring, icon: PWidget, 
-                             callback: TSignalFunc, user_data: gpointer, 
-                             position: gint): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_insert_element".}
-proc append_widget*(toolbar: PToolbar, widget: PWidget, 
-                            tooltip_text: cstring, tooltip_private_text: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_toolbar_append_widget".}
-proc prepend_widget*(toolbar: PToolbar, widget: PWidget, 
-                             tooltip_text: cstring, 
-                             tooltip_private_text: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_prepend_widget".}
-proc insert_widget*(toolbar: PToolbar, widget: PWidget, 
-                            tooltip_text: cstring, 
-                            tooltip_private_text: cstring, position: gint){.
-    cdecl, dynlib: lib, importc: "gtk_toolbar_insert_widget".}
-proc set_orientation*(toolbar: PToolbar, orientation: TOrientation){.
-    cdecl, dynlib: lib, importc: "gtk_toolbar_set_orientation".}
-proc set_style*(toolbar: PToolbar, style: TToolbarStyle){.cdecl, 
-    dynlib: lib, importc: "gtk_toolbar_set_style".}
-proc set_icon_size*(toolbar: PToolbar, icon_size: TIconSize){.cdecl, 
-    dynlib: lib, importc: "gtk_toolbar_set_icon_size".}
-proc set_tooltips*(toolbar: PToolbar, enable: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_toolbar_set_tooltips".}
-proc unset_style*(toolbar: PToolbar){.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_unset_style".}
-proc unset_icon_size*(toolbar: PToolbar){.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_unset_icon_size".}
-proc get_orientation*(toolbar: PToolbar): TOrientation{.cdecl, 
-    dynlib: lib, importc: "gtk_toolbar_get_orientation".}
-proc get_style*(toolbar: PToolbar): TToolbarStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_get_style".}
-proc get_icon_size*(toolbar: PToolbar): TIconSize{.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_get_icon_size".}
-proc get_tooltips*(toolbar: PToolbar): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_get_tooltips".}
-const 
-  bm_TGtkTree_selection_mode* = 0x0003'i16
-  bp_TGtkTree_selection_mode* = 0'i16
-  bm_TGtkTree_view_mode* = 0x0004'i16
-  bp_TGtkTree_view_mode* = 2'i16
-  bm_TGtkTree_view_line* = 0x0008'i16
-  bp_TGtkTree_view_line* = 3'i16
-
-proc TYPE_TREE*(): GType
-proc TREE*(obj: pointer): PTree
-proc TREE_CLASS*(klass: pointer): PTreeClass
-proc IS_TREE*(obj: pointer): bool
-proc IS_TREE_CLASS*(klass: pointer): bool
-proc TREE_GET_CLASS*(obj: pointer): PTreeClass
-proc IS_ROOT_TREE*(obj: pointer): bool
-proc TREE_ROOT_TREE*(obj: pointer): PTree
-proc TREE_SELECTION_OLD*(obj: pointer): PGList
-proc selection_mode*(a: PTree): guint
-proc set_selection_mode*(a: PTree, `selection_mode`: guint)
-proc view_mode*(a: PTree): guint
-proc set_view_mode*(a: PTree, `view_mode`: guint)
-proc view_line*(a: PTree): guint
-proc set_view_line*(a: PTree, `view_line`: guint)
-proc tree_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_tree_get_type".}
-proc tree_new*(): PTree{.cdecl, dynlib: lib, importc: "gtk_tree_new".}
-proc append*(tree: PTree, tree_item: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_append".}
-proc prepend*(tree: PTree, tree_item: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_prepend".}
-proc insert*(tree: PTree, tree_item: PWidget, position: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_insert".}
-proc remove_items*(tree: PTree, items: PGList){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_remove_items".}
-proc clear_items*(tree: PTree, start: gint, theEnd: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_clear_items".}
-proc select_item*(tree: PTree, item: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_select_item".}
-proc unselect_item*(tree: PTree, item: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_unselect_item".}
-proc select_child*(tree: PTree, tree_item: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_select_child".}
-proc unselect_child*(tree: PTree, tree_item: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_unselect_child".}
-proc child_position*(tree: PTree, child: PWidget): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_child_position".}
-proc set_selection_mode*(tree: PTree, mode: TSelectionMode){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_set_selection_mode".}
-proc set_view_mode*(tree: PTree, mode: TTreeViewMode){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_set_view_mode".}
-proc set_view_lines*(tree: PTree, flag: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_set_view_lines".}
-proc remove_item*(tree: PTree, child: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_remove_item".}
-proc TYPE_TREE_DRAG_SOURCE*(): GType
-proc TREE_DRAG_SOURCE*(obj: pointer): PTreeDragSource
-proc IS_TREE_DRAG_SOURCE*(obj: pointer): bool
-proc TREE_DRAG_SOURCE_GET_IFACE*(obj: pointer): PTreeDragSourceIface
-proc tree_drag_source_get_type*(): GType{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_drag_source_get_type".}
-proc source_row_draggable*(drag_source: PTreeDragSource, 
-                                     path: PTreePath): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_drag_source_row_draggable".}
-proc source_drag_data_delete*(drag_source: PTreeDragSource, 
-                                        path: PTreePath): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_drag_source_drag_data_delete".}
-proc source_drag_data_get*(drag_source: PTreeDragSource, 
-                                     path: PTreePath, 
-                                     selection_data: PSelectionData): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_drag_source_drag_data_get".}
-proc TYPE_TREE_DRAG_DEST*(): GType
-proc TREE_DRAG_DEST*(obj: pointer): PTreeDragDest
-proc IS_TREE_DRAG_DEST*(obj: pointer): bool
-proc TREE_DRAG_DEST_GET_IFACE*(obj: pointer): PTreeDragDestIface
-proc tree_drag_dest_get_type*(): GType{.cdecl, dynlib: lib, 
-                                        importc: "gtk_tree_drag_dest_get_type".}
-proc dest_drag_data_received*(drag_dest: PTreeDragDest, 
-                                        dest: PTreePath, 
-                                        selection_data: PSelectionData): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_drag_dest_drag_data_received".}
-proc dest_row_drop_possible*(drag_dest: PTreeDragDest, 
-                                       dest_path: PTreePath, 
-                                       selection_data: PSelectionData): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_drag_dest_row_drop_possible".}
-proc tree_set_row_drag_data*(selection_data: PSelectionData, 
-                             tree_model: PTreeModel, path: PTreePath): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_set_row_drag_data".}
-const 
-  bm_TGtkTreeItem_expanded* = 0x0001'i16
-  bp_TGtkTreeItem_expanded* = 0'i16
-
-proc TYPE_TREE_ITEM*(): GType
-proc TREE_ITEM*(obj: pointer): PTreeItem
-proc TREE_ITEM_CLASS*(klass: pointer): PTreeItemClass
-proc IS_TREE_ITEM*(obj: pointer): bool
-proc IS_TREE_ITEM_CLASS*(klass: pointer): bool
-proc TREE_ITEM_GET_CLASS*(obj: pointer): PTreeItemClass
-proc TREE_ITEM_SUBTREE*(obj: pointer): PWidget
-proc expanded*(a: PTreeItem): guint
-proc set_expanded*(a: PTreeItem, `expanded`: guint)
-proc tree_item_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_tree_item_get_type".}
-proc tree_item_new*(): PTreeItem{.cdecl, dynlib: lib, 
-                                  importc: "gtk_tree_item_new".}
-proc tree_item_new*(`label`: cstring): PTreeItem{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_item_new_with_label".}
-proc set_subtree*(tree_item: PTreeItem, subtree: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_item_set_subtree".}
-proc remove_subtree*(tree_item: PTreeItem){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_item_remove_subtree".}
-proc select*(tree_item: PTreeItem){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_item_select".}
-proc deselect*(tree_item: PTreeItem){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_item_deselect".}
-proc expand*(tree_item: PTreeItem){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_item_expand".}
-proc collapse*(tree_item: PTreeItem){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_item_collapse".}
-proc TYPE_TREE_SELECTION*(): GType
-proc TREE_SELECTION*(obj: pointer): PTreeSelection
-proc TREE_SELECTION_CLASS*(klass: pointer): PTreeSelectionClass
-proc IS_TREE_SELECTION*(obj: pointer): bool
-proc IS_TREE_SELECTION_CLASS*(klass: pointer): bool
-proc TREE_SELECTION_GET_CLASS*(obj: pointer): PTreeSelectionClass
-proc tree_selection_get_type*(): TType{.cdecl, dynlib: lib, 
-                                        importc: "gtk_tree_selection_get_type".}
-proc set_mode*(selection: PTreeSelection, thetype: TSelectionMode){.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_set_mode".}
-proc get_mode*(selection: PTreeSelection): TSelectionMode{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_selection_get_mode".}
-proc set_select_function*(selection: PTreeSelection, 
-    fun: TTreeSelectionFunc, data: gpointer, destroy: TDestroyNotify){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_selection_set_select_function".}
-proc get_user_data*(selection: PTreeSelection): gpointer{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_selection_get_user_data".}
-proc get_tree_view*(selection: PTreeSelection): PTreeView{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_selection_get_tree_view".}
-proc get_selected*(selection: PTreeSelection, 
-                                  model: PPGtkTreeModel, iter: PTreeIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_get_selected".}
-proc get_selected_rows*(selection: PTreeSelection, 
-                                       model: PPGtkTreeModel): PGList{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_selection_get_selected_rows".}
-proc selected_foreach*(selection: PTreeSelection, 
-                                      fun: TTreeSelectionForeachFunc, 
-                                      data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_selection_selected_foreach".}
-proc select_path*(selection: PTreeSelection, path: PTreePath){.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_select_path".}
-proc unselect_path*(selection: PTreeSelection, path: PTreePath){.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_unselect_path".}
-proc select_iter*(selection: PTreeSelection, iter: PTreeIter){.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_select_iter".}
-proc unselect_iter*(selection: PTreeSelection, iter: PTreeIter){.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_unselect_iter".}
-proc path_is_selected*(selection: PTreeSelection, path: PTreePath): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_path_is_selected".}
-proc iter_is_selected*(selection: PTreeSelection, iter: PTreeIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_iter_is_selected".}
-proc select_all*(selection: PTreeSelection){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_selection_select_all".}
-proc unselect_all*(selection: PTreeSelection){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_selection_unselect_all".}
-proc select_range*(selection: PTreeSelection, 
-                                  start_path: PTreePath, end_path: PTreePath){.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_select_range".}
-const 
-  bm_TGtkTreeStore_columns_dirty* = 0x0001'i16
-  bp_TGtkTreeStore_columns_dirty* = 0'i16
-
-proc TYPE_TREE_STORE*(): GType
-proc TREE_STORE*(obj: pointer): PTreeStore
-proc TREE_STORE_CLASS*(klass: pointer): PTreeStoreClass
-proc IS_TREE_STORE*(obj: pointer): bool
-proc IS_TREE_STORE_CLASS*(klass: pointer): bool
-proc TREE_STORE_GET_CLASS*(obj: pointer): PTreeStoreClass
-proc columns_dirty*(a: PTreeStore): guint
-proc set_columns_dirty*(a: PTreeStore, `columns_dirty`: guint)
-proc tree_store_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_tree_store_get_type".}
-proc tree_store_newv*(n_columns: gint, types: PGType): PTreeStore{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_store_newv".}
-proc set_column_types*(tree_store: PTreeStore, n_columns: gint, 
-                                  types: PGType){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_store_set_column_types".}
-proc set_value*(tree_store: PTreeStore, iter: PTreeIter, 
-                           column: gint, value: PGValue){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_store_set_value".}
-proc remove*(tree_store: PTreeStore, iter: PTreeIter){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_store_remove".}
-proc insert*(tree_store: PTreeStore, iter: PTreeIter, 
-                        parent: PTreeIter, position: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_store_insert".}
-proc insert_before*(tree_store: PTreeStore, iter: PTreeIter, 
-                               parent: PTreeIter, sibling: PTreeIter){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_store_insert_before".}
-proc insert_after*(tree_store: PTreeStore, iter: PTreeIter, 
-                              parent: PTreeIter, sibling: PTreeIter){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_store_insert_after".}
-proc prepend*(tree_store: PTreeStore, iter: PTreeIter, 
-                         parent: PTreeIter){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_store_prepend".}
-proc append*(tree_store: PTreeStore, iter: PTreeIter, 
-                        parent: PTreeIter){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_store_append".}
-proc is_ancestor*(tree_store: PTreeStore, iter: PTreeIter, 
-                             descendant: PTreeIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_store_is_ancestor".}
-proc iter_depth*(tree_store: PTreeStore, iter: PTreeIter): gint{.
-    cdecl, dynlib: lib, importc: "gtk_tree_store_iter_depth".}
-proc clear*(tree_store: PTreeStore){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_store_clear".}
-const 
-  bm_TGtkTreeViewColumn_visible* = 0x0001'i16
-  bp_TGtkTreeViewColumn_visible* = 0'i16
-  bm_TGtkTreeViewColumn_resizable* = 0x0002'i16
-  bp_TGtkTreeViewColumn_resizable* = 1'i16
-  bm_TGtkTreeViewColumn_clickable* = 0x0004'i16
-  bp_TGtkTreeViewColumn_clickable* = 2'i16
-  bm_TGtkTreeViewColumn_dirty* = 0x0008'i16
-  bp_TGtkTreeViewColumn_dirty* = 3'i16
-  bm_TGtkTreeViewColumn_show_sort_indicator* = 0x0010'i16
-  bp_TGtkTreeViewColumn_show_sort_indicator* = 4'i16
-  bm_TGtkTreeViewColumn_maybe_reordered* = 0x0020'i16
-  bp_TGtkTreeViewColumn_maybe_reordered* = 5'i16
-  bm_TGtkTreeViewColumn_reorderable* = 0x0040'i16
-  bp_TGtkTreeViewColumn_reorderable* = 6'i16
-  bm_TGtkTreeViewColumn_use_resized_width* = 0x0080'i16
-  bp_TGtkTreeViewColumn_use_resized_width* = 7'i16
-
-proc TYPE_TREE_VIEW_COLUMN*(): GType
-proc TREE_VIEW_COLUMN*(obj: pointer): PTreeViewColumn
-proc TREE_VIEW_COLUMN_CLASS*(klass: pointer): PTreeViewColumnClass
-proc IS_TREE_VIEW_COLUMN*(obj: pointer): bool
-proc IS_TREE_VIEW_COLUMN_CLASS*(klass: pointer): bool
-proc TREE_VIEW_COLUMN_GET_CLASS*(obj: pointer): PTreeViewColumnClass
-proc visible*(a: PTreeViewColumn): guint
-proc set_visible*(a: PTreeViewColumn, `visible`: guint)
-proc resizable*(a: PTreeViewColumn): guint
-proc set_resizable*(a: PTreeViewColumn, `resizable`: guint)
-proc clickable*(a: PTreeViewColumn): guint
-proc set_clickable*(a: PTreeViewColumn, `clickable`: guint)
-proc dirty*(a: PTreeViewColumn): guint
-proc set_dirty*(a: PTreeViewColumn, `dirty`: guint)
-proc show_sort_indicator*(a: PTreeViewColumn): guint
-proc set_show_sort_indicator*(a: PTreeViewColumn, 
-                              `show_sort_indicator`: guint)
-proc maybe_reordered*(a: PTreeViewColumn): guint
-proc set_maybe_reordered*(a: PTreeViewColumn, `maybe_reordered`: guint)
-proc reorderable*(a: PTreeViewColumn): guint
-proc set_reorderable*(a: PTreeViewColumn, `reorderable`: guint)
-proc use_resized_width*(a: PTreeViewColumn): guint
-proc set_use_resized_width*(a: PTreeViewColumn, `use_resized_width`: guint)
-proc tree_view_column_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_get_type".}
-proc tree_view_column_new*(): PTreeViewColumn{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_new".}
-proc column_pack_start*(tree_column: PTreeViewColumn, 
-                                  cell: PCellRenderer, expand: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_pack_start".}
-proc column_pack_end*(tree_column: PTreeViewColumn, 
-                                cell: PCellRenderer, expand: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_pack_end".}
-proc column_clear*(tree_column: PTreeViewColumn){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_clear".}
-proc column_get_cell_renderers*(tree_column: PTreeViewColumn): PGList{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_cell_renderers".}
-proc column_add_attribute*(tree_column: PTreeViewColumn, 
-                                     cell_renderer: PCellRenderer, 
-                                     attribute: cstring, column: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_add_attribute".}
-proc column_set_cell_data_func*(tree_column: PTreeViewColumn, 
-    cell_renderer: PCellRenderer, fun: TTreeCellDataFunc, func_data: gpointer, 
-    destroy: TDestroyNotify){.cdecl, dynlib: lib, importc: "gtk_tree_view_column_set_cell_data_func".}
-proc column_clear_attributes*(tree_column: PTreeViewColumn, 
-                                        cell_renderer: PCellRenderer){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_clear_attributes".}
-proc column_set_spacing*(tree_column: PTreeViewColumn, spacing: gint){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_set_spacing".}
-proc column_get_spacing*(tree_column: PTreeViewColumn): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_get_spacing".}
-proc column_set_visible*(tree_column: PTreeViewColumn, 
-                                   visible: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_set_visible".}
-proc column_get_visible*(tree_column: PTreeViewColumn): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_visible".}
-proc column_set_resizable*(tree_column: PTreeViewColumn, 
-                                     resizable: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_set_resizable".}
-proc column_get_resizable*(tree_column: PTreeViewColumn): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_resizable".}
-proc column_set_sizing*(tree_column: PTreeViewColumn, 
-                                  thetype: TTreeViewColumnSizing){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_set_sizing".}
-proc column_get_sizing*(tree_column: PTreeViewColumn): TTreeViewColumnSizing{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_sizing".}
-proc column_get_width*(tree_column: PTreeViewColumn): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_get_width".}
-proc column_get_fixed_width*(tree_column: PTreeViewColumn): gint{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_fixed_width".}
-proc column_set_fixed_width*(tree_column: PTreeViewColumn, 
-                                       fixed_width: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_set_fixed_width".}
-proc column_set_min_width*(tree_column: PTreeViewColumn, 
-                                     min_width: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_set_min_width".}
-proc column_get_min_width*(tree_column: PTreeViewColumn): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_get_min_width".}
-proc column_set_max_width*(tree_column: PTreeViewColumn, 
-                                     max_width: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_set_max_width".}
-proc column_get_max_width*(tree_column: PTreeViewColumn): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_get_max_width".}
-proc column_clicked*(tree_column: PTreeViewColumn){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_clicked".}
-proc column_set_title*(tree_column: PTreeViewColumn, title: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_set_title".}
-proc column_get_title*(tree_column: PTreeViewColumn): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_get_title".}
-proc column_set_clickable*(tree_column: PTreeViewColumn, 
-                                     clickable: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_set_clickable".}
-proc column_get_clickable*(tree_column: PTreeViewColumn): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_clickable".}
-proc column_set_widget*(tree_column: PTreeViewColumn, widget: PWidget){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_set_widget".}
-proc column_get_widget*(tree_column: PTreeViewColumn): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_get_widget".}
-proc column_set_alignment*(tree_column: PTreeViewColumn, 
-                                     xalign: gfloat){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_set_alignment".}
-proc column_get_alignment*(tree_column: PTreeViewColumn): gfloat{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_alignment".}
-proc column_set_reorderable*(tree_column: PTreeViewColumn, 
-                                       reorderable: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_set_reorderable".}
-proc column_get_reorderable*(tree_column: PTreeViewColumn): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_reorderable".}
-proc column_set_sort_column_id*(tree_column: PTreeViewColumn, 
-    sort_column_id: gint){.cdecl, dynlib: lib, 
-                           importc: "gtk_tree_view_column_set_sort_column_id".}
-proc column_get_sort_column_id*(tree_column: PTreeViewColumn): gint{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_sort_column_id".}
-proc column_set_sort_indicator*(tree_column: PTreeViewColumn, 
-    setting: gboolean){.cdecl, dynlib: lib, 
-                        importc: "gtk_tree_view_column_set_sort_indicator".}
-proc column_get_sort_indicator*(tree_column: PTreeViewColumn): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_sort_indicator".}
-proc column_set_sort_order*(tree_column: PTreeViewColumn, 
-                                      order: TSortType){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_set_sort_order".}
-proc column_get_sort_order*(tree_column: PTreeViewColumn): TSortType{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_sort_order".}
-proc column_cell_set_cell_data*(tree_column: PTreeViewColumn, 
-    tree_model: PTreeModel, iter: PTreeIter, is_expander: gboolean, 
-    is_expanded: gboolean){.cdecl, dynlib: lib, 
-                            importc: "gtk_tree_view_column_cell_set_cell_data".}
-proc column_cell_get_size*(tree_column: PTreeViewColumn, 
-                                     cell_area: gdk2.PRectangle, x_offset: Pgint, 
-                                     y_offset: Pgint, width: Pgint, 
-                                     height: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_cell_get_size".}
-proc column_cell_is_visible*(tree_column: PTreeViewColumn): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_cell_is_visible".}
-proc column_focus_cell*(tree_column: PTreeViewColumn, 
-                                  cell: PCellRenderer){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_focus_cell".}
-proc column_set_expand*(tree_column: PTreeViewColumn, Expand: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_set_expand".}
-proc column_get_expand*(tree_column: PTreeViewColumn): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_expand".}
-const 
-  RBNODE_BLACK* = 1 shl 0
-  RBNODE_RED* = 1 shl 1
-  RBNODE_IS_PARENT* = 1 shl 2
-  RBNODE_IS_SELECTED* = 1 shl 3
-  RBNODE_IS_PRELIT* = 1 shl 4
-  RBNODE_IS_SEMI_COLLAPSED* = 1 shl 5
-  RBNODE_IS_SEMI_EXPANDED* = 1 shl 6
-  RBNODE_INVALID* = 1 shl 7
-  RBNODE_COLUMN_INVALID* = 1 shl 8
-  RBNODE_DESCENDANTS_INVALID* = 1 shl 9
-  RBNODE_NON_COLORS* = RBNODE_IS_PARENT or RBNODE_IS_SELECTED or
-      RBNODE_IS_PRELIT or RBNODE_IS_SEMI_COLLAPSED or RBNODE_IS_SEMI_EXPANDED or
-      RBNODE_INVALID or RBNODE_COLUMN_INVALID or RBNODE_DESCENDANTS_INVALID
-
-const 
-  bm_TGtkRBNode_flags* = 0x3FFF'i16
-  bp_TGtkRBNode_flags* = 0'i16
-  bm_TGtkRBNode_parity* = 0x4000'i16
-  bp_TGtkRBNode_parity* = 14'i16
-
-proc flags*(a: PRBNode): guint
-proc set_flags*(a: PRBNode, `flags`: guint)
-proc parity*(a: PRBNode): guint
-proc set_parity*(a: PRBNode, `parity`: guint)
-proc GET_COLOR*(node: PRBNode): guint
-proc SET_COLOR*(node: PRBNode, color: guint)
-proc GET_HEIGHT*(node: PRBNode): gint
-proc SET_FLAG*(node: PRBNode, flag: guint16)
-proc UNSET_FLAG*(node: PRBNode, flag: guint16)
-proc FLAG_SET*(node: PRBNode, flag: guint): bool
-proc rbtree_push_allocator*(allocator: PGAllocator){.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_push_allocator".}
-proc rbtree_pop_allocator*(){.cdecl, dynlib: lib, 
-                              importc: "_gtk_rbtree_pop_allocator".}
-proc rbtree_new*(): PRBTree{.cdecl, dynlib: lib, importc: "_gtk_rbtree_new".}
-proc free*(tree: PRBTree){.cdecl, dynlib: lib, 
-                                  importc: "_gtk_rbtree_free".}
-proc remove*(tree: PRBTree){.cdecl, dynlib: lib, 
-                                    importc: "_gtk_rbtree_remove".}
-proc destroy*(tree: PRBTree){.cdecl, dynlib: lib, 
-                                     importc: "_gtk_rbtree_destroy".}
-proc insert_before*(tree: PRBTree, node: PRBNode, height: gint, 
-                           valid: gboolean): PRBNode{.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_insert_before".}
-proc insert_after*(tree: PRBTree, node: PRBNode, height: gint, 
-                          valid: gboolean): PRBNode{.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_insert_after".}
-proc remove_node*(tree: PRBTree, node: PRBNode){.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_remove_node".}
-proc reorder*(tree: PRBTree, new_order: Pgint, length: gint){.cdecl, 
-    dynlib: lib, importc: "_gtk_rbtree_reorder".}
-proc find_count*(tree: PRBTree, count: gint): PRBNode{.cdecl, 
-    dynlib: lib, importc: "_gtk_rbtree_find_count".}
-proc node_set_height*(tree: PRBTree, node: PRBNode, height: gint){.
-    cdecl, dynlib: lib, importc: "_gtk_rbtree_node_set_height".}
-proc node_mark_invalid*(tree: PRBTree, node: PRBNode){.cdecl, 
-    dynlib: lib, importc: "_gtk_rbtree_node_mark_invalid".}
-proc node_mark_valid*(tree: PRBTree, node: PRBNode){.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_node_mark_valid".}
-proc column_invalid*(tree: PRBTree){.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_column_invalid".}
-proc mark_invalid*(tree: PRBTree){.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_mark_invalid".}
-proc set_fixed_height*(tree: PRBTree, height: gint){.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_set_fixed_height".}
-proc node_find_offset*(tree: PRBTree, node: PRBNode): gint{.cdecl, 
-    dynlib: lib, importc: "_gtk_rbtree_node_find_offset".}
-proc node_find_parity*(tree: PRBTree, node: PRBNode): gint{.cdecl, 
-    dynlib: lib, importc: "_gtk_rbtree_node_find_parity".}
-proc traverse*(tree: PRBTree, node: PRBNode, order: TGTraverseType, 
-                      fun: TRBTreeTraverseFunc, data: gpointer){.cdecl, 
-    dynlib: lib, importc: "_gtk_rbtree_traverse".}
-proc next*(tree: PRBTree, node: PRBNode): PRBNode{.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_next".}
-proc prev*(tree: PRBTree, node: PRBNode): PRBNode{.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_prev".}
-proc get_depth*(tree: PRBTree): gint{.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_get_depth".}
-const 
-  TREE_VIEW_DRAG_WIDTH* = 6
-  TREE_VIEW_IS_LIST* = 1 shl 0
-  TREE_VIEW_SHOW_EXPANDERS* = 1 shl 1
-  TREE_VIEW_IN_COLUMN_RESIZE* = 1 shl 2
-  TREE_VIEW_ARROW_PRELIT* = 1 shl 3
-  TREE_VIEW_HEADERS_VISIBLE* = 1 shl 4
-  TREE_VIEW_DRAW_KEYFOCUS* = 1 shl 5
-  TREE_VIEW_MODEL_SETUP* = 1 shl 6
-  TREE_VIEW_IN_COLUMN_DRAG* = 1 shl 7
-  DRAG_COLUMN_WINDOW_STATE_UNSET* = 0
-  DRAG_COLUMN_WINDOW_STATE_ORIGINAL* = 1
-  DRAG_COLUMN_WINDOW_STATE_ARROW* = 2
-  DRAG_COLUMN_WINDOW_STATE_ARROW_LEFT* = 3
-  DRAG_COLUMN_WINDOW_STATE_ARROW_RIGHT* = 4
-
-proc SET_FLAG*(tree_view: PTreeView, flag: guint)
-proc UNSET_FLAG*(tree_view: PTreeView, flag: guint)
-proc FLAG_SET*(tree_view: PTreeView, flag: guint): bool
-proc HEADER_HEIGHT*(tree_view: PTreeView): int32
-proc COLUMN_REQUESTED_WIDTH*(column: PTreeViewColumn): int32
-proc DRAW_EXPANDERS*(tree_view: PTreeView): bool
-proc COLUMN_DRAG_DEAD_MULTIPLIER*(tree_view: PTreeView): int32
-const 
-  bm_TGtkTreeViewPrivate_scroll_to_use_align* = 0x0001'i16
-  bp_TGtkTreeViewPrivate_scroll_to_use_align* = 0'i16
-  bm_TGtkTreeViewPrivate_fixed_height_check* = 0x0002'i16
-  bp_TGtkTreeViewPrivate_fixed_height_check* = 1'i16
-  bm_TGtkTreeViewPrivate_reorderable* = 0x0004'i16
-  bp_TGtkTreeViewPrivate_reorderable* = 2'i16
-  bm_TGtkTreeViewPrivate_header_has_focus* = 0x0008'i16
-  bp_TGtkTreeViewPrivate_header_has_focus* = 3'i16
-  bm_TGtkTreeViewPrivate_drag_column_window_state* = 0x0070'i16
-  bp_TGtkTreeViewPrivate_drag_column_window_state* = 4'i16
-  bm_TGtkTreeViewPrivate_has_rules* = 0x0080'i16
-  bp_TGtkTreeViewPrivate_has_rules* = 7'i16
-  bm_TGtkTreeViewPrivate_mark_rows_col_dirty* = 0x0100'i16
-  bp_TGtkTreeViewPrivate_mark_rows_col_dirty* = 8'i16
-  bm_TGtkTreeViewPrivate_enable_search* = 0x0200'i16
-  bp_TGtkTreeViewPrivate_enable_search* = 9'i16
-  bm_TGtkTreeViewPrivate_disable_popdown* = 0x0400'i16
-  bp_TGtkTreeViewPrivate_disable_popdown* = 10'i16
-
-proc scroll_to_use_align*(a: PTreeViewPrivate): guint
-proc set_scroll_to_use_align*(a: PTreeViewPrivate, 
-                              `scroll_to_use_align`: guint)
-proc fixed_height_check*(a: PTreeViewPrivate): guint
-proc set_fixed_height_check*(a: PTreeViewPrivate, 
-                             `fixed_height_check`: guint)
-proc reorderable*(a: PTreeViewPrivate): guint
-proc set_reorderable*(a: PTreeViewPrivate, `reorderable`: guint)
-proc header_has_focus*(a: PTreeViewPrivate): guint
-proc set_header_has_focus*(a: PTreeViewPrivate, `header_has_focus`: guint)
-proc drag_column_window_state*(a: PTreeViewPrivate): guint
-proc set_drag_column_window_state*(a: PTreeViewPrivate, 
-                                   `drag_column_window_state`: guint)
-proc has_rules*(a: PTreeViewPrivate): guint
-proc set_has_rules*(a: PTreeViewPrivate, `has_rules`: guint)
-proc mark_rows_col_dirty*(a: PTreeViewPrivate): guint
-proc set_mark_rows_col_dirty*(a: PTreeViewPrivate, 
-                              `mark_rows_col_dirty`: guint)
-proc enable_search*(a: PTreeViewPrivate): guint
-proc set_enable_search*(a: PTreeViewPrivate, `enable_search`: guint)
-proc disable_popdown*(a: PTreeViewPrivate): guint
-proc set_disable_popdown*(a: PTreeViewPrivate, `disable_popdown`: guint)
-proc internal_select_node*(selection: PTreeSelection, 
-    node: PRBNode, tree: PRBTree, path: PTreePath, state: gdk2.TModifierType, 
-    override_browse_mode: gboolean){.cdecl, dynlib: lib, importc: "_gtk_tree_selection_internal_select_node".}
-proc find_node*(tree_view: PTreeView, path: PTreePath, 
-                          tree: var PRBTree, node: var PRBNode): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_find_node".}
-proc find_path*(tree_view: PTreeView, tree: PRBTree, node: PRBNode): PTreePath{.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_find_path".}
-proc child_move_resize*(tree_view: PTreeView, widget: PWidget, 
-                                  x: gint, y: gint, width: gint, height: gint){.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_child_move_resize".}
-proc queue_draw_node*(tree_view: PTreeView, tree: PRBTree, 
-                                node: PRBNode, clip_rect: gdk2.PRectangle){.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_queue_draw_node".}
-proc column_realize_button*(column: PTreeViewColumn){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_column_realize_button".}
-proc column_unrealize_button*(column: PTreeViewColumn){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_column_unrealize_button".}
-proc column_set_tree_view*(column: PTreeViewColumn, 
-                                     tree_view: PTreeView){.cdecl, dynlib: lib, 
-    importc: "_gtk_tree_view_column_set_tree_view".}
-proc column_unset_tree_view*(column: PTreeViewColumn){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_column_unset_tree_view".}
-proc column_set_width*(column: PTreeViewColumn, width: gint){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_column_set_width".}
-proc column_start_drag*(tree_view: PTreeView, column: PTreeViewColumn){.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_column_start_drag".}
-proc column_start_editing*(tree_column: PTreeViewColumn, 
-                                     editable_widget: PCellEditable){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_column_start_editing".}
-proc column_stop_editing*(tree_column: PTreeViewColumn){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_column_stop_editing".}
-proc install_mark_rows_col_dirty*(tree_view: PTreeView){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_install_mark_rows_col_dirty".}
-proc DOgtk_tree_view_column_autosize*(tree_view: PTreeView, 
-                                      column: PTreeViewColumn){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_column_autosize".}
-proc column_has_editable_cell*(column: PTreeViewColumn): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_column_has_editable_cell".}
-proc column_get_edited_cell*(column: PTreeViewColumn): PCellRenderer{.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_column_get_edited_cell".}
-proc column_count_special_cells*(column: PTreeViewColumn): gint{.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_column_count_special_cells".}
-proc column_get_cell_at_pos*(column: PTreeViewColumn, x: gint): PCellRenderer{.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_column_get_cell_at_pos".}
-proc tree_selection_new*(): PTreeSelection{.cdecl, dynlib: lib, 
-    importc: "_gtk_tree_selection_new".}
-proc selection_new*(tree_view: PTreeView): PTreeSelection{.
-    cdecl, dynlib: lib, importc: "_gtk_tree_selection_new_with_tree_view".}
-proc set_tree_view*(selection: PTreeSelection, 
-                                   tree_view: PTreeView){.cdecl, dynlib: lib, 
-    importc: "_gtk_tree_selection_set_tree_view".}
-proc column_cell_render*(tree_column: PTreeViewColumn, 
-                                   window: gdk2.PWindow, 
-                                   background_area: gdk2.PRectangle, 
-                                   cell_area: gdk2.PRectangle, 
-                                   expose_area: gdk2.PRectangle, flags: guint){.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_column_cell_render".}
-proc column_cell_focus*(tree_column: PTreeViewColumn, direction: gint, 
-                                  left: gboolean, right: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_column_cell_focus".}
-proc column_cell_draw_focus*(tree_column: PTreeViewColumn, 
-                                       window: gdk2.PWindow, 
-                                       background_area: gdk2.PRectangle, 
-                                       cell_area: gdk2.PRectangle, 
-                                       expose_area: gdk2.PRectangle, flags: guint){.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_column_cell_draw_focus".}
-proc column_cell_set_dirty*(tree_column: PTreeViewColumn, 
-                                      install_handler: gboolean){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_column_cell_set_dirty".}
-proc column_get_neighbor_sizes*(column: PTreeViewColumn, 
-    cell: PCellRenderer, left: Pgint, right: Pgint){.cdecl, dynlib: lib, 
-    importc: "_gtk_tree_view_column_get_neighbor_sizes".}
-proc TYPE_TREE_VIEW*(): GType
-proc TREE_VIEW*(obj: pointer): PTreeView
-proc TREE_VIEW_CLASS*(klass: pointer): PTreeViewClass
-proc IS_TREE_VIEW*(obj: pointer): bool
-proc IS_TREE_VIEW_CLASS*(klass: pointer): bool
-proc TREE_VIEW_GET_CLASS*(obj: pointer): PTreeViewClass
-proc tree_view_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_tree_view_get_type".}
-proc tree_view_new*(): PTreeView{.cdecl, dynlib: lib, 
-                                  importc: "gtk_tree_view_new".}
-proc tree_view_new*(model: PTreeModel): PTreeView{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_new_with_model".}
-proc get_model*(tree_view: PTreeView): PTreeModel{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_get_model".}
-proc set_model*(tree_view: PTreeView, model: PTreeModel){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_set_model".}
-proc get_selection*(tree_view: PTreeView): PTreeSelection{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_selection".}
-proc get_hadjustment*(tree_view: PTreeView): PAdjustment{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_hadjustment".}
-proc set_hadjustment*(tree_view: PTreeView, adjustment: PAdjustment){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_set_hadjustment".}
-proc get_vadjustment*(tree_view: PTreeView): PAdjustment{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_vadjustment".}
-proc set_vadjustment*(tree_view: PTreeView, adjustment: PAdjustment){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_set_vadjustment".}
-proc get_headers_visible*(tree_view: PTreeView): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_headers_visible".}
-proc set_headers_visible*(tree_view: PTreeView, 
-                                    headers_visible: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_set_headers_visible".}
-proc columns_autosize*(tree_view: PTreeView){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_columns_autosize".}
-proc set_headers_clickable*(tree_view: PTreeView, setting: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_set_headers_clickable".}
-proc set_rules_hint*(tree_view: PTreeView, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_set_rules_hint".}
-proc get_rules_hint*(tree_view: PTreeView): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_rules_hint".}
-proc append_column*(tree_view: PTreeView, column: PTreeViewColumn): gint{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_append_column".}
-proc remove_column*(tree_view: PTreeView, column: PTreeViewColumn): gint{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_remove_column".}
-proc insert_column*(tree_view: PTreeView, column: PTreeViewColumn, 
-                              position: gint): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_insert_column".}
-proc insert_column_with_data_func*(tree_view: PTreeView, 
-    position: gint, title: cstring, cell: PCellRenderer, 
-    fun: TTreeCellDataFunc, data: gpointer, dnotify: TGDestroyNotify): gint{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_insert_column_with_data_func".}
-proc get_column*(tree_view: PTreeView, n: gint): PTreeViewColumn{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_get_column".}
-proc get_columns*(tree_view: PTreeView): PGList{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_get_columns".}
-proc move_column_after*(tree_view: PTreeView, column: PTreeViewColumn, 
-                                  base_column: PTreeViewColumn){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_move_column_after".}
-proc set_expander_column*(tree_view: PTreeView, 
-                                    column: PTreeViewColumn){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_set_expander_column".}
-proc get_expander_column*(tree_view: PTreeView): PTreeViewColumn{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_get_expander_column".}
-proc set_column_drag_function*(tree_view: PTreeView, 
-    fun: TTreeViewColumnDropFunc, user_data: gpointer, destroy: TDestroyNotify){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_set_column_drag_function".}
-proc scroll_to_point*(tree_view: PTreeView, tree_x: gint, tree_y: gint){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_scroll_to_point".}
-proc scroll_to_cell*(tree_view: PTreeView, path: PTreePath, 
-                               column: PTreeViewColumn, use_align: gboolean, 
-                               row_align: gfloat, col_align: gfloat){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_scroll_to_cell".}
-proc row_activated*(tree_view: PTreeView, path: PTreePath, 
-                              column: PTreeViewColumn){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_row_activated".}
-proc expand_all*(tree_view: PTreeView){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_expand_all".}
-proc collapse_all*(tree_view: PTreeView){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_collapse_all".}
-proc expand_row*(tree_view: PTreeView, path: PTreePath, 
-                           open_all: gboolean): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_expand_row".}
-proc collapse_row*(tree_view: PTreeView, path: PTreePath): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_collapse_row".}
-proc map_expanded_rows*(tree_view: PTreeView, 
-                                  fun: TTreeViewMappingFunc, data: gpointer){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_map_expanded_rows".}
-proc row_expanded*(tree_view: PTreeView, path: PTreePath): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_row_expanded".}
-proc set_reorderable*(tree_view: PTreeView, reorderable: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_set_reorderable".}
-proc get_reorderable*(tree_view: PTreeView): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_reorderable".}
-proc set_cursor*(tree_view: PTreeView, path: PTreePath, 
-                           focus_column: PTreeViewColumn, 
-                           start_editing: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_set_cursor".}
-proc set_cursor_on_cell*(tree_view: PTreeView, path: PTreePath, 
-                                   focus_column: PTreeViewColumn, 
-                                   focus_cell: PCellRenderer, 
-                                   start_editing: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_set_cursor_on_cell".}
-proc get_bin_window*(tree_view: PTreeView): gdk2.PWindow{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_bin_window".}
-proc get_cell_area*(tree_view: PTreeView, path: PTreePath, 
-                              column: PTreeViewColumn, rect: gdk2.PRectangle){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_get_cell_area".}
-proc get_background_area*(tree_view: PTreeView, path: PTreePath, 
-                                    column: PTreeViewColumn, rect: gdk2.PRectangle){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_get_background_area".}
-proc get_visible_rect*(tree_view: PTreeView, 
-                                 visible_rect: gdk2.PRectangle){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_visible_rect".}
-proc widget_to_tree_coords*(tree_view: PTreeView, wx: gint, wy: gint, 
-                                      tx: Pgint, ty: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_widget_to_tree_coords".}
-proc tree_to_widget_coords*(tree_view: PTreeView, tx: gint, ty: gint, 
-                                      wx: Pgint, wy: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_tree_to_widget_coords".}
-proc enable_model_drag_source*(tree_view: PTreeView, 
-    start_button_mask: gdk2.TModifierType, targets: PTargetEntry, n_targets: gint, 
-    actions: gdk2.TDragAction){.cdecl, dynlib: lib, 
-                              importc: "gtk_tree_view_enable_model_drag_source".}
-proc enable_model_drag_dest*(tree_view: PTreeView, 
-                                       targets: PTargetEntry, n_targets: gint, 
-                                       actions: gdk2.TDragAction){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_enable_model_drag_dest".}
-proc unset_rows_drag_source*(tree_view: PTreeView){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_unset_rows_drag_source".}
-proc unset_rows_drag_dest*(tree_view: PTreeView){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_unset_rows_drag_dest".}
-proc set_drag_dest_row*(tree_view: PTreeView, path: PTreePath, 
-                                  pos: TTreeViewDropPosition){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_set_drag_dest_row".}
-proc create_row_drag_icon*(tree_view: PTreeView, path: PTreePath): gdk2.PPixmap{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_create_row_drag_icon".}
-proc set_enable_search*(tree_view: PTreeView, enable_search: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_set_enable_search".}
-proc get_enable_search*(tree_view: PTreeView): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_enable_search".}
-proc get_search_column*(tree_view: PTreeView): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_search_column".}
-proc set_search_column*(tree_view: PTreeView, column: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_set_search_column".}
-proc get_search_equal_func*(tree_view: PTreeView): TTreeViewSearchEqualFunc{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_get_search_equal_func".}
-proc set_search_equal_func*(tree_view: PTreeView, search_equal_func: TTreeViewSearchEqualFunc, 
-                                      search_user_data: gpointer, 
-                                      search_destroy: TDestroyNotify){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_set_search_equal_func".}
-proc set_destroy_count_func*(tree_view: PTreeView, 
-                                       fun: TTreeDestroyCountFunc, 
-                                       data: gpointer, destroy: TDestroyNotify){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_set_destroy_count_func".}
-proc TYPE_VBUTTON_BOX*(): GType
-proc VBUTTON_BOX*(obj: pointer): PVButtonBox
-proc VBUTTON_BOX_CLASS*(klass: pointer): PVButtonBoxClass
-proc IS_VBUTTON_BOX*(obj: pointer): bool
-proc IS_VBUTTON_BOX_CLASS*(klass: pointer): bool
-proc VBUTTON_BOX_GET_CLASS*(obj: pointer): PVButtonBoxClass
-proc vbutton_box_get_type*(): TType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_vbutton_box_get_type".}
-proc vbutton_box_new*(): PVButtonBox{.cdecl, dynlib: lib, 
-                                      importc: "gtk_vbutton_box_new".}
-proc TYPE_VIEWPORT*(): GType
-proc VIEWPORT*(obj: pointer): PViewport
-proc VIEWPORT_CLASS*(klass: pointer): PViewportClass
-proc IS_VIEWPORT*(obj: pointer): bool
-proc IS_VIEWPORT_CLASS*(klass: pointer): bool
-proc VIEWPORT_GET_CLASS*(obj: pointer): PViewportClass
-proc viewport_get_type*(): TType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_viewport_get_type".}
-proc viewport_new*(hadjustment: PAdjustment, vadjustment: PAdjustment): PViewport{.
-    cdecl, dynlib: lib, importc: "gtk_viewport_new".}
-proc get_hadjustment*(viewport: PViewport): PAdjustment{.cdecl, 
-    dynlib: lib, importc: "gtk_viewport_get_hadjustment".}
-proc get_vadjustment*(viewport: PViewport): PAdjustment{.cdecl, 
-    dynlib: lib, importc: "gtk_viewport_get_vadjustment".}
-proc set_hadjustment*(viewport: PViewport, adjustment: PAdjustment){.
-    cdecl, dynlib: lib, importc: "gtk_viewport_set_hadjustment".}
-proc set_vadjustment*(viewport: PViewport, adjustment: PAdjustment){.
-    cdecl, dynlib: lib, importc: "gtk_viewport_set_vadjustment".}
-proc set_shadow_type*(viewport: PViewport, thetype: TShadowType){.
-    cdecl, dynlib: lib, importc: "gtk_viewport_set_shadow_type".}
-proc get_shadow_type*(viewport: PViewport): TShadowType{.cdecl, 
-    dynlib: lib, importc: "gtk_viewport_get_shadow_type".}
-proc TYPE_VPANED*(): GType
-proc VPANED*(obj: pointer): PVPaned
-proc VPANED_CLASS*(klass: pointer): PVPanedClass
-proc IS_VPANED*(obj: pointer): bool
-proc IS_VPANED_CLASS*(klass: pointer): bool
-proc VPANED_GET_CLASS*(obj: pointer): PVPanedClass
-proc vpaned_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_vpaned_get_type".}
-proc vpaned_new*(): PVPaned{.cdecl, dynlib: lib, importc: "gtk_vpaned_new".}
-proc TYPE_VRULER*(): GType
-proc VRULER*(obj: pointer): PVRuler
-proc VRULER_CLASS*(klass: pointer): PVRulerClass
-proc IS_VRULER*(obj: pointer): bool
-proc IS_VRULER_CLASS*(klass: pointer): bool
-proc VRULER_GET_CLASS*(obj: pointer): PVRulerClass
-proc vruler_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_vruler_get_type".}
-proc vruler_new*(): PVRuler{.cdecl, dynlib: lib, importc: "gtk_vruler_new".}
-proc TYPE_VSCALE*(): GType
-proc VSCALE*(obj: pointer): PVScale
-proc VSCALE_CLASS*(klass: pointer): PVScaleClass
-proc IS_VSCALE*(obj: pointer): bool
-proc IS_VSCALE_CLASS*(klass: pointer): bool
-proc VSCALE_GET_CLASS*(obj: pointer): PVScaleClass
-proc vscale_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_vscale_get_type".}
-proc vscale_new*(adjustment: PAdjustment): PVScale{.cdecl, dynlib: lib, 
-    importc: "gtk_vscale_new".}
-proc vscale_new*(min: gdouble, max: gdouble, step: gdouble): PVScale{.
-    cdecl, dynlib: lib, importc: "gtk_vscale_new_with_range".}
-proc TYPE_VSCROLLBAR*(): GType
-proc VSCROLLBAR*(obj: pointer): PVScrollbar
-proc VSCROLLBAR_CLASS*(klass: pointer): PVScrollbarClass
-proc IS_VSCROLLBAR*(obj: pointer): bool
-proc IS_VSCROLLBAR_CLASS*(klass: pointer): bool
-proc VSCROLLBAR_GET_CLASS*(obj: pointer): PVScrollbarClass
-proc vscrollbar_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_vscrollbar_get_type".}
-proc vscrollbar_new*(adjustment: PAdjustment): PVScrollbar{.cdecl, dynlib: lib, 
-    importc: "gtk_vscrollbar_new".}
-proc TYPE_VSEPARATOR*(): GType
-proc VSEPARATOR*(obj: pointer): PVSeparator
-proc VSEPARATOR_CLASS*(klass: pointer): PVSeparatorClass
-proc IS_VSEPARATOR*(obj: pointer): bool
-proc IS_VSEPARATOR_CLASS*(klass: pointer): bool
-proc VSEPARATOR_GET_CLASS*(obj: pointer): PVSeparatorClass
-proc vseparator_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_vseparator_get_type".}
-proc vseparator_new*(): PVSeparator{.cdecl, dynlib: lib, 
-                                     importc: "gtk_vseparator_new".}
-proc TYPE_OBJECT*(): GType = 
-  result = gtk2.object_get_type()
-
-proc CHECK_CAST*(instance: Pointer, g_type: GType): PGTypeInstance = 
-  result = G_TYPE_CHECK_INSTANCE_CAST(instance, g_type)
-
-proc CHECK_CLASS_CAST*(g_class: pointer, g_type: GType): Pointer = 
-  result = G_TYPE_CHECK_CLASS_CAST(g_class, g_type)
-
-proc CHECK_GET_CLASS*(instance: Pointer, g_type: GType): PGTypeClass = 
-  result = G_TYPE_INSTANCE_GET_CLASS(instance, g_type)
-
-proc CHECK_TYPE*(instance: Pointer, g_type: GType): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)
-
-proc CHECK_CLASS_TYPE*(g_class: pointer, g_type: GType): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(g_class, g_type)
-
-proc `OBJECT`*(anObject: pointer): PObject = 
-  result = cast[PObject](CHECK_CAST(anObject, gtk2.TYPE_OBJECT()))
-
-proc OBJECT_CLASS*(klass: pointer): PObjectClass = 
-  result = cast[PObjectClass](CHECK_CLASS_CAST(klass, gtk2.TYPE_OBJECT()))
-
-proc IS_OBJECT*(anObject: pointer): bool = 
-  result = CHECK_TYPE(anObject, gtk2.TYPE_OBJECT())
-
-proc IS_OBJECT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, gtk2.TYPE_OBJECT())
-
-proc OBJECT_GET_CLASS*(anObject: pointer): PObjectClass = 
-  result = cast[PObjectClass](CHECK_GET_CLASS(anObject, gtk2.TYPE_OBJECT()))
-
-proc OBJECT_TYPE*(anObject: pointer): GType = 
-  result = G_TYPE_FROM_INSTANCE(anObject)
-
-proc OBJECT_TYPE_NAME*(anObject: pointer): cstring = 
-  result = g_type_name(OBJECT_TYPE(anObject))
-
-proc OBJECT_FLAGS*(obj: pointer): guint32 = 
-  result = (gtk2.`OBJECT`(obj)).flags
-
-proc OBJECT_FLOATING*(obj: pointer): gboolean = 
-  result = ((OBJECT_FLAGS(obj)) and cint(FLOATING)) != 0'i32
-
-proc OBJECT_SET_FLAGS*(obj: pointer, flag: guint32) = 
-  gtk2.`OBJECT`(obj).flags = gtk2.`OBJECT`(obj).flags or flag
-
-proc OBJECT_UNSET_FLAGS*(obj: pointer, flag: guint32) = 
-  gtk2.`OBJECT`(obj).flags = gtk2.`OBJECT`(obj).flags and not (flag)
-
-proc object_data_try_key*(`string`: cstring): TGQuark = 
-  result = g_quark_try_string(`string`)
-
-proc object_data_force_id*(`string`: cstring): TGQuark = 
-  result = g_quark_from_string(`string`)
-
-proc CLASS_NAME*(`class`: pointer): cstring = 
-  result = g_type_name(G_TYPE_FROM_CLASS(`class`))
-
-proc CLASS_TYPE*(`class`: pointer): GType = 
-  result = G_TYPE_FROM_CLASS(`class`)
-
-proc TYPE_IS_OBJECT*(thetype: GType): gboolean = 
-  result = g_type_is_a(thetype, gtk2.TYPE_OBJECT())
-
-proc TYPE_IDENTIFIER*(): GType = 
-  result = identifier_get_type()
-
-proc SIGNAL_FUNC*(f: pointer): TSignalFunc = 
-  result = cast[TSignalFunc](f)
-
-proc type_name*(thetype: GType): cstring = 
-  result = g_type_name(thetype)
-
-proc type_from_name*(name: cstring): GType = 
-  result = g_type_from_name(name)
-
-proc type_parent*(thetype: GType): GType = 
-  result = g_type_parent(thetype)
-
-proc type_is_a*(thetype, is_a_type: GType): gboolean = 
-  result = g_type_is_a(thetype, is_a_type)
-
-proc FUNDAMENTAL_TYPE*(thetype: GType): GType = 
-  result = G_TYPE_FUNDAMENTAL(thetype)
-
-proc VALUE_CHAR*(a: TArg): gchar = 
-  var a = a
-  Result = cast[ptr gchar](addr(a.d))[] 
-
-proc VALUE_UCHAR*(a: TArg): guchar = 
-  var a = a
-  Result = cast[ptr guchar](addr(a.d))[] 
-
-proc VALUE_BOOL*(a: TArg): gboolean = 
-  var a = a
-  Result = cast[ptr gboolean](addr(a.d))[] 
-
-proc VALUE_INT*(a: TArg): gint = 
-  var a = a
-  Result = cast[ptr gint](addr(a.d))[] 
-
-proc VALUE_UINT*(a: TArg): guint = 
-  var a = a
-  Result = cast[ptr guint](addr(a.d))[] 
-
-proc VALUE_LONG*(a: TArg): glong = 
-  var a = a
-  Result = cast[ptr glong](addr(a.d))[] 
-
-proc VALUE_ULONG*(a: TArg): gulong = 
-  var a = a
-  Result = cast[ptr gulong](addr(a.d))[] 
-
-proc VALUE_FLOAT*(a: TArg): gfloat = 
-  var a = a
-  Result = cast[ptr gfloat](addr(a.d))[] 
-
-proc VALUE_DOUBLE*(a: TArg): gdouble = 
-  var a = a
-  Result = cast[ptr gdouble](addr(a.d))[] 
-
-proc VALUE_STRING*(a: TArg): cstring = 
-  var a = a
-  Result = cast[ptr cstring](addr(a.d))[] 
-
-proc VALUE_ENUM*(a: TArg): gint = 
-  var a = a
-  Result = cast[ptr gint](addr(a.d))[] 
-
-proc VALUE_FLAGS*(a: TArg): guint = 
-  var a = a
-  Result = cast[ptr guint](addr(a.d))[] 
-
-proc VALUE_BOXED*(a: TArg): gpointer = 
-  var a = a
-  Result = cast[ptr gpointer](addr(a.d))[] 
-
-proc VALUE_OBJECT*(a: TArg): PObject = 
-  var a = a
-  Result = cast[ptr PObject](addr(a.d))[] 
-
-proc VALUE_POINTER*(a: TArg): GPointer = 
-  var a = a
-  Result = cast[ptr gpointer](addr(a.d))[] 
-
-proc VALUE_SIGNAL*(a: TArg): TArgSignalData = 
-  var a = a
-  Result = cast[ptr TArgSignalData](addr(a.d))[] 
-
-proc RETLOC_CHAR*(a: TArg): cstring = 
-  var a = a
-  Result = cast[ptr cstring](addr(a.d))[] 
-
-proc RETLOC_UCHAR*(a: TArg): Pguchar = 
-  var a = a
-  Result = cast[ptr pguchar](addr(a.d))[] 
-
-proc RETLOC_BOOL*(a: TArg): Pgboolean = 
-  var a = a
-  Result = cast[ptr pgboolean](addr(a.d))[] 
-
-proc RETLOC_INT*(a: TArg): Pgint = 
-  var a = a
-  Result = cast[ptr pgint](addr(a.d))[] 
-
-proc RETLOC_UINT*(a: TArg): Pguint = 
-  var a = a
-  Result = cast[ptr pguint](addr(a.d))[] 
-
-proc RETLOC_LONG*(a: TArg): Pglong = 
-  var a = a
-  Result = cast[ptr pglong](addr(a.d))[] 
-
-proc RETLOC_ULONG*(a: TArg): Pgulong = 
-  var a = a
-  Result = cast[ptr pgulong](addr(a.d))[] 
-
-proc RETLOC_FLOAT*(a: TArg): Pgfloat = 
-  var a = a
-  Result = cast[ptr pgfloat](addr(a.d))[] 
-
-proc RETLOC_DOUBLE*(a: TArg): Pgdouble = 
-  var a = a
-  Result = cast[ptr pgdouble](addr(a.d))[] 
-
-proc RETLOC_STRING*(a: TArg): Ppgchar = 
-  var a = a
-  Result = cast[ptr Ppgchar](addr(a.d))[] 
-
-proc RETLOC_ENUM*(a: TArg): Pgint = 
-  var a = a
-  Result = cast[ptr Pgint](addr(a.d))[] 
-
-proc RETLOC_FLAGS*(a: TArg): Pguint = 
-  var a = a
-  Result = cast[ptr pguint](addr(a.d))[] 
-
-proc RETLOC_BOXED*(a: TArg): Pgpointer = 
-  var a = a
-  Result = cast[ptr pgpointer](addr(a.d))[] 
-
-proc RETLOC_OBJECT*(a: TArg): PPGtkObject = 
-  var a = a
-  Result = cast[ptr ppgtkobject](addr(a.d))[] 
-
-proc RETLOC_POINTER*(a: TArg): Pgpointer = 
-  var a = a
-  Result = cast[ptr pgpointer](addr(a.d))[] 
-
-proc TYPE_WIDGET*(): GType = 
-  result = widget_get_type()
-
-proc WIDGET*(widget: pointer): PWidget = 
-  result = cast[PWidget](CHECK_CAST(widget, TYPE_WIDGET()))
-
-proc WIDGET_CLASS*(klass: pointer): PWidgetClass = 
-  result = cast[PWidgetClass](CHECK_CLASS_CAST(klass, TYPE_WIDGET()))
-
-proc IS_WIDGET*(widget: pointer): bool = 
-  result = CHECK_TYPE(widget, TYPE_WIDGET())
-
-proc IS_WIDGET_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_WIDGET())
-
-proc WIDGET_GET_CLASS*(obj: pointer): PWidgetClass = 
-  result = cast[PWidgetClass](CHECK_GET_CLASS(obj, TYPE_WIDGET()))
-
-proc WIDGET_TYPE*(wid: pointer): GType = 
-  result = OBJECT_TYPE(wid)
-
-proc WIDGET_STATE*(wid: pointer): int32 = 
-  result = (WIDGET(wid)).state
-
-proc WIDGET_SAVED_STATE*(wid: pointer): int32 = 
-  result = (WIDGET(wid)).saved_state
-
-proc WIDGET_FLAGS*(wid: pointer): guint32 = 
-  result = OBJECT_FLAGS(wid)
-
-proc WIDGET_TOPLEVEL*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(TOPLEVEL)) != 0'i32
-
-proc WIDGET_NO_WINDOW*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(NO_WINDOW)) != 0'i32
-
-proc WIDGET_REALIZED*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(constREALIZED)) != 0'i32
-
-proc WIDGET_MAPPED*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(MAPPED)) != 0'i32
-
-proc WIDGET_VISIBLE*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(constVISIBLE)) != 0'i32
-
-proc WIDGET_DRAWABLE*(wid: pointer): gboolean = 
-  result = (WIDGET_VISIBLE(wid)) and (WIDGET_MAPPED(wid))
-
-proc WIDGET_SENSITIVE*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(SENSITIVE)) != 0'i32
-
-proc WIDGET_PARENT_SENSITIVE*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(PARENT_SENSITIVE)) != 0'i32
-
-proc WIDGET_IS_SENSITIVE*(wid: pointer): gboolean = 
-  result = (WIDGET_SENSITIVE(wid)) and (WIDGET_PARENT_SENSITIVE(wid))
-
-proc WIDGET_CAN_FOCUS*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(CAN_FOCUS)) != 0'i32
-
-proc WIDGET_HAS_FOCUS*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(constHAS_FOCUS)) != 0'i32
-
-proc WIDGET_CAN_DEFAULT*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(CAN_DEFAULT)) != 0'i32
-
-proc WIDGET_HAS_DEFAULT*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(HAS_DEFAULT)) != 0'i32
-
-proc WIDGET_HAS_GRAB*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(HAS_GRAB)) != 0'i32
-
-proc WIDGET_RC_STYLE*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(RC_STYLE)) != 0'i32
-
-proc WIDGET_COMPOSITE_CHILD*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(COMPOSITE_CHILD)) != 0'i32
-
-proc WIDGET_APP_PAINTABLE*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(APP_PAINTABLE)) != 0'i32
-
-proc WIDGET_RECEIVES_DEFAULT*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(RECEIVES_DEFAULT)) != 0'i32
-
-proc WIDGET_DOUBLE_BUFFERED*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(DOUBLE_BUFFERED)) != 0'i32
-
-proc TYPE_REQUISITION*(): GType = 
-  result = requisition_get_type()
-
-proc x_set*(a: PWidgetAuxInfo): guint = 
-  result = (a.flag0 and bm_TGtkWidgetAuxInfo_x_set) shr
-      bp_TGtkWidgetAuxInfo_x_set
-
-proc set_x_set*(a: PWidgetAuxInfo, `x_set`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`x_set` shl bp_TGtkWidgetAuxInfo_x_set) and
-      bm_TGtkWidgetAuxInfo_x_set)
-
-proc y_set*(a: PWidgetAuxInfo): guint = 
-  result = (a.flag0 and bm_TGtkWidgetAuxInfo_y_set) shr
-      bp_TGtkWidgetAuxInfo_y_set
-
-proc set_y_set*(a: PWidgetAuxInfo, `y_set`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`y_set` shl bp_TGtkWidgetAuxInfo_y_set) and
-      bm_TGtkWidgetAuxInfo_y_set)
-
-proc widget_set_visual*(widget, visual: pointer) = 
-  if (Widget != nil) and (visual != nil): nil
-  
-proc widget_push_visual*(visual: pointer) = 
-  if (visual != nil): nil
-  
-proc widget_pop_visual*() = 
-  nil
-
-proc widget_set_default_visual*(visual: pointer) = 
-  if (visual != nil): nil
-  
-proc widget_set_rc_style*(widget: pointer) = 
-  set_style(cast[PWidget](widget), nil)
-
-proc widget_restore_default_style*(widget: pointer) = 
-  set_style(cast[PWidget](widget), nil)
-
-proc SET_FLAGS*(wid: PWidget, flags: TWidgetFlags): TWidgetFlags = 
-  cast[pObject](wid).flags = cast[pObject](wid).flags or (flags)
-  result = cast[pObject](wid).flags
-
-proc UNSET_FLAGS*(wid: PWidget, flags: TWidgetFlags): TWidgetFlags = 
-  cast[pObject](wid).flags = cast[pObject](wid).flags and (not (flags))
-  result = cast[pObject](wid).flags
-
-proc TYPE_MISC*(): GType = 
-  result = misc_get_type()
-
-proc MISC*(obj: pointer): PMisc = 
-  result = cast[PMisc](CHECK_CAST(obj, TYPE_MISC()))
-
-proc MISC_CLASS*(klass: pointer): PMiscClass = 
-  result = cast[PMiscClass](CHECK_CLASS_CAST(klass, TYPE_MISC()))
-
-proc IS_MISC*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_MISC())
-
-proc IS_MISC_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_MISC())
-
-proc MISC_GET_CLASS*(obj: pointer): PMiscClass = 
-  result = cast[PMiscClass](CHECK_GET_CLASS(obj, TYPE_MISC()))
-
-proc TYPE_ACCEL_GROUP*(): GType = 
-  result = accel_group_get_type()
-
-proc ACCEL_GROUP*(anObject: pointer): PAccelGroup = 
-  result = cast[PAccelGroup](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_ACCEL_GROUP()))
-
-proc ACCEL_GROUP_CLASS*(klass: pointer): PAccelGroupClass = 
-  result = cast[PAccelGroupClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_ACCEL_GROUP()))
-
-proc IS_ACCEL_GROUP*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_ACCEL_GROUP())
-
-proc IS_ACCEL_GROUP_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_ACCEL_GROUP())
-
-proc ACCEL_GROUP_GET_CLASS*(obj: pointer): PAccelGroupClass = 
-  result = cast[PAccelGroupClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_ACCEL_GROUP()))
-
-proc accel_flags*(a: PAccelKey): guint = 
-  result = (a.flag0 and bm_TGtkAccelKey_accel_flags) shr
-      bp_TGtkAccelKey_accel_flags
-
-proc set_accel_flags*(a: PAccelKey, `accel_flags`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`accel_flags` shl bp_TGtkAccelKey_accel_flags) and
-      bm_TGtkAccelKey_accel_flags)
-
-proc reference*(AccelGroup: PAccelGroup) = 
-  discard g_object_ref(AccelGroup)
-
-proc unref*(AccelGroup: PAccelGroup) = 
-  g_object_unref(AccelGroup)
-
-proc TYPE_CONTAINER*(): GType = 
-  result = container_get_type()
-
-proc CONTAINER*(obj: pointer): PContainer = 
-  result = cast[PContainer](CHECK_CAST(obj, TYPE_CONTAINER()))
-
-proc CONTAINER_CLASS*(klass: pointer): PContainerClass = 
-  result = cast[PContainerClass](CHECK_CLASS_CAST(klass, TYPE_CONTAINER()))
-
-proc IS_CONTAINER*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CONTAINER())
-
-proc IS_CONTAINER_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CONTAINER())
-
-proc CONTAINER_GET_CLASS*(obj: pointer): PContainerClass = 
-  result = cast[PContainerClass](CHECK_GET_CLASS(obj, TYPE_CONTAINER()))
-
-proc IS_RESIZE_CONTAINER*(widget: pointer): bool = 
-  result = (IS_CONTAINER(widget)) and
-      ((resize_mode(cast[PContainer](widget))) != cint(RESIZE_PARENT))
-
-proc border_width*(a: PContainer): guint = 
-  result = (a.Container_flag0 and bm_TGtkContainer_border_width) shr
-      bp_TGtkContainer_border_width
-
-proc need_resize*(a: PContainer): guint = 
-  result = (a.Container_flag0 and bm_TGtkContainer_need_resize) shr
-      bp_TGtkContainer_need_resize
-
-proc set_need_resize*(a: PContainer, `need_resize`: guint) = 
-  a.Container_flag0 = a.Container_flag0 or
-      ((`need_resize` shl bp_TGtkContainer_need_resize) and
-      bm_TGtkContainer_need_resize)
-
-proc resize_mode*(a: PContainer): guint = 
-  result = (a.Container_flag0 and bm_TGtkContainer_resize_mode) shr
-      bp_TGtkContainer_resize_mode
-
-proc set_resize_mode*(a: PContainer, `resize_mode`: guint) = 
-  a.Containerflag0 = a.Containerflag0 or
-      ((`resize_mode` shl bp_TGtkContainer_resize_mode) and
-      bm_TGtkContainer_resize_mode)
-
-proc reallocate_redraws*(a: PContainer): guint = 
-  result = (a.Containerflag0 and bm_TGtkContainer_reallocate_redraws) shr
-      bp_TGtkContainer_reallocate_redraws
-
-proc set_reallocate_redraws*(a: PContainer, `reallocate_redraws`: guint) = 
-  a.Containerflag0 = a.Containerflag0 or
-      ((`reallocate_redraws` shl bp_TGtkContainer_reallocate_redraws) and
-      bm_TGtkContainer_reallocate_redraws)
-
-proc has_focus_chain*(a: PContainer): guint = 
-  result = (a.Containerflag0 and bm_TGtkContainer_has_focus_chain) shr
-      bp_TGtkContainer_has_focus_chain
-
-proc set_has_focus_chain*(a: PContainer, `has_focus_chain`: guint) = 
-  a.Containerflag0 = a.Containerflag0 or
-      ((`has_focus_chain` shl bp_TGtkContainer_has_focus_chain) and
-      bm_TGtkContainer_has_focus_chain)
-
-proc CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID*(anObject: pointer, 
-    property_id: guint, pspec: pointer) = 
-  write(stdout, "WARNING: invalid child property id\x0A")
-
-proc TYPE_BIN*(): GType = 
-  result = bin_get_type()
-
-proc BIN*(obj: pointer): PBin = 
-  result = cast[PBin](CHECK_CAST(obj, TYPE_BIN()))
-
-proc BIN_CLASS*(klass: pointer): PBinClass = 
-  result = cast[PBinClass](CHECK_CLASS_CAST(klass, TYPE_BIN()))
-
-proc IS_BIN*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_BIN())
-
-proc IS_BIN_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_BIN())
-
-proc BIN_GET_CLASS*(obj: pointer): PBinClass = 
-  result = cast[PBinClass](CHECK_GET_CLASS(obj, TYPE_BIN()))
-
-proc TYPE_WINDOW*(): GType = 
-  result = window_get_type()
-
-proc WINDOW*(obj: pointer): PWindow = 
-  result = cast[PWindow](CHECK_CAST(obj, gtk2.TYPE_WINDOW()))
-
-proc WINDOW_CLASS*(klass: pointer): PWindowClass = 
-  result = cast[PWindowClass](CHECK_CLASS_CAST(klass, gtk2.TYPE_WINDOW()))
-
-proc IS_WINDOW*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, gtk2.TYPE_WINDOW())
-
-proc IS_WINDOW_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, gtk2.TYPE_WINDOW())
-
-proc WINDOW_GET_CLASS*(obj: pointer): PWindowClass = 
-  result = cast[PWindowClass](CHECK_GET_CLASS(obj, gtk2.TYPE_WINDOW()))
-
-proc allow_shrink*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_allow_shrink) shr
-      bp_TGtkWindow_allow_shrink
-
-proc set_allow_shrink*(a: gtk2.PWindow, `allow_shrink`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`allow_shrink` shl bp_TGtkWindow_allow_shrink) and
-      bm_TGtkWindow_allow_shrink)
-
-proc allow_grow*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_allow_grow) shr
-      bp_TGtkWindow_allow_grow
-
-proc set_allow_grow*(a: gtk2.PWindow, `allow_grow`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`allow_grow` shl bp_TGtkWindow_allow_grow) and
-      bm_TGtkWindow_allow_grow)
-
-proc configure_notify_received*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_configure_notify_received) shr
-      bp_TGtkWindow_configure_notify_received
-
-proc set_configure_notify_received*(a: gtk2.PWindow, 
-                                    `configure_notify_received`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`configure_notify_received` shl
-      bp_TGtkWindow_configure_notify_received) and
-      bm_TGtkWindow_configure_notify_received)
-
-proc need_default_position*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_need_default_position) shr
-      bp_TGtkWindow_need_default_position
-
-proc set_need_default_position*(a: gtk2.PWindow, `need_default_position`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`need_default_position` shl bp_TGtkWindow_need_default_position) and
-      bm_TGtkWindow_need_default_position)
-
-proc need_default_size*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_need_default_size) shr
-      bp_TGtkWindow_need_default_size
-
-proc set_need_default_size*(a: gtk2.PWindow, `need_default_size`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`need_default_size` shl bp_TGtkWindow_need_default_size) and
-      bm_TGtkWindow_need_default_size)
-
-proc position*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_position) shr
-      bp_TGtkWindow_position
-
-proc get_type*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_type) shr bp_TGtkWindow_type
-
-proc set_type*(a: gtk2.PWindow, `type`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`type` shl bp_TGtkWindow_type) and bm_TGtkWindow_type)
-
-proc has_user_ref_count*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_has_user_ref_count) shr
-      bp_TGtkWindow_has_user_ref_count
-
-proc set_has_user_ref_count*(a: gtk2.PWindow, `has_user_ref_count`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`has_user_ref_count` shl bp_TGtkWindow_has_user_ref_count) and
-      bm_TGtkWindow_has_user_ref_count)
-
-proc has_focus*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_has_focus) shr
-      bp_TGtkWindow_has_focus
-
-proc set_has_focus*(a: gtk2.PWindow, `has_focus`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`has_focus` shl bp_TGtkWindow_has_focus) and bm_TGtkWindow_has_focus)
-
-proc modal*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_modal) shr bp_TGtkWindow_modal
-
-proc set_modal*(a: gtk2.PWindow, `modal`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`modal` shl bp_TGtkWindow_modal) and bm_TGtkWindow_modal)
-
-proc destroy_with_parent*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_destroy_with_parent) shr
-      bp_TGtkWindow_destroy_with_parent
-
-proc set_destroy_with_parent*(a: gtk2.PWindow, `destroy_with_parent`: guint) = 
-  a.Windowflag0 = a.Windowflag0 or
-      ((`destroy_with_parent` shl bp_TGtkWindow_destroy_with_parent) and
-      bm_TGtkWindow_destroy_with_parent)
-
-proc has_frame*(a: gtk2.PWindow): guint = 
-  result = (a.Windowflag0 and bm_TGtkWindow_has_frame) shr
-      bp_TGtkWindow_has_frame
-
-proc set_has_frame*(a: gtk2.PWindow, `has_frame`: guint) = 
-  a.Windowflag0 = a.Windowflag0 or
-      ((`has_frame` shl bp_TGtkWindow_has_frame) and bm_TGtkWindow_has_frame)
-
-proc iconify_initially*(a: gtk2.PWindow): guint = 
-  result = (a.Windowflag0 and bm_TGtkWindow_iconify_initially) shr
-      bp_TGtkWindow_iconify_initially
-
-proc set_iconify_initially*(a: gtk2.PWindow, `iconify_initially`: guint) = 
-  a.Windowflag0 = a.Windowflag0 or
-      ((`iconify_initially` shl bp_TGtkWindow_iconify_initially) and
-      bm_TGtkWindow_iconify_initially)
-
-proc stick_initially*(a: gtk2.PWindow): guint = 
-  result = (a.Windowflag0 and bm_TGtkWindow_stick_initially) shr
-      bp_TGtkWindow_stick_initially
-
-proc set_stick_initially*(a: gtk2.PWindow, `stick_initially`: guint) = 
-  a.Windowflag0 = a.Windowflag0 or
-      ((`stick_initially` shl bp_TGtkWindow_stick_initially) and
-      bm_TGtkWindow_stick_initially)
-
-proc maximize_initially*(a: gtk2.PWindow): guint = 
-  result = (a.Windowflag0 and bm_TGtkWindow_maximize_initially) shr
-      bp_TGtkWindow_maximize_initially
-
-proc set_maximize_initially*(a: gtk2.PWindow, `maximize_initially`: guint) = 
-  a.Windowflag0 = a.Windowflag0 or
-      ((`maximize_initially` shl bp_TGtkWindow_maximize_initially) and
-      bm_TGtkWindow_maximize_initially)
-
-proc decorated*(a: gtk2.PWindow): guint = 
-  result = (a.Windowflag0 and bm_TGtkWindow_decorated) shr
-      bp_TGtkWindow_decorated
-
-proc set_decorated*(a: gtk2.PWindow, `decorated`: guint) = 
-  a.Windowflag0 = a.Windowflag0 or
-      ((`decorated` shl bp_TGtkWindow_decorated) and bm_TGtkWindow_decorated)
-
-proc type_hint*(a: gtk2.PWindow): guint = 
-  result = (a.Windowflag0 and bm_TGtkWindow_type_hint) shr
-      bp_TGtkWindow_type_hint
-
-proc set_type_hint*(a: gtk2.PWindow, `type_hint`: guint) = 
-  a.Windowflag0 = a.Windowflag0 or
-      ((`type_hint` shl bp_TGtkWindow_type_hint) and bm_TGtkWindow_type_hint)
-
-proc gravity*(a: gtk2.PWindow): guint = 
-  result = (a.Windowflag0 and bm_TGtkWindow_gravity) shr
-      bp_TGtkWindow_gravity
-
-proc set_gravity*(a: gtk2.PWindow, `gravity`: guint) = 
-  a.Windowflag0 = a.Windowflag0 or
-      ((`gravity` shl bp_TGtkWindow_gravity) and bm_TGtkWindow_gravity)
-
-proc TYPE_WINDOW_GROUP*(): GType = 
-  result = window_group_get_type()
-
-proc WINDOW_GROUP*(anObject: pointer): PWindowGroup = 
-  result = cast[PWindowGroup](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_WINDOW_GROUP()))
-
-proc WINDOW_GROUP_CLASS*(klass: pointer): PWindowGroupClass = 
-  result = cast[PWindowGroupClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_WINDOW_GROUP()))
-
-proc IS_WINDOW_GROUP*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_WINDOW_GROUP())
-
-proc IS_WINDOW_GROUP_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_WINDOW_GROUP())
-
-proc WINDOW_GROUP_GET_CLASS*(obj: pointer): PWindowGroupClass = 
-  result = cast[PWindowGroupClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_WINDOW_GROUP()))
-
-proc TYPE_LABEL*(): GType = 
-  result = label_get_type()
-
-proc LABEL*(obj: pointer): PLabel = 
-  result = cast[PLabel](CHECK_CAST(obj, TYPE_LABEL()))
-
-proc LABEL_CLASS*(klass: pointer): PLabelClass = 
-  result = cast[PLabelClass](CHECK_CLASS_CAST(klass, TYPE_LABEL()))
-
-proc IS_LABEL*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_LABEL())
-
-proc IS_LABEL_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_LABEL())
-
-proc LABEL_GET_CLASS*(obj: pointer): PLabelClass = 
-  result = cast[PLabelClass](CHECK_GET_CLASS(obj, TYPE_LABEL()))
-
-proc jtype*(a: PLabel): guint = 
-  result = (a.Labelflag0 and bm_TGtkLabel_jtype) shr bp_TGtkLabel_jtype
-
-proc set_jtype*(a: PLabel, `jtype`: guint) = 
-  a.Labelflag0 = a.Labelflag0 or
-      (int16(`jtype` shl bp_TGtkLabel_jtype) and bm_TGtkLabel_jtype)
-
-proc wrap*(a: PLabel): guint = 
-  result = (a.Labelflag0 and bm_TGtkLabel_wrap) shr bp_TGtkLabel_wrap
-
-proc set_wrap*(a: PLabel, `wrap`: guint) = 
-  a.Labelflag0 = a.Labelflag0 or
-      (int16(`wrap` shl bp_TGtkLabel_wrap) and bm_TGtkLabel_wrap)
-
-proc use_underline*(a: PLabel): guint = 
-  result = (a.Labelflag0 and bm_TGtkLabel_use_underline) shr
-      bp_TGtkLabel_use_underline
-
-proc set_use_underline*(a: PLabel, `use_underline`: guint) = 
-  a.Labelflag0 = a.Labelflag0 or
-      (int16(`use_underline` shl bp_TGtkLabel_use_underline) and
-      bm_TGtkLabel_use_underline)
-
-proc use_markup*(a: PLabel): guint = 
-  result = (a.Labelflag0 and bm_TGtkLabel_use_markup) shr
-      bp_TGtkLabel_use_markup
-
-proc set_use_markup*(a: PLabel, `use_markup`: guint) = 
-  a.Labelflag0 = a.Labelflag0 or
-      (int16(`use_markup` shl bp_TGtkLabel_use_markup) and
-      bm_TGtkLabel_use_markup)
-
-proc TYPE_ACCEL_LABEL*(): GType = 
-  result = accel_label_get_type()
-
-proc ACCEL_LABEL*(obj: pointer): PAccelLabel = 
-  result = cast[PAccelLabel](CHECK_CAST(obj, TYPE_ACCEL_LABEL()))
-
-proc ACCEL_LABEL_CLASS*(klass: pointer): PAccelLabelClass = 
-  result = cast[PAccelLabelClass](CHECK_CLASS_CAST(klass, TYPE_ACCEL_LABEL()))
-
-proc IS_ACCEL_LABEL*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_ACCEL_LABEL())
-
-proc IS_ACCEL_LABEL_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ACCEL_LABEL())
-
-proc ACCEL_LABEL_GET_CLASS*(obj: pointer): PAccelLabelClass = 
-  result = cast[PAccelLabelClass](CHECK_GET_CLASS(obj, TYPE_ACCEL_LABEL()))
-
-proc latin1_to_char*(a: PAccelLabelClass): guint = 
-  result = (a.AccelLabelClassflag0 and bm_TGtkAccelLabelClass_latin1_to_char) shr
-      bp_TGtkAccelLabelClass_latin1_to_char
-
-proc set_latin1_to_char*(a: PAccelLabelClass, `latin1_to_char`: guint) = 
-  a.AccelLabelClassflag0 = a.AccelLabelClassflag0 or
-      (int16(`latin1_to_char` shl bp_TGtkAccelLabelClass_latin1_to_char) and
-      bm_TGtkAccelLabelClass_latin1_to_char)
-
-proc accelerator_width*(accel_label: PAccelLabel): guint = 
-  result = get_accel_width(accel_label)
-
-proc TYPE_ACCESSIBLE*(): GType = 
-  result = accessible_get_type()
-
-proc ACCESSIBLE*(obj: pointer): PAccessible = 
-  result = cast[PAccessible](CHECK_CAST(obj, TYPE_ACCESSIBLE()))
-
-proc ACCESSIBLE_CLASS*(klass: pointer): PAccessibleClass = 
-  result = cast[PAccessibleClass](CHECK_CLASS_CAST(klass, TYPE_ACCESSIBLE()))
-
-proc IS_ACCESSIBLE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_ACCESSIBLE())
-
-proc IS_ACCESSIBLE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ACCESSIBLE())
-
-proc ACCESSIBLE_GET_CLASS*(obj: pointer): PAccessibleClass = 
-  result = cast[PAccessibleClass](CHECK_GET_CLASS(obj, TYPE_ACCESSIBLE()))
-
-proc TYPE_ADJUSTMENT*(): GType = 
-  result = adjustment_get_type()
-
-proc ADJUSTMENT*(obj: pointer): PAdjustment = 
-  result = cast[PAdjustment](CHECK_CAST(obj, TYPE_ADJUSTMENT()))
-
-proc ADJUSTMENT_CLASS*(klass: pointer): PAdjustmentClass = 
-  result = cast[PAdjustmentClass](CHECK_CLASS_CAST(klass, TYPE_ADJUSTMENT()))
-
-proc IS_ADJUSTMENT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_ADJUSTMENT())
-
-proc IS_ADJUSTMENT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ADJUSTMENT())
-
-proc ADJUSTMENT_GET_CLASS*(obj: pointer): PAdjustmentClass = 
-  result = cast[PAdjustmentClass](CHECK_GET_CLASS(obj, TYPE_ADJUSTMENT()))
-
-proc TYPE_ALIGNMENT*(): GType = 
-  result = alignment_get_type()
-
-proc ALIGNMENT*(obj: pointer): PAlignment = 
-  result = cast[PAlignment](CHECK_CAST(obj, TYPE_ALIGNMENT()))
-
-proc ALIGNMENT_CLASS*(klass: pointer): PAlignmentClass = 
-  result = cast[PAlignmentClass](CHECK_CLASS_CAST(klass, TYPE_ALIGNMENT()))
-
-proc IS_ALIGNMENT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_ALIGNMENT())
-
-proc IS_ALIGNMENT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ALIGNMENT())
-
-proc ALIGNMENT_GET_CLASS*(obj: pointer): PAlignmentClass = 
-  result = cast[PAlignmentClass](CHECK_GET_CLASS(obj, TYPE_ALIGNMENT()))
-
-proc TYPE_FRAME*(): GType = 
-  result = frame_get_type()
-
-proc FRAME*(obj: pointer): PFrame = 
-  result = cast[PFrame](CHECK_CAST(obj, TYPE_FRAME()))
-
-proc FRAME_CLASS*(klass: pointer): PFrameClass = 
-  result = cast[PFrameClass](CHECK_CLASS_CAST(klass, TYPE_FRAME()))
-
-proc IS_FRAME*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_FRAME())
-
-proc IS_FRAME_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_FRAME())
-
-proc FRAME_GET_CLASS*(obj: pointer): PFrameClass = 
-  result = cast[PFrameClass](CHECK_GET_CLASS(obj, TYPE_FRAME()))
-
-proc TYPE_ASPECT_FRAME*(): GType = 
-  result = aspect_frame_get_type()
-
-proc ASPECT_FRAME*(obj: pointer): PAspectFrame = 
-  result = cast[PAspectFrame](CHECK_CAST(obj, TYPE_ASPECT_FRAME()))
-
-proc ASPECT_FRAME_CLASS*(klass: pointer): PAspectFrameClass = 
-  result = cast[PAspectFrameClass](CHECK_CLASS_CAST(klass, TYPE_ASPECT_FRAME()))
-
-proc IS_ASPECT_FRAME*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_ASPECT_FRAME())
-
-proc IS_ASPECT_FRAME_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ASPECT_FRAME())
-
-proc ASPECT_FRAME_GET_CLASS*(obj: pointer): PAspectFrameClass = 
-  result = cast[PAspectFrameClass](CHECK_GET_CLASS(obj, TYPE_ASPECT_FRAME()))
-
-proc TYPE_ARROW*(): GType = 
-  result = arrow_get_type()
-
-proc ARROW*(obj: pointer): PArrow = 
-  result = cast[PArrow](CHECK_CAST(obj, TYPE_ARROW()))
-
-proc ARROW_CLASS*(klass: pointer): PArrowClass = 
-  result = cast[PArrowClass](CHECK_CLASS_CAST(klass, TYPE_ARROW()))
-
-proc IS_ARROW*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_ARROW())
-
-proc IS_ARROW_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ARROW())
-
-proc ARROW_GET_CLASS*(obj: pointer): PArrowClass = 
-  result = cast[PArrowClass](CHECK_GET_CLASS(obj, TYPE_ARROW()))
-
-proc parsed*(a: PBindingSet): guint = 
-  result = (a.flag0 and bm_TGtkBindingSet_parsed) shr
-      bp_TGtkBindingSet_parsed
-
-proc set_parsed*(a: PBindingSet, `parsed`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`parsed` shl bp_TGtkBindingSet_parsed) and
-      bm_TGtkBindingSet_parsed)
-
-proc destroyed*(a: PBindingEntry): guint = 
-  result = (a.flag0 and bm_TGtkBindingEntry_destroyed) shr
-      bp_TGtkBindingEntry_destroyed
-
-proc set_destroyed*(a: PBindingEntry, `destroyed`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`destroyed` shl bp_TGtkBindingEntry_destroyed) and
-      bm_TGtkBindingEntry_destroyed)
-
-proc in_emission*(a: PBindingEntry): guint = 
-  result = (a.flag0 and bm_TGtkBindingEntry_in_emission) shr
-      bp_TGtkBindingEntry_in_emission
-
-proc set_in_emission*(a: PBindingEntry, `in_emission`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`in_emission` shl bp_TGtkBindingEntry_in_emission) and
-      bm_TGtkBindingEntry_in_emission)
-
-proc entry_add*(binding_set: PBindingSet, keyval: guint, 
-                        modifiers: gdk2.TModifierType) = 
-  entry_clear(binding_set, keyval, modifiers)
-
-proc TYPE_BOX*(): GType = 
-  result = box_get_type()
-
-proc BOX*(obj: pointer): PBox = 
-  result = cast[PBox](CHECK_CAST(obj, TYPE_BOX()))
-
-proc BOX_CLASS*(klass: pointer): PBoxClass = 
-  result = cast[PBoxClass](CHECK_CLASS_CAST(klass, TYPE_BOX()))
-
-proc IS_BOX*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_BOX())
-
-proc IS_BOX_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_BOX())
-
-proc BOX_GET_CLASS*(obj: pointer): PBoxClass = 
-  result = cast[PBoxClass](CHECK_GET_CLASS(obj, TYPE_BOX()))
-
-proc homogeneous*(a: PBox): guint = 
-  result = (a.Boxflag0 and bm_TGtkBox_homogeneous) shr bp_TGtkBox_homogeneous
-
-proc set_homogeneous*(a: PBox, `homogeneous`: guint) = 
-  a.Boxflag0 = a.Boxflag0 or
-      (int16(`homogeneous` shl bp_TGtkBox_homogeneous) and
-      bm_TGtkBox_homogeneous)
-
-proc expand*(a: PBoxChild): guint = 
-  result = (a.flag0 and bm_TGtkBoxChild_expand) shr bp_TGtkBoxChild_expand
-
-proc set_expand*(a: PBoxChild, `expand`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`expand` shl bp_TGtkBoxChild_expand) and bm_TGtkBoxChild_expand)
-
-proc fill*(a: PBoxChild): guint = 
-  result = (a.flag0 and bm_TGtkBoxChild_fill) shr bp_TGtkBoxChild_fill
-
-proc set_fill*(a: PBoxChild, `fill`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`fill` shl bp_TGtkBoxChild_fill) and bm_TGtkBoxChild_fill)
-
-proc pack*(a: PBoxChild): guint = 
-  result = (a.flag0 and bm_TGtkBoxChild_pack) shr bp_TGtkBoxChild_pack
-
-proc set_pack*(a: PBoxChild, `pack`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pack` shl bp_TGtkBoxChild_pack) and bm_TGtkBoxChild_pack)
-
-proc is_secondary*(a: PBoxChild): guint = 
-  result = (a.flag0 and bm_TGtkBoxChild_is_secondary) shr
-      bp_TGtkBoxChild_is_secondary
-
-proc set_is_secondary*(a: PBoxChild, `is_secondary`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_secondary` shl bp_TGtkBoxChild_is_secondary) and
-      bm_TGtkBoxChild_is_secondary)
-
-proc TYPE_BUTTON_BOX*(): GType = 
-  result = button_box_get_type()
-
-proc BUTTON_BOX*(obj: pointer): PButtonBox = 
-  result = cast[PButtonBox](CHECK_CAST(obj, TYPE_BUTTON_BOX()))
-
-proc BUTTON_BOX_CLASS*(klass: pointer): PButtonBoxClass = 
-  result = cast[PButtonBoxClass](CHECK_CLASS_CAST(klass, TYPE_BUTTON_BOX()))
-
-proc IS_BUTTON_BOX*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_BUTTON_BOX())
-
-proc IS_BUTTON_BOX_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_BUTTON_BOX())
-
-proc BUTTON_BOX_GET_CLASS*(obj: pointer): PButtonBoxClass = 
-  result = cast[PButtonBoxClass](CHECK_GET_CLASS(obj, TYPE_BUTTON_BOX()))
-
-proc button_box_set_spacing*(b: pointer, s: gint) = 
-  set_spacing(BOX(b), s)
-
-proc button_box_get_spacing*(b: pointer): gint = 
-  result = get_spacing(BOX(b))
-
-proc TYPE_BUTTON*(): GType = 
-  result = button_get_type()
-
-proc BUTTON*(obj: pointer): PButton = 
-  result = cast[PButton](CHECK_CAST(obj, TYPE_BUTTON()))
-
-proc BUTTON_CLASS*(klass: pointer): PButtonClass = 
-  result = cast[PButtonClass](CHECK_CLASS_CAST(klass, TYPE_BUTTON()))
-
-proc IS_BUTTON*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_BUTTON())
-
-proc IS_BUTTON_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_BUTTON())
-
-proc BUTTON_GET_CLASS*(obj: pointer): PButtonClass = 
-  result = cast[PButtonClass](CHECK_GET_CLASS(obj, TYPE_BUTTON()))
-
-proc constructed*(a: PButton): guint = 
-  result = (a.Buttonflag0 and bm_TGtkButton_constructed) shr
-      bp_TGtkButton_constructed
-
-proc set_constructed*(a: PButton, `constructed`: guint) = 
-  a.Buttonflag0 = a.Buttonflag0 or
-      (int16(`constructed` shl bp_TGtkButton_constructed) and
-      bm_TGtkButton_constructed)
-
-proc in_button*(a: PButton): guint = 
-  result = (a.Buttonflag0 and bm_TGtkButton_in_button) shr
-      bp_TGtkButton_in_button
-
-proc set_in_button*(a: PButton, `in_button`: guint) = 
-  a.Buttonflag0 = a.Buttonflag0 or
-      (int16(`in_button` shl bp_TGtkButton_in_button) and
-      bm_TGtkButton_in_button)
-
-proc button_down*(a: PButton): guint = 
-  result = (a.Buttonflag0 and bm_TGtkButton_button_down) shr
-      bp_TGtkButton_button_down
-
-proc set_button_down*(a: PButton, `button_down`: guint) = 
-  a.Buttonflag0 = a.Buttonflag0 or
-      (int16(`button_down` shl bp_TGtkButton_button_down) and
-      bm_TGtkButton_button_down)
-
-proc relief*(a: PButton): guint = 
-  result = (a.Buttonflag0 and bm_TGtkButton_relief) shr bp_TGtkButton_relief
-
-proc use_underline*(a: PButton): guint = 
-  result = (a.Buttonflag0 and bm_TGtkButton_use_underline) shr
-      bp_TGtkButton_use_underline
-
-proc set_use_underline*(a: PButton, `use_underline`: guint) = 
-  a.Buttonflag0 = a.Buttonflag0 or
-      (int16(`use_underline` shl bp_TGtkButton_use_underline) and
-      bm_TGtkButton_use_underline)
-
-proc use_stock*(a: PButton): guint = 
-  result = (a.Buttonflag0 and bm_TGtkButton_use_stock) shr
-      bp_TGtkButton_use_stock
-
-proc set_use_stock*(a: PButton, `use_stock`: guint) = 
-  a.Buttonflag0 = a.Buttonflag0 or
-      (int16(`use_stock` shl bp_TGtkButton_use_stock) and
-      bm_TGtkButton_use_stock)
-
-proc depressed*(a: PButton): guint = 
-  result = (a.Buttonflag0 and bm_TGtkButton_depressed) shr
-      bp_TGtkButton_depressed
-
-proc set_depressed*(a: PButton, `depressed`: guint) = 
-  a.Buttonflag0 = a.Buttonflag0 or
-      (int16(`depressed` shl bp_TGtkButton_depressed) and
-      bm_TGtkButton_depressed)
-
-proc depress_on_activate*(a: PButton): guint = 
-  result = (a.Buttonflag0 and bm_TGtkButton_depress_on_activate) shr
-      bp_TGtkButton_depress_on_activate
-
-proc set_depress_on_activate*(a: PButton, `depress_on_activate`: guint) = 
-  a.Buttonflag0 = a.Buttonflag0 or
-      (int16(`depress_on_activate` shl bp_TGtkButton_depress_on_activate) and
-      bm_TGtkButton_depress_on_activate)
-
-proc TYPE_CALENDAR*(): GType = 
-  result = calendar_get_type()
-
-proc CALENDAR*(obj: pointer): PCalendar = 
-  result = cast[PCalendar](CHECK_CAST(obj, TYPE_CALENDAR()))
-
-proc CALENDAR_CLASS*(klass: pointer): PCalendarClass = 
-  result = cast[PCalendarClass](CHECK_CLASS_CAST(klass, TYPE_CALENDAR()))
-
-proc IS_CALENDAR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CALENDAR())
-
-proc IS_CALENDAR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CALENDAR())
-
-proc CALENDAR_GET_CLASS*(obj: pointer): PCalendarClass = 
-  result = cast[PCalendarClass](CHECK_GET_CLASS(obj, TYPE_CALENDAR()))
-
-proc TYPE_CELL_EDITABLE*(): GType = 
-  result = cell_editable_get_type()
-
-proc CELL_EDITABLE*(obj: pointer): PCellEditable = 
-  result = cast[PCellEditable](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_CELL_EDITABLE()))
-
-proc CELL_EDITABLE_CLASS*(obj: pointer): PCellEditableIface = 
-  result = cast[PCellEditableIface](G_TYPE_CHECK_CLASS_CAST(obj, 
-      TYPE_CELL_EDITABLE()))
-
-proc IS_CELL_EDITABLE*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_CELL_EDITABLE())
-
-proc CELL_EDITABLE_GET_IFACE*(obj: pointer): PCellEditableIface = 
-  result = cast[PCellEditableIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_CELL_EDITABLE()))
-
-proc TYPE_CELL_RENDERER*(): GType = 
-  result = cell_renderer_get_type()
-
-proc CELL_RENDERER*(obj: pointer): PCellRenderer = 
-  result = cast[PCellRenderer](CHECK_CAST(obj, TYPE_CELL_RENDERER()))
-
-proc CELL_RENDERER_CLASS*(klass: pointer): PCellRendererClass = 
-  result = cast[PCellRendererClass](CHECK_CLASS_CAST(klass, TYPE_CELL_RENDERER()))
-
-proc IS_CELL_RENDERER*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CELL_RENDERER())
-
-proc IS_CELL_RENDERER_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CELL_RENDERER())
-
-proc CELL_RENDERER_GET_CLASS*(obj: pointer): PCellRendererClass = 
-  result = cast[PCellRendererClass](CHECK_GET_CLASS(obj, TYPE_CELL_RENDERER()))
-
-proc mode*(a: PCellRenderer): guint = 
-  result = (a.CellRendererflag0 and bm_TGtkCellRenderer_mode) shr
-      bp_TGtkCellRenderer_mode
-
-proc set_mode*(a: PCellRenderer, `mode`: guint) = 
-  a.CellRendererflag0 = a.CellRendererflag0 or
-      (int16(`mode` shl bp_TGtkCellRenderer_mode) and
-      bm_TGtkCellRenderer_mode)
-
-proc visible*(a: PCellRenderer): guint = 
-  result = (a.CellRendererflag0 and bm_TGtkCellRenderer_visible) shr
-      bp_TGtkCellRenderer_visible
-
-proc set_visible*(a: PCellRenderer, `visible`: guint) = 
-  a.CellRendererflag0 = a.CellRendererflag0 or
-      (int16(`visible` shl bp_TGtkCellRenderer_visible) and
-      bm_TGtkCellRenderer_visible)
-
-proc is_expander*(a: PCellRenderer): guint = 
-  result = (a.CellRendererflag0 and bm_TGtkCellRenderer_is_expander) shr
-      bp_TGtkCellRenderer_is_expander
-
-proc set_is_expander*(a: PCellRenderer, `is_expander`: guint) = 
-  a.CellRendererflag0 = a.CellRendererflag0 or
-      (int16(`is_expander` shl bp_TGtkCellRenderer_is_expander) and
-      bm_TGtkCellRenderer_is_expander)
-
-proc is_expanded*(a: PCellRenderer): guint = 
-  result = (a.CellRendererflag0 and bm_TGtkCellRenderer_is_expanded) shr
-      bp_TGtkCellRenderer_is_expanded
-
-proc set_is_expanded*(a: PCellRenderer, `is_expanded`: guint) = 
-  a.CellRendererflag0 = a.CellRendererflag0 or
-      (int16(`is_expanded` shl bp_TGtkCellRenderer_is_expanded) and
-      bm_TGtkCellRenderer_is_expanded)
-
-proc cell_background_set*(a: PCellRenderer): guint = 
-  result = (a.CellRendererflag0 and bm_TGtkCellRenderer_cell_background_set) shr
-      bp_TGtkCellRenderer_cell_background_set
-
-proc set_cell_background_set*(a: PCellRenderer, `cell_background_set`: guint) = 
-  a.CellRendererflag0 = a.CellRendererflag0 or
-      (int16(`cell_background_set` shl
-      bp_TGtkCellRenderer_cell_background_set) and
-      bm_TGtkCellRenderer_cell_background_set)
-
-proc TYPE_CELL_RENDERER_TEXT*(): GType = 
-  result = cell_renderer_text_get_type()
-
-proc CELL_RENDERER_TEXT*(obj: pointer): PCellRendererText = 
-  result = cast[PCellRendererText](CHECK_CAST(obj, TYPE_CELL_RENDERER_TEXT()))
-
-proc CELL_RENDERER_TEXT_CLASS*(klass: pointer): PCellRendererTextClass = 
-  result = cast[PCellRendererTextClass](CHECK_CLASS_CAST(klass, 
-      TYPE_CELL_RENDERER_TEXT()))
-
-proc IS_CELL_RENDERER_TEXT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CELL_RENDERER_TEXT())
-
-proc IS_CELL_RENDERER_TEXT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CELL_RENDERER_TEXT())
-
-proc CELL_RENDERER_TEXT_GET_CLASS*(obj: pointer): PCellRendererTextClass = 
-  result = cast[PCellRendererTextClass](CHECK_GET_CLASS(obj, 
-      TYPE_CELL_RENDERER_TEXT()))
-
-proc strikethrough*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_strikethrough) shr
-      bp_TGtkCellRendererText_strikethrough
-
-proc set_strikethrough*(a: PCellRendererText, `strikethrough`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`strikethrough` shl bp_TGtkCellRendererText_strikethrough) and
-      bm_TGtkCellRendererText_strikethrough)
-
-proc editable*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_editable) shr
-      bp_TGtkCellRendererText_editable
-
-proc set_editable*(a: PCellRendererText, `editable`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`editable` shl bp_TGtkCellRendererText_editable) and
-      bm_TGtkCellRendererText_editable)
-
-proc scale_set*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_scale_set) shr
-      bp_TGtkCellRendererText_scale_set
-
-proc set_scale_set*(a: PCellRendererText, `scale_set`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`scale_set` shl bp_TGtkCellRendererText_scale_set) and
-      bm_TGtkCellRendererText_scale_set)
-
-proc foreground_set*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and
-      bm_TGtkCellRendererText_foreground_set) shr
-      bp_TGtkCellRendererText_foreground_set
-
-proc set_foreground_set*(a: PCellRendererText, `foreground_set`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`foreground_set` shl bp_TGtkCellRendererText_foreground_set) and
-      bm_TGtkCellRendererText_foreground_set)
-
-proc background_set*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and
-      bm_TGtkCellRendererText_background_set) shr
-      bp_TGtkCellRendererText_background_set
-
-proc set_background_set*(a: PCellRendererText, `background_set`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`background_set` shl bp_TGtkCellRendererText_background_set) and
-      bm_TGtkCellRendererText_background_set)
-
-proc underline_set*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_underline_set) shr
-      bp_TGtkCellRendererText_underline_set
-
-proc set_underline_set*(a: PCellRendererText, `underline_set`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`underline_set` shl bp_TGtkCellRendererText_underline_set) and
-      bm_TGtkCellRendererText_underline_set)
-
-proc rise_set*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_rise_set) shr
-      bp_TGtkCellRendererText_rise_set
-
-proc set_rise_set*(a: PCellRendererText, `rise_set`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`rise_set` shl bp_TGtkCellRendererText_rise_set) and
-      bm_TGtkCellRendererText_rise_set)
-
-proc strikethrough_set*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and
-      bm_TGtkCellRendererText_strikethrough_set) shr
-      bp_TGtkCellRendererText_strikethrough_set
-
-proc set_strikethrough_set*(a: PCellRendererText, `strikethrough_set`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`strikethrough_set` shl
-      bp_TGtkCellRendererText_strikethrough_set) and
-      bm_TGtkCellRendererText_strikethrough_set)
-
-proc editable_set*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_editable_set) shr
-      bp_TGtkCellRendererText_editable_set
-
-proc set_editable_set*(a: PCellRendererText, `editable_set`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`editable_set` shl bp_TGtkCellRendererText_editable_set) and
-      bm_TGtkCellRendererText_editable_set)
-
-proc calc_fixed_height*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and
-      bm_TGtkCellRendererText_calc_fixed_height) shr
-      bp_TGtkCellRendererText_calc_fixed_height
-
-proc set_calc_fixed_height*(a: PCellRendererText, `calc_fixed_height`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`calc_fixed_height` shl
-      bp_TGtkCellRendererText_calc_fixed_height) and
-      bm_TGtkCellRendererText_calc_fixed_height)
-
-proc TYPE_CELL_RENDERER_TOGGLE*(): GType = 
-  result = cell_renderer_toggle_get_type()
-
-proc CELL_RENDERER_TOGGLE*(obj: pointer): PCellRendererToggle = 
-  result = cast[PCellRendererToggle](CHECK_CAST(obj, TYPE_CELL_RENDERER_TOGGLE()))
-
-proc CELL_RENDERER_TOGGLE_CLASS*(klass: pointer): PCellRendererToggleClass = 
-  result = cast[PCellRendererToggleClass](CHECK_CLASS_CAST(klass, 
-      TYPE_CELL_RENDERER_TOGGLE()))
-
-proc IS_CELL_RENDERER_TOGGLE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CELL_RENDERER_TOGGLE())
-
-proc IS_CELL_RENDERER_TOGGLE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CELL_RENDERER_TOGGLE())
-
-proc CELL_RENDERER_TOGGLE_GET_CLASS*(obj: pointer): PCellRendererToggleClass = 
-  result = cast[PCellRendererToggleClass](CHECK_GET_CLASS(obj, 
-      TYPE_CELL_RENDERER_TOGGLE()))
-
-proc active*(a: PCellRendererToggle): guint = 
-  result = (a.CellRendererToggleflag0 and bm_TGtkCellRendererToggle_active) shr
-      bp_TGtkCellRendererToggle_active
-
-proc set_active*(a: PCellRendererToggle, `active`: guint) = 
-  a.CellRendererToggleflag0 = a.CellRendererToggleflag0 or
-      (int16(`active` shl bp_TGtkCellRendererToggle_active) and
-      bm_TGtkCellRendererToggle_active)
-
-proc activatable*(a: PCellRendererToggle): guint = 
-  result = (a.CellRendererToggleflag0 and
-      bm_TGtkCellRendererToggle_activatable) shr
-      bp_TGtkCellRendererToggle_activatable
-
-proc set_activatable*(a: PCellRendererToggle, `activatable`: guint) = 
-  a.CellRendererToggleflag0 = a.CellRendererToggleflag0 or
-      (int16(`activatable` shl bp_TGtkCellRendererToggle_activatable) and
-      bm_TGtkCellRendererToggle_activatable)
-
-proc radio*(a: PCellRendererToggle): guint = 
-  result = (a.CellRendererToggleflag0 and bm_TGtkCellRendererToggle_radio) shr
-      bp_TGtkCellRendererToggle_radio
-
-proc set_radio*(a: PCellRendererToggle, `radio`: guint) = 
-  a.CellRendererToggleflag0 = a.CellRendererToggleflag0 or
-      (int16(`radio` shl bp_TGtkCellRendererToggle_radio) and
-      bm_TGtkCellRendererToggle_radio)
-
-proc TYPE_CELL_RENDERER_PIXBUF*(): GType = 
-  result = cell_renderer_pixbuf_get_type()
-
-proc CELL_RENDERER_PIXBUF*(obj: pointer): PCellRendererPixbuf = 
-  result = cast[PCellRendererPixbuf](CHECK_CAST(obj, TYPE_CELL_RENDERER_PIXBUF()))
-
-proc CELL_RENDERER_PIXBUF_CLASS*(klass: pointer): PCellRendererPixbufClass = 
-  result = cast[PCellRendererPixbufClass](CHECK_CLASS_CAST(klass, 
-      TYPE_CELL_RENDERER_PIXBUF()))
-
-proc IS_CELL_RENDERER_PIXBUF*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CELL_RENDERER_PIXBUF())
-
-proc IS_CELL_RENDERER_PIXBUF_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CELL_RENDERER_PIXBUF())
-
-proc CELL_RENDERER_PIXBUF_GET_CLASS*(obj: pointer): PCellRendererPixbufClass = 
-  result = cast[PCellRendererPixbufClass](CHECK_GET_CLASS(obj, 
-      TYPE_CELL_RENDERER_PIXBUF()))
-
-proc TYPE_ITEM*(): GType = 
-  result = item_get_type()
-
-proc ITEM*(obj: pointer): PItem = 
-  result = cast[PItem](CHECK_CAST(obj, TYPE_ITEM()))
-
-proc ITEM_CLASS*(klass: pointer): PItemClass = 
-  result = cast[PItemClass](CHECK_CLASS_CAST(klass, TYPE_ITEM()))
-
-proc IS_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_ITEM())
-
-proc IS_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ITEM())
-
-proc ITEM_GET_CLASS*(obj: pointer): PItemClass = 
-  result = cast[PItemClass](CHECK_GET_CLASS(obj, TYPE_ITEM()))
-
-proc TYPE_MENU_ITEM*(): GType = 
-  result = menu_item_get_type()
-
-proc MENU_ITEM*(obj: pointer): PMenuItem = 
-  result = cast[PMenuItem](CHECK_CAST(obj, TYPE_MENU_ITEM()))
-
-proc MENU_ITEM_CLASS*(klass: pointer): PMenuItemClass = 
-  result = cast[PMenuItemClass](CHECK_CLASS_CAST(klass, TYPE_MENU_ITEM()))
-
-proc IS_MENU_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_MENU_ITEM())
-
-proc IS_MENU_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_MENU_ITEM())
-
-proc MENU_ITEM_GET_CLASS*(obj: pointer): PMenuItemClass = 
-  result = cast[PMenuItemClass](CHECK_GET_CLASS(obj, TYPE_MENU_ITEM()))
-
-proc show_submenu_indicator*(a: PMenuItem): guint = 
-  result = (a.MenuItemflag0 and bm_TGtkMenuItem_show_submenu_indicator) shr
-      bp_TGtkMenuItem_show_submenu_indicator
-
-proc set_show_submenu_indicator*(a: PMenuItem, 
-                                 `show_submenu_indicator`: guint) = 
-  a.MenuItemflag0 = a.MenuItemflag0 or
-      (int16(`show_submenu_indicator` shl
-      bp_TGtkMenuItem_show_submenu_indicator) and
-      bm_TGtkMenuItem_show_submenu_indicator)
-
-proc submenu_placement*(a: PMenuItem): guint = 
-  result = (a.MenuItemflag0 and bm_TGtkMenuItem_submenu_placement) shr
-      bp_TGtkMenuItem_submenu_placement
-
-proc set_submenu_placement*(a: PMenuItem, `submenu_placement`: guint) = 
-  a.MenuItemflag0 = a.MenuItemflag0 or
-      (int16(`submenu_placement` shl bp_TGtkMenuItem_submenu_placement) and
-      bm_TGtkMenuItem_submenu_placement)
-
-proc submenu_direction*(a: PMenuItem): guint = 
-  result = (a.MenuItemflag0 and bm_TGtkMenuItem_submenu_direction) shr
-      bp_TGtkMenuItem_submenu_direction
-
-proc set_submenu_direction*(a: PMenuItem, `submenu_direction`: guint) = 
-  a.MenuItemflag0 = a.MenuItemflag0 or
-      (int16(`submenu_direction` shl bp_TGtkMenuItem_submenu_direction) and
-      bm_TGtkMenuItem_submenu_direction)
-
-proc right_justify*(a: PMenuItem): guint = 
-  result = (a.MenuItemflag0 and bm_TGtkMenuItem_right_justify) shr
-      bp_TGtkMenuItem_right_justify
-
-proc set_right_justify*(a: PMenuItem, `right_justify`: guint) = 
-  a.MenuItemflag0 = a.MenuItemflag0 or
-      (int16(`right_justify` shl bp_TGtkMenuItem_right_justify) and
-      bm_TGtkMenuItem_right_justify)
-
-proc timer_from_keypress*(a: PMenuItem): guint = 
-  result = (a.MenuItemflag0 and bm_TGtkMenuItem_timer_from_keypress) shr
-      bp_TGtkMenuItem_timer_from_keypress
-
-proc set_timer_from_keypress*(a: PMenuItem, `timer_from_keypress`: guint) = 
-  a.MenuItemflag0 = a.MenuItemflag0 or
-      (int16(`timer_from_keypress` shl bp_TGtkMenuItem_timer_from_keypress) and
-      bm_TGtkMenuItem_timer_from_keypress)
-
-proc hide_on_activate*(a: PMenuItemClass): guint = 
-  result = (a.MenuItemClassflag0 and bm_TGtkMenuItemClass_hide_on_activate) shr
-      bp_TGtkMenuItemClass_hide_on_activate
-
-proc set_hide_on_activate*(a: PMenuItemClass, `hide_on_activate`: guint) = 
-  a.MenuItemClassflag0 = a.MenuItemClassflag0 or
-      (int16(`hide_on_activate` shl bp_TGtkMenuItemClass_hide_on_activate) and
-      bm_TGtkMenuItemClass_hide_on_activate)
-
-proc right_justify*(menu_item: PMenuItem) = 
-  set_right_justified(menu_item, system.true)
-
-proc TYPE_TOGGLE_BUTTON*(): GType = 
-  result = toggle_button_get_type()
-
-proc TOGGLE_BUTTON*(obj: pointer): PToggleButton = 
-  result = cast[PToggleButton](CHECK_CAST(obj, TYPE_TOGGLE_BUTTON()))
-
-proc TOGGLE_BUTTON_CLASS*(klass: pointer): PToggleButtonClass = 
-  result = cast[PToggleButtonClass](CHECK_CLASS_CAST(klass, TYPE_TOGGLE_BUTTON()))
-
-proc IS_TOGGLE_BUTTON*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TOGGLE_BUTTON())
-
-proc IS_TOGGLE_BUTTON_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TOGGLE_BUTTON())
-
-proc TOGGLE_BUTTON_GET_CLASS*(obj: pointer): PToggleButtonClass = 
-  result = cast[PToggleButtonClass](CHECK_GET_CLASS(obj, TYPE_TOGGLE_BUTTON()))
-
-proc active*(a: PToggleButton): guint = 
-  result = (a.ToggleButtonflag0 and bm_TGtkToggleButton_active) shr
-      bp_TGtkToggleButton_active
-
-proc set_active*(a: PToggleButton, `active`: guint) = 
-  a.ToggleButtonflag0 = a.ToggleButtonflag0 or
-      (int16(`active` shl bp_TGtkToggleButton_active) and
-      bm_TGtkToggleButton_active)
-
-proc draw_indicator*(a: PToggleButton): guint = 
-  result = (a.ToggleButtonflag0 and bm_TGtkToggleButton_draw_indicator) shr
-      bp_TGtkToggleButton_draw_indicator
-
-proc set_draw_indicator*(a: PToggleButton, `draw_indicator`: guint) = 
-  a.ToggleButtonflag0 = a.ToggleButtonflag0 or
-      (int16(`draw_indicator` shl bp_TGtkToggleButton_draw_indicator) and
-      bm_TGtkToggleButton_draw_indicator)
-
-proc inconsistent*(a: PToggleButton): guint = 
-  result = (a.ToggleButtonflag0 and bm_TGtkToggleButton_inconsistent) shr
-      bp_TGtkToggleButton_inconsistent
-
-proc set_inconsistent*(a: PToggleButton, `inconsistent`: guint) = 
-  a.ToggleButtonflag0 = a.ToggleButtonflag0 or
-      (int16(`inconsistent` shl bp_TGtkToggleButton_inconsistent) and
-      bm_TGtkToggleButton_inconsistent)
-
-proc TYPE_CHECK_BUTTON*(): GType = 
-  result = check_button_get_type()
-
-proc CHECK_BUTTON*(obj: pointer): PCheckButton = 
-  result = cast[PCheckButton](CHECK_CAST(obj, TYPE_CHECK_BUTTON()))
-
-proc CHECK_BUTTON_CLASS*(klass: pointer): PCheckButtonClass = 
-  result = cast[PCheckButtonClass](CHECK_CLASS_CAST(klass, TYPE_CHECK_BUTTON()))
-
-proc IS_CHECK_BUTTON*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CHECK_BUTTON())
-
-proc IS_CHECK_BUTTON_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CHECK_BUTTON())
-
-proc CHECK_BUTTON_GET_CLASS*(obj: pointer): PCheckButtonClass = 
-  result = cast[PCheckButtonClass](CHECK_GET_CLASS(obj, TYPE_CHECK_BUTTON()))
-
-proc TYPE_CHECK_MENU_ITEM*(): GType = 
-  result = check_menu_item_get_type()
-
-proc CHECK_MENU_ITEM*(obj: pointer): PCheckMenuItem = 
-  result = cast[PCheckMenuItem](CHECK_CAST(obj, TYPE_CHECK_MENU_ITEM()))
-
-proc CHECK_MENU_ITEM_CLASS*(klass: pointer): PCheckMenuItemClass = 
-  result = cast[PCheckMenuItemClass](CHECK_CLASS_CAST(klass, 
-      TYPE_CHECK_MENU_ITEM()))
-
-proc IS_CHECK_MENU_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CHECK_MENU_ITEM())
-
-proc IS_CHECK_MENU_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CHECK_MENU_ITEM())
-
-proc CHECK_MENU_ITEM_GET_CLASS*(obj: pointer): PCheckMenuItemClass = 
-  result = cast[PCheckMenuItemClass](CHECK_GET_CLASS(obj, TYPE_CHECK_MENU_ITEM()))
-
-proc active*(a: PCheckMenuItem): guint = 
-  result = (a.CheckMenuItemflag0 and bm_TGtkCheckMenuItem_active) shr
-      bp_TGtkCheckMenuItem_active
-
-proc set_active*(a: PCheckMenuItem, `active`: guint) = 
-  a.CheckMenuItemflag0 = a.CheckMenuItemflag0 or
-      (int16(`active` shl bp_TGtkCheckMenuItem_active) and
-      bm_TGtkCheckMenuItem_active)
-
-proc always_show_toggle*(a: PCheckMenuItem): guint = 
-  result = (a.CheckMenuItemflag0 and bm_TGtkCheckMenuItem_always_show_toggle) shr
-      bp_TGtkCheckMenuItem_always_show_toggle
-
-proc set_always_show_toggle*(a: PCheckMenuItem, `always_show_toggle`: guint) = 
-  a.CheckMenuItemflag0 = a.CheckMenuItemflag0 or
-      (int16(`always_show_toggle` shl bp_TGtkCheckMenuItem_always_show_toggle) and
-      bm_TGtkCheckMenuItem_always_show_toggle)
-
-proc inconsistent*(a: PCheckMenuItem): guint = 
-  result = (a.CheckMenuItemflag0 and bm_TGtkCheckMenuItem_inconsistent) shr
-      bp_TGtkCheckMenuItem_inconsistent
-
-proc set_inconsistent*(a: PCheckMenuItem, `inconsistent`: guint) = 
-  a.CheckMenuItemflag0 = a.CheckMenuItemflag0 or
-      (int16(`inconsistent` shl bp_TGtkCheckMenuItem_inconsistent) and
-      bm_TGtkCheckMenuItem_inconsistent)
-
-proc TYPE_CLIST*(): GType = 
-  result = clist_get_type()
-
-proc CLIST*(obj: pointer): PCList = 
-  result = cast[PCList](CHECK_CAST(obj, TYPE_CLIST()))
-
-proc CLIST_CLASS*(klass: pointer): PCListClass = 
-  result = cast[PCListClass](CHECK_CLASS_CAST(klass, TYPE_CLIST()))
-
-proc IS_CLIST*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CLIST())
-
-proc IS_CLIST_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CLIST())
-
-proc CLIST_GET_CLASS*(obj: pointer): PCListClass = 
-  result = cast[PCListClass](CHECK_GET_CLASS(obj, TYPE_CLIST()))
-
-proc CLIST_FLAGS*(clist: pointer): guint16 = 
-  result = toU16(CLIST(clist).flags)
-
-proc SET_FLAG*(clist: PCList, flag: guint16) = 
-  clist.flags = CLIST(clist).flags or (flag)
-
-proc UNSET_FLAG*(clist: PCList, flag: guint16) = 
-  clist.flags = CLIST(clist).flags and not (flag)
-
-proc CLIST_IN_DRAG_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_IN_DRAG)) != 0'i32
-
-proc CLIST_ROW_HEIGHT_SET_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_ROW_HEIGHT_SET)) != 0'i32
-
-proc CLIST_SHOW_TITLES_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_SHOW_TITLES)) != 0'i32
-
-proc CLIST_ADD_MODE_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_ADD_MODE)) != 0'i32
-
-proc CLIST_AUTO_SORT_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_AUTO_SORT)) != 0'i32
-
-proc CLIST_AUTO_RESIZE_BLOCKED_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_AUTO_RESIZE_BLOCKED)) != 0'i32
-
-proc CLIST_REORDERABLE_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_REORDERABLE)) != 0'i32
-
-proc CLIST_USE_DRAG_ICONS_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_USE_DRAG_ICONS)) != 0'i32
-
-proc CLIST_DRAW_DRAG_LINE_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_DRAW_DRAG_LINE)) != 0'i32
-
-proc CLIST_DRAW_DRAG_RECT_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_DRAW_DRAG_RECT)) != 0'i32
-
-proc CLIST_ROW_get*(glist: PGList): PCListRow = 
-  result = cast[PCListRow](glist.data)
-
-when false: 
-  proc CELL_TEXT_get*(cell: pointer): PCellText = 
-    result = cast[PCellText](addr((cell)))
-
-  proc CELL_PIXMAP_get*(cell: pointer): PCellPixmap = 
-    result = cast[PCellPixmap](addr((cell)))
-
-  proc CELL_PIXTEXT_get*(cell: pointer): PCellPixText = 
-    result = cast[PCellPixText](addr((cell)))
-
-  proc CELL_WIDGET_get*(cell: pointer): PCellWidget = 
-    result = cast[PCellWidget](addr((cell)))
-
-proc visible*(a: PCListColumn): guint = 
-  result = (a.flag0 and bm_TGtkCListColumn_visible) shr
-      bp_TGtkCListColumn_visible
-
-proc set_visible*(a: PCListColumn, `visible`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`visible` shl bp_TGtkCListColumn_visible) and
-      bm_TGtkCListColumn_visible)
-
-proc width_set*(a: PCListColumn): guint = 
-  result = (a.flag0 and bm_TGtkCListColumn_width_set) shr
-      bp_TGtkCListColumn_width_set
-
-proc set_width_set*(a: PCListColumn, `width_set`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`width_set` shl bp_TGtkCListColumn_width_set) and
-      bm_TGtkCListColumn_width_set)
-
-proc resizeable*(a: PCListColumn): guint = 
-  result = (a.flag0 and bm_TGtkCListColumn_resizeable) shr
-      bp_TGtkCListColumn_resizeable
-
-proc set_resizeable*(a: PCListColumn, `resizeable`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`resizeable` shl bp_TGtkCListColumn_resizeable) and
-      bm_TGtkCListColumn_resizeable)
-
-proc auto_resize*(a: PCListColumn): guint = 
-  result = (a.flag0 and bm_TGtkCListColumn_auto_resize) shr
-      bp_TGtkCListColumn_auto_resize
-
-proc set_auto_resize*(a: PCListColumn, `auto_resize`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`auto_resize` shl bp_TGtkCListColumn_auto_resize) and
-      bm_TGtkCListColumn_auto_resize)
-
-proc button_passive*(a: PCListColumn): guint = 
-  result = (a.flag0 and bm_TGtkCListColumn_button_passive) shr
-      bp_TGtkCListColumn_button_passive
-
-proc set_button_passive*(a: PCListColumn, `button_passive`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`button_passive` shl bp_TGtkCListColumn_button_passive) and
-      bm_TGtkCListColumn_button_passive)
-
-proc fg_set*(a: PCListRow): guint = 
-  result = (a.flag0 and bm_TGtkCListRow_fg_set) shr bp_TGtkCListRow_fg_set
-
-proc set_fg_set*(a: PCListRow, `fg_set`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`fg_set` shl bp_TGtkCListRow_fg_set) and bm_TGtkCListRow_fg_set)
-
-proc bg_set*(a: PCListRow): guint = 
-  result = (a.flag0 and bm_TGtkCListRow_bg_set) shr bp_TGtkCListRow_bg_set
-
-proc set_bg_set*(a: PCListRow, `bg_set`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`bg_set` shl bp_TGtkCListRow_bg_set) and bm_TGtkCListRow_bg_set)
-
-proc selectable*(a: PCListRow): guint = 
-  result = (a.flag0 and bm_TGtkCListRow_selectable) shr
-      bp_TGtkCListRow_selectable
-
-proc set_selectable*(a: PCListRow, `selectable`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`selectable` shl bp_TGtkCListRow_selectable) and
-      bm_TGtkCListRow_selectable)
-
-proc TYPE_DIALOG*(): GType = 
-  result = dialog_get_type()
-
-proc DIALOG*(obj: pointer): PDialog = 
-  result = cast[PDialog](CHECK_CAST(obj, TYPE_DIALOG()))
-
-proc DIALOG_CLASS*(klass: pointer): PDialogClass = 
-  result = cast[PDialogClass](CHECK_CLASS_CAST(klass, TYPE_DIALOG()))
-
-proc IS_DIALOG*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_DIALOG())
-
-proc IS_DIALOG_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_DIALOG())
-
-proc DIALOG_GET_CLASS*(obj: pointer): PDialogClass = 
-  result = cast[PDialogClass](CHECK_GET_CLASS(obj, TYPE_DIALOG()))
-
-proc TYPE_VBOX*(): GType = 
-  result = vbox_get_type()
-
-proc VBOX*(obj: pointer): PVBox = 
-  result = cast[PVBox](CHECK_CAST(obj, TYPE_VBOX()))
-
-proc VBOX_CLASS*(klass: pointer): PVBoxClass = 
-  result = cast[PVBoxClass](CHECK_CLASS_CAST(klass, TYPE_VBOX()))
-
-proc IS_VBOX*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_VBOX())
-
-proc IS_VBOX_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_VBOX())
-
-proc VBOX_GET_CLASS*(obj: pointer): PVBoxClass = 
-  result = cast[PVBoxClass](CHECK_GET_CLASS(obj, TYPE_VBOX()))
-
-proc TYPE_COLOR_SELECTION*(): GType = 
-  result = color_selection_get_type()
-
-proc COLOR_SELECTION*(obj: pointer): PColorSelection = 
-  result = cast[PColorSelection](CHECK_CAST(obj, TYPE_COLOR_SELECTION()))
-
-proc COLOR_SELECTION_CLASS*(klass: pointer): PColorSelectionClass = 
-  result = cast[PColorSelectionClass](CHECK_CLASS_CAST(klass, 
-      TYPE_COLOR_SELECTION()))
-
-proc IS_COLOR_SELECTION*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_COLOR_SELECTION())
-
-proc IS_COLOR_SELECTION_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_COLOR_SELECTION())
-
-proc COLOR_SELECTION_GET_CLASS*(obj: pointer): PColorSelectionClass = 
-  result = cast[PColorSelectionClass](CHECK_GET_CLASS(obj, 
-      TYPE_COLOR_SELECTION()))
-
-proc TYPE_COLOR_SELECTION_DIALOG*(): GType = 
-  result = color_selection_dialog_get_type()
-
-proc COLOR_SELECTION_DIALOG*(obj: pointer): PColorSelectionDialog = 
-  result = cast[PColorSelectionDialog](CHECK_CAST(obj, 
-      TYPE_COLOR_SELECTION_DIALOG()))
-
-proc COLOR_SELECTION_DIALOG_CLASS*(klass: pointer): PColorSelectionDialogClass = 
-  result = cast[PColorSelectionDialogClass](CHECK_CLASS_CAST(klass, 
-      TYPE_COLOR_SELECTION_DIALOG()))
-
-proc IS_COLOR_SELECTION_DIALOG*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_COLOR_SELECTION_DIALOG())
-
-proc IS_COLOR_SELECTION_DIALOG_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_COLOR_SELECTION_DIALOG())
-
-proc COLOR_SELECTION_DIALOG_GET_CLASS*(obj: pointer): PColorSelectionDialogClass = 
-  result = cast[PColorSelectionDialogClass](CHECK_GET_CLASS(obj, 
-      TYPE_COLOR_SELECTION_DIALOG()))
-
-proc TYPE_HBOX*(): GType = 
-  result = hbox_get_type()
-
-proc HBOX*(obj: pointer): PHBox = 
-  result = cast[PHBox](CHECK_CAST(obj, TYPE_HBOX()))
-
-proc HBOX_CLASS*(klass: pointer): PHBoxClass = 
-  result = cast[PHBoxClass](CHECK_CLASS_CAST(klass, TYPE_HBOX()))
-
-proc IS_HBOX*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_HBOX())
-
-proc IS_HBOX_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_HBOX())
-
-proc HBOX_GET_CLASS*(obj: pointer): PHBoxClass = 
-  result = cast[PHBoxClass](CHECK_GET_CLASS(obj, TYPE_HBOX()))
-
-proc TYPE_COMBO*(): GType = 
-  result = combo_get_type()
-
-proc COMBO*(obj: pointer): PCombo = 
-  result = cast[PCombo](CHECK_CAST(obj, TYPE_COMBO()))
-
-proc COMBO_CLASS*(klass: pointer): PComboClass = 
-  result = cast[PComboClass](CHECK_CLASS_CAST(klass, TYPE_COMBO()))
-
-proc IS_COMBO*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_COMBO())
-
-proc IS_COMBO_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_COMBO())
-
-proc COMBO_GET_CLASS*(obj: pointer): PComboClass = 
-  result = cast[PComboClass](CHECK_GET_CLASS(obj, TYPE_COMBO()))
-
-proc value_in_list*(a: PCombo): guint = 
-  result = (a.Comboflag0 and bm_TGtkCombo_value_in_list) shr
-      bp_TGtkCombo_value_in_list
-
-proc set_value_in_list*(a: PCombo, `value_in_list`: guint) = 
-  a.Comboflag0 = a.Comboflag0 or
-      (int16(`value_in_list` shl bp_TGtkCombo_value_in_list) and
-      bm_TGtkCombo_value_in_list)
-
-proc ok_if_empty*(a: PCombo): guint = 
-  result = (a.Comboflag0 and bm_TGtkCombo_ok_if_empty) shr
-      bp_TGtkCombo_ok_if_empty
-
-proc set_ok_if_empty*(a: PCombo, `ok_if_empty`: guint) = 
-  a.Comboflag0 = a.Comboflag0 or
-      (int16(`ok_if_empty` shl bp_TGtkCombo_ok_if_empty) and
-      bm_TGtkCombo_ok_if_empty)
-
-proc case_sensitive*(a: PCombo): guint = 
-  result = (a.Comboflag0 and bm_TGtkCombo_case_sensitive) shr
-      bp_TGtkCombo_case_sensitive
-
-proc set_case_sensitive*(a: PCombo, `case_sensitive`: guint) = 
-  a.Comboflag0 = a.Comboflag0 or
-      (int16(`case_sensitive` shl bp_TGtkCombo_case_sensitive) and
-      bm_TGtkCombo_case_sensitive)
-
-proc use_arrows*(a: PCombo): guint = 
-  result = (a.Comboflag0 and bm_TGtkCombo_use_arrows) shr
-      bp_TGtkCombo_use_arrows
-
-proc set_use_arrows*(a: PCombo, `use_arrows`: guint) = 
-  a.Comboflag0 = a.Comboflag0 or
-      (int16(`use_arrows` shl bp_TGtkCombo_use_arrows) and
-      bm_TGtkCombo_use_arrows)
-
-proc use_arrows_always*(a: PCombo): guint = 
-  result = (a.Comboflag0 and bm_TGtkCombo_use_arrows_always) shr
-      bp_TGtkCombo_use_arrows_always
-
-proc set_use_arrows_always*(a: PCombo, `use_arrows_always`: guint) = 
-  a.Comboflag0 = a.Comboflag0 or
-      (int16(`use_arrows_always` shl bp_TGtkCombo_use_arrows_always) and
-      bm_TGtkCombo_use_arrows_always)
-
-proc TYPE_CTREE*(): GType = 
-  result = ctree_get_type()
-
-proc CTREE*(obj: pointer): PCTree = 
-  result = cast[PCTree](CHECK_CAST(obj, TYPE_CTREE()))
-
-proc CTREE_CLASS*(klass: pointer): PCTreeClass = 
-  result = cast[PCTreeClass](CHECK_CLASS_CAST(klass, TYPE_CTREE()))
-
-proc IS_CTREE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CTREE())
-
-proc IS_CTREE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CTREE())
-
-proc CTREE_GET_CLASS*(obj: pointer): PCTreeClass = 
-  result = cast[PCTreeClass](CHECK_GET_CLASS(obj, TYPE_CTREE()))
-
-proc CTREE_ROW*(node: TAddress): PCTreeRow = 
-  result = cast[PCTreeRow]((cast[PGList](node)).data)
-
-proc CTREE_NODE*(node: TAddress): PCTreeNode = 
-  result = cast[PCTreeNode](node)
-
-proc CTREE_NODE_NEXT*(nnode: TAddress): PCTreeNode = 
-  result = cast[PCTreeNode]((cast[PGList](nnode)).next)
-
-proc CTREE_NODE_PREV*(pnode: TAddress): PCTreeNode = 
-  result = cast[PCTreeNode]((cast[PGList](pnode)).prev)
-
-proc CTREE_FUNC*(fun: TAddress): TCTreeFunc = 
-  result = cast[TCTreeFunc](fun)
-
-proc TYPE_CTREE_NODE*(): GType = 
-  result = ctree_node_get_type()
-
-proc line_style*(a: PCTree): guint = 
-  result = (a.CTreeflag0 and bm_TGtkCTree_line_style) shr
-      bp_TGtkCTree_line_style
-
-proc set_line_style*(a: PCTree, `line_style`: guint) = 
-  a.CTreeflag0 = a.CTreeflag0 or
-      (int16(`line_style` shl bp_TGtkCTree_line_style) and
-      bm_TGtkCTree_line_style)
-
-proc expander_style*(a: PCTree): guint = 
-  result = (a.CTreeflag0 and bm_TGtkCTree_expander_style) shr
-      bp_TGtkCTree_expander_style
-
-proc set_expander_style*(a: PCTree, `expander_style`: guint) = 
-  a.CTreeflag0 = a.CTreeflag0 or
-      (int16(`expander_style` shl bp_TGtkCTree_expander_style) and
-      bm_TGtkCTree_expander_style)
-
-proc show_stub*(a: PCTree): guint = 
-  result = (a.CTreeflag0 and bm_TGtkCTree_show_stub) shr
-      bp_TGtkCTree_show_stub
-
-proc set_show_stub*(a: PCTree, `show_stub`: guint) = 
-  a.CTreeflag0 = a.CTreeflag0 or
-      (int16(`show_stub` shl bp_TGtkCTree_show_stub) and
-      bm_TGtkCTree_show_stub)
-
-proc is_leaf*(a: PCTreeRow): guint = 
-  result = (a.CTreeRow_flag0 and bm_TGtkCTreeRow_is_leaf) shr
-      bp_TGtkCTreeRow_is_leaf
-
-proc set_is_leaf*(a: PCTreeRow, `is_leaf`: guint) = 
-  a.CTreeRow_flag0 = a.CTreeRow_flag0 or
-      (int16(`is_leaf` shl bp_TGtkCTreeRow_is_leaf) and
-      bm_TGtkCTreeRow_is_leaf)
-
-proc expanded*(a: PCTreeRow): guint = 
-  result = (a.CTreeRow_flag0 and bm_TGtkCTreeRow_expanded) shr
-      bp_TGtkCTreeRow_expanded
-
-proc set_expanded*(a: PCTreeRow, `expanded`: guint) = 
-  a.CTreeRow_flag0 = a.CTreeRowflag0 or
-      (int16(`expanded` shl bp_TGtkCTreeRow_expanded) and
-      bm_TGtkCTreeRow_expanded)
-
-proc ctree_set_reorderable*(t: pointer, r: bool) = 
-  set_reorderable(cast[PCList](t), r)
-
-proc TYPE_DRAWING_AREA*(): GType = 
-  result = drawing_area_get_type()
-
-proc DRAWING_AREA*(obj: pointer): PDrawingArea = 
-  result = cast[PDrawingArea](CHECK_CAST(obj, TYPE_DRAWING_AREA()))
-
-proc DRAWING_AREA_CLASS*(klass: pointer): PDrawingAreaClass = 
-  result = cast[PDrawingAreaClass](CHECK_CLASS_CAST(klass, TYPE_DRAWING_AREA()))
-
-proc IS_DRAWING_AREA*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_DRAWING_AREA())
-
-proc IS_DRAWING_AREA_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_DRAWING_AREA())
-
-proc DRAWING_AREA_GET_CLASS*(obj: pointer): PDrawingAreaClass = 
-  result = cast[PDrawingAreaClass](CHECK_GET_CLASS(obj, TYPE_DRAWING_AREA()))
-
-proc TYPE_CURVE*(): GType = 
-  result = curve_get_type()
-
-proc CURVE*(obj: pointer): PCurve = 
-  result = cast[PCurve](CHECK_CAST(obj, TYPE_CURVE()))
-
-proc CURVE_CLASS*(klass: pointer): PCurveClass = 
-  result = cast[PCurveClass](CHECK_CLASS_CAST(klass, TYPE_CURVE()))
-
-proc IS_CURVE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CURVE())
-
-proc IS_CURVE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CURVE())
-
-proc CURVE_GET_CLASS*(obj: pointer): PCurveClass = 
-  result = cast[PCurveClass](CHECK_GET_CLASS(obj, TYPE_CURVE()))
-
-proc TYPE_EDITABLE*(): GType = 
-  result = editable_get_type()
-
-proc EDITABLE*(obj: pointer): PEditable = 
-  result = cast[PEditable](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_EDITABLE()))
-
-proc EDITABLE_CLASS*(vtable: pointer): PEditableClass = 
-  result = cast[PEditableClass](G_TYPE_CHECK_CLASS_CAST(vtable, TYPE_EDITABLE()))
-
-proc IS_EDITABLE*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_EDITABLE())
-
-proc IS_EDITABLE_CLASS*(vtable: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(vtable, TYPE_EDITABLE())
-
-proc EDITABLE_GET_CLASS*(inst: pointer): PEditableClass = 
-  result = cast[PEditableClass](G_TYPE_INSTANCE_GET_INTERFACE(inst, 
-      TYPE_EDITABLE()))
-
-proc TYPE_IM_CONTEXT*(): GType = 
-  result = im_context_get_type()
-
-proc IM_CONTEXT*(obj: pointer): PIMContext = 
-  result = cast[PIMContext](CHECK_CAST(obj, TYPE_IM_CONTEXT()))
-
-proc IM_CONTEXT_CLASS*(klass: pointer): PIMContextClass = 
-  result = cast[PIMContextClass](CHECK_CLASS_CAST(klass, TYPE_IM_CONTEXT()))
-
-proc IS_IM_CONTEXT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_IM_CONTEXT())
-
-proc IS_IM_CONTEXT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_IM_CONTEXT())
-
-proc IM_CONTEXT_GET_CLASS*(obj: pointer): PIMContextClass = 
-  result = cast[PIMContextClass](CHECK_GET_CLASS(obj, TYPE_IM_CONTEXT()))
-
-proc TYPE_MENU_SHELL*(): GType = 
-  result = menu_shell_get_type()
-
-proc MENU_SHELL*(obj: pointer): PMenuShell = 
-  result = cast[PMenuShell](CHECK_CAST(obj, TYPE_MENU_SHELL()))
-
-proc MENU_SHELL_CLASS*(klass: pointer): PMenuShellClass = 
-  result = cast[PMenuShellClass](CHECK_CLASS_CAST(klass, TYPE_MENU_SHELL()))
-
-proc IS_MENU_SHELL*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_MENU_SHELL())
-
-proc IS_MENU_SHELL_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_MENU_SHELL())
-
-proc MENU_SHELL_GET_CLASS*(obj: pointer): PMenuShellClass = 
-  result = cast[PMenuShellClass](CHECK_GET_CLASS(obj, TYPE_MENU_SHELL()))
-
-proc active*(a: PMenuShell): guint = 
-  result = (a.MenuShellflag0 and bm_TGtkMenuShell_active) shr
-      bp_TGtkMenuShell_active
-
-proc set_active*(a: PMenuShell, `active`: guint) = 
-  a.MenuShellflag0 = a.MenuShellflag0 or
-      (int16(`active` shl bp_TGtkMenuShell_active) and
-      bm_TGtkMenuShell_active)
-
-proc have_grab*(a: PMenuShell): guint = 
-  result = (a.MenuShellflag0 and bm_TGtkMenuShell_have_grab) shr
-      bp_TGtkMenuShell_have_grab
-
-proc set_have_grab*(a: PMenuShell, `have_grab`: guint) = 
-  a.MenuShellflag0 = a.MenuShellflag0 or
-      (int16(`have_grab` shl bp_TGtkMenuShell_have_grab) and
-      bm_TGtkMenuShell_have_grab)
-
-proc have_xgrab*(a: PMenuShell): guint = 
-  result = (a.MenuShellflag0 and bm_TGtkMenuShell_have_xgrab) shr
-      bp_TGtkMenuShell_have_xgrab
-
-proc set_have_xgrab*(a: PMenuShell, `have_xgrab`: guint) = 
-  a.MenuShellflag0 = a.MenuShellflag0 or
-      (int16(`have_xgrab` shl bp_TGtkMenuShell_have_xgrab) and
-      bm_TGtkMenuShell_have_xgrab)
-
-proc ignore_leave*(a: PMenuShell): guint = 
-  result = (a.MenuShellflag0 and bm_TGtkMenuShell_ignore_leave) shr
-      bp_TGtkMenuShell_ignore_leave
-
-proc set_ignore_leave*(a: PMenuShell, `ignore_leave`: guint) = 
-  a.MenuShellflag0 = a.MenuShellflag0 or
-      (int16(`ignore_leave` shl bp_TGtkMenuShell_ignore_leave) and
-      bm_TGtkMenuShell_ignore_leave)
-
-proc menu_flag*(a: PMenuShell): guint = 
-  result = (a.MenuShellflag0 and bm_TGtkMenuShell_menu_flag) shr
-      bp_TGtkMenuShell_menu_flag
-
-proc set_menu_flag*(a: PMenuShell, `menu_flag`: guint) = 
-  a.MenuShellflag0 = a.MenuShellflag0 or
-      (int16(`menu_flag` shl bp_TGtkMenuShell_menu_flag) and
-      bm_TGtkMenuShell_menu_flag)
-
-proc ignore_enter*(a: PMenuShell): guint = 
-  result = (a.MenuShellflag0 and bm_TGtkMenuShell_ignore_enter) shr
-      bp_TGtkMenuShell_ignore_enter
-
-proc set_ignore_enter*(a: PMenuShell, `ignore_enter`: guint) = 
-  a.MenuShellflag0 = a.MenuShellflag0 or
-      (int16(`ignore_enter` shl bp_TGtkMenuShell_ignore_enter) and
-      bm_TGtkMenuShell_ignore_enter)
-
-proc submenu_placement*(a: PMenuShellClass): guint = 
-  result = (a.MenuShellClassflag0 and bm_TGtkMenuShellClass_submenu_placement) shr
-      bp_TGtkMenuShellClass_submenu_placement
-
-proc set_submenu_placement*(a: PMenuShellClass, `submenu_placement`: guint) = 
-  a.MenuShellClassflag0 = a.MenuShellClassflag0 or
-      (int16(`submenu_placement` shl bp_TGtkMenuShellClass_submenu_placement) and
-      bm_TGtkMenuShellClass_submenu_placement)
-
-proc TYPE_MENU*(): GType = 
-  result = menu_get_type()
-
-proc MENU*(obj: pointer): PMenu = 
-  result = cast[PMenu](CHECK_CAST(obj, TYPE_MENU()))
-
-proc MENU_CLASS*(klass: pointer): PMenuClass = 
-  result = cast[PMenuClass](CHECK_CLASS_CAST(klass, TYPE_MENU()))
-
-proc IS_MENU*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_MENU())
-
-proc IS_MENU_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_MENU())
-
-proc MENU_GET_CLASS*(obj: pointer): PMenuClass = 
-  result = cast[PMenuClass](CHECK_GET_CLASS(obj, TYPE_MENU()))
-
-proc needs_destruction_ref_count*(a: PMenu): guint = 
-  result = (a.Menuflag0 and bm_TGtkMenu_needs_destruction_ref_count) shr
-      bp_TGtkMenu_needs_destruction_ref_count
-
-proc set_needs_destruction_ref_count*(a: PMenu, 
-                                      `needs_destruction_ref_count`: guint) = 
-  a.Menuflag0 = a.Menuflag0 or
-      (int16(`needs_destruction_ref_count` shl
-      bp_TGtkMenu_needs_destruction_ref_count) and
-      bm_TGtkMenu_needs_destruction_ref_count)
-
-proc torn_off*(a: PMenu): guint = 
-  result = (a.Menuflag0 and bm_TGtkMenu_torn_off) shr bp_TGtkMenu_torn_off
-
-proc set_torn_off*(a: PMenu, `torn_off`: guint) = 
-  a.Menuflag0 = a.Menuflag0 or
-      (int16(`torn_off` shl bp_TGtkMenu_torn_off) and bm_TGtkMenu_torn_off)
-
-proc tearoff_active*(a: PMenu): guint = 
-  result = (a.Menuflag0 and bm_TGtkMenu_tearoff_active) shr
-      bp_TGtkMenu_tearoff_active
-
-proc set_tearoff_active*(a: PMenu, `tearoff_active`: guint) = 
-  a.Menuflag0 = a.Menuflag0 or
-      (int16(`tearoff_active` shl bp_TGtkMenu_tearoff_active) and
-      bm_TGtkMenu_tearoff_active)
-
-proc scroll_fast*(a: PMenu): guint = 
-  result = (a.Menuflag0 and bm_TGtkMenu_scroll_fast) shr
-      bp_TGtkMenu_scroll_fast
-
-proc set_scroll_fast*(a: PMenu, `scroll_fast`: guint) = 
-  a.Menuflag0 = a.Menuflag0 or
-      (int16(`scroll_fast` shl bp_TGtkMenu_scroll_fast) and
-      bm_TGtkMenu_scroll_fast)
-
-proc upper_arrow_visible*(a: PMenu): guint = 
-  result = (a.Menuflag0 and bm_TGtkMenu_upper_arrow_visible) shr
-      bp_TGtkMenu_upper_arrow_visible
-
-proc set_upper_arrow_visible*(a: PMenu, `upper_arrow_visible`: guint) = 
-  a.Menuflag0 = a.Menuflag0 or
-      (int16(`upper_arrow_visible` shl bp_TGtkMenu_upper_arrow_visible) and
-      bm_TGtkMenu_upper_arrow_visible)
-
-proc lower_arrow_visible*(a: PMenu): guint = 
-  result = (a.Menuflag0 and bm_TGtkMenu_lower_arrow_visible) shr
-      bp_TGtkMenu_lower_arrow_visible
-
-proc set_lower_arrow_visible*(a: PMenu, `lower_arrow_visible`: guint) = 
-  a.Menuflag0 = a.Menuflag0 or
-      (int16(`lower_arrow_visible` shl bp_TGtkMenu_lower_arrow_visible) and
-      bm_TGtkMenu_lower_arrow_visible)
-
-proc upper_arrow_prelight*(a: PMenu): guint = 
-  result = (a.Menuflag0 and bm_TGtkMenu_upper_arrow_prelight) shr
-      bp_TGtkMenu_upper_arrow_prelight
-
-proc set_upper_arrow_prelight*(a: PMenu, `upper_arrow_prelight`: guint) = 
-  a.Menuflag0 = a.Menuflag0 or
-      (int16(`upper_arrow_prelight` shl bp_TGtkMenu_upper_arrow_prelight) and
-      bm_TGtkMenu_upper_arrow_prelight)
-
-proc lower_arrow_prelight*(a: PMenu): guint = 
-  result = (a.Menuflag0 and bm_TGtkMenu_lower_arrow_prelight) shr
-      bp_TGtkMenu_lower_arrow_prelight
-
-proc set_lower_arrow_prelight*(a: PMenu, `lower_arrow_prelight`: guint) = 
-  a.Menuflag0 = a.Menuflag0 or
-      (int16(`lower_arrow_prelight` shl bp_TGtkMenu_lower_arrow_prelight) and
-      bm_TGtkMenu_lower_arrow_prelight)
-
-proc menu_append*(menu, child: PWidget) = 
-  append(cast[PMenuShell](menu), child)
-
-proc menu_prepend*(menu, child: PWidget) = 
-  prepend(cast[PMenuShell](menu), child)
-
-proc menu_insert*(menu, child: PWidget, pos: gint) = 
-  insert(cast[PMenuShell](menu), child, pos)
-
-proc TYPE_ENTRY*(): GType = 
-  result = entry_get_type()
-
-proc ENTRY*(obj: pointer): PEntry = 
-  result = cast[PEntry](CHECK_CAST(obj, TYPE_ENTRY()))
-
-proc ENTRY_CLASS*(klass: pointer): PEntryClass = 
-  result = cast[PEntryClass](CHECK_CLASS_CAST(klass, TYPE_ENTRY()))
-
-proc IS_ENTRY*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_ENTRY())
-
-proc IS_ENTRY_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ENTRY())
-
-proc ENTRY_GET_CLASS*(obj: pointer): PEntryClass = 
-  result = cast[PEntryClass](CHECK_GET_CLASS(obj, TYPE_ENTRY()))
-
-proc editable*(a: PEntry): guint = 
-  result = (a.Entryflag0 and bm_TGtkEntry_editable) shr bp_TGtkEntry_editable
-
-proc set_editable*(a: PEntry, `editable`: guint) = 
-  a.Entryflag0 = a.Entryflag0 or
-      (int16(`editable` shl bp_TGtkEntry_editable) and bm_TGtkEntry_editable)
-
-proc visible*(a: PEntry): guint = 
-  result = (a.Entryflag0 and bm_TGtkEntry_visible) shr bp_TGtkEntry_visible
-
-proc set_visible*(a: PEntry, `visible`: guint) = 
-  a.Entryflag0 = a.Entryflag0 or
-      (int16(`visible` shl bp_TGtkEntry_visible) and bm_TGtkEntry_visible)
-
-proc overwrite_mode*(a: PEntry): guint = 
-  result = (a.Entryflag0 and bm_TGtkEntry_overwrite_mode) shr
-      bp_TGtkEntry_overwrite_mode
-
-proc set_overwrite_mode*(a: PEntry, `overwrite_mode`: guint) = 
-  a.Entryflag0 = a.Entryflag0 or
-      (int16(`overwrite_mode` shl bp_TGtkEntry_overwrite_mode) and
-      bm_TGtkEntry_overwrite_mode)
-
-proc in_drag*(a: PEntry): guint = 
-  result = (a.Entryflag0 and bm_TGtkEntry_in_drag) shr bp_TGtkEntry_in_drag
-
-proc set_in_drag*(a: PEntry, `in_drag`: guint) = 
-  a.Entryflag0 = a.Entryflag0 or
-      (int16(`in_drag` shl bp_TGtkEntry_in_drag) and bm_TGtkEntry_in_drag)
-
-proc cache_includes_preedit*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_cache_includes_preedit) shr
-      bp_TGtkEntry_cache_includes_preedit
-
-proc set_cache_includes_preedit*(a: PEntry, `cache_includes_preedit`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`cache_includes_preedit` shl bp_TGtkEntry_cache_includes_preedit) and
-      bm_TGtkEntry_cache_includes_preedit)
-
-proc need_im_reset*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_need_im_reset) shr
-      bp_TGtkEntry_need_im_reset
-
-proc set_need_im_reset*(a: PEntry, `need_im_reset`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`need_im_reset` shl bp_TGtkEntry_need_im_reset) and
-      bm_TGtkEntry_need_im_reset)
-
-proc has_frame*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_has_frame) shr bp_TGtkEntry_has_frame
-
-proc set_has_frame*(a: PEntry, `has_frame`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`has_frame` shl bp_TGtkEntry_has_frame) and
-      bm_TGtkEntry_has_frame)
-
-proc activates_default*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_activates_default) shr
-      bp_TGtkEntry_activates_default
-
-proc set_activates_default*(a: PEntry, `activates_default`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`activates_default` shl bp_TGtkEntry_activates_default) and
-      bm_TGtkEntry_activates_default)
-
-proc cursor_visible*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_cursor_visible) shr
-      bp_TGtkEntry_cursor_visible
-
-proc set_cursor_visible*(a: PEntry, `cursor_visible`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`cursor_visible` shl bp_TGtkEntry_cursor_visible) and
-      bm_TGtkEntry_cursor_visible)
-
-proc in_click*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_in_click) shr bp_TGtkEntry_in_click
-
-proc set_in_click*(a: PEntry, `in_click`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`in_click` shl bp_TGtkEntry_in_click) and bm_TGtkEntry_in_click)
-
-proc is_cell_renderer*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_is_cell_renderer) shr
-      bp_TGtkEntry_is_cell_renderer
-
-proc set_is_cell_renderer*(a: PEntry, `is_cell_renderer`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`is_cell_renderer` shl bp_TGtkEntry_is_cell_renderer) and
-      bm_TGtkEntry_is_cell_renderer)
-
-proc editing_canceled*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_editing_canceled) shr
-      bp_TGtkEntry_editing_canceled
-
-proc set_editing_canceled*(a: PEntry, `editing_canceled`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`editing_canceled` shl bp_TGtkEntry_editing_canceled) and
-      bm_TGtkEntry_editing_canceled)
-
-proc mouse_cursor_obscured*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_mouse_cursor_obscured) shr
-      bp_TGtkEntry_mouse_cursor_obscured
-
-proc set_mouse_cursor_obscured*(a: PEntry, `mouse_cursor_obscured`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`mouse_cursor_obscured` shl bp_TGtkEntry_mouse_cursor_obscured) and
-      bm_TGtkEntry_mouse_cursor_obscured)
-
-proc TYPE_EVENT_BOX*(): GType = 
-  result = event_box_get_type()
-
-proc EVENT_BOX*(obj: pointer): PEventBox = 
-  result = cast[PEventBox](CHECK_CAST(obj, TYPE_EVENT_BOX()))
-
-proc EVENT_BOX_CLASS*(klass: pointer): PEventBoxClass = 
-  result = cast[PEventBoxClass](CHECK_CLASS_CAST(klass, TYPE_EVENT_BOX()))
-
-proc IS_EVENT_BOX*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_EVENT_BOX())
-
-proc IS_EVENT_BOX_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_EVENT_BOX())
-
-proc EVENT_BOX_GET_CLASS*(obj: pointer): PEventBoxClass = 
-  result = cast[PEventBoxClass](CHECK_GET_CLASS(obj, TYPE_EVENT_BOX()))
-
-proc TYPE_FILE_SELECTION*(): GType = 
-  result = file_selection_get_type()
-
-proc FILE_SELECTION*(obj: pointer): PFileSelection = 
-  result = cast[PFileSelection](CHECK_CAST(obj, TYPE_FILE_SELECTION()))
-
-proc FILE_SELECTION_CLASS*(klass: pointer): PFileSelectionClass = 
-  result = cast[PFileSelectionClass](CHECK_CLASS_CAST(klass, 
-      TYPE_FILE_SELECTION()))
-
-proc IS_FILE_SELECTION*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_FILE_SELECTION())
-
-proc IS_FILE_SELECTION_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_FILE_SELECTION())
-
-proc FILE_SELECTION_GET_CLASS*(obj: pointer): PFileSelectionClass = 
-  result = cast[PFileSelectionClass](CHECK_GET_CLASS(obj, TYPE_FILE_SELECTION()))
-
-proc TYPE_FIXED*(): GType = 
-  result = fixed_get_type()
-
-proc FIXED*(obj: pointer): PFixed = 
-  result = cast[PFixed](CHECK_CAST(obj, TYPE_FIXED()))
-
-proc FIXED_CLASS*(klass: pointer): PFixedClass = 
-  result = cast[PFixedClass](CHECK_CLASS_CAST(klass, TYPE_FIXED()))
-
-proc IS_FIXED*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_FIXED())
-
-proc IS_FIXED_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_FIXED())
-
-proc FIXED_GET_CLASS*(obj: pointer): PFixedClass = 
-  result = cast[PFixedClass](CHECK_GET_CLASS(obj, TYPE_FIXED()))
-
-proc TYPE_FONT_SELECTION*(): GType = 
-  result = font_selection_get_type()
-
-proc FONT_SELECTION*(obj: pointer): PFontSelection = 
-  result = cast[PFontSelection](CHECK_CAST(obj, TYPE_FONT_SELECTION()))
-
-proc FONT_SELECTION_CLASS*(klass: pointer): PFontSelectionClass = 
-  result = cast[PFontSelectionClass](CHECK_CLASS_CAST(klass, 
-      TYPE_FONT_SELECTION()))
-
-proc IS_FONT_SELECTION*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_FONT_SELECTION())
-
-proc IS_FONT_SELECTION_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_FONT_SELECTION())
-
-proc FONT_SELECTION_GET_CLASS*(obj: pointer): PFontSelectionClass = 
-  result = cast[PFontSelectionClass](CHECK_GET_CLASS(obj, TYPE_FONT_SELECTION()))
-
-proc TYPE_FONT_SELECTION_DIALOG*(): GType = 
-  result = font_selection_dialog_get_type()
-
-proc FONT_SELECTION_DIALOG*(obj: pointer): PFontSelectionDialog = 
-  result = cast[PFontSelectionDialog](CHECK_CAST(obj, 
-      TYPE_FONT_SELECTION_DIALOG()))
-
-proc FONT_SELECTION_DIALOG_CLASS*(klass: pointer): PFontSelectionDialogClass = 
-  result = cast[PFontSelectionDialogClass](CHECK_CLASS_CAST(klass, 
-      TYPE_FONT_SELECTION_DIALOG()))
-
-proc IS_FONT_SELECTION_DIALOG*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_FONT_SELECTION_DIALOG())
-
-proc IS_FONT_SELECTION_DIALOG_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_FONT_SELECTION_DIALOG())
-
-proc FONT_SELECTION_DIALOG_GET_CLASS*(obj: pointer): PFontSelectionDialogClass = 
-  result = cast[PFontSelectionDialogClass](CHECK_GET_CLASS(obj, 
-      TYPE_FONT_SELECTION_DIALOG()))
-
-proc TYPE_GAMMA_CURVE*(): GType = 
-  result = gamma_curve_get_type()
-
-proc GAMMA_CURVE*(obj: pointer): PGammaCurve = 
-  result = cast[PGammaCurve](CHECK_CAST(obj, TYPE_GAMMA_CURVE()))
-
-proc GAMMA_CURVE_CLASS*(klass: pointer): PGammaCurveClass = 
-  result = cast[PGammaCurveClass](CHECK_CLASS_CAST(klass, TYPE_GAMMA_CURVE()))
-
-proc IS_GAMMA_CURVE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_GAMMA_CURVE())
-
-proc IS_GAMMA_CURVE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_GAMMA_CURVE())
-
-proc GAMMA_CURVE_GET_CLASS*(obj: pointer): PGammaCurveClass = 
-  result = cast[PGammaCurveClass](CHECK_GET_CLASS(obj, TYPE_GAMMA_CURVE()))
-
-proc TYPE_HANDLE_BOX*(): GType = 
-  result = handle_box_get_type()
-
-proc HANDLE_BOX*(obj: pointer): PHandleBox = 
-  result = cast[PHandleBox](CHECK_CAST(obj, TYPE_HANDLE_BOX()))
-
-proc HANDLE_BOX_CLASS*(klass: pointer): PHandleBoxClass = 
-  result = cast[PHandleBoxClass](CHECK_CLASS_CAST(klass, TYPE_HANDLE_BOX()))
-
-proc IS_HANDLE_BOX*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_HANDLE_BOX())
-
-proc IS_HANDLE_BOX_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_HANDLE_BOX())
-
-proc HANDLE_BOX_GET_CLASS*(obj: pointer): PHandleBoxClass = 
-  result = cast[PHandleBoxClass](CHECK_GET_CLASS(obj, TYPE_HANDLE_BOX()))
-
-proc handle_position*(a: PHandleBox): guint = 
-  result = (a.HandleBoxflag0 and bm_TGtkHandleBox_handle_position) shr
-      bp_TGtkHandleBox_handle_position
-
-proc set_handle_position*(a: PHandleBox, `handle_position`: guint) = 
-  a.HandleBoxflag0 = a.HandleBoxflag0 or
-      (int16(`handle_position` shl bp_TGtkHandleBox_handle_position) and
-      bm_TGtkHandleBox_handle_position)
-
-proc float_window_mapped*(a: PHandleBox): guint = 
-  result = (a.HandleBoxflag0 and bm_TGtkHandleBox_float_window_mapped) shr
-      bp_TGtkHandleBox_float_window_mapped
-
-proc set_float_window_mapped*(a: PHandleBox, `float_window_mapped`: guint) = 
-  a.HandleBoxflag0 = a.HandleBoxflag0 or
-      (int16(`float_window_mapped` shl bp_TGtkHandleBox_float_window_mapped) and
-      bm_TGtkHandleBox_float_window_mapped)
-
-proc child_detached*(a: PHandleBox): guint = 
-  result = (a.HandleBoxflag0 and bm_TGtkHandleBox_child_detached) shr
-      bp_TGtkHandleBox_child_detached
-
-proc set_child_detached*(a: PHandleBox, `child_detached`: guint) = 
-  a.HandleBoxflag0 = a.HandleBoxflag0 or
-      (int16(`child_detached` shl bp_TGtkHandleBox_child_detached) and
-      bm_TGtkHandleBox_child_detached)
-
-proc in_drag*(a: PHandleBox): guint = 
-  result = (a.HandleBoxflag0 and bm_TGtkHandleBox_in_drag) shr
-      bp_TGtkHandleBox_in_drag
-
-proc set_in_drag*(a: PHandleBox, `in_drag`: guint) = 
-  a.HandleBoxflag0 = a.HandleBoxflag0 or
-      (int16(`in_drag` shl bp_TGtkHandleBox_in_drag) and
-      bm_TGtkHandleBox_in_drag)
-
-proc shrink_on_detach*(a: PHandleBox): guint = 
-  result = (a.HandleBoxflag0 and bm_TGtkHandleBox_shrink_on_detach) shr
-      bp_TGtkHandleBox_shrink_on_detach
-
-proc set_shrink_on_detach*(a: PHandleBox, `shrink_on_detach`: guint) = 
-  a.HandleBoxflag0 = a.HandleBoxflag0 or
-      (int16(`shrink_on_detach` shl bp_TGtkHandleBox_shrink_on_detach) and
-      bm_TGtkHandleBox_shrink_on_detach)
-
-proc snap_edge*(a: PHandleBox): gint = 
-  result = (a.HandleBoxflag0 and bm_TGtkHandleBox_snap_edge) shr
-      bp_TGtkHandleBox_snap_edge
-
-proc set_snap_edge*(a: PHandleBox, `snap_edge`: gint) = 
-  a.HandleBoxflag0 = a.HandleBoxflag0 or
-      (int16(`snap_edge` shl bp_TGtkHandleBox_snap_edge) and
-      bm_TGtkHandleBox_snap_edge)
-
-proc TYPE_PANED*(): GType = 
-  result = paned_get_type()
-
-proc PANED*(obj: pointer): PPaned = 
-  result = cast[PPaned](CHECK_CAST(obj, TYPE_PANED()))
-
-proc PANED_CLASS*(klass: pointer): PPanedClass = 
-  result = cast[PPanedClass](CHECK_CLASS_CAST(klass, TYPE_PANED()))
-
-proc IS_PANED*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_PANED())
-
-proc IS_PANED_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_PANED())
-
-proc PANED_GET_CLASS*(obj: pointer): PPanedClass = 
-  result = cast[PPanedClass](CHECK_GET_CLASS(obj, TYPE_PANED()))
-
-proc position_set*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_position_set) shr
-      bp_TGtkPaned_position_set
-
-proc set_position_set*(a: PPaned, `position_set`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`position_set` shl bp_TGtkPaned_position_set) and
-      bm_TGtkPaned_position_set)
-
-proc in_drag*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_in_drag) shr bp_TGtkPaned_in_drag
-
-proc set_in_drag*(a: PPaned, `in_drag`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`in_drag` shl bp_TGtkPaned_in_drag) and bm_TGtkPaned_in_drag)
-
-proc child1_shrink*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_child1_shrink) shr
-      bp_TGtkPaned_child1_shrink
-
-proc set_child1_shrink*(a: PPaned, `child1_shrink`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`child1_shrink` shl bp_TGtkPaned_child1_shrink) and
-      bm_TGtkPaned_child1_shrink)
-
-proc child1_resize*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_child1_resize) shr
-      bp_TGtkPaned_child1_resize
-
-proc set_child1_resize*(a: PPaned, `child1_resize`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`child1_resize` shl bp_TGtkPaned_child1_resize) and
-      bm_TGtkPaned_child1_resize)
-
-proc child2_shrink*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_child2_shrink) shr
-      bp_TGtkPaned_child2_shrink
-
-proc set_child2_shrink*(a: PPaned, `child2_shrink`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`child2_shrink` shl bp_TGtkPaned_child2_shrink) and
-      bm_TGtkPaned_child2_shrink)
-
-proc child2_resize*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_child2_resize) shr
-      bp_TGtkPaned_child2_resize
-
-proc set_child2_resize*(a: PPaned, `child2_resize`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`child2_resize` shl bp_TGtkPaned_child2_resize) and
-      bm_TGtkPaned_child2_resize)
-
-proc orientation*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_orientation) shr
-      bp_TGtkPaned_orientation
-
-proc set_orientation*(a: PPaned, `orientation`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`orientation` shl bp_TGtkPaned_orientation) and
-      bm_TGtkPaned_orientation)
-
-proc in_recursion*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_in_recursion) shr
-      bp_TGtkPaned_in_recursion
-
-proc set_in_recursion*(a: PPaned, `in_recursion`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`in_recursion` shl bp_TGtkPaned_in_recursion) and
-      bm_TGtkPaned_in_recursion)
-
-proc handle_prelit*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_handle_prelit) shr
-      bp_TGtkPaned_handle_prelit
-
-proc set_handle_prelit*(a: PPaned, `handle_prelit`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`handle_prelit` shl bp_TGtkPaned_handle_prelit) and
-      bm_TGtkPaned_handle_prelit)
-
-proc paned_gutter_size*(p: pointer, s: gint) = 
-  if (p != nil) and (s != 0'i32): nil
-  
-proc paned_set_gutter_size*(p: pointer, s: gint) = 
-  if (p != nil) and (s != 0'i32): nil
-  
-proc TYPE_HBUTTON_BOX*(): GType = 
-  result = hbutton_box_get_type()
-
-proc HBUTTON_BOX*(obj: pointer): PHButtonBox = 
-  result = cast[PHButtonBox](CHECK_CAST(obj, TYPE_HBUTTON_BOX()))
-
-proc HBUTTON_BOX_CLASS*(klass: pointer): PHButtonBoxClass = 
-  result = cast[PHButtonBoxClass](CHECK_CLASS_CAST(klass, TYPE_HBUTTON_BOX()))
-
-proc IS_HBUTTON_BOX*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_HBUTTON_BOX())
-
-proc IS_HBUTTON_BOX_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_HBUTTON_BOX())
-
-proc HBUTTON_BOX_GET_CLASS*(obj: pointer): PHButtonBoxClass = 
-  result = cast[PHButtonBoxClass](CHECK_GET_CLASS(obj, TYPE_HBUTTON_BOX()))
-
-proc TYPE_HPANED*(): GType = 
-  result = hpaned_get_type()
-
-proc HPANED*(obj: pointer): PHPaned = 
-  result = cast[PHPaned](CHECK_CAST(obj, TYPE_HPANED()))
-
-proc HPANED_CLASS*(klass: pointer): PHPanedClass = 
-  result = cast[PHPanedClass](CHECK_CLASS_CAST(klass, TYPE_HPANED()))
-
-proc IS_HPANED*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_HPANED())
-
-proc IS_HPANED_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_HPANED())
-
-proc HPANED_GET_CLASS*(obj: pointer): PHPanedClass = 
-  result = cast[PHPanedClass](CHECK_GET_CLASS(obj, TYPE_HPANED()))
-
-proc TYPE_RULER*(): GType = 
-  result = ruler_get_type()
-
-proc RULER*(obj: pointer): PRuler = 
-  result = cast[PRuler](CHECK_CAST(obj, TYPE_RULER()))
-
-proc RULER_CLASS*(klass: pointer): PRulerClass = 
-  result = cast[PRulerClass](CHECK_CLASS_CAST(klass, TYPE_RULER()))
-
-proc IS_RULER*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_RULER())
-
-proc IS_RULER_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_RULER())
-
-proc RULER_GET_CLASS*(obj: pointer): PRulerClass = 
-  result = cast[PRulerClass](CHECK_GET_CLASS(obj, TYPE_RULER()))
-
-proc TYPE_HRULER*(): GType = 
-  result = hruler_get_type()
-
-proc HRULER*(obj: pointer): PHRuler = 
-  result = cast[PHRuler](CHECK_CAST(obj, TYPE_HRULER()))
-
-proc HRULER_CLASS*(klass: pointer): PHRulerClass = 
-  result = cast[PHRulerClass](CHECK_CLASS_CAST(klass, TYPE_HRULER()))
-
-proc IS_HRULER*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_HRULER())
-
-proc IS_HRULER_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_HRULER())
-
-proc HRULER_GET_CLASS*(obj: pointer): PHRulerClass = 
-  result = cast[PHRulerClass](CHECK_GET_CLASS(obj, TYPE_HRULER()))
-
-proc TYPE_SETTINGS*(): GType = 
-  result = settings_get_type()
-
-proc SETTINGS*(obj: pointer): PSettings = 
-  result = cast[PSettings](CHECK_CAST(obj, TYPE_SETTINGS()))
-
-proc SETTINGS_CLASS*(klass: pointer): PSettingsClass = 
-  result = cast[PSettingsClass](CHECK_CLASS_CAST(klass, TYPE_SETTINGS()))
-
-proc IS_SETTINGS*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SETTINGS())
-
-proc IS_SETTINGS_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SETTINGS())
-
-proc SETTINGS_GET_CLASS*(obj: pointer): PSettingsClass = 
-  result = cast[PSettingsClass](CHECK_GET_CLASS(obj, TYPE_SETTINGS()))
-
-proc TYPE_RC_STYLE*(): GType = 
-  result = rc_style_get_type()
-
-proc RC_STYLE_get*(anObject: pointer): PRcStyle = 
-  result = cast[PRcStyle](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_RC_STYLE()))
-
-proc RC_STYLE_CLASS*(klass: pointer): PRcStyleClass = 
-  result = cast[PRcStyleClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_RC_STYLE()))
-
-proc IS_RC_STYLE*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_RC_STYLE())
-
-proc IS_RC_STYLE_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_RC_STYLE())
-
-proc RC_STYLE_GET_CLASS*(obj: pointer): PRcStyleClass = 
-  result = cast[PRcStyleClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_RC_STYLE()))
-
-proc engine_specified*(a: PRcStyle): guint = 
-  result = (a.RcStyleflag0 and bm_TGtkRcStyle_engine_specified) shr
-      bp_TGtkRcStyle_engine_specified
-
-proc set_engine_specified*(a: PRcStyle, `engine_specified`: guint) = 
-  a.RcStyleflag0 = a.RcStyleflag0 or
-      (int16(`engine_specified` shl bp_TGtkRcStyle_engine_specified) and
-      bm_TGtkRcStyle_engine_specified)
-
-proc TYPE_STYLE*(): GType = 
-  result = style_get_type()
-
-proc STYLE*(anObject: pointer): PStyle = 
-  result = cast[PStyle](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_STYLE()))
-
-proc STYLE_CLASS*(klass: pointer): PStyleClass = 
-  result = cast[PStyleClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_STYLE()))
-
-proc IS_STYLE*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_STYLE())
-
-proc IS_STYLE_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_STYLE())
-
-proc STYLE_GET_CLASS*(obj: pointer): PStyleClass = 
-  result = cast[PStyleClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_STYLE()))
-
-proc TYPE_BORDER*(): GType = 
-  result = border_get_type()
-
-proc STYLE_ATTACHED*(style: pointer): bool = 
-  result = ((STYLE(style)).attach_count) > 0'i32
-
-proc apply_default_pixmap*(style: PStyle, window: gdk2.PWindow, 
-                                 state_type: TStateType, area: gdk2.PRectangle, 
-                                 x: gint, y: gint, width: gint, height: gint) = 
-  apply_default_background(style, window, true, state_type, area, x, y, 
-                           width, height)
-
-proc TYPE_RANGE*(): GType = 
-  result = range_get_type()
-
-proc RANGE*(obj: pointer): PRange = 
-  result = cast[PRange](CHECK_CAST(obj, TYPE_RANGE()))
-
-proc RANGE_CLASS*(klass: pointer): PRangeClass = 
-  result = cast[PRangeClass](CHECK_CLASS_CAST(klass, TYPE_RANGE()))
-
-proc IS_RANGE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_RANGE())
-
-proc IS_RANGE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_RANGE())
-
-proc RANGE_GET_CLASS*(obj: pointer): PRangeClass = 
-  result = cast[PRangeClass](CHECK_GET_CLASS(obj, TYPE_RANGE()))
-
-proc inverted*(a: PRange): guint = 
-  result = (a.Rangeflag0 and bm_TGtkRange_inverted) shr bp_TGtkRange_inverted
-
-proc set_inverted*(a: PRange, `inverted`: guint) = 
-  a.Rangeflag0 = a.Rangeflag0 or
-      (int16(`inverted` shl bp_TGtkRange_inverted) and bm_TGtkRange_inverted)
-
-proc flippable*(a: PRange): guint = 
-  result = (a.Rangeflag0 and bm_TGtkRange_flippable) shr
-      bp_TGtkRange_flippable
-
-proc set_flippable*(a: PRange, `flippable`: guint) = 
-  a.Rangeflag0 = a.Rangeflag0 or
-      (int16(`flippable` shl bp_TGtkRange_flippable) and
-      bm_TGtkRange_flippable)
-
-proc has_stepper_a*(a: PRange): guint = 
-  result = (a.Rangeflag0 and bm_TGtkRange_has_stepper_a) shr
-      bp_TGtkRange_has_stepper_a
-
-proc set_has_stepper_a*(a: PRange, `has_stepper_a`: guint) = 
-  a.Rangeflag0 = a.Rangeflag0 or
-      (int16(`has_stepper_a` shl bp_TGtkRange_has_stepper_a) and
-      bm_TGtkRange_has_stepper_a)
-
-proc has_stepper_b*(a: PRange): guint = 
-  result = (a.Rangeflag0 and bm_TGtkRange_has_stepper_b) shr
-      bp_TGtkRange_has_stepper_b
-
-proc set_has_stepper_b*(a: PRange, `has_stepper_b`: guint) = 
-  a.Rangeflag0 = a.Rangeflag0 or
-      (int16(`has_stepper_b` shl bp_TGtkRange_has_stepper_b) and
-      bm_TGtkRange_has_stepper_b)
-
-proc has_stepper_c*(a: PRange): guint = 
-  result = (a.Rangeflag0 and bm_TGtkRange_has_stepper_c) shr
-      bp_TGtkRange_has_stepper_c
-
-proc set_has_stepper_c*(a: PRange, `has_stepper_c`: guint) = 
-  a.Rangeflag0 = a.Rangeflag0 or
-      (int16(`has_stepper_c` shl bp_TGtkRange_has_stepper_c) and
-      bm_TGtkRange_has_stepper_c)
-
-proc has_stepper_d*(a: PRange): guint = 
-  result = (a.Rangeflag0 and bm_TGtkRange_has_stepper_d) shr
-      bp_TGtkRange_has_stepper_d
-
-proc set_has_stepper_d*(a: PRange, `has_stepper_d`: guint) = 
-  a.Rangeflag0 = a.Rangeflag0 or
-      (int16(`has_stepper_d` shl bp_TGtkRange_has_stepper_d) and
-      bm_TGtkRange_has_stepper_d)
-
-proc need_recalc*(a: PRange): guint = 
-  result = (a.Rangeflag0 and bm_TGtkRange_need_recalc) shr
-      bp_TGtkRange_need_recalc
-
-proc set_need_recalc*(a: PRange, `need_recalc`: guint) = 
-  a.Rangeflag0 = a.Rangeflag0 or
-      (int16(`need_recalc` shl bp_TGtkRange_need_recalc) and
-      bm_TGtkRange_need_recalc)
-
-proc slider_size_fixed*(a: PRange): guint = 
-  result = (a.Rangeflag0 and bm_TGtkRange_slider_size_fixed) shr
-      bp_TGtkRange_slider_size_fixed
-
-proc set_slider_size_fixed*(a: PRange, `slider_size_fixed`: guint) = 
-  a.Rangeflag0 = a.Rangeflag0 or
-      (int16(`slider_size_fixed` shl bp_TGtkRange_slider_size_fixed) and
-      bm_TGtkRange_slider_size_fixed)
-
-proc trough_click_forward*(a: PRange): guint = 
-  result = (a.flag1 and bm_TGtkRange_trough_click_forward) shr
-      bp_TGtkRange_trough_click_forward
-
-proc set_trough_click_forward*(a: PRange, `trough_click_forward`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`trough_click_forward` shl bp_TGtkRange_trough_click_forward) and
-      bm_TGtkRange_trough_click_forward)
-
-proc update_pending*(a: PRange): guint = 
-  result = (a.flag1 and bm_TGtkRange_update_pending) shr
-      bp_TGtkRange_update_pending
-
-proc set_update_pending*(a: PRange, `update_pending`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`update_pending` shl bp_TGtkRange_update_pending) and
-      bm_TGtkRange_update_pending)
-
-proc TYPE_SCALE*(): GType = 
-  result = scale_get_type()
-
-proc SCALE*(obj: pointer): PScale = 
-  result = cast[PScale](CHECK_CAST(obj, TYPE_SCALE()))
-
-proc SCALE_CLASS*(klass: pointer): PScaleClass = 
-  result = cast[PScaleClass](CHECK_CLASS_CAST(klass, TYPE_SCALE()))
-
-proc IS_SCALE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SCALE())
-
-proc IS_SCALE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SCALE())
-
-proc SCALE_GET_CLASS*(obj: pointer): PScaleClass = 
-  result = cast[PScaleClass](CHECK_GET_CLASS(obj, TYPE_SCALE()))
-
-proc draw_value*(a: PScale): guint = 
-  result = (a.Scaleflag0 and bm_TGtkScale_draw_value) shr
-      bp_TGtkScale_draw_value
-
-proc set_draw_value*(a: PScale, `draw_value`: guint) = 
-  a.Scaleflag0 = a.Scaleflag0 or
-      (int16(`draw_value` shl bp_TGtkScale_draw_value) and
-      bm_TGtkScale_draw_value)
-
-proc value_pos*(a: PScale): guint = 
-  result = (a.Scaleflag0 and bm_TGtkScale_value_pos) shr
-      bp_TGtkScale_value_pos
-
-proc set_value_pos*(a: PScale, `value_pos`: guint) = 
-  a.Scaleflag0 = a.Scaleflag0 or
-      (int16(`value_pos` shl bp_TGtkScale_value_pos) and
-      bm_TGtkScale_value_pos)
-
-proc TYPE_HSCALE*(): GType = 
-  result = hscale_get_type()
-
-proc HSCALE*(obj: pointer): PHScale = 
-  result = cast[PHScale](CHECK_CAST(obj, TYPE_HSCALE()))
-
-proc HSCALE_CLASS*(klass: pointer): PHScaleClass = 
-  result = cast[PHScaleClass](CHECK_CLASS_CAST(klass, TYPE_HSCALE()))
-
-proc IS_HSCALE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_HSCALE())
-
-proc IS_HSCALE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_HSCALE())
-
-proc HSCALE_GET_CLASS*(obj: pointer): PHScaleClass = 
-  result = cast[PHScaleClass](CHECK_GET_CLASS(obj, TYPE_HSCALE()))
-
-proc TYPE_SCROLLBAR*(): GType = 
-  result = scrollbar_get_type()
-
-proc SCROLLBAR*(obj: pointer): PScrollbar = 
-  result = cast[PScrollbar](CHECK_CAST(obj, TYPE_SCROLLBAR()))
-
-proc SCROLLBAR_CLASS*(klass: pointer): PScrollbarClass = 
-  result = cast[PScrollbarClass](CHECK_CLASS_CAST(klass, TYPE_SCROLLBAR()))
-
-proc IS_SCROLLBAR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SCROLLBAR())
-
-proc IS_SCROLLBAR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SCROLLBAR())
-
-proc SCROLLBAR_GET_CLASS*(obj: pointer): PScrollbarClass = 
-  result = cast[PScrollbarClass](CHECK_GET_CLASS(obj, TYPE_SCROLLBAR()))
-
-proc TYPE_HSCROLLBAR*(): GType = 
-  result = hscrollbar_get_type()
-
-proc HSCROLLBAR*(obj: pointer): PHScrollbar = 
-  result = cast[PHScrollbar](CHECK_CAST(obj, TYPE_HSCROLLBAR()))
-
-proc HSCROLLBAR_CLASS*(klass: pointer): PHScrollbarClass = 
-  result = cast[PHScrollbarClass](CHECK_CLASS_CAST(klass, TYPE_HSCROLLBAR()))
-
-proc IS_HSCROLLBAR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_HSCROLLBAR())
-
-proc IS_HSCROLLBAR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_HSCROLLBAR())
-
-proc HSCROLLBAR_GET_CLASS*(obj: pointer): PHScrollbarClass = 
-  result = cast[PHScrollbarClass](CHECK_GET_CLASS(obj, TYPE_HSCROLLBAR()))
-
-proc TYPE_SEPARATOR*(): GType = 
-  result = separator_get_type()
-
-proc SEPARATOR*(obj: pointer): PSeparator = 
-  result = cast[PSeparator](CHECK_CAST(obj, TYPE_SEPARATOR()))
-
-proc SEPARATOR_CLASS*(klass: pointer): PSeparatorClass = 
-  result = cast[PSeparatorClass](CHECK_CLASS_CAST(klass, TYPE_SEPARATOR()))
-
-proc IS_SEPARATOR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SEPARATOR())
-
-proc IS_SEPARATOR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SEPARATOR())
-
-proc SEPARATOR_GET_CLASS*(obj: pointer): PSeparatorClass = 
-  result = cast[PSeparatorClass](CHECK_GET_CLASS(obj, TYPE_SEPARATOR()))
-
-proc TYPE_HSEPARATOR*(): GType = 
-  result = hseparator_get_type()
-
-proc HSEPARATOR*(obj: pointer): PHSeparator = 
-  result = cast[PHSeparator](CHECK_CAST(obj, TYPE_HSEPARATOR()))
-
-proc HSEPARATOR_CLASS*(klass: pointer): PHSeparatorClass = 
-  result = cast[PHSeparatorClass](CHECK_CLASS_CAST(klass, TYPE_HSEPARATOR()))
-
-proc IS_HSEPARATOR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_HSEPARATOR())
-
-proc IS_HSEPARATOR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_HSEPARATOR())
-
-proc HSEPARATOR_GET_CLASS*(obj: pointer): PHSeparatorClass = 
-  result = cast[PHSeparatorClass](CHECK_GET_CLASS(obj, TYPE_HSEPARATOR()))
-
-proc TYPE_ICON_FACTORY*(): GType = 
-  result = icon_factory_get_type()
-
-proc ICON_FACTORY*(anObject: pointer): PIconFactory = 
-  result = cast[PIconFactory](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_ICON_FACTORY()))
-
-proc ICON_FACTORY_CLASS*(klass: pointer): PIconFactoryClass = 
-  result = cast[PIconFactoryClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_ICON_FACTORY()))
-
-proc IS_ICON_FACTORY*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_ICON_FACTORY())
-
-proc IS_ICON_FACTORY_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_ICON_FACTORY())
-
-proc ICON_FACTORY_GET_CLASS*(obj: pointer): PIconFactoryClass = 
-  result = cast[PIconFactoryClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_ICON_FACTORY()))
-
-proc TYPE_ICON_SET*(): GType = 
-  result = icon_set_get_type()
-
-proc TYPE_ICON_SOURCE*(): GType = 
-  result = icon_source_get_type()
-
-proc TYPE_IMAGE*(): GType = 
-  result = gtk2.image_get_type()
-
-proc IMAGE*(obj: pointer): PImage = 
-  result = cast[PImage](CHECK_CAST(obj, gtk2.TYPE_IMAGE()))
-
-proc IMAGE_CLASS*(klass: pointer): PImageClass = 
-  result = cast[PImageClass](CHECK_CLASS_CAST(klass, gtk2.TYPE_IMAGE()))
-
-proc IS_IMAGE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, gtk2.TYPE_IMAGE())
-
-proc IS_IMAGE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, gtk2.TYPE_IMAGE())
-
-proc IMAGE_GET_CLASS*(obj: pointer): PImageClass = 
-  result = cast[PImageClass](CHECK_GET_CLASS(obj, gtk2.TYPE_IMAGE()))
-
-proc TYPE_IMAGE_MENU_ITEM*(): GType = 
-  result = image_menu_item_get_type()
-
-proc IMAGE_MENU_ITEM*(obj: pointer): PImageMenuItem = 
-  result = cast[PImageMenuItem](CHECK_CAST(obj, TYPE_IMAGE_MENU_ITEM()))
-
-proc IMAGE_MENU_ITEM_CLASS*(klass: pointer): PImageMenuItemClass = 
-  result = cast[PImageMenuItemClass](CHECK_CLASS_CAST(klass, 
-      TYPE_IMAGE_MENU_ITEM()))
-
-proc IS_IMAGE_MENU_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_IMAGE_MENU_ITEM())
-
-proc IS_IMAGE_MENU_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_IMAGE_MENU_ITEM())
-
-proc IMAGE_MENU_ITEM_GET_CLASS*(obj: pointer): PImageMenuItemClass = 
-  result = cast[PImageMenuItemClass](CHECK_GET_CLASS(obj, TYPE_IMAGE_MENU_ITEM()))
-
-proc TYPE_IM_CONTEXT_SIMPLE*(): GType = 
-  result = im_context_simple_get_type()
-
-proc IM_CONTEXT_SIMPLE*(obj: pointer): PIMContextSimple = 
-  result = cast[PIMContextSimple](CHECK_CAST(obj, TYPE_IM_CONTEXT_SIMPLE()))
-
-proc IM_CONTEXT_SIMPLE_CLASS*(klass: pointer): PIMContextSimpleClass = 
-  result = cast[PIMContextSimpleClass](CHECK_CLASS_CAST(klass, 
-      TYPE_IM_CONTEXT_SIMPLE()))
-
-proc IS_IM_CONTEXT_SIMPLE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_IM_CONTEXT_SIMPLE())
-
-proc IS_IM_CONTEXT_SIMPLE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_IM_CONTEXT_SIMPLE())
-
-proc IM_CONTEXT_SIMPLE_GET_CLASS*(obj: pointer): PIMContextSimpleClass = 
-  result = cast[PIMContextSimpleClass](CHECK_GET_CLASS(obj, 
-      TYPE_IM_CONTEXT_SIMPLE()))
-
-proc in_hex_sequence*(a: PIMContextSimple): guint = 
-  result = (a.IMContextSimpleflag0 and bm_TGtkIMContextSimple_in_hex_sequence) shr
-      bp_TGtkIMContextSimple_in_hex_sequence
-
-proc set_in_hex_sequence*(a: PIMContextSimple, `in_hex_sequence`: guint) = 
-  a.IMContextSimpleflag0 = a.IMContextSimpleflag0 or
-      (int16(`in_hex_sequence` shl bp_TGtkIMContextSimple_in_hex_sequence) and
-      bm_TGtkIMContextSimple_in_hex_sequence)
-
-proc TYPE_IM_MULTICONTEXT*(): GType = 
-  result = im_multicontext_get_type()
-
-proc IM_MULTICONTEXT*(obj: pointer): PIMMulticontext = 
-  result = cast[PIMMulticontext](CHECK_CAST(obj, TYPE_IM_MULTICONTEXT()))
-
-proc IM_MULTICONTEXT_CLASS*(klass: pointer): PIMMulticontextClass = 
-  result = cast[PIMMulticontextClass](CHECK_CLASS_CAST(klass, 
-      TYPE_IM_MULTICONTEXT()))
-
-proc IS_IM_MULTICONTEXT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_IM_MULTICONTEXT())
-
-proc IS_IM_MULTICONTEXT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_IM_MULTICONTEXT())
-
-proc IM_MULTICONTEXT_GET_CLASS*(obj: pointer): PIMMulticontextClass = 
-  result = cast[PIMMulticontextClass](CHECK_GET_CLASS(obj, 
-      TYPE_IM_MULTICONTEXT()))
-
-proc TYPE_INPUT_DIALOG*(): GType = 
-  result = input_dialog_get_type()
-
-proc INPUT_DIALOG*(obj: pointer): PInputDialog = 
-  result = cast[PInputDialog](CHECK_CAST(obj, TYPE_INPUT_DIALOG()))
-
-proc INPUT_DIALOG_CLASS*(klass: pointer): PInputDialogClass = 
-  result = cast[PInputDialogClass](CHECK_CLASS_CAST(klass, TYPE_INPUT_DIALOG()))
-
-proc IS_INPUT_DIALOG*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_INPUT_DIALOG())
-
-proc IS_INPUT_DIALOG_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_INPUT_DIALOG())
-
-proc INPUT_DIALOG_GET_CLASS*(obj: pointer): PInputDialogClass = 
-  result = cast[PInputDialogClass](CHECK_GET_CLASS(obj, TYPE_INPUT_DIALOG()))
-
-proc TYPE_INVISIBLE*(): GType = 
-  result = invisible_get_type()
-
-proc INVISIBLE*(obj: pointer): PInvisible = 
-  result = cast[PInvisible](CHECK_CAST(obj, TYPE_INVISIBLE()))
-
-proc INVISIBLE_CLASS*(klass: pointer): PInvisibleClass = 
-  result = cast[PInvisibleClass](CHECK_CLASS_CAST(klass, TYPE_INVISIBLE()))
-
-proc IS_INVISIBLE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_INVISIBLE())
-
-proc IS_INVISIBLE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_INVISIBLE())
-
-proc INVISIBLE_GET_CLASS*(obj: pointer): PInvisibleClass = 
-  result = cast[PInvisibleClass](CHECK_GET_CLASS(obj, TYPE_INVISIBLE()))
-
-proc TYPE_ITEM_FACTORY*(): GType = 
-  result = item_factory_get_type()
-
-proc ITEM_FACTORY*(anObject: pointer): PItemFactory = 
-  result = cast[PItemFactory](CHECK_CAST(anObject, TYPE_ITEM_FACTORY()))
-
-proc ITEM_FACTORY_CLASS*(klass: pointer): PItemFactoryClass = 
-  result = cast[PItemFactoryClass](CHECK_CLASS_CAST(klass, TYPE_ITEM_FACTORY()))
-
-proc IS_ITEM_FACTORY*(anObject: pointer): bool = 
-  result = CHECK_TYPE(anObject, TYPE_ITEM_FACTORY())
-
-proc IS_ITEM_FACTORY_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ITEM_FACTORY())
-
-proc ITEM_FACTORY_GET_CLASS*(obj: pointer): PItemFactoryClass = 
-  result = cast[PItemFactoryClass](CHECK_GET_CLASS(obj, TYPE_ITEM_FACTORY()))
-
-proc TYPE_LAYOUT*(): GType = 
-  result = gtk2.layout_get_type()
-
-proc LAYOUT*(obj: pointer): PLayout = 
-  result = cast[PLayout](CHECK_CAST(obj, gtk2.TYPE_LAYOUT()))
-
-proc LAYOUT_CLASS*(klass: pointer): PLayoutClass = 
-  result = cast[PLayoutClass](CHECK_CLASS_CAST(klass, gtk2.TYPE_LAYOUT()))
-
-proc IS_LAYOUT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, gtk2.TYPE_LAYOUT())
-
-proc IS_LAYOUT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, gtk2.TYPE_LAYOUT())
-
-proc LAYOUT_GET_CLASS*(obj: pointer): PLayoutClass = 
-  result = cast[PLayoutClass](CHECK_GET_CLASS(obj, gtk2.TYPE_LAYOUT()))
-
-proc TYPE_LIST*(): GType = 
-  result = list_get_type()
-
-proc LIST*(obj: pointer): PList = 
-  result = cast[PList](CHECK_CAST(obj, TYPE_LIST()))
-
-proc LIST_CLASS*(klass: pointer): PListClass = 
-  result = cast[PListClass](CHECK_CLASS_CAST(klass, TYPE_LIST()))
-
-proc IS_LIST*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_LIST())
-
-proc IS_LIST_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_LIST())
-
-proc LIST_GET_CLASS*(obj: pointer): PListClass = 
-  result = cast[PListClass](CHECK_GET_CLASS(obj, TYPE_LIST()))
-
-proc selection_mode*(a: PList): guint = 
-  result = (a.Listflag0 and bm_TGtkList_selection_mode) shr
-      bp_TGtkList_selection_mode
-
-proc set_selection_mode*(a: PList, `selection_mode`: guint) = 
-  a.Listflag0 = a.Listflag0 or
-      (int16(`selection_mode` shl bp_TGtkList_selection_mode) and
-      bm_TGtkList_selection_mode)
-
-proc drag_selection*(a: PList): guint = 
-  result = (a.Listflag0 and bm_TGtkList_drag_selection) shr
-      bp_TGtkList_drag_selection
-
-proc set_drag_selection*(a: PList, `drag_selection`: guint) = 
-  a.Listflag0 = a.Listflag0 or
-      (int16(`drag_selection` shl bp_TGtkList_drag_selection) and
-      bm_TGtkList_drag_selection)
-
-proc add_mode*(a: PList): guint = 
-  result = (a.Listflag0 and bm_TGtkList_add_mode) shr bp_TGtkList_add_mode
-
-proc set_add_mode*(a: PList, `add_mode`: guint) = 
-  a.Listflag0 = a.Listflag0 or
-      (int16(`add_mode` shl bp_TGtkList_add_mode) and bm_TGtkList_add_mode)
-
-proc list_item_get_type(): GType{.importc: "gtk_list_item_get_type", cdecl, 
-                                  dynlib: lib.}
-proc TYPE_LIST_ITEM*(): GType = 
-  result = list_item_get_type()
-
-type 
-  TListItem = object of TItem
-  TListItemClass = object of TItemClass
-  PListItem = ptr TListItem
-  PListItemClass = ptr TListItemClass
-
-proc LIST_ITEM*(obj: pointer): PListItem = 
-  result = cast[PListItem](CHECK_CAST(obj, TYPE_LIST_ITEM()))
-
-proc LIST_ITEM_CLASS*(klass: pointer): PListItemClass = 
-  result = cast[PListItemClass](CHECK_CLASS_CAST(klass, TYPE_LIST_ITEM()))
-
-proc IS_LIST_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_LIST_ITEM())
-
-proc IS_LIST_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_LIST_ITEM())
-
-proc LIST_ITEM_GET_CLASS*(obj: pointer): PListItemClass = 
-  #proc gtk_tree_model_get_type(): GType {.importc, cdecl, dynlib: gtklib.}
-  result = cast[PListItemClass](CHECK_GET_CLASS(obj, TYPE_LIST_ITEM()))
-
-proc TYPE_TREE_MODEL*(): GType = 
-  result = tree_model_get_type()
-
-proc TREE_MODEL*(obj: pointer): PTreeModel = 
-  result = cast[PTreeModel](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_TREE_MODEL()))
-
-proc IS_TREE_MODEL*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TREE_MODEL())
-
-proc TREE_MODEL_GET_IFACE*(obj: pointer): PTreeModelIface = 
-  result = cast[PTreeModelIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_TREE_MODEL()))
-
-proc TYPE_TREE_ITER*(): GType = 
-  result = tree_iter_get_type()
-
-proc TYPE_TREE_PATH*(): GType = 
-  result = tree_path_get_type()
-
-proc tree_path_new_root*(): PTreePath = 
-  result = tree_path_new_first()
-
-proc get_iter_root*(tree_model: PTreeModel, iter: PTreeIter): gboolean = 
-  result = get_iter_first(tree_model, iter)
-
-proc TYPE_TREE_SORTABLE*(): GType = 
-  result = tree_sortable_get_type()
-
-proc TREE_SORTABLE*(obj: pointer): PTreeSortable = 
-  result = cast[PTreeSortable](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_TREE_SORTABLE()))
-
-proc TREE_SORTABLE_CLASS*(obj: pointer): PTreeSortableIface = 
-  result = cast[PTreeSortableIface](G_TYPE_CHECK_CLASS_CAST(obj, 
-      TYPE_TREE_SORTABLE()))
-
-proc IS_TREE_SORTABLE*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TREE_SORTABLE())
-
-proc TREE_SORTABLE_GET_IFACE*(obj: pointer): PTreeSortableIface = 
-  result = cast[PTreeSortableIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_TREE_SORTABLE()))
-
-proc TYPE_TREE_MODEL_SORT*(): GType = 
-  result = tree_model_sort_get_type()
-
-proc TREE_MODEL_SORT*(obj: pointer): PTreeModelSort = 
-  result = cast[PTreeModelSort](CHECK_CAST(obj, TYPE_TREE_MODEL_SORT()))
-
-proc TREE_MODEL_SORT_CLASS*(klass: pointer): PTreeModelSortClass = 
-  result = cast[PTreeModelSortClass](CHECK_CLASS_CAST(klass, 
-      TYPE_TREE_MODEL_SORT()))
-
-proc IS_TREE_MODEL_SORT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TREE_MODEL_SORT())
-
-proc IS_TREE_MODEL_SORT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TREE_MODEL_SORT())
-
-proc TREE_MODEL_SORT_GET_CLASS*(obj: pointer): PTreeModelSortClass = 
-  result = cast[PTreeModelSortClass](CHECK_GET_CLASS(obj, TYPE_TREE_MODEL_SORT()))
-
-proc TYPE_LIST_STORE*(): GType = 
-  result = list_store_get_type()
-
-proc LIST_STORE*(obj: pointer): PListStore = 
-  result = cast[PListStore](CHECK_CAST(obj, TYPE_LIST_STORE()))
-
-proc LIST_STORE_CLASS*(klass: pointer): PListStoreClass = 
-  result = cast[PListStoreClass](CHECK_CLASS_CAST(klass, TYPE_LIST_STORE()))
-
-proc IS_LIST_STORE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_LIST_STORE())
-
-proc IS_LIST_STORE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_LIST_STORE())
-
-proc LIST_STORE_GET_CLASS*(obj: pointer): PListStoreClass = 
-  result = cast[PListStoreClass](CHECK_GET_CLASS(obj, TYPE_LIST_STORE()))
-
-proc columns_dirty*(a: PListStore): guint = 
-  result = (a.ListStoreflag0 and bm_TGtkListStore_columns_dirty) shr
-      bp_TGtkListStore_columns_dirty
-
-proc set_columns_dirty*(a: PListStore, `columns_dirty`: guint) = 
-  a.ListStoreflag0 = a.ListStoreflag0 or
-      (int16(`columns_dirty` shl bp_TGtkListStore_columns_dirty) and
-      bm_TGtkListStore_columns_dirty)
-
-proc TYPE_MENU_BAR*(): GType = 
-  result = menu_bar_get_type()
-
-proc MENU_BAR*(obj: pointer): PMenuBar = 
-  result = cast[PMenuBar](CHECK_CAST(obj, TYPE_MENU_BAR()))
-
-proc MENU_BAR_CLASS*(klass: pointer): PMenuBarClass = 
-  result = cast[PMenuBarClass](CHECK_CLASS_CAST(klass, TYPE_MENU_BAR()))
-
-proc IS_MENU_BAR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_MENU_BAR())
-
-proc IS_MENU_BAR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_MENU_BAR())
-
-proc MENU_BAR_GET_CLASS*(obj: pointer): PMenuBarClass = 
-  result = cast[PMenuBarClass](CHECK_GET_CLASS(obj, TYPE_MENU_BAR()))
-
-proc menu_bar_append*(menu, child: PWidget) = 
-  append(cast[PMenuShell](menu), child)
-
-proc menu_bar_prepend*(menu, child: PWidget) = 
-  prepend(cast[PMenuShell](menu), child)
-
-proc menu_bar_insert*(menu, child: PWidget, pos: gint) = 
-  insert(cast[PMenuShell](menu), child, pos)
-
-proc TYPE_MESSAGE_DIALOG*(): GType = 
-  result = message_dialog_get_type()
-
-proc MESSAGE_DIALOG*(obj: pointer): PMessageDialog = 
-  result = cast[PMessageDialog](CHECK_CAST(obj, TYPE_MESSAGE_DIALOG()))
-
-proc MESSAGE_DIALOG_CLASS*(klass: pointer): PMessageDialogClass = 
-  result = cast[PMessageDialogClass](CHECK_CLASS_CAST(klass, 
-      TYPE_MESSAGE_DIALOG()))
-
-proc IS_MESSAGE_DIALOG*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_MESSAGE_DIALOG())
-
-proc IS_MESSAGE_DIALOG_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_MESSAGE_DIALOG())
-
-proc MESSAGE_DIALOG_GET_CLASS*(obj: pointer): PMessageDialogClass = 
-  result = cast[PMessageDialogClass](CHECK_GET_CLASS(obj, TYPE_MESSAGE_DIALOG()))
-
-proc TYPE_NOTEBOOK*(): GType = 
-  result = notebook_get_type()
-
-proc NOTEBOOK*(obj: pointer): PNotebook = 
-  result = cast[PNotebook](CHECK_CAST(obj, TYPE_NOTEBOOK()))
-
-proc NOTEBOOK_CLASS*(klass: pointer): PNotebookClass = 
-  result = cast[PNotebookClass](CHECK_CLASS_CAST(klass, TYPE_NOTEBOOK()))
-
-proc IS_NOTEBOOK*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_NOTEBOOK())
-
-proc IS_NOTEBOOK_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_NOTEBOOK())
-
-proc NOTEBOOK_GET_CLASS*(obj: pointer): PNotebookClass = 
-  result = cast[PNotebookClass](CHECK_GET_CLASS(obj, TYPE_NOTEBOOK()))
-
-proc show_tabs*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_show_tabs) shr
-      bp_TGtkNotebook_show_tabs
-
-proc set_show_tabs*(a: PNotebook, `show_tabs`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`show_tabs` shl bp_TGtkNotebook_show_tabs) and
-      bm_TGtkNotebook_show_tabs)
-
-proc homogeneous*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_homogeneous) shr
-      bp_TGtkNotebook_homogeneous
-
-proc set_homogeneous*(a: PNotebook, `homogeneous`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`homogeneous` shl bp_TGtkNotebook_homogeneous) and
-      bm_TGtkNotebook_homogeneous)
-
-proc show_border*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_show_border) shr
-      bp_TGtkNotebook_show_border
-
-proc set_show_border*(a: PNotebook, `show_border`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`show_border` shl bp_TGtkNotebook_show_border) and
-      bm_TGtkNotebook_show_border)
-
-proc tab_pos*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_tab_pos) shr
-      bp_TGtkNotebook_tab_pos
-
-proc set_tab_pos*(a: PNotebook, `tab_pos`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`tab_pos` shl bp_TGtkNotebook_tab_pos) and
-      bm_TGtkNotebook_tab_pos)
-
-proc scrollable*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_scrollable) shr
-      bp_TGtkNotebook_scrollable
-
-proc set_scrollable*(a: PNotebook, `scrollable`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`scrollable` shl bp_TGtkNotebook_scrollable) and
-      bm_TGtkNotebook_scrollable)
-
-proc in_child*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_in_child) shr
-      bp_TGtkNotebook_in_child
-
-proc set_in_child*(a: PNotebook, `in_child`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`in_child` shl bp_TGtkNotebook_in_child) and
-      bm_TGtkNotebook_in_child)
-
-proc click_child*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_click_child) shr
-      bp_TGtkNotebook_click_child
-
-proc set_click_child*(a: PNotebook, `click_child`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`click_child` shl bp_TGtkNotebook_click_child) and
-      bm_TGtkNotebook_click_child)
-
-proc button*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_button) shr
-      bp_TGtkNotebook_button
-
-proc set_button*(a: PNotebook, `button`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`button` shl bp_TGtkNotebook_button) and bm_TGtkNotebook_button)
-
-proc need_timer*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_need_timer) shr
-      bp_TGtkNotebook_need_timer
-
-proc set_need_timer*(a: PNotebook, `need_timer`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`need_timer` shl bp_TGtkNotebook_need_timer) and
-      bm_TGtkNotebook_need_timer)
-
-proc child_has_focus*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_child_has_focus) shr
-      bp_TGtkNotebook_child_has_focus
-
-proc set_child_has_focus*(a: PNotebook, `child_has_focus`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`child_has_focus` shl bp_TGtkNotebook_child_has_focus) and
-      bm_TGtkNotebook_child_has_focus)
-
-proc have_visible_child*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_have_visible_child) shr
-      bp_TGtkNotebook_have_visible_child
-
-proc set_have_visible_child*(a: PNotebook, `have_visible_child`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`have_visible_child` shl bp_TGtkNotebook_have_visible_child) and
-      bm_TGtkNotebook_have_visible_child)
-
-proc focus_out*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_focus_out) shr
-      bp_TGtkNotebook_focus_out
-
-proc set_focus_out*(a: PNotebook, `focus_out`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`focus_out` shl bp_TGtkNotebook_focus_out) and
-      bm_TGtkNotebook_focus_out)
-
-proc TYPE_OLD_EDITABLE*(): GType = 
-  result = old_editable_get_type()
-
-proc OLD_EDITABLE*(obj: pointer): POldEditable = 
-  result = cast[POldEditable](CHECK_CAST(obj, TYPE_OLD_EDITABLE()))
-
-proc OLD_EDITABLE_CLASS*(klass: pointer): POldEditableClass = 
-  result = cast[POldEditableClass](CHECK_CLASS_CAST(klass, TYPE_OLD_EDITABLE()))
-
-proc IS_OLD_EDITABLE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_OLD_EDITABLE())
-
-proc IS_OLD_EDITABLE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_OLD_EDITABLE())
-
-proc OLD_EDITABLE_GET_CLASS*(obj: pointer): POldEditableClass = 
-  result = cast[POldEditableClass](CHECK_GET_CLASS(obj, TYPE_OLD_EDITABLE()))
-
-proc has_selection*(a: POldEditable): guint = 
-  result = (a.OldEditableflag0 and bm_TGtkOldEditable_has_selection) shr
-      bp_TGtkOldEditable_has_selection
-
-proc set_has_selection*(a: POldEditable, `has_selection`: guint) = 
-  a.OldEditableflag0 = a.OldEditableflag0 or
-      (int16(`has_selection` shl bp_TGtkOldEditable_has_selection) and
-      bm_TGtkOldEditable_has_selection)
-
-proc editable*(a: POldEditable): guint = 
-  result = (a.OldEditableflag0 and bm_TGtkOldEditable_editable) shr
-      bp_TGtkOldEditable_editable
-
-proc set_editable*(a: POldEditable, `editable`: guint) = 
-  a.OldEditableflag0 = a.OldEditableflag0 or
-      (int16(`editable` shl bp_TGtkOldEditable_editable) and
-      bm_TGtkOldEditable_editable)
-
-proc visible*(a: POldEditable): guint = 
-  result = (a.OldEditableflag0 and bm_TGtkOldEditable_visible) shr
-      bp_TGtkOldEditable_visible
-
-proc set_visible*(a: POldEditable, `visible`: guint) = 
-  a.OldEditableflag0 = a.OldEditableflag0 or
-      (int16(`visible` shl bp_TGtkOldEditable_visible) and
-      bm_TGtkOldEditable_visible)
-
-proc TYPE_OPTION_MENU*(): GType = 
-  result = option_menu_get_type()
-
-proc OPTION_MENU*(obj: pointer): POptionMenu = 
-  result = cast[POptionMenu](CHECK_CAST(obj, TYPE_OPTION_MENU()))
-
-proc OPTION_MENU_CLASS*(klass: pointer): POptionMenuClass = 
-  result = cast[POptionMenuClass](CHECK_CLASS_CAST(klass, TYPE_OPTION_MENU()))
-
-proc IS_OPTION_MENU*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_OPTION_MENU())
-
-proc IS_OPTION_MENU_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_OPTION_MENU())
-
-proc OPTION_MENU_GET_CLASS*(obj: pointer): POptionMenuClass = 
-  result = cast[POptionMenuClass](CHECK_GET_CLASS(obj, TYPE_OPTION_MENU()))
-
-proc TYPE_PIXMAP*(): GType = 
-  result = gtk2.pixmap_get_type()
-
-proc PIXMAP*(obj: pointer): PPixmap = 
-  result = cast[PPixmap](CHECK_CAST(obj, gtk2.TYPE_PIXMAP()))
-
-proc PIXMAP_CLASS*(klass: pointer): PPixmapClass = 
-  result = cast[PPixmapClass](CHECK_CLASS_CAST(klass, gtk2.TYPE_PIXMAP()))
-
-proc IS_PIXMAP*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, gtk2.TYPE_PIXMAP())
-
-proc IS_PIXMAP_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, gtk2.TYPE_PIXMAP())
-
-proc PIXMAP_GET_CLASS*(obj: pointer): PPixmapClass = 
-  result = cast[PPixmapClass](CHECK_GET_CLASS(obj, gtk2.TYPE_PIXMAP()))
-
-proc build_insensitive*(a: PPixmap): guint = 
-  result = (a.Pixmapflag0 and bm_TGtkPixmap_build_insensitive) shr
-      bp_TGtkPixmap_build_insensitive
-
-proc set_build_insensitive*(a: PPixmap, `build_insensitive`: guint) = 
-  a.Pixmapflag0 = a.Pixmapflag0 or
-      (int16(`build_insensitive` shl bp_TGtkPixmap_build_insensitive) and
-      bm_TGtkPixmap_build_insensitive)
-
-proc TYPE_PLUG*(): GType = 
-  result = plug_get_type()
-
-proc PLUG*(obj: pointer): PPlug = 
-  result = cast[PPlug](CHECK_CAST(obj, TYPE_PLUG()))
-
-proc PLUG_CLASS*(klass: pointer): PPlugClass = 
-  result = cast[PPlugClass](CHECK_CLASS_CAST(klass, TYPE_PLUG()))
-
-proc IS_PLUG*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_PLUG())
-
-proc IS_PLUG_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_PLUG())
-
-proc PLUG_GET_CLASS*(obj: pointer): PPlugClass = 
-  result = cast[PPlugClass](CHECK_GET_CLASS(obj, TYPE_PLUG()))
-
-proc same_app*(a: PPlug): guint = 
-  result = (a.Plugflag0 and bm_TGtkPlug_same_app) shr bp_TGtkPlug_same_app
-
-proc set_same_app*(a: PPlug, `same_app`: guint) = 
-  a.Plugflag0 = a.Plugflag0 or
-      (int16(`same_app` shl bp_TGtkPlug_same_app) and bm_TGtkPlug_same_app)
-
-proc TYPE_PREVIEW*(): GType = 
-  result = preview_get_type()
-
-proc PREVIEW*(obj: pointer): PPreview = 
-  result = cast[PPreview](CHECK_CAST(obj, TYPE_PREVIEW()))
-
-proc PREVIEW_CLASS*(klass: pointer): PPreviewClass = 
-  result = cast[PPreviewClass](CHECK_CLASS_CAST(klass, TYPE_PREVIEW()))
-
-proc IS_PREVIEW*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_PREVIEW())
-
-proc IS_PREVIEW_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_PREVIEW())
-
-proc PREVIEW_GET_CLASS*(obj: pointer): PPreviewClass = 
-  result = cast[PPreviewClass](CHECK_GET_CLASS(obj, TYPE_PREVIEW()))
-
-proc get_type*(a: PPreview): guint = 
-  result = (a.Previewflag0 and bm_TGtkPreview_type) shr bp_TGtkPreview_type
-
-proc set_type*(a: PPreview, `type`: guint) = 
-  a.Previewflag0 = a.Previewflag0 or
-      (int16(`type` shl bp_TGtkPreview_type) and bm_TGtkPreview_type)
-
-proc get_expand*(a: PPreview): guint = 
-  result = (a.Previewflag0 and bm_TGtkPreview_expand) shr
-      bp_TGtkPreview_expand
-
-proc set_expand*(a: PPreview, `expand`: guint) = 
-  a.Previewflag0 = a.Previewflag0 or
-      (int16(`expand` shl bp_TGtkPreview_expand) and bm_TGtkPreview_expand)
-
-proc progress_get_type(): GType{.importc: "gtk_progress_get_type", cdecl, 
-                                 dynlib: lib.}
-proc TYPE_PROGRESS*(): GType = 
-  result = progress_get_type()
-
-proc PROGRESS*(obj: pointer): PProgress = 
-  result = cast[PProgress](CHECK_CAST(obj, TYPE_PROGRESS()))
-
-proc PROGRESS_CLASS*(klass: pointer): PProgressClass = 
-  result = cast[PProgressClass](CHECK_CLASS_CAST(klass, TYPE_PROGRESS()))
-
-proc IS_PROGRESS*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_PROGRESS())
-
-proc IS_PROGRESS_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_PROGRESS())
-
-proc PROGRESS_GET_CLASS*(obj: pointer): PProgressClass = 
-  result = cast[PProgressClass](CHECK_GET_CLASS(obj, TYPE_PROGRESS()))
-
-proc show_text*(a: PProgress): guint = 
-  result = (a.Progressflag0 and bm_TGtkProgress_show_text) shr
-      bp_TGtkProgress_show_text
-
-proc set_show_text*(a: PProgress, `show_text`: guint) = 
-  a.Progressflag0 = a.Progressflag0 or
-      (int16(`show_text` shl bp_TGtkProgress_show_text) and
-      bm_TGtkProgress_show_text)
-
-proc activity_mode*(a: PProgress): guint = 
-  result = (a.Progressflag0 and bm_TGtkProgress_activity_mode) shr
-      bp_TGtkProgress_activity_mode
-
-proc set_activity_mode*(a: PProgress, `activity_mode`: guint) = 
-  a.Progressflag0 = a.Progressflag0 or
-      (int16(`activity_mode` shl bp_TGtkProgress_activity_mode) and
-      bm_TGtkProgress_activity_mode)
-
-proc use_text_format*(a: PProgress): guint = 
-  result = (a.Progressflag0 and bm_TGtkProgress_use_text_format) shr
-      bp_TGtkProgress_use_text_format
-
-proc set_use_text_format*(a: PProgress, `use_text_format`: guint) = 
-  a.Progressflag0 = a.Progressflag0 or
-      (int16(`use_text_format` shl bp_TGtkProgress_use_text_format) and
-      bm_TGtkProgress_use_text_format)
-
-proc TYPE_PROGRESS_BAR*(): GType = 
-  result = progress_bar_get_type()
-
-proc PROGRESS_BAR*(obj: pointer): PProgressBar = 
-  result = cast[PProgressBar](CHECK_CAST(obj, TYPE_PROGRESS_BAR()))
-
-proc PROGRESS_BAR_CLASS*(klass: pointer): PProgressBarClass = 
-  result = cast[PProgressBarClass](CHECK_CLASS_CAST(klass, TYPE_PROGRESS_BAR()))
-
-proc IS_PROGRESS_BAR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_PROGRESS_BAR())
-
-proc IS_PROGRESS_BAR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_PROGRESS_BAR())
-
-proc PROGRESS_BAR_GET_CLASS*(obj: pointer): PProgressBarClass = 
-  result = cast[PProgressBarClass](CHECK_GET_CLASS(obj, TYPE_PROGRESS_BAR()))
-
-proc activity_dir*(a: PProgressBar): guint = 
-  result = (a.ProgressBarflag0 and bm_TGtkProgressBar_activity_dir) shr
-      bp_TGtkProgressBar_activity_dir
-
-proc set_activity_dir*(a: PProgressBar, `activity_dir`: guint) = 
-  a.ProgressBarflag0 = a.ProgressBarflag0 or
-      (int16(`activity_dir` shl bp_TGtkProgressBar_activity_dir) and
-      bm_TGtkProgressBar_activity_dir)
-
-proc TYPE_RADIO_BUTTON*(): GType = 
-  result = radio_button_get_type()
-
-proc RADIO_BUTTON*(obj: pointer): PRadioButton = 
-  result = cast[PRadioButton](CHECK_CAST(obj, TYPE_RADIO_BUTTON()))
-
-proc RADIO_BUTTON_CLASS*(klass: pointer): PRadioButtonClass = 
-  result = cast[PRadioButtonClass](CHECK_CLASS_CAST(klass, TYPE_RADIO_BUTTON()))
-
-proc IS_RADIO_BUTTON*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_RADIO_BUTTON())
-
-proc IS_RADIO_BUTTON_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_RADIO_BUTTON())
-
-proc RADIO_BUTTON_GET_CLASS*(obj: pointer): PRadioButtonClass = 
-  result = cast[PRadioButtonClass](CHECK_GET_CLASS(obj, TYPE_RADIO_BUTTON()))
-
-proc TYPE_RADIO_MENU_ITEM*(): GType = 
-  result = radio_menu_item_get_type()
-
-proc RADIO_MENU_ITEM*(obj: pointer): PRadioMenuItem = 
-  result = cast[PRadioMenuItem](CHECK_CAST(obj, TYPE_RADIO_MENU_ITEM()))
-
-proc RADIO_MENU_ITEM_CLASS*(klass: pointer): PRadioMenuItemClass = 
-  result = cast[PRadioMenuItemClass](CHECK_CLASS_CAST(klass, 
-      TYPE_RADIO_MENU_ITEM()))
-
-proc IS_RADIO_MENU_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_RADIO_MENU_ITEM())
-
-proc IS_RADIO_MENU_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_RADIO_MENU_ITEM())
-
-proc RADIO_MENU_ITEM_GET_CLASS*(obj: pointer): PRadioMenuItemClass = 
-  result = cast[PRadioMenuItemClass](CHECK_GET_CLASS(obj, TYPE_RADIO_MENU_ITEM()))
-
-proc TYPE_SCROLLED_WINDOW*(): GType = 
-  result = scrolled_window_get_type()
-
-proc SCROLLED_WINDOW*(obj: pointer): PScrolledWindow = 
-  result = cast[PScrolledWindow](CHECK_CAST(obj, TYPE_SCROLLED_WINDOW()))
-
-proc SCROLLED_WINDOW_CLASS*(klass: pointer): PScrolledWindowClass = 
-  result = cast[PScrolledWindowClass](CHECK_CLASS_CAST(klass, 
-      TYPE_SCROLLED_WINDOW()))
-
-proc IS_SCROLLED_WINDOW*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SCROLLED_WINDOW())
-
-proc IS_SCROLLED_WINDOW_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SCROLLED_WINDOW())
-
-proc SCROLLED_WINDOW_GET_CLASS*(obj: pointer): PScrolledWindowClass = 
-  result = cast[PScrolledWindowClass](CHECK_GET_CLASS(obj, 
-      TYPE_SCROLLED_WINDOW()))
-
-proc hscrollbar_policy*(a: PScrolledWindow): guint = 
-  result = (a.ScrolledWindowflag0 and bm_TGtkScrolledWindow_hscrollbar_policy) shr
-      bp_TGtkScrolledWindow_hscrollbar_policy
-
-proc set_hscrollbar_policy*(a: PScrolledWindow, `hscrollbar_policy`: guint) = 
-  a.ScrolledWindowflag0 = a.ScrolledWindowflag0 or
-      (int16(`hscrollbar_policy` shl bp_TGtkScrolledWindow_hscrollbar_policy) and
-      bm_TGtkScrolledWindow_hscrollbar_policy)
-
-proc vscrollbar_policy*(a: PScrolledWindow): guint = 
-  result = (a.ScrolledWindowflag0 and bm_TGtkScrolledWindow_vscrollbar_policy) shr
-      bp_TGtkScrolledWindow_vscrollbar_policy
-
-proc set_vscrollbar_policy*(a: PScrolledWindow, `vscrollbar_policy`: guint) = 
-  a.ScrolledWindowflag0 = a.ScrolledWindowflag0 or
-      (int16(`vscrollbar_policy` shl bp_TGtkScrolledWindow_vscrollbar_policy) and
-      bm_TGtkScrolledWindow_vscrollbar_policy)
-
-proc hscrollbar_visible*(a: PScrolledWindow): guint = 
-  result = (a.ScrolledWindowflag0 and
-      bm_TGtkScrolledWindow_hscrollbar_visible) shr
-      bp_TGtkScrolledWindow_hscrollbar_visible
-
-proc set_hscrollbar_visible*(a: PScrolledWindow, `hscrollbar_visible`: guint) = 
-  a.ScrolledWindowflag0 = a.ScrolledWindowflag0 or
-      (int16(`hscrollbar_visible` shl
-      bp_TGtkScrolledWindow_hscrollbar_visible) and
-      bm_TGtkScrolledWindow_hscrollbar_visible)
-
-proc vscrollbar_visible*(a: PScrolledWindow): guint = 
-  result = (a.ScrolledWindowflag0 and
-      bm_TGtkScrolledWindow_vscrollbar_visible) shr
-      bp_TGtkScrolledWindow_vscrollbar_visible
-
-proc set_vscrollbar_visible*(a: PScrolledWindow, `vscrollbar_visible`: guint) = 
-  a.ScrolledWindowflag0 = a.ScrolledWindowflag0 or
-      int16((`vscrollbar_visible` shl
-      bp_TGtkScrolledWindow_vscrollbar_visible) and
-      bm_TGtkScrolledWindow_vscrollbar_visible)
-
-proc window_placement*(a: PScrolledWindow): guint = 
-  result = (a.ScrolledWindowflag0 and bm_TGtkScrolledWindow_window_placement) shr
-      bp_TGtkScrolledWindow_window_placement
-
-proc set_window_placement*(a: PScrolledWindow, `window_placement`: guint) = 
-  a.ScrolledWindowflag0 = a.ScrolledWindowflag0 or
-      (int16(`window_placement` shl bp_TGtkScrolledWindow_window_placement) and
-      bm_TGtkScrolledWindow_window_placement)
-
-proc focus_out*(a: PScrolledWindow): guint = 
-  result = (a.ScrolledWindowflag0 and bm_TGtkScrolledWindow_focus_out) shr
-      bp_TGtkScrolledWindow_focus_out
-
-proc set_focus_out*(a: PScrolledWindow, `focus_out`: guint) = 
-  a.ScrolledWindowflag0 = a.ScrolledWindowflag0 or
-      (int16(`focus_out` shl bp_TGtkScrolledWindow_focus_out) and
-      bm_TGtkScrolledWindow_focus_out)
-
-proc TYPE_SELECTION_DATA*(): GType = 
-  result = selection_data_get_type()
-
-proc TYPE_SEPARATOR_MENU_ITEM*(): GType = 
-  result = separator_menu_item_get_type()
-
-proc SEPARATOR_MENU_ITEM*(obj: pointer): PSeparatorMenuItem = 
-  result = cast[PSeparatorMenuItem](CHECK_CAST(obj, TYPE_SEPARATOR_MENU_ITEM()))
-
-proc SEPARATOR_MENU_ITEM_CLASS*(klass: pointer): PSeparatorMenuItemClass = 
-  result = cast[PSeparatorMenuItemClass](CHECK_CLASS_CAST(klass, 
-      TYPE_SEPARATOR_MENU_ITEM()))
-
-proc IS_SEPARATOR_MENU_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SEPARATOR_MENU_ITEM())
-
-proc IS_SEPARATOR_MENU_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SEPARATOR_MENU_ITEM())
-
-proc SEPARATOR_MENU_ITEM_GET_CLASS*(obj: pointer): PSeparatorMenuItemClass = 
-  result = cast[PSeparatorMenuItemClass](CHECK_GET_CLASS(obj, 
-      TYPE_SEPARATOR_MENU_ITEM()))
-
-proc signal_lookup*(name: cstring, object_type: GType): guint = 
-  result = g_signal_lookup(name, object_type)
-
-proc signal_name*(signal_id: guint): cstring = 
-  result = g_signal_name(signal_id)
-
-proc signal_emit_stop*(instance: gpointer, signal_id: guint, detail: TGQuark) = 
-  if detail != 0'i32: g_signal_stop_emission(instance, signal_id, 0)
-  
-proc signal_connect_full*(anObject: PObject, name: cstring, fun: TSignalFunc, 
-                          unknown1: pointer, func_data: gpointer, 
-                          unknown2: pointer, unknown3, unknown4: int): gulong{.
-    importc: "gtk_signal_connect_full", cdecl, dynlib: lib.}
-proc signal_compat_matched*(anObject: PObject, fun: TSignalFunc, 
-                            data: gpointer, m: TGSignalMatchType, u: int){.
-    importc: "gtk_signal_compat_matched", cdecl, dynlib: lib.}
-proc signal_connect*(anObject: PObject, name: cstring, fun: TSignalFunc, 
-                     func_data: gpointer): gulong = 
-  result = signal_connect_full(anObject, name, fun, nil, func_data, nil, 0, 0)
-
-proc signal_connect_after*(anObject: PObject, name: cstring, fun: TSignalFunc, 
-                           func_data: gpointer): gulong = 
-  result = signal_connect_full(anObject, name, fun, nil, func_data, nil, 0, 1)
-
-proc signal_connect_object*(anObject: PObject, name: cstring, 
-                            fun: TSignalFunc, slot_object: gpointer): gulong = 
-  result = signal_connect_full(anObject, name, fun, nil, slot_object, nil, 1, 
-                               0)
-
-proc signal_connect_object_after*(anObject: PObject, name: cstring, 
-                                  fun: TSignalFunc, slot_object: gpointer): gulong = 
-  result = signal_connect_full(anObject, name, fun, nil, slot_object, nil, 1, 
-                               1)
-
-proc signal_disconnect*(anObject: gpointer, handler_id: gulong) = 
-  g_signal_handler_disconnect(anObject, handler_id)
-
-proc signal_handler_block*(anObject: gpointer, handler_id: gulong) = 
-  g_signal_handler_block(anObject, handler_id)
-
-proc signal_handler_unblock*(anObject: gpointer, handler_id: gulong) = 
-  g_signal_handler_unblock(anObject, handler_id)
-
-proc signal_disconnect_by_data*(anObject: PObject, data: gpointer) = 
-  signal_compat_matched(anObject, nil, data, G_SIGNAL_MATCH_DATA, 0)
-
-proc signal_disconnect_by_func*(anObject: PObject, fun: TSignalFunc, 
-                                data: gpointer) = 
-  signal_compat_matched(anObject, fun, data, cast[TGSignalMatchType](G_SIGNAL_MATCH_FUNC or
-      G_SIGNAL_MATCH_DATA), 0)
-
-proc signal_handler_block_by_func*(anObject: PObject, fun: TSignalFunc, 
-                                   data: gpointer) = 
-  signal_compat_matched(anObject, fun, data, TGSignalMatchType(
-      G_SIGNAL_MATCH_FUNC or G_SIGNAL_MATCH_DATA), 0)
-
-proc signal_handler_block_by_data*(anObject: PObject, data: gpointer) = 
-  signal_compat_matched(anObject, nil, data, G_SIGNAL_MATCH_DATA, 1)
-
-proc signal_handler_unblock_by_func*(anObject: PObject, fun: TSignalFunc, 
-                                     data: gpointer) = 
-  signal_compat_matched(anObject, fun, data, cast[TGSignalMatchType](G_SIGNAL_MATCH_FUNC or
-      G_SIGNAL_MATCH_DATA), 0)
-
-proc signal_handler_unblock_by_data*(anObject: PObject, data: gpointer) = 
-  signal_compat_matched(anObject, nil, data, G_SIGNAL_MATCH_DATA, 2)
-
-proc signal_handler_pending*(anObject: PObject, signal_id: guint, 
-                             may_be_blocked: gboolean): gboolean = 
-  Result = g_signal_has_handler_pending(anObject, signal_id, 0, may_be_blocked)
-
-proc signal_handler_pending_by_func*(anObject: PObject, signal_id: guint, 
-                                     may_be_blocked: gboolean, 
-                                     fun: TSignalFunc, 
-                                     data: gpointer): gboolean = 
-  var T: TGSignalMatchType
-  t = cast[TGSignalMatchType](G_SIGNAL_MATCH_ID or G_SIGNAL_MATCH_FUNC or
-      G_SIGNAL_MATCH_DATA)
-  if not may_be_blocked: 
-    t = t or cast[TGSignalMatchType](G_SIGNAL_MATCH_UNBLOCKED)
-  Result = g_signal_handler_find(anObject, t, signal_id, 0, nil, fun, data) !=
-      0
-
-proc TYPE_SIZE_GROUP*(): GType = 
-  result = size_group_get_type()
-
-proc SIZE_GROUP*(obj: pointer): PSizeGroup = 
-  result = cast[PSizeGroup](CHECK_CAST(obj, TYPE_SIZE_GROUP()))
-
-proc SIZE_GROUP_CLASS*(klass: pointer): PSizeGroupClass = 
-  result = cast[PSizeGroupClass](CHECK_CLASS_CAST(klass, TYPE_SIZE_GROUP()))
-
-proc IS_SIZE_GROUP*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SIZE_GROUP())
-
-proc IS_SIZE_GROUP_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SIZE_GROUP())
-
-proc SIZE_GROUP_GET_CLASS*(obj: pointer): PSizeGroupClass = 
-  result = cast[PSizeGroupClass](CHECK_GET_CLASS(obj, TYPE_SIZE_GROUP()))
-
-proc have_width*(a: PSizeGroup): guint = 
-  result = (a.SizeGroupflag0 and bm_TGtkSizeGroup_have_width) shr
-      bp_TGtkSizeGroup_have_width
-
-proc set_have_width*(a: PSizeGroup, `have_width`: guint) = 
-  a.SizeGroupflag0 = a.SizeGroupflag0 or
-      (int16(`have_width` shl bp_TGtkSizeGroup_have_width) and
-      bm_TGtkSizeGroup_have_width)
-
-proc have_height*(a: PSizeGroup): guint = 
-  result = (a.SizeGroupflag0 and bm_TGtkSizeGroup_have_height) shr
-      bp_TGtkSizeGroup_have_height
-
-proc set_have_height*(a: PSizeGroup, `have_height`: guint) = 
-  a.SizeGroupflag0 = a.SizeGroupflag0 or
-      (int16(`have_height` shl bp_TGtkSizeGroup_have_height) and
-      bm_TGtkSizeGroup_have_height)
-
-proc TYPE_SOCKET*(): GType = 
-  result = socket_get_type()
-
-proc SOCKET*(obj: pointer): PSocket = 
-  result = cast[PSocket](CHECK_CAST(obj, TYPE_SOCKET()))
-
-proc SOCKET_CLASS*(klass: pointer): PSocketClass = 
-  result = cast[PSocketClass](CHECK_CLASS_CAST(klass, TYPE_SOCKET()))
-
-proc IS_SOCKET*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SOCKET())
-
-proc IS_SOCKET_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SOCKET())
-
-proc SOCKET_GET_CLASS*(obj: pointer): PSocketClass = 
-  result = cast[PSocketClass](CHECK_GET_CLASS(obj, TYPE_SOCKET()))
-
-proc same_app*(a: PSocket): guint = 
-  result = (a.Socketflag0 and bm_TGtkSocket_same_app) shr
-      bp_TGtkSocket_same_app
-
-proc set_same_app*(a: PSocket, `same_app`: guint) = 
-  a.Socketflag0 = a.Socketflag0 or
-      (int16(`same_app` shl bp_TGtkSocket_same_app) and
-      bm_TGtkSocket_same_app)
-
-proc focus_in*(a: PSocket): guint = 
-  result = (a.Socketflag0 and bm_TGtkSocket_focus_in) shr
-      bp_TGtkSocket_focus_in
-
-proc set_focus_in*(a: PSocket, `focus_in`: guint) = 
-  a.Socketflag0 = a.Socketflag0 or
-      (int16(`focus_in` shl bp_TGtkSocket_focus_in) and
-      bm_TGtkSocket_focus_in)
-
-proc have_size*(a: PSocket): guint = 
-  result = (a.Socketflag0 and bm_TGtkSocket_have_size) shr
-      bp_TGtkSocket_have_size
-
-proc set_have_size*(a: PSocket, `have_size`: guint) = 
-  a.Socketflag0 = a.Socketflag0 or
-      (int16(`have_size` shl bp_TGtkSocket_have_size) and
-      bm_TGtkSocket_have_size)
-
-proc need_map*(a: PSocket): guint = 
-  result = (a.Socketflag0 and bm_TGtkSocket_need_map) shr
-      bp_TGtkSocket_need_map
-
-proc set_need_map*(a: PSocket, `need_map`: guint) = 
-  a.Socketflag0 = a.Socketflag0 or
-      (int16(`need_map` shl bp_TGtkSocket_need_map) and
-      bm_TGtkSocket_need_map)
-
-proc is_mapped*(a: PSocket): guint = 
-  result = (a.Socketflag0 and bm_TGtkSocket_is_mapped) shr
-      bp_TGtkSocket_is_mapped
-
-proc set_is_mapped*(a: PSocket, `is_mapped`: guint) = 
-  a.Socketflag0 = a.Socketflag0 or
-      (int16(`is_mapped` shl bp_TGtkSocket_is_mapped) and
-      bm_TGtkSocket_is_mapped)
-
-proc TYPE_SPIN_BUTTON*(): GType = 
-  result = spin_button_get_type()
-
-proc SPIN_BUTTON*(obj: pointer): PSpinButton = 
-  result = cast[PSpinButton](CHECK_CAST(obj, TYPE_SPIN_BUTTON()))
-
-proc SPIN_BUTTON_CLASS*(klass: pointer): PSpinButtonClass = 
-  result = cast[PSpinButtonClass](CHECK_CLASS_CAST(klass, TYPE_SPIN_BUTTON()))
-
-proc IS_SPIN_BUTTON*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SPIN_BUTTON())
-
-proc IS_SPIN_BUTTON_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SPIN_BUTTON())
-
-proc SPIN_BUTTON_GET_CLASS*(obj: pointer): PSpinButtonClass = 
-  result = cast[PSpinButtonClass](CHECK_GET_CLASS(obj, TYPE_SPIN_BUTTON()))
-
-proc in_child*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_in_child) shr
-      bp_TGtkSpinButton_in_child
-
-proc set_in_child*(a: PSpinButton, `in_child`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`in_child` shl bp_TGtkSpinButton_in_child) and
-      bm_TGtkSpinButton_in_child)
-
-proc click_child*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_click_child) shr
-      bp_TGtkSpinButton_click_child
-
-proc set_click_child*(a: PSpinButton, `click_child`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`click_child` shl bp_TGtkSpinButton_click_child) and
-      bm_TGtkSpinButton_click_child)
-
-proc button*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_button) shr
-      bp_TGtkSpinButton_button
-
-proc set_button*(a: PSpinButton, `button`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`button` shl bp_TGtkSpinButton_button) and bm_TGtkSpinButton_button)
-
-proc need_timer*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_need_timer) shr
-      bp_TGtkSpinButton_need_timer
-
-proc set_need_timer*(a: PSpinButton, `need_timer`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`need_timer` shl bp_TGtkSpinButton_need_timer) and
-      bm_TGtkSpinButton_need_timer)
-
-proc timer_calls*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_timer_calls) shr
-      bp_TGtkSpinButton_timer_calls
-
-proc set_timer_calls*(a: PSpinButton, `timer_calls`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`timer_calls` shl bp_TGtkSpinButton_timer_calls) and
-      bm_TGtkSpinButton_timer_calls)
-
-proc digits*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_digits) shr
-      bp_TGtkSpinButton_digits
-
-proc set_digits*(a: PSpinButton, `digits`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`digits` shl bp_TGtkSpinButton_digits) and bm_TGtkSpinButton_digits)
-
-proc numeric*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_numeric) shr
-      bp_TGtkSpinButton_numeric
-
-proc set_numeric*(a: PSpinButton, `numeric`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`numeric` shl bp_TGtkSpinButton_numeric) and
-      bm_TGtkSpinButton_numeric)
-
-proc wrap*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_wrap) shr
-      bp_TGtkSpinButton_wrap
-
-proc set_wrap*(a: PSpinButton, `wrap`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`wrap` shl bp_TGtkSpinButton_wrap) and bm_TGtkSpinButton_wrap)
-
-proc snap_to_ticks*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_snap_to_ticks) shr
-      bp_TGtkSpinButton_snap_to_ticks
-
-proc set_snap_to_ticks*(a: PSpinButton, `snap_to_ticks`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`snap_to_ticks` shl bp_TGtkSpinButton_snap_to_ticks) and
-      bm_TGtkSpinButton_snap_to_ticks)
-
-proc TYPE_STATUSBAR*(): GType = 
-  result = statusbar_get_type()
-
-proc STATUSBAR*(obj: pointer): PStatusbar = 
-  result = cast[PStatusbar](CHECK_CAST(obj, TYPE_STATUSBAR()))
-
-proc STATUSBAR_CLASS*(klass: pointer): PStatusbarClass = 
-  result = cast[PStatusbarClass](CHECK_CLASS_CAST(klass, TYPE_STATUSBAR()))
-
-proc IS_STATUSBAR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_STATUSBAR())
-
-proc IS_STATUSBAR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_STATUSBAR())
-
-proc STATUSBAR_GET_CLASS*(obj: pointer): PStatusbarClass = 
-  result = cast[PStatusbarClass](CHECK_GET_CLASS(obj, TYPE_STATUSBAR()))
-
-proc has_resize_grip*(a: PStatusbar): guint = 
-  result = (a.Statusbarflag0 and bm_TGtkStatusbar_has_resize_grip) shr
-      bp_TGtkStatusbar_has_resize_grip
-
-proc set_has_resize_grip*(a: PStatusbar, `has_resize_grip`: guint) = 
-  a.Statusbarflag0 = a.Statusbarflag0 or
-      (int16(`has_resize_grip` shl bp_TGtkStatusbar_has_resize_grip) and
-      bm_TGtkStatusbar_has_resize_grip)
-
-proc TYPE_TABLE*(): GType = 
-  result = gtk2.table_get_type()
-
-proc TABLE*(obj: pointer): PTable = 
-  result = cast[PTable](CHECK_CAST(obj, gtk2.TYPE_TABLE()))
-
-proc TABLE_CLASS*(klass: pointer): PTableClass = 
-  result = cast[PTableClass](CHECK_CLASS_CAST(klass, gtk2.TYPE_TABLE()))
-
-proc IS_TABLE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, gtk2.TYPE_TABLE())
-
-proc IS_TABLE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, gtk2.TYPE_TABLE())
-
-proc TABLE_GET_CLASS*(obj: pointer): PTableClass = 
-  result = cast[PTableClass](CHECK_GET_CLASS(obj, gtk2.TYPE_TABLE()))
-
-proc homogeneous*(a: PTable): guint = 
-  result = (a.Tableflag0 and bm_TGtkTable_homogeneous) shr
-      bp_TGtkTable_homogeneous
-
-proc set_homogeneous*(a: PTable, `homogeneous`: guint) = 
-  a.Tableflag0 = a.Tableflag0 or
-      (int16(`homogeneous` shl bp_TGtkTable_homogeneous) and
-      bm_TGtkTable_homogeneous)
-
-proc xexpand*(a: PTableChild): guint = 
-  result = (a.TableChildflag0 and bm_TGtkTableChild_xexpand) shr
-      bp_TGtkTableChild_xexpand
-
-proc set_xexpand*(a: PTableChild, `xexpand`: guint) = 
-  a.TableChildflag0 = a.TableChildflag0 or
-      (int16(`xexpand` shl bp_TGtkTableChild_xexpand) and
-      bm_TGtkTableChild_xexpand)
-
-proc yexpand*(a: PTableChild): guint = 
-  result = (a.TableChildflag0 and bm_TGtkTableChild_yexpand) shr
-      bp_TGtkTableChild_yexpand
-
-proc set_yexpand*(a: PTableChild, `yexpand`: guint) = 
-  a.TableChildflag0 = a.TableChildflag0 or
-      (int16(`yexpand` shl bp_TGtkTableChild_yexpand) and
-      bm_TGtkTableChild_yexpand)
-
-proc xshrink*(a: PTableChild): guint = 
-  result = (a.TableChildflag0 and bm_TGtkTableChild_xshrink) shr
-      bp_TGtkTableChild_xshrink
-
-proc set_xshrink*(a: PTableChild, `xshrink`: guint) = 
-  a.TableChildflag0 = a.TableChildflag0 or
-      (int16(`xshrink` shl bp_TGtkTableChild_xshrink) and
-      bm_TGtkTableChild_xshrink)
-
-proc yshrink*(a: PTableChild): guint = 
-  result = (a.TableChildflag0 and bm_TGtkTableChild_yshrink) shr
-      bp_TGtkTableChild_yshrink
-
-proc set_yshrink*(a: PTableChild, `yshrink`: guint) = 
-  a.TableChildflag0 = a.TableChildflag0 or
-      (int16(`yshrink` shl bp_TGtkTableChild_yshrink) and
-      bm_TGtkTableChild_yshrink)
-
-proc xfill*(a: PTableChild): guint = 
-  result = (a.TableChildflag0 and bm_TGtkTableChild_xfill) shr
-      bp_TGtkTableChild_xfill
-
-proc set_xfill*(a: PTableChild, `xfill`: guint) = 
-  a.TableChildflag0 = a.TableChildflag0 or
-      (int16(`xfill` shl bp_TGtkTableChild_xfill) and bm_TGtkTableChild_xfill)
-
-proc yfill*(a: PTableChild): guint = 
-  result = (a.TableChildflag0 and bm_TGtkTableChild_yfill) shr
-      bp_TGtkTableChild_yfill
-
-proc set_yfill*(a: PTableChild, `yfill`: guint) = 
-  a.TableChildflag0 = a.TableChildflag0 or
-      (int16(`yfill` shl bp_TGtkTableChild_yfill) and bm_TGtkTableChild_yfill)
-
-proc need_expand*(a: PTableRowCol): guint = 
-  result = (a.flag0 and bm_TGtkTableRowCol_need_expand) shr
-      bp_TGtkTableRowCol_need_expand
-
-proc set_need_expand*(a: PTableRowCol, `need_expand`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`need_expand` shl bp_TGtkTableRowCol_need_expand) and
-      bm_TGtkTableRowCol_need_expand)
-
-proc need_shrink*(a: PTableRowCol): guint = 
-  result = (a.flag0 and bm_TGtkTableRowCol_need_shrink) shr
-      bp_TGtkTableRowCol_need_shrink
-
-proc set_need_shrink*(a: PTableRowCol, `need_shrink`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`need_shrink` shl bp_TGtkTableRowCol_need_shrink) and
-      bm_TGtkTableRowCol_need_shrink)
-
-proc expand*(a: PTableRowCol): guint = 
-  result = (a.flag0 and bm_TGtkTableRowCol_expand) shr
-      bp_TGtkTableRowCol_expand
-
-proc set_expand*(a: PTableRowCol, `expand`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`expand` shl bp_TGtkTableRowCol_expand) and
-      bm_TGtkTableRowCol_expand)
-
-proc shrink*(a: PTableRowCol): guint = 
-  result = (a.flag0 and bm_TGtkTableRowCol_shrink) shr
-      bp_TGtkTableRowCol_shrink
-
-proc set_shrink*(a: PTableRowCol, `shrink`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`shrink` shl bp_TGtkTableRowCol_shrink) and
-      bm_TGtkTableRowCol_shrink)
-
-proc empty*(a: PTableRowCol): guint = 
-  result = (a.flag0 and bm_TGtkTableRowCol_empty) shr
-      bp_TGtkTableRowCol_empty
-
-proc set_empty*(a: PTableRowCol, `empty`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`empty` shl bp_TGtkTableRowCol_empty) and
-      bm_TGtkTableRowCol_empty)
-
-proc TYPE_TEAROFF_MENU_ITEM*(): GType = 
-  result = tearoff_menu_item_get_type()
-
-proc TEAROFF_MENU_ITEM*(obj: pointer): PTearoffMenuItem = 
-  result = cast[PTearoffMenuItem](CHECK_CAST(obj, TYPE_TEAROFF_MENU_ITEM()))
-
-proc TEAROFF_MENU_ITEM_CLASS*(klass: pointer): PTearoffMenuItemClass = 
-  result = cast[PTearoffMenuItemClass](CHECK_CLASS_CAST(klass, 
-      TYPE_TEAROFF_MENU_ITEM()))
-
-proc IS_TEAROFF_MENU_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TEAROFF_MENU_ITEM())
-
-proc IS_TEAROFF_MENU_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TEAROFF_MENU_ITEM())
-
-proc TEAROFF_MENU_ITEM_GET_CLASS*(obj: pointer): PTearoffMenuItemClass = 
-  result = cast[PTearoffMenuItemClass](CHECK_GET_CLASS(obj, 
-      TYPE_TEAROFF_MENU_ITEM()))
-
-proc torn_off*(a: PTearoffMenuItem): guint = 
-  result = (a.TearoffMenuItemflag0 and bm_TGtkTearoffMenuItem_torn_off) shr
-      bp_TGtkTearoffMenuItem_torn_off
-
-proc set_torn_off*(a: PTearoffMenuItem, `torn_off`: guint) = 
-  a.TearoffMenuItemflag0 = a.TearoffMenuItemflag0 or
-      (int16(`torn_off` shl bp_TGtkTearoffMenuItem_torn_off) and
-      bm_TGtkTearoffMenuItem_torn_off)
-
-proc TYPE_TEXT*(): GType = 
-  result = gtk2.text_get_type()
-
-proc TEXT*(obj: pointer): PText = 
-  result = cast[PText](CHECK_CAST(obj, gtk2.TYPE_TEXT()))
-
-proc TEXT_CLASS*(klass: pointer): PTextClass = 
-  result = cast[PTextClass](CHECK_CLASS_CAST(klass, gtk2.TYPE_TEXT()))
-
-proc IS_TEXT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, gtk2.TYPE_TEXT())
-
-proc IS_TEXT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, gtk2.TYPE_TEXT())
-
-proc TEXT_GET_CLASS*(obj: pointer): PTextClass = 
-  result = cast[PTextClass](CHECK_GET_CLASS(obj, gtk2.TYPE_TEXT()))
-
-proc line_wrap*(a: PText): guint = 
-  result = (a.Textflag0 and bm_TGtkText_line_wrap) shr bp_TGtkText_line_wrap
-
-proc set_line_wrap*(a: PText, `line_wrap`: guint) = 
-  a.Textflag0 = a.Textflag0 or
-      (int16(`line_wrap` shl bp_TGtkText_line_wrap) and bm_TGtkText_line_wrap)
-
-proc word_wrap*(a: PText): guint = 
-  result = (a.Textflag0 and bm_TGtkText_word_wrap) shr bp_TGtkText_word_wrap
-
-proc set_word_wrap*(a: PText, `word_wrap`: guint) = 
-  a.Textflag0 = a.Textflag0 or
-      (int16(`word_wrap` shl bp_TGtkText_word_wrap) and bm_TGtkText_word_wrap)
-
-proc use_wchar*(a: PText): gboolean = 
-  result = ((a.Textflag0 and bm_TGtkText_use_wchar) shr bp_TGtkText_use_wchar) >
-      0'i16
-
-proc set_use_wchar*(a: PText, `use_wchar`: gboolean) = 
-  if `use_wchar`: 
-    a.Textflag0 = a.Textflag0 or bm_TGtkText_use_wchar
-  else: 
-    a.Textflag0 = a.Textflag0 and not bm_TGtkText_use_wchar
-
-proc INDEX_WCHAR*(t: PText, index: guint): guint32 = 
-  nil
-
-proc INDEX_UCHAR*(t: PText, index: guint): GUChar = 
-  nil
-
-proc TYPE_TEXT_ITER*(): GType = 
-  result = text_iter_get_type()
-
-proc TYPE_TEXT_TAG*(): GType = 
-  result = text_tag_get_type()
-
-proc TEXT_TAG*(obj: pointer): PTextTag = 
-  result = cast[PTextTag](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_TEXT_TAG()))
-
-proc TEXT_TAG_CLASS*(klass: pointer): PTextTagClass = 
-  result = cast[PTextTagClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_TEXT_TAG()))
-
-proc IS_TEXT_TAG*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TEXT_TAG())
-
-proc IS_TEXT_TAG_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_TEXT_TAG())
-
-proc TEXT_TAG_GET_CLASS*(obj: pointer): PTextTagClass = 
-  result = cast[PTextTagClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_TEXT_TAG()))
-
-proc TYPE_TEXT_ATTRIBUTES*(): GType = 
-  result = text_attributes_get_type()
-
-proc bg_color_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_bg_color_set) shr
-      bp_TGtkTextTag_bg_color_set
-
-proc set_bg_color_set*(a: PTextTag, `bg_color_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`bg_color_set` shl bp_TGtkTextTag_bg_color_set) and
-      bm_TGtkTextTag_bg_color_set)
-
-proc bg_stipple_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_bg_stipple_set) shr
-      bp_TGtkTextTag_bg_stipple_set
-
-proc set_bg_stipple_set*(a: PTextTag, `bg_stipple_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`bg_stipple_set` shl bp_TGtkTextTag_bg_stipple_set) and
-      bm_TGtkTextTag_bg_stipple_set)
-
-proc fg_color_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_fg_color_set) shr
-      bp_TGtkTextTag_fg_color_set
-
-proc set_fg_color_set*(a: PTextTag, `fg_color_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`fg_color_set` shl bp_TGtkTextTag_fg_color_set) and
-      bm_TGtkTextTag_fg_color_set)
-
-proc scale_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_scale_set) shr
-      bp_TGtkTextTag_scale_set
-
-proc set_scale_set*(a: PTextTag, `scale_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`scale_set` shl bp_TGtkTextTag_scale_set) and
-      bm_TGtkTextTag_scale_set)
-
-proc fg_stipple_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_fg_stipple_set) shr
-      bp_TGtkTextTag_fg_stipple_set
-
-proc set_fg_stipple_set*(a: PTextTag, `fg_stipple_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`fg_stipple_set` shl bp_TGtkTextTag_fg_stipple_set) and
-      bm_TGtkTextTag_fg_stipple_set)
-
-proc justification_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_justification_set) shr
-      bp_TGtkTextTag_justification_set
-
-proc set_justification_set*(a: PTextTag, `justification_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`justification_set` shl bp_TGtkTextTag_justification_set) and
-      bm_TGtkTextTag_justification_set)
-
-proc left_margin_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_left_margin_set) shr
-      bp_TGtkTextTag_left_margin_set
-
-proc set_left_margin_set*(a: PTextTag, `left_margin_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`left_margin_set` shl bp_TGtkTextTag_left_margin_set) and
-      bm_TGtkTextTag_left_margin_set)
-
-proc indent_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_indent_set) shr
-      bp_TGtkTextTag_indent_set
-
-proc set_indent_set*(a: PTextTag, `indent_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`indent_set` shl bp_TGtkTextTag_indent_set) and
-      bm_TGtkTextTag_indent_set)
-
-proc rise_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_rise_set) shr
-      bp_TGtkTextTag_rise_set
-
-proc set_rise_set*(a: PTextTag, `rise_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`rise_set` shl bp_TGtkTextTag_rise_set) and bm_TGtkTextTag_rise_set)
-
-proc strikethrough_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_strikethrough_set) shr
-      bp_TGtkTextTag_strikethrough_set
-
-proc set_strikethrough_set*(a: PTextTag, `strikethrough_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`strikethrough_set` shl bp_TGtkTextTag_strikethrough_set) and
-      bm_TGtkTextTag_strikethrough_set)
-
-proc right_margin_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_right_margin_set) shr
-      bp_TGtkTextTag_right_margin_set
-
-proc set_right_margin_set*(a: PTextTag, `right_margin_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`right_margin_set` shl bp_TGtkTextTag_right_margin_set) and
-      bm_TGtkTextTag_right_margin_set)
-
-proc pixels_above_lines_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_pixels_above_lines_set) shr
-      bp_TGtkTextTag_pixels_above_lines_set
-
-proc set_pixels_above_lines_set*(a: PTextTag, 
-                                 `pixels_above_lines_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`pixels_above_lines_set` shl bp_TGtkTextTag_pixels_above_lines_set) and
-      bm_TGtkTextTag_pixels_above_lines_set)
-
-proc pixels_below_lines_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_pixels_below_lines_set) shr
-      bp_TGtkTextTag_pixels_below_lines_set
-
-proc set_pixels_below_lines_set*(a: PTextTag, 
-                                 `pixels_below_lines_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`pixels_below_lines_set` shl bp_TGtkTextTag_pixels_below_lines_set) and
-      bm_TGtkTextTag_pixels_below_lines_set)
-
-proc pixels_inside_wrap_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_pixels_inside_wrap_set) shr
-      bp_TGtkTextTag_pixels_inside_wrap_set
-
-proc set_pixels_inside_wrap_set*(a: PTextTag, 
-                                 `pixels_inside_wrap_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`pixels_inside_wrap_set` shl bp_TGtkTextTag_pixels_inside_wrap_set) and
-      bm_TGtkTextTag_pixels_inside_wrap_set)
-
-proc tabs_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_tabs_set) shr
-      bp_TGtkTextTag_tabs_set
-
-proc set_tabs_set*(a: PTextTag, `tabs_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`tabs_set` shl bp_TGtkTextTag_tabs_set) and bm_TGtkTextTag_tabs_set)
-
-proc underline_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_underline_set) shr
-      bp_TGtkTextTag_underline_set
-
-proc set_underline_set*(a: PTextTag, `underline_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`underline_set` shl bp_TGtkTextTag_underline_set) and
-      bm_TGtkTextTag_underline_set)
-
-proc wrap_mode_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_wrap_mode_set) shr
-      bp_TGtkTextTag_wrap_mode_set
-
-proc set_wrap_mode_set*(a: PTextTag, `wrap_mode_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`wrap_mode_set` shl bp_TGtkTextTag_wrap_mode_set) and
-      bm_TGtkTextTag_wrap_mode_set)
-
-proc bg_full_height_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_bg_full_height_set) shr
-      bp_TGtkTextTag_bg_full_height_set
-
-proc set_bg_full_height_set*(a: PTextTag, `bg_full_height_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`bg_full_height_set` shl bp_TGtkTextTag_bg_full_height_set) and
-      bm_TGtkTextTag_bg_full_height_set)
-
-proc invisible_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_invisible_set) shr
-      bp_TGtkTextTag_invisible_set
-
-proc set_invisible_set*(a: PTextTag, `invisible_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`invisible_set` shl bp_TGtkTextTag_invisible_set) and
-      bm_TGtkTextTag_invisible_set)
-
-proc editable_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_editable_set) shr
-      bp_TGtkTextTag_editable_set
-
-proc set_editable_set*(a: PTextTag, `editable_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`editable_set` shl bp_TGtkTextTag_editable_set) and
-      bm_TGtkTextTag_editable_set)
-
-proc language_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_language_set) shr
-      bp_TGtkTextTag_language_set
-
-proc set_language_set*(a: PTextTag, `language_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`language_set` shl bp_TGtkTextTag_language_set) and
-      bm_TGtkTextTag_language_set)
-
-proc pad1*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_pad1) shr bp_TGtkTextTag_pad1
-
-proc set_pad1*(a: PTextTag, `pad1`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`pad1` shl bp_TGtkTextTag_pad1) and bm_TGtkTextTag_pad1)
-
-proc pad2*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_pad2) shr bp_TGtkTextTag_pad2
-
-proc set_pad2*(a: PTextTag, `pad2`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`pad2` shl bp_TGtkTextTag_pad2) and bm_TGtkTextTag_pad2)
-
-proc pad3*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_pad3) shr bp_TGtkTextTag_pad3
-
-proc set_pad3*(a: PTextTag, `pad3`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`pad3` shl bp_TGtkTextTag_pad3) and bm_TGtkTextTag_pad3)
-
-proc underline*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_underline) shr
-      bp_TGtkTextAppearance_underline
-
-proc set_underline*(a: PTextAppearance, `underline`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`underline` shl bp_TGtkTextAppearance_underline) and
-      bm_TGtkTextAppearance_underline)
-
-proc strikethrough*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_strikethrough) shr
-      bp_TGtkTextAppearance_strikethrough
-
-proc set_strikethrough*(a: PTextAppearance, `strikethrough`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`strikethrough` shl bp_TGtkTextAppearance_strikethrough) and
-      bm_TGtkTextAppearance_strikethrough)
-
-proc draw_bg*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_draw_bg) shr
-      bp_TGtkTextAppearance_draw_bg
-
-proc set_draw_bg*(a: PTextAppearance, `draw_bg`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`draw_bg` shl bp_TGtkTextAppearance_draw_bg) and
-      bm_TGtkTextAppearance_draw_bg)
-
-proc inside_selection*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_inside_selection) shr
-      bp_TGtkTextAppearance_inside_selection
-
-proc set_inside_selection*(a: PTextAppearance, `inside_selection`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`inside_selection` shl bp_TGtkTextAppearance_inside_selection) and
-      bm_TGtkTextAppearance_inside_selection)
-
-proc is_text*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_is_text) shr
-      bp_TGtkTextAppearance_is_text
-
-proc set_is_text*(a: PTextAppearance, `is_text`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_text` shl bp_TGtkTextAppearance_is_text) and
-      bm_TGtkTextAppearance_is_text)
-
-proc pad1*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_pad1) shr
-      bp_TGtkTextAppearance_pad1
-
-proc set_pad1*(a: PTextAppearance, `pad1`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pad1` shl bp_TGtkTextAppearance_pad1) and
-      bm_TGtkTextAppearance_pad1)
-
-proc pad2*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_pad2) shr
-      bp_TGtkTextAppearance_pad2
-
-proc set_pad2*(a: PTextAppearance, `pad2`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pad2` shl bp_TGtkTextAppearance_pad2) and
-      bm_TGtkTextAppearance_pad2)
-
-proc pad3*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_pad3) shr
-      bp_TGtkTextAppearance_pad3
-
-proc set_pad3*(a: PTextAppearance, `pad3`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pad3` shl bp_TGtkTextAppearance_pad3) and
-      bm_TGtkTextAppearance_pad3)
-
-proc pad4*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_pad4) shr
-      bp_TGtkTextAppearance_pad4
-
-proc set_pad4*(a: PTextAppearance, `pad4`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pad4` shl bp_TGtkTextAppearance_pad4) and
-      bm_TGtkTextAppearance_pad4)
-
-proc invisible*(a: PTextAttributes): guint = 
-  result = (a.flag0 and bm_TGtkTextAttributes_invisible) shr
-      bp_TGtkTextAttributes_invisible
-
-proc set_invisible*(a: PTextAttributes, `invisible`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`invisible` shl bp_TGtkTextAttributes_invisible) and
-      bm_TGtkTextAttributes_invisible)
-
-proc bg_full_height*(a: PTextAttributes): guint = 
-  result = (a.flag0 and bm_TGtkTextAttributes_bg_full_height) shr
-      bp_TGtkTextAttributes_bg_full_height
-
-proc set_bg_full_height*(a: PTextAttributes, `bg_full_height`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`bg_full_height` shl bp_TGtkTextAttributes_bg_full_height) and
-      bm_TGtkTextAttributes_bg_full_height)
-
-proc editable*(a: PTextAttributes): guint = 
-  result = (a.flag0 and bm_TGtkTextAttributes_editable) shr
-      bp_TGtkTextAttributes_editable
-
-proc set_editable*(a: PTextAttributes, `editable`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`editable` shl bp_TGtkTextAttributes_editable) and
-      bm_TGtkTextAttributes_editable)
-
-proc realized*(a: PTextAttributes): guint = 
-  result = (a.flag0 and bm_TGtkTextAttributes_realized) shr
-      bp_TGtkTextAttributes_realized
-
-proc set_realized*(a: PTextAttributes, `realized`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`realized` shl bp_TGtkTextAttributes_realized) and
-      bm_TGtkTextAttributes_realized)
-
-proc pad1*(a: PTextAttributes): guint = 
-  result = (a.flag0 and bm_TGtkTextAttributes_pad1) shr
-      bp_TGtkTextAttributes_pad1
-
-proc set_pad1*(a: PTextAttributes, `pad1`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pad1` shl bp_TGtkTextAttributes_pad1) and
-      bm_TGtkTextAttributes_pad1)
-
-proc pad2*(a: PTextAttributes): guint = 
-  result = (a.flag0 and bm_TGtkTextAttributes_pad2) shr
-      bp_TGtkTextAttributes_pad2
-
-proc set_pad2*(a: PTextAttributes, `pad2`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pad2` shl bp_TGtkTextAttributes_pad2) and
-      bm_TGtkTextAttributes_pad2)
-
-proc pad3*(a: PTextAttributes): guint = 
-  result = (a.flag0 and bm_TGtkTextAttributes_pad3) shr
-      bp_TGtkTextAttributes_pad3
-
-proc set_pad3*(a: PTextAttributes, `pad3`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pad3` shl bp_TGtkTextAttributes_pad3) and
-      bm_TGtkTextAttributes_pad3)
-
-proc pad4*(a: PTextAttributes): guint = 
-  result = (a.flag0 and bm_TGtkTextAttributes_pad4) shr
-      bp_TGtkTextAttributes_pad4
-
-proc set_pad4*(a: PTextAttributes, `pad4`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pad4` shl bp_TGtkTextAttributes_pad4) and
-      bm_TGtkTextAttributes_pad4)
-
-proc TYPE_TEXT_TAG_TABLE*(): GType = 
-  result = text_tag_table_get_type()
-
-proc TEXT_TAG_TABLE*(obj: pointer): PTextTagTable = 
-  result = cast[PTextTagTable](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_TEXT_TAG_TABLE()))
-
-proc TEXT_TAG_TABLE_CLASS*(klass: pointer): PTextTagTableClass = 
-  result = cast[PTextTagTableClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_TEXT_TAG_TABLE()))
-
-proc IS_TEXT_TAG_TABLE*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TEXT_TAG_TABLE())
-
-proc IS_TEXT_TAG_TABLE_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_TEXT_TAG_TABLE())
-
-proc TEXT_TAG_TABLE_GET_CLASS*(obj: pointer): PTextTagTableClass = 
-  result = cast[PTextTagTableClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_TEXT_TAG_TABLE()))
-
-proc TYPE_TEXT_MARK*(): GType = 
-  result = text_mark_get_type()
-
-proc TEXT_MARK*(anObject: pointer): PTextMark = 
-  result = cast[PTextMark](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_TEXT_MARK()))
-
-proc TEXT_MARK_CLASS*(klass: pointer): PTextMarkClass = 
-  result = cast[PTextMarkClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_TEXT_MARK()))
-
-proc IS_TEXT_MARK*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_TEXT_MARK())
-
-proc IS_TEXT_MARK_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_TEXT_MARK())
-
-proc TEXT_MARK_GET_CLASS*(obj: pointer): PTextMarkClass = 
-  result = cast[PTextMarkClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_TEXT_MARK()))
-
-proc visible*(a: PTextMarkBody): guint = 
-  result = (a.flag0 and bm_TGtkTextMarkBody_visible) shr
-      bp_TGtkTextMarkBody_visible
-
-proc set_visible*(a: PTextMarkBody, `visible`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`visible` shl bp_TGtkTextMarkBody_visible) and
-      bm_TGtkTextMarkBody_visible)
-
-proc not_deleteable*(a: PTextMarkBody): guint = 
-  result = (a.flag0 and bm_TGtkTextMarkBody_not_deleteable) shr
-      bp_TGtkTextMarkBody_not_deleteable
-
-proc set_not_deleteable*(a: PTextMarkBody, `not_deleteable`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`not_deleteable` shl bp_TGtkTextMarkBody_not_deleteable) and
-      bm_TGtkTextMarkBody_not_deleteable)
-
-proc TYPE_TEXT_CHILD_ANCHOR*(): GType = 
-  result = text_child_anchor_get_type()
-
-proc TEXT_CHILD_ANCHOR*(anObject: pointer): PTextChildAnchor = 
-  result = cast[PTextChildAnchor](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_TEXT_CHILD_ANCHOR()))
-
-proc TEXT_CHILD_ANCHOR_CLASS*(klass: pointer): PTextChildAnchorClass = 
-  result = cast[PTextChildAnchorClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_TEXT_CHILD_ANCHOR()))
-
-proc IS_TEXT_CHILD_ANCHOR*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_TEXT_CHILD_ANCHOR())
-
-proc IS_TEXT_CHILD_ANCHOR_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_TEXT_CHILD_ANCHOR())
-
-proc TEXT_CHILD_ANCHOR_GET_CLASS*(obj: pointer): PTextChildAnchorClass = 
-  result = cast[PTextChildAnchorClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_TEXT_CHILD_ANCHOR()))
-
-proc width*(a: PTextLineData): gint = 
-  result = a.flag0 and bm_TGtkTextLineData_width
-
-proc set_width*(a: PTextLineData, NewWidth: gint) = 
-  a.flag0 = (bm_TGtkTextLineData_width and NewWidth) or a.flag0
-
-proc valid*(a: PTextLineData): gint = 
-  result = (a.flag0 and bm_TGtkTextLineData_valid) shr
-      bp_TGtkTextLineData_valid
-
-proc set_valid*(a: PTextLineData, `valid`: gint) = 
-  a.flag0 = a.flag0 or
-      ((`valid` shl bp_TGtkTextLineData_valid) and bm_TGtkTextLineData_valid)
-
-proc TYPE_TEXT_BUFFER*(): GType = 
-  result = text_buffer_get_type()
-
-proc TEXT_BUFFER*(obj: pointer): PTextBuffer = 
-  result = cast[PTextBuffer](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_TEXT_BUFFER()))
-
-proc TEXT_BUFFER_CLASS*(klass: pointer): PTextBufferClass = 
-  result = cast[PTextBufferClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_TEXT_BUFFER()))
-
-proc IS_TEXT_BUFFER*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TEXT_BUFFER())
-
-proc IS_TEXT_BUFFER_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_TEXT_BUFFER())
-
-proc TEXT_BUFFER_GET_CLASS*(obj: pointer): PTextBufferClass = 
-  result = cast[PTextBufferClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_TEXT_BUFFER()))
-
-proc modified*(a: PTextBuffer): guint = 
-  result = (a.TextBufferflag0 and bm_TGtkTextBuffer_modified) shr
-      bp_TGtkTextBuffer_modified
-
-proc set_modified*(a: PTextBuffer, `modified`: guint) = 
-  a.TextBufferflag0 = a.TextBufferflag0 or
-      (int16(`modified` shl bp_TGtkTextBuffer_modified) and
-      bm_TGtkTextBuffer_modified)
-
-proc TYPE_TEXT_LAYOUT*(): GType = 
-  result = text_layout_get_type()
-
-proc TEXT_LAYOUT*(obj: pointer): PTextLayout = 
-  result = cast[PTextLayout](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_TEXT_LAYOUT()))
-
-proc TEXT_LAYOUT_CLASS*(klass: pointer): PTextLayoutClass = 
-  result = cast[PTextLayoutClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_TEXT_LAYOUT()))
-
-proc IS_TEXT_LAYOUT*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TEXT_LAYOUT())
-
-proc IS_TEXT_LAYOUT_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_TEXT_LAYOUT())
-
-proc TEXT_LAYOUT_GET_CLASS*(obj: pointer): PTextLayoutClass = 
-  result = cast[PTextLayoutClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_TEXT_LAYOUT()))
-
-proc cursor_visible*(a: PTextLayout): guint = 
-  result = (a.TextLayoutflag0 and bm_TGtkTextLayout_cursor_visible) shr
-      bp_TGtkTextLayout_cursor_visible
-
-proc set_cursor_visible*(a: PTextLayout, `cursor_visible`: guint) = 
-  a.TextLayoutflag0 = a.TextLayoutflag0 or
-      (int16(`cursor_visible` shl bp_TGtkTextLayout_cursor_visible) and
-      bm_TGtkTextLayout_cursor_visible)
-
-proc cursor_direction*(a: PTextLayout): gint = 
-  result = (a.TextLayoutflag0 and bm_TGtkTextLayout_cursor_direction) shr
-      bp_TGtkTextLayout_cursor_direction
-
-proc set_cursor_direction*(a: PTextLayout, `cursor_direction`: gint) = 
-  a.TextLayoutflag0 = a.TextLayoutflag0 or
-      (int16(`cursor_direction` shl bp_TGtkTextLayout_cursor_direction) and
-      bm_TGtkTextLayout_cursor_direction)
-
-proc is_strong*(a: PTextCursorDisplay): guint = 
-  result = (a.flag0 and bm_TGtkTextCursorDisplay_is_strong) shr
-      bp_TGtkTextCursorDisplay_is_strong
-
-proc set_is_strong*(a: PTextCursorDisplay, `is_strong`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_strong` shl bp_TGtkTextCursorDisplay_is_strong) and
-      bm_TGtkTextCursorDisplay_is_strong)
-
-proc is_weak*(a: PTextCursorDisplay): guint = 
-  result = (a.flag0 and bm_TGtkTextCursorDisplay_is_weak) shr
-      bp_TGtkTextCursorDisplay_is_weak
-
-proc set_is_weak*(a: PTextCursorDisplay, `is_weak`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_weak` shl bp_TGtkTextCursorDisplay_is_weak) and
-      bm_TGtkTextCursorDisplay_is_weak)
-
-proc TYPE_TEXT_VIEW*(): GType = 
-  result = text_view_get_type()
-
-proc TEXT_VIEW*(obj: pointer): PTextView = 
-  result = cast[PTextView](CHECK_CAST(obj, TYPE_TEXT_VIEW()))
-
-proc TEXT_VIEW_CLASS*(klass: pointer): PTextViewClass = 
-  result = cast[PTextViewClass](CHECK_CLASS_CAST(klass, TYPE_TEXT_VIEW()))
-
-proc IS_TEXT_VIEW*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TEXT_VIEW())
-
-proc IS_TEXT_VIEW_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TEXT_VIEW())
-
-proc TEXT_VIEW_GET_CLASS*(obj: pointer): PTextViewClass = 
-  result = cast[PTextViewClass](CHECK_GET_CLASS(obj, TYPE_TEXT_VIEW()))
-
-proc editable*(a: PTextView): guint = 
-  result = (a.TextViewflag0 and bm_TGtkTextView_editable) shr
-      bp_TGtkTextView_editable
-
-proc set_editable*(a: PTextView, `editable`: guint) = 
-  a.TextViewflag0 = a.TextViewflag0 or
-      (int16(`editable` shl bp_TGtkTextView_editable) and
-      bm_TGtkTextView_editable)
-
-proc overwrite_mode*(a: PTextView): guint = 
-  result = (a.TextViewflag0 and bm_TGtkTextView_overwrite_mode) shr
-      bp_TGtkTextView_overwrite_mode
-
-proc set_overwrite_mode*(a: PTextView, `overwrite_mode`: guint) = 
-  a.TextViewflag0 = a.TextViewflag0 or
-      (int16(`overwrite_mode` shl bp_TGtkTextView_overwrite_mode) and
-      bm_TGtkTextView_overwrite_mode)
-
-proc cursor_visible*(a: PTextView): guint = 
-  result = (a.TextViewflag0 and bm_TGtkTextView_cursor_visible) shr
-      bp_TGtkTextView_cursor_visible
-
-proc set_cursor_visible*(a: PTextView, `cursor_visible`: guint) = 
-  a.TextViewflag0 = a.TextViewflag0 or
-      (int16(`cursor_visible` shl bp_TGtkTextView_cursor_visible) and
-      bm_TGtkTextView_cursor_visible)
-
-proc need_im_reset*(a: PTextView): guint = 
-  result = (a.TextViewflag0 and bm_TGtkTextView_need_im_reset) shr
-      bp_TGtkTextView_need_im_reset
-
-proc set_need_im_reset*(a: PTextView, `need_im_reset`: guint) = 
-  a.TextViewflag0 = a.TextViewflag0 or
-      (int16(`need_im_reset` shl bp_TGtkTextView_need_im_reset) and
-      bm_TGtkTextView_need_im_reset)
-
-proc just_selected_element*(a: PTextView): guint = 
-  result = (a.TextViewflag0 and bm_TGtkTextView_just_selected_element) shr
-      bp_TGtkTextView_just_selected_element
-
-proc set_just_selected_element*(a: PTextView, `just_selected_element`: guint) = 
-  a.TextViewflag0 = a.TextViewflag0 or
-      (int16(`just_selected_element` shl
-      bp_TGtkTextView_just_selected_element) and
-      bm_TGtkTextView_just_selected_element)
-
-proc disable_scroll_on_focus*(a: PTextView): guint = 
-  result = (a.TextViewflag0 and bm_TGtkTextView_disable_scroll_on_focus) shr
-      bp_TGtkTextView_disable_scroll_on_focus
-
-proc set_disable_scroll_on_focus*(a: PTextView, 
-                                  `disable_scroll_on_focus`: guint) = 
-  a.TextViewflag0 = a.TextViewflag0 or
-      (int16(`disable_scroll_on_focus` shl
-      bp_TGtkTextView_disable_scroll_on_focus) and
-      bm_TGtkTextView_disable_scroll_on_focus)
-
-proc onscreen_validated*(a: PTextView): guint = 
-  result = (a.TextViewflag0 and bm_TGtkTextView_onscreen_validated) shr
-      bp_TGtkTextView_onscreen_validated
-
-proc set_onscreen_validated*(a: PTextView, `onscreen_validated`: guint) = 
-  a.TextViewflag0 = a.TextViewflag0 or
-      (int16(`onscreen_validated` shl bp_TGtkTextView_onscreen_validated) and
-      bm_TGtkTextView_onscreen_validated)
-
-proc mouse_cursor_obscured*(a: PTextView): guint = 
-  result = (a.TextViewflag0 and bm_TGtkTextView_mouse_cursor_obscured) shr
-      bp_TGtkTextView_mouse_cursor_obscured
-
-proc set_mouse_cursor_obscured*(a: PTextView, `mouse_cursor_obscured`: guint) = 
-  a.TextViewflag0 = a.TextViewflag0 or
-      (int16(`mouse_cursor_obscured` shl
-      bp_TGtkTextView_mouse_cursor_obscured) and
-      bm_TGtkTextView_mouse_cursor_obscured)
-
-proc TYPE_TIPS_QUERY*(): GType = 
-  result = tips_query_get_type()
-
-proc TIPS_QUERY*(obj: pointer): PTipsQuery = 
-  result = cast[PTipsQuery](CHECK_CAST(obj, TYPE_TIPS_QUERY()))
-
-proc TIPS_QUERY_CLASS*(klass: pointer): PTipsQueryClass = 
-  result = cast[PTipsQueryClass](CHECK_CLASS_CAST(klass, TYPE_TIPS_QUERY()))
-
-proc IS_TIPS_QUERY*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TIPS_QUERY())
-
-proc IS_TIPS_QUERY_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TIPS_QUERY())
-
-proc TIPS_QUERY_GET_CLASS*(obj: pointer): PTipsQueryClass = 
-  result = cast[PTipsQueryClass](CHECK_GET_CLASS(obj, TYPE_TIPS_QUERY()))
-
-proc emit_always*(a: PTipsQuery): guint = 
-  result = (a.TipsQueryflag0 and bm_TGtkTipsQuery_emit_always) shr
-      bp_TGtkTipsQuery_emit_always
-
-proc set_emit_always*(a: PTipsQuery, `emit_always`: guint) = 
-  a.TipsQueryflag0 = a.TipsQueryflag0 or
-      (int16(`emit_always` shl bp_TGtkTipsQuery_emit_always) and
-      bm_TGtkTipsQuery_emit_always)
-
-proc in_query*(a: PTipsQuery): guint = 
-  result = (a.TipsQueryflag0 and bm_TGtkTipsQuery_in_query) shr
-      bp_TGtkTipsQuery_in_query
-
-proc set_in_query*(a: PTipsQuery, `in_query`: guint) = 
-  a.TipsQueryflag0 = a.TipsQueryflag0 or
-      (int16(`in_query` shl bp_TGtkTipsQuery_in_query) and
-      bm_TGtkTipsQuery_in_query)
-
-proc TYPE_TOOLTIPS*(): GType = 
-  result = tooltips_get_type()
-
-proc TOOLTIPS*(obj: pointer): PTooltips = 
-  result = cast[PTooltips](CHECK_CAST(obj, TYPE_TOOLTIPS()))
-
-proc TOOLTIPS_CLASS*(klass: pointer): PTooltipsClass = 
-  result = cast[PTooltipsClass](CHECK_CLASS_CAST(klass, TYPE_TOOLTIPS()))
-
-proc IS_TOOLTIPS*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TOOLTIPS())
-
-proc IS_TOOLTIPS_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TOOLTIPS())
-
-proc TOOLTIPS_GET_CLASS*(obj: pointer): PTooltipsClass = 
-  result = cast[PTooltipsClass](CHECK_GET_CLASS(obj, TYPE_TOOLTIPS()))
-
-proc delay*(a: PTooltips): guint = 
-  result = (a.Tooltipsflag0 and bm_TGtkTooltips_delay) shr
-      bp_TGtkTooltips_delay
-
-proc set_delay*(a: PTooltips, `delay`: guint) = 
-  a.Tooltipsflag0 = a.Tooltipsflag0 or
-      ((`delay` shl bp_TGtkTooltips_delay) and bm_TGtkTooltips_delay)
-
-proc enabled*(a: PTooltips): guint = 
-  result = (a.Tooltipsflag0 and bm_TGtkTooltips_enabled) shr
-      bp_TGtkTooltips_enabled
-
-proc set_enabled*(a: PTooltips, `enabled`: guint) = 
-  a.Tooltipsflag0 = a.Tooltipsflag0 or
-      ((`enabled` shl bp_TGtkTooltips_enabled) and bm_TGtkTooltips_enabled)
-
-proc have_grab*(a: PTooltips): guint = 
-  result = (a.Tooltipsflag0 and bm_TGtkTooltips_have_grab) shr
-      bp_TGtkTooltips_have_grab
-
-proc set_have_grab*(a: PTooltips, `have_grab`: guint) = 
-  a.Tooltipsflag0 = a.Tooltipsflag0 or
-      ((`have_grab` shl bp_TGtkTooltips_have_grab) and
-      bm_TGtkTooltips_have_grab)
-
-proc use_sticky_delay*(a: PTooltips): guint = 
-  result = (a.Tooltipsflag0 and bm_TGtkTooltips_use_sticky_delay) shr
-      bp_TGtkTooltips_use_sticky_delay
-
-proc set_use_sticky_delay*(a: PTooltips, `use_sticky_delay`: guint) = 
-  a.Tooltipsflag0 = a.Tooltipsflag0 or
-      ((`use_sticky_delay` shl bp_TGtkTooltips_use_sticky_delay) and
-      bm_TGtkTooltips_use_sticky_delay)
-
-proc TYPE_TOOLBAR*(): GType = 
-  result = toolbar_get_type()
-
-proc TOOLBAR*(obj: pointer): PToolbar = 
-  result = cast[PToolbar](CHECK_CAST(obj, TYPE_TOOLBAR()))
-
-proc TOOLBAR_CLASS*(klass: pointer): PToolbarClass = 
-  result = cast[PToolbarClass](CHECK_CLASS_CAST(klass, TYPE_TOOLBAR()))
-
-proc IS_TOOLBAR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TOOLBAR())
-
-proc IS_TOOLBAR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TOOLBAR())
-
-proc TOOLBAR_GET_CLASS*(obj: pointer): PToolbarClass = 
-  result = cast[PToolbarClass](CHECK_GET_CLASS(obj, TYPE_TOOLBAR()))
-
-proc style_set*(a: PToolbar): guint = 
-  result = (a.Toolbarflag0 and bm_TGtkToolbar_style_set) shr
-      bp_TGtkToolbar_style_set
-
-proc set_style_set*(a: PToolbar, `style_set`: guint) = 
-  a.Toolbarflag0 = a.Toolbarflag0 or
-      (int16(`style_set` shl bp_TGtkToolbar_style_set) and
-      bm_TGtkToolbar_style_set)
-
-proc icon_size_set*(a: PToolbar): guint = 
-  result = (a.Toolbarflag0 and bm_TGtkToolbar_icon_size_set) shr
-      bp_TGtkToolbar_icon_size_set
-
-proc set_icon_size_set*(a: PToolbar, `icon_size_set`: guint) = 
-  a.Toolbarflag0 = a.Toolbarflag0 or
-      (int16(`icon_size_set` shl bp_TGtkToolbar_icon_size_set) and
-      bm_TGtkToolbar_icon_size_set)
-
-proc TYPE_TREE*(): GType = 
-  result = tree_get_type()
-
-proc TREE*(obj: pointer): PTree = 
-  result = cast[PTree](CHECK_CAST(obj, TYPE_TREE()))
-
-proc TREE_CLASS*(klass: pointer): PTreeClass = 
-  result = cast[PTreeClass](CHECK_CLASS_CAST(klass, TYPE_TREE()))
-
-proc IS_TREE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TREE())
-
-proc IS_TREE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TREE())
-
-proc TREE_GET_CLASS*(obj: pointer): PTreeClass = 
-  result = cast[PTreeClass](CHECK_GET_CLASS(obj, TYPE_TREE()))
-
-proc IS_ROOT_TREE*(obj: pointer): bool = 
-  result = (cast[PObject]((TREE(obj)).root_tree)) == (cast[PObject](obj))
-
-proc TREE_ROOT_TREE*(obj: pointer): PTree = 
-  result = TREE(obj).root_tree
-
-proc TREE_SELECTION_OLD*(obj: pointer): PGList = 
-  result = (TREE_ROOT_TREE(obj)).selection
-
-proc selection_mode*(a: PTree): guint = 
-  result = (a.Treeflag0 and bm_TGtkTree_selection_mode) shr
-      bp_TGtkTree_selection_mode
-
-proc set_selection_mode*(a: PTree, `selection_mode`: guint) = 
-  a.Treeflag0 = a.Treeflag0 or
-      (int16(`selection_mode` shl bp_TGtkTree_selection_mode) and
-      bm_TGtkTree_selection_mode)
-
-proc view_mode*(a: PTree): guint = 
-  result = (a.Treeflag0 and bm_TGtkTree_view_mode) shr bp_TGtkTree_view_mode
-
-proc set_view_mode*(a: PTree, `view_mode`: guint) = 
-  a.Treeflag0 = a.Treeflag0 or
-      (int16(`view_mode` shl bp_TGtkTree_view_mode) and bm_TGtkTree_view_mode)
-
-proc view_line*(a: PTree): guint = 
-  result = (a.Treeflag0 and bm_TGtkTree_view_line) shr bp_TGtkTree_view_line
-
-proc set_view_line*(a: PTree, `view_line`: guint) = 
-  a.Treeflag0 = a.Treeflag0 or
-      (int16(`view_line` shl bp_TGtkTree_view_line) and bm_TGtkTree_view_line)
-
-proc TYPE_TREE_DRAG_SOURCE*(): GType = 
-  result = tree_drag_source_get_type()
-
-proc TREE_DRAG_SOURCE*(obj: pointer): PTreeDragSource = 
-  result = cast[PTreeDragSource](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_TREE_DRAG_SOURCE()))
-
-proc IS_TREE_DRAG_SOURCE*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TREE_DRAG_SOURCE())
-
-proc TREE_DRAG_SOURCE_GET_IFACE*(obj: pointer): PTreeDragSourceIface = 
-  result = cast[PTreeDragSourceIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_TREE_DRAG_SOURCE()))
-
-proc TYPE_TREE_DRAG_DEST*(): GType = 
-  result = tree_drag_dest_get_type()
-
-proc TREE_DRAG_DEST*(obj: pointer): PTreeDragDest = 
-  result = cast[PTreeDragDest](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_TREE_DRAG_DEST()))
-
-proc IS_TREE_DRAG_DEST*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TREE_DRAG_DEST())
-
-proc TREE_DRAG_DEST_GET_IFACE*(obj: pointer): PTreeDragDestIface = 
-  result = cast[PTreeDragDestIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_TREE_DRAG_DEST()))
-
-proc TYPE_TREE_ITEM*(): GType = 
-  result = tree_item_get_type()
-
-proc TREE_ITEM*(obj: pointer): PTreeItem = 
-  result = cast[PTreeItem](CHECK_CAST(obj, TYPE_TREE_ITEM()))
-
-proc TREE_ITEM_CLASS*(klass: pointer): PTreeItemClass = 
-  result = cast[PTreeItemClass](CHECK_CLASS_CAST(klass, TYPE_TREE_ITEM()))
-
-proc IS_TREE_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TREE_ITEM())
-
-proc IS_TREE_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TREE_ITEM())
-
-proc TREE_ITEM_GET_CLASS*(obj: pointer): PTreeItemClass = 
-  result = cast[PTreeItemClass](CHECK_GET_CLASS(obj, TYPE_TREE_ITEM()))
-
-proc TREE_ITEM_SUBTREE*(obj: pointer): PWidget = 
-  result = (TREE_ITEM(obj)).subtree
-
-proc expanded*(a: PTreeItem): guint = 
-  result = (a.TreeItemflag0 and bm_TGtkTreeItem_expanded) shr
-      bp_TGtkTreeItem_expanded
-
-proc set_expanded*(a: PTreeItem, `expanded`: guint) = 
-  a.TreeItemflag0 = a.TreeItemflag0 or
-      (int16(`expanded` shl bp_TGtkTreeItem_expanded) and
-      bm_TGtkTreeItem_expanded)
-
-proc TYPE_TREE_SELECTION*(): GType = 
-  result = tree_selection_get_type()
-
-proc TREE_SELECTION*(obj: pointer): PTreeSelection = 
-  result = cast[PTreeSelection](CHECK_CAST(obj, TYPE_TREE_SELECTION()))
-
-proc TREE_SELECTION_CLASS*(klass: pointer): PTreeSelectionClass = 
-  result = cast[PTreeSelectionClass](CHECK_CLASS_CAST(klass, 
-      TYPE_TREE_SELECTION()))
-
-proc IS_TREE_SELECTION*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TREE_SELECTION())
-
-proc IS_TREE_SELECTION_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TREE_SELECTION())
-
-proc TREE_SELECTION_GET_CLASS*(obj: pointer): PTreeSelectionClass = 
-  result = cast[PTreeSelectionClass](CHECK_GET_CLASS(obj, TYPE_TREE_SELECTION()))
-
-proc TYPE_TREE_STORE*(): GType = 
-  result = tree_store_get_type()
-
-proc TREE_STORE*(obj: pointer): PTreeStore = 
-  result = cast[PTreeStore](CHECK_CAST(obj, TYPE_TREE_STORE()))
-
-proc TREE_STORE_CLASS*(klass: pointer): PTreeStoreClass = 
-  result = cast[PTreeStoreClass](CHECK_CLASS_CAST(klass, TYPE_TREE_STORE()))
-
-proc IS_TREE_STORE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TREE_STORE())
-
-proc IS_TREE_STORE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TREE_STORE())
-
-proc TREE_STORE_GET_CLASS*(obj: pointer): PTreeStoreClass = 
-  result = cast[PTreeStoreClass](CHECK_GET_CLASS(obj, TYPE_TREE_STORE()))
-
-proc columns_dirty*(a: PTreeStore): guint = 
-  result = (a.TreeStoreflag0 and bm_TGtkTreeStore_columns_dirty) shr
-      bp_TGtkTreeStore_columns_dirty
-
-proc set_columns_dirty*(a: PTreeStore, `columns_dirty`: guint) = 
-  a.TreeStoreflag0 = a.TreeStoreflag0 or
-      (int16(`columns_dirty` shl bp_TGtkTreeStore_columns_dirty) and
-      bm_TGtkTreeStore_columns_dirty)
-
-proc TYPE_TREE_VIEW_COLUMN*(): GType = 
-  result = tree_view_column_get_type()
-
-proc TREE_VIEW_COLUMN*(obj: pointer): PTreeViewColumn = 
-  result = cast[PTreeViewColumn](CHECK_CAST(obj, TYPE_TREE_VIEW_COLUMN()))
-
-proc TREE_VIEW_COLUMN_CLASS*(klass: pointer): PTreeViewColumnClass = 
-  result = cast[PTreeViewColumnClass](CHECK_CLASS_CAST(klass, 
-      TYPE_TREE_VIEW_COLUMN()))
-
-proc IS_TREE_VIEW_COLUMN*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TREE_VIEW_COLUMN())
-
-proc IS_TREE_VIEW_COLUMN_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TREE_VIEW_COLUMN())
-
-proc TREE_VIEW_COLUMN_GET_CLASS*(obj: pointer): PTreeViewColumnClass = 
-  result = cast[PTreeViewColumnClass](CHECK_GET_CLASS(obj, 
-      TYPE_TREE_VIEW_COLUMN()))
-
-proc visible*(a: PTreeViewColumn): guint = 
-  result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_visible) shr
-      bp_TGtkTreeViewColumn_visible
-
-proc set_visible*(a: PTreeViewColumn, `visible`: guint) = 
-  a.TreeViewColumnflag0 = a.TreeViewColumnflag0 or
-      (int16(`visible` shl bp_TGtkTreeViewColumn_visible) and
-      bm_TGtkTreeViewColumn_visible)
-
-proc resizable*(a: PTreeViewColumn): guint = 
-  result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_resizable) shr
-      bp_TGtkTreeViewColumn_resizable
-
-proc set_resizable*(a: PTreeViewColumn, `resizable`: guint) = 
-  a.TreeViewColumnflag0 = a.TreeViewColumnflag0 or
-      (int16(`resizable` shl bp_TGtkTreeViewColumn_resizable) and
-      bm_TGtkTreeViewColumn_resizable)
-
-proc clickable*(a: PTreeViewColumn): guint = 
-  result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_clickable) shr
-      bp_TGtkTreeViewColumn_clickable
-
-proc set_clickable*(a: PTreeViewColumn, `clickable`: guint) = 
-  a.TreeViewColumnflag0 = a.TreeViewColumnflag0 or
-      (int16(`clickable` shl bp_TGtkTreeViewColumn_clickable) and
-      bm_TGtkTreeViewColumn_clickable)
-
-proc dirty*(a: PTreeViewColumn): guint = 
-  result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_dirty) shr
-      bp_TGtkTreeViewColumn_dirty
-
-proc set_dirty*(a: PTreeViewColumn, `dirty`: guint) = 
-  a.TreeViewColumnflag0 = a.TreeViewColumnflag0 or
-      (int16(`dirty` shl bp_TGtkTreeViewColumn_dirty) and
-      bm_TGtkTreeViewColumn_dirty)
-
-proc show_sort_indicator*(a: PTreeViewColumn): guint = 
-  result = (a.TreeViewColumnflag0 and
-      bm_TGtkTreeViewColumn_show_sort_indicator) shr
-      bp_TGtkTreeViewColumn_show_sort_indicator
-
-proc set_show_sort_indicator*(a: PTreeViewColumn, 
-                              `show_sort_indicator`: guint) = 
-  a.TreeViewColumnflag0 = a.TreeViewColumnflag0 or
-      (int16(`show_sort_indicator` shl
-      bp_TGtkTreeViewColumn_show_sort_indicator) and
-      bm_TGtkTreeViewColumn_show_sort_indicator)
-
-proc maybe_reordered*(a: PTreeViewColumn): guint = 
-  result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_maybe_reordered) shr
-      bp_TGtkTreeViewColumn_maybe_reordered
-
-proc set_maybe_reordered*(a: PTreeViewColumn, `maybe_reordered`: guint) = 
-  a.TreeViewColumnflag0 = a.TreeViewColumnflag0 or
-      (int16(`maybe_reordered` shl bp_TGtkTreeViewColumn_maybe_reordered) and
-      bm_TGtkTreeViewColumn_maybe_reordered)
-
-proc reorderable*(a: PTreeViewColumn): guint = 
-  result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_reorderable) shr
-      bp_TGtkTreeViewColumn_reorderable
-
-proc set_reorderable*(a: PTreeViewColumn, `reorderable`: guint) = 
-  a.TreeViewColumnflag0 = a.TreeViewColumnflag0 or
-      (int16(`reorderable` shl bp_TGtkTreeViewColumn_reorderable) and
-      bm_TGtkTreeViewColumn_reorderable)
-
-proc use_resized_width*(a: PTreeViewColumn): guint = 
-  result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_use_resized_width) shr
-      bp_TGtkTreeViewColumn_use_resized_width
-
-proc set_use_resized_width*(a: PTreeViewColumn, `use_resized_width`: guint) = 
-  a.TreeViewColumnflag0 = a.TreeViewColumnflag0 or
-      (int16(`use_resized_width` shl bp_TGtkTreeViewColumn_use_resized_width) and
-      bm_TGtkTreeViewColumn_use_resized_width)
-
-proc flags*(a: PRBNode): guint = 
-  result = (a.flag0 and bm_TGtkRBNode_flags) shr bp_TGtkRBNode_flags
-
-proc set_flags*(a: PRBNode, `flags`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`flags` shl bp_TGtkRBNode_flags) and bm_TGtkRBNode_flags)
-
-proc parity*(a: PRBNode): guint = 
-  result = (a.flag0 and bm_TGtkRBNode_parity) shr bp_TGtkRBNode_parity
-
-proc set_parity*(a: PRBNode, `parity`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`parity` shl bp_TGtkRBNode_parity) and bm_TGtkRBNode_parity)
-
-proc GET_COLOR*(node: PRBNode): guint = 
-  if node == nil: 
-    Result = RBNODE_BLACK
-  elif (int(flags(node)) and RBNODE_RED) == RBNODE_RED: 
-    Result = RBNODE_RED
-  else: 
-    Result = RBNODE_BLACK
-
-proc SET_COLOR*(node: PRBNode, color: guint) = 
-  if node == nil: 
-    return 
-  if ((flags(node) and (color)) != color): 
-    set_flags(node, flags(node) xor cint(RBNODE_RED or RBNODE_BLACK))
-
-proc GET_HEIGHT*(node: PRBNode): gint = 
-  var if_local1: gint
-  if node.children != nil: 
-    if_local1 = node.children.root.offset
-  else: 
-    if_local1 = 0
-  result = node.offset -
-      ((node.left.offset) + node.right.offset + if_local1)
-
-proc FLAG_SET*(node: PRBNode, flag: guint): bool = 
-  result = (node != nil) and ((flags(node) and (flag)) == flag)
-
-proc SET_FLAG*(node: PRBNode, flag: guint16) = 
-  set_flags(node, (flag) or flags(node))
-
-proc UNSET_FLAG*(node: PRBNode, flag: guint16) = 
-  set_flags(node, (not (flag)) and flags(node))
-
-proc FLAG_SET*(tree_view: PTreeView, flag: guint): bool = 
-  result = ((tree_view.priv.flags) and (flag)) == flag
-
-proc HEADER_HEIGHT*(tree_view: PTreeView): int32 = 
-  var if_local1: int32
-  if FLAG_SET(tree_view, TREE_VIEW_HEADERS_VISIBLE): 
-    if_local1 = tree_view.priv.header_height
-  else: 
-    if_local1 = 0
-  result = if_local1
-
-proc COLUMN_REQUESTED_WIDTH*(column: PTreeViewColumn): int32 = 
-  var MinWidth, MaxWidth: int
-  if column.min_width != - 1'i32: 
-    MinWidth = column.min_width
-  else: 
-    MinWidth = column.requested_width
-  if column.max_width != - 1'i32: 
-    MaxWidth = column.max_width
-  else: 
-    MaxWidth = column.requested_width
-  result = CLAMP(column.requested_width, MinWidth, MaxWidth).int32
-
-proc DRAW_EXPANDERS*(tree_view: PTreeView): bool = 
-  result = (not (FLAG_SET(tree_view, TREE_VIEW_IS_LIST))) and
-      (FLAG_SET(tree_view, TREE_VIEW_SHOW_EXPANDERS))
-
-proc COLUMN_DRAG_DEAD_MULTIPLIER*(tree_view: PTreeView): int32 = 
-  result = 10'i32 * (HEADER_HEIGHT(tree_view))
-
-proc scroll_to_use_align*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_scroll_to_use_align) shr
-      bp_TGtkTreeViewPrivate_scroll_to_use_align
-
-proc set_scroll_to_use_align*(a: PTreeViewPrivate, 
-                              `scroll_to_use_align`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`scroll_to_use_align` shl
-      bp_TGtkTreeViewPrivate_scroll_to_use_align) and
-      bm_TGtkTreeViewPrivate_scroll_to_use_align)
-
-proc fixed_height_check*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_fixed_height_check) shr
-      bp_TGtkTreeViewPrivate_fixed_height_check
-
-proc set_fixed_height_check*(a: PTreeViewPrivate, 
-                             `fixed_height_check`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`fixed_height_check` shl
-      bp_TGtkTreeViewPrivate_fixed_height_check) and
-      bm_TGtkTreeViewPrivate_fixed_height_check)
-
-proc reorderable*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_reorderable) shr
-      bp_TGtkTreeViewPrivate_reorderable
-
-proc set_reorderable*(a: PTreeViewPrivate, `reorderable`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`reorderable` shl bp_TGtkTreeViewPrivate_reorderable) and
-      bm_TGtkTreeViewPrivate_reorderable)
-
-proc header_has_focus*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_header_has_focus) shr
-      bp_TGtkTreeViewPrivate_header_has_focus
-
-proc set_header_has_focus*(a: PTreeViewPrivate, `header_has_focus`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`header_has_focus` shl bp_TGtkTreeViewPrivate_header_has_focus) and
-      bm_TGtkTreeViewPrivate_header_has_focus)
-
-proc drag_column_window_state*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_drag_column_window_state) shr
-      bp_TGtkTreeViewPrivate_drag_column_window_state
-
-proc set_drag_column_window_state*(a: PTreeViewPrivate, 
-                                   `drag_column_window_state`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`drag_column_window_state` shl
-      bp_TGtkTreeViewPrivate_drag_column_window_state) and
-      bm_TGtkTreeViewPrivate_drag_column_window_state)
-
-proc has_rules*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_has_rules) shr
-      bp_TGtkTreeViewPrivate_has_rules
-
-proc set_has_rules*(a: PTreeViewPrivate, `has_rules`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`has_rules` shl bp_TGtkTreeViewPrivate_has_rules) and
-      bm_TGtkTreeViewPrivate_has_rules)
-
-proc mark_rows_col_dirty*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_mark_rows_col_dirty) shr
-      bp_TGtkTreeViewPrivate_mark_rows_col_dirty
-
-proc set_mark_rows_col_dirty*(a: PTreeViewPrivate, 
-                              `mark_rows_col_dirty`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`mark_rows_col_dirty` shl
-      bp_TGtkTreeViewPrivate_mark_rows_col_dirty) and
-      bm_TGtkTreeViewPrivate_mark_rows_col_dirty)
-
-proc enable_search*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_enable_search) shr
-      bp_TGtkTreeViewPrivate_enable_search
-
-proc set_enable_search*(a: PTreeViewPrivate, `enable_search`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`enable_search` shl bp_TGtkTreeViewPrivate_enable_search) and
-      bm_TGtkTreeViewPrivate_enable_search)
-
-proc disable_popdown*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_disable_popdown) shr
-      bp_TGtkTreeViewPrivate_disable_popdown
-
-proc set_disable_popdown*(a: PTreeViewPrivate, `disable_popdown`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`disable_popdown` shl bp_TGtkTreeViewPrivate_disable_popdown) and
-      bm_TGtkTreeViewPrivate_disable_popdown)
-
-proc SET_FLAG*(tree_view: PTreeView, flag: guint) = 
-  tree_view.priv.flags = tree_view.priv.flags or (flag)
-
-proc UNSET_FLAG*(tree_view: PTreeView, flag: guint) = 
-  tree_view.priv.flags = tree_view.priv.flags and not (flag)
-
-proc TYPE_TREE_VIEW*(): GType = 
-  result = tree_view_get_type()
-
-proc TREE_VIEW*(obj: pointer): PTreeView = 
-  result = cast[PTreeView](CHECK_CAST(obj, TYPE_TREE_VIEW()))
-
-proc TREE_VIEW_CLASS*(klass: pointer): PTreeViewClass = 
-  result = cast[PTreeViewClass](CHECK_CLASS_CAST(klass, TYPE_TREE_VIEW()))
-
-proc IS_TREE_VIEW*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TREE_VIEW())
-
-proc IS_TREE_VIEW_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TREE_VIEW())
-
-proc TREE_VIEW_GET_CLASS*(obj: pointer): PTreeViewClass = 
-  result = cast[PTreeViewClass](CHECK_GET_CLASS(obj, TYPE_TREE_VIEW()))
-
-proc TYPE_VBUTTON_BOX*(): GType = 
-  result = vbutton_box_get_type()
-
-proc VBUTTON_BOX*(obj: pointer): PVButtonBox = 
-  result = cast[PVButtonBox](CHECK_CAST(obj, TYPE_VBUTTON_BOX()))
-
-proc VBUTTON_BOX_CLASS*(klass: pointer): PVButtonBoxClass = 
-  result = cast[PVButtonBoxClass](CHECK_CLASS_CAST(klass, TYPE_VBUTTON_BOX()))
-
-proc IS_VBUTTON_BOX*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_VBUTTON_BOX())
-
-proc IS_VBUTTON_BOX_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_VBUTTON_BOX())
-
-proc VBUTTON_BOX_GET_CLASS*(obj: pointer): PVButtonBoxClass = 
-  result = cast[PVButtonBoxClass](CHECK_GET_CLASS(obj, TYPE_VBUTTON_BOX()))
-
-proc TYPE_VIEWPORT*(): GType = 
-  result = viewport_get_type()
-
-proc VIEWPORT*(obj: pointer): PViewport = 
-  result = cast[PViewport](CHECK_CAST(obj, TYPE_VIEWPORT()))
-
-proc VIEWPORT_CLASS*(klass: pointer): PViewportClass = 
-  result = cast[PViewportClass](CHECK_CLASS_CAST(klass, TYPE_VIEWPORT()))
-
-proc IS_VIEWPORT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_VIEWPORT())
-
-proc IS_VIEWPORT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_VIEWPORT())
-
-proc VIEWPORT_GET_CLASS*(obj: pointer): PViewportClass = 
-  result = cast[PViewportClass](CHECK_GET_CLASS(obj, TYPE_VIEWPORT()))
-
-proc TYPE_VPANED*(): GType = 
-  result = vpaned_get_type()
-
-proc VPANED*(obj: pointer): PVPaned = 
-  result = cast[PVPaned](CHECK_CAST(obj, TYPE_VPANED()))
-
-proc VPANED_CLASS*(klass: pointer): PVPanedClass = 
-  result = cast[PVPanedClass](CHECK_CLASS_CAST(klass, TYPE_VPANED()))
-
-proc IS_VPANED*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_VPANED())
-
-proc IS_VPANED_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_VPANED())
-
-proc VPANED_GET_CLASS*(obj: pointer): PVPanedClass = 
-  result = cast[PVPanedClass](CHECK_GET_CLASS(obj, TYPE_VPANED()))
-
-proc TYPE_VRULER*(): GType = 
-  result = vruler_get_type()
-
-proc VRULER*(obj: pointer): PVRuler = 
-  result = cast[PVRuler](CHECK_CAST(obj, TYPE_VRULER()))
-
-proc VRULER_CLASS*(klass: pointer): PVRulerClass = 
-  result = cast[PVRulerClass](CHECK_CLASS_CAST(klass, TYPE_VRULER()))
-
-proc IS_VRULER*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_VRULER())
-
-proc IS_VRULER_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_VRULER())
-
-proc VRULER_GET_CLASS*(obj: pointer): PVRulerClass = 
-  result = cast[PVRulerClass](CHECK_GET_CLASS(obj, TYPE_VRULER()))
-
-proc TYPE_VSCALE*(): GType = 
-  result = vscale_get_type()
-
-proc VSCALE*(obj: pointer): PVScale = 
-  result = cast[PVScale](CHECK_CAST(obj, TYPE_VSCALE()))
-
-proc VSCALE_CLASS*(klass: pointer): PVScaleClass = 
-  result = cast[PVScaleClass](CHECK_CLASS_CAST(klass, TYPE_VSCALE()))
-
-proc IS_VSCALE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_VSCALE())
-
-proc IS_VSCALE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_VSCALE())
-
-proc VSCALE_GET_CLASS*(obj: pointer): PVScaleClass = 
-  result = cast[PVScaleClass](CHECK_GET_CLASS(obj, TYPE_VSCALE()))
-
-proc TYPE_VSCROLLBAR*(): GType = 
-  result = vscrollbar_get_type()
-
-proc VSCROLLBAR*(obj: pointer): PVScrollbar = 
-  result = cast[PVScrollbar](CHECK_CAST(obj, TYPE_VSCROLLBAR()))
-
-proc VSCROLLBAR_CLASS*(klass: pointer): PVScrollbarClass = 
-  result = cast[PVScrollbarClass](CHECK_CLASS_CAST(klass, TYPE_VSCROLLBAR()))
-
-proc IS_VSCROLLBAR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_VSCROLLBAR())
-
-proc IS_VSCROLLBAR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_VSCROLLBAR())
-
-proc VSCROLLBAR_GET_CLASS*(obj: pointer): PVScrollbarClass = 
-  result = cast[PVScrollbarClass](CHECK_GET_CLASS(obj, TYPE_VSCROLLBAR()))
-
-proc TYPE_VSEPARATOR*(): GType = 
-  result = vseparator_get_type()
-
-proc VSEPARATOR*(obj: pointer): PVSeparator = 
-  result = cast[PVSeparator](CHECK_CAST(obj, TYPE_VSEPARATOR()))
-
-proc VSEPARATOR_CLASS*(klass: pointer): PVSeparatorClass = 
-  result = cast[PVSeparatorClass](CHECK_CLASS_CAST(klass, TYPE_VSEPARATOR()))
-
-proc IS_VSEPARATOR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_VSEPARATOR())
-
-proc IS_VSEPARATOR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_VSEPARATOR())
-
-proc VSEPARATOR_GET_CLASS*(obj: pointer): PVSeparatorClass = 
-  # these were missing:
-  result = cast[PVSeparatorClass](CHECK_GET_CLASS(obj, TYPE_VSEPARATOR()))
-
-type 
-  Tcelllayout {.pure, final.} = object
-
-  PCellLayout* = tcelllayout
-  PPGtkCellLayout* = ptr PCellLayout
-  PSignalRunType* = ptr TSignalRunType
-  TSignalRunType* = int32
-  PFileChooserAction* = ptr TFileChooserAction
-  TFileChooserAction* = enum 
-    FILE_CHOOSER_ACTION_OPEN, FILE_CHOOSER_ACTION_SAVE, 
-    FILE_CHOOSER_ACTION_SELECT_FOLDER, FILE_CHOOSER_ACTION_CREATE_FOLDER
-  PFileChooserError* = ptr TFileChooserError
-  TFileChooserError* = enum 
-    FILE_CHOOSER_ERROR_NONEXISTENT, FILE_CHOOSER_ERROR_BAD_FILENAME
-
-  TFileChooser = object of TDialog
-  PFileChooser* = ptr TFileChooser
-  PPFileChooser* = ptr PFileChooser
-
-
-const 
-  ARG_READWRITE* = ARG_READABLE or ARG_WRITABLE
-
-proc entry_add_signal*(binding_set: PBindingSet, keyval: guint, 
-                               modifiers: gdk2.TModifierType, 
-                               signal_name: cstring, n_args: guint){.varargs, 
-    importc: "gtk_binding_entry_add_signal", cdecl, dynlib: lib.}
-proc clist_new_with_titles*(columns: gint): PCList{.varargs, cdecl, 
-    importc: "gtk_clist_new_with_titles", dynlib: lib.}
-proc prepend*(clist: PCList): gint{.importc: "gtk_clist_prepend", varargs, 
-    cdecl, dynlib: lib.}
-proc append*(clist: PCList): gint{.importc: "gtk_clist_append", varargs, 
-    cdecl, dynlib: lib.}
-proc insert*(clist: PCList, row: gint): gint{.varargs, cdecl, 
-    importc: "gtk_clist_insert", dynlib: lib.}
-proc set_attributes*(cell_layout: PCellLayout, cell: PCellRenderer){.
-    cdecl, varargs, importc: "gtk_cell_layout_set_attributes", dynlib: lib, 
-    importc: "gtk_cell_layout_set_attributes".}
-proc add_with_properties*(container: PContainer, widget: PWidget, 
-                                    first_prop_name: cstring){.varargs, 
-    importc: "gtk_container_add_with_properties", cdecl, dynlib: lib.}
-proc child_set*(container: PContainer, child: PWidget, 
-                          first_prop_name: cstring){.varargs, cdecl, 
-    importc: "gtk_container_child_set", dynlib: lib.}
-proc child_get*(container: PContainer, child: PWidget, 
-                          first_prop_name: cstring){.varargs, cdecl, 
-    importc: "gtk_container_child_get", dynlib: lib.}
-proc child_set_valist*(container: PContainer, child: PWidget, 
-                                 first_property_name: cstring){.varargs, 
-    importc: "gtk_container_child_set_valist", cdecl, dynlib: lib.}
-proc child_get_valist*(container: PContainer, child: PWidget, 
-                                 first_property_name: cstring){.varargs, 
-    importc: "gtk_container_child_get_valist", cdecl, dynlib: lib.}
-proc ctree_new_with_titles*(columns: gint, tree_column: gint): PCTree{.
-    importc: "gtk_ctree_new_with_titles", varargs, cdecl, dynlib: lib.}
-proc get_vector*(curve: PCurve, veclen: int32){.varargs, cdecl, 
-    importc: "gtk_curve_get_vector", dynlib: lib.}
-proc set_vector*(curve: PCurve, veclen: int32){.varargs, cdecl, 
-    importc: "gtk_curve_set_vector", dynlib: lib.}
-proc add_buttons*(dialog: PDialog, first_button_text: cstring){.varargs, 
-    cdecl, importc: "gtk_dialog_add_buttons", dynlib: lib.}
-proc dialog_new_with_buttons*(title: cstring, parent: PWindow, 
-                              flags: TDialogFlags, first_button_text: cstring): PDialog{.
-    varargs, cdecl, importc: "gtk_dialog_new_with_buttons", dynlib: lib.}
-proc list_store_new*(n_columns: gint): PListStore{.varargs, cdecl, 
-    importc: "gtk_list_store_new", dynlib: lib.}
-proc set*(list_store: PListStore, iter: PTreeIter){.varargs, cdecl, 
-    importc: "gtk_list_store_set", dynlib: lib.}
-proc set_valist*(list_store: PListStore, iter: PTreeIter){.varargs, 
-    cdecl, importc: "gtk_list_store_set_valist", dynlib: lib.}
-proc message_dialog_new*(parent: PWindow, flags: TDialogFlags, 
-                         thetype: TMessageType, buttons: TButtonsType, 
-                         message_format: cstring): PMessageDialog{.varargs, 
-    cdecl, importc: "gtk_message_dialog_new", dynlib: lib.}
-proc set_markup*(msgDialog: PMessageDialog, str: cstring) {.cdecl,
-    importc: "gtk_message_dialog_set_markup", dynlib: lib.}
-
-proc signal_new*(name: cstring, signal_flags: TSignalRunType, 
-                 object_type: TType, function_offset: guint, 
-                 marshaller: TSignalMarshaller, return_val: TType, n_args: guint): guint{.
-    varargs, importc: "gtk_signal_new", cdecl, dynlib: lib.}
-proc signal_emit*(anObject: PObject, signal_id: guint){.varargs, cdecl, 
-    importc: "gtk_signal_emit", dynlib: lib.}
-proc signal_emit_by_name*(anObject: PObject, name: cstring){.varargs, cdecl, 
-    importc: "gtk_signal_emit_by_name", dynlib: lib.}
-proc insert_with_tags*(buffer: PTextBuffer, iter: PTextIter, 
-                                   text: cstring, length: gint, 
-                                   first_tag: PTextTag){.varargs, 
-    importc: "gtk_text_buffer_insert_with_tags", cdecl, dynlib: lib.}
-proc insert_with_tags_by_name*(buffer: PTextBuffer, iter: PTextIter, 
-    text: cstring, length: gint, first_tag_name: cstring){.varargs, 
-    importc: "gtk_text_buffer_insert_with_tags_by_name", cdecl, dynlib: lib.}
-proc create_tag*(buffer: PTextBuffer, tag_name: cstring, 
-                             first_property_name: cstring): PTextTag{.varargs, 
-    importc: "gtk_text_buffer_create_tag", cdecl, dynlib: lib.}
-proc get*(tree_model: PTreeModel, iter: PTreeIter){.varargs, 
-    importc: "gtk_tree_model_get", cdecl, dynlib: lib.}
-proc get_valist*(tree_model: PTreeModel, iter: PTreeIter){.varargs, 
-    importc: "gtk_tree_model_get_valist", cdecl, dynlib: lib.}
-proc tree_store_new*(n_columns: gint): PTreeStore{.varargs, cdecl, 
-    importc: "gtk_tree_store_new", dynlib: lib.}
-proc set*(tree_store: PTreeStore, iter: PTreeIter){.varargs, cdecl, 
-    importc: "gtk_tree_store_set", dynlib: lib.}
-proc set_valist*(tree_store: PTreeStore, iter: PTreeIter){.varargs, 
-    cdecl, importc: "gtk_tree_store_set_valist", dynlib: lib.}
-proc iter_is_valid*(tree_store: PTreeStore, iter: PTreeIter): gboolean{.
-    cdecl, importc: "gtk_tree_store_iter_is_valid", dynlib: lib.}
-proc reorder*(tree_store: PTreeStore, parent: PTreeIter, 
-                         new_order: pgint){.cdecl, 
-    importc: "gtk_tree_store_reorder", dynlib: lib.}
-proc swap*(tree_store: PTreeStore, a: PTreeIter, b: PTreeIter){.
-    cdecl, importc: "gtk_tree_store_swap", dynlib: lib.}
-proc move_before*(tree_store: PTreeStore, iter: PTreeIter, 
-                             position: PTreeIter){.cdecl, 
-    importc: "gtk_tree_store_move_before", dynlib: lib.}
-proc move_after*(tree_store: PTreeStore, iter: PTreeIter, 
-                            position: PTreeIter){.cdecl, 
-    importc: "gtk_tree_store_move_after", dynlib: lib.}
-proc insert_column_with_attributes*(tree_view: PTreeView, 
-    position: gint, title: cstring, cell: PCellRenderer): gint{.varargs, 
-    importc: "gtk_tree_view_insert_column_with_attributes", cdecl, dynlib: lib.}
-proc tree_view_column_new_with_attributes*(title: cstring, cell: PCellRenderer): PTreeViewColumn{.
-    importc: "gtk_tree_view_column_new_with_attributes", varargs, cdecl, 
-    dynlib: lib.}
-proc column_set_attributes*(tree_column: PTreeViewColumn, 
-                                      cell_renderer: PCellRenderer){.
-    importc: "gtk_tree_view_column_set_attributes", varargs, cdecl, dynlib: lib.}
-proc widget_new*(thetype: TType, first_property_name: cstring): PWidget{.
-    importc: "gtk_widget_new", varargs, cdecl, dynlib: lib.}
-proc set*(widget: PWidget, first_property_name: cstring){.varargs, 
-    importc: "gtk_widget_set", cdecl, dynlib: lib.}
-proc queue_clear*(widget: PWidget){.importc: "gtk_widget_queue_clear", 
-    cdecl, dynlib: lib.}
-proc queue_clear_area*(widget: PWidget, x: gint, y: gint, width: gint, 
-                              height: gint){.cdecl, 
-    importc: "gtk_widget_queue_clear_area", dynlib: lib.}
-proc draw*(widget: PWidget, area: gdk2.PRectangle){.cdecl, 
-    importc: "gtk_widget_draw", dynlib: lib.}
-proc style_get_valist*(widget: PWidget, first_property_name: cstring){.
-    varargs, cdecl, importc: "gtk_widget_style_get_valist", dynlib: lib.}
-proc style_get*(widget: PWidget, first_property_name: cstring){.varargs, 
-    cdecl, importc: "gtk_widget_style_get", dynlib: lib.}
-proc file_chooser_dialog_new*(title: cstring, parent: PWindow, 
-                              action: TFileChooserAction, 
-                              first_button_text: cstring): PFileChooser{.cdecl, 
-    varargs, dynlib: lib, importc: "gtk_file_chooser_dialog_new".}
-        
-proc file_chooser_dialog_new_with_backend*(title: cstring, parent: PWindow, 
-    action: TFileChooserAction, backend: cstring, first_button_text: cstring): PFileChooser{.
-    varargs, cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_dialog_new_with_backend".}
-proc reference*(anObject: PObject): PObject{.cdecl, importc: "gtk_object_ref", 
-    dynlib: lib.}
-proc unref*(anObject: PObject){.cdecl, importc: "gtk_object_unref", 
-                                       dynlib: lib.}
-proc weakref*(anObject: PObject, notify: TDestroyNotify, data: gpointer){.
-    cdecl, importc: "gtk_object_weakref", dynlib: lib.}
-proc weakunref*(anObject: PObject, notify: TDestroyNotify, data: gpointer){.
-    cdecl, importc: "gtk_object_weakunref", dynlib: lib.}
-proc set_data*(anObject: PObject, key: cstring, data: gpointer){.cdecl, 
-    importc: "gtk_object_set_data", dynlib: lib.}
-proc set_data_full*(anObject: PObject, key: cstring, data: gpointer, 
-                           destroy: TDestroyNotify){.
-    importc: "gtk_object_set_data_full", cdecl, dynlib: lib.}
-proc remove_data*(anObject: PObject, key: cstring){.cdecl, 
-    importc: "gtk_object_remove_data", dynlib: lib.}
-proc get_data*(anObject: PObject, key: cstring): gpointer{.cdecl, 
-    importc: "gtk_object_get_data", dynlib: lib.}
-proc remove_no_notify*(anObject: PObject, key: cstring){.cdecl, 
-    importc: "gtk_object_remove_no_notify", dynlib: lib.}
-proc set_user_data*(anObject: PObject, data: gpointer){.cdecl, 
-    importc: "gtk_object_set_user_data", dynlib: lib.}
-proc get_user_data*(anObject: PObject): gpointer{.cdecl, 
-    importc: "gtk_object_get_user_data", dynlib: lib.}
-proc set_data_by_id*(anObject: PObject, data_id: TGQuark, data: gpointer){.
-    cdecl, importc: "gtk_object_set_data_by_id", dynlib: lib.}
-proc set_data_by_id_full*(anObject: PObject, data_id: TGQuark, 
-                                 data: gpointer, destroy: TDestroyNotify){.
-    cdecl, importc: "gtk_object_set_data_by_id_full", dynlib: lib.}
-proc get_data_by_id*(anObject: PObject, data_id: TGQuark): gpointer{.
-    cdecl, importc: "gtk_object_get_data_by_id", dynlib: lib.}
-proc remove_data_by_id*(anObject: PObject, data_id: TGQuark){.cdecl, 
-    importc: "gtk_object_remove_data_by_id", dynlib: lib.}
-proc remove_no_notify_by_id*(anObject: PObject, key_id: TGQuark){.cdecl, 
-    importc: "gtk_object_remove_no_notify_by_id", dynlib: lib.}
-proc object_data_try_key*(str: cstring): TGQuark{.cdecl, 
-    importc: "gtk_object_data_try_key", dynlib: lib.}
-proc object_data_force_id*(str: cstring): TGQuark{.cdecl, 
-    importc: "gtk_object_data_force_id", dynlib: lib.}
-proc get*(anObject: PObject, first_property_name: cstring){.cdecl, 
-    importc: "gtk_object_get", varargs, dynlib: lib.}
-proc set*(anObject: PObject, first_property_name: cstring){.cdecl, 
-    importc: "gtk_object_set", varargs, dynlib: lib.}
-proc object_add_arg_type*(arg_name: cstring, arg_type: TType, arg_flags: guint, 
-                          arg_id: guint){.cdecl, 
-    importc: "gtk_object_add_arg_type", dynlib: lib.}
-
-type 
-  TFileFilter {.pure, final.} = object
-  PFileFilter* = ptr TFileFilter
-  PPGtkFileFilter* = ptr PFileFilter
-  PFileFilterFlags* = ptr TFileFilterFlags
-  TFileFilterFlags* = enum 
-    FILE_FILTER_FILENAME = 1 shl 0, FILE_FILTER_URI = 1 shl 1, 
-    FILE_FILTER_DISPLAY_NAME = 1 shl 2, FILE_FILTER_MIME_TYPE = 1 shl 3
-  PFileFilterInfo* = ptr TFileFilterInfo
-  TFileFilterInfo*{.final, pure.} = object 
-    contains*: TFileFilterFlags
-    filename*: cstring
-    uri*: cstring
-    display_name*: cstring
-    mime_type*: cstring
-
-  TFileFilterFunc* = proc (filter_info: PFileFilterInfo, data: gpointer): gboolean{.
-      cdecl.}
-
-proc TYPE_FILE_FILTER*(): GType
-proc FILE_FILTER*(obj: pointer): PFileFilter
-proc IS_FILE_FILTER*(obj: pointer): gboolean
-proc file_filter_get_type*(): GType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_file_filter_get_type".}
-proc file_filter_new*(): PFileFilter{.cdecl, dynlib: lib, 
-                                      importc: "gtk_file_filter_new".}
-proc set_name*(filter: PFileFilter, name: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_file_filter_set_name".}
-proc get_name*(filter: PFileFilter): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_file_filter_get_name".}
-proc add_mime_type*(filter: PFileFilter, mime_type: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_file_filter_add_mime_type".}
-proc add_pattern*(filter: PFileFilter, pattern: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_file_filter_add_pattern".}
-proc add_custom*(filter: PFileFilter, needed: TFileFilterFlags, 
-                             func: TFileFilterFunc, data: gpointer, 
-                             notify: TGDestroyNotify){.cdecl, dynlib: lib, 
-    importc: "gtk_file_filter_add_custom".}
-proc get_needed*(filter: PFileFilter): TFileFilterFlags{.cdecl, 
-    dynlib: lib, importc: "gtk_file_filter_get_needed".}
-proc filter*(filter: PFileFilter, filter_info: PFileFilterInfo): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_filter_filter".}
-proc TYPE_FILE_FILTER(): GType = 
-  result = file_filter_get_type()
-
-proc FILE_FILTER(obj: pointer): PFileFilter = 
-  result = cast[PFileFilter](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_FILE_FILTER()))
-
-proc IS_FILE_FILTER(obj: pointer): gboolean = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_FILE_FILTER())
-
-proc file_chooser_get_type*(): GType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_file_chooser_get_type".}
-proc file_chooser_error_quark*(): TGQuark{.cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_error_quark".}
-proc TYPE_FILE_CHOOSER*(): GType = 
-  result = file_chooser_get_type()
-
-proc FILE_CHOOSER*(obj: pointer): PFileChooser = 
-  result = cast[PFileChooser](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_FILE_CHOOSER()))
-
-proc IS_FILE_CHOOSER*(obj: pointer): gboolean = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_FILE_CHOOSER())
-
-proc set_action*(chooser: PFileChooser, action: TFileChooserAction){.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_action".}
-proc get_action*(chooser: PFileChooser): TFileChooserAction{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_action".}
-proc set_local_only*(chooser: PFileChooser, local_only: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_local_only".}
-proc get_local_only*(chooser: PFileChooser): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_local_only".}
-proc set_select_multiple*(chooser: PFileChooser, 
-                                       select_multiple: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_set_select_multiple".}
-proc get_select_multiple*(chooser: PFileChooser): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_select_multiple".}
-proc set_current_name*(chooser: PFileChooser, name: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_current_name".}
-proc get_filename*(chooser: PFileChooser): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_filename".}
-proc set_filename*(chooser: PFileChooser, filename: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_filename".}
-proc select_filename*(chooser: PFileChooser, filename: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_select_filename".}
-proc unselect_filename*(chooser: PFileChooser, filename: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_unselect_filename".}
-proc select_all*(chooser: PFileChooser){.cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_select_all".}
-proc unselect_all*(chooser: PFileChooser){.cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_unselect_all".}
-proc get_filenames*(chooser: PFileChooser): PGSList{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_filenames".}
-proc set_current_folder*(chooser: PFileChooser, filename: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_current_folder".}
-proc get_current_folder*(chooser: PFileChooser): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_current_folder".}
-proc get_uri*(chooser: PFileChooser): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_get_uri".}
-proc set_uri*(chooser: PFileChooser, uri: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_uri".}
-proc select_uri*(chooser: PFileChooser, uri: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_select_uri".}
-proc unselect_uri*(chooser: PFileChooser, uri: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_unselect_uri".}
-proc get_uris*(chooser: PFileChooser): PGSList{.cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_get_uris".}
-proc set_current_folder_uri*(chooser: PFileChooser, uri: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_current_folder_uri".}
-proc get_current_folder_uri*(chooser: PFileChooser): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_get_current_folder_uri".}
-proc set_preview_widget*(chooser: PFileChooser, 
-                                      preview_widget: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_set_preview_widget".}
-proc get_preview_widget*(chooser: PFileChooser): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_preview_widget".}
-proc set_preview_widget_active*(chooser: PFileChooser, 
-    active: gboolean){.cdecl, dynlib: lib, 
-                       importc: "gtk_file_chooser_set_preview_widget_active".}
-proc get_preview_widget_active*(chooser: PFileChooser): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_get_preview_widget_active".}
-proc set_use_preview_label*(chooser: PFileChooser, 
-    use_label: gboolean){.cdecl, dynlib: lib, 
-                          importc: "gtk_file_chooser_set_use_preview_label".}
-proc get_use_preview_label*(chooser: PFileChooser): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_get_use_preview_label".}
-proc get_preview_filename*(chooser: PFileChooser): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_preview_filename".}
-proc get_preview_uri*(chooser: PFileChooser): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_preview_uri".}
-proc set_extra_widget*(chooser: PFileChooser, extra_widget: PWidget){.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_extra_widget".}
-proc get_extra_widget*(chooser: PFileChooser): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_extra_widget".}
-proc add_filter*(chooser: PFileChooser, filter: PFileFilter){.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_add_filter".}
-proc remove_filter*(chooser: PFileChooser, filter: PFileFilter){.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_remove_filter".}
-proc list_filters*(chooser: PFileChooser): PGSList{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_list_filters".}
-proc set_filter*(chooser: PFileChooser, filter: PFileFilter){.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_filter".}
-proc get_filter*(chooser: PFileChooser): PFileFilter{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_filter".}
-proc add_shortcut_folder*(chooser: PFileChooser, folder: cstring, 
-                                       error: pointer): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_add_shortcut_folder".}
-proc remove_shortcut_folder*(chooser: PFileChooser, 
-    folder: cstring, error: pointer): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_remove_shortcut_folder".}
-proc list_shortcut_folders*(chooser: PFileChooser): PGSList{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_list_shortcut_folders".}
-proc add_shortcut_folder_uri*(chooser: PFileChooser, uri: cstring, 
-    error: pointer): gboolean{.cdecl, dynlib: lib, importc: "gtk_file_chooser_add_shortcut_folder_uri".}
-proc remove_shortcut_folder_uri*(chooser: PFileChooser, 
-    uri: cstring, error: pointer): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_remove_shortcut_folder_uri".}
-proc list_shortcut_folder_uris*(chooser: PFileChooser): PGSList{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_list_shortcut_folder_uris".}
-proc set_do_overwrite_confirmation*(chooser: PFileChooser, 
-    do_overwrite_confirmation: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_set_do_overwrite_confirmation".}
-
-proc get_realized*(w: PWidget): gboolean {.cdecl, dynlib: lib,
-                                           importc: "gtk_widget_get_realized".}
-
-proc set_skip_taskbar_hint*(window: PWindow, setting: gboolean){.cdecl,
-  dynlib: lib, importc: "gtk_window_set_skip_taskbar_hint".}
-
-type
-  TTooltip* {.pure, final.} = object
-  PTooltip* = ptr TTooltip
-
-proc set_tooltip_text*(w: PWidget, t: cstring){.cdecl,
-  dynlib: lib, importc: "gtk_widget_set_tooltip_text".}
-
-proc get_tooltip_text*(w: PWidget): cstring{.cdecl,
-  dynlib: lib, importc: "gtk_widget_get_tooltip_text".}
-
-proc set_tooltip_markup*(w: PWidget, m: cstring) {.cdecl, dynlib: lib,
-  importc: "gtk_widget_set_tooltip_markup".}
-
-proc get_tooltip_markup*(w: PWidget): cstring {.cdecl, dynlib: lib,
-  importc: "gtk_widget_get_tooltip_markup".}
-
-proc set_tooltip_column*(w: PTreeview, column: gint){.cdecl,
-  dynlib: lib, importc: "gtk_tree_view_set_tooltip_column".}
-
-proc trigger_tooltip_query*(widg: PWidget){.cdecl, dynlib: lib, 
-  importc: "gtk_widget_trigger_tooltip_query".}
-
-proc trigger_tooltip_query*(widg: PTooltip){.cdecl, dynlib: lib, 
-  importc: "gtk_tooltip_trigger_tooltip_query".}
-
-proc set_has_tooltip*(widget: PWidget, b: gboolean){.cdecl, dynlib: lib, 
-  importc: "gtk_widget_set_has_tooltip".}
-
-proc get_has_tooltip*(widget: PWidget): gboolean{.cdecl, dynlib: lib, 
-  importc: "gtk_widget_get_has_tooltip".}
-
-proc set_markup*(tp: PTooltip, mk: cstring){.cdecl, dynlib: lib, 
-  importc: "gtk_tooltip_set_markup".}
-
-proc set_visible_window*(evBox: PEventBox, v: gboolean){.cdecl, dynlib: lib,
-  importc: "gtk_event_box_set_visible_window".}
-
-proc get_vadjustment*(scrolled_window: PTextView): PAdjustment{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_get_vadjustment".}
-
-type
-  TInfoBar* = object of THBox
-  PInfoBar* = ptr TInfoBar
-
-proc info_bar_new*(): PInfoBar{.cdecl, dynlib: lib, importc: "gtk_info_bar_new".}
-proc info_bar_new_with_buttons*(first_button_text: cstring): PInfoBar {.cdecl, dynlib:lib,
-    varargs, importc: "gtk_info_bar_new_with_buttons".}
-proc add_action_widget*(infobar: PInfoBar, child: PWidget, respID: gint) {.
-    cdecl, dynlib: lib, importc: "gtk_info_bar_add_action_widget".}
-proc add_button*(infobar: PInfoBar, btnText: cstring, respID: gint): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_info_bar_add_button".}
-proc set_response_sensitive*(infobar: PInfoBar, respID: gint, setting: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_info_bar_set_response_sensitive".}
-proc set_default_response*(infobar: PInfoBar, respID: gint){.cdecl,
-    dynlib: lib, importc: "gtk_info_bar_set_default_response".}
-proc response*(infobar: PInfoBar, respID: gint){.cdecl, dynlib: lib,
-    importc: "gtk_info_bar_response".}
-proc set_message_type*(infobar: PInfoBar, messageType: TMessageType){.cdecl,
-    dynlib: lib, importc: "gtk_info_bar_set_message_type".}
-proc get_message_type*(infobar: PInfoBar): TMessageType{.cdecl, dynlib: lib,
-    importc: "gtk_info_bar_get_message_type".}
-proc get_action_area*(infobar: PInfoBar): PWidget{.cdecl, dynlib: lib,
-    importc: "gtk_info_bar_get_action_area".}
-proc get_content_area*(infobar: PInfoBar): PContainer{.cdecl, dynlib: lib,
-    importc: "gtk_info_bar_get_content_area".}
-
-type
-  TComboBox* = object of TWidget
-  PComboBox* = ptr TComboBox
-
-proc comboBoxNew*(): PComboBox{.cdecl, importc: "gtk_combo_box_new", dynlib: lib.}
-proc comboBox_new_with_entry*(): PComboBox{.cdecl, 
-                                       importc: "gtk_combo_box_new_with_entry", 
-                                       dynlib: lib.}
-proc comboBox_new_with_model*(model: PTreeModel): PComboBox{.cdecl, 
-    importc: "gtk_combo_box_new_with_model", dynlib: lib.}
-proc comboBox_new_with_model_and_entry*(model: PTreeModel): PComboBox{.cdecl, 
-    importc: "gtk_combo_box_new_with_model_and_entry", dynlib: lib.}
-
-proc get_wrap_width*(combo_box: PComboBox): gint{.cdecl, 
-    importc: "gtk_combo_box_get_wrap_width", dynlib: lib.}
-proc set_wrap_width*(combo_box: PComboBox; width: gint){.cdecl, 
-    importc: "gtk_combo_box_set_wrap_width", dynlib: lib.}
-proc get_row_span_column*(combo_box: PComboBox): gint{.cdecl, 
-    importc: "gtk_combo_box_get_row_span_column", dynlib: lib.}
-proc set_row_span_column*(combo_box: PComboBox; row_span: gint){.cdecl, 
-    importc: "gtk_combo_box_set_row_span_column", dynlib: lib.}
-proc get_column_span_column*(combo_box: PComboBox): gint{.cdecl, 
-    importc: "gtk_combo_box_get_column_span_column", dynlib: lib.}
-proc set_column_span_column*(combo_box: PComboBox; column_span: gint){.
-    cdecl, importc: "gtk_combo_box_set_column_span_column", dynlib: lib.}
-proc get_add_tearoffs*(combo_box: PComboBox): gboolean{.cdecl, 
-    importc: "gtk_combo_box_get_add_tearoffs", dynlib: lib.}
-proc set_add_tearoffs*(combo_box: PComboBox; add_tearoffs: gboolean){.
-    cdecl, importc: "gtk_combo_box_set_add_tearoffs", dynlib: lib.}
-proc get_title*(combo_box: PComboBox): ptr gchar{.cdecl, 
-    importc: "gtk_combo_box_get_title", dynlib: lib.}
-proc set_title*(combo_box: PComboBox; title: ptr gchar){.cdecl, 
-    importc: "gtk_combo_box_set_title", dynlib: lib.}
-proc get_focus_on_click*(combo: PComboBox): gboolean{.cdecl, 
-    importc: "gtk_combo_box_get_focus_on_click", dynlib: lib.}
-proc set_focus_on_click*(combo: PComboBox; focus_on_click: gboolean){.
-    cdecl, importc: "gtk_combo_box_set_focus_on_click", dynlib: lib.}
-
-proc get_active*(combo_box: PComboBox): gint{.cdecl, 
-    importc: "gtk_combo_box_get_active", dynlib: lib.}
-proc set_active*(combo_box: PComboBox; index: gint){.cdecl, 
-    importc: "gtk_combo_box_set_active", dynlib: lib.}
-proc get_active_iter*(combo_box: PComboBox; iter: PTreeIter): gboolean{.
-    cdecl, importc: "gtk_combo_box_get_active_iter", dynlib: lib.}
-proc set_active_iter*(combo_box: PComboBox; iter: PTreeIter){.cdecl, 
-    importc: "gtk_combo_box_set_active_iter", dynlib: lib.}
-
-proc set_model*(combo_box: PComboBox; model: PTreeModel){.cdecl, 
-    importc: "gtk_combo_box_set_model", dynlib: lib.}
-proc get_model*(combo_box: PComboBox): PTreeModel{.cdecl, 
-    importc: "gtk_combo_box_get_model", dynlib: lib.}
-discard """proc get_row_separator_func*(combo_box: PComboBox): GtkTreeViewRowSeparatorFunc{.
-    cdecl, importc: "gtk_combo_box_get_row_separator_func", dynlib: lib.}
-proc set_row_separator_func*(combo_box: PComboBox; 
-                             func: GtkTreeViewRowSeparatorFunc; data: gpointer; 
-                             destroy: GDestroyNotify){.cdecl, 
-    importc: "gtk_combo_box_set_row_separator_func", dynlib: lib.}"""
-discard """proc set_button_sensitivity*(combo_box: PComboBox; 
-                             sensitivity: GtkSensitivityType){.cdecl, 
-    importc: "gtk_combo_box_set_button_sensitivity", dynlib: lib.}
-proc get_button_sensitivity*(combo_box: PComboBox): GtkSensitivityType{.
-    cdecl, importc: "gtk_combo_box_get_button_sensitivity", dynlib: lib.}"""
-proc get_has_entry*(combo_box: PComboBox): gboolean{.cdecl, 
-    importc: "gtk_combo_box_get_has_entry", dynlib: lib.}
-proc set_entry_text_column*(combo_box: PComboBox; text_column: gint){.
-    cdecl, importc: "gtk_combo_box_set_entry_text_column", dynlib: lib.}
-proc get_entry_text_column*(combo_box: PComboBox): gint{.cdecl, 
-    importc: "gtk_combo_box_get_entry_text_column", dynlib: lib.}
-
-proc popup*(combo_box: PComboBox){.cdecl, importc: "gtk_combo_box_popup", 
-    dynlib: lib.}
-proc popdown*(combo_box: PComboBox){.cdecl, 
-    importc: "gtk_combo_box_popdown", dynlib: lib.}
-discard """proc get_popup_accessible*(combo_box: PComboBox): ptr AtkObject{.cdecl, 
-    importc: "gtk_combo_box_get_popup_accessible", dynlib: lib.}"""
-
-type
-  TComboBoxText* = object of TComboBox
-  PComboBoxText* = ptr TComboBoxText
-
-proc combo_box_text_new*(): PComboBoxText{.cdecl, importc: "gtk_combo_box_text_new", 
-                                 dynlib: lib.}
-proc combo_box_text_new_with_entry*(): PComboBoxText{.cdecl, 
-    importc: "gtk_combo_box_text_new_with_entry", dynlib: lib.}
-proc append_text*(combo_box: PComboBoxText; text: cstring){.cdecl, 
-    importc: "gtk_combo_box_text_append_text", dynlib: lib.}
-proc insert_text*(combo_box: PComboBoxText; position: gint; 
-                       text: cstring){.cdecl, 
-    importc: "gtk_combo_box_text_insert_text", dynlib: lib.}
-proc prepend_text*(combo_box: PComboBoxText; text: cstring){.cdecl, 
-    importc: "gtk_combo_box_text_prepend_text", dynlib: lib.}
-proc remove*(combo_box: PComboBoxText; position: gint){.cdecl, 
-    importc: "gtk_combo_box_text_remove", dynlib: lib.}
-proc get_active_text*(combo_box: PComboBoxText): cstring{.cdecl, 
-    importc: "gtk_combo_box_text_get_active_text", dynlib: lib.}
-proc is_active*(win: PWindow): gboolean{.cdecl,
-    importc: "gtk_window_is_active", dynlib: lib.}
-proc has_toplevel_focus*(win: PWindow): gboolean{.cdecl,
-    importc: "gtk_window_has_toplevel_focus", dynlib: lib.}
-
-proc nimrod_init*() =
-  var
-    cmdLine{.importc: "cmdLine".}: array[0..255, cstring]
-    cmdCount{.importc: "cmdCount".}: cint
-  init(addr(cmdLine), addr(cmdCount))
diff --git a/lib/wrappers/gtk/gtkglext.nim b/lib/wrappers/gtk/gtkglext.nim
deleted file mode 100644
index b3f5647bd..000000000
--- a/lib/wrappers/gtk/gtkglext.nim
+++ /dev/null
@@ -1,53 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  Glib2, Gdk2, gtk2, GdkGLExt
-
-when defined(windows):
-  const 
-    GLExtLib* = "libgtkglext-win32-1.0-0.dll" 
-elif defined(macosx):
-  const
-    GLExtLib* = "libgtkglext-x11-1.0.dylib"
-else:
-  const
-    GLExtLib* = "libgtkglext-x11-1.0.so"
-
-const 
-  HEADER_GTKGLEXT_MAJOR_VERSION* = 1
-  HEADER_GTKGLEXT_MINOR_VERSION* = 0
-  HEADER_GTKGLEXT_MICRO_VERSION* = 6
-  HEADER_GTKGLEXT_INTERFACE_AGE* = 4
-  HEADER_GTKGLEXT_BINARY_AGE* = 6
-
-proc gl_parse_args*(argc: ptr int32, argv: PPPChar): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gtk_gl_parse_args".}
-proc gl_init_check*(argc: ptr int32, argv: PPPChar): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gtk_gl_init_check".}
-proc gl_init*(argc: ptr int32, argv: PPPChar){.cdecl, dynlib: GLExtLib, 
-    importc: "gtk_gl_init".}
-proc set_gl_capability*(widget: PWidget, glconfig: PGLConfig, 
-                               share_list: PGLContext, direct: gboolean, 
-                               render_type: int): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gtk_widget_set_gl_capability".}
-proc is_gl_capable*(widget: PWidget): gboolean{.cdecl, dynlib: GLExtLib, 
-    importc: "gtk_widget_is_gl_capable".}
-proc get_gl_config*(widget: PWidget): PGLConfig{.cdecl, 
-    dynlib: GLExtLib, importc: "gtk_widget_get_gl_config".}
-proc create_gl_context*(widget: PWidget, share_list: PGLContext, 
-                               direct: gboolean, render_type: int): PGLContext{.
-    cdecl, dynlib: GLExtLib, importc: "gtk_widget_create_gl_context".}
-proc get_gl_context*(widget: PWidget): PGLContext{.cdecl, 
-    dynlib: GLExtLib, importc: "gtk_widget_get_gl_context".}
-proc get_gl_window*(widget: PWidget): PGLWindow{.cdecl, 
-    dynlib: GLExtLib, importc: "gtk_widget_get_gl_window".}
-
-proc HEADER_GTKGLEXT_CHECK_VERSION*(major, minor, micro: guint): bool = 
-  result = (HEADER_GTKGLEXT_MAJOR_VERSION > major) or
-      ((HEADER_GTKGLEXT_MAJOR_VERSION == major) and
-      (HEADER_GTKGLEXT_MINOR_VERSION > minor)) or
-      ((HEADER_GTKGLEXT_MAJOR_VERSION == major) and
-      (HEADER_GTKGLEXT_MINOR_VERSION == minor) and
-      (HEADER_GTKGLEXT_MICRO_VERSION >= micro))
-
-proc get_gl_drawable*(widget: PWidget): PGLDrawable = 
-  result = GL_DRAWABLE(get_gl_window(widget))
diff --git a/lib/wrappers/gtk/gtkhtml.nim b/lib/wrappers/gtk/gtkhtml.nim
deleted file mode 100644
index 92496c03b..000000000
--- a/lib/wrappers/gtk/gtkhtml.nim
+++ /dev/null
@@ -1,523 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  gtk2, glib2, atk, pango, gdk2pixbuf, gdk2
-
-when defined(windows): 
-  const 
-    htmllib = "libgtkhtml-win32-2.0-0.dll"
-elif defined(macosx): 
-  const 
-    htmllib = "libgtkhtml-2.dylib"
-else: 
-  const 
-    htmllib = "libgtkhtml-2.so"
-const 
-  DOM_UNSPECIFIED_EVENT_TYPE_ERR* = 0
-  DOM_INDEX_SIZE_ERR* = 1
-  DOM_DOMSTRING_SIZE_ERR* = 2
-  DOM_HIERARCHY_REQUEST_ERR* = 3
-  DOM_WRONG_DOCUMENT_ERR* = 4
-  DOM_INVALID_CHARACTER_ERR* = 5
-  DOM_NO_DATA_ALLOWED_ERR* = 6
-  DOM_NO_MODIFICATION_ALLOWED_ERR* = 7
-  DOM_NOT_FOUND_ERR* = 8
-  DOM_NOT_SUPPORTED_ERR* = 9
-  DOM_INUSE_ATTRIBUTE_ERR* = 10
-  DOM_INVALID_STATE_ERR* = 11
-  DOM_SYNTAX_ERR* = 12
-  DOM_INVALID_MODIFICATION_ERR* = 13
-  DOM_NAMESPACE_ERR* = 14
-  DOM_INVALID_ACCESS_ERR* = 15
-  DOM_NO_EXCEPTION* = 255
-  DOM_ELEMENT_NODE* = 1
-  DOM_ATTRIBUTE_NODE* = 2
-  DOM_TEXT_NODE* = 3
-  DOM_CDATA_SECTION_NODE* = 4
-  DOM_ENTITY_REFERENCE_NODE* = 5
-  DOM_ENTITY_NODE* = 6
-  DOM_PROCESSING_INSTRUCTION_NODE* = 7
-  DOM_COMMENT_NODE* = 8
-  DOM_DOCUMENT_NODE* = 9
-  DOM_DOCUMENT_TYPE_NODE* = 10
-  DOM_DOCUMENT_FRAGMENT_NODE* = 11
-  DOM_NOTATION_NODE* = 12
-  bm_HtmlFontSpecification_weight* = 0x0000000F
-  bp_HtmlFontSpecification_weight* = 0
-  bm_HtmlFontSpecification_style* = 0x00000030
-  bp_HtmlFontSpecification_style* = 4
-  bm_HtmlFontSpecification_variant* = 0x000000C0
-  bp_HtmlFontSpecification_variant* = 6
-  bm_HtmlFontSpecification_stretch* = 0x00000F00
-  bp_HtmlFontSpecification_stretch* = 8
-  bm_HtmlFontSpecification_decoration* = 0x00007000
-  bp_HtmlFontSpecification_decoration* = 12
-
-type 
-  TDomString* = gchar
-  PDomString* = cstring
-  TDomBoolean* = gboolean
-  TDomException* = gushort
-  TDomTimeStamp* = guint64
-  PDomNode* = ptr TDomNode
-  TDomNode* = object of TGObject
-    xmlnode*: pointer
-    style*: pointer
-
-  PDomException* = ptr TDomException
-
-  PDomNodeClass* = ptr TDomNodeClass
-  TDomNodeClass* = object of TGObjectClass
-    `get_nodeName`*: proc (node: PDomNode): PDomString{.cdecl.}
-    `get_nodeValue`*: proc (node: PDomNode, exc: PDomException): PDomString{.
-        cdecl.}
-    `set_nodeValue`*: proc (node: PDomNode, value: PDomString, 
-                            exc: PDomException): PDomString{.cdecl.}
-
-  PDomDocument* = ptr TDomDocument
-  TDomDocument*{.final, pure.} = object 
-    parent*: PDomNode
-    iterators*: PGSList
-
-  PDomDocumentClass* = ptr TDomDocumentClass
-  TDomDocumentClass*{.final, pure.} = object 
-    parent_class*: PDomNodeClass
-
-  PHtmlFocusIterator* = ptr THtmlFocusIterator
-  THtmlFocusIterator* = object of TGObject
-    document*: PDomDocument
-    current_node*: PDomNode
-
-  PHtmlFocusIteratorClass* = ptr THtmlFocusIteratorClass
-  THtmlFocusIteratorClass* = object of TGObjectClass
-  THtmlParserType* = enum 
-    HTML_PARSER_TYPE_HTML, HTML_PARSER_TYPE_XML
-  PHtmlParser* = ptr THtmlParser
-  THtmlParser* = object of TGObject
-    parser_type*: THtmlParserType
-    document*: PHtmlDocument
-    stream*: PHtmlStream
-    xmlctxt*: pointer
-    res*: int32
-    chars*: array[0..9, char]
-    blocking*: gboolean
-    blocking_node*: PDomNode
-
-  PHtmlParserClass* = ptr THtmlParserClass
-  THtmlParserClass* = object of gtk2.TObjectClass
-    done_parsing*: proc (parser: PHtmlParser){.cdecl.}
-    new_node*: proc (parser: PHtmlParser, node: PDomNode)
-    parsed_document_node*: proc (parser: PHtmlParser, document: PDomDocument)
-
-  PHtmlStream* = ptr THtmlStream
-  THtmlStreamCloseFunc* = proc (stream: PHtmlStream, user_data: gpointer){.cdecl.}
-  THtmlStreamWriteFunc* = proc (stream: PHtmlStream, buffer: cstring, 
-                                size: guint, user_data: gpointer){.cdecl.}
-  THtmlStreamCancelFunc* = proc (stream: PHtmlStream, user_data: gpointer, 
-                                 cancel_data: gpointer){.cdecl.}
-  THtmlStream* = object of TGObject
-    write_func*: THtmlStreamWriteFunc
-    close_func*: THtmlStreamCloseFunc
-    cancel_func*: THtmlStreamCancelFunc
-    user_data*: gpointer
-    cancel_data*: gpointer
-    written*: gint
-    mime_type*: cstring
-
-  PHtmlStreamClass* = ptr THtmlStreamClass
-  THtmlStreamClass* = object of TGObjectClass
-  THtmlStreamBufferCloseFunc* = proc (str: cstring, len: gint, 
-                                      user_data: gpointer){.cdecl.}
-  PHtmlContext* = ptr THtmlContext
-  THtmlContext* = object of TGObject
-    documents*: PGSList
-    standard_font*: PHtmlFontSpecification
-    fixed_font*: PHtmlFontSpecification
-    debug_painting*: gboolean
-    
-  PHtmlFontSpecification* = ptr THtmlFontSpecification
-  THtmlFontSpecification {.final, pure.} = object
-
-  PHtmlContextClass* = ptr THtmlContextClass
-  THtmlContextClass* = object of TGObjectClass
-  THtmlDocumentState* = enum 
-    HTML_DOCUMENT_STATE_DONE, HTML_DOCUMENT_STATE_PARSING
-  PHtmlDocument* = ptr THtmlDocument
-  THtmlDocument* = object of TGObject
-    stylesheets*: PGSList
-    current_stream*: PHtmlStream
-    state*: THtmlDocumentState
-
-  PHtmlDocumentClass* = ptr THtmlDocumentClass
-  THtmlDocumentClass* = object of TGObjectClass
-    request_url*: proc (document: PHtmlDocument, url: cstring, 
-                        stream: PHtmlStream){.cdecl.}
-    link_clicked*: proc (document: PHtmlDocument, url: cstring){.cdecl.}
-    set_base*: proc (document: PHtmlDocument, url: cstring){.cdecl.}
-    title_changed*: proc (document: PHtmlDocument, new_title: cstring){.cdecl.}
-    submit*: proc (document: PHtmlDocument, `method`: cstring, url: cstring, 
-                   encoding: cstring){.cdecl.}
-
-  PHtmlView* = ptr THtmlView
-  THtmlView* = object of gtk2.TLayout
-    document*: PHtmlDocument
-    node_table*: PGHashTable
-    relayout_idle_id*: guint
-    relayout_timeout_id*: guint
-    mouse_down_x*: gint
-    mouse_down_y*: gint
-    mouse_detail*: gint
-    sel_start_ypos*: gint
-    sel_start_index*: gint
-    sel_end_ypos*: gint
-    sel_end_index*: gint
-    sel_flag*: gboolean
-    sel_backwards*: gboolean
-    sel_start_found*: gboolean
-    sel_list*: PGSList
-    jump_to_anchor*: cstring
-    magnification*: gdouble
-    magnification_modified*: gboolean
-    on_url*: gboolean
-
-  PHtmlViewClass* = ptr THtmlViewClass
-  THtmlViewClass* = object of gtk2.TLayoutClass
-    move_cursor*: proc (html_view: PHtmlView, step: TMovementStep, count: gint, 
-                        extend_selection: gboolean){.cdecl.}
-    on_url*: proc (html_view: PHtmlView, url: cstring)
-    activate*: proc (html_view: PHtmlView)
-    move_focus_out*: proc (html_view: PHtmlView, direction: TDirectionType)
-    
-  PDomNodeList* = ptr TDomNodeList
-  TDomNodeList {.pure, final.} = object
-  
-  PDomNamedNodeMap* = ptr TDomNamedNodeMap
-  TDomNamedNodeMap {.pure, final.} = object
-  
-  PDomDocumentType* = ptr TDomDocumentType
-  TDomDocumentType {.pure, final.} = object
-  
-  PDomElement* = ptr TDomElement
-  TDomElement = object of TDomNode
-  
-  PDomText* = ptr TDomText
-  TDomText = object of TDomNode
-
-  PDomComment* = ptr TDomComment
-  TDomComment = object of TDomNode
- 
-  THtmlBox {.pure, final.} = object
-  PHtmlBox* = ptr THtmlBox
-
-
-proc DOM_TYPE_NODE*(): GType
-proc DOM_NODE*(theobject: pointer): PDomNode
-proc DOM_NODE_CLASS*(klass: pointer): PDomNodeClass
-proc DOM_IS_NODE*(theobject: pointer): bool
-proc DOM_IS_NODE_CLASS*(klass: pointer): bool
-proc DOM_NODE_GET_CLASS*(obj: pointer): int32
-proc dom_node_get_type*(): GType{.cdecl, dynlib: htmllib, 
-                                  importc: "dom_node_get_type".}
-proc dom_Node_mkref*(node: pointer): PDomNode{.cdecl, dynlib: htmllib, 
-    importc: "dom_Node_mkref".}
-proc get_childNodes*(node: PDomNode): PDomNodeList{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_childNodes".}
-proc removeChild*(node: PDomNode, oldChild: PDomNode, 
-                           exc: PDomException): PDomNode{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node_removeChild".}
-proc get_nodeValue*(node: PDomNode, exc: PDomException): PDomString{.
-    cdecl, dynlib: htmllib, importc: "dom_Node__get_nodeValue".}
-proc get_firstChild*(node: PDomNode): PDomNode{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_firstChild".}
-proc get_nodeName*(node: PDomNode): PDomString{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_nodeName".}
-proc get_attributes*(node: PDomNode): PDomNamedNodeMap{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_attributes".}
-proc get_doctype*(doc: PDomDocument): PDomDocumentType{.cdecl, 
-    dynlib: htmllib, importc: "dom_Document__get_doctype".}
-proc hasChildNodes*(node: PDomNode): bool{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node_hasChildNodes".}
-proc get_parentNode*(node: PDomNode): PDomNode{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_parentNode".}
-proc get_nextSibling*(node: PDomNode): PDomNode{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_nextSibling".}
-proc get_nodeType*(node: PDomNode): gushort{.cdecl, dynlib: htmllib, 
-    importc: "dom_Node__get_nodeType".}
-
-proc cloneNode*(node: PDomNode, deep: bool): PDomNode{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node_cloneNode".}
-proc appendChild*(node: PDomNode, newChild: PDomNode, 
-                           exc: PDomException): PDomNode{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node_appendChild".}
-proc get_localName*(node: PDomNode): PDomString{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_localName".}
-proc get_namespaceURI*(node: PDomNode): PDomString{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_namespaceURI".}
-proc get_previousSibling*(node: PDomNode): PDomNode{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_previousSibling".}
-proc get_lastChild*(node: PDomNode): PDomNode{.cdecl, dynlib: htmllib, 
-    importc: "dom_Node__get_lastChild".}
-proc set_nodeValue*(node: PDomNode, value: PDomString, 
-                              exc: PDomException){.cdecl, dynlib: htmllib, 
-    importc: "dom_Node__set_nodeValue".}
-proc get_ownerDocument*(node: PDomNode): PDomDocument{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_ownerDocument".}
-proc hasAttributes*(node: PDomNode): gboolean{.cdecl, dynlib: htmllib, 
-    importc: "dom_Node_hasAttributes".}
-proc DOM_TYPE_DOCUMENT*(): GType
-proc DOM_DOCUMENT*(theobject: pointer): PDomDocument
-proc DOM_DOCUMENT_CLASS*(klass: pointer): PDomDocumentClass
-proc DOM_IS_DOCUMENT*(theobject: pointer): bool
-proc DOM_IS_DOCUMENT_CLASS*(klass: pointer): bool
-proc DOM_DOCUMENT_GET_CLASS*(obj: pointer): PDomDocumentClass
-proc dom_document_get_type*(): GType
-proc get_documentElement*(doc: PDomDocument): PDomElement
-proc createElement*(doc: PDomDocument, tagName: PDomString): PDomElement
-proc createTextNode*(doc: PDomDocument, data: PDomString): PDomText
-proc createComment*(doc: PDomDocument, data: PDomString): PDomComment
-proc importNode*(doc: PDomDocument, importedNode: PDomNode, 
-                              deep: bool, exc: PDomException): PDomNode
-proc HTML_TYPE_FOCUS_ITERATOR*(): GType
-proc HTML_FOCUS_ITERATOR*(theobject: pointer): PHtmlFocusIterator
-proc HTML_FOCUS_ITERATOR_CLASS*(klass: pointer): PHtmlFocusIteratorClass
-proc HTML_IS_FOCUS_ITERATOR*(theobject: pointer): bool
-proc HTML_IS_FOCUS_ITERATOR_CLASS*(klass: pointer): bool
-proc HTML_FOCUS_ITERATOR_GET_CLASS*(obj: pointer): PHtmlFocusIteratorClass
-proc html_focus_iterator_next_element*(document: PDomDocument, 
-                                       element: PDomElement): PDomElement{.
-    cdecl, dynlib: htmllib, importc: "html_focus_iterator_next_element".}
-proc html_focus_iterator_prev_element*(document: PDomDocument, 
-                                       element: PDomElement): PDomElement{.
-    cdecl, dynlib: htmllib, importc: "html_focus_iterator_prev_element".}
-proc HTML_PARSER_TYPE*(): GType
-proc HTML_PARSER*(obj: pointer): PHtmlParser
-proc HTML_PARSER_CLASS*(klass: pointer): PHtmlParserClass
-proc HTML_IS_PARSER*(obj: pointer): bool
-proc html_parser_get_type*(): GType
-proc parser_new*(document: PHtmlDocument, parser_type: THtmlParserType): PHtmlParser
-proc HTML_TYPE_STREAM*(): GType
-proc HTML_STREAM*(obj: pointer): PHtmlStream
-proc HTML_STREAM_CLASS*(klass: pointer): PHtmlStreamClass
-proc HTML_IS_STREAM*(obj: pointer): bool
-proc HTML_IS_STREAM_CLASS*(klass: pointer): bool
-proc HTML_STREAM_GET_CLASS*(obj: pointer): PHtmlStreamClass
-proc html_stream_get_type*(): GType{.cdecl, dynlib: htmllib, 
-                                     importc: "html_stream_get_type".}
-proc html_stream_new*(write_func: THtmlStreamWriteFunc, 
-                      close_func: THtmlStreamCloseFunc, user_data: gpointer): PHtmlStream{.
-    cdecl, dynlib: htmllib, importc: "html_stream_new".}
-proc write*(stream: PHtmlStream, buffer: cstring, size: guint){.
-    cdecl, dynlib: htmllib, importc: "html_stream_write".}
-proc close*(stream: PHtmlStream){.cdecl, dynlib: htmllib, 
-    importc: "html_stream_close".}
-proc destroy*(stream: PHtmlStream){.cdecl, dynlib: htmllib, 
-    importc: "html_stream_destroy".}
-proc get_written*(stream: PHtmlStream): gint{.cdecl, 
-    dynlib: htmllib, importc: "html_stream_get_written".}
-proc cancel*(stream: PHtmlStream){.cdecl, dynlib: htmllib, 
-    importc: "html_stream_cancel".}
-proc set_cancel_func*(stream: PHtmlStream, 
-                                  abort_func: THtmlStreamCancelFunc, 
-                                  cancel_data: gpointer){.cdecl, 
-    dynlib: htmllib, importc: "html_stream_set_cancel_func".}
-proc get_mime_type*(stream: PHtmlStream): cstring{.cdecl, 
-    dynlib: htmllib, importc: "html_stream_get_mime_type".}
-proc set_mime_type*(stream: PHtmlStream, mime_type: cstring){.cdecl, 
-    dynlib: htmllib, importc: "html_stream_set_mime_type".}
-proc html_stream_buffer_new*(close_func: THtmlStreamBufferCloseFunc, 
-                             user_data: gpointer): PHtmlStream{.cdecl, 
-    dynlib: htmllib, importc: "html_stream_buffer_new".}
-proc event_mouse_move*(view: PHtmlView, event: Gdk2.PEventMotion){.cdecl, 
-    dynlib: htmllib, importc: "html_event_mouse_move".}
-proc event_button_press*(view: PHtmlView, button: Gdk2.PEventButton){.cdecl, 
-    dynlib: htmllib, importc: "html_event_button_press".}
-proc event_button_release*(view: PHtmlView, event: Gdk2.PEventButton){.cdecl, 
-    dynlib: htmllib, importc: "html_event_button_release".}
-proc event_activate*(view: PHtmlView){.cdecl, dynlib: htmllib, 
-    importc: "html_event_activate".}
-proc event_key_press*(view: PHtmlView, event: Gdk2.PEventKey): gboolean{.
-    cdecl, dynlib: htmllib, importc: "html_event_key_press".}
-proc event_find_root_box*(self: PHtmlBox, x: gint, y: gint): PHtmlBox{.
-    cdecl, dynlib: htmllib, importc: "html_event_find_root_box".}
-proc selection_start*(view: PHtmlView, event: Gdk2.PEventButton){.cdecl, 
-    dynlib: htmllib, importc: "html_selection_start".}
-proc selection_end*(view: PHtmlView, event: Gdk2.PEventButton){.cdecl, 
-    dynlib: htmllib, importc: "html_selection_end".}
-proc selection_update*(view: PHtmlView, event: Gdk2.PEventMotion){.cdecl, 
-    dynlib: htmllib, importc: "html_selection_update".}
-proc selection_clear*(view: PHtmlView){.cdecl, dynlib: htmllib, 
-    importc: "html_selection_clear".}
-proc selection_set*(view: PHtmlView, start: PDomNode, offset: int32, 
-                         len: int32){.cdecl, dynlib: htmllib, 
-                                      importc: "html_selection_set".}
-proc HTML_CONTEXT_TYPE*(): GType
-proc HTML_CONTEXT*(obj: pointer): PHtmlContext
-proc HTML_CONTEXT_CLASS*(klass: pointer): PHtmlContextClass
-proc HTML_IS_CONTEXT*(obj: pointer): bool
-proc HTML_IS_CONTEXT_CLASS*(klass: pointer): bool
-proc html_context_get_type*(): GType
-proc html_context_get*(): PHtmlContext
-proc HTML_TYPE_DOCUMENT*(): GType
-proc HTML_DOCUMENT*(obj: pointer): PHtmlDocument
-proc HTML_DOCUMENT_CLASS*(klass: pointer): PHtmlDocumentClass
-proc HTML_IS_DOCUMENT*(obj: pointer): bool
-proc html_document_get_type*(): GType{.cdecl, dynlib: htmllib, 
-                                       importc: "html_document_get_type".}
-proc html_document_new*(): PHtmlDocument{.cdecl, dynlib: htmllib, 
-    importc: "html_document_new".}
-proc open_stream*(document: PHtmlDocument, mime_type: cstring): gboolean{.
-    cdecl, dynlib: htmllib, importc: "html_document_open_stream".}
-proc write_stream*(document: PHtmlDocument, buffer: cstring, 
-                                 len: gint){.cdecl, dynlib: htmllib, 
-    importc: "html_document_write_stream".}
-proc close_stream*(document: PHtmlDocument){.cdecl, 
-    dynlib: htmllib, importc: "html_document_close_stream".}
-proc clear*(document: PHtmlDocument){.cdecl, dynlib: htmllib, 
-    importc: "html_document_clear".}
-proc HTML_TYPE_VIEW*(): GType
-proc HTML_VIEW*(obj: pointer): PHtmlView
-proc HTML_VIEW_CLASS*(klass: pointer): PHtmlViewClass
-proc HTML_IS_VIEW*(obj: pointer): bool
-proc html_view_get_type*(): GType{.cdecl, dynlib: htmllib, 
-                                   importc: "html_view_get_type".}
-proc html_view_new*(): PWidget{.cdecl, dynlib: htmllib, importc: "html_view_new".}
-proc set_document*(view: PHtmlView, document: PHtmlDocument){.cdecl, 
-    dynlib: htmllib, importc: "html_view_set_document".}
-proc jump_to_anchor*(view: PHtmlView, anchor: cstring){.cdecl, 
-    dynlib: htmllib, importc: "html_view_jump_to_anchor".}
-proc get_magnification*(view: PHtmlView): gdouble{.cdecl, 
-    dynlib: htmllib, importc: "html_view_get_magnification".}
-proc set_magnification*(view: PHtmlView, magnification: gdouble){.
-    cdecl, dynlib: htmllib, importc: "html_view_set_magnification".}
-proc zoom_in*(view: PHtmlView){.cdecl, dynlib: htmllib, 
-    importc: "html_view_zoom_in".}
-proc zoom_out*(view: PHtmlView){.cdecl, dynlib: htmllib, 
-    importc: "html_view_zoom_out".}
-proc zoom_reset*(view: PHtmlView){.cdecl, dynlib: htmllib, 
-    importc: "html_view_zoom_reset".}
-
-proc DOM_TYPE_NODE*(): GType = 
-  result = dom_node_get_type()
-
-proc DOM_NODE*(theobject: pointer): PDomNode = 
-  result = G_TYPE_CHECK_INSTANCE_CAST(theobject, DOM_TYPE_NODE())
-
-proc DOM_NODE_CLASS*(klass: pointer): PDomNodeClass = 
-  result = G_TYPE_CHECK_CLASS_CAST(klass, DOM_TYPE_NODE(), TDomNodeClass)
-
-proc DOM_IS_NODE*(theobject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(theobject, DOM_TYPE_NODE())
-
-proc DOM_IS_NODE_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, DOM_TYPE_NODE())
-
-proc DOM_NODE_GET_CLASS*(obj: pointer): PDomNodeClass = 
-  result = G_TYPE_INSTANCE_GET_CLASS(obj, DOM_TYPE_NODE(), TDomNodeClass)
-
-proc DOM_TYPE_DOCUMENT*(): GType = 
-  result = dom_document_get_type()
-
-proc DOM_DOCUMENT*(theobject: pointer): PDomDocument = 
-  result = G_TYPE_CHECK_INSTANCE_CAST(theobject, DOM_TYPE_DOCUMENT(), 
-                                      TDomDocument)
-
-proc DOM_DOCUMENT_CLASS*(klass: pointer): PDomDocumentClass = 
-  result = G_TYPE_CHECK_CLASS_CAST(klass, DOM_TYPE_DOCUMENT(), TDomDocumentClass)
-
-proc DOM_IS_DOCUMENT*(theobject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(theobject, DOM_TYPE_DOCUMENT())
-
-proc DOM_IS_DOCUMENT_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, DOM_TYPE_DOCUMENT())
-
-proc DOM_DOCUMENT_GET_CLASS*(obj: pointer): PDomDocumentClass = 
-  result = G_TYPE_INSTANCE_GET_CLASS(obj, DOM_TYPE_DOCUMENT(), TDomDocumentClass)
-
-proc HTML_TYPE_FOCUS_ITERATOR*(): GType = 
-  result = html_focus_iterator_get_type()
-
-proc HTML_FOCUS_ITERATOR*(theobject: pointer): PHtmlFocusIterator = 
-  result = G_TYPE_CHECK_INSTANCE_CAST(theobject, HTML_TYPE_FOCUS_ITERATOR(), 
-                                      HtmlFocusIterator)
-
-proc HTML_FOCUS_ITERATOR_CLASS*(klass: pointer): PHtmlFocusIteratorClass = 
-  result = G_TYPE_CHECK_CLASS_CAST(klass, HTML_TYPE_FOCUS_ITERATOR(), 
-                                   HtmlFocusIteratorClass)
-
-proc HTML_IS_FOCUS_ITERATOR*(theobject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(theobject, HTML_TYPE_FOCUS_ITERATOR())
-
-proc HTML_IS_FOCUS_ITERATOR_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, HTML_TYPE_FOCUS_ITERATOR())
-
-proc HTML_FOCUS_ITERATOR_GET_CLASS*(obj: pointer): PHtmlFocusIteratorClass = 
-  result = G_TYPE_INSTANCE_GET_CLASS(obj, HTML_TYPE_FOCUS_ITERATOR(), 
-                                     HtmlFocusIteratorClass)
-
-proc HTML_PARSER_TYPE*(): GType = 
-  result = html_parser_get_type()
-
-proc HTML_PARSER*(obj: pointer): PHtmlParser = 
-  result = CHECK_CAST(obj, HTML_PARSER_TYPE(), THtmlParser)
-
-proc HTML_PARSER_CLASS*(klass: pointer): PHtmlParserClass = 
-  result = CHECK_CLASS_CAST(klass, HTML_PARSER_TYPE(), THtmlParserClass)
-
-proc HTML_IS_PARSER*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, HTML_PARSER_TYPE())
-
-proc HTML_TYPE_STREAM*(): GType = 
-  result = html_stream_get_type()
-
-proc HTML_STREAM*(obj: pointer): PHtmlStream = 
-  result = PHtmlStream(G_TYPE_CHECK_INSTANCE_CAST(obj, HTML_TYPE_STREAM()))
-
-proc HTML_STREAM_CLASS*(klass: pointer): PHtmlStreamClass = 
-  result = G_TYPE_CHECK_CLASS_CAST(klass, HTML_TYPE_STREAM())
-
-proc HTML_IS_STREAM*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, HTML_TYPE_STREAM())
-
-proc HTML_IS_STREAM_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, HTML_TYPE_STREAM())
-
-proc HTML_STREAM_GET_CLASS*(obj: pointer): PHtmlStreamClass = 
-  result = PHtmlStreamClass(G_TYPE_INSTANCE_GET_CLASS(obj, HTML_TYPE_STREAM()))
-
-proc HTML_CONTEXT_TYPE*(): GType = 
-  result = html_context_get_type()
-
-proc HTML_CONTEXT*(obj: pointer): PHtmlContext = 
-  result = CHECK_CAST(obj, HTML_CONTEXT_TYPE(), THtmlContext)
-
-proc HTML_CONTEXT_CLASS*(klass: pointer): PHtmlContextClass = 
-  result = CHECK_CLASS_CAST(klass, HTML_CONTEXT_TYPE(), THtmlContextClass)
-
-proc HTML_IS_CONTEXT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, HTML_CONTEXT_TYPE())
-
-proc HTML_IS_CONTEXT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, HTML_CONTEXT_TYPE())
-
-proc HTML_TYPE_DOCUMENT*(): GType = 
-  result = html_document_get_type()
-
-proc HTML_DOCUMENT*(obj: pointer): PHtmlDocument = 
-  result = PHtmlDocument(CHECK_CAST(obj, HTML_TYPE_DOCUMENT()))
-
-proc HTML_DOCUMENT_CLASS*(klass: pointer): PHtmlDocumentClass = 
-  result = CHECK_CLASS_CAST(klass, HTML_TYPE_DOCUMENT())
-
-proc HTML_IS_DOCUMENT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, HTML_TYPE_DOCUMENT())
-
-proc HTML_TYPE_VIEW*(): GType = 
-  result = html_view_get_type()
-
-proc HTML_VIEW*(obj: pointer): PHtmlView = 
-  result = PHtmlView(CHECK_CAST(obj, HTML_TYPE_VIEW()))
-
-proc HTML_VIEW_CLASS*(klass: pointer): PHtmlViewClass = 
-  result = PHtmlViewClass(CHECK_CLASS_CAST(klass, HTML_TYPE_VIEW()))
-
-proc HTML_IS_VIEW*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, HTML_TYPE_VIEW())
diff --git a/lib/wrappers/gtk/libglade2.nim b/lib/wrappers/gtk/libglade2.nim
deleted file mode 100644
index 6dda3364e..000000000
--- a/lib/wrappers/gtk/libglade2.nim
+++ /dev/null
@@ -1,111 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  glib2, gtk2
-
-when defined(win32): 
-  const 
-    LibGladeLib = "libglade-2.0-0.dll"
-elif defined(macosx): 
-  const 
-    LibGladeLib = "libglade-2.0.dylib"
-else: 
-  const 
-    LibGladeLib = "libglade-2.0.so"
-type 
-  PLongint* = ptr int32
-  PSmallInt* = ptr int16
-  PByte* = ptr int8
-  PWord* = ptr int16
-  PDWord* = ptr int32
-  PDouble* = ptr float64
-
-proc init*(){.cdecl, dynlib: LibGladeLib, importc: "glade_init".}
-proc require*(TheLibrary: cstring){.cdecl, dynlib: LibGladeLib, 
-                                    importc: "glade_require".}
-proc provide*(TheLibrary: cstring){.cdecl, dynlib: LibGladeLib, 
-                                    importc: "glade_provide".}
-type 
-  PXMLPrivate* = pointer
-  PXML* = ptr TXML
-  TXML* = object of TGObject
-    filename*: cstring
-    priv*: PXMLPrivate
-
-  PXMLClass* = ptr TXMLClass
-  TXMLClass* = object of TGObjectClass
-  TXMLConnectFunc* = proc (handler_name: cstring, anObject: PGObject, 
-                           signal_name: cstring, signal_data: cstring, 
-                           connect_object: PGObject, after: gboolean, 
-                           user_data: gpointer){.cdecl.}
-
-proc TYPE_XML*(): GType
-proc XML*(obj: pointer): PXML
-proc XML_CLASS*(klass: pointer): PXMLClass
-proc IS_XML*(obj: pointer): gboolean
-proc IS_XML_CLASS*(klass: pointer): gboolean
-proc XML_GET_CLASS*(obj: pointer): PXMLClass
-proc xml_get_type*(): GType{.cdecl, dynlib: LibGladeLib, 
-                             importc: "glade_xml_get_type".}
-proc xml_new*(fname: cstring, root: cstring, domain: cstring): PXML{.cdecl, 
-    dynlib: LibGladeLib, importc: "glade_xml_new".}
-proc xml_new_from_buffer*(buffer: cstring, size: int32, root: cstring, 
-                          domain: cstring): PXML{.cdecl, dynlib: LibGladeLib, 
-    importc: "glade_xml_new_from_buffer".}
-proc construct*(self: PXML, fname: cstring, root: cstring, domain: cstring): gboolean{.
-    cdecl, dynlib: LibGladeLib, importc: "glade_xml_construct".}
-proc signal_connect*(self: PXML, handlername: cstring, func: TGCallback){.
-    cdecl, dynlib: LibGladeLib, importc: "glade_xml_signal_connect".}
-proc signal_connect_data*(self: PXML, handlername: cstring, 
-                              func: TGCallback, user_data: gpointer){.cdecl, 
-    dynlib: LibGladeLib, importc: "glade_xml_signal_connect_data".}
-proc signal_autoconnect*(self: PXML){.cdecl, dynlib: LibGladeLib, 
-    importc: "glade_xml_signal_autoconnect".}
-proc signal_connect_full*(self: PXML, handler_name: cstring, 
-                              func: TXMLConnectFunc, user_data: gpointer){.
-    cdecl, dynlib: LibGladeLib, importc: "glade_xml_signal_connect_full".}
-proc signal_autoconnect_full*(self: PXML, func: TXMLConnectFunc, 
-                                  user_data: gpointer){.cdecl, 
-    dynlib: LibGladeLib, importc: "glade_xml_signal_autoconnect_full".}
-proc get_widget*(self: PXML, name: cstring): gtk2.PWidget{.cdecl, 
-    dynlib: LibGladeLib, importc: "glade_xml_get_widget".}
-proc get_widget_prefix*(self: PXML, name: cstring): PGList{.cdecl, 
-    dynlib: LibGladeLib, importc: "glade_xml_get_widget_prefix".}
-proc relative_file*(self: PXML, filename: cstring): cstring{.cdecl, 
-    dynlib: LibGladeLib, importc: "glade_xml_relative_file".}
-proc get_widget_name*(widget: gtk2.PWidget): cstring{.cdecl, dynlib: LibGladeLib, 
-    importc: "glade_get_widget_name".}
-proc get_widget_tree*(widget: gtk2.PWidget): PXML{.cdecl, dynlib: LibGladeLib, 
-    importc: "glade_get_widget_tree".}
-type 
-  PXMLCustomWidgetHandler* = ptr TXMLCustomWidgetHandler
-  TXMLCustomWidgetHandler* = gtk2.TWidget
-
-proc set_custom_handler*(handler: TXMLCustomWidgetHandler, user_data: gpointer){.
-    cdecl, dynlib: LibGladeLib, importc: "glade_set_custom_handler".}
-proc gnome_init*() = 
-  init()
-
-proc bonobo_init*() = 
-  init()
-
-proc xml_new_from_memory*(buffer: cstring, size: int32, root: cstring, 
-                          domain: cstring): PXML = 
-  result = xml_new_from_buffer(buffer, size, root, domain)
-
-proc TYPE_XML*(): GType = 
-  result = xml_get_type()
-
-proc XML*(obj: pointer): PXML = 
-  result = cast[PXML](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_XML()))
-
-proc XML_CLASS*(klass: pointer): PXMLClass = 
-  result = cast[PXMLClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_XML()))
-
-proc IS_XML*(obj: pointer): gboolean = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_XML())
-
-proc IS_XML_CLASS*(klass: pointer): gboolean = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_XML())
-
-proc XML_GET_CLASS*(obj: pointer): PXMLClass = 
-  result = cast[PXMLClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_XML()))
diff --git a/lib/wrappers/gtk/pango.nim b/lib/wrappers/gtk/pango.nim
deleted file mode 100644
index 5d9fcd96f..000000000
--- a/lib/wrappers/gtk/pango.nim
+++ /dev/null
@@ -1,1160 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  glib2
-
-when defined(win32): 
-  const 
-    lib* = "libpango-1.0-0.dll"
-elif defined(macosx): 
-  const 
-    lib* = "libpango-1.0.dylib"
-else: 
-  const 
-    lib* = "libpango-1.0.so.0"
-type 
-  TFont* {.pure, final.} = object
-  PFont* = ptr TFont
-  TFontFamily* {.pure, final.} = object
-  PFontFamily* = ptr TFontFamily
-  TFontSet* {.pure, final.} = object
-  PFontset* = ptr TFontset
-  TFontMetrics* {.pure, final.} = object
-  PFontMetrics* = ptr TFontMetrics
-  TFontFace* {.pure, final.} = object
-  PFontFace* = ptr TFontFace
-  TFontMap* {.pure, final.} = object
-  PFontMap* = ptr TFontMap
-  TFontsetClass {.pure, final.} = object
-  PFontsetClass* = ptr TFontSetClass
-  TFontFamilyClass* {.pure, final.} = object
-  PFontFamilyClass* = ptr TFontFamilyClass
-  TFontFaceClass* {.pure, final.} = object
-  PFontFaceClass* = ptr TFontFaceClass
-  TFontClass* {.pure, final.} = object
-  PFontClass* = ptr TFontClass
-  TFontMapClass* {.pure, final.} = object
-  PFontMapClass* = ptr TFontMapClass
-  PFontDescription* = ptr TFontDescription
-  TFontDescription* {.pure, final.} = object
-  PAttrList* = ptr TAttrList
-  TAttrList* {.pure, final.} = object
-  PAttrIterator* = ptr TAttrIterator
-  TAttrIterator* {.pure, final.} = object
-  PLayout* = ptr TLayout
-  TLayout* {.pure, final.} = object
-  PLayoutClass* = ptr TLayoutClass
-  TLayoutClass* {.pure, final.} = object
-  PLayoutIter* = ptr TLayoutIter
-  TLayoutIter* {.pure, final.} = object
-  PContext* = ptr TContext
-  TContext* {.pure, final.} = object
-  PContextClass* = ptr TContextClass
-  TContextClass* {.pure, final.} = object
-  PFontsetSimple* = ptr TFontsetSimple
-  TFontsetSimple* {.pure, final.} = object
-  PTabArray* = ptr TTabArray
-  TTabArray* {.pure, final.} = object
-  PGlyphString* = ptr TGlyphString
-  PAnalysis* = ptr TAnalysis
-  PItem* = ptr TItem
-  PLanguage* = ptr TLanguage
-  TLanguage* {.pure, final.} = object
-  PGlyph* = ptr TGlyph
-  TGlyph* = guint32
-  PRectangle* = ptr TRectangle
-  TRectangle*{.final, pure.} = object 
-    x*: int32
-    y*: int32
-    width*: int32
-    height*: int32
-
-  PDirection* = ptr TDirection
-  TDirection* = enum 
-    DIRECTION_LTR, DIRECTION_RTL, DIRECTION_TTB_LTR, DIRECTION_TTB_RTL
-  PColor* = ptr TColor
-  TColor*{.final, pure.} = object 
-    red*: guint16
-    green*: guint16
-    blue*: guint16
-
-  PAttrType* = ptr TAttrType
-  TAttrType* = int32
-  PUnderline* = ptr TUnderline
-  TUnderline* = int32
-  PAttribute* = ptr TAttribute
-  PAttrClass* = ptr TAttrClass
-  TAttribute*{.final, pure.} = object 
-    klass*: PAttrClass
-    start_index*: int
-    end_index*: int
-
-  TAttrClass*{.final, pure.} = object 
-    `type`*: TAttrType
-    copy*: proc (attr: PAttribute): PAttribute{.cdecl.}
-    destroy*: proc (attr: PAttribute){.cdecl.}
-    equal*: proc (attr1: PAttribute, attr2: PAttribute): gboolean{.cdecl.}
-
-  PAttrString* = ptr TAttrString
-  TAttrString*{.final, pure.} = object 
-    attr*: TAttribute
-    value*: cstring
-
-  PAttrLanguage* = ptr TAttrLanguage
-  TAttrLanguage*{.final, pure.} = object 
-    attr*: TAttribute
-    value*: PLanguage
-
-  PAttrInt* = ptr TAttrInt
-  TAttrInt*{.final, pure.} = object 
-    attr*: TAttribute
-    value*: int32
-
-  PAttrFloat* = ptr TAttrFloat
-  TAttrFloat*{.final, pure.} = object 
-    attr*: TAttribute
-    value*: gdouble
-
-  PAttrColor* = ptr TAttrColor
-  TAttrColor*{.final, pure.} = object 
-    attr*: TAttribute
-    color*: TColor
-
-  PAttrShape* = ptr TAttrShape
-  TAttrShape*{.final, pure.} = object 
-    attr*: TAttribute
-    ink_rect*: TRectangle
-    logical_rect*: TRectangle
-
-  PAttrFontDesc* = ptr TAttrFontDesc
-  TAttrFontDesc*{.final, pure.} = object 
-    attr*: TAttribute
-    desc*: PFontDescription
-
-  PLogAttr* = ptr TLogAttr
-  TLogAttr*{.final, pure.} = object 
-    flag0*: guint16
-
-  PCoverageLevel* = ptr TCoverageLevel
-  TCoverageLevel* = enum 
-    COVERAGE_NONE, COVERAGE_FALLBACK, COVERAGE_APPROXIMATE, COVERAGE_EXACT
-  PBlockInfo* = ptr TBlockInfo
-  TBlockInfo*{.final, pure.} = object 
-    data*: Pguchar
-    level*: TCoverageLevel
-
-  PCoverage* = ptr TCoverage
-  TCoverage*{.final, pure.} = object 
-    ref_count*: int
-    n_blocks*: int32
-    data_size*: int32
-    blocks*: PBlockInfo
-
-  PEngineRange* = ptr TEngineRange
-  TEngineRange*{.final, pure.} = object 
-    start*: int32
-    theEnd*: int32
-    langs*: cstring
-
-  PEngineInfo* = ptr TEngineInfo
-  TEngineInfo*{.final, pure.} = object 
-    id*: cstring
-    engine_type*: cstring
-    render_type*: cstring
-    ranges*: PEngineRange
-    n_ranges*: gint
-
-  PEngine* = ptr TEngine
-  TEngine*{.final, pure.} = object 
-    id*: cstring
-    `type`*: cstring
-    length*: gint
-
-  TEngineLangScriptBreak* = proc (text: cstring, len: int32, 
-                                  analysis: PAnalysis, attrs: PLogAttr, 
-                                  attrs_len: int32){.cdecl.}
-  PEngineLang* = ptr TEngineLang
-  TEngineLang*{.final, pure.} = object 
-    engine*: TEngine
-    script_break*: TEngineLangScriptBreak
-
-  TEngineShapeScript* = proc (font: PFont, text: cstring, length: int32, 
-                              analysis: PAnalysis, glyphs: PGlyphString){.cdecl.}
-  TEngineShapeGetCoverage* = proc (font: PFont, language: PLanguage): PCoverage{.
-      cdecl.}
-  PEngineShape* = ptr TEngineShape
-  TEngineShape*{.final, pure.} = object 
-    engine*: TEngine
-    script_shape*: TEngineShapeScript
-    get_coverage*: TEngineShapeGetCoverage
-
-  PStyle* = ptr TStyle
-  TStyle* = gint
-  PVariant* = ptr TVariant
-  TVariant* = gint
-  PWeight* = ptr TWeight
-  TWeight* = gint
-  PStretch* = ptr TStretch
-  TStretch* = gint
-  PFontMask* = ptr TFontMask
-  TFontMask* = int32
-  PGlyphUnit* = ptr TGlyphUnit
-  TGlyphUnit* = gint32
-  PGlyphGeometry* = ptr TGlyphGeometry
-  TGlyphGeometry*{.final, pure.} = object 
-    width*: TGlyphUnit
-    x_offset*: TGlyphUnit
-    y_offset*: TGlyphUnit
-
-  PGlyphVisAttr* = ptr TGlyphVisAttr
-  TGlyphVisAttr*{.final, pure.} = object 
-    flag0*: int16
-
-  PGlyphInfo* = ptr TGlyphInfo
-  TGlyphInfo*{.final, pure.} = object 
-    glyph*: TGlyph
-    geometry*: TGlyphGeometry
-    attr*: TGlyphVisAttr
-
-  TGlyphString*{.final, pure.} = object 
-    num_glyphs*: gint
-    glyphs*: PGlyphInfo
-    log_clusters*: Pgint
-    space*: gint
-
-  TAnalysis*{.final, pure.} = object 
-    shape_engine*: PEngineShape
-    lang_engine*: PEngineLang
-    font*: PFont
-    level*: guint8
-    language*: PLanguage
-    extra_attrs*: PGSList
-
-  TItem*{.final, pure.} = object 
-    offset*: gint
-    length*: gint
-    num_chars*: gint
-    analysis*: TAnalysis
-
-  PAlignment* = ptr TAlignment
-  TAlignment* = enum 
-    ALIGN_LEFT, ALIGN_CENTER, ALIGN_RIGHT
-  PWrapMode* = ptr TWrapMode
-  TWrapMode* = enum 
-    WRAP_WORD, WRAP_CHAR
-  PLayoutLine* = ptr TLayoutLine
-  TLayoutLine*{.final, pure.} = object 
-    layout*: PLayout
-    start_index*: gint
-    length*: gint
-    runs*: PGSList
-
-  PLayoutRun* = ptr TLayoutRun
-  TLayoutRun*{.final, pure.} = object 
-    item*: PItem
-    glyphs*: PGlyphString
-
-  PTabAlign* = ptr TTabAlign
-  TTabAlign* = enum 
-    TAB_LEFT
-
-const 
-  SCALE* = 1024
-
-proc PIXELS*(d: int): int
-proc ASCENT*(rect: TRectangle): int32
-proc DESCENT*(rect: TRectangle): int32
-proc LBEARING*(rect: TRectangle): int32
-proc RBEARING*(rect: TRectangle): int32
-proc TYPE_LANGUAGE*(): GType
-proc language_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "pango_language_get_type".}
-proc language_from_string*(language: cstring): PLanguage{.cdecl, dynlib: lib, 
-    importc: "pango_language_from_string".}
-proc to_string*(language: PLanguage): cstring
-proc matches*(language: PLanguage, range_list: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "pango_language_matches".}
-const 
-  ATTR_INVALID* = 0
-  ATTR_LANGUAGE* = 1
-  ATTR_FAMILY* = 2
-  ATTR_STYLE* = 3
-  ATTR_WEIGHT* = 4
-  ATTR_VARIANT* = 5
-  ATTR_STRETCH* = 6
-  ATTR_SIZE* = 7
-  ATTR_FONT_DESC* = 8
-  ATTR_FOREGROUND* = 9
-  ATTR_BACKGROUND* = 10
-  ATTR_UNDERLINE* = 11
-  ATTR_STRIKETHROUGH* = 12
-  ATTR_RISE* = 13
-  ATTR_SHAPE* = 14
-  ATTR_SCALE* = 15
-  UNDERLINE_NONE* = 0
-  UNDERLINE_SINGLE* = 1
-  UNDERLINE_DOUBLE* = 2
-  UNDERLINE_LOW* = 3
-
-proc TYPE_COLOR*(): GType
-proc color_get_type*(): GType{.cdecl, dynlib: lib, 
-                               importc: "pango_color_get_type".}
-proc copy*(src: PColor): PColor{.cdecl, dynlib: lib, 
-                                       importc: "pango_color_copy".}
-proc free*(color: PColor){.cdecl, dynlib: lib, importc: "pango_color_free".}
-proc parse*(color: PColor, spec: cstring): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_color_parse".}
-proc TYPE_ATTR_LIST*(): GType
-proc attr_type_register*(name: cstring): TAttrType{.cdecl, dynlib: lib, 
-    importc: "pango_attr_type_register".}
-proc copy*(attr: PAttribute): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attribute_copy".}
-proc destroy*(attr: PAttribute){.cdecl, dynlib: lib, 
-    importc: "pango_attribute_destroy".}
-proc equal*(attr1: PAttribute, attr2: PAttribute): gboolean{.cdecl, 
-    dynlib: lib, importc: "pango_attribute_equal".}
-proc attr_language_new*(language: PLanguage): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_language_new".}
-proc attr_family_new*(family: cstring): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_family_new".}
-proc attr_foreground_new*(red: guint16, green: guint16, blue: guint16): PAttribute{.
-    cdecl, dynlib: lib, importc: "pango_attr_foreground_new".}
-proc attr_background_new*(red: guint16, green: guint16, blue: guint16): PAttribute{.
-    cdecl, dynlib: lib, importc: "pango_attr_background_new".}
-proc attr_size_new*(size: int32): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_size_new".}
-proc attr_style_new*(style: TStyle): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_style_new".}
-proc attr_weight_new*(weight: TWeight): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_weight_new".}
-proc attr_variant_new*(variant: TVariant): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_variant_new".}
-proc attr_stretch_new*(stretch: TStretch): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_stretch_new".}
-proc attr_font_desc_new*(desc: PFontDescription): PAttribute{.cdecl, 
-    dynlib: lib, importc: "pango_attr_font_desc_new".}
-proc attr_underline_new*(underline: TUnderline): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_underline_new".}
-proc attr_strikethrough_new*(strikethrough: gboolean): PAttribute{.cdecl, 
-    dynlib: lib, importc: "pango_attr_strikethrough_new".}
-proc attr_rise_new*(rise: int32): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_rise_new".}
-proc attr_shape_new*(ink_rect: PRectangle, logical_rect: PRectangle): PAttribute{.
-    cdecl, dynlib: lib, importc: "pango_attr_shape_new".}
-proc attr_scale_new*(scale_factor: gdouble): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_scale_new".}
-proc attr_list_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "pango_attr_list_get_type".}
-proc attr_list_new*(): PAttrList{.cdecl, dynlib: lib, 
-                                  importc: "pango_attr_list_new".}
-proc reference*(list: PAttrList){.cdecl, dynlib: lib, 
-                                      importc: "pango_attr_list_ref".}
-proc unref*(list: PAttrList){.cdecl, dynlib: lib, 
-                                        importc: "pango_attr_list_unref".}
-proc copy*(list: PAttrList): PAttrList{.cdecl, dynlib: lib, 
-    importc: "pango_attr_list_copy".}
-proc insert*(list: PAttrList, attr: PAttribute){.cdecl, dynlib: lib, 
-    importc: "pango_attr_list_insert".}
-proc insert_before*(list: PAttrList, attr: PAttribute){.cdecl, 
-    dynlib: lib, importc: "pango_attr_list_insert_before".}
-proc change*(list: PAttrList, attr: PAttribute){.cdecl, dynlib: lib, 
-    importc: "pango_attr_list_change".}
-proc splice*(list: PAttrList, other: PAttrList, pos: gint, len: gint){.
-    cdecl, dynlib: lib, importc: "pango_attr_list_splice".}
-proc get_iterator*(list: PAttrList): PAttrIterator{.cdecl, 
-    dynlib: lib, importc: "pango_attr_list_get_iterator".}
-proc attr_iterator_range*(`iterator`: PAttrIterator, start: Pgint, theEnd: Pgint){.
-    cdecl, dynlib: lib, importc: "pango_attr_iterator_range".}
-proc attr_iterator_next*(`iterator`: PAttrIterator): gboolean{.cdecl, 
-    dynlib: lib, importc: "pango_attr_iterator_next".}
-proc attr_iterator_copy*(`iterator`: PAttrIterator): PAttrIterator{.cdecl, 
-    dynlib: lib, importc: "pango_attr_iterator_copy".}
-proc attr_iterator_destroy*(`iterator`: PAttrIterator){.cdecl, dynlib: lib, 
-    importc: "pango_attr_iterator_destroy".}
-proc attr_iterator_get*(`iterator`: PAttrIterator, `type`: TAttrType): PAttribute{.
-    cdecl, dynlib: lib, importc: "pango_attr_iterator_get".}
-proc attr_iterator_get_font*(`iterator`: PAttrIterator, desc: PFontDescription, 
-                             language: var PLanguage, extra_attrs: PPGSList){.
-    cdecl, dynlib: lib, importc: "pango_attr_iterator_get_font".}
-proc parse_markup*(markup_text: cstring, length: int32, accel_marker: gunichar, 
-                   attr_list: var PAttrList, text: PPchar, 
-                   accel_char: Pgunichar, error: pointer): gboolean{.cdecl, 
-    dynlib: lib, importc: "pango_parse_markup".}
-const 
-  bm_TPangoLogAttr_is_line_break* = 0x0001'i16
-  bp_TPangoLogAttr_is_line_break* = 0'i16
-  bm_TPangoLogAttr_is_mandatory_break* = 0x0002'i16
-  bp_TPangoLogAttr_is_mandatory_break* = 1'i16
-  bm_TPangoLogAttr_is_char_break* = 0x0004'i16
-  bp_TPangoLogAttr_is_char_break* = 2'i16
-  bm_TPangoLogAttr_is_white* = 0x0008'i16
-  bp_TPangoLogAttr_is_white* = 3'i16
-  bm_TPangoLogAttr_is_cursor_position* = 0x0010'i16
-  bp_TPangoLogAttr_is_cursor_position* = 4'i16
-  bm_TPangoLogAttr_is_word_start* = 0x0020'i16
-  bp_TPangoLogAttr_is_word_start* = 5'i16
-  bm_TPangoLogAttr_is_word_end* = 0x0040'i16
-  bp_TPangoLogAttr_is_word_end* = 6'i16
-  bm_TPangoLogAttr_is_sentence_boundary* = 0x0080'i16
-  bp_TPangoLogAttr_is_sentence_boundary* = 7'i16
-  bm_TPangoLogAttr_is_sentence_start* = 0x0100'i16
-  bp_TPangoLogAttr_is_sentence_start* = 8'i16
-  bm_TPangoLogAttr_is_sentence_end* = 0x0200'i16
-  bp_TPangoLogAttr_is_sentence_end* = 9'i16
-
-proc is_line_break*(a: PLogAttr): guint
-proc set_is_line_break*(a: PLogAttr, `is_line_break`: guint)
-proc is_mandatory_break*(a: PLogAttr): guint
-proc set_is_mandatory_break*(a: PLogAttr, `is_mandatory_break`: guint)
-proc is_char_break*(a: PLogAttr): guint
-proc set_is_char_break*(a: PLogAttr, `is_char_break`: guint)
-proc is_white*(a: PLogAttr): guint
-proc set_is_white*(a: PLogAttr, `is_white`: guint)
-proc is_cursor_position*(a: PLogAttr): guint
-proc set_is_cursor_position*(a: PLogAttr, `is_cursor_position`: guint)
-proc is_word_start*(a: PLogAttr): guint
-proc set_is_word_start*(a: PLogAttr, `is_word_start`: guint)
-proc is_word_end*(a: PLogAttr): guint
-proc set_is_word_end*(a: PLogAttr, `is_word_end`: guint)
-proc is_sentence_boundary*(a: PLogAttr): guint
-proc set_is_sentence_boundary*(a: PLogAttr, `is_sentence_boundary`: guint)
-proc is_sentence_start*(a: PLogAttr): guint
-proc set_is_sentence_start*(a: PLogAttr, `is_sentence_start`: guint)
-proc is_sentence_end*(a: PLogAttr): guint
-proc set_is_sentence_end*(a: PLogAttr, `is_sentence_end`: guint)
-proc `break`*(text: cstring, length: int32, analysis: PAnalysis, attrs: PLogAttr, 
-            attrs_len: int32){.cdecl, dynlib: lib, importc: "pango_break".}
-proc find_paragraph_boundary*(text: cstring, length: gint, 
-                              paragraph_delimiter_index: Pgint, 
-                              next_paragraph_start: Pgint){.cdecl, dynlib: lib, 
-    importc: "pango_find_paragraph_boundary".}
-proc get_log_attrs*(text: cstring, length: int32, level: int32, 
-                    language: PLanguage, log_attrs: PLogAttr, attrs_len: int32){.
-    cdecl, dynlib: lib, importc: "pango_get_log_attrs".}
-proc TYPE_CONTEXT*(): GType
-proc CONTEXT*(anObject: pointer): PContext
-proc CONTEXT_CLASS*(klass: pointer): PContextClass
-proc IS_CONTEXT*(anObject: pointer): bool
-proc IS_CONTEXT_CLASS*(klass: pointer): bool
-proc GET_CLASS*(obj: PContext): PContextClass
-proc context_get_type*(): GType{.cdecl, dynlib: lib, 
-                                 importc: "pango_context_get_type".}
-proc list_families*(context: PContext, 
-                            families: openarray[ptr PFontFamily]){.cdecl, 
-    dynlib: lib, importc: "pango_context_list_families".}
-proc load_font*(context: PContext, desc: PFontDescription): PFont{.
-    cdecl, dynlib: lib, importc: "pango_context_load_font".}
-proc load_fontset*(context: PContext, desc: PFontDescription, 
-                           language: PLanguage): PFontset{.cdecl, dynlib: lib, 
-    importc: "pango_context_load_fontset".}
-proc get_metrics*(context: PContext, desc: PFontDescription, 
-                          language: PLanguage): PFontMetrics{.cdecl, 
-    dynlib: lib, importc: "pango_context_get_metrics".}
-proc set_font_description*(context: PContext, desc: PFontDescription){.
-    cdecl, dynlib: lib, importc: "pango_context_set_font_description".}
-proc get_font_description*(context: PContext): PFontDescription{.cdecl, 
-    dynlib: lib, importc: "pango_context_get_font_description".}
-proc get_language*(context: PContext): PLanguage{.cdecl, dynlib: lib, 
-    importc: "pango_context_get_language".}
-proc set_language*(context: PContext, language: PLanguage){.cdecl, 
-    dynlib: lib, importc: "pango_context_set_language".}
-proc set_base_dir*(context: PContext, direction: TDirection){.cdecl, 
-    dynlib: lib, importc: "pango_context_set_base_dir".}
-proc get_base_dir*(context: PContext): TDirection{.cdecl, dynlib: lib, 
-    importc: "pango_context_get_base_dir".}
-proc itemize*(context: PContext, text: cstring, start_index: int32, 
-              length: int32, attrs: PAttrList, cached_iter: PAttrIterator): PGList{.
-    cdecl, dynlib: lib, importc: "pango_itemize".}
-proc coverage_new*(): PCoverage{.cdecl, dynlib: lib, 
-                                 importc: "pango_coverage_new".}
-proc reference*(coverage: PCoverage): PCoverage{.cdecl, dynlib: lib, 
-    importc: "pango_coverage_ref".}
-proc unref*(coverage: PCoverage){.cdecl, dynlib: lib, 
-    importc: "pango_coverage_unref".}
-proc copy*(coverage: PCoverage): PCoverage{.cdecl, dynlib: lib, 
-    importc: "pango_coverage_copy".}
-proc get*(coverage: PCoverage, index: int32): TCoverageLevel{.cdecl, 
-    dynlib: lib, importc: "pango_coverage_get".}
-proc set*(coverage: PCoverage, index: int32, level: TCoverageLevel){.
-    cdecl, dynlib: lib, importc: "pango_coverage_set".}
-proc max*(coverage: PCoverage, other: PCoverage){.cdecl, dynlib: lib, 
-    importc: "pango_coverage_max".}
-proc to_bytes*(coverage: PCoverage, bytes: PPguchar, n_bytes: var int32){.
-    cdecl, dynlib: lib, importc: "pango_coverage_to_bytes".}
-proc coverage_from_bytes*(bytes: Pguchar, n_bytes: int32): PCoverage{.cdecl, 
-    dynlib: lib, importc: "pango_coverage_from_bytes".}
-proc TYPE_FONTSET*(): GType
-proc FONTSET*(anObject: pointer): PFontset
-proc IS_FONTSET*(anObject: pointer): bool
-proc fontset_get_type*(): GType{.cdecl, dynlib: lib, 
-                                 importc: "pango_fontset_get_type".}
-proc get_font*(fontset: PFontset, wc: guint): PFont{.cdecl, dynlib: lib, 
-    importc: "pango_fontset_get_font".}
-proc get_metrics*(fontset: PFontset): PFontMetrics{.cdecl, dynlib: lib, 
-    importc: "pango_fontset_get_metrics".}
-const 
-  STYLE_NORMAL* = 0
-  STYLE_OBLIQUE* = 1
-  STYLE_ITALIC* = 2
-  VARIANT_NORMAL* = 0
-  VARIANT_SMALL_CAPS* = 1
-  WEIGHT_ULTRALIGHT* = 200
-  WEIGHT_LIGHT* = 300
-  WEIGHT_NORMAL* = 400
-  WEIGHT_BOLD* = 700
-  WEIGHT_ULTRABOLD* = 800
-  WEIGHT_HEAVY* = 900
-  STRETCH_ULTRA_CONDENSED* = 0
-  STRETCH_EXTRA_CONDENSED* = 1
-  STRETCH_CONDENSED* = 2
-  STRETCH_SEMI_CONDENSED* = 3
-  STRETCH_NORMAL* = 4
-  STRETCH_SEMI_EXPANDED* = 5
-  STRETCH_EXPANDED* = 6
-  STRETCH_EXTRA_EXPANDED* = 7
-  STRETCH_ULTRA_EXPANDED* = 8
-  FONT_MASK_FAMILY* = 1 shl 0
-  FONT_MASK_STYLE* = 1 shl 1
-  FONT_MASK_VARIANT* = 1 shl 2
-  FONT_MASK_WEIGHT* = 1 shl 3
-  FONT_MASK_STRETCH* = 1 shl 4
-  FONT_MASK_SIZE* = 1 shl 5
-  SCALE_XX_SMALL* = 0.578704
-  SCALE_X_SMALL* = 0.644444
-  SCALE_SMALL* = 0.833333
-  SCALE_MEDIUM* = 1.00000
-  SCALE_LARGE* = 1.20000
-  SCALE_X_LARGE* = 1.44000
-  SCALE_XX_LARGE* = 1.72800
-
-proc TYPE_FONT_DESCRIPTION*(): GType
-proc font_description_get_type*(): GType{.cdecl, dynlib: lib, 
-    importc: "pango_font_description_get_type".}
-proc font_description_new*(): PFontDescription{.cdecl, dynlib: lib, 
-    importc: "pango_font_description_new".}
-proc copy*(desc: PFontDescription): PFontDescription{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_copy".}
-proc copy_static*(desc: PFontDescription): PFontDescription{.
-    cdecl, dynlib: lib, importc: "pango_font_description_copy_static".}
-proc hash*(desc: PFontDescription): guint{.cdecl, dynlib: lib, 
-    importc: "pango_font_description_hash".}
-proc equal*(desc1: PFontDescription, desc2: PFontDescription): gboolean{.
-    cdecl, dynlib: lib, importc: "pango_font_description_equal".}
-proc free*(desc: PFontDescription){.cdecl, dynlib: lib, 
-    importc: "pango_font_description_free".}
-proc font_descriptions_free*(descs: var PFontDescription, n_descs: int32){.
-    cdecl, dynlib: lib, importc: "pango_font_descriptions_free".}
-proc set_family*(desc: PFontDescription, family: cstring){.
-    cdecl, dynlib: lib, importc: "pango_font_description_set_family".}
-proc set_family_static*(desc: PFontDescription, family: cstring){.
-    cdecl, dynlib: lib, importc: "pango_font_description_set_family_static".}
-proc get_family*(desc: PFontDescription): cstring{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_get_family".}
-proc set_style*(desc: PFontDescription, style: TStyle){.cdecl, 
-    dynlib: lib, importc: "pango_font_description_set_style".}
-proc get_style*(desc: PFontDescription): TStyle{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_get_style".}
-proc set_variant*(desc: PFontDescription, variant: TVariant){.
-    cdecl, dynlib: lib, importc: "pango_font_description_set_variant".}
-proc get_variant*(desc: PFontDescription): TVariant{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_get_variant".}
-proc set_weight*(desc: PFontDescription, weight: TWeight){.
-    cdecl, dynlib: lib, importc: "pango_font_description_set_weight".}
-proc get_weight*(desc: PFontDescription): TWeight{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_get_weight".}
-proc set_stretch*(desc: PFontDescription, stretch: TStretch){.
-    cdecl, dynlib: lib, importc: "pango_font_description_set_stretch".}
-proc get_stretch*(desc: PFontDescription): TStretch{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_get_stretch".}
-proc set_size*(desc: PFontDescription, size: gint){.cdecl, 
-    dynlib: lib, importc: "pango_font_description_set_size".}
-proc get_size*(desc: PFontDescription): gint{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_get_size".}
-proc set_absolute_size*(desc: PFontDescription, size: float64){.
-    cdecl, dynlib: lib, importc: "pango_font_description_set_absolute_size".}
-proc get_size_is_absolute*(desc: PFontDescription, 
-    size: float64): gboolean{.cdecl, dynlib: lib, importc: "pango_font_description_get_size_is_absolute".}
-proc get_set_fields*(desc: PFontDescription): TFontMask{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_get_set_fields".}
-proc unset_fields*(desc: PFontDescription, to_unset: TFontMask){.
-    cdecl, dynlib: lib, importc: "pango_font_description_unset_fields".}
-proc merge*(desc: PFontDescription, 
-                             desc_to_merge: PFontDescription, 
-                             replace_existing: gboolean){.cdecl, dynlib: lib, 
-    importc: "pango_font_description_merge".}
-proc merge_static*(desc: PFontDescription, 
-                                    desc_to_merge: PFontDescription, 
-                                    replace_existing: gboolean){.cdecl, 
-    dynlib: lib, importc: "pango_font_description_merge_static".}
-proc better_match*(desc: PFontDescription, 
-                                    old_match: PFontDescription, 
-                                    new_match: PFontDescription): gboolean{.
-    cdecl, dynlib: lib, importc: "pango_font_description_better_match".}
-proc font_description_from_string*(str: cstring): PFontDescription{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_from_string".}
-proc to_string*(desc: PFontDescription): cstring{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_to_string".}
-proc to_filename*(desc: PFontDescription): cstring{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_to_filename".}
-proc TYPE_FONT_METRICS*(): GType
-proc font_metrics_get_type*(): GType{.cdecl, dynlib: lib, 
-                                      importc: "pango_font_metrics_get_type".}
-proc reference*(metrics: PFontMetrics): PFontMetrics{.cdecl, dynlib: lib, 
-    importc: "pango_font_metrics_ref".}
-proc unref*(metrics: PFontMetrics){.cdecl, dynlib: lib, 
-    importc: "pango_font_metrics_unref".}
-proc get_ascent*(metrics: PFontMetrics): int32{.cdecl, dynlib: lib, 
-    importc: "pango_font_metrics_get_ascent".}
-proc get_descent*(metrics: PFontMetrics): int32{.cdecl, 
-    dynlib: lib, importc: "pango_font_metrics_get_descent".}
-proc get_approximate_char_width*(metrics: PFontMetrics): int32{.
-    cdecl, dynlib: lib, importc: "pango_font_metrics_get_approximate_char_width".}
-proc get_approximate_digit_width*(metrics: PFontMetrics): int32{.
-    cdecl, dynlib: lib, 
-    importc: "pango_font_metrics_get_approximate_digit_width".}
-proc TYPE_FONT_FAMILY*(): GType
-proc FONT_FAMILY*(anObject: Pointer): PFontFamily
-proc IS_FONT_FAMILY*(anObject: Pointer): bool
-proc font_family_get_type*(): GType{.cdecl, dynlib: lib, 
-                                     importc: "pango_font_family_get_type".}
-proc list_faces*(family: PFontFamily, 
-                             faces: var openarray[ptr PFontFace]){.cdecl, 
-    dynlib: lib, importc: "pango_font_family_list_faces".}
-proc get_name*(family: PFontFamily): cstring{.cdecl, dynlib: lib, 
-    importc: "pango_font_family_get_name".}
-proc TYPE_FONT_FACE*(): GType
-proc FONT_FACE*(anObject: pointer): PFontFace
-proc IS_FONT_FACE*(anObject: pointer): bool
-proc font_face_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "pango_font_face_get_type".}
-proc describe*(face: PFontFace): PFontDescription{.cdecl, dynlib: lib, 
-    importc: "pango_font_face_describe".}
-proc get_face_name*(face: PFontFace): cstring{.cdecl, dynlib: lib, 
-    importc: "pango_font_face_get_face_name".}
-proc TYPE_FONT*(): GType
-proc FONT*(anObject: pointer): PFont
-proc IS_FONT*(anObject: pointer): bool
-proc font_get_type*(): GType{.cdecl, dynlib: lib, importc: "pango_font_get_type".}
-proc describe*(font: PFont): PFontDescription{.cdecl, dynlib: lib, 
-    importc: "pango_font_describe".}
-proc get_coverage*(font: PFont, language: PLanguage): PCoverage{.cdecl, 
-    dynlib: lib, importc: "pango_font_get_coverage".}
-proc find_shaper*(font: PFont, language: PLanguage, ch: guint32): PEngineShape{.
-    cdecl, dynlib: lib, importc: "pango_font_find_shaper".}
-proc get_metrics*(font: PFont, language: PLanguage): PFontMetrics{.cdecl, 
-    dynlib: lib, importc: "pango_font_get_metrics".}
-proc get_glyph_extents*(font: PFont, glyph: TGlyph, ink_rect: PRectangle, 
-                             logical_rect: PRectangle){.cdecl, dynlib: lib, 
-    importc: "pango_font_get_glyph_extents".}
-proc TYPE_FONT_MAP*(): GType
-proc FONT_MAP*(anObject: pointer): PFontMap
-proc IS_FONT_MAP*(anObject: pointer): bool
-proc font_map_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "pango_font_map_get_type".}
-proc load_font*(fontmap: PFontMap, context: PContext, 
-                         desc: PFontDescription): PFont{.cdecl, dynlib: lib, 
-    importc: "pango_font_map_load_font".}
-proc load_fontset*(fontmap: PFontMap, context: PContext, 
-                            desc: PFontDescription, language: PLanguage): PFontset{.
-    cdecl, dynlib: lib, importc: "pango_font_map_load_fontset".}
-proc list_families*(fontmap: PFontMap, 
-                             families: var openarray[ptr PFontFamily]){.cdecl, 
-    dynlib: lib, importc: "pango_font_map_list_families".}
-const 
-  bm_TPangoGlyphVisAttr_is_cluster_start* = 0x0001'i16
-  bp_TPangoGlyphVisAttr_is_cluster_start* = 0'i16
-
-proc is_cluster_start*(a: PGlyphVisAttr): guint
-proc set_is_cluster_start*(a: PGlyphVisAttr, `is_cluster_start`: guint)
-proc TYPE_GLYPH_STRING*(): GType
-proc glyph_string_new*(): PGlyphString{.cdecl, dynlib: lib, 
-                                        importc: "pango_glyph_string_new".}
-proc glyph_string_set_size*(`string`: PGlyphString, new_len: gint){.cdecl, 
-    dynlib: lib, importc: "pango_glyph_string_set_size".}
-proc glyph_string_get_type*(): GType{.cdecl, dynlib: lib, 
-                                      importc: "pango_glyph_string_get_type".}
-proc glyph_string_copy*(`string`: PGlyphString): PGlyphString{.cdecl, 
-    dynlib: lib, importc: "pango_glyph_string_copy".}
-proc glyph_string_free*(`string`: PGlyphString){.cdecl, dynlib: lib, 
-    importc: "pango_glyph_string_free".}
-proc extents*(glyphs: PGlyphString, font: PFont, 
-                           ink_rect: PRectangle, logical_rect: PRectangle){.
-    cdecl, dynlib: lib, importc: "pango_glyph_string_extents".}
-proc extents_range*(glyphs: PGlyphString, start: int32, 
-                                 theEnd: int32, font: PFont, 
-                                 ink_rect: PRectangle, logical_rect: PRectangle){.
-    cdecl, dynlib: lib, importc: "pango_glyph_string_extents_range".}
-proc get_logical_widths*(glyphs: PGlyphString, text: cstring, 
-                                      length: int32, embedding_level: int32, 
-                                      logical_widths: var int32){.cdecl, 
-    dynlib: lib, importc: "pango_glyph_string_get_logical_widths".}
-proc index_to_x*(glyphs: PGlyphString, text: cstring, 
-                              length: int32, analysis: PAnalysis, index: int32, 
-                              trailing: gboolean, x_pos: var int32){.cdecl, 
-    dynlib: lib, importc: "pango_glyph_string_index_to_x".}
-proc x_to_index*(glyphs: PGlyphString, text: cstring, 
-                              length: int32, analysis: PAnalysis, x_pos: int32, 
-                              index, trailing: var int32){.cdecl, dynlib: lib, 
-    importc: "pango_glyph_string_x_to_index".}
-proc shape*(text: cstring, length: gint, analysis: PAnalysis, 
-            glyphs: PGlyphString){.cdecl, dynlib: lib, importc: "pango_shape".}
-proc reorder_items*(logical_items: PGList): PGList{.cdecl, dynlib: lib, 
-    importc: "pango_reorder_items".}
-proc item_new*(): PItem{.cdecl, dynlib: lib, importc: "pango_item_new".}
-proc copy*(item: PItem): PItem{.cdecl, dynlib: lib, 
-                                     importc: "pango_item_copy".}
-proc free*(item: PItem){.cdecl, dynlib: lib, importc: "pango_item_free".}
-proc split*(orig: PItem, split_index: int32, split_offset: int32): PItem{.
-    cdecl, dynlib: lib, importc: "pango_item_split".}
-proc TYPE_LAYOUT*(): GType
-proc LAYOUT*(anObject: pointer): PLayout
-proc LAYOUT_CLASS*(klass: pointer): PLayoutClass
-proc IS_LAYOUT*(anObject: pointer): bool
-proc IS_LAYOUT_CLASS*(klass: pointer): bool
-proc GET_CLASS*(obj: PLayout): PLayoutClass
-proc layout_get_type*(): GType{.cdecl, dynlib: lib, 
-                                importc: "pango_layout_get_type".}
-proc layout_new*(context: PContext): PLayout{.cdecl, dynlib: lib, 
-    importc: "pango_layout_new".}
-proc copy*(src: PLayout): PLayout{.cdecl, dynlib: lib, 
-    importc: "pango_layout_copy".}
-proc get_context*(layout: PLayout): PContext{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_context".}
-proc set_attributes*(layout: PLayout, attrs: PAttrList){.cdecl, 
-    dynlib: lib, importc: "pango_layout_set_attributes".}
-proc get_attributes*(layout: PLayout): PAttrList{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_attributes".}
-proc set_text*(layout: PLayout, text: cstring, length: int32){.cdecl, 
-    dynlib: lib, importc: "pango_layout_set_text".}
-proc get_text*(layout: PLayout): cstring{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_text".}
-proc set_markup*(layout: PLayout, markup: cstring, length: int32){.cdecl, 
-    dynlib: lib, importc: "pango_layout_set_markup".}
-proc set_markup*(layout: PLayout, markup: cstring, 
-                                   length: int32, accel_marker: gunichar, 
-                                   accel_char: Pgunichar){.cdecl, dynlib: lib, 
-    importc: "pango_layout_set_markup_with_accel".}
-proc set_font_description*(layout: PLayout, desc: PFontDescription){.
-    cdecl, dynlib: lib, importc: "pango_layout_set_font_description".}
-proc set_width*(layout: PLayout, width: int32){.cdecl, dynlib: lib, 
-    importc: "pango_layout_set_width".}
-proc get_width*(layout: PLayout): int32{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_width".}
-proc set_wrap*(layout: PLayout, wrap: TWrapMode){.cdecl, dynlib: lib, 
-    importc: "pango_layout_set_wrap".}
-proc get_wrap*(layout: PLayout): TWrapMode{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_wrap".}
-proc set_indent*(layout: PLayout, indent: int32){.cdecl, dynlib: lib, 
-    importc: "pango_layout_set_indent".}
-proc get_indent*(layout: PLayout): int32{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_indent".}
-proc set_spacing*(layout: PLayout, spacing: int32){.cdecl, dynlib: lib, 
-    importc: "pango_layout_set_spacing".}
-proc get_spacing*(layout: PLayout): int32{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_spacing".}
-proc set_justify*(layout: PLayout, justify: gboolean){.cdecl, 
-    dynlib: lib, importc: "pango_layout_set_justify".}
-proc get_justify*(layout: PLayout): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_justify".}
-proc set_alignment*(layout: PLayout, alignment: TAlignment){.cdecl, 
-    dynlib: lib, importc: "pango_layout_set_alignment".}
-proc get_alignment*(layout: PLayout): TAlignment{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_alignment".}
-proc set_tabs*(layout: PLayout, tabs: PTabArray){.cdecl, dynlib: lib, 
-    importc: "pango_layout_set_tabs".}
-proc get_tabs*(layout: PLayout): PTabArray{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_tabs".}
-proc set_single_paragraph_mode*(layout: PLayout, setting: gboolean){.
-    cdecl, dynlib: lib, importc: "pango_layout_set_single_paragraph_mode".}
-proc get_single_paragraph_mode*(layout: PLayout): gboolean{.cdecl, 
-    dynlib: lib, importc: "pango_layout_get_single_paragraph_mode".}
-proc context_changed*(layout: PLayout){.cdecl, dynlib: lib, 
-    importc: "pango_layout_context_changed".}
-proc get_log_attrs*(layout: PLayout, attrs: var PLogAttr, n_attrs: Pgint){.
-    cdecl, dynlib: lib, importc: "pango_layout_get_log_attrs".}
-proc index_to_pos*(layout: PLayout, index: int32, pos: PRectangle){.
-    cdecl, dynlib: lib, importc: "pango_layout_index_to_pos".}
-proc get_cursor_pos*(layout: PLayout, index: int32, 
-                            strong_pos: PRectangle, weak_pos: PRectangle){.
-    cdecl, dynlib: lib, importc: "pango_layout_get_cursor_pos".}
-proc move_cursor_visually*(layout: PLayout, strong: gboolean, 
-                                  old_index: int32, old_trailing: int32, 
-                                  direction: int32, 
-                                  new_index, new_trailing: var int32){.cdecl, 
-    dynlib: lib, importc: "pango_layout_move_cursor_visually".}
-proc xy_to_index*(layout: PLayout, x: int32, y: int32, 
-                         index, trailing: var int32): gboolean{.cdecl, 
-    dynlib: lib, importc: "pango_layout_xy_to_index".}
-proc get_extents*(layout: PLayout, ink_rect: PRectangle, 
-                         logical_rect: PRectangle){.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_extents".}
-proc get_pixel_extents*(layout: PLayout, ink_rect: PRectangle, 
-                               logical_rect: PRectangle){.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_pixel_extents".}
-proc get_size*(layout: PLayout, width: var int32, height: var int32){.
-    cdecl, dynlib: lib, importc: "pango_layout_get_size".}
-proc get_pixel_size*(layout: PLayout, width: var int32, height: var int32){.
-    cdecl, dynlib: lib, importc: "pango_layout_get_pixel_size".}
-proc get_line_count*(layout: PLayout): int32{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_line_count".}
-proc get_line*(layout: PLayout, line: int32): PLayoutLine{.cdecl, 
-    dynlib: lib, importc: "pango_layout_get_line".}
-proc get_lines*(layout: PLayout): PGSList{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_lines".}
-proc reference*(line: PLayoutLine){.cdecl, dynlib: lib, 
-    importc: "pango_layout_line_ref".}
-proc unref*(line: PLayoutLine){.cdecl, dynlib: lib, 
-    importc: "pango_layout_line_unref".}
-proc x_to_index*(line: PLayoutLine, x_pos: int32, index: var int32, 
-                             trailing: var int32): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_layout_line_x_to_index".}
-proc index_to_x*(line: PLayoutLine, index: int32, 
-                             trailing: gboolean, x_pos: var int32){.cdecl, 
-    dynlib: lib, importc: "pango_layout_line_index_to_x".}
-proc get_extents*(line: PLayoutLine, ink_rect: PRectangle, 
-                              logical_rect: PRectangle){.cdecl, dynlib: lib, 
-    importc: "pango_layout_line_get_extents".}
-proc get_pixel_extents*(layout_line: PLayoutLine, 
-                                    ink_rect: PRectangle, 
-                                    logical_rect: PRectangle){.cdecl, 
-    dynlib: lib, importc: "pango_layout_line_get_pixel_extents".}
-proc get_iter*(layout: PLayout): PLayoutIter{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_iter".}
-proc free*(iter: PLayoutIter){.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_free".}
-proc get_index*(iter: PLayoutIter): int32{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_get_index".}
-proc get_run*(iter: PLayoutIter): PLayoutRun{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_get_run".}
-proc get_line*(iter: PLayoutIter): PLayoutLine{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_get_line".}
-proc at_last_line*(iter: PLayoutIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_at_last_line".}
-proc next_char*(iter: PLayoutIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_next_char".}
-proc next_cluster*(iter: PLayoutIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_next_cluster".}
-proc next_run*(iter: PLayoutIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_next_run".}
-proc next_line*(iter: PLayoutIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_next_line".}
-proc get_char_extents*(iter: PLayoutIter, logical_rect: PRectangle){.
-    cdecl, dynlib: lib, importc: "pango_layout_iter_get_char_extents".}
-proc get_cluster_extents*(iter: PLayoutIter, ink_rect: PRectangle, 
-                                      logical_rect: PRectangle){.cdecl, 
-    dynlib: lib, importc: "pango_layout_iter_get_cluster_extents".}
-proc get_run_extents*(iter: PLayoutIter, ink_rect: PRectangle, 
-                                  logical_rect: PRectangle){.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_get_run_extents".}
-proc get_line_extents*(iter: PLayoutIter, ink_rect: PRectangle, 
-                                   logical_rect: PRectangle){.cdecl, 
-    dynlib: lib, importc: "pango_layout_iter_get_line_extents".}
-proc get_line_yrange*(iter: PLayoutIter, y0: var int32, 
-                                  y1: var int32){.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_get_line_yrange".}
-proc get_layout_extents*(iter: PLayoutIter, ink_rect: PRectangle, 
-                                     logical_rect: PRectangle){.cdecl, 
-    dynlib: lib, importc: "pango_layout_iter_get_layout_extents".}
-proc get_baseline*(iter: PLayoutIter): int32{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_get_baseline".}
-proc TYPE_TAB_ARRAY*(): GType
-proc tab_array_new*(initial_size: gint, positions_in_pixels: gboolean): PTabArray{.
-    cdecl, dynlib: lib, importc: "pango_tab_array_new".}
-proc tab_array_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "pango_tab_array_get_type".}
-proc copy*(src: PTabArray): PTabArray{.cdecl, dynlib: lib, 
-    importc: "pango_tab_array_copy".}
-proc free*(tab_array: PTabArray){.cdecl, dynlib: lib, 
-    importc: "pango_tab_array_free".}
-proc get_size*(tab_array: PTabArray): gint{.cdecl, dynlib: lib, 
-    importc: "pango_tab_array_get_size".}
-proc resize*(tab_array: PTabArray, new_size: gint){.cdecl, 
-    dynlib: lib, importc: "pango_tab_array_resize".}
-proc set_tab*(tab_array: PTabArray, tab_index: gint, 
-                        alignment: TTabAlign, location: gint){.cdecl, 
-    dynlib: lib, importc: "pango_tab_array_set_tab".}
-proc get_tab*(tab_array: PTabArray, tab_index: gint, 
-                        alignment: PTabAlign, location: Pgint){.cdecl, 
-    dynlib: lib, importc: "pango_tab_array_get_tab".}
-proc get_positions_in_pixels*(tab_array: PTabArray): gboolean{.cdecl, 
-    dynlib: lib, importc: "pango_tab_array_get_positions_in_pixels".}
-proc ASCENT*(rect: TRectangle): int32 = 
-  result = -rect.y
-
-proc DESCENT*(rect: TRectangle): int32 = 
-  result = (rect.y) + (rect.height)
-
-proc LBEARING*(rect: TRectangle): int32 = 
-  result = rect.x
-
-proc RBEARING*(rect: TRectangle): int32 = 
-  result = (rect.x) + (rect.width)
-
-proc TYPE_LANGUAGE*(): GType = 
-  result = language_get_type()
-
-proc to_string*(language: PLanguage): cstring = 
-  result = cast[cstring](language)
-
-proc PIXELS*(d: int): int = 
-  if d >= 0: 
-    result = (d + (SCALE div 2)) div SCALE
-  else: 
-    result = (d - (SCALE div 2)) div SCALE
-
-proc TYPE_COLOR*(): GType = 
-  result = color_get_type()
-
-proc TYPE_ATTR_LIST*(): GType = 
-  result = attr_list_get_type()
-
-proc is_line_break*(a: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_line_break) shr
-      bp_TPangoLogAttr_is_line_break
-
-proc set_is_line_break*(a: PLogAttr, `is_line_break`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_line_break` shl bp_TPangoLogAttr_is_line_break) and
-      bm_TPangoLogAttr_is_line_break)
-
-proc is_mandatory_break*(a: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_mandatory_break) shr
-      bp_TPangoLogAttr_is_mandatory_break
-
-proc set_is_mandatory_break*(a: PLogAttr, `is_mandatory_break`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_mandatory_break` shl bp_TPangoLogAttr_is_mandatory_break) and
-      bm_TPangoLogAttr_is_mandatory_break)
-
-proc is_char_break*(a: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_char_break) shr
-      bp_TPangoLogAttr_is_char_break
-
-proc set_is_char_break*(a: PLogAttr, `is_char_break`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_char_break` shl bp_TPangoLogAttr_is_char_break) and
-      bm_TPangoLogAttr_is_char_break)
-
-proc is_white*(a: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_white) shr
-      bp_TPangoLogAttr_is_white
-
-proc set_is_white*(a: PLogAttr, `is_white`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_white` shl bp_TPangoLogAttr_is_white) and
-      bm_TPangoLogAttr_is_white)
-
-proc is_cursor_position*(a: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_cursor_position) shr
-      bp_TPangoLogAttr_is_cursor_position
-
-proc set_is_cursor_position*(a: PLogAttr, `is_cursor_position`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_cursor_position` shl bp_TPangoLogAttr_is_cursor_position) and
-      bm_TPangoLogAttr_is_cursor_position)
-
-proc is_word_start*(a: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_word_start) shr
-      bp_TPangoLogAttr_is_word_start
-
-proc set_is_word_start*(a: PLogAttr, `is_word_start`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_word_start` shl bp_TPangoLogAttr_is_word_start) and
-      bm_TPangoLogAttr_is_word_start)
-
-proc is_word_end*(a: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_word_end) shr
-      bp_TPangoLogAttr_is_word_end
-
-proc set_is_word_end*(a: PLogAttr, `is_word_end`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_word_end` shl bp_TPangoLogAttr_is_word_end) and
-      bm_TPangoLogAttr_is_word_end)
-
-proc is_sentence_boundary*(a: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_sentence_boundary) shr
-      bp_TPangoLogAttr_is_sentence_boundary
-
-proc set_is_sentence_boundary*(a: PLogAttr, `is_sentence_boundary`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_sentence_boundary` shl bp_TPangoLogAttr_is_sentence_boundary) and
-      bm_TPangoLogAttr_is_sentence_boundary)
-
-proc is_sentence_start*(a: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_sentence_start) shr
-      bp_TPangoLogAttr_is_sentence_start
-
-proc set_is_sentence_start*(a: PLogAttr, `is_sentence_start`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_sentence_start` shl bp_TPangoLogAttr_is_sentence_start) and
-      bm_TPangoLogAttr_is_sentence_start)
-
-proc is_sentence_end*(a: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_sentence_end) shr
-      bp_TPangoLogAttr_is_sentence_end
-
-proc set_is_sentence_end*(a: PLogAttr, `is_sentence_end`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_sentence_end` shl bp_TPangoLogAttr_is_sentence_end) and
-      bm_TPangoLogAttr_is_sentence_end)
-
-proc TYPE_CONTEXT*(): GType = 
-  result = context_get_type()
-
-proc CONTEXT*(anObject: pointer): PContext = 
-  result = cast[PContext](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_CONTEXT()))
-
-proc CONTEXT_CLASS*(klass: pointer): PContextClass = 
-  result = cast[PContextClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_CONTEXT()))
-
-proc IS_CONTEXT*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_CONTEXT())
-
-proc IS_CONTEXT_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_CONTEXT())
-
-proc GET_CLASS*(obj: PContext): PContextClass = 
-  result = cast[PContextClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_CONTEXT()))
-
-proc TYPE_FONTSET*(): GType = 
-  result = fontset_get_type()
-
-proc FONTSET*(anObject: pointer): PFontset = 
-  result = cast[PFontset](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_FONTSET()))
-
-proc IS_FONTSET*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_FONTSET())
-
-proc FONTSET_CLASS*(klass: pointer): PFontsetClass = 
-  result = cast[PFontsetClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_FONTSET()))
-
-proc IS_FONTSET_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_FONTSET())
-
-proc GET_CLASS*(obj: PFontset): PFontsetClass = 
-  result = cast[PFontsetClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_FONTSET()))
-
-proc fontset_simple_get_type(): GType{.importc: "pango_fontset_simple_get_type", 
-                                       cdecl, dynlib: lib.}
-proc TYPE_FONTSET_SIMPLE*(): GType = 
-  result = fontset_simple_get_type()
-
-proc FONTSET_SIMPLE*(anObject: pointer): PFontsetSimple = 
-  result = cast[PFontsetSimple](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_FONTSET_SIMPLE()))
-
-proc IS_FONTSET_SIMPLE*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_FONTSET_SIMPLE())
-
-proc TYPE_FONT_DESCRIPTION*(): GType = 
-  result = font_description_get_type()
-
-proc TYPE_FONT_METRICS*(): GType = 
-  result = font_metrics_get_type()
-
-proc TYPE_FONT_FAMILY*(): GType = 
-  result = font_family_get_type()
-
-proc FONT_FAMILY*(anObject: pointer): PFontFamily = 
-  result = cast[PFontFamily](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_FONT_FAMILY()))
-
-proc IS_FONT_FAMILY*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_FONT_FAMILY())
-
-proc FONT_FAMILY_CLASS*(klass: Pointer): PFontFamilyClass = 
-  result = cast[PFontFamilyClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_FONT_FAMILY()))
-
-proc IS_FONT_FAMILY_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_FONT_FAMILY())
-
-proc GET_CLASS*(obj: PFontFamily): PFontFamilyClass = 
-  result = cast[PFontFamilyClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_FONT_FAMILY()))
-
-proc TYPE_FONT_FACE*(): GType = 
-  result = font_face_get_type()
-
-proc FONT_FACE*(anObject: Pointer): PFontFace = 
-  result = cast[PFontFace](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_FONT_FACE()))
-
-proc IS_FONT_FACE*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_FONT_FACE())
-
-proc FONT_FACE_CLASS*(klass: Pointer): PFontFaceClass = 
-  result = cast[PFontFaceClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_FONT_FACE()))
-
-proc IS_FONT_FACE_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_FONT_FACE())
-
-proc FONT_FACE_GET_CLASS*(obj: Pointer): PFontFaceClass = 
-  result = cast[PFontFaceClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_FONT_FACE()))
-
-proc TYPE_FONT*(): GType = 
-  result = font_get_type()
-
-proc FONT*(anObject: Pointer): PFont = 
-  result = cast[PFont](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_FONT()))
-
-proc IS_FONT*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_FONT())
-
-proc FONT_CLASS*(klass: Pointer): PFontClass = 
-  result = cast[PFontClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_FONT()))
-
-proc IS_FONT_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_FONT())
-
-proc GET_CLASS*(obj: PFont): PFontClass = 
-  result = cast[PFontClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_FONT()))
-
-proc TYPE_FONT_MAP*(): GType = 
-  result = font_map_get_type()
-
-proc FONT_MAP*(anObject: pointer): PFontmap = 
-  result = cast[PFontmap](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_FONT_MAP()))
-
-proc IS_FONT_MAP*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_FONT_MAP())
-
-proc FONT_MAP_CLASS*(klass: pointer): PFontMapClass = 
-  result = cast[PFontMapClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_FONT_MAP()))
-
-proc IS_FONT_MAP_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_FONT_MAP())
-
-proc GET_CLASS*(obj: PFontMap): PFontMapClass = 
-  result = cast[PFontMapClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_FONT_MAP()))
-
-proc is_cluster_start*(a: PGlyphVisAttr): guint = 
-  result = (a.flag0 and bm_TPangoGlyphVisAttr_is_cluster_start) shr
-      bp_TPangoGlyphVisAttr_is_cluster_start
-
-proc set_is_cluster_start*(a: PGlyphVisAttr, `is_cluster_start`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_cluster_start` shl bp_TPangoGlyphVisAttr_is_cluster_start) and
-      bm_TPangoGlyphVisAttr_is_cluster_start)
-
-proc TYPE_GLYPH_STRING*(): GType = 
-  result = glyph_string_get_type()
-
-proc TYPE_LAYOUT*(): GType = 
-  result = layout_get_type()
-
-proc LAYOUT*(anObject: pointer): PLayout = 
-  result = cast[PLayout](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_LAYOUT()))
-
-proc LAYOUT_CLASS*(klass: pointer): PLayoutClass = 
-  result = cast[PLayoutClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_LAYOUT()))
-
-proc IS_LAYOUT*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_LAYOUT())
-
-proc IS_LAYOUT_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_LAYOUT())
-
-proc GET_CLASS*(obj: PLayout): PLayoutClass = 
-  result = cast[PLayoutClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_LAYOUT()))
-
-proc TYPE_TAB_ARRAY*(): GType = 
-  result = tab_array_get_type()
diff --git a/lib/wrappers/gtk/pangoutils.nim b/lib/wrappers/gtk/pangoutils.nim
deleted file mode 100644
index 240273b11..000000000
--- a/lib/wrappers/gtk/pangoutils.nim
+++ /dev/null
@@ -1,42 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  glib2, pango
-
-proc split_file_list*(str: cstring): PPchar{.cdecl, dynlib: lib, 
-    importc: "pango_split_file_list".}
-proc trim_string*(str: cstring): cstring{.cdecl, dynlib: lib, 
-    importc: "pango_trim_string".}
-proc read_line*(stream: TFile, str: PGString): gint{.cdecl, dynlib: lib, 
-    importc: "pango_read_line".}
-proc skip_space*(pos: PPchar): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_skip_space".}
-proc scan_word*(pos: PPchar, OutStr: PGString): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_scan_word".}
-proc scan_string*(pos: PPchar, OutStr: PGString): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_scan_string".}
-proc scan_int*(pos: PPchar, OutInt: ptr int32): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_scan_int".}
-proc config_key_get*(key: cstring): cstring{.cdecl, dynlib: lib, 
-    importc: "pango_config_key_get".}
-proc lookup_aliases*(fontname: cstring, families: PPPchar, n_families: ptr int32){.
-    cdecl, dynlib: lib, importc: "pango_lookup_aliases".}
-proc parse_style*(str: cstring, style: PStyle, warn: gboolean): gboolean{.cdecl, 
-    dynlib: lib, importc: "pango_parse_style".}
-proc parse_variant*(str: cstring, variant: PVariant, warn: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "pango_parse_variant".}
-proc parse_weight*(str: cstring, weight: PWeight, warn: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "pango_parse_weight".}
-proc parse_stretch*(str: cstring, stretch: PStretch, warn: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "pango_parse_stretch".}
-proc get_sysconf_subdirectory*(): cstring{.cdecl, dynlib: lib, 
-    importc: "pango_get_sysconf_subdirectory".}
-proc get_lib_subdirectory*(): cstring{.cdecl, dynlib: lib, 
-                                      importc: "pango_get_lib_subdirectory".}
-proc log2vis_get_embedding_levels*(str: Pgunichar, len: int32, 
-                                   pbase_dir: PDirection, 
-                                   embedding_level_list: Pguint8): gboolean{.
-    cdecl, dynlib: lib, importc: "pango_log2vis_get_embedding_levels".}
-proc get_mirror_char*(ch: gunichar, mirrored_ch: Pgunichar): gboolean{.cdecl, 
-    dynlib: lib, importc: "pango_get_mirror_char".}
-proc get_sample_string*(language: PLanguage): cstring{.cdecl, 
-    dynlib: lib, importc: "pango_language_get_sample_string".}
diff --git a/lib/wrappers/lua/lauxlib.nim b/lib/wrappers/lua/lauxlib.nim
deleted file mode 100644
index b985858d3..000000000
--- a/lib/wrappers/lua/lauxlib.nim
+++ /dev/null
@@ -1,208 +0,0 @@
-#*****************************************************************************
-# *                                                                            *
-# *  File:        lauxlib.pas                                                  *
-# *  Authors:     TeCGraf           (C headers + actual Lua libraries)         *
-# *               Lavergne Thomas   (original translation to Pascal)           *
-# *               Bram Kuijvenhoven (update to Lua 5.1.1 for FreePascal)       *
-# *  Description: Lua auxiliary library                                        *
-# *                                                                            *
-# *****************************************************************************
-#
-#** $Id: lauxlib.h,v 1.59 2003/03/18 12:25:32 roberto Exp $
-#** Auxiliary functions for building Lua libraries
-#** See Copyright Notice in lua.h
-#
-#
-#** Translated to pascal by Lavergne Thomas
-#** Notes :
-#**    - Pointers type was prefixed with 'P'
-#** Bug reports :
-#**    - thomas.lavergne@laposte.net
-#**   In french or in english
-#
-
-import 
-  lua
-
-proc pushstring*(L: PState, s: string)
-  # compatibilty macros
-proc getn*(L: PState, n: cint): cint
-  # calls lua_objlen
-proc setn*(L: PState, t, n: cint)
-  # does nothing!
-type 
-  Treg*{.final.} = object 
-    name*: cstring
-    func*: CFunction
-
-  Preg* = ptr Treg
-
-
-{.push callConv: cdecl, dynlib: lua.LIB_NAME.}
-{.push importc: "luaL_$1".}
-
-proc openlib*(L: PState, libname: cstring, lr: Preg, nup: cint)
-proc register*(L: PState, libname: cstring, lr: Preg)
-
-proc getmetafield*(L: PState, obj: cint, e: cstring): cint
-proc callmeta*(L: PState, obj: cint, e: cstring): cint
-proc typerror*(L: PState, narg: cint, tname: cstring): cint
-proc argerror*(L: PState, numarg: cint, extramsg: cstring): cint
-proc checklstring*(L: PState, numArg: cint, len: ptr int): cstring
-proc optlstring*(L: PState, numArg: cint, def: cstring, len: ptr cint): cstring
-proc checknumber*(L: PState, numArg: cint): Number
-proc optnumber*(L: PState, nArg: cint, def: Number): Number
-proc checkinteger*(L: PState, numArg: cint): Integer
-proc optinteger*(L: PState, nArg: cint, def: Integer): Integer
-proc checkstack*(L: PState, sz: cint, msg: cstring)
-proc checktype*(L: PState, narg, t: cint)
-
-proc checkany*(L: PState, narg: cint)
-proc newmetatable*(L: PState, tname: cstring): cint
-
-proc checkudata*(L: PState, ud: cint, tname: cstring): Pointer
-proc where*(L: PState, lvl: cint)
-proc error*(L: PState, fmt: cstring): cint{.varargs.}
-proc checkoption*(L: PState, narg: cint, def: cstring, lst: cstringArray): cint
-
-proc unref*(L: PState, t, theref: cint)
-proc loadfile*(L: PState, filename: cstring): cint
-proc loadbuffer*(L: PState, buff: cstring, size: cint, name: cstring): cint
-proc loadstring*(L: PState, s: cstring): cint
-proc newstate*(): PState
-
-{.pop.}
-proc reference*(L: PState, t: cint): cint{.importc: "luaL_ref".}
-
-{.pop.}
-
-proc open*(): PState
-  # compatibility; moved from unit lua to lauxlib because it needs luaL_newstate
-  #
-  #** ===============================================================
-  #** some useful macros
-  #** ===============================================================
-  #
-proc argcheck*(L: PState, cond: bool, numarg: cint, extramsg: cstring)
-proc checkstring*(L: PState, n: cint): cstring
-proc optstring*(L: PState, n: cint, d: cstring): cstring
-proc checkint*(L: PState, n: cint): cint
-proc checklong*(L: PState, n: cint): clong
-proc optint*(L: PState, n: cint, d: float64): cint
-proc optlong*(L: PState, n: cint, d: float64): clong
-proc dofile*(L: PState, filename: cstring): cint
-proc dostring*(L: PState, str: cstring): cint
-proc getmetatable*(L: PState, tname: cstring)
-  # not translated:
-  # #define luaL_opt(L,f,n,d)  (lua_isnoneornil(L,(n)) ? (d) : f(L,(n)))
-  #
-  #** =======================================================
-  #** Generic Buffer manipulation
-  #** =======================================================
-  #
-const                         # note: this is just arbitrary, as it related to the BUFSIZ defined in stdio.h ...
-  BUFFERSIZE* = 4096
-
-type 
-  Buffer*{.final.} = object 
-    p*: cstring               # current position in buffer 
-    lvl*: cint                 # number of strings in the stack (level) 
-    L*: PState
-    buffer*: array[0..BUFFERSIZE - 1, Char] # warning: see note above about LUAL_BUFFERSIZE
-  
-  PBuffer* = ptr Buffer
-
-proc addchar*(B: PBuffer, c: Char)
-  # warning: see note above about LUAL_BUFFERSIZE
-  # compatibility only (alias for luaL_addchar) 
-proc putchar*(B: PBuffer, c: Char)
-  # warning: see note above about LUAL_BUFFERSIZE
-proc addsize*(B: PBuffer, n: cint)
-
-{.push callConv: cdecl, dynlib: lua.LIB_NAME, importc: "luaL_$1".}
-proc buffinit*(L: PState, B: PBuffer)
-proc prepbuffer*(B: PBuffer): cstring
-proc addlstring*(B: PBuffer, s: cstring, L: cint)
-proc addstring*(B: PBuffer, s: cstring)
-proc addvalue*(B: PBuffer)
-proc pushresult*(B: PBuffer)
-proc gsub*(L: PState, s, p, r: cstring): cstring
-proc findtable*(L: PState, idx: cint, fname: cstring, szhint: cint): cstring
-  # compatibility with ref system 
-  # pre-defined references 
-{.pop.}
-
-const 
-  NOREF* = - 2
-  REFNIL* = - 1
-
-proc unref*(L: PState, theref: cint)
-proc getref*(L: PState, theref: cint)
-  #
-  #** Compatibility macros and functions
-  #
-# implementation
-
-proc pushstring(L: PState, s: string) = 
-  pushlstring(L, cstring(s), s.len.cint)
-
-proc getn(L: PState, n: cint): cint = 
-  Result = objlen(L, n)
-
-proc setn(L: PState, t, n: cint) = 
-  # does nothing as this operation is deprecated
-  nil
-
-proc open(): PState = 
-  Result = newstate()
-
-proc dofile(L: PState, filename: cstring): cint = 
-  Result = loadfile(L, filename)
-  if Result == 0: Result = pcall(L, 0, MULTRET, 0)
-  
-proc dostring(L: PState, str: cstring): cint = 
-  Result = loadstring(L, str)
-  if Result == 0: Result = pcall(L, 0, MULTRET, 0)
-  
-proc getmetatable(L: PState, tname: cstring) = 
-  getfield(L, REGISTRYINDEX, tname)
-
-proc argcheck(L: PState, cond: bool, numarg: cint, extramsg: cstring) = 
-  if not cond: 
-    discard argerror(L, numarg, extramsg)
-
-proc checkstring(L: PState, n: cint): cstring = 
-  Result = checklstring(L, n, nil)
-
-proc optstring(L: PState, n: cint, d: cstring): cstring = 
-  Result = optlstring(L, n, d, nil)
-
-proc checkint(L: PState, n: cint): cint = 
-  Result = cint(checknumber(L, n))
-
-proc checklong(L: PState, n: cint): clong = 
-  Result = int32(ToInt(checknumber(L, n)))
-
-proc optint(L: PState, n: cint, d: float64): cint = 
-  Result = optnumber(L, n, d).cint
-
-proc optlong(L: PState, n: cint, d: float64): clong = 
-  Result = int32(ToInt(optnumber(L, n, d)))
-
-proc addchar(B: PBuffer, c: Char) = 
-  if cast[int](addr((B.p))) < (cast[int](addr((B.buffer[0]))) + BUFFERSIZE): 
-    discard prepbuffer(B)
-  B.p[1] = c
-  B.p = cast[cstring](cast[int](B.p) + 1)
-
-proc putchar(B: PBuffer, c: Char) = 
-  addchar(B, c)
-
-proc addsize(B: PBuffer, n: cint) = 
-  B.p = cast[cstring](cast[int](B.p) + n)
-
-proc unref(L: PState, theref: cint) = 
-  unref(L, REGISTRYINDEX, theref)
-
-proc getref(L: PState, theref: cint) = 
-  rawgeti(L, REGISTRYINDEX, theref)
diff --git a/lib/wrappers/lua/lua.nim b/lib/wrappers/lua/lua.nim
deleted file mode 100644
index 153714cee..000000000
--- a/lib/wrappers/lua/lua.nim
+++ /dev/null
@@ -1,364 +0,0 @@
-#*****************************************************************************
-# *                                                                            *
-# *  File:        lua.pas                                                      *
-# *  Authors:     TeCGraf           (C headers + actual Lua libraries)         *
-# *               Lavergne Thomas   (original translation to Pascal)           *
-# *               Bram Kuijvenhoven (update to Lua 5.1.1 for FreePascal)       *
-# *  Description: Basic Lua library                                            *
-# *                                                                            *
-# *****************************************************************************
-#
-#** $Id: lua.h,v 1.175 2003/03/18 12:31:39 roberto Exp $
-#** Lua - An Extensible Extension Language
-#** TeCGraf: Computer Graphics Technology Group, PUC-Rio, Brazil
-#** http://www.lua.org   mailto:info@lua.org
-#** See Copyright Notice at the end of this file
-#
-#
-#** Updated to Lua 5.1.1 by Bram Kuijvenhoven (bram at kuijvenhoven dot net),
-#**   Hexis BV (http://www.hexis.nl), the Netherlands
-#** Notes:
-#**    - Only tested with FPC (FreePascal Compiler)
-#**    - Using LuaBinaries styled DLL/SO names, which include version names
-#**    - LUA_YIELD was suffixed by '_' for avoiding name collision
-#
-#
-#** Translated to pascal by Lavergne Thomas
-#** Notes :
-#**    - Pointers type was prefixed with 'P'
-#**    - lua_upvalueindex constant was transformed to function
-#**    - Some compatibility function was isolated because with it you must have
-#**      lualib.
-#**    - LUA_VERSION was suffixed by '_' for avoiding name collision.
-#** Bug reports :
-#**    - thomas.lavergne@laposte.net
-#**   In french or in english
-#
-
-when defined(useLuajit):
-  when defined(MACOSX):
-    const
-      NAME* = "libluajit.dylib"
-      LIB_NAME* = "libluajit.dylib"
-  elif defined(UNIX):
-    const
-      NAME* = "libluajit.so(|.0)"
-      LIB_NAME* = "libluajit.so(|.0)"
-  else:
-    const
-      NAME* = "luajit.dll"
-      LIB_NAME* = "luajit.dll"
-else:
-  when defined(MACOSX):
-    const
-      NAME* = "liblua(|5.1|5.0).dylib"
-      LIB_NAME* = "liblua(|5.1|5.0).dylib"
-  elif defined(UNIX):
-    const
-      NAME* = "liblua(|5.1|5.0).so(|.0)"
-      LIB_NAME* = "liblua(|5.1|5.0).so(|.0)"
-  else:
-    const 
-      NAME* = "lua(|5.1|5.0).dll"
-      LIB_NAME* = "lua(|5.1|5.0).dll"
-
-const 
-  VERSION* = "Lua 5.1"
-  RELEASE* = "Lua 5.1.1"
-  VERSION_NUM* = 501
-  COPYRIGHT* = "Copyright (C) 1994-2006 Lua.org, PUC-Rio"
-  AUTHORS* = "R. Ierusalimschy, L. H. de Figueiredo & W. Celes"
-  # option for multiple returns in `lua_pcall' and `lua_call' 
-  MULTRET* = - 1              #
-                              #** pseudo-indices
-                              #
-  REGISTRYINDEX* = - 10000
-  ENVIRONINDEX* = - 10001
-  GLOBALSINDEX* = - 10002
-
-proc upvalueindex*(I: cint): cint
-const                         # thread status; 0 is OK 
-  constYIELD* = 1
-  ERRRUN* = 2
-  ERRSYNTAX* = 3
-  ERRMEM* = 4
-  ERRERR* = 5
-
-type 
-  PState* = Pointer
-  CFunction* = proc (L: PState): cint{.cdecl.}
-
-#
-#** functions that read/write blocks when loading/dumping Lua chunks
-#
-
-type 
-  Reader* = proc (L: PState, ud: Pointer, sz: ptr cint): cstring{.cdecl.}
-  Writer* = proc (L: PState, p: Pointer, sz: cint, ud: Pointer): cint{.cdecl.}
-  Alloc* = proc (ud, theptr: Pointer, osize, nsize: cint){.cdecl.}
-
-const 
-  TNONE* = - 1
-  TNIL* = 0
-  TBOOLEAN* = 1
-  TLIGHTUSERDATA* = 2
-  TNUMBER* = 3
-  TSTRING* = 4
-  TTABLE* = 5
-  TFUNCTION* = 6
-  TUSERDATA* = 7
-  TTHREAD* = 8                # minimum Lua stack available to a C function 
-  MINSTACK* = 20
-
-type                          # Type of Numbers in Lua 
-  Number* = float
-  Integer* = cint
-
-{.pragma: ilua, importc: "lua_$1".}
-
-{.push callConv: cdecl, dynlib: LibName.}
-#{.push importc: "lua_$1".}
-
-proc newstate*(f: Alloc, ud: Pointer): PState {.ilua.}
-
-proc close*(L: PState){.ilua.}
-proc newthread*(L: PState): PState{.ilua.}
-proc atpanic*(L: PState, panicf: CFunction): CFunction{.ilua.}
-
-proc gettop*(L: PState): cint{.ilua.}
-proc settop*(L: PState, idx: cint){.ilua.}
-proc pushvalue*(L: PState, Idx: cint){.ilua.}
-proc remove*(L: PState, idx: cint){.ilua.}
-proc insert*(L: PState, idx: cint){.ilua.}
-proc replace*(L: PState, idx: cint){.ilua.}
-proc checkstack*(L: PState, sz: cint): cint{.ilua.}
-proc xmove*(`from`, `to`: PState, n: cint){.ilua.}
-proc isnumber*(L: PState, idx: cint): cint{.ilua.}
-proc isstring*(L: PState, idx: cint): cint{.ilua.}
-proc iscfunction*(L: PState, idx: cint): cint{.ilua.}
-proc isuserdata*(L: PState, idx: cint): cint{.ilua.}
-proc luatype*(L: PState, idx: cint): cint{.importc: "lua_type".}
-proc typename*(L: PState, tp: cint): cstring{.ilua.}
-proc equal*(L: PState, idx1, idx2: cint): cint{.ilua.}
-proc rawequal*(L: PState, idx1, idx2: cint): cint{.ilua.}
-proc lessthan*(L: PState, idx1, idx2: cint): cint{.ilua.}
-proc tonumber*(L: PState, idx: cint): Number{.ilua.}
-proc tointeger*(L: PState, idx: cint): Integer{.ilua.}
-proc toboolean*(L: PState, idx: cint): cint{.ilua.}
-proc tolstring*(L: PState, idx: cint, length: ptr cint): cstring{.ilua.}
-proc objlen*(L: PState, idx: cint): cint{.ilua.}
-proc tocfunction*(L: PState, idx: cint): CFunction{.ilua.}
-proc touserdata*(L: PState, idx: cint): Pointer{.ilua.}
-proc tothread*(L: PState, idx: cint): PState{.ilua.}
-proc topointer*(L: PState, idx: cint): Pointer{.ilua.}
-proc pushnil*(L: PState){.ilua.}
-proc pushnumber*(L: PState, n: Number){.ilua.}
-proc pushinteger*(L: PState, n: Integer){.ilua.}
-proc pushlstring*(L: PState, s: cstring, len: cint){.ilua.}
-proc pushstring*(L: PState, s: cstring){.ilua.}
-proc pushvfstring*(L: PState, fmt: cstring, argp: Pointer): cstring{.ilua.}
-proc pushfstring*(L: PState, fmt: cstring): cstring{.varargs,ilua.}
-proc pushcclosure*(L: PState, fn: CFunction, n: cint){.ilua.}
-proc pushboolean*(L: PState, b: cint){.ilua.}
-proc pushlightuserdata*(L: PState, p: Pointer){.ilua.}
-proc pushthread*(L: PState){.ilua.}
-proc gettable*(L: PState, idx: cint){.ilua.}
-proc getfield*(L: Pstate, idx: cint, k: cstring){.ilua.}
-proc rawget*(L: PState, idx: cint){.ilua.}
-proc rawgeti*(L: PState, idx, n: cint){.ilua.}
-proc createtable*(L: PState, narr, nrec: cint){.ilua.}
-proc newuserdata*(L: PState, sz: cint): Pointer{.ilua.}
-proc getmetatable*(L: PState, objindex: cint): cint{.ilua.}
-proc getfenv*(L: PState, idx: cint){.ilua.}
-proc settable*(L: PState, idx: cint){.ilua.}
-proc setfield*(L: PState, idx: cint, k: cstring){.ilua.}
-proc rawset*(L: PState, idx: cint){.ilua.}
-proc rawseti*(L: PState, idx, n: cint){.ilua.}
-proc setmetatable*(L: PState, objindex: cint): cint{.ilua.}
-proc setfenv*(L: PState, idx: cint): cint{.ilua.}
-proc call*(L: PState, nargs, nresults: cint){.ilua.}
-proc pcall*(L: PState, nargs, nresults, errf: cint): cint{.ilua.}
-proc cpcall*(L: PState, func: CFunction, ud: Pointer): cint{.ilua.}
-proc load*(L: PState, reader: Reader, dt: Pointer, chunkname: cstring): cint{.ilua.}
-proc dump*(L: PState, writer: Writer, data: Pointer): cint{.ilua.}
-proc luayield*(L: PState, nresults: cint): cint{.importc: "lua_yield".}
-proc resume*(L: PState, narg: cint): cint{.ilua.}
-proc status*(L: PState): cint{.ilua.}
-proc gc*(L: PState, what, data: cint): cint{.ilua.}
-proc error*(L: PState): cint{.ilua.}
-proc next*(L: PState, idx: cint): cint{.ilua.}
-proc concat*(L: PState, n: cint){.ilua.}
-proc getallocf*(L: PState, ud: ptr Pointer): Alloc{.ilua.}
-proc setallocf*(L: PState, f: Alloc, ud: Pointer){.ilua.}
-{.pop.}
-
-#
-#** Garbage-collection functions and options
-#
-
-const 
-  GCSTOP* = 0
-  GCRESTART* = 1
-  GCCOLLECT* = 2
-  GCCOUNT* = 3
-  GCCOUNTB* = 4
-  GCSTEP* = 5
-  GCSETPAUSE* = 6
-  GCSETSTEPMUL* = 7
-
-#
-#** ===============================================================
-#** some useful macros
-#** ===============================================================
-#
-
-proc pop*(L: PState, n: cint)
-proc newtable*(L: Pstate)
-proc register*(L: PState, n: cstring, f: CFunction)
-proc pushcfunction*(L: PState, f: CFunction)
-proc strlen*(L: Pstate, i: cint): cint
-proc isfunction*(L: PState, n: cint): bool
-proc istable*(L: PState, n: cint): bool
-proc islightuserdata*(L: PState, n: cint): bool
-proc isnil*(L: PState, n: cint): bool
-proc isboolean*(L: PState, n: cint): bool
-proc isthread*(L: PState, n: cint): bool
-proc isnone*(L: PState, n: cint): bool
-proc isnoneornil*(L: PState, n: cint): bool
-proc pushliteral*(L: PState, s: cstring)
-proc setglobal*(L: PState, s: cstring)
-proc getglobal*(L: PState, s: cstring)
-proc tostring*(L: PState, i: cint): cstring
-#
-#** compatibility macros and functions
-#
-
-proc getregistry*(L: PState)
-proc getgccount*(L: PState): cint
-type 
-  Chunkreader* = Reader
-  Chunkwriter* = Writer
-
-#
-#** ======================================================================
-#** Debug API
-#** ======================================================================
-#
-
-const 
-  HOOKCALL* = 0
-  HOOKRET* = 1
-  HOOKLINE* = 2
-  HOOKCOUNT* = 3
-  HOOKTAILRET* = 4
-
-const 
-  MASKCALL* = 1 shl Ord(HOOKCALL)
-  MASKRET* = 1 shl Ord(HOOKRET)
-  MASKLINE* = 1 shl Ord(HOOKLINE)
-  MASKCOUNT* = 1 shl Ord(HOOKCOUNT)
-
-const 
-  IDSIZE* = 60
-
-type 
-  TDebug*{.final.} = object    # activation record 
-    event*: cint
-    name*: cstring            # (n) 
-    namewhat*: cstring        # (n) `global', `local', `field', `method' 
-    what*: cstring            # (S) `Lua', `C', `main', `tail'
-    source*: cstring          # (S) 
-    currentline*: cint         # (l) 
-    nups*: cint                # (u) number of upvalues 
-    linedefined*: cint         # (S) 
-    lastlinedefined*: cint     # (S) 
-    short_src*: array[0.. <IDSIZE, Char] # (S) \ 
-                               # private part 
-    i_ci*: cint                # active function 
-  
-  PDebug* = ptr TDebug
-  Hook* = proc (L: PState, ar: PDebug){.cdecl.}
-
-#
-#** ======================================================================
-#** Debug API
-#** ======================================================================
-#
-
-{.push callConv: cdecl, dynlib: lua.LIB_NAME.}
-
-proc getstack*(L: PState, level: cint, ar: PDebug): cint{.ilua.}
-proc getinfo*(L: PState, what: cstring, ar: PDebug): cint{.ilua.}
-proc getlocal*(L: PState, ar: PDebug, n: cint): cstring{.ilua.}
-proc setlocal*(L: PState, ar: PDebug, n: cint): cstring{.ilua.}
-proc getupvalue*(L: PState, funcindex: cint, n: cint): cstring{.ilua.}
-proc setupvalue*(L: PState, funcindex: cint, n: cint): cstring{.ilua.}
-proc sethook*(L: PState, func: Hook, mask: cint, count: cint): cint{.ilua.}
-proc gethook*(L: PState): Hook{.ilua.}
-proc gethookmask*(L: PState): cint{.ilua.}
-proc gethookcount*(L: PState): cint{.ilua.}
-
-{.pop.}
-
-# implementation
-
-proc upvalueindex(I: cint): cint = 
-  Result = GLOBALSINDEX - i
-
-proc pop(L: PState, n: cint) = 
-  settop(L, - n - 1)
-
-proc newtable(L: PState) = 
-  createtable(L, 0, 0)
-
-proc register(L: PState, n: cstring, f: CFunction) = 
-  pushcfunction(L, f)
-  setglobal(L, n)
-
-proc pushcfunction(L: PState, f: CFunction) = 
-  pushcclosure(L, f, 0)
-
-proc strlen(L: PState, i: cint): cint = 
-  Result = objlen(L, i)
-
-proc isfunction(L: PState, n: cint): bool = 
-  Result = luatype(L, n) == TFUNCTION
-
-proc istable(L: PState, n: cint): bool = 
-  Result = luatype(L, n) == TTABLE
-
-proc islightuserdata(L: PState, n: cint): bool = 
-  Result = luatype(L, n) == TLIGHTUSERDATA
-
-proc isnil(L: PState, n: cint): bool = 
-  Result = luatype(L, n) == TNIL
-
-proc isboolean(L: PState, n: cint): bool = 
-  Result = luatype(L, n) == TBOOLEAN
-
-proc isthread(L: PState, n: cint): bool = 
-  Result = luatype(L, n) == TTHREAD
-
-proc isnone(L: PState, n: cint): bool = 
-  Result = luatype(L, n) == TNONE
-
-proc isnoneornil(L: PState, n: cint): bool = 
-  Result = luatype(L, n) <= 0
-
-proc pushliteral(L: PState, s: cstring) = 
-  pushlstring(L, s, s.len.cint)
-
-proc setglobal(L: PState, s: cstring) = 
-  setfield(L, GLOBALSINDEX, s)
-
-proc getglobal(L: PState, s: cstring) = 
-  getfield(L, GLOBALSINDEX, s)
-
-proc tostring(L: PState, i: cint): cstring = 
-  Result = tolstring(L, i, nil)
-
-proc getregistry(L: PState) = 
-  pushvalue(L, REGISTRYINDEX)
-
-proc getgccount(L: PState): cint = 
-  Result = gc(L, GCCOUNT, 0)
diff --git a/lib/wrappers/lua/lualib.nim b/lib/wrappers/lua/lualib.nim
deleted file mode 100644
index 8c1237dde..000000000
--- a/lib/wrappers/lua/lualib.nim
+++ /dev/null
@@ -1,64 +0,0 @@
-#*****************************************************************************
-# *                                                                            *
-# *  File:        lualib.pas                                                   *
-# *  Authors:     TeCGraf           (C headers + actual Lua libraries)         *
-# *               Lavergne Thomas   (original translation to Pascal)           *
-# *               Bram Kuijvenhoven (update to Lua 5.1.1 for FreePascal)       *
-# *  Description: Standard Lua libraries                                       *
-# *                                                                            *
-# *****************************************************************************
-#
-#** $Id: lualib.h,v 1.28 2003/03/18 12:24:26 roberto Exp $
-#** Lua standard libraries
-#** See Copyright Notice in lua.h
-#
-#
-#** Translated to pascal by Lavergne Thomas
-#** Bug reports :
-#**    - thomas.lavergne@laposte.net
-#**   In french or in english
-#
-
-import 
-  lua
-
-const 
-  COLIBNAME* = "coroutine"
-  TABLIBNAME* = "table"
-  IOLIBNAME* = "io"
-  OSLIBNAME* = "os"
-  STRLINAME* = "string"
-  MATHLIBNAME* = "math"
-  DBLIBNAME* = "debug"
-  LOADLIBNAME* = "package"
-
-{.pragma: ilua, importc: "lua$1".}
-
-{.push callConv: cdecl, dynlib: lua.LIB_NAME.}
-proc open_base*(L: PState): cint{.ilua.}
-proc open_table*(L: PState): cint{.ilua.}
-proc open_io*(L: PState): cint{.ilua.}
-proc open_string*(L: PState): cint{.ilua.}
-proc open_math*(L: PState): cint{.ilua.}
-proc open_debug*(L: PState): cint{.ilua.}
-proc open_package*(L: PState): cint{.ilua.}
-proc openlibs*(L: PState){.importc: "luaL_openlibs".}
-{.pop.}
-
-proc baselibopen*(L: PState): Bool = 
-  open_base(L) != 0'i32
-
-proc tablibopen*(L: PState): Bool = 
-  open_table(L) != 0'i32
-
-proc iolibopen*(L: PState): Bool = 
-  open_io(L) != 0'i32
-
-proc strlibopen*(L: PState): Bool = 
-  open_string(L) != 0'i32
-
-proc mathlibopen*(L: PState): Bool = 
-  open_math(L) != 0'i32
-
-proc dblibopen*(L: PState): Bool = 
-  open_debug(L) != 0'i32
diff --git a/lib/wrappers/opengl/gl.nim b/lib/wrappers/opengl/gl.nim
deleted file mode 100644
index 9387b5bc9..000000000
--- a/lib/wrappers/opengl/gl.nim
+++ /dev/null
@@ -1,1536 +0,0 @@
-#
-#
-#  Adaption of the delphi3d.net OpenGL units to FreePascal
-#  Sebastian Guenther (sg@freepascal.org) in 2002
-#  These units are free to use
-#
-#******************************************************************************
-# Converted to Delphi by Tom Nuydens (tom@delphi3d.net)                        
-# For the latest updates, visit Delphi3D: http://www.delphi3d.net              
-#******************************************************************************
-
-when defined(windows): 
-  {.push, callconv: stdcall.}
-else: 
-  {.push, callconv: cdecl.}
-when defined(windows): 
-  const 
-    dllname* = "opengl32.dll"
-elif defined(macosx): 
-  const 
-    dllname* = "/System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib"
-else: 
-  const 
-    dllname* = "libGL.so.1"
-type 
-  PGLenum* = ptr TGLenum
-  PGLboolean* = ptr TGLboolean
-  PGLbitfield* = ptr TGLbitfield
-  TGLbyte* = int8
-  PGLbyte* = ptr TGlbyte
-  PGLshort* = ptr TGLshort
-  PGLint* = ptr TGLint
-  PGLsizei* = ptr TGLsizei
-  PGLubyte* = ptr TGLubyte
-  PGLushort* = ptr TGLushort
-  PGLuint* = ptr TGLuint
-  PGLfloat* = ptr TGLfloat
-  PGLclampf* = ptr TGLclampf
-  PGLdouble* = ptr TGLdouble
-  PGLclampd* = ptr TGLclampd
-  PGLvoid* = Pointer
-  PPGLvoid* = ptr PGLvoid
-  TGLenum* = cint
-  TGLboolean* = bool
-  TGLbitfield* = cint
-  TGLshort* = int16
-  TGLint* = cint
-  TGLsizei* = int
-  TGLubyte* = int8
-  TGLushort* = int16
-  TGLuint* = cint
-  TGLfloat* = float32
-  TGLclampf* = float32
-  TGLdouble* = float
-  TGLclampd* = float
-
-const                         # Version
-  GL_VERSION_1_1* = 1         # AccumOp
-  constGL_ACCUM* = 0x00000100
-  GL_LOAD* = 0x00000101
-  GL_RETURN* = 0x00000102
-  GL_MULT* = 0x00000103
-  GL_ADD* = 0x00000104        # AlphaFunction
-  GL_NEVER* = 0x00000200
-  GL_LESS* = 0x00000201
-  GL_EQUAL* = 0x00000202
-  GL_LEQUAL* = 0x00000203
-  GL_GREATER* = 0x00000204
-  GL_NOTEQUAL* = 0x00000205
-  GL_GEQUAL* = 0x00000206
-  GL_ALWAYS* = 0x00000207     # AttribMask
-  GL_CURRENT_BIT* = 0x00000001
-  GL_POINT_BIT* = 0x00000002
-  GL_LINE_BIT* = 0x00000004
-  GL_POLYGON_BIT* = 0x00000008
-  GL_POLYGON_STIPPLE_BIT* = 0x00000010
-  GL_PIXEL_MODE_BIT* = 0x00000020
-  GL_LIGHTING_BIT* = 0x00000040
-  GL_FOG_BIT* = 0x00000080
-  GL_DEPTH_BUFFER_BIT* = 0x00000100
-  GL_ACCUM_BUFFER_BIT* = 0x00000200
-  GL_STENCIL_BUFFER_BIT* = 0x00000400
-  GL_VIEWPORT_BIT* = 0x00000800
-  GL_TRANSFORM_BIT* = 0x00001000
-  GL_ENABLE_BIT* = 0x00002000
-  GL_COLOR_BUFFER_BIT* = 0x00004000
-  GL_HINT_BIT* = 0x00008000
-  GL_EVAL_BIT* = 0x00010000
-  GL_LIST_BIT* = 0x00020000
-  GL_TEXTURE_BIT* = 0x00040000
-  GL_SCISSOR_BIT* = 0x00080000
-  GL_ALL_ATTRIB_BITS* = 0x000FFFFF # BeginMode
-  GL_POINTS* = 0x00000000
-  GL_LINES* = 0x00000001
-  GL_LINE_LOOP* = 0x00000002
-  GL_LINE_STRIP* = 0x00000003
-  GL_TRIANGLES* = 0x00000004
-  GL_TRIANGLE_STRIP* = 0x00000005
-  GL_TRIANGLE_FAN* = 0x00000006
-  GL_QUADS* = 0x00000007
-  GL_QUAD_STRIP* = 0x00000008
-  GL_POLYGON* = 0x00000009    # BlendingFactorDest
-  GL_ZERO* = 0
-  GL_ONE* = 1
-  GL_SRC_COLOR* = 0x00000300
-  GL_ONE_MINUS_SRC_COLOR* = 0x00000301
-  GL_SRC_ALPHA* = 0x00000302
-  GL_ONE_MINUS_SRC_ALPHA* = 0x00000303
-  GL_DST_ALPHA* = 0x00000304
-  GL_ONE_MINUS_DST_ALPHA* = 0x00000305 # BlendingFactorSrc
-                                       #      GL_ZERO
-                                       #      GL_ONE
-  GL_DST_COLOR* = 0x00000306
-  GL_ONE_MINUS_DST_COLOR* = 0x00000307
-  GL_SRC_ALPHA_SATURATE* = 0x00000308 #      GL_SRC_ALPHA
-                                      #      GL_ONE_MINUS_SRC_ALPHA
-                                      #      GL_DST_ALPHA
-                                      #      GL_ONE_MINUS_DST_ALPHA
-                                      # Boolean
-  GL_TRUE* = 1
-  GL_FALSE* = 0               # ClearBufferMask
-                              #      GL_COLOR_BUFFER_BIT
-                              #      GL_ACCUM_BUFFER_BIT
-                              #      GL_STENCIL_BUFFER_BIT
-                              #      GL_DEPTH_BUFFER_BIT
-                              # ClientArrayType
-                              #      GL_VERTEX_ARRAY
-                              #      GL_NORMAL_ARRAY
-                              #      GL_COLOR_ARRAY
-                              #      GL_INDEX_ARRAY
-                              #      GL_TEXTURE_COORD_ARRAY
-                              #      GL_EDGE_FLAG_ARRAY
-                              # ClipPlaneName
-  GL_CLIP_PLANE0* = 0x00003000
-  GL_CLIP_PLANE1* = 0x00003001
-  GL_CLIP_PLANE2* = 0x00003002
-  GL_CLIP_PLANE3* = 0x00003003
-  GL_CLIP_PLANE4* = 0x00003004
-  GL_CLIP_PLANE5* = 0x00003005 # ColorMaterialFace
-                               #      GL_FRONT
-                               #      GL_BACK
-                               #      GL_FRONT_AND_BACK
-                               # ColorMaterialParameter
-                               #      GL_AMBIENT
-                               #      GL_DIFFUSE
-                               #      GL_SPECULAR
-                               #      GL_EMISSION
-                               #      GL_AMBIENT_AND_DIFFUSE
-                               # ColorPointerType
-                               #      GL_BYTE
-                               #      GL_UNSIGNED_BYTE
-                               #      GL_SHORT
-                               #      GL_UNSIGNED_SHORT
-                               #      GL_INT
-                               #      GL_UNSIGNED_INT
-                               #      GL_FLOAT
-                               #      GL_DOUBLE
-                               # CullFaceMode
-                               #      GL_FRONT
-                               #      GL_BACK
-                               #      GL_FRONT_AND_BACK
-                               # DataType
-  GL_BYTE* = 0x00001400
-  GL_UNSIGNED_BYTE* = 0x00001401
-  GL_SHORT* = 0x00001402
-  GL_UNSIGNED_SHORT* = 0x00001403
-  GL_INT* = 0x00001404
-  GL_UNSIGNED_INT* = 0x00001405
-  GL_FLOAT* = 0x00001406
-  GL_2_BYTES* = 0x00001407
-  GL_3_BYTES* = 0x00001408
-  GL_4_BYTES* = 0x00001409
-  GL_DOUBLE* = 0x0000140A     # DepthFunction
-                              #      GL_NEVER
-                              #      GL_LESS
-                              #      GL_EQUAL
-                              #      GL_LEQUAL
-                              #      GL_GREATER
-                              #      GL_NOTEQUAL
-                              #      GL_GEQUAL
-                              #      GL_ALWAYS
-                              # DrawBufferMode
-  GL_NONE* = 0
-  GL_FRONT_LEFT* = 0x00000400
-  GL_FRONT_RIGHT* = 0x00000401
-  GL_BACK_LEFT* = 0x00000402
-  GL_BACK_RIGHT* = 0x00000403
-  GL_FRONT* = 0x00000404
-  GL_BACK* = 0x00000405
-  GL_LEFT* = 0x00000406
-  GL_RIGHT* = 0x00000407
-  GL_FRONT_AND_BACK* = 0x00000408
-  GL_AUX0* = 0x00000409
-  GL_AUX1* = 0x0000040A
-  GL_AUX2* = 0x0000040B
-  GL_AUX3* = 0x0000040C       # Enable
-                              #      GL_FOG
-                              #      GL_LIGHTING
-                              #      GL_TEXTURE_1D
-                              #      GL_TEXTURE_2D
-                              #      GL_LINE_STIPPLE
-                              #      GL_POLYGON_STIPPLE
-                              #      GL_CULL_FACE
-                              #      GL_ALPHA_TEST
-                              #      GL_BLEND
-                              #      GL_INDEX_LOGIC_OP
-                              #      GL_COLOR_LOGIC_OP
-                              #      GL_DITHER
-                              #      GL_STENCIL_TEST
-                              #      GL_DEPTH_TEST
-                              #      GL_CLIP_PLANE0
-                              #      GL_CLIP_PLANE1
-                              #      GL_CLIP_PLANE2
-                              #      GL_CLIP_PLANE3
-                              #      GL_CLIP_PLANE4
-                              #      GL_CLIP_PLANE5
-                              #      GL_LIGHT0
-                              #      GL_LIGHT1
-                              #      GL_LIGHT2
-                              #      GL_LIGHT3
-                              #      GL_LIGHT4
-                              #      GL_LIGHT5
-                              #      GL_LIGHT6
-                              #      GL_LIGHT7
-                              #      GL_TEXTURE_GEN_S
-                              #      GL_TEXTURE_GEN_T
-                              #      GL_TEXTURE_GEN_R
-                              #      GL_TEXTURE_GEN_Q
-                              #      GL_MAP1_VERTEX_3
-                              #      GL_MAP1_VERTEX_4
-                              #      GL_MAP1_COLOR_4
-                              #      GL_MAP1_INDEX
-                              #      GL_MAP1_NORMAL
-                              #      GL_MAP1_TEXTURE_COORD_1
-                              #      GL_MAP1_TEXTURE_COORD_2
-                              #      GL_MAP1_TEXTURE_COORD_3
-                              #      GL_MAP1_TEXTURE_COORD_4
-                              #      GL_MAP2_VERTEX_3
-                              #      GL_MAP2_VERTEX_4
-                              #      GL_MAP2_COLOR_4
-                              #      GL_MAP2_INDEX
-                              #      GL_MAP2_NORMAL
-                              #      GL_MAP2_TEXTURE_COORD_1
-                              #      GL_MAP2_TEXTURE_COORD_2
-                              #      GL_MAP2_TEXTURE_COORD_3
-                              #      GL_MAP2_TEXTURE_COORD_4
-                              #      GL_POINT_SMOOTH
-                              #      GL_LINE_SMOOTH
-                              #      GL_POLYGON_SMOOTH
-                              #      GL_SCISSOR_TEST
-                              #      GL_COLOR_MATERIAL
-                              #      GL_NORMALIZE
-                              #      GL_AUTO_NORMAL
-                              #      GL_VERTEX_ARRAY
-                              #      GL_NORMAL_ARRAY
-                              #      GL_COLOR_ARRAY
-                              #      GL_INDEX_ARRAY
-                              #      GL_TEXTURE_COORD_ARRAY
-                              #      GL_EDGE_FLAG_ARRAY
-                              #      GL_POLYGON_OFFSET_POINT
-                              #      GL_POLYGON_OFFSET_LINE
-                              #      GL_POLYGON_OFFSET_FILL
-                              # ErrorCode
-  GL_NO_ERROR* = 0
-  GL_INVALID_ENUM* = 0x00000500
-  GL_INVALID_VALUE* = 0x00000501
-  GL_INVALID_OPERATION* = 0x00000502
-  GL_STACK_OVERFLOW* = 0x00000503
-  GL_STACK_UNDERFLOW* = 0x00000504
-  GL_OUT_OF_MEMORY* = 0x00000505 # FeedBackMode
-  GL_2D* = 0x00000600
-  GL_3D* = 0x00000601
-  GL_3D_COLOR* = 0x00000602
-  GL_3D_COLOR_TEXTURE* = 0x00000603
-  GL_4D_COLOR_TEXTURE* = 0x00000604 # FeedBackToken
-  GL_PASS_THROUGH_TOKEN* = 0x00000700
-  GL_POINT_TOKEN* = 0x00000701
-  GL_LINE_TOKEN* = 0x00000702
-  GL_POLYGON_TOKEN* = 0x00000703
-  GL_BITMAP_TOKEN* = 0x00000704
-  GL_DRAW_PIXEL_TOKEN* = 0x00000705
-  GL_COPY_PIXEL_TOKEN* = 0x00000706
-  GL_LINE_RESET_TOKEN* = 0x00000707 # FogMode
-                                    #      GL_LINEAR
-  GL_EXP* = 0x00000800
-  GL_EXP2* = 0x00000801       # FogParameter
-                              #      GL_FOG_COLOR
-                              #      GL_FOG_DENSITY
-                              #      GL_FOG_END
-                              #      GL_FOG_INDEX
-                              #      GL_FOG_MODE
-                              #      GL_FOG_START
-                              # FrontFaceDirection
-  GL_CW* = 0x00000900
-  GL_CCW* = 0x00000901        # GetMapTarget
-  GL_COEFF* = 0x00000A00
-  GL_ORDER* = 0x00000A01
-  GL_DOMAIN* = 0x00000A02     # GetPixelMap
-                              #      GL_PIXEL_MAP_I_TO_I
-                              #      GL_PIXEL_MAP_S_TO_S
-                              #      GL_PIXEL_MAP_I_TO_R
-                              #      GL_PIXEL_MAP_I_TO_G
-                              #      GL_PIXEL_MAP_I_TO_B
-                              #      GL_PIXEL_MAP_I_TO_A
-                              #      GL_PIXEL_MAP_R_TO_R
-                              #      GL_PIXEL_MAP_G_TO_G
-                              #      GL_PIXEL_MAP_B_TO_B
-                              #      GL_PIXEL_MAP_A_TO_A
-                              # GetPointerTarget
-                              #      GL_VERTEX_ARRAY_POINTER
-                              #      GL_NORMAL_ARRAY_POINTER
-                              #      GL_COLOR_ARRAY_POINTER
-                              #      GL_INDEX_ARRAY_POINTER
-                              #      GL_TEXTURE_COORD_ARRAY_POINTER
-                              #      GL_EDGE_FLAG_ARRAY_POINTER
-                              # GetTarget
-  GL_CURRENT_COLOR* = 0x00000B00
-  GL_CURRENT_INDEX* = 0x00000B01
-  GL_CURRENT_NORMAL* = 0x00000B02
-  GL_CURRENT_TEXTURE_COORDS* = 0x00000B03
-  GL_CURRENT_RASTER_COLOR* = 0x00000B04
-  GL_CURRENT_RASTER_INDEX* = 0x00000B05
-  GL_CURRENT_RASTER_TEXTURE_COORDS* = 0x00000B06
-  GL_CURRENT_RASTER_POSITION* = 0x00000B07
-  GL_CURRENT_RASTER_POSITION_VALID* = 0x00000B08
-  GL_CURRENT_RASTER_DISTANCE* = 0x00000B09
-  GL_POINT_SMOOTH* = 0x00000B10
-  constGL_POINT_SIZE* = 0x00000B11
-  GL_POINT_SIZE_RANGE* = 0x00000B12
-  GL_POINT_SIZE_GRANULARITY* = 0x00000B13
-  GL_LINE_SMOOTH* = 0x00000B20
-  constGL_LINE_WIDTH* = 0x00000B21
-  GL_LINE_WIDTH_RANGE* = 0x00000B22
-  GL_LINE_WIDTH_GRANULARITY* = 0x00000B23
-  constGL_LINE_STIPPLE* = 0x00000B24
-  GL_LINE_STIPPLE_PATTERN* = 0x00000B25
-  GL_LINE_STIPPLE_REPEAT* = 0x00000B26
-  GL_LIST_MODE* = 0x00000B30
-  GL_MAX_LIST_NESTING* = 0x00000B31
-  constGL_LIST_BASE* = 0x00000B32
-  GL_LIST_INDEX* = 0x00000B33
-  constGL_POLYGON_MODE* = 0x00000B40
-  GL_POLYGON_SMOOTH* = 0x00000B41
-  constGL_POLYGON_STIPPLE* = 0x00000B42
-  constGL_EDGE_FLAG* = 0x00000B43
-  constGL_CULL_FACE* = 0x00000B44
-  GL_CULL_FACE_MODE* = 0x00000B45
-  constGL_FRONT_FACE* = 0x00000B46
-  GL_LIGHTING* = 0x00000B50
-  GL_LIGHT_MODEL_LOCAL_VIEWER* = 0x00000B51
-  GL_LIGHT_MODEL_TWO_SIDE* = 0x00000B52
-  GL_LIGHT_MODEL_AMBIENT* = 0x00000B53
-  constGL_SHADE_MODEL* = 0x00000B54
-  GL_COLOR_MATERIAL_FACE* = 0x00000B55
-  GL_COLOR_MATERIAL_PARAMETER* = 0x00000B56
-  constGL_COLOR_MATERIAL* = 0x00000B57
-  GL_FOG* = 0x00000B60
-  GL_FOG_INDEX* = 0x00000B61
-  GL_FOG_DENSITY* = 0x00000B62
-  GL_FOG_START* = 0x00000B63
-  GL_FOG_END* = 0x00000B64
-  GL_FOG_MODE* = 0x00000B65
-  GL_FOG_COLOR* = 0x00000B66
-  constGL_DEPTH_RANGE* = 0x00000B70
-  GL_DEPTH_TEST* = 0x00000B71
-  GL_DEPTH_WRITEMASK* = 0x00000B72
-  GL_DEPTH_CLEAR_VALUE* = 0x00000B73
-  constGL_DEPTH_FUNC* = 0x00000B74
-  GL_ACCUM_CLEAR_VALUE* = 0x00000B80
-  GL_STENCIL_TEST* = 0x00000B90
-  GL_STENCIL_CLEAR_VALUE* = 0x00000B91
-  constGL_STENCIL_FUNC* = 0x00000B92
-  GL_STENCIL_VALUE_MASK* = 0x00000B93
-  GL_STENCIL_FAIL* = 0x00000B94
-  GL_STENCIL_PASS_DEPTH_FAIL* = 0x00000B95
-  GL_STENCIL_PASS_DEPTH_PASS* = 0x00000B96
-  GL_STENCIL_REF* = 0x00000B97
-  GL_STENCIL_WRITEMASK* = 0x00000B98
-  constGL_MATRIX_MODE* = 0x00000BA0
-  GL_NORMALIZE* = 0x00000BA1
-  constGL_VIEWPORT* = 0x00000BA2
-  GL_MODELVIEW_STACK_DEPTH* = 0x00000BA3
-  GL_PROJECTION_STACK_DEPTH* = 0x00000BA4
-  GL_TEXTURE_STACK_DEPTH* = 0x00000BA5
-  GL_MODELVIEW_MATRIX* = 0x00000BA6
-  GL_PROJECTION_MATRIX* = 0x00000BA7
-  GL_TEXTURE_MATRIX* = 0x00000BA8
-  GL_ATTRIB_STACK_DEPTH* = 0x00000BB0
-  GL_CLIENT_ATTRIB_STACK_DEPTH* = 0x00000BB1
-  GL_ALPHA_TEST* = 0x00000BC0
-  GL_ALPHA_TEST_FUNC* = 0x00000BC1
-  GL_ALPHA_TEST_REF* = 0x00000BC2
-  GL_DITHER* = 0x00000BD0
-  GL_BLEND_DST* = 0x00000BE0
-  GL_BLEND_SRC* = 0x00000BE1
-  GL_BLEND* = 0x00000BE2
-  GL_LOGIC_OP_MODE* = 0x00000BF0
-  GL_INDEX_LOGIC_OP* = 0x00000BF1
-  GL_COLOR_LOGIC_OP* = 0x00000BF2
-  GL_AUX_BUFFERS* = 0x00000C00
-  constGL_DRAW_BUFFER* = 0x00000C01
-  constGL_READ_BUFFER* = 0x00000C02
-  GL_SCISSOR_BOX* = 0x00000C10
-  GL_SCISSOR_TEST* = 0x00000C11
-  GL_INDEX_CLEAR_VALUE* = 0x00000C20
-  GL_INDEX_WRITEMASK* = 0x00000C21
-  GL_COLOR_CLEAR_VALUE* = 0x00000C22
-  GL_COLOR_WRITEMASK* = 0x00000C23
-  GL_INDEX_MODE* = 0x00000C30
-  GL_RGBA_MODE* = 0x00000C31
-  GL_DOUBLEBUFFER* = 0x00000C32
-  GL_STEREO* = 0x00000C33
-  constGL_RENDER_MODE* = 0x00000C40
-  GL_PERSPECTIVE_CORRECTION_HINT* = 0x00000C50
-  GL_POINT_SMOOTH_HINT* = 0x00000C51
-  GL_LINE_SMOOTH_HINT* = 0x00000C52
-  GL_POLYGON_SMOOTH_HINT* = 0x00000C53
-  GL_FOG_HINT* = 0x00000C54
-  GL_TEXTURE_GEN_S* = 0x00000C60
-  GL_TEXTURE_GEN_T* = 0x00000C61
-  GL_TEXTURE_GEN_R* = 0x00000C62
-  GL_TEXTURE_GEN_Q* = 0x00000C63
-  GL_PIXEL_MAP_I_TO_I* = 0x00000C70
-  GL_PIXEL_MAP_S_TO_S* = 0x00000C71
-  GL_PIXEL_MAP_I_TO_R* = 0x00000C72
-  GL_PIXEL_MAP_I_TO_G* = 0x00000C73
-  GL_PIXEL_MAP_I_TO_B* = 0x00000C74
-  GL_PIXEL_MAP_I_TO_A* = 0x00000C75
-  GL_PIXEL_MAP_R_TO_R* = 0x00000C76
-  GL_PIXEL_MAP_G_TO_G* = 0x00000C77
-  GL_PIXEL_MAP_B_TO_B* = 0x00000C78
-  GL_PIXEL_MAP_A_TO_A* = 0x00000C79
-  GL_PIXEL_MAP_I_TO_I_SIZE* = 0x00000CB0
-  GL_PIXEL_MAP_S_TO_S_SIZE* = 0x00000CB1
-  GL_PIXEL_MAP_I_TO_R_SIZE* = 0x00000CB2
-  GL_PIXEL_MAP_I_TO_G_SIZE* = 0x00000CB3
-  GL_PIXEL_MAP_I_TO_B_SIZE* = 0x00000CB4
-  GL_PIXEL_MAP_I_TO_A_SIZE* = 0x00000CB5
-  GL_PIXEL_MAP_R_TO_R_SIZE* = 0x00000CB6
-  GL_PIXEL_MAP_G_TO_G_SIZE* = 0x00000CB7
-  GL_PIXEL_MAP_B_TO_B_SIZE* = 0x00000CB8
-  GL_PIXEL_MAP_A_TO_A_SIZE* = 0x00000CB9
-  GL_UNPACK_SWAP_BYTES* = 0x00000CF0
-  GL_UNPACK_LSB_FIRST* = 0x00000CF1
-  GL_UNPACK_ROW_LENGTH* = 0x00000CF2
-  GL_UNPACK_SKIP_ROWS* = 0x00000CF3
-  GL_UNPACK_SKIP_PIXELS* = 0x00000CF4
-  GL_UNPACK_ALIGNMENT* = 0x00000CF5
-  GL_PACK_SWAP_BYTES* = 0x00000D00
-  GL_PACK_LSB_FIRST* = 0x00000D01
-  GL_PACK_ROW_LENGTH* = 0x00000D02
-  GL_PACK_SKIP_ROWS* = 0x00000D03
-  GL_PACK_SKIP_PIXELS* = 0x00000D04
-  GL_PACK_ALIGNMENT* = 0x00000D05
-  GL_MAP_COLOR* = 0x00000D10
-  GL_MAP_STENCIL* = 0x00000D11
-  GL_INDEX_SHIFT* = 0x00000D12
-  GL_INDEX_OFFSET* = 0x00000D13
-  GL_RED_SCALE* = 0x00000D14
-  GL_RED_BIAS* = 0x00000D15
-  GL_ZOOM_X* = 0x00000D16
-  GL_ZOOM_Y* = 0x00000D17
-  GL_GREEN_SCALE* = 0x00000D18
-  GL_GREEN_BIAS* = 0x00000D19
-  GL_BLUE_SCALE* = 0x00000D1A
-  GL_BLUE_BIAS* = 0x00000D1B
-  GL_ALPHA_SCALE* = 0x00000D1C
-  GL_ALPHA_BIAS* = 0x00000D1D
-  GL_DEPTH_SCALE* = 0x00000D1E
-  GL_DEPTH_BIAS* = 0x00000D1F
-  GL_MAX_EVAL_ORDER* = 0x00000D30
-  GL_MAX_LIGHTS* = 0x00000D31
-  GL_MAX_CLIP_PLANES* = 0x00000D32
-  GL_MAX_TEXTURE_SIZE* = 0x00000D33
-  GL_MAX_PIXEL_MAP_TABLE* = 0x00000D34
-  GL_MAX_ATTRIB_STACK_DEPTH* = 0x00000D35
-  GL_MAX_MODELVIEW_STACK_DEPTH* = 0x00000D36
-  GL_MAX_NAME_STACK_DEPTH* = 0x00000D37
-  GL_MAX_PROJECTION_STACK_DEPTH* = 0x00000D38
-  GL_MAX_TEXTURE_STACK_DEPTH* = 0x00000D39
-  GL_MAX_VIEWPORT_DIMS* = 0x00000D3A
-  GL_MAX_CLIENT_ATTRIB_STACK_DEPTH* = 0x00000D3B
-  GL_SUBPIXEL_BITS* = 0x00000D50
-  GL_INDEX_BITS* = 0x00000D51
-  GL_RED_BITS* = 0x00000D52
-  GL_GREEN_BITS* = 0x00000D53
-  GL_BLUE_BITS* = 0x00000D54
-  GL_ALPHA_BITS* = 0x00000D55
-  GL_DEPTH_BITS* = 0x00000D56
-  GL_STENCIL_BITS* = 0x00000D57
-  GL_ACCUM_RED_BITS* = 0x00000D58
-  GL_ACCUM_GREEN_BITS* = 0x00000D59
-  GL_ACCUM_BLUE_BITS* = 0x00000D5A
-  GL_ACCUM_ALPHA_BITS* = 0x00000D5B
-  GL_NAME_STACK_DEPTH* = 0x00000D70
-  GL_AUTO_NORMAL* = 0x00000D80
-  GL_MAP1_COLOR_4* = 0x00000D90
-  GL_MAP1_INDEX* = 0x00000D91
-  GL_MAP1_NORMAL* = 0x00000D92
-  GL_MAP1_TEXTURE_COORD_1* = 0x00000D93
-  GL_MAP1_TEXTURE_COORD_2* = 0x00000D94
-  GL_MAP1_TEXTURE_COORD_3* = 0x00000D95
-  GL_MAP1_TEXTURE_COORD_4* = 0x00000D96
-  GL_MAP1_VERTEX_3* = 0x00000D97
-  GL_MAP1_VERTEX_4* = 0x00000D98
-  GL_MAP2_COLOR_4* = 0x00000DB0
-  GL_MAP2_INDEX* = 0x00000DB1
-  GL_MAP2_NORMAL* = 0x00000DB2
-  GL_MAP2_TEXTURE_COORD_1* = 0x00000DB3
-  GL_MAP2_TEXTURE_COORD_2* = 0x00000DB4
-  GL_MAP2_TEXTURE_COORD_3* = 0x00000DB5
-  GL_MAP2_TEXTURE_COORD_4* = 0x00000DB6
-  GL_MAP2_VERTEX_3* = 0x00000DB7
-  GL_MAP2_VERTEX_4* = 0x00000DB8
-  GL_MAP1_GRID_DOMAIN* = 0x00000DD0
-  GL_MAP1_GRID_SEGMENTS* = 0x00000DD1
-  GL_MAP2_GRID_DOMAIN* = 0x00000DD2
-  GL_MAP2_GRID_SEGMENTS* = 0x00000DD3
-  GL_TEXTURE_1D* = 0x00000DE0
-  GL_TEXTURE_2D* = 0x00000DE1
-  GL_FEEDBACK_BUFFER_POINTER* = 0x00000DF0
-  GL_FEEDBACK_BUFFER_SIZE* = 0x00000DF1
-  GL_FEEDBACK_BUFFER_TYPE* = 0x00000DF2
-  GL_SELECTION_BUFFER_POINTER* = 0x00000DF3
-  GL_SELECTION_BUFFER_SIZE* = 0x00000DF4 #      GL_TEXTURE_BINDING_1D
-                                         #      GL_TEXTURE_BINDING_2D
-                                         #      GL_VERTEX_ARRAY
-                                         #      GL_NORMAL_ARRAY
-                                         #      GL_COLOR_ARRAY
-                                         #      GL_INDEX_ARRAY
-                                         #      GL_TEXTURE_COORD_ARRAY
-                                         #      GL_EDGE_FLAG_ARRAY
-                                         #      GL_VERTEX_ARRAY_SIZE
-                                         #      GL_VERTEX_ARRAY_TYPE
-                                         #      GL_VERTEX_ARRAY_STRIDE
-                                         #      GL_NORMAL_ARRAY_TYPE
-                                         #      GL_NORMAL_ARRAY_STRIDE
-                                         #      GL_COLOR_ARRAY_SIZE
-                                         #      GL_COLOR_ARRAY_TYPE
-                                         #      GL_COLOR_ARRAY_STRIDE
-                                         #      GL_INDEX_ARRAY_TYPE
-                                         #      GL_INDEX_ARRAY_STRIDE
-                                         #      GL_TEXTURE_COORD_ARRAY_SIZE
-                                         #      GL_TEXTURE_COORD_ARRAY_TYPE
-                                         #      GL_TEXTURE_COORD_ARRAY_STRIDE
-                                         #      GL_EDGE_FLAG_ARRAY_STRIDE
-                                         #      GL_POLYGON_OFFSET_FACTOR
-                                         #      GL_POLYGON_OFFSET_UNITS
-                                         # GetTextureParameter
-                                         #      GL_TEXTURE_MAG_FILTER
-                                         #      GL_TEXTURE_MIN_FILTER
-                                         #      GL_TEXTURE_WRAP_S
-                                         #      GL_TEXTURE_WRAP_T
-  GL_TEXTURE_WIDTH* = 0x00001000
-  GL_TEXTURE_HEIGHT* = 0x00001001
-  GL_TEXTURE_INTERNAL_FORMAT* = 0x00001003
-  GL_TEXTURE_BORDER_COLOR* = 0x00001004
-  GL_TEXTURE_BORDER* = 0x00001005 #      GL_TEXTURE_RED_SIZE
-                                  #      GL_TEXTURE_GREEN_SIZE
-                                  #      GL_TEXTURE_BLUE_SIZE
-                                  #      GL_TEXTURE_ALPHA_SIZE
-                                  #      GL_TEXTURE_LUMINANCE_SIZE
-                                  #      GL_TEXTURE_INTENSITY_SIZE
-                                  #      GL_TEXTURE_PRIORITY
-                                  #      GL_TEXTURE_RESIDENT
-                                  # HintMode
-  GL_DONT_CARE* = 0x00001100
-  GL_FASTEST* = 0x00001101
-  GL_NICEST* = 0x00001102     # HintTarget
-                              #      GL_PERSPECTIVE_CORRECTION_HINT
-                              #      GL_POINT_SMOOTH_HINT
-                              #      GL_LINE_SMOOTH_HINT
-                              #      GL_POLYGON_SMOOTH_HINT
-                              #      GL_FOG_HINT
-                              # IndexPointerType
-                              #      GL_SHORT
-                              #      GL_INT
-                              #      GL_FLOAT
-                              #      GL_DOUBLE
-                              # LightModelParameter
-                              #      GL_LIGHT_MODEL_AMBIENT
-                              #      GL_LIGHT_MODEL_LOCAL_VIEWER
-                              #      GL_LIGHT_MODEL_TWO_SIDE
-                              # LightName
-  GL_LIGHT0* = 0x00004000
-  GL_LIGHT1* = 0x00004001
-  GL_LIGHT2* = 0x00004002
-  GL_LIGHT3* = 0x00004003
-  GL_LIGHT4* = 0x00004004
-  GL_LIGHT5* = 0x00004005
-  GL_LIGHT6* = 0x00004006
-  GL_LIGHT7* = 0x00004007     # LightParameter
-  GL_AMBIENT* = 0x00001200
-  GL_DIFFUSE* = 0x00001201
-  GL_SPECULAR* = 0x00001202
-  GL_POSITION* = 0x00001203
-  GL_SPOT_DIRECTION* = 0x00001204
-  GL_SPOT_EXPONENT* = 0x00001205
-  GL_SPOT_CUTOFF* = 0x00001206
-  GL_CONSTANT_ATTENUATION* = 0x00001207
-  GL_LINEAR_ATTENUATION* = 0x00001208
-  GL_QUADRATIC_ATTENUATION* = 0x00001209 # InterleavedArrays
-                                         #      GL_V2F
-                                         #      GL_V3F
-                                         #      GL_C4UB_V2F
-                                         #      GL_C4UB_V3F
-                                         #      GL_C3F_V3F
-                                         #      GL_N3F_V3F
-                                         #      GL_C4F_N3F_V3F
-                                         #      GL_T2F_V3F
-                                         #      GL_T4F_V4F
-                                         #      GL_T2F_C4UB_V3F
-                                         #      GL_T2F_C3F_V3F
-                                         #      GL_T2F_N3F_V3F
-                                         #      GL_T2F_C4F_N3F_V3F
-                                         #      GL_T4F_C4F_N3F_V4F
-                                         # ListMode
-  GL_COMPILE* = 0x00001300
-  GL_COMPILE_AND_EXECUTE* = 0x00001301 # ListNameType
-                                       #      GL_BYTE
-                                       #      GL_UNSIGNED_BYTE
-                                       #      GL_SHORT
-                                       #      GL_UNSIGNED_SHORT
-                                       #      GL_INT
-                                       #      GL_UNSIGNED_INT
-                                       #      GL_FLOAT
-                                       #      GL_2_BYTES
-                                       #      GL_3_BYTES
-                                       #      GL_4_BYTES
-                                       # LogicOp
-  constGL_CLEAR* = 0x00001500
-  GL_AND* = 0x00001501
-  GL_AND_REVERSE* = 0x00001502
-  GL_COPY* = 0x00001503
-  GL_AND_INVERTED* = 0x00001504
-  GL_NOOP* = 0x00001505
-  GL_XOR* = 0x00001506
-  GL_OR* = 0x00001507
-  GL_NOR* = 0x00001508
-  GL_EQUIV* = 0x00001509
-  GL_INVERT* = 0x0000150A
-  GL_OR_REVERSE* = 0x0000150B
-  GL_COPY_INVERTED* = 0x0000150C
-  GL_OR_INVERTED* = 0x0000150D
-  GL_NAND* = 0x0000150E
-  GL_SET* = 0x0000150F        # MapTarget
-                              #      GL_MAP1_COLOR_4
-                              #      GL_MAP1_INDEX
-                              #      GL_MAP1_NORMAL
-                              #      GL_MAP1_TEXTURE_COORD_1
-                              #      GL_MAP1_TEXTURE_COORD_2
-                              #      GL_MAP1_TEXTURE_COORD_3
-                              #      GL_MAP1_TEXTURE_COORD_4
-                              #      GL_MAP1_VERTEX_3
-                              #      GL_MAP1_VERTEX_4
-                              #      GL_MAP2_COLOR_4
-                              #      GL_MAP2_INDEX
-                              #      GL_MAP2_NORMAL
-                              #      GL_MAP2_TEXTURE_COORD_1
-                              #      GL_MAP2_TEXTURE_COORD_2
-                              #      GL_MAP2_TEXTURE_COORD_3
-                              #      GL_MAP2_TEXTURE_COORD_4
-                              #      GL_MAP2_VERTEX_3
-                              #      GL_MAP2_VERTEX_4
-                              # MaterialFace
-                              #      GL_FRONT
-                              #      GL_BACK
-                              #      GL_FRONT_AND_BACK
-                              # MaterialParameter
-  GL_EMISSION* = 0x00001600
-  GL_SHININESS* = 0x00001601
-  GL_AMBIENT_AND_DIFFUSE* = 0x00001602
-  GL_COLOR_INDEXES* = 0x00001603 #      GL_AMBIENT
-                                 #      GL_DIFFUSE
-                                 #      GL_SPECULAR
-                                 # MatrixMode
-  GL_MODELVIEW* = 0x00001700
-  GL_PROJECTION* = 0x00001701
-  GL_TEXTURE* = 0x00001702    # MeshMode1
-                              #      GL_POINT
-                              #      GL_LINE
-                              # MeshMode2
-                              #      GL_POINT
-                              #      GL_LINE
-                              #      GL_FILL
-                              # NormalPointerType
-                              #      GL_BYTE
-                              #      GL_SHORT
-                              #      GL_INT
-                              #      GL_FLOAT
-                              #      GL_DOUBLE
-                              # PixelCopyType
-  GL_COLOR* = 0x00001800
-  GL_DEPTH* = 0x00001801
-  GL_STENCIL* = 0x00001802    # PixelFormat
-  GL_COLOR_INDEX* = 0x00001900
-  GL_STENCIL_INDEX* = 0x00001901
-  GL_DEPTH_COMPONENT* = 0x00001902
-  GL_RED* = 0x00001903
-  GL_GREEN* = 0x00001904
-  GL_BLUE* = 0x00001905
-  GL_ALPHA* = 0x00001906
-  GL_RGB* = 0x00001907
-  GL_RGBA* = 0x00001908
-  GL_LUMINANCE* = 0x00001909
-  GL_LUMINANCE_ALPHA* = 0x0000190A # PixelMap
-                                   #      GL_PIXEL_MAP_I_TO_I
-                                   #      GL_PIXEL_MAP_S_TO_S
-                                   #      GL_PIXEL_MAP_I_TO_R
-                                   #      GL_PIXEL_MAP_I_TO_G
-                                   #      GL_PIXEL_MAP_I_TO_B
-                                   #      GL_PIXEL_MAP_I_TO_A
-                                   #      GL_PIXEL_MAP_R_TO_R
-                                   #      GL_PIXEL_MAP_G_TO_G
-                                   #      GL_PIXEL_MAP_B_TO_B
-                                   #      GL_PIXEL_MAP_A_TO_A
-                                   # PixelStore
-                                   #      GL_UNPACK_SWAP_BYTES
-                                   #      GL_UNPACK_LSB_FIRST
-                                   #      GL_UNPACK_ROW_LENGTH
-                                   #      GL_UNPACK_SKIP_ROWS
-                                   #      GL_UNPACK_SKIP_PIXELS
-                                   #      GL_UNPACK_ALIGNMENT
-                                   #      GL_PACK_SWAP_BYTES
-                                   #      GL_PACK_LSB_FIRST
-                                   #      GL_PACK_ROW_LENGTH
-                                   #      GL_PACK_SKIP_ROWS
-                                   #      GL_PACK_SKIP_PIXELS
-                                   #      GL_PACK_ALIGNMENT
-                                   # PixelTransfer
-                                   #      GL_MAP_COLOR
-                                   #      GL_MAP_STENCIL
-                                   #      GL_INDEX_SHIFT
-                                   #      GL_INDEX_OFFSET
-                                   #      GL_RED_SCALE
-                                   #      GL_RED_BIAS
-                                   #      GL_GREEN_SCALE
-                                   #      GL_GREEN_BIAS
-                                   #      GL_BLUE_SCALE
-                                   #      GL_BLUE_BIAS
-                                   #      GL_ALPHA_SCALE
-                                   #      GL_ALPHA_BIAS
-                                   #      GL_DEPTH_SCALE
-                                   #      GL_DEPTH_BIAS
-                                   # PixelType
-  constGL_BITMAP* = 0x00001A00
-  GL_POINT* = 0x00001B00
-  GL_LINE* = 0x00001B01
-  GL_FILL* = 0x00001B02       # ReadBufferMode
-                              #      GL_FRONT_LEFT
-                              #      GL_FRONT_RIGHT
-                              #      GL_BACK_LEFT
-                              #      GL_BACK_RIGHT
-                              #      GL_FRONT
-                              #      GL_BACK
-                              #      GL_LEFT
-                              #      GL_RIGHT
-                              #      GL_AUX0
-                              #      GL_AUX1
-                              #      GL_AUX2
-                              #      GL_AUX3
-                              # RenderingMode
-  GL_RENDER* = 0x00001C00
-  GL_FEEDBACK* = 0x00001C01
-  GL_SELECT* = 0x00001C02     # ShadingModel
-  GL_FLAT* = 0x00001D00
-  GL_SMOOTH* = 0x00001D01     # StencilFunction
-                              #      GL_NEVER
-                              #      GL_LESS
-                              #      GL_EQUAL
-                              #      GL_LEQUAL
-                              #      GL_GREATER
-                              #      GL_NOTEQUAL
-                              #      GL_GEQUAL
-                              #      GL_ALWAYS
-                              # StencilOp
-                              #      GL_ZERO
-  GL_KEEP* = 0x00001E00
-  GL_REPLACE* = 0x00001E01
-  GL_INCR* = 0x00001E02
-  GL_DECR* = 0x00001E03       #      GL_INVERT
-                              # StringName
-  GL_VENDOR* = 0x00001F00
-  GL_RENDERER* = 0x00001F01
-  GL_VERSION* = 0x00001F02
-  GL_EXTENSIONS* = 0x00001F03 # TextureCoordName
-  GL_S* = 0x00002000
-  GL_T* = 0x00002001
-  GL_R* = 0x00002002
-  GL_Q* = 0x00002003          # TexCoordPointerType
-                              #      GL_SHORT
-                              #      GL_INT
-                              #      GL_FLOAT
-                              #      GL_DOUBLE
-                              # TextureEnvMode
-  GL_MODULATE* = 0x00002100
-  GL_DECAL* = 0x00002101      #      GL_BLEND
-                              #      GL_REPLACE
-                              # TextureEnvParameter
-  GL_TEXTURE_ENV_MODE* = 0x00002200
-  GL_TEXTURE_ENV_COLOR* = 0x00002201 # TextureEnvTarget
-  GL_TEXTURE_ENV* = 0x00002300 # TextureGenMode
-  GL_EYE_LINEAR* = 0x00002400
-  GL_OBJECT_LINEAR* = 0x00002401
-  GL_SPHERE_MAP* = 0x00002402 # TextureGenParameter
-  GL_TEXTURE_GEN_MODE* = 0x00002500
-  GL_OBJECT_PLANE* = 0x00002501
-  GL_EYE_PLANE* = 0x00002502  # TextureMagFilter
-  GL_NEAREST* = 0x00002600
-  GL_LINEAR* = 0x00002601     # TextureMinFilter
-                              #      GL_NEAREST
-                              #      GL_LINEAR
-  GL_NEAREST_MIPMAP_NEAREST* = 0x00002700
-  GL_LINEAR_MIPMAP_NEAREST* = 0x00002701
-  GL_NEAREST_MIPMAP_LINEAR* = 0x00002702
-  GL_LINEAR_MIPMAP_LINEAR* = 0x00002703 # TextureParameterName
-  GL_TEXTURE_MAG_FILTER* = 0x00002800
-  GL_TEXTURE_MIN_FILTER* = 0x00002801
-  GL_TEXTURE_WRAP_S* = 0x00002802
-  GL_TEXTURE_WRAP_T* = 0x00002803 #      GL_TEXTURE_BORDER_COLOR
-                                  #      GL_TEXTURE_PRIORITY
-                                  # TextureTarget
-                                  #      GL_TEXTURE_1D
-                                  #      GL_TEXTURE_2D
-                                  #      GL_PROXY_TEXTURE_1D
-                                  #      GL_PROXY_TEXTURE_2D
-                                  # TextureWrapMode
-  GL_CLAMP* = 0x00002900
-  GL_REPEAT* = 0x00002901     # VertexPointerType
-                              #      GL_SHORT
-                              #      GL_INT
-                              #      GL_FLOAT
-                              #      GL_DOUBLE
-                              # ClientAttribMask
-  GL_CLIENT_PIXEL_STORE_BIT* = 0x00000001
-  GL_CLIENT_VERTEX_ARRAY_BIT* = 0x00000002
-  GL_CLIENT_ALL_ATTRIB_BITS* = 0xFFFFFFFF # polygon_offset
-  GL_POLYGON_OFFSET_FACTOR* = 0x00008038
-  GL_POLYGON_OFFSET_UNITS* = 0x00002A00
-  GL_POLYGON_OFFSET_POINT* = 0x00002A01
-  GL_POLYGON_OFFSET_LINE* = 0x00002A02
-  GL_POLYGON_OFFSET_FILL* = 0x00008037 # texture
-  GL_ALPHA4* = 0x0000803B
-  GL_ALPHA8* = 0x0000803C
-  GL_ALPHA12* = 0x0000803D
-  GL_ALPHA16* = 0x0000803E
-  GL_LUMINANCE4* = 0x0000803F
-  GL_LUMINANCE8* = 0x00008040
-  GL_LUMINANCE12* = 0x00008041
-  GL_LUMINANCE16* = 0x00008042
-  GL_LUMINANCE4_ALPHA4* = 0x00008043
-  GL_LUMINANCE6_ALPHA2* = 0x00008044
-  GL_LUMINANCE8_ALPHA8* = 0x00008045
-  GL_LUMINANCE12_ALPHA4* = 0x00008046
-  GL_LUMINANCE12_ALPHA12* = 0x00008047
-  GL_LUMINANCE16_ALPHA16* = 0x00008048
-  GL_INTENSITY* = 0x00008049
-  GL_INTENSITY4* = 0x0000804A
-  GL_INTENSITY8* = 0x0000804B
-  GL_INTENSITY12* = 0x0000804C
-  GL_INTENSITY16* = 0x0000804D
-  GL_R3_G3_B2* = 0x00002A10
-  GL_RGB4* = 0x0000804F
-  GL_RGB5* = 0x00008050
-  GL_RGB8* = 0x00008051
-  GL_RGB10* = 0x00008052
-  GL_RGB12* = 0x00008053
-  GL_RGB16* = 0x00008054
-  GL_RGBA2* = 0x00008055
-  GL_RGBA4* = 0x00008056
-  GL_RGB5_A1* = 0x00008057
-  GL_RGBA8* = 0x00008058
-  GL_RGB10_A2* = 0x00008059
-  GL_RGBA12* = 0x0000805A
-  GL_RGBA16* = 0x0000805B
-  GL_TEXTURE_RED_SIZE* = 0x0000805C
-  GL_TEXTURE_GREEN_SIZE* = 0x0000805D
-  GL_TEXTURE_BLUE_SIZE* = 0x0000805E
-  GL_TEXTURE_ALPHA_SIZE* = 0x0000805F
-  GL_TEXTURE_LUMINANCE_SIZE* = 0x00008060
-  GL_TEXTURE_INTENSITY_SIZE* = 0x00008061
-  GL_PROXY_TEXTURE_1D* = 0x00008063
-  GL_PROXY_TEXTURE_2D* = 0x00008064 # texture_object
-  GL_TEXTURE_PRIORITY* = 0x00008066
-  GL_TEXTURE_RESIDENT* = 0x00008067
-  GL_TEXTURE_BINDING_1D* = 0x00008068
-  GL_TEXTURE_BINDING_2D* = 0x00008069 # vertex_array
-  GL_VERTEX_ARRAY* = 0x00008074
-  GL_NORMAL_ARRAY* = 0x00008075
-  GL_COLOR_ARRAY* = 0x00008076
-  GL_INDEX_ARRAY* = 0x00008077
-  GL_TEXTURE_COORD_ARRAY* = 0x00008078
-  GL_EDGE_FLAG_ARRAY* = 0x00008079
-  GL_VERTEX_ARRAY_SIZE* = 0x0000807A
-  GL_VERTEX_ARRAY_TYPE* = 0x0000807B
-  GL_VERTEX_ARRAY_STRIDE* = 0x0000807C
-  GL_NORMAL_ARRAY_TYPE* = 0x0000807E
-  GL_NORMAL_ARRAY_STRIDE* = 0x0000807F
-  GL_COLOR_ARRAY_SIZE* = 0x00008081
-  GL_COLOR_ARRAY_TYPE* = 0x00008082
-  GL_COLOR_ARRAY_STRIDE* = 0x00008083
-  GL_INDEX_ARRAY_TYPE* = 0x00008085
-  GL_INDEX_ARRAY_STRIDE* = 0x00008086
-  GL_TEXTURE_COORD_ARRAY_SIZE* = 0x00008088
-  GL_TEXTURE_COORD_ARRAY_TYPE* = 0x00008089
-  GL_TEXTURE_COORD_ARRAY_STRIDE* = 0x0000808A
-  GL_EDGE_FLAG_ARRAY_STRIDE* = 0x0000808C
-  GL_VERTEX_ARRAY_POINTER* = 0x0000808E
-  GL_NORMAL_ARRAY_POINTER* = 0x0000808F
-  GL_COLOR_ARRAY_POINTER* = 0x00008090
-  GL_INDEX_ARRAY_POINTER* = 0x00008091
-  GL_TEXTURE_COORD_ARRAY_POINTER* = 0x00008092
-  GL_EDGE_FLAG_ARRAY_POINTER* = 0x00008093
-  GL_V2F* = 0x00002A20
-  GL_V3F* = 0x00002A21
-  GL_C4UB_V2F* = 0x00002A22
-  GL_C4UB_V3F* = 0x00002A23
-  GL_C3F_V3F* = 0x00002A24
-  GL_N3F_V3F* = 0x00002A25
-  GL_C4F_N3F_V3F* = 0x00002A26
-  GL_T2F_V3F* = 0x00002A27
-  GL_T4F_V4F* = 0x00002A28
-  GL_T2F_C4UB_V3F* = 0x00002A29
-  GL_T2F_C3F_V3F* = 0x00002A2A
-  GL_T2F_N3F_V3F* = 0x00002A2B
-  GL_T2F_C4F_N3F_V3F* = 0x00002A2C
-  GL_T4F_C4F_N3F_V4F* = 0x00002A2D # Extensions
-  GL_EXT_vertex_array* = 1
-  GL_WIN_swap_hint* = 1
-  GL_EXT_bgra* = 1
-  GL_EXT_paletted_texture* = 1 # EXT_vertex_array
-  GL_VERTEX_ARRAY_EXT* = 0x00008074
-  GL_NORMAL_ARRAY_EXT* = 0x00008075
-  GL_COLOR_ARRAY_EXT* = 0x00008076
-  GL_INDEX_ARRAY_EXT* = 0x00008077
-  GL_TEXTURE_COORD_ARRAY_EXT* = 0x00008078
-  GL_EDGE_FLAG_ARRAY_EXT* = 0x00008079
-  GL_VERTEX_ARRAY_SIZE_EXT* = 0x0000807A
-  GL_VERTEX_ARRAY_TYPE_EXT* = 0x0000807B
-  GL_VERTEX_ARRAY_STRIDE_EXT* = 0x0000807C
-  GL_VERTEX_ARRAY_COUNT_EXT* = 0x0000807D
-  GL_NORMAL_ARRAY_TYPE_EXT* = 0x0000807E
-  GL_NORMAL_ARRAY_STRIDE_EXT* = 0x0000807F
-  GL_NORMAL_ARRAY_COUNT_EXT* = 0x00008080
-  GL_COLOR_ARRAY_SIZE_EXT* = 0x00008081
-  GL_COLOR_ARRAY_TYPE_EXT* = 0x00008082
-  GL_COLOR_ARRAY_STRIDE_EXT* = 0x00008083
-  GL_COLOR_ARRAY_COUNT_EXT* = 0x00008084
-  GL_INDEX_ARRAY_TYPE_EXT* = 0x00008085
-  GL_INDEX_ARRAY_STRIDE_EXT* = 0x00008086
-  GL_INDEX_ARRAY_COUNT_EXT* = 0x00008087
-  GL_TEXTURE_COORD_ARRAY_SIZE_EXT* = 0x00008088
-  GL_TEXTURE_COORD_ARRAY_TYPE_EXT* = 0x00008089
-  GL_TEXTURE_COORD_ARRAY_STRIDE_EXT* = 0x0000808A
-  GL_TEXTURE_COORD_ARRAY_COUNT_EXT* = 0x0000808B
-  GL_EDGE_FLAG_ARRAY_STRIDE_EXT* = 0x0000808C
-  GL_EDGE_FLAG_ARRAY_COUNT_EXT* = 0x0000808D
-  GL_VERTEX_ARRAY_POINTER_EXT* = 0x0000808E
-  GL_NORMAL_ARRAY_POINTER_EXT* = 0x0000808F
-  GL_COLOR_ARRAY_POINTER_EXT* = 0x00008090
-  GL_INDEX_ARRAY_POINTER_EXT* = 0x00008091
-  GL_TEXTURE_COORD_ARRAY_POINTER_EXT* = 0x00008092
-  GL_EDGE_FLAG_ARRAY_POINTER_EXT* = 0x00008093
-  GL_DOUBLE_EXT* = GL_DOUBLE  # EXT_bgra
-  GL_BGR_EXT* = 0x000080E0
-  GL_BGRA_EXT* = 0x000080E1   # EXT_paletted_texture
-                              # These must match the GL_COLOR_TABLE_*_SGI enumerants
-  GL_COLOR_TABLE_FORMAT_EXT* = 0x000080D8
-  GL_COLOR_TABLE_WIDTH_EXT* = 0x000080D9
-  GL_COLOR_TABLE_RED_SIZE_EXT* = 0x000080DA
-  GL_COLOR_TABLE_GREEN_SIZE_EXT* = 0x000080DB
-  GL_COLOR_TABLE_BLUE_SIZE_EXT* = 0x000080DC
-  GL_COLOR_TABLE_ALPHA_SIZE_EXT* = 0x000080DD
-  GL_COLOR_TABLE_LUMINANCE_SIZE_EXT* = 0x000080DE
-  GL_COLOR_TABLE_INTENSITY_SIZE_EXT* = 0x000080DF
-  GL_COLOR_INDEX1_EXT* = 0x000080E2
-  GL_COLOR_INDEX2_EXT* = 0x000080E3
-  GL_COLOR_INDEX4_EXT* = 0x000080E4
-  GL_COLOR_INDEX8_EXT* = 0x000080E5
-  GL_COLOR_INDEX12_EXT* = 0x000080E6
-  GL_COLOR_INDEX16_EXT* = 0x000080E7 # For compatibility with OpenGL v1.0
-  constGL_LOGIC_OP* = GL_INDEX_LOGIC_OP
-  GL_TEXTURE_COMPONENTS* = GL_TEXTURE_INTERNAL_FORMAT
-
-proc glAccum*(op: TGLenum, value: TGLfloat){.dynlib: dllname, importc: "glAccum".}
-proc glAlphaFunc*(func: TGLenum, theref: TGLclampf){.dynlib: dllname, 
-    importc: "glAlphaFunc".}
-proc glAreTexturesResident*(n: TGLsizei, textures: PGLuint, 
-                            residences: PGLboolean): TGLboolean{.
-    dynlib: dllname, importc: "glAreTexturesResident".}
-proc glArrayElement*(i: TGLint){.dynlib: dllname, importc: "glArrayElement".}
-proc glBegin*(mode: TGLenum){.dynlib: dllname, importc: "glBegin".}
-proc glBindTexture*(target: TGLenum, texture: TGLuint){.dynlib: dllname, 
-    importc: "glBindTexture".}
-proc glBitmap*(width, height: TGLsizei, xorig, yorig: TGLfloat, 
-               xmove, ymove: TGLfloat, bitmap: PGLubyte){.dynlib: dllname, 
-    importc: "glBitmap".}
-proc glBlendFunc*(sfactor, dfactor: TGLenum){.dynlib: dllname, 
-    importc: "glBlendFunc".}
-proc glCallList*(list: TGLuint){.dynlib: dllname, importc: "glCallList".}
-proc glCallLists*(n: TGLsizei, atype: TGLenum, lists: Pointer){.dynlib: dllname, 
-    importc: "glCallLists".}
-proc glClear*(mask: TGLbitfield){.dynlib: dllname, importc: "glClear".}
-proc glClearAccum*(red, green, blue, alpha: TGLfloat){.dynlib: dllname, 
-    importc: "glClearAccum".}
-proc glClearColor*(red, green, blue, alpha: TGLclampf){.dynlib: dllname, 
-    importc: "glClearColor".}
-proc glClearDepth*(depth: TGLclampd){.dynlib: dllname, importc: "glClearDepth".}
-proc glClearIndex*(c: TGLfloat){.dynlib: dllname, importc: "glClearIndex".}
-proc glClearStencil*(s: TGLint){.dynlib: dllname, importc: "glClearStencil".}
-proc glClipPlane*(plane: TGLenum, equation: PGLdouble){.dynlib: dllname, 
-    importc: "glClipPlane".}
-proc glColor3b*(red, green, blue: TGlbyte){.dynlib: dllname, 
-    importc: "glColor3b".}
-proc glColor3bv*(v: PGLbyte){.dynlib: dllname, importc: "glColor3bv".}
-proc glColor3d*(red, green, blue: TGLdouble){.dynlib: dllname, 
-    importc: "glColor3d".}
-proc glColor3dv*(v: PGLdouble){.dynlib: dllname, importc: "glColor3dv".}
-proc glColor3f*(red, green, blue: TGLfloat){.dynlib: dllname, 
-    importc: "glColor3f".}
-proc glColor3fv*(v: PGLfloat){.dynlib: dllname, importc: "glColor3fv".}
-proc glColor3i*(red, green, blue: TGLint){.dynlib: dllname, importc: "glColor3i".}
-proc glColor3iv*(v: PGLint){.dynlib: dllname, importc: "glColor3iv".}
-proc glColor3s*(red, green, blue: TGLshort){.dynlib: dllname, 
-    importc: "glColor3s".}
-proc glColor3sv*(v: PGLshort){.dynlib: dllname, importc: "glColor3sv".}
-proc glColor3ub*(red, green, blue: TGLubyte){.dynlib: dllname, 
-    importc: "glColor3ub".}
-proc glColor3ubv*(v: PGLubyte){.dynlib: dllname, importc: "glColor3ubv".}
-proc glColor3ui*(red, green, blue: TGLuint){.dynlib: dllname, 
-    importc: "glColor3ui".}
-proc glColor3uiv*(v: PGLuint){.dynlib: dllname, importc: "glColor3uiv".}
-proc glColor3us*(red, green, blue: TGLushort){.dynlib: dllname, 
-    importc: "glColor3us".}
-proc glColor3usv*(v: PGLushort){.dynlib: dllname, importc: "glColor3usv".}
-proc glColor4b*(red, green, blue, alpha: TGlbyte){.dynlib: dllname, 
-    importc: "glColor4b".}
-proc glColor4bv*(v: PGLbyte){.dynlib: dllname, importc: "glColor4bv".}
-proc glColor4d*(red, green, blue, alpha: TGLdouble){.dynlib: dllname, 
-    importc: "glColor4d".}
-proc glColor4dv*(v: PGLdouble){.dynlib: dllname, importc: "glColor4dv".}
-proc glColor4f*(red, green, blue, alpha: TGLfloat){.dynlib: dllname, 
-    importc: "glColor4f".}
-proc glColor4fv*(v: PGLfloat){.dynlib: dllname, importc: "glColor4fv".}
-proc glColor4i*(red, green, blue, alpha: TGLint){.dynlib: dllname, 
-    importc: "glColor4i".}
-proc glColor4iv*(v: PGLint){.dynlib: dllname, importc: "glColor4iv".}
-proc glColor4s*(red, green, blue, alpha: TGLshort){.dynlib: dllname, 
-    importc: "glColor4s".}
-proc glColor4sv*(v: PGLshort){.dynlib: dllname, importc: "glColor4sv".}
-proc glColor4ub*(red, green, blue, alpha: TGLubyte){.dynlib: dllname, 
-    importc: "glColor4ub".}
-proc glColor4ubv*(v: PGLubyte){.dynlib: dllname, importc: "glColor4ubv".}
-proc glColor4ui*(red, green, blue, alpha: TGLuint){.dynlib: dllname, 
-    importc: "glColor4ui".}
-proc glColor4uiv*(v: PGLuint){.dynlib: dllname, importc: "glColor4uiv".}
-proc glColor4us*(red, green, blue, alpha: TGLushort){.dynlib: dllname, 
-    importc: "glColor4us".}
-proc glColor4usv*(v: PGLushort){.dynlib: dllname, importc: "glColor4usv".}
-proc glColorMask*(red, green, blue, alpha: TGLboolean){.dynlib: dllname, 
-    importc: "glColorMask".}
-proc glColorMaterial*(face, mode: TGLenum){.dynlib: dllname, 
-    importc: "glColorMaterial".}
-proc glColorPointer*(size: TGLint, atype: TGLenum, stride: TGLsizei, 
-                     pointer: Pointer){.dynlib: dllname, 
-                                        importc: "glColorPointer".}
-proc glCopyPixels*(x, y: TGLint, width, height: TGLsizei, atype: TGLenum){.
-    dynlib: dllname, importc: "glCopyPixels".}
-proc glCopyTexImage1D*(target: TGLenum, level: TGLint, internalFormat: TGLenum, 
-                       x, y: TGLint, width: TGLsizei, border: TGLint){.
-    dynlib: dllname, importc: "glCopyTexImage1D".}
-proc glCopyTexImage2D*(target: TGLenum, level: TGLint, internalFormat: TGLenum, 
-                       x, y: TGLint, width, height: TGLsizei, border: TGLint){.
-    dynlib: dllname, importc: "glCopyTexImage2D".}
-proc glCopyTexSubImage1D*(target: TGLenum, level, xoffset, x, y: TGLint, 
-                          width: TGLsizei){.dynlib: dllname, 
-    importc: "glCopyTexSubImage1D".}
-proc glCopyTexSubImage2D*(target: TGLenum, 
-                          level, xoffset, yoffset, x, y: TGLint, 
-                          width, height: TGLsizei){.dynlib: dllname, 
-    importc: "glCopyTexSubImage2D".}
-proc glCullFace*(mode: TGLenum){.dynlib: dllname, importc: "glCullFace".}
-proc glDeleteLists*(list: TGLuint, range: TGLsizei){.dynlib: dllname, 
-    importc: "glDeleteLists".}
-proc glDeleteTextures*(n: TGLsizei, textures: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteTextures".}
-proc glDepthFunc*(func: TGLenum){.dynlib: dllname, importc: "glDepthFunc".}
-proc glDepthMask*(flag: TGLboolean){.dynlib: dllname, importc: "glDepthMask".}
-proc glDepthRange*(zNear, zFar: TGLclampd){.dynlib: dllname, 
-    importc: "glDepthRange".}
-proc glDisable*(cap: TGLenum){.dynlib: dllname, importc: "glDisable".}
-proc glDisableClientState*(aarray: TGLenum){.dynlib: dllname, 
-    importc: "glDisableClientState".}
-proc glDrawArrays*(mode: TGLenum, first: TGLint, count: TGLsizei){.
-    dynlib: dllname, importc: "glDrawArrays".}
-proc glDrawBuffer*(mode: TGLenum){.dynlib: dllname, importc: "glDrawBuffer".}
-proc glDrawElements*(mode: TGLenum, count: TGLsizei, atype: TGLenum, 
-                     indices: Pointer){.dynlib: dllname, 
-                                        importc: "glDrawElements".}
-proc glDrawPixels*(width, height: TGLsizei, format, atype: TGLenum, 
-                   pixels: Pointer){.dynlib: dllname, importc: "glDrawPixels".}
-proc glEdgeFlag*(flag: TGLboolean){.dynlib: dllname, importc: "glEdgeFlag".}
-proc glEdgeFlagPointer*(stride: TGLsizei, pointer: Pointer){.dynlib: dllname, 
-    importc: "glEdgeFlagPointer".}
-proc glEdgeFlagv*(flag: PGLboolean){.dynlib: dllname, importc: "glEdgeFlagv".}
-proc glEnable*(cap: TGLenum){.dynlib: dllname, importc: "glEnable".}
-proc glEnableClientState*(aarray: TGLenum){.dynlib: dllname, 
-    importc: "glEnableClientState".}
-proc glEnd*(){.dynlib: dllname, importc: "glEnd".}
-proc glEndList*(){.dynlib: dllname, importc: "glEndList".}
-proc glEvalCoord1d*(u: TGLdouble){.dynlib: dllname, importc: "glEvalCoord1d".}
-proc glEvalCoord1dv*(u: PGLdouble){.dynlib: dllname, importc: "glEvalCoord1dv".}
-proc glEvalCoord1f*(u: TGLfloat){.dynlib: dllname, importc: "glEvalCoord1f".}
-proc glEvalCoord1fv*(u: PGLfloat){.dynlib: dllname, importc: "glEvalCoord1fv".}
-proc glEvalCoord2d*(u, v: TGLdouble){.dynlib: dllname, importc: "glEvalCoord2d".}
-proc glEvalCoord2dv*(u: PGLdouble){.dynlib: dllname, importc: "glEvalCoord2dv".}
-proc glEvalCoord2f*(u, v: TGLfloat){.dynlib: dllname, importc: "glEvalCoord2f".}
-proc glEvalCoord2fv*(u: PGLfloat){.dynlib: dllname, importc: "glEvalCoord2fv".}
-proc glEvalMesh1*(mode: TGLenum, i1, i2: TGLint){.dynlib: dllname, 
-    importc: "glEvalMesh1".}
-proc glEvalMesh2*(mode: TGLenum, i1, i2, j1, j2: TGLint){.dynlib: dllname, 
-    importc: "glEvalMesh2".}
-proc glEvalPoint1*(i: TGLint){.dynlib: dllname, importc: "glEvalPoint1".}
-proc glEvalPoint2*(i, j: TGLint){.dynlib: dllname, importc: "glEvalPoint2".}
-proc glFeedbackBuffer*(size: TGLsizei, atype: TGLenum, buffer: PGLfloat){.
-    dynlib: dllname, importc: "glFeedbackBuffer".}
-proc glFinish*(){.dynlib: dllname, importc: "glFinish".}
-proc glFlush*(){.dynlib: dllname, importc: "glFlush".}
-proc glFogf*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glFogf".}
-proc glFogfv*(pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glFogfv".}
-proc glFogi*(pname: TGLenum, param: TGLint){.dynlib: dllname, importc: "glFogi".}
-proc glFogiv*(pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glFogiv".}
-proc glFrontFace*(mode: TGLenum){.dynlib: dllname, importc: "glFrontFace".}
-proc glFrustum*(left, right, bottom, top, zNear, zFar: TGLdouble){.
-    dynlib: dllname, importc: "glFrustum".}
-proc glGenLists*(range: TGLsizei): TGLuint{.dynlib: dllname, 
-    importc: "glGenLists".}
-proc glGenTextures*(n: TGLsizei, textures: PGLuint){.dynlib: dllname, 
-    importc: "glGenTextures".}
-proc glGetBooleanv*(pname: TGLenum, params: PGLboolean){.dynlib: dllname, 
-    importc: "glGetBooleanv".}
-proc glGetClipPlane*(plane: TGLenum, equation: PGLdouble){.dynlib: dllname, 
-    importc: "glGetClipPlane".}
-proc glGetDoublev*(pname: TGLenum, params: PGLdouble){.dynlib: dllname, 
-    importc: "glGetDoublev".}
-proc glGetError*(): TGLenum{.dynlib: dllname, importc: "glGetError".}
-proc glGetFloatv*(pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetFloatv".}
-proc glGetIntegerv*(pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glGetIntegerv".}
-proc glGetLightfv*(light, pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetLightfv".}
-proc glGetLightiv*(light, pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glGetLightiv".}
-proc glGetMapdv*(target, query: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glGetMapdv".}
-proc glGetMapfv*(target, query: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glGetMapfv".}
-proc glGetMapiv*(target, query: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glGetMapiv".}
-proc glGetMaterialfv*(face, pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetMaterialfv".}
-proc glGetMaterialiv*(face, pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glGetMaterialiv".}
-proc glGetPixelMapfv*(map: TGLenum, values: PGLfloat){.dynlib: dllname, 
-    importc: "glGetPixelMapfv".}
-proc glGetPixelMapuiv*(map: TGLenum, values: PGLuint){.dynlib: dllname, 
-    importc: "glGetPixelMapuiv".}
-proc glGetPixelMapusv*(map: TGLenum, values: PGLushort){.dynlib: dllname, 
-    importc: "glGetPixelMapusv".}
-proc glGetPointerv*(pname: TGLenum, params: Pointer){.dynlib: dllname, 
-    importc: "glGetPointerv".}
-proc glGetPolygonStipple*(mask: PGLubyte){.dynlib: dllname, 
-    importc: "glGetPolygonStipple".}
-proc glGetString*(name: TGLenum): cstring{.dynlib: dllname, 
-    importc: "glGetString".}
-proc glGetTexEnvfv*(target, pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetTexEnvfv".}
-proc glGetTexEnviv*(target, pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glGetTexEnviv".}
-proc glGetTexGendv*(coord, pname: TGLenum, params: PGLdouble){.dynlib: dllname, 
-    importc: "glGetTexGendv".}
-proc glGetTexGenfv*(coord, pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetTexGenfv".}
-proc glGetTexGeniv*(coord, pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glGetTexGeniv".}
-proc glGetTexImage*(target: TGLenum, level: TGLint, format: TGLenum, 
-                    atype: TGLenum, pixels: Pointer){.dynlib: dllname, 
-    importc: "glGetTexImage".}
-proc glGetTexLevelParameterfv*(target: TGLenum, level: TGLint, pname: TGLenum, 
-                               params: Pointer){.dynlib: dllname, 
-    importc: "glGetTexLevelParameterfv".}
-proc glGetTexLevelParameteriv*(target: TGLenum, level: TGLint, pname: TGLenum, 
-                               params: PGLint){.dynlib: dllname, 
-    importc: "glGetTexLevelParameteriv".}
-proc glGetTexParameterfv*(target, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetTexParameterfv".}
-proc glGetTexParameteriv*(target, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetTexParameteriv".}
-proc glHint*(target, mode: TGLenum){.dynlib: dllname, importc: "glHint".}
-proc glIndexMask*(mask: TGLuint){.dynlib: dllname, importc: "glIndexMask".}
-proc glIndexPointer*(atype: TGLenum, stride: TGLsizei, pointer: Pointer){.
-    dynlib: dllname, importc: "glIndexPointer".}
-proc glIndexd*(c: TGLdouble){.dynlib: dllname, importc: "glIndexd".}
-proc glIndexdv*(c: PGLdouble){.dynlib: dllname, importc: "glIndexdv".}
-proc glIndexf*(c: TGLfloat){.dynlib: dllname, importc: "glIndexf".}
-proc glIndexfv*(c: PGLfloat){.dynlib: dllname, importc: "glIndexfv".}
-proc glIndexi*(c: TGLint){.dynlib: dllname, importc: "glIndexi".}
-proc glIndexiv*(c: PGLint){.dynlib: dllname, importc: "glIndexiv".}
-proc glIndexs*(c: TGLshort){.dynlib: dllname, importc: "glIndexs".}
-proc glIndexsv*(c: PGLshort){.dynlib: dllname, importc: "glIndexsv".}
-proc glIndexub*(c: TGLubyte){.dynlib: dllname, importc: "glIndexub".}
-proc glIndexubv*(c: PGLubyte){.dynlib: dllname, importc: "glIndexubv".}
-proc glInitNames*(){.dynlib: dllname, importc: "glInitNames".}
-proc glInterleavedArrays*(format: TGLenum, stride: TGLsizei, pointer: Pointer){.
-    dynlib: dllname, importc: "glInterleavedArrays".}
-proc glIsEnabled*(cap: TGLenum): TGLboolean{.dynlib: dllname, 
-    importc: "glIsEnabled".}
-proc glIsList*(list: TGLuint): TGLboolean{.dynlib: dllname, importc: "glIsList".}
-proc glIsTexture*(texture: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsTexture".}
-proc glLightModelf*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glLightModelf".}
-proc glLightModelfv*(pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glLightModelfv".}
-proc glLightModeli*(pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glLightModeli".}
-proc glLightModeliv*(pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glLightModeliv".}
-proc glLightf*(light, pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glLightf".}
-proc glLightfv*(light, pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glLightfv".}
-proc glLighti*(light, pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glLighti".}
-proc glLightiv*(light, pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glLightiv".}
-proc glLineStipple*(factor: TGLint, pattern: TGLushort){.dynlib: dllname, 
-    importc: "glLineStipple".}
-proc glLineWidth*(width: TGLfloat){.dynlib: dllname, importc: "glLineWidth".}
-proc glListBase*(base: TGLuint){.dynlib: dllname, importc: "glListBase".}
-proc glLoadIdentity*(){.dynlib: dllname, importc: "glLoadIdentity".}
-proc glLoadMatrixd*(m: PGLdouble){.dynlib: dllname, importc: "glLoadMatrixd".}
-proc glLoadMatrixf*(m: PGLfloat){.dynlib: dllname, importc: "glLoadMatrixf".}
-proc glLoadName*(name: TGLuint){.dynlib: dllname, importc: "glLoadName".}
-proc glLogicOp*(opcode: TGLenum){.dynlib: dllname, importc: "glLogicOp".}
-proc glMap1d*(target: TGLenum, u1, u2: TGLdouble, stride, order: TGLint, 
-              points: PGLdouble){.dynlib: dllname, importc: "glMap1d".}
-proc glMap1f*(target: TGLenum, u1, u2: TGLfloat, stride, order: TGLint, 
-              points: PGLfloat){.dynlib: dllname, importc: "glMap1f".}
-proc glMap2d*(target: TGLenum, u1, u2: TGLdouble, ustride, uorder: TGLint, 
-              v1, v2: TGLdouble, vstride, vorder: TGLint, points: PGLdouble){.
-    dynlib: dllname, importc: "glMap2d".}
-proc glMap2f*(target: TGLenum, u1, u2: TGLfloat, ustride, uorder: TGLint, 
-              v1, v2: TGLfloat, vstride, vorder: TGLint, points: PGLfloat){.
-    dynlib: dllname, importc: "glMap2f".}
-proc glMapGrid1d*(un: TGLint, u1, u2: TGLdouble){.dynlib: dllname, 
-    importc: "glMapGrid1d".}
-proc glMapGrid1f*(un: TGLint, u1, u2: TGLfloat){.dynlib: dllname, 
-    importc: "glMapGrid1f".}
-proc glMapGrid2d*(un: TGLint, u1, u2: TGLdouble, vn: TGLint, v1, v2: TGLdouble){.
-    dynlib: dllname, importc: "glMapGrid2d".}
-proc glMapGrid2f*(un: TGLint, u1, u2: TGLfloat, vn: TGLint, v1, v2: TGLfloat){.
-    dynlib: dllname, importc: "glMapGrid2f".}
-proc glMaterialf*(face, pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glMaterialf".}
-proc glMaterialfv*(face, pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glMaterialfv".}
-proc glMateriali*(face, pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glMateriali".}
-proc glMaterialiv*(face, pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glMaterialiv".}
-proc glMatrixMode*(mode: TGLenum){.dynlib: dllname, importc: "glMatrixMode".}
-proc glMultMatrixd*(m: PGLdouble){.dynlib: dllname, importc: "glMultMatrixd".}
-proc glMultMatrixf*(m: PGLfloat){.dynlib: dllname, importc: "glMultMatrixf".}
-proc glNewList*(list: TGLuint, mode: TGLenum){.dynlib: dllname, 
-    importc: "glNewList".}
-proc glNormal3b*(nx, ny, nz: TGlbyte){.dynlib: dllname, importc: "glNormal3b".}
-proc glNormal3bv*(v: PGLbyte){.dynlib: dllname, importc: "glNormal3bv".}
-proc glNormal3d*(nx, ny, nz: TGLdouble){.dynlib: dllname, importc: "glNormal3d".}
-proc glNormal3dv*(v: PGLdouble){.dynlib: dllname, importc: "glNormal3dv".}
-proc glNormal3f*(nx, ny, nz: TGLfloat){.dynlib: dllname, importc: "glNormal3f".}
-proc glNormal3fv*(v: PGLfloat){.dynlib: dllname, importc: "glNormal3fv".}
-proc glNormal3i*(nx, ny, nz: TGLint){.dynlib: dllname, importc: "glNormal3i".}
-proc glNormal3iv*(v: PGLint){.dynlib: dllname, importc: "glNormal3iv".}
-proc glNormal3s*(nx, ny, nz: TGLshort){.dynlib: dllname, importc: "glNormal3s".}
-proc glNormal3sv*(v: PGLshort){.dynlib: dllname, importc: "glNormal3sv".}
-proc glNormalPointer*(atype: TGLenum, stride: TGLsizei, pointer: Pointer){.
-    dynlib: dllname, importc: "glNormalPointer".}
-proc glOrtho*(left, right, bottom, top, zNear, zFar: TGLdouble){.
-    dynlib: dllname, importc: "glOrtho".}
-proc glPassThrough*(token: TGLfloat){.dynlib: dllname, importc: "glPassThrough".}
-proc glPixelMapfv*(map: TGLenum, mapsize: TGLsizei, values: PGLfloat){.
-    dynlib: dllname, importc: "glPixelMapfv".}
-proc glPixelMapuiv*(map: TGLenum, mapsize: TGLsizei, values: PGLuint){.
-    dynlib: dllname, importc: "glPixelMapuiv".}
-proc glPixelMapusv*(map: TGLenum, mapsize: TGLsizei, values: PGLushort){.
-    dynlib: dllname, importc: "glPixelMapusv".}
-proc glPixelStoref*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glPixelStoref".}
-proc glPixelStorei*(pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glPixelStorei".}
-proc glPixelTransferf*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glPixelTransferf".}
-proc glPixelTransferi*(pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glPixelTransferi".}
-proc glPixelZoom*(xfactor, yfactor: TGLfloat){.dynlib: dllname, 
-    importc: "glPixelZoom".}
-proc glPointSize*(size: TGLfloat){.dynlib: dllname, importc: "glPointSize".}
-proc glPolygonMode*(face, mode: TGLenum){.dynlib: dllname, 
-    importc: "glPolygonMode".}
-proc glPolygonOffset*(factor, units: TGLfloat){.dynlib: dllname, 
-    importc: "glPolygonOffset".}
-proc glPolygonStipple*(mask: PGLubyte){.dynlib: dllname, 
-                                        importc: "glPolygonStipple".}
-proc glPopAttrib*(){.dynlib: dllname, importc: "glPopAttrib".}
-proc glPopClientAttrib*(){.dynlib: dllname, importc: "glPopClientAttrib".}
-proc glPopMatrix*(){.dynlib: dllname, importc: "glPopMatrix".}
-proc glPopName*(){.dynlib: dllname, importc: "glPopName".}
-proc glPrioritizeTextures*(n: TGLsizei, textures: PGLuint, priorities: PGLclampf){.
-    dynlib: dllname, importc: "glPrioritizeTextures".}
-proc glPushAttrib*(mask: TGLbitfield){.dynlib: dllname, importc: "glPushAttrib".}
-proc glPushClientAttrib*(mask: TGLbitfield){.dynlib: dllname, 
-    importc: "glPushClientAttrib".}
-proc glPushMatrix*(){.dynlib: dllname, importc: "glPushMatrix".}
-proc glPushName*(name: TGLuint){.dynlib: dllname, importc: "glPushName".}
-proc glRasterPos2d*(x, y: TGLdouble){.dynlib: dllname, importc: "glRasterPos2d".}
-proc glRasterPos2dv*(v: PGLdouble){.dynlib: dllname, importc: "glRasterPos2dv".}
-proc glRasterPos2f*(x, y: TGLfloat){.dynlib: dllname, importc: "glRasterPos2f".}
-proc glRasterPos2fv*(v: PGLfloat){.dynlib: dllname, importc: "glRasterPos2fv".}
-proc glRasterPos2i*(x, y: TGLint){.dynlib: dllname, importc: "glRasterPos2i".}
-proc glRasterPos2iv*(v: PGLint){.dynlib: dllname, importc: "glRasterPos2iv".}
-proc glRasterPos2s*(x, y: TGLshort){.dynlib: dllname, importc: "glRasterPos2s".}
-proc glRasterPos2sv*(v: PGLshort){.dynlib: dllname, importc: "glRasterPos2sv".}
-proc glRasterPos3d*(x, y, z: TGLdouble){.dynlib: dllname, 
-    importc: "glRasterPos3d".}
-proc glRasterPos3dv*(v: PGLdouble){.dynlib: dllname, importc: "glRasterPos3dv".}
-proc glRasterPos3f*(x, y, z: TGLfloat){.dynlib: dllname, 
-                                        importc: "glRasterPos3f".}
-proc glRasterPos3fv*(v: PGLfloat){.dynlib: dllname, importc: "glRasterPos3fv".}
-proc glRasterPos3i*(x, y, z: TGLint){.dynlib: dllname, importc: "glRasterPos3i".}
-proc glRasterPos3iv*(v: PGLint){.dynlib: dllname, importc: "glRasterPos3iv".}
-proc glRasterPos3s*(x, y, z: TGLshort){.dynlib: dllname, 
-                                        importc: "glRasterPos3s".}
-proc glRasterPos3sv*(v: PGLshort){.dynlib: dllname, importc: "glRasterPos3sv".}
-proc glRasterPos4d*(x, y, z, w: TGLdouble){.dynlib: dllname, 
-    importc: "glRasterPos4d".}
-proc glRasterPos4dv*(v: PGLdouble){.dynlib: dllname, importc: "glRasterPos4dv".}
-proc glRasterPos4f*(x, y, z, w: TGLfloat){.dynlib: dllname, 
-    importc: "glRasterPos4f".}
-proc glRasterPos4fv*(v: PGLfloat){.dynlib: dllname, importc: "glRasterPos4fv".}
-proc glRasterPos4i*(x, y, z, w: TGLint){.dynlib: dllname, 
-    importc: "glRasterPos4i".}
-proc glRasterPos4iv*(v: PGLint){.dynlib: dllname, importc: "glRasterPos4iv".}
-proc glRasterPos4s*(x, y, z, w: TGLshort){.dynlib: dllname, 
-    importc: "glRasterPos4s".}
-proc glRasterPos4sv*(v: PGLshort){.dynlib: dllname, importc: "glRasterPos4sv".}
-proc glReadBuffer*(mode: TGLenum){.dynlib: dllname, importc: "glReadBuffer".}
-proc glReadPixels*(x, y: TGLint, width, height: TGLsizei, 
-                   format, atype: TGLenum, pixels: Pointer){.dynlib: dllname, 
-    importc: "glReadPixels".}
-proc glRectd*(x1, y1, x2, y2: TGLdouble){.dynlib: dllname, importc: "glRectd".}
-proc glRectdv*(v1: PGLdouble, v2: PGLdouble){.dynlib: dllname, 
-    importc: "glRectdv".}
-proc glRectf*(x1, y1, x2, y2: TGLfloat){.dynlib: dllname, importc: "glRectf".}
-proc glRectfv*(v1: PGLfloat, v2: PGLfloat){.dynlib: dllname, importc: "glRectfv".}
-proc glRecti*(x1, y1, x2, y2: TGLint){.dynlib: dllname, importc: "glRecti".}
-proc glRectiv*(v1: PGLint, v2: PGLint){.dynlib: dllname, importc: "glRectiv".}
-proc glRects*(x1, y1, x2, y2: TGLshort){.dynlib: dllname, importc: "glRects".}
-proc glRectsv*(v1: PGLshort, v2: PGLshort){.dynlib: dllname, importc: "glRectsv".}
-proc glRenderMode*(mode: TGLint): TGLint{.dynlib: dllname, 
-    importc: "glRenderMode".}
-proc glRotated*(angle, x, y, z: TGLdouble){.dynlib: dllname, 
-    importc: "glRotated".}
-proc glRotatef*(angle, x, y, z: TGLfloat){.dynlib: dllname, importc: "glRotatef".}
-proc glScaled*(x, y, z: TGLdouble){.dynlib: dllname, importc: "glScaled".}
-proc glScalef*(x, y, z: TGLfloat){.dynlib: dllname, importc: "glScalef".}
-proc glScissor*(x, y: TGLint, width, height: TGLsizei){.dynlib: dllname, 
-    importc: "glScissor".}
-proc glSelectBuffer*(size: TGLsizei, buffer: PGLuint){.dynlib: dllname, 
-    importc: "glSelectBuffer".}
-proc glShadeModel*(mode: TGLenum){.dynlib: dllname, importc: "glShadeModel".}
-proc glStencilFunc*(func: TGLenum, theref: TGLint, mask: TGLuint){.
-    dynlib: dllname, importc: "glStencilFunc".}
-proc glStencilMask*(mask: TGLuint){.dynlib: dllname, importc: "glStencilMask".}
-proc glStencilOp*(fail, zfail, zpass: TGLenum){.dynlib: dllname, 
-    importc: "glStencilOp".}
-proc glTexCoord1d*(s: TGLdouble){.dynlib: dllname, importc: "glTexCoord1d".}
-proc glTexCoord1dv*(v: PGLdouble){.dynlib: dllname, importc: "glTexCoord1dv".}
-proc glTexCoord1f*(s: TGLfloat){.dynlib: dllname, importc: "glTexCoord1f".}
-proc glTexCoord1fv*(v: PGLfloat){.dynlib: dllname, importc: "glTexCoord1fv".}
-proc glTexCoord1i*(s: TGLint){.dynlib: dllname, importc: "glTexCoord1i".}
-proc glTexCoord1iv*(v: PGLint){.dynlib: dllname, importc: "glTexCoord1iv".}
-proc glTexCoord1s*(s: TGLshort){.dynlib: dllname, importc: "glTexCoord1s".}
-proc glTexCoord1sv*(v: PGLshort){.dynlib: dllname, importc: "glTexCoord1sv".}
-proc glTexCoord2d*(s, t: TGLdouble){.dynlib: dllname, importc: "glTexCoord2d".}
-proc glTexCoord2dv*(v: PGLdouble){.dynlib: dllname, importc: "glTexCoord2dv".}
-proc glTexCoord2f*(s, t: TGLfloat){.dynlib: dllname, importc: "glTexCoord2f".}
-proc glTexCoord2fv*(v: PGLfloat){.dynlib: dllname, importc: "glTexCoord2fv".}
-proc glTexCoord2i*(s, t: TGLint){.dynlib: dllname, importc: "glTexCoord2i".}
-proc glTexCoord2iv*(v: PGLint){.dynlib: dllname, importc: "glTexCoord2iv".}
-proc glTexCoord2s*(s, t: TGLshort){.dynlib: dllname, importc: "glTexCoord2s".}
-proc glTexCoord2sv*(v: PGLshort){.dynlib: dllname, importc: "glTexCoord2sv".}
-proc glTexCoord3d*(s, t, r: TGLdouble){.dynlib: dllname, importc: "glTexCoord3d".}
-proc glTexCoord3dv*(v: PGLdouble){.dynlib: dllname, importc: "glTexCoord3dv".}
-proc glTexCoord3f*(s, t, r: TGLfloat){.dynlib: dllname, importc: "glTexCoord3f".}
-proc glTexCoord3fv*(v: PGLfloat){.dynlib: dllname, importc: "glTexCoord3fv".}
-proc glTexCoord3i*(s, t, r: TGLint){.dynlib: dllname, importc: "glTexCoord3i".}
-proc glTexCoord3iv*(v: PGLint){.dynlib: dllname, importc: "glTexCoord3iv".}
-proc glTexCoord3s*(s, t, r: TGLshort){.dynlib: dllname, importc: "glTexCoord3s".}
-proc glTexCoord3sv*(v: PGLshort){.dynlib: dllname, importc: "glTexCoord3sv".}
-proc glTexCoord4d*(s, t, r, q: TGLdouble){.dynlib: dllname, 
-    importc: "glTexCoord4d".}
-proc glTexCoord4dv*(v: PGLdouble){.dynlib: dllname, importc: "glTexCoord4dv".}
-proc glTexCoord4f*(s, t, r, q: TGLfloat){.dynlib: dllname, 
-    importc: "glTexCoord4f".}
-proc glTexCoord4fv*(v: PGLfloat){.dynlib: dllname, importc: "glTexCoord4fv".}
-proc glTexCoord4i*(s, t, r, q: TGLint){.dynlib: dllname, importc: "glTexCoord4i".}
-proc glTexCoord4iv*(v: PGLint){.dynlib: dllname, importc: "glTexCoord4iv".}
-proc glTexCoord4s*(s, t, r, q: TGLshort){.dynlib: dllname, 
-    importc: "glTexCoord4s".}
-proc glTexCoord4sv*(v: PGLshort){.dynlib: dllname, importc: "glTexCoord4sv".}
-proc glTexCoordPointer*(size: TGLint, atype: TGLenum, stride: TGLsizei, 
-                        pointer: Pointer){.dynlib: dllname, 
-    importc: "glTexCoordPointer".}
-proc glTexEnvf*(target: TGLenum, pname: TGLenum, param: TGLfloat){.
-    dynlib: dllname, importc: "glTexEnvf".}
-proc glTexEnvfv*(target: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glTexEnvfv".}
-proc glTexEnvi*(target: TGLenum, pname: TGLenum, param: TGLint){.
-    dynlib: dllname, importc: "glTexEnvi".}
-proc glTexEnviv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glTexEnviv".}
-proc glTexGend*(coord: TGLenum, pname: TGLenum, param: TGLdouble){.
-    dynlib: dllname, importc: "glTexGend".}
-proc glTexGendv*(coord: TGLenum, pname: TGLenum, params: PGLdouble){.
-    dynlib: dllname, importc: "glTexGendv".}
-proc glTexGenf*(coord: TGLenum, pname: TGLenum, param: TGLfloat){.
-    dynlib: dllname, importc: "glTexGenf".}
-proc glTexGenfv*(coord: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glTexGenfv".}
-proc glTexGeni*(coord: TGLenum, pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glTexGeni".}
-proc glTexGeniv*(coord: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glTexGeniv".}
-proc glTexImage1D*(target: TGLenum, level, internalformat: TGLint, 
-                   width: TGLsizei, border: TGLint, format, atype: TGLenum, 
-                   pixels: Pointer){.dynlib: dllname, importc: "glTexImage1D".}
-proc glTexImage2D*(target: TGLenum, level, internalformat: TGLint, 
-                   width, height: TGLsizei, border: TGLint, 
-                   format, atype: TGLenum, pixels: Pointer){.dynlib: dllname, 
-    importc: "glTexImage2D".}
-proc glTexParameterf*(target: TGLenum, pname: TGLenum, param: TGLfloat){.
-    dynlib: dllname, importc: "glTexParameterf".}
-proc glTexParameterfv*(target: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glTexParameterfv".}
-proc glTexParameteri*(target: TGLenum, pname: TGLenum, param: TGLint){.
-    dynlib: dllname, importc: "glTexParameteri".}
-proc glTexParameteriv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glTexParameteriv".}
-proc glTexSubImage1D*(target: TGLenum, level, xoffset: TGLint, width: TGLsizei, 
-                      format, atype: TGLenum, pixels: Pointer){.dynlib: dllname, 
-    importc: "glTexSubImage1D".}
-proc glTexSubImage2D*(target: TGLenum, level, xoffset, yoffset: TGLint, 
-                      width, height: TGLsizei, format, atype: TGLenum, 
-                      pixels: Pointer){.dynlib: dllname, 
-                                        importc: "glTexSubImage2D".}
-proc glTranslated*(x, y, z: TGLdouble){.dynlib: dllname, importc: "glTranslated".}
-proc glTranslatef*(x, y, z: TGLfloat){.dynlib: dllname, importc: "glTranslatef".}
-proc glVertex2d*(x, y: TGLdouble){.dynlib: dllname, importc: "glVertex2d".}
-proc glVertex2dv*(v: PGLdouble){.dynlib: dllname, importc: "glVertex2dv".}
-proc glVertex2f*(x, y: TGLfloat){.dynlib: dllname, importc: "glVertex2f".}
-proc glVertex2fv*(v: PGLfloat){.dynlib: dllname, importc: "glVertex2fv".}
-proc glVertex2i*(x, y: TGLint){.dynlib: dllname, importc: "glVertex2i".}
-proc glVertex2iv*(v: PGLint){.dynlib: dllname, importc: "glVertex2iv".}
-proc glVertex2s*(x, y: TGLshort){.dynlib: dllname, importc: "glVertex2s".}
-proc glVertex2sv*(v: PGLshort){.dynlib: dllname, importc: "glVertex2sv".}
-proc glVertex3d*(x, y, z: TGLdouble){.dynlib: dllname, importc: "glVertex3d".}
-proc glVertex3dv*(v: PGLdouble){.dynlib: dllname, importc: "glVertex3dv".}
-proc glVertex3f*(x, y, z: TGLfloat){.dynlib: dllname, importc: "glVertex3f".}
-proc glVertex3fv*(v: PGLfloat){.dynlib: dllname, importc: "glVertex3fv".}
-proc glVertex3i*(x, y, z: TGLint){.dynlib: dllname, importc: "glVertex3i".}
-proc glVertex3iv*(v: PGLint){.dynlib: dllname, importc: "glVertex3iv".}
-proc glVertex3s*(x, y, z: TGLshort){.dynlib: dllname, importc: "glVertex3s".}
-proc glVertex3sv*(v: PGLshort){.dynlib: dllname, importc: "glVertex3sv".}
-proc glVertex4d*(x, y, z, w: TGLdouble){.dynlib: dllname, importc: "glVertex4d".}
-proc glVertex4dv*(v: PGLdouble){.dynlib: dllname, importc: "glVertex4dv".}
-proc glVertex4f*(x, y, z, w: TGLfloat){.dynlib: dllname, importc: "glVertex4f".}
-proc glVertex4fv*(v: PGLfloat){.dynlib: dllname, importc: "glVertex4fv".}
-proc glVertex4i*(x, y, z, w: TGLint){.dynlib: dllname, importc: "glVertex4i".}
-proc glVertex4iv*(v: PGLint){.dynlib: dllname, importc: "glVertex4iv".}
-proc glVertex4s*(x, y, z, w: TGLshort){.dynlib: dllname, importc: "glVertex4s".}
-proc glVertex4sv*(v: PGLshort){.dynlib: dllname, importc: "glVertex4sv".}
-proc glVertexPointer*(size: TGLint, atype: TGLenum, stride: TGLsizei, 
-                      pointer: Pointer){.dynlib: dllname, 
-    importc: "glVertexPointer".}
-proc glViewport*(x, y: TGLint, width, height: TGLsizei){.dynlib: dllname, 
-    importc: "glViewport".}
-type 
-  PFN_GLARRAY_ELEMENT_EXTPROC* = proc (i: TGLint)
-  PFN_GLDRAW_ARRAYS_EXTPROC* = proc (mode: TGLenum, first: TGLint, 
-                                     count: TGLsizei)
-  PFN_GLVERTEX_POINTER_EXTPROC* = proc (size: TGLint, atype: TGLenum, 
-                                        stride, count: TGLsizei, 
-                                        pointer: Pointer)
-  PFN_GLNORMAL_POINTER_EXTPROC* = proc (atype: TGLenum, stride, count: TGLsizei, 
-                                        pointer: Pointer)
-  PFN_GLCOLOR_POINTER_EXTPROC* = proc (size: TGLint, atype: TGLenum, 
-                                       stride, count: TGLsizei, pointer: Pointer)
-  PFN_GLINDEX_POINTER_EXTPROC* = proc (atype: TGLenum, stride, count: TGLsizei, 
-                                       pointer: Pointer)
-  PFN_GLTEXCOORD_POINTER_EXTPROC* = proc (size: TGLint, atype: TGLenum, 
-      stride, count: TGLsizei, pointer: Pointer)
-  PFN_GLEDGEFLAG_POINTER_EXTPROC* = proc (stride, count: TGLsizei, 
-      pointer: PGLboolean)
-  PFN_GLGET_POINTER_VEXT_PROC* = proc (pname: TGLenum, params: Pointer)
-  PFN_GLARRAY_ELEMENT_ARRAY_EXTPROC* = proc (mode: TGLenum, count: TGLsizei, 
-      pi: Pointer)            # WIN_swap_hint
-  PFN_GLADDSWAPHINT_RECT_WINPROC* = proc (x, y: TGLint, width, height: TGLsizei)
-  PFN_GLCOLOR_TABLE_EXTPROC* = proc (target, internalFormat: TGLenum, 
-                                     width: TGLsizei, format, atype: TGLenum, 
-                                     data: Pointer)
-  PFN_GLCOLOR_SUBTABLE_EXTPROC* = proc (target: TGLenum, start, count: TGLsizei, 
-                                        format, atype: TGLenum, data: Pointer)
-  PFN_GLGETCOLOR_TABLE_EXTPROC* = proc (target, format, atype: TGLenum, 
-                                        data: Pointer)
-  PFN_GLGETCOLOR_TABLE_PARAMETER_IVEXTPROC* = proc (target, pname: TGLenum, 
-      params: PGLint)
-  PFN_GLGETCOLOR_TABLE_PARAMETER_FVEXTPROC* = proc (target, pname: TGLenum, 
-      params: PGLfloat)
-
-{.pop.}
-# implementation
diff --git a/lib/wrappers/opengl/glext.nim b/lib/wrappers/opengl/glext.nim
deleted file mode 100644
index 32871df0e..000000000
--- a/lib/wrappers/opengl/glext.nim
+++ /dev/null
@@ -1,4673 +0,0 @@
-#
-#
-#  Adaption of the delphi3d.net OpenGL units to FreePascal
-#  Sebastian Guenther (sg@freepascal.org) in 2002
-#  These units are free to use
-#
-#
-
-#*************************************************
-# *        OpenGL extension loading library        *
-# * Generated by MetaGLext, written by Tom Nuydens *
-# *  (tom@delphi3d.net -- http://www.delphi3d.net  *
-# *************************************************
-#*** Generated on 10/11/2002
-
-when defined(windows): 
-  {.push, callconv: stdcall.}
-else: 
-  {.push, callconv: cdecl.}
-import 
-  gl
-
-type 
-  GLcharARB* = Char
-  TGLcharARB* = GLcharARB
-  PGLcharARB* = ptr GLcharARB
-  GLhandleARB* = int
-  TGLhandleARB* = GLhandleARB
-  PGLhandleARB* = ptr GLhandleARB
-  GLintptr* = int
-  TGLintptr* = GLintptr
-  PGLintptr* = ptr GLintptr
-  GLsizeiptr* = int
-  TGLsizeiptr* = GLsizeiptr
-  PGLsizeiptr* = ptr GLsizeiptr
-  GLchar* = Char
-  TGLchar* = GLchar
-  PGLchar* = cstring          #***** GL_version_1_2 *****//
-
-const 
-  GL_UNSIGNED_BYTE_3_3_2* = 0x00008032
-  GL_UNSIGNED_SHORT_4_4_4_4* = 0x00008033
-  GL_UNSIGNED_SHORT_5_5_5_1* = 0x00008034
-  GL_UNSIGNED_INT_8_8_8_8* = 0x00008035
-  GL_UNSIGNED_INT_10_10_10_2* = 0x00008036
-  GL_RESCALE_NORMAL* = 0x0000803A
-  GL_UNSIGNED_BYTE_2_3_3_REV* = 0x00008362
-  GL_UNSIGNED_SHORT_5_6_5* = 0x00008363
-  GL_UNSIGNED_SHORT_5_6_5_REV* = 0x00008364
-  GL_UNSIGNED_SHORT_4_4_4_4_REV* = 0x00008365
-  GL_UNSIGNED_SHORT_1_5_5_5_REV* = 0x00008366
-  GL_UNSIGNED_INT_8_8_8_8_REV* = 0x00008367
-  GL_UNSIGNED_INT_2_10_10_10_REV* = 0x00008368
-  GL_BGR* = 0x000080E0
-  GL_BGRA* = 0x000080E1
-  GL_MAX_ELEMENTS_VERTICES* = 0x000080E8
-  GL_MAX_ELEMENTS_INDICES* = 0x000080E9
-  GL_CLAMP_TO_EDGE* = 0x0000812F
-  GL_TEXTURE_MIN_LOD* = 0x0000813A
-  GL_TEXTURE_MAX_LOD* = 0x0000813B
-  GL_TEXTURE_BASE_LEVEL* = 0x0000813C
-  GL_TEXTURE_MAX_LEVEL* = 0x0000813D
-  GL_LIGHT_MODEL_COLOR_CONTROL* = 0x000081F8
-  GL_SINGLE_COLOR* = 0x000081F9
-  GL_SEPARATE_SPECULAR_COLOR* = 0x000081FA
-  GL_SMOOTH_POINT_SIZE_RANGE* = 0x00000B12
-  GL_SMOOTH_POINT_SIZE_GRANULARITY* = 0x00000B13
-  GL_SMOOTH_LINE_WIDTH_RANGE* = 0x00000B22
-  GL_SMOOTH_LINE_WIDTH_GRANULARITY* = 0x00000B23
-  GL_ALIASED_POINT_SIZE_RANGE* = 0x0000846D
-  GL_ALIASED_LINE_WIDTH_RANGE* = 0x0000846E
-  GL_PACK_SKIP_IMAGES* = 0x0000806B
-  GL_PACK_IMAGE_HEIGHT* = 0x0000806C
-  GL_UNPACK_SKIP_IMAGES* = 0x0000806D
-  GL_UNPACK_IMAGE_HEIGHT* = 0x0000806E
-  GL_TEXTURE_3D* = 0x0000806F
-  GL_PROXY_TEXTURE_3D* = 0x00008070
-  GL_TEXTURE_DEPTH* = 0x00008071
-  GL_TEXTURE_WRAP_R* = 0x00008072
-  GL_MAX_3D_TEXTURE_SIZE* = 0x00008073
-
-proc glBlendColor*(red: TGLclampf, green: TGLclampf, blue: TGLclampf, 
-                   alpha: TGLclampf){.dynlib: dllname, importc: "glBlendColor".}
-proc glBlendEquation*(mode: TGLenum){.dynlib: dllname, 
-                                      importc: "glBlendEquation".}
-proc glDrawRangeElements*(mode: TGLenum, start: TGLuint, theend: TGLuint, 
-                          count: TGLsizei, thetype: TGLenum, indices: PGLvoid){.
-    dynlib: dllname, importc: "glDrawRangeElements".}
-proc glColorTable*(target: TGLenum, internalformat: TGLenum, width: TGLsizei, 
-                   format: TGLenum, thetype: TGLenum, table: PGLvoid){.
-    dynlib: dllname, importc: "glColorTable".}
-proc glColorTableParameterfv*(target: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glColorTableParameterfv".}
-proc glColorTableParameteriv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glColorTableParameteriv".}
-proc glCopyColorTable*(target: TGLenum, internalformat: TGLenum, x: TGLint, 
-                       y: TGLint, width: TGLsizei){.dynlib: dllname, 
-    importc: "glCopyColorTable".}
-proc glGetColorTable*(target: TGLenum, format: TGLenum, thetype: TGLenum, 
-                      table: PGLvoid){.dynlib: dllname, 
-                                       importc: "glGetColorTable".}
-proc glGetColorTableParameterfv*(target: TGLenum, pname: TGLenum, 
-                                 params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetColorTableParameterfv".}
-proc glGetColorTableParameteriv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetColorTableParameteriv".}
-proc glColorSubTable*(target: TGLenum, start: TGLsizei, count: TGLsizei, 
-                      format: TGLenum, thetype: TGLenum, data: PGLvoid){.
-    dynlib: dllname, importc: "glColorSubTable".}
-proc glCopyColorSubTable*(target: TGLenum, start: TGLsizei, x: TGLint, 
-                          y: TGLint, width: TGLsizei){.dynlib: dllname, 
-    importc: "glCopyColorSubTable".}
-proc glConvolutionFilter1D*(target: TGLenum, internalformat: TGLenum, 
-                            width: TGLsizei, format: TGLenum, thetype: TGLenum, 
-                            image: PGLvoid){.dynlib: dllname, 
-    importc: "glConvolutionFilter1D".}
-proc glConvolutionFilter2D*(target: TGLenum, internalformat: TGLenum, 
-                            width: TGLsizei, height: TGLsizei, format: TGLenum, 
-                            thetype: TGLenum, image: PGLvoid){.dynlib: dllname, 
-    importc: "glConvolutionFilter2D".}
-proc glConvolutionParameterf*(target: TGLenum, pname: TGLenum, params: TGLfloat){.
-    dynlib: dllname, importc: "glConvolutionParameterf".}
-proc glConvolutionParameterfv*(target: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glConvolutionParameterfv".}
-proc glConvolutionParameteri*(target: TGLenum, pname: TGLenum, params: TGLint){.
-    dynlib: dllname, importc: "glConvolutionParameteri".}
-proc glConvolutionParameteriv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glConvolutionParameteriv".}
-proc glCopyConvolutionFilter1D*(target: TGLenum, internalformat: TGLenum, 
-                                x: TGLint, y: TGLint, width: TGLsizei){.
-    dynlib: dllname, importc: "glCopyConvolutionFilter1D".}
-proc glCopyConvolutionFilter2D*(target: TGLenum, internalformat: TGLenum, 
-                                x: TGLint, y: TGLint, width: TGLsizei, 
-                                height: TGLsizei){.dynlib: dllname, 
-    importc: "glCopyConvolutionFilter2D".}
-proc glGetConvolutionFilter*(target: TGLenum, format: TGLenum, thetype: TGLenum, 
-                             image: PGLvoid){.dynlib: dllname, 
-    importc: "glGetConvolutionFilter".}
-proc glGetConvolutionParameterfv*(target: TGLenum, pname: TGLenum, 
-                                  params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetConvolutionParameterfv".}
-proc glGetConvolutionParameteriv*(target: TGLenum, pname: TGLenum, 
-                                  params: PGLint){.dynlib: dllname, 
-    importc: "glGetConvolutionParameteriv".}
-proc glGetSeparableFilter*(target: TGLenum, format: TGLenum, thetype: TGLenum, 
-                           row: PGLvoid, column: PGLvoid, span: PGLvoid){.
-    dynlib: dllname, importc: "glGetSeparableFilter".}
-proc glSeparableFilter2D*(target: TGLenum, internalformat: TGLenum, 
-                          width: TGLsizei, height: TGLsizei, format: TGLenum, 
-                          thetype: TGLenum, row: PGLvoid, column: PGLvoid){.
-    dynlib: dllname, importc: "glSeparableFilter2D".}
-proc glGetHistogram*(target: TGLenum, reset: TGLboolean, format: TGLenum, 
-                     thetype: TGLenum, values: PGLvoid){.dynlib: dllname, 
-    importc: "glGetHistogram".}
-proc glGetHistogramParameterfv*(target: TGLenum, pname: TGLenum, 
-                                params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetHistogramParameterfv".}
-proc glGetHistogramParameteriv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetHistogramParameteriv".}
-proc glGetMinmax*(target: TGLenum, reset: TGLboolean, format: TGLenum, 
-                  thetype: TGLenum, values: PGLvoid){.dynlib: dllname, 
-    importc: "glGetMinmax".}
-proc glGetMinmaxParameterfv*(target: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetMinmaxParameterfv".}
-proc glGetMinmaxParameteriv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetMinmaxParameteriv".}
-proc glHistogram*(target: TGLenum, width: TGLsizei, internalformat: TGLenum, 
-                  sink: TGLboolean){.dynlib: dllname, importc: "glHistogram".}
-proc glMinmax*(target: TGLenum, internalformat: TGLenum, sink: TGLboolean){.
-    dynlib: dllname, importc: "glMinmax".}
-proc glResetHistogram*(target: TGLenum){.dynlib: dllname, 
-    importc: "glResetHistogram".}
-proc glResetMinmax*(target: TGLenum){.dynlib: dllname, importc: "glResetMinmax".}
-proc glTexImage3D*(target: TGLenum, level: TGLint, internalformat: TGLint, 
-                   width: TGLsizei, height: TGLsizei, depth: TGLsizei, 
-                   border: TGLint, format: TGLenum, thetype: TGLenum, 
-                   pixels: PGLvoid){.dynlib: dllname, importc: "glTexImage3D".}
-proc glTexSubImage3D*(target: TGLenum, level: TGLint, xoffset: TGLint, 
-                      yoffset: TGLint, zoffset: TGLint, width: TGLsizei, 
-                      height: TGLsizei, depth: TGLsizei, format: TGLenum, 
-                      thetype: TGLenum, pixels: PGLvoid){.dynlib: dllname, 
-    importc: "glTexSubImage3D".}
-proc glCopyTexSubImage3D*(target: TGLenum, level: TGLint, xoffset: TGLint, 
-                          yoffset: TGLint, zoffset: TGLint, x: TGLint, 
-                          y: TGLint, width: TGLsizei, height: TGLsizei){.
-    dynlib: dllname, importc: "glCopyTexSubImage3D".}
-proc glActiveTextureARB*(texture: TGLenum){.dynlib: dllname, 
-    importc: "glActiveTextureARB".}
-proc glClientActiveTextureARB*(texture: TGLenum){.dynlib: dllname, 
-    importc: "glClientActiveTextureARB".}
-proc glMultiTexCoord1dARB*(target: TGLenum, s: TGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord1dARB".}
-proc glMultiTexCoord1dvARB*(target: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord1dvARB".}
-proc glMultiTexCoord1fARB*(target: TGLenum, s: TGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord1fARB".}
-proc glMultiTexCoord1fvARB*(target: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord1fvARB".}
-proc glMultiTexCoord1iARB*(target: TGLenum, s: TGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord1iARB".}
-proc glMultiTexCoord1ivARB*(target: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord1ivARB".}
-proc glMultiTexCoord1sARB*(target: TGLenum, s: TGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord1sARB".}
-proc glMultiTexCoord1svARB*(target: TGLenum, v: PGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord1svARB".}
-proc glMultiTexCoord2dARB*(target: TGLenum, s: TGLdouble, t: TGLdouble){.
-    dynlib: dllname, importc: "glMultiTexCoord2dARB".}
-proc glMultiTexCoord2dvARB*(target: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord2dvARB".}
-proc glMultiTexCoord2fARB*(target: TGLenum, s: TGLfloat, t: TGLfloat){.
-    dynlib: dllname, importc: "glMultiTexCoord2fARB".}
-proc glMultiTexCoord2fvARB*(target: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord2fvARB".}
-proc glMultiTexCoord2iARB*(target: TGLenum, s: TGLint, t: TGLint){.
-    dynlib: dllname, importc: "glMultiTexCoord2iARB".}
-proc glMultiTexCoord2ivARB*(target: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord2ivARB".}
-proc glMultiTexCoord2sARB*(target: TGLenum, s: TGLshort, t: TGLshort){.
-    dynlib: dllname, importc: "glMultiTexCoord2sARB".}
-proc glMultiTexCoord2svARB*(target: TGLenum, v: PGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord2svARB".}
-proc glMultiTexCoord3dARB*(target: TGLenum, s: TGLdouble, t: TGLdouble, 
-                           r: TGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord3dARB".}
-proc glMultiTexCoord3dvARB*(target: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord3dvARB".}
-proc glMultiTexCoord3fARB*(target: TGLenum, s: TGLfloat, t: TGLfloat, 
-                           r: TGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord3fARB".}
-proc glMultiTexCoord3fvARB*(target: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord3fvARB".}
-proc glMultiTexCoord3iARB*(target: TGLenum, s: TGLint, t: TGLint, r: TGLint){.
-    dynlib: dllname, importc: "glMultiTexCoord3iARB".}
-proc glMultiTexCoord3ivARB*(target: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord3ivARB".}
-proc glMultiTexCoord3sARB*(target: TGLenum, s: TGLshort, t: TGLshort, 
-                           r: TGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord3sARB".}
-proc glMultiTexCoord3svARB*(target: TGLenum, v: PGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord3svARB".}
-proc glMultiTexCoord4dARB*(target: TGLenum, s: TGLdouble, t: TGLdouble, 
-                           r: TGLdouble, q: TGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord4dARB".}
-proc glMultiTexCoord4dvARB*(target: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord4dvARB".}
-proc glMultiTexCoord4fARB*(target: TGLenum, s: TGLfloat, t: TGLfloat, 
-                           r: TGLfloat, q: TGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord4fARB".}
-proc glMultiTexCoord4fvARB*(target: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord4fvARB".}
-proc glMultiTexCoord4iARB*(target: TGLenum, s: TGLint, t: TGLint, r: TGLint, 
-                           q: TGLint){.dynlib: dllname, 
-                                       importc: "glMultiTexCoord4iARB".}
-proc glMultiTexCoord4ivARB*(target: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord4ivARB".}
-proc glMultiTexCoord4sARB*(target: TGLenum, s: TGLshort, t: TGLshort, 
-                           r: TGLshort, q: TGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord4sARB".}
-proc glMultiTexCoord4svARB*(target: TGLenum, v: PGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord4svARB".}
-proc glSampleCoverageARB*(value: TGLclampf, invert: TGLboolean){.
-    dynlib: dllname, importc: "glSampleCoverageARB".}
-  #***** GL_ARB_texture_env_add *****//
-proc glWeightbvARB*(size: TGLint, weights: PGLbyte){.dynlib: dllname, 
-    importc: "glWeightbvARB".}
-proc glWeightsvARB*(size: TGLint, weights: PGLshort){.dynlib: dllname, 
-    importc: "glWeightsvARB".}
-proc glWeightivARB*(size: TGLint, weights: PGLint){.dynlib: dllname, 
-    importc: "glWeightivARB".}
-proc glWeightfvARB*(size: TGLint, weights: PGLfloat){.dynlib: dllname, 
-    importc: "glWeightfvARB".}
-proc glWeightdvARB*(size: TGLint, weights: PGLdouble){.dynlib: dllname, 
-    importc: "glWeightdvARB".}
-proc glWeightvARB*(size: TGLint, weights: PGLdouble){.dynlib: dllname, 
-    importc: "glWeightvARB".}
-proc glWeightubvARB*(size: TGLint, weights: PGLubyte){.dynlib: dllname, 
-    importc: "glWeightubvARB".}
-proc glWeightusvARB*(size: TGLint, weights: PGLushort){.dynlib: dllname, 
-    importc: "glWeightusvARB".}
-proc glWeightuivARB*(size: TGLint, weights: PGLuint){.dynlib: dllname, 
-    importc: "glWeightuivARB".}
-proc glWeightPointerARB*(size: TGLint, thetype: TGLenum, stride: TGLsizei, 
-                         pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glWeightPointerARB".}
-proc glVertexBlendARB*(count: TGLint){.dynlib: dllname, 
-                                       importc: "glVertexBlendARB".}
-proc glVertexAttrib1sARB*(index: TGLuint, x: TGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib1sARB".}
-proc glVertexAttrib1fARB*(index: TGLuint, x: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib1fARB".}
-proc glVertexAttrib1dARB*(index: TGLuint, x: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib1dARB".}
-proc glVertexAttrib2sARB*(index: TGLuint, x: TGLshort, y: TGLshort){.
-    dynlib: dllname, importc: "glVertexAttrib2sARB".}
-proc glVertexAttrib2fARB*(index: TGLuint, x: TGLfloat, y: TGLfloat){.
-    dynlib: dllname, importc: "glVertexAttrib2fARB".}
-proc glVertexAttrib2dARB*(index: TGLuint, x: TGLdouble, y: TGLdouble){.
-    dynlib: dllname, importc: "glVertexAttrib2dARB".}
-proc glVertexAttrib3sARB*(index: TGLuint, x: TGLshort, y: TGLshort, z: TGLshort){.
-    dynlib: dllname, importc: "glVertexAttrib3sARB".}
-proc glVertexAttrib3fARB*(index: TGLuint, x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glVertexAttrib3fARB".}
-proc glVertexAttrib3dARB*(index: TGLuint, x: TGLdouble, y: TGLdouble, 
-                          z: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib3dARB".}
-proc glVertexAttrib4sARB*(index: TGLuint, x: TGLshort, y: TGLshort, z: TGLshort, 
-                          w: TGLshort){.dynlib: dllname, 
-                                        importc: "glVertexAttrib4sARB".}
-proc glVertexAttrib4fARB*(index: TGLuint, x: TGLfloat, y: TGLfloat, z: TGLfloat, 
-                          w: TGLfloat){.dynlib: dllname, 
-                                        importc: "glVertexAttrib4fARB".}
-proc glVertexAttrib4dARB*(index: TGLuint, x: TGLdouble, y: TGLdouble, 
-                          z: TGLdouble, w: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib4dARB".}
-proc glVertexAttrib4NubARB*(index: TGLuint, x: TGLubyte, y: TGLubyte, 
-                            z: TGLubyte, w: TGLubyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4NubARB".}
-proc glVertexAttrib1svARB*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib1svARB".}
-proc glVertexAttrib1fvARB*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib1fvARB".}
-proc glVertexAttrib1dvARB*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib1dvARB".}
-proc glVertexAttrib2svARB*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib2svARB".}
-proc glVertexAttrib2fvARB*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib2fvARB".}
-proc glVertexAttrib2dvARB*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib2dvARB".}
-proc glVertexAttrib3svARB*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib3svARB".}
-proc glVertexAttrib3fvARB*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib3fvARB".}
-proc glVertexAttrib3dvARB*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib3dvARB".}
-proc glVertexAttrib4bvARB*(index: TGLuint, v: PGLbyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4bvARB".}
-proc glVertexAttrib4svARB*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib4svARB".}
-proc glVertexAttrib4ivARB*(index: TGLuint, v: PGLint){.dynlib: dllname, 
-    importc: "glVertexAttrib4ivARB".}
-proc glVertexAttrib4ubvARB*(index: TGLuint, v: PGLubyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4ubvARB".}
-proc glVertexAttrib4usvARB*(index: TGLuint, v: PGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib4usvARB".}
-proc glVertexAttrib4uivARB*(index: TGLuint, v: PGLuint){.dynlib: dllname, 
-    importc: "glVertexAttrib4uivARB".}
-proc glVertexAttrib4fvARB*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib4fvARB".}
-proc glVertexAttrib4dvARB*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib4dvARB".}
-proc glVertexAttrib4NbvARB*(index: TGLuint, v: PGLbyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4NbvARB".}
-proc glVertexAttrib4NsvARB*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib4NsvARB".}
-proc glVertexAttrib4NivARB*(index: TGLuint, v: PGLint){.dynlib: dllname, 
-    importc: "glVertexAttrib4NivARB".}
-proc glVertexAttrib4NubvARB*(index: TGLuint, v: PGLubyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4NubvARB".}
-proc glVertexAttrib4NusvARB*(index: TGLuint, v: PGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib4NusvARB".}
-proc glVertexAttrib4NuivARB*(index: TGLuint, v: PGLuint){.dynlib: dllname, 
-    importc: "glVertexAttrib4NuivARB".}
-proc glVertexAttribPointerARB*(index: TGLuint, size: TGLint, thetype: TGLenum, 
-                               normalized: TGLboolean, stride: TGLsizei, 
-                               pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glVertexAttribPointerARB".}
-proc glEnableVertexAttribArrayARB*(index: TGLuint){.dynlib: dllname, 
-    importc: "glEnableVertexAttribArrayARB".}
-proc glDisableVertexAttribArrayARB*(index: TGLuint){.dynlib: dllname, 
-    importc: "glDisableVertexAttribArrayARB".}
-proc glProgramStringARB*(target: TGLenum, format: TGLenum, length: TGLsizei, 
-                         str: PGLvoid){.dynlib: dllname, 
-                                        importc: "glProgramStringARB".}
-proc glBindProgramARB*(target: TGLenum, theProgram: TGLuint){.dynlib: dllname, 
-    importc: "glBindProgramARB".}
-proc glDeleteProgramsARB*(n: TGLsizei, programs: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteProgramsARB".}
-proc glGenProgramsARB*(n: TGLsizei, programs: PGLuint){.dynlib: dllname, 
-    importc: "glGenProgramsARB".}
-proc glProgramEnvParameter4dARB*(target: TGLenum, index: TGLuint, x: TGLdouble, 
-                                 y: TGLdouble, z: TGLdouble, w: TGLdouble){.
-    dynlib: dllname, importc: "glProgramEnvParameter4dARB".}
-proc glProgramEnvParameter4dvARB*(target: TGLenum, index: TGLuint, 
-                                  params: PGLdouble){.dynlib: dllname, 
-    importc: "glProgramEnvParameter4dvARB".}
-proc glProgramEnvParameter4fARB*(target: TGLenum, index: TGLuint, x: TGLfloat, 
-                                 y: TGLfloat, z: TGLfloat, w: TGLfloat){.
-    dynlib: dllname, importc: "glProgramEnvParameter4fARB".}
-proc glProgramEnvParameter4fvARB*(target: TGLenum, index: TGLuint, 
-                                  params: PGLfloat){.dynlib: dllname, 
-    importc: "glProgramEnvParameter4fvARB".}
-proc glProgramLocalParameter4dARB*(target: TGLenum, index: TGLuint, 
-                                   x: TGLdouble, y: TGLdouble, z: TGLdouble, 
-                                   w: TGLdouble){.dynlib: dllname, 
-    importc: "glProgramLocalParameter4dARB".}
-proc glProgramLocalParameter4dvARB*(target: TGLenum, index: TGLuint, 
-                                    params: PGLdouble){.dynlib: dllname, 
-    importc: "glProgramLocalParameter4dvARB".}
-proc glProgramLocalParameter4fARB*(target: TGLenum, index: TGLuint, x: TGLfloat, 
-                                   y: TGLfloat, z: TGLfloat, w: TGLfloat){.
-    dynlib: dllname, importc: "glProgramLocalParameter4fARB".}
-proc glProgramLocalParameter4fvARB*(target: TGLenum, index: TGLuint, 
-                                    params: PGLfloat){.dynlib: dllname, 
-    importc: "glProgramLocalParameter4fvARB".}
-proc glGetProgramEnvParameterdvARB*(target: TGLenum, index: TGLuint, 
-                                    params: PGLdouble){.dynlib: dllname, 
-    importc: "glGetProgramEnvParameterdvARB".}
-proc glGetProgramEnvParameterfvARB*(target: TGLenum, index: TGLuint, 
-                                    params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetProgramEnvParameterfvARB".}
-proc glGetProgramLocalParameterdvARB*(target: TGLenum, index: TGLuint, 
-                                      params: PGLdouble){.dynlib: dllname, 
-    importc: "glGetProgramLocalParameterdvARB".}
-proc glGetProgramLocalParameterfvARB*(target: TGLenum, index: TGLuint, 
-                                      params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetProgramLocalParameterfvARB".}
-proc glGetProgramivARB*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetProgramivARB".}
-proc glGetProgramStringARB*(target: TGLenum, pname: TGLenum, str: PGLvoid){.
-    dynlib: dllname, importc: "glGetProgramStringARB".}
-proc glGetVertexAttribdvARB*(index: TGLuint, pname: TGLenum, params: PGLdouble){.
-    dynlib: dllname, importc: "glGetVertexAttribdvARB".}
-proc glGetVertexAttribfvARB*(index: TGLuint, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetVertexAttribfvARB".}
-proc glGetVertexAttribivARB*(index: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetVertexAttribivARB".}
-proc glGetVertexAttribPointervARB*(index: TGLuint, pname: TGLenum, 
-                                   pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glGetVertexAttribPointervARB".}
-proc glIsProgramARB*(theProgram: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsProgramARB".}
-  #***** GL_ARB_window_pos *****//
-proc glWindowPos2dARB*(x: TGLdouble, y: TGLdouble){.dynlib: dllname, 
-    importc: "glWindowPos2dARB".}
-proc glWindowPos2fARB*(x: TGLfloat, y: TGLfloat){.dynlib: dllname, 
-    importc: "glWindowPos2fARB".}
-proc glWindowPos2iARB*(x: TGLint, y: TGLint){.dynlib: dllname, 
-    importc: "glWindowPos2iARB".}
-proc glWindowPos2sARB*(x: TGLshort, y: TGLshort){.dynlib: dllname, 
-    importc: "glWindowPos2sARB".}
-proc glWindowPos2dvARB*(p: PGLdouble){.dynlib: dllname, 
-                                       importc: "glWindowPos2dvARB".}
-proc glWindowPos2fvARB*(p: PGLfloat){.dynlib: dllname, 
-                                      importc: "glWindowPos2fvARB".}
-proc glWindowPos2ivARB*(p: PGLint){.dynlib: dllname, 
-                                    importc: "glWindowPos2ivARB".}
-proc glWindowPos2svARB*(p: PGLshort){.dynlib: dllname, 
-                                      importc: "glWindowPos2svARB".}
-proc glWindowPos3dARB*(x: TGLdouble, y: TGLdouble, z: TGLdouble){.
-    dynlib: dllname, importc: "glWindowPos3dARB".}
-proc glWindowPos3fARB*(x: TGLfloat, y: TGLfloat, z: TGLfloat){.dynlib: dllname, 
-    importc: "glWindowPos3fARB".}
-proc glWindowPos3iARB*(x: TGLint, y: TGLint, z: TGLint){.dynlib: dllname, 
-    importc: "glWindowPos3iARB".}
-proc glWindowPos3sARB*(x: TGLshort, y: TGLshort, z: TGLshort){.dynlib: dllname, 
-    importc: "glWindowPos3sARB".}
-proc glWindowPos3dvARB*(p: PGLdouble){.dynlib: dllname, 
-                                       importc: "glWindowPos3dvARB".}
-proc glWindowPos3fvARB*(p: PGLfloat){.dynlib: dllname, 
-                                      importc: "glWindowPos3fvARB".}
-proc glWindowPos3ivARB*(p: PGLint){.dynlib: dllname, 
-                                    importc: "glWindowPos3ivARB".}
-proc glWindowPos3svARB*(p: PGLshort){.dynlib: dllname, 
-                                      importc: "glWindowPos3svARB".}
-proc glBlendEquationSeparate*(modeRGB: TGLenum, modeAlpha: TGLenum){.
-    dynlib: dllname, importc: "glBlendEquationSeparate".}
-proc glDrawBuffers*(n: TGLsizei, bufs: PGLenum){.dynlib: dllname, 
-    importc: "glDrawBuffers".}
-proc glStencilOpSeparate*(face: TGLenum, sfail: TGLenum, dpfail: TGLenum, 
-                          dppass: TGLenum){.dynlib: dllname, 
-    importc: "glStencilOpSeparate".}
-proc glStencilFuncSeparate*(frontfunc: TGLenum, backfunc: TGLenum, 
-                            theRef: TGLint, mask: TGLuint){.dynlib: dllname, 
-    importc: "glStencilFuncSeparate".}
-proc glStencilMaskSeparate*(face: TGLenum, mask: TGLuint){.dynlib: dllname, 
-    importc: "glStencilMaskSeparate".}
-proc glAttachShader*(theProgram: TGLuint, shader: TGLuint){.dynlib: dllname, 
-    importc: "glAttachShader".}
-proc glBindAttribLocation*(theProgram: TGLuint, index: TGLuint, name: PGLchar){.
-    dynlib: dllname, importc: "glBindAttribLocation".}
-proc glCompileShader*(shader: TGLuint){.dynlib: dllname, 
-                                        importc: "glCompileShader".}
-proc glCreateProgram*(): TGLuint{.dynlib: dllname, importc: "glCreateProgram".}
-proc glCreateShader*(thetype: TGLenum): TGLuint{.dynlib: dllname, 
-    importc: "glCreateShader".}
-proc glDeleteProgram*(theProgram: TGLuint){.dynlib: dllname, 
-    importc: "glDeleteProgram".}
-proc glDeleteShader*(shader: TGLuint){.dynlib: dllname, 
-                                       importc: "glDeleteShader".}
-proc glDetachShader*(theProgram: TGLuint, shader: TGLuint){.dynlib: dllname, 
-    importc: "glDetachShader".}
-proc glDisableVertexAttribArray*(index: TGLuint){.dynlib: dllname, 
-    importc: "glDisableVertexAttribArray".}
-proc glEnableVertexAttribArray*(index: TGLuint){.dynlib: dllname, 
-    importc: "glEnableVertexAttribArray".}
-proc glGetActiveAttrib*(theProgram: TGLuint, index: TGLuint, bufSize: TGLsizei, 
-                        len: PGLsizei, size: PGLint, thetype: PGLenum, 
-                        name: PGLchar){.dynlib: dllname, 
-                                        importc: "glGetActiveAttrib".}
-proc glGetActiveUniform*(theProgram: TGLuint, index: TGLuint, bufSize: TGLsizei, 
-                         len: PGLsizei, size: PGLint, thetype: PGLenum, 
-                         name: PGLchar){.dynlib: dllname, 
-    importc: "glGetActiveUniform".}
-proc glGetAttachedShaders*(theProgram: TGLuint, maxCount: TGLsizei, 
-                           count: PGLsizei, obj: PGLuint){.dynlib: dllname, 
-    importc: "glGetAttachedShaders".}
-proc glGetAttribLocation*(theProgram: TGLuint, name: PGLchar): TGLint{.
-    dynlib: dllname, importc: "glGetAttribLocation".}
-proc glGetProgramiv*(theProgram: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetProgramiv".}
-proc glGetProgramInfoLog*(theProgram: TGLuint, bufSize: TGLsizei, len: PGLsizei, 
-                          infoLog: PGLchar){.dynlib: dllname, 
-    importc: "glGetProgramInfoLog".}
-proc glGetShaderiv*(shader: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetShaderiv".}
-proc glGetShaderInfoLog*(shader: TGLuint, bufSize: TGLsizei, len: PGLsizei, 
-                         infoLog: PGLchar){.dynlib: dllname, 
-    importc: "glGetShaderInfoLog".}
-proc glGetShaderSource*(shader: TGLuint, bufSize: TGLsizei, len: PGLsizei, 
-                        source: PGLchar){.dynlib: dllname, 
-    importc: "glGetShaderSource".}
-proc glGetUniformLocation*(theProgram: TGLuint, name: PGLchar): TGLint{.
-    dynlib: dllname, importc: "glGetUniformLocation".}
-proc glGetUniformfv*(theProgram: TGLuint, location: TGLint, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetUniformfv".}
-proc glGetUniformiv*(theProgram: TGLuint, location: TGLint, params: PGLint){.
-    dynlib: dllname, importc: "glGetUniformiv".}
-proc glGetVertexAttribdv*(index: TGLuint, pname: TGLenum, params: PGLdouble){.
-    dynlib: dllname, importc: "glGetVertexAttribdv".}
-proc glGetVertexAttribfv*(index: TGLuint, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetVertexAttribfv".}
-proc glGetVertexAttribiv*(index: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetVertexAttribiv".}
-proc glGetVertexAttribPointerv*(index: TGLuint, pname: TGLenum, pointer: PGLvoid){.
-    dynlib: dllname, importc: "glGetVertexAttribPointerv".}
-proc glIsProgram*(theProgram: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsProgram".}
-proc glIsShader*(shader: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsShader".}
-proc glLinkProgram*(theProgram: TGLuint){.dynlib: dllname, 
-    importc: "glLinkProgram".}
-proc glShaderSource*(shader: TGLuint, count: TGLsizei, str: PGLchar, len: PGLint){.
-    dynlib: dllname, importc: "glShaderSource".}
-proc glUseProgram*(theProgram: TGLuint){.dynlib: dllname, 
-    importc: "glUseProgram".}
-proc glUniform1f*(location: TGLint, v0: TGLfloat){.dynlib: dllname, 
-    importc: "glUniform1f".}
-proc glUniform2f*(location: TGLint, v0: TGLfloat, v1: TGLfloat){.
-    dynlib: dllname, importc: "glUniform2f".}
-proc glUniform3f*(location: TGLint, v0: TGLfloat, v1: TGLfloat, v2: TGLfloat){.
-    dynlib: dllname, importc: "glUniform3f".}
-proc glUniform4f*(location: TGLint, v0: TGLfloat, v1: TGLfloat, v2: TGLfloat, 
-                  v3: TGLfloat){.dynlib: dllname, importc: "glUniform4f".}
-proc glUniform1i*(location: TGLint, v0: TGLint){.dynlib: dllname, 
-    importc: "glUniform1i".}
-proc glUniform2i*(location: TGLint, v0: TGLint, v1: TGLint){.dynlib: dllname, 
-    importc: "glUniform2i".}
-proc glUniform3i*(location: TGLint, v0: TGLint, v1: TGLint, v2: TGLint){.
-    dynlib: dllname, importc: "glUniform3i".}
-proc glUniform4i*(location: TGLint, v0: TGLint, v1: TGLint, v2: TGLint, 
-                  v3: TGLint){.dynlib: dllname, importc: "glUniform4i".}
-proc glUniform1fv*(location: TGLint, count: TGLsizei, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniform1fv".}
-proc glUniform2fv*(location: TGLint, count: TGLsizei, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniform2fv".}
-proc glUniform3fv*(location: TGLint, count: TGLsizei, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniform3fv".}
-proc glUniform4fv*(location: TGLint, count: TGLsizei, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniform4fv".}
-proc glUniform1iv*(location: TGLint, count: TGLsizei, value: PGLint){.
-    dynlib: dllname, importc: "glUniform1iv".}
-proc glUniform2iv*(location: TGLint, count: TGLsizei, value: PGLint){.
-    dynlib: dllname, importc: "glUniform2iv".}
-proc glUniform3iv*(location: TGLint, count: TGLsizei, value: PGLint){.
-    dynlib: dllname, importc: "glUniform3iv".}
-proc glUniform4iv*(location: TGLint, count: TGLsizei, value: PGLint){.
-    dynlib: dllname, importc: "glUniform4iv".}
-proc glUniformMatrix2fv*(location: TGLint, count: TGLsizei, 
-                         transpose: TGLboolean, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniformMatrix2fv".}
-proc glUniformMatrix3fv*(location: TGLint, count: TGLsizei, 
-                         transpose: TGLboolean, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniformMatrix3fv".}
-proc glUniformMatrix4fv*(location: TGLint, count: TGLsizei, 
-                         transpose: TGLboolean, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniformMatrix4fv".}
-proc glValidateProgram*(theProgram: TGLuint){.dynlib: dllname, 
-    importc: "glValidateProgram".}
-proc glVertexAttrib1d*(index: TGLuint, x: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib1d".}
-proc glVertexAttrib1dv*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib1dv".}
-proc glVertexAttrib1f*(index: TGLuint, x: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib1f".}
-proc glVertexAttrib1fv*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib1fv".}
-proc glVertexAttrib1s*(index: TGLuint, x: TGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib1s".}
-proc glVertexAttrib1sv*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib1sv".}
-proc glVertexAttrib2d*(index: TGLuint, x: TGLdouble, y: TGLdouble){.
-    dynlib: dllname, importc: "glVertexAttrib2d".}
-proc glVertexAttrib2dv*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib2dv".}
-proc glVertexAttrib2f*(index: TGLuint, x: TGLfloat, y: TGLfloat){.
-    dynlib: dllname, importc: "glVertexAttrib2f".}
-proc glVertexAttrib2fv*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib2fv".}
-proc glVertexAttrib2s*(index: TGLuint, x: TGLshort, y: TGLshort){.
-    dynlib: dllname, importc: "glVertexAttrib2s".}
-proc glVertexAttrib2sv*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib2sv".}
-proc glVertexAttrib3d*(index: TGLuint, x: TGLdouble, y: TGLdouble, z: TGLdouble){.
-    dynlib: dllname, importc: "glVertexAttrib3d".}
-proc glVertexAttrib3dv*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib3dv".}
-proc glVertexAttrib3f*(index: TGLuint, x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glVertexAttrib3f".}
-proc glVertexAttrib3fv*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib3fv".}
-proc glVertexAttrib3s*(index: TGLuint, x: TGLshort, y: TGLshort, z: TGLshort){.
-    dynlib: dllname, importc: "glVertexAttrib3s".}
-proc glVertexAttrib3sv*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib3sv".}
-proc glVertexAttrib4Nbv*(index: TGLuint, v: PGLbyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4Nbv".}
-proc glVertexAttrib4Niv*(index: TGLuint, v: PGLint){.dynlib: dllname, 
-    importc: "glVertexAttrib4Niv".}
-proc glVertexAttrib4Nsv*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib4Nsv".}
-proc glVertexAttrib4Nub*(index: TGLuint, x: TGLubyte, y: TGLubyte, z: TGLubyte, 
-                         w: TGLubyte){.dynlib: dllname, 
-                                       importc: "glVertexAttrib4Nub".}
-proc glVertexAttrib4Nubv*(index: TGLuint, v: PGLubyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4Nubv".}
-proc glVertexAttrib4Nuiv*(index: TGLuint, v: PGLuint){.dynlib: dllname, 
-    importc: "glVertexAttrib4Nuiv".}
-proc glVertexAttrib4Nusv*(index: TGLuint, v: PGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib4Nusv".}
-proc glVertexAttrib4bv*(index: TGLuint, v: PGLbyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4bv".}
-proc glVertexAttrib4d*(index: TGLuint, x: TGLdouble, y: TGLdouble, z: TGLdouble, 
-                       w: TGLdouble){.dynlib: dllname, 
-                                      importc: "glVertexAttrib4d".}
-proc glVertexAttrib4dv*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib4dv".}
-proc glVertexAttrib4f*(index: TGLuint, x: TGLfloat, y: TGLfloat, z: TGLfloat, 
-                       w: TGLfloat){.dynlib: dllname, 
-                                     importc: "glVertexAttrib4f".}
-proc glVertexAttrib4fv*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib4fv".}
-proc glVertexAttrib4iv*(index: TGLuint, v: PGLint){.dynlib: dllname, 
-    importc: "glVertexAttrib4iv".}
-proc glVertexAttrib4s*(index: TGLuint, x: TGLshort, y: TGLshort, z: TGLshort, 
-                       w: TGLshort){.dynlib: dllname, 
-                                     importc: "glVertexAttrib4s".}
-proc glVertexAttrib4sv*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib4sv".}
-proc glVertexAttrib4ubv*(index: TGLuint, v: PGLubyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4ubv".}
-proc glVertexAttrib4uiv*(index: TGLuint, v: PGLuint){.dynlib: dllname, 
-    importc: "glVertexAttrib4uiv".}
-proc glVertexAttrib4usv*(index: TGLuint, v: PGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib4usv".}
-proc glVertexAttribPointer*(index: TGLuint, size: TGLint, thetype: TGLenum, 
-                            normalized: TGLboolean, stride: TGLsizei, 
-                            pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glVertexAttribPointer".}
-const 
-  GL_CONSTANT_COLOR* = 0x00008001
-  GL_ONE_MINUS_CONSTANT_COLOR* = 0x00008002
-  GL_CONSTANT_ALPHA* = 0x00008003
-  GL_ONE_MINUS_CONSTANT_ALPHA* = 0x00008004
-  constGL_BLEND_COLOR* = 0x00008005
-  GL_FUNC_ADD* = 0x00008006
-  GL_MIN* = 0x00008007
-  GL_MAX* = 0x00008008
-  constGL_BLEND_EQUATION* = 0x00008009
-  GL_FUNC_SUBTRACT* = 0x0000800A
-  GL_FUNC_REVERSE_SUBTRACT* = 0x0000800B
-  GL_CONVOLUTION_1D* = 0x00008010
-  GL_CONVOLUTION_2D* = 0x00008011
-  GL_SEPARABLE_2D* = 0x00008012
-  GL_CONVOLUTION_BORDER_MODE* = 0x00008013
-  GL_CONVOLUTION_FILTER_SCALE* = 0x00008014
-  GL_CONVOLUTION_FILTER_BIAS* = 0x00008015
-  GL_REDUCE* = 0x00008016
-  GL_CONVOLUTION_FORMAT* = 0x00008017
-  GL_CONVOLUTION_WIDTH* = 0x00008018
-  GL_CONVOLUTION_HEIGHT* = 0x00008019
-  GL_MAX_CONVOLUTION_WIDTH* = 0x0000801A
-  GL_MAX_CONVOLUTION_HEIGHT* = 0x0000801B
-  GL_POST_CONVOLUTION_RED_SCALE* = 0x0000801C
-  GL_POST_CONVOLUTION_GREEN_SCALE* = 0x0000801D
-  GL_POST_CONVOLUTION_BLUE_SCALE* = 0x0000801E
-  GL_POST_CONVOLUTION_ALPHA_SCALE* = 0x0000801F
-  GL_POST_CONVOLUTION_RED_BIAS* = 0x00008020
-  GL_POST_CONVOLUTION_GREEN_BIAS* = 0x00008021
-  GL_POST_CONVOLUTION_BLUE_BIAS* = 0x00008022
-  GL_POST_CONVOLUTION_ALPHA_BIAS* = 0x00008023
-  constGL_HISTOGRAM* = 0x00008024
-  GL_PROXY_HISTOGRAM* = 0x00008025
-  GL_HISTOGRAM_WIDTH* = 0x00008026
-  GL_HISTOGRAM_FORMAT* = 0x00008027
-  GL_HISTOGRAM_RED_SIZE* = 0x00008028
-  GL_HISTOGRAM_GREEN_SIZE* = 0x00008029
-  GL_HISTOGRAM_BLUE_SIZE* = 0x0000802A
-  GL_HISTOGRAM_ALPHA_SIZE* = 0x0000802B
-  GL_HISTOGRAM_LUMINANCE_SIZE* = 0x0000802C
-  GL_HISTOGRAM_SINK* = 0x0000802D
-  constGL_MINMAX* = 0x0000802E
-  GL_MINMAX_FORMAT* = 0x0000802F
-  GL_MINMAX_SINK* = 0x00008030
-  GL_TABLE_TOO_LARGE* = 0x00008031
-  GL_COLOR_MATRIX* = 0x000080B1
-  GL_COLOR_MATRIX_STACK_DEPTH* = 0x000080B2
-  GL_MAX_COLOR_MATRIX_STACK_DEPTH* = 0x000080B3
-  GL_POST_COLOR_MATRIX_RED_SCALE* = 0x000080B4
-  GL_POST_COLOR_MATRIX_GREEN_SCALE* = 0x000080B5
-  GL_POST_COLOR_MATRIX_BLUE_SCALE* = 0x000080B6
-  GL_POST_COLOR_MATRIX_ALPHA_SCALE* = 0x000080B7
-  GL_POST_COLOR_MATRIX_RED_BIAS* = 0x000080B8
-  GL_POST_COLOR_MATRIX_GREEN_BIAS* = 0x000080B9
-  GL_POST_COLOR_MATRIX_BLUE_BIAS* = 0x000080BA
-  GL_POST_COLOR_MATIX_ALPHA_BIAS* = 0x000080BB
-  constGL_COLOR_TABLE* = 0x000080D0
-  GL_POST_CONVOLUTION_COLOR_TABLE* = 0x000080D1
-  GL_POST_COLOR_MATRIX_COLOR_TABLE* = 0x000080D2
-  GL_PROXY_COLOR_TABLE* = 0x000080D3
-  GL_PROXY_POST_CONVOLUTION_COLOR_TABLE* = 0x000080D4
-  GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE* = 0x000080D5
-  GL_COLOR_TABLE_SCALE* = 0x000080D6
-  GL_COLOR_TABLE_BIAS* = 0x000080D7
-  GL_COLOR_TABLE_FORMAT* = 0x000080D8
-  GL_COLOR_TABLE_WIDTH* = 0x000080D9
-  GL_COLOR_TABLE_RED_SIZE* = 0x000080DA
-  GL_COLOR_TABLE_GREEN_SIZE* = 0x000080DB
-  GL_COLOR_TABLE_BLUE_SIZE* = 0x000080DC
-  GL_COLOR_TABLE_ALPHA_SIZE* = 0x000080DD
-  GL_COLOR_TABLE_LUMINANCE_SIZE* = 0x000080DE
-  GL_COLOR_TABLE_INTENSITY_SIZE* = 0x000080DF
-  GL_IGNORE_BORDER* = 0x00008150
-  GL_CONSTANT_BORDER* = 0x00008151
-  GL_WRAP_BORDER* = 0x00008152
-  GL_REPLICATE_BORDER* = 0x00008153
-  GL_CONVOLUTION_BORDER_COLOR* = 0x00008154
-
-proc glActiveTexture*(texture: TGLenum){.dynlib: dllname, 
-    importc: "glActiveTexture".}
-proc glClientActiveTexture*(texture: TGLenum){.dynlib: dllname, 
-    importc: "glClientActiveTexture".}
-proc glMultiTexCoord1d*(target: TGLenum, s: TGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord1d".}
-proc glMultiTexCoord1dv*(target: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord1dv".}
-proc glMultiTexCoord1f*(target: TGLenum, s: TGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord1f".}
-proc glMultiTexCoord1fv*(target: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord1fv".}
-proc glMultiTexCoord1i*(target: TGLenum, s: TGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord1i".}
-proc glMultiTexCoord1iv*(target: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord1iv".}
-proc glMultiTexCoord1s*(target: TGLenum, s: TGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord1s".}
-proc glMultiTexCoord1sv*(target: TGLenum, v: PGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord1sv".}
-proc glMultiTexCoord2d*(target: TGLenum, s: TGLdouble, t: TGLdouble){.
-    dynlib: dllname, importc: "glMultiTexCoord2d".}
-proc glMultiTexCoord2dv*(target: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord2dv".}
-proc glMultiTexCoord2f*(target: TGLenum, s: TGLfloat, t: TGLfloat){.
-    dynlib: dllname, importc: "glMultiTexCoord2f".}
-proc glMultiTexCoord2fv*(target: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord2fv".}
-proc glMultiTexCoord2i*(target: TGLenum, s: TGLint, t: TGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord2i".}
-proc glMultiTexCoord2iv*(target: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord2iv".}
-proc glMultiTexCoord2s*(target: TGLenum, s: TGLshort, t: TGLshort){.
-    dynlib: dllname, importc: "glMultiTexCoord2s".}
-proc glMultiTexCoord2sv*(target: TGLenum, v: PGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord2sv".}
-proc glMultiTexCoord3d*(target: TGLenum, s: TGLdouble, t: TGLdouble, 
-                        r: TGLdouble){.dynlib: dllname, 
-                                       importc: "glMultiTexCoord3d".}
-proc glMultiTexCoord3dv*(target: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord3dv".}
-proc glMultiTexCoord3f*(target: TGLenum, s: TGLfloat, t: TGLfloat, r: TGLfloat){.
-    dynlib: dllname, importc: "glMultiTexCoord3f".}
-proc glMultiTexCoord3fv*(target: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord3fv".}
-proc glMultiTexCoord3i*(target: TGLenum, s: TGLint, t: TGLint, r: TGLint){.
-    dynlib: dllname, importc: "glMultiTexCoord3i".}
-proc glMultiTexCoord3iv*(target: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord3iv".}
-proc glMultiTexCoord3s*(target: TGLenum, s: TGLshort, t: TGLshort, r: TGLshort){.
-    dynlib: dllname, importc: "glMultiTexCoord3s".}
-proc glMultiTexCoord3sv*(target: TGLenum, v: PGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord3sv".}
-proc glMultiTexCoord4d*(target: TGLenum, s: TGLdouble, t: TGLdouble, 
-                        r: TGLdouble, q: TGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord4d".}
-proc glMultiTexCoord4dv*(target: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord4dv".}
-proc glMultiTexCoord4f*(target: TGLenum, s: TGLfloat, t: TGLfloat, r: TGLfloat, 
-                        q: TGLfloat){.dynlib: dllname, 
-                                      importc: "glMultiTexCoord4f".}
-proc glMultiTexCoord4fv*(target: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord4fv".}
-proc glMultiTexCoord4i*(target: TGLenum, s: TGLint, t: TGLint, r: TGLint, 
-                        q: TGLint){.dynlib: dllname, 
-                                    importc: "glMultiTexCoord4i".}
-proc glMultiTexCoord4iv*(target: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord4iv".}
-proc glMultiTexCoord4s*(target: TGLenum, s: TGLshort, t: TGLshort, r: TGLshort, 
-                        q: TGLshort){.dynlib: dllname, 
-                                      importc: "glMultiTexCoord4s".}
-proc glMultiTexCoord4sv*(target: TGLenum, v: PGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord4sv".}
-proc glLoadTransposeMatrixf*(m: PGLfloat){.dynlib: dllname, 
-    importc: "glLoadTransposeMatrixf".}
-proc glLoadTransposeMatrixd*(m: PGLdouble){.dynlib: dllname, 
-    importc: "glLoadTransposeMatrixd".}
-proc glMultTransposeMatrixf*(m: PGLfloat){.dynlib: dllname, 
-    importc: "glMultTransposeMatrixf".}
-proc glMultTransposeMatrixd*(m: PGLdouble){.dynlib: dllname, 
-    importc: "glMultTransposeMatrixd".}
-proc glSampleCoverage*(value: TGLclampf, invert: TGLboolean){.dynlib: dllname, 
-    importc: "glSampleCoverage".}
-proc glCompressedTexImage3D*(target: TGLenum, level: TGLint, 
-                             internalformat: TGLenum, width: TGLsizei, 
-                             height: TGLsizei, depth: TGLsizei, border: TGLint, 
-                             imageSize: TGLsizei, data: PGLvoid){.
-    dynlib: dllname, importc: "glCompressedTexImage3D".}
-proc glCompressedTexImage2D*(target: TGLenum, level: TGLint, 
-                             internalformat: TGLenum, width: TGLsizei, 
-                             height: TGLsizei, border: TGLint, 
-                             imageSize: TGLsizei, data: PGLvoid){.
-    dynlib: dllname, importc: "glCompressedTexImage2D".}
-proc glCompressedTexImage1D*(target: TGLenum, level: TGLint, 
-                             internalformat: TGLenum, width: TGLsizei, 
-                             border: TGLint, imageSize: TGLsizei, data: PGLvoid){.
-    dynlib: dllname, importc: "glCompressedTexImage1D".}
-proc glCompressedTexSubImage3D*(target: TGLenum, level: TGLint, xoffset: TGLint, 
-                                yoffset: TGLint, zoffset: TGLint, 
-                                width: TGLsizei, height: TGLsizei, 
-                                depth: TGLsizei, format: TGLenum, 
-                                imageSize: TGLsizei, data: PGLvoid){.
-    dynlib: dllname, importc: "glCompressedTexSubImage3D".}
-proc glCompressedTexSubImage2D*(target: TGLenum, level: TGLint, xoffset: TGLint, 
-                                yoffset: TGLint, width: TGLsizei, 
-                                height: TGLsizei, format: TGLenum, 
-                                imageSize: TGLsizei, data: PGLvoid){.
-    dynlib: dllname, importc: "glCompressedTexSubImage2D".}
-proc glCompressedTexSubImage1D*(target: TGLenum, level: TGLint, xoffset: TGLint, 
-                                width: TGLsizei, format: TGLenum, 
-                                imageSize: TGLsizei, data: PGLvoid){.
-    dynlib: dllname, importc: "glCompressedTexSubImage1D".}
-proc glGetCompressedTexImage*(target: TGLenum, level: TGLint, img: PGLvoid){.
-    dynlib: dllname, importc: "glGetCompressedTexImage".}
-  #***** GL_version_1_3 *****//
-const 
-  GL_TEXTURE0* = 0x000084C0
-  GL_TEXTURE1* = 0x000084C1
-  GL_TEXTURE2* = 0x000084C2
-  GL_TEXTURE3* = 0x000084C3
-  GL_TEXTURE4* = 0x000084C4
-  GL_TEXTURE5* = 0x000084C5
-  GL_TEXTURE6* = 0x000084C6
-  GL_TEXTURE7* = 0x000084C7
-  GL_TEXTURE8* = 0x000084C8
-  GL_TEXTURE9* = 0x000084C9
-  GL_TEXTURE10* = 0x000084CA
-  GL_TEXTURE11* = 0x000084CB
-  GL_TEXTURE12* = 0x000084CC
-  GL_TEXTURE13* = 0x000084CD
-  GL_TEXTURE14* = 0x000084CE
-  GL_TEXTURE15* = 0x000084CF
-  GL_TEXTURE16* = 0x000084D0
-  GL_TEXTURE17* = 0x000084D1
-  GL_TEXTURE18* = 0x000084D2
-  GL_TEXTURE19* = 0x000084D3
-  GL_TEXTURE20* = 0x000084D4
-  GL_TEXTURE21* = 0x000084D5
-  GL_TEXTURE22* = 0x000084D6
-  GL_TEXTURE23* = 0x000084D7
-  GL_TEXTURE24* = 0x000084D8
-  GL_TEXTURE25* = 0x000084D9
-  GL_TEXTURE26* = 0x000084DA
-  GL_TEXTURE27* = 0x000084DB
-  GL_TEXTURE28* = 0x000084DC
-  GL_TEXTURE29* = 0x000084DD
-  GL_TEXTURE30* = 0x000084DE
-  GL_TEXTURE31* = 0x000084DF
-  constGL_ACTIVE_TEXTURE* = 0x000084E0
-  constGL_CLIENT_ACTIVE_TEXTURE* = 0x000084E1
-  GL_MAX_TEXTURE_UNITS* = 0x000084E2
-  GL_TRANSPOSE_MODELVIEW_MATRIX* = 0x000084E3
-  GL_TRANSPOSE_PROJECTION_MATRIX* = 0x000084E4
-  GL_TRANSPOSE_TEXTURE_MATRIX* = 0x000084E5
-  GL_TRANSPOSE_COLOR_MATRIX* = 0x000084E6
-  GL_MULTISAMPLE* = 0x0000809D
-  GL_SAMPLE_ALPHA_TO_COVERAGE* = 0x0000809E
-  GL_SAMPLE_ALPHA_TO_ONE* = 0x0000809F
-  constGL_SAMPLE_COVERAGE* = 0x000080A0
-  GL_SAMPLE_BUFFERS* = 0x000080A8
-  GL_SAMPLES* = 0x000080A9
-  GL_SAMPLE_COVERAGE_VALUE* = 0x000080AA
-  GL_SAMPLE_COVERAGE_INVERT* = 0x000080AB
-  GL_MULTISAMPLE_BIT* = 0x20000000
-  GL_NORMAL_MAP* = 0x00008511
-  GL_REFLECTION_MAP* = 0x00008512
-  GL_TEXTURE_CUBE_MAP* = 0x00008513
-  GL_TEXTURE_BINDING_CUBE_MAP* = 0x00008514
-  GL_TEXTURE_CUBE_MAP_POSITIVE_X* = 0x00008515
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_X* = 0x00008516
-  GL_TEXTURE_CUBE_MAP_POSITIVE_Y* = 0x00008517
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y* = 0x00008518
-  GL_TEXTURE_CUBE_MAP_POSITIVE_Z* = 0x00008519
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z* = 0x0000851A
-  GL_PROXY_TEXTURE_CUBE_MAP* = 0x0000851B
-  GL_MAX_CUBE_MAP_TEXTURE_SIZE* = 0x0000851C
-  GL_COMPRESSED_ALPHA* = 0x000084E9
-  GL_COMPRESSED_LUMINANCE* = 0x000084EA
-  GL_COMPRESSED_LUMINANCE_ALPHA* = 0x000084EB
-  GL_COMPRESSED_INTENSITY* = 0x000084EC
-  GL_COMPRESSED_RGB* = 0x000084ED
-  GL_COMPRESSED_RGBA* = 0x000084EE
-  GL_TEXTURE_COMPRESSION_HINT* = 0x000084EF
-  GL_TEXTURE_COMPRESSED_IMAGE_SIZE* = 0x000086A0
-  GL_TEXTURE_COMPRESSED* = 0x000086A1
-  GL_NUM_COMPRESSED_TEXTURE_FORMATS* = 0x000086A2
-  GL_COMPRESSED_TEXTURE_FORMATS* = 0x000086A3
-  GL_CLAMP_TO_BORDER* = 0x0000812D
-  GL_CLAMP_TO_BORDER_SGIS* = 0x0000812D
-  GL_COMBINE* = 0x00008570
-  GL_COMBINE_RGB* = 0x00008571
-  GL_COMBINE_ALPHA* = 0x00008572
-  GL_SOURCE0_RGB* = 0x00008580
-  GL_SOURCE1_RGB* = 0x00008581
-  GL_SOURCE2_RGB* = 0x00008582
-  GL_SOURCE0_ALPHA* = 0x00008588
-  GL_SOURCE1_ALPHA* = 0x00008589
-  GL_SOURCE2_ALPHA* = 0x0000858A
-  GL_OPERAND0_RGB* = 0x00008590
-  GL_OPERAND1_RGB* = 0x00008591
-  GL_OPERAND2_RGB* = 0x00008592
-  GL_OPERAND0_ALPHA* = 0x00008598
-  GL_OPERAND1_ALPHA* = 0x00008599
-  GL_OPERAND2_ALPHA* = 0x0000859A
-  GL_RGB_SCALE* = 0x00008573
-  GL_ADD_SIGNED* = 0x00008574
-  GL_INTERPOLATE* = 0x00008575
-  GL_SUBTRACT* = 0x000084E7
-  GL_CONSTANT* = 0x00008576
-  GL_PRIMARY_COLOR* = 0x00008577
-  GL_PREVIOUS* = 0x00008578
-  GL_DOT3_RGB* = 0x000086AE
-  GL_DOT3_RGBA* = 0x000086AF
-
-const 
-  GL_TEXTURE0_ARB* = 0x000084C0
-  GL_TEXTURE1_ARB* = 0x000084C1
-  GL_TEXTURE2_ARB* = 0x000084C2
-  GL_TEXTURE3_ARB* = 0x000084C3
-  GL_TEXTURE4_ARB* = 0x000084C4
-  GL_TEXTURE5_ARB* = 0x000084C5
-  GL_TEXTURE6_ARB* = 0x000084C6
-  GL_TEXTURE7_ARB* = 0x000084C7
-  GL_TEXTURE8_ARB* = 0x000084C8
-  GL_TEXTURE9_ARB* = 0x000084C9
-  GL_TEXTURE10_ARB* = 0x000084CA
-  GL_TEXTURE11_ARB* = 0x000084CB
-  GL_TEXTURE12_ARB* = 0x000084CC
-  GL_TEXTURE13_ARB* = 0x000084CD
-  GL_TEXTURE14_ARB* = 0x000084CE
-  GL_TEXTURE15_ARB* = 0x000084CF
-  GL_TEXTURE16_ARB* = 0x000084D0
-  GL_TEXTURE17_ARB* = 0x000084D1
-  GL_TEXTURE18_ARB* = 0x000084D2
-  GL_TEXTURE19_ARB* = 0x000084D3
-  GL_TEXTURE20_ARB* = 0x000084D4
-  GL_TEXTURE21_ARB* = 0x000084D5
-  GL_TEXTURE22_ARB* = 0x000084D6
-  GL_TEXTURE23_ARB* = 0x000084D7
-  GL_TEXTURE24_ARB* = 0x000084D8
-  GL_TEXTURE25_ARB* = 0x000084D9
-  GL_TEXTURE26_ARB* = 0x000084DA
-  GL_TEXTURE27_ARB* = 0x000084DB
-  GL_TEXTURE28_ARB* = 0x000084DC
-  GL_TEXTURE29_ARB* = 0x000084DD
-  GL_TEXTURE30_ARB* = 0x000084DE
-  GL_TEXTURE31_ARB* = 0x000084DF
-  constGL_ACTIVE_TEXTURE_ARB* = 0x000084E0
-  constGL_CLIENT_ACTIVE_TEXTURE_ARB* = 0x000084E1
-  GL_MAX_TEXTURE_UNITS_ARB* = 0x000084E2
-  #***** GL_ARB_transpose_matrix *****//
-
-const 
-  GL_TRANSPOSE_MODELVIEW_MATRIX_ARB* = 0x000084E3
-  GL_TRANSPOSE_PROJECTION_MATRIX_ARB* = 0x000084E4
-  GL_TRANSPOSE_TEXTURE_MATRIX_ARB* = 0x000084E5
-  GL_TRANSPOSE_COLOR_MATRIX_ARB* = 0x000084E6
-
-proc glLoadTransposeMatrixfARB*(m: PGLfloat){.dynlib: dllname, 
-    importc: "glLoadTransposeMatrixfARB".}
-proc glLoadTransposeMatrixdARB*(m: PGLdouble){.dynlib: dllname, 
-    importc: "glLoadTransposeMatrixdARB".}
-proc glMultTransposeMatrixfARB*(m: PGLfloat){.dynlib: dllname, 
-    importc: "glMultTransposeMatrixfARB".}
-proc glMultTransposeMatrixdARB*(m: PGLdouble){.dynlib: dllname, 
-    importc: "glMultTransposeMatrixdARB".}
-const 
-  WGL_SAMPLE_BUFFERS_ARB* = 0x00002041
-  WGL_SAMPLES_ARB* = 0x00002042
-  GL_MULTISAMPLE_ARB* = 0x0000809D
-  GL_SAMPLE_ALPHA_TO_COVERAGE_ARB* = 0x0000809E
-  GL_SAMPLE_ALPHA_TO_ONE_ARB* = 0x0000809F
-  constGL_SAMPLE_COVERAGE_ARB* = 0x000080A0
-  GL_MULTISAMPLE_BIT_ARB* = 0x20000000
-  GL_SAMPLE_BUFFERS_ARB* = 0x000080A8
-  GL_SAMPLES_ARB* = 0x000080A9
-  GL_SAMPLE_COVERAGE_VALUE_ARB* = 0x000080AA
-  GL_SAMPLE_COVERAGE_INVERT_ARB* = 0x000080AB
-
-const 
-  GL_NORMAL_MAP_ARB* = 0x00008511
-  GL_REFLECTION_MAP_ARB* = 0x00008512
-  GL_TEXTURE_CUBE_MAP_ARB* = 0x00008513
-  GL_TEXTURE_BINDING_CUBE_MAP_ARB* = 0x00008514
-  GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB* = 0x00008515
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB* = 0x00008516
-  GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB* = 0x00008517
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB* = 0x00008518
-  GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB* = 0x00008519
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB* = 0x0000851A
-  GL_PROXY_TEXTURE_CUBE_MAP_ARB* = 0x0000851B
-  GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB* = 0x0000851C
-
-const 
-  GL_DEPTH_COMPONENT16_ARB* = 0x000081A5
-  GL_DEPTH_COMPONENT24_ARB* = 0x000081A6
-  GL_DEPTH_COMPONENT32_ARB* = 0x000081A7
-  GL_TEXTURE_DEPTH_SIZE_ARB* = 0x0000884A
-  GL_DEPTH_TEXTURE_MODE_ARB* = 0x0000884B
-  #***** GL_ARB_point_parameters *****//
-
-const 
-  GL_POINT_SIZE_MIN_ARB* = 0x00008126
-  GL_POINT_SIZE_MAX_ARB* = 0x00008127
-  GL_POINT_FADE_THRESHOLD_SIZE_ARB* = 0x00008128
-  GL_POINT_DISTANCE_ATTENUATION_ARB* = 0x00008129
-
-proc glPointParameterfARB*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glPointParameterfARB".}
-proc glPointParameterfvARB*(pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glPointParameterfvARB".}
-const 
-  GL_TEXTURE_COMPARE_MODE_ARB* = 0x0000884C
-  GL_TEXTURE_COMPARE_FUNC_ARB* = 0x0000884D
-  GL_COMPARE_R_TO_TEXTURE_ARB* = 0x0000884E
-
-const 
-  GL_TEXTURE_COMPARE_FAIL_VALUE_ARB* = 0x000080BF
-  GL_CLAMP_TO_BORDER_ARB* = 0x0000812D
-
-const 
-  GL_COMPRESSED_ALPHA_ARB* = 0x000084E9
-  GL_COMPRESSED_LUMINANCE_ARB* = 0x000084EA
-  GL_COMPRESSED_LUMINANCE_ALPHA_ARB* = 0x000084EB
-  GL_COMPRESSED_INTENSITY_ARB* = 0x000084EC
-  GL_COMPRESSED_RGB_ARB* = 0x000084ED
-  GL_COMPRESSED_RGBA_ARB* = 0x000084EE
-  GL_TEXTURE_COMPRESSION_HINT_ARB* = 0x000084EF
-  GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB* = 0x000086A0
-  GL_TEXTURE_COMPRESSED_ARB* = 0x000086A1
-  GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB* = 0x000086A2
-  GL_COMPRESSED_TEXTURE_FORMATS_ARB* = 0x000086A3
-
-proc glCompressedTexImage3DARB*(target: TGLenum, level: TGLint, 
-                                internalformat: TGLenum, width: TGLsizei, 
-                                height: TGLsizei, depth: TGLsizei, 
-                                border: TGLint, imageSize: TGLsizei, 
-                                data: PGLvoid){.dynlib: dllname, 
-    importc: "glCompressedTexImage3DARB".}
-proc glCompressedTexImage2DARB*(target: TGLenum, level: TGLint, 
-                                internalformat: TGLenum, width: TGLsizei, 
-                                height: TGLsizei, border: TGLint, 
-                                imageSize: TGLsizei, data: PGLvoid){.
-    dynlib: dllname, importc: "glCompressedTexImage2DARB".}
-proc glCompressedTexImage1DARB*(target: TGLenum, level: TGLint, 
-                                internalformat: TGLenum, width: TGLsizei, 
-                                border: TGLint, imageSize: TGLsizei, 
-                                data: PGLvoid){.dynlib: dllname, 
-    importc: "glCompressedTexImage1DARB".}
-proc glCompressedTexSubImage3DARB*(target: TGLenum, level: TGLint, 
-                                   xoffset: TGLint, yoffset: TGLint, 
-                                   zoffset: TGLint, width: TGLsizei, 
-                                   height: TGLsizei, depth: TGLsizei, 
-                                   format: TGLenum, imageSize: TGLsizei, 
-                                   data: PGLvoid){.dynlib: dllname, 
-    importc: "glCompressedTexSubImage3DARB".}
-proc glCompressedTexSubImage2DARB*(target: TGLenum, level: TGLint, 
-                                   xoffset: TGLint, yoffset: TGLint, 
-                                   width: TGLsizei, height: TGLsizei, 
-                                   format: TGLenum, imageSize: TGLsizei, 
-                                   data: PGLvoid){.dynlib: dllname, 
-    importc: "glCompressedTexSubImage2DARB".}
-proc glCompressedTexSubImage1DARB*(target: TGLenum, level: TGLint, 
-                                   xoffset: TGLint, width: TGLsizei, 
-                                   format: TGLenum, imageSize: TGLsizei, 
-                                   data: PGLvoid){.dynlib: dllname, 
-    importc: "glCompressedTexSubImage1DARB".}
-proc glGetCompressedTexImageARB*(target: TGLenum, lod: TGLint, img: PGLvoid){.
-    dynlib: dllname, importc: "glGetCompressedTexImageARB".}
-  #***** GL_ARB_texture_env_combine *****//
-const 
-  GL_COMBINE_ARB* = 0x00008570
-  GL_COMBINE_RGB_ARB* = 0x00008571
-  GL_COMBINE_ALPHA_ARB* = 0x00008572
-  GL_SOURCE0_RGB_ARB* = 0x00008580
-  GL_SOURCE1_RGB_ARB* = 0x00008581
-  GL_SOURCE2_RGB_ARB* = 0x00008582
-  GL_SOURCE0_ALPHA_ARB* = 0x00008588
-  GL_SOURCE1_ALPHA_ARB* = 0x00008589
-  GL_SOURCE2_ALPHA_ARB* = 0x0000858A
-  GL_OPERAND0_RGB_ARB* = 0x00008590
-  GL_OPERAND1_RGB_ARB* = 0x00008591
-  GL_OPERAND2_RGB_ARB* = 0x00008592
-  GL_OPERAND0_ALPHA_ARB* = 0x00008598
-  GL_OPERAND1_ALPHA_ARB* = 0x00008599
-  GL_OPERAND2_ALPHA_ARB* = 0x0000859A
-  GL_RGB_SCALE_ARB* = 0x00008573
-  GL_ADD_SIGNED_ARB* = 0x00008574
-  GL_INTERPOLATE_ARB* = 0x00008575
-  GL_SUBTRACT_ARB* = 0x000084E7
-  GL_CONSTANT_ARB* = 0x00008576
-  GL_PRIMARY_COLOR_ARB* = 0x00008577
-  GL_PREVIOUS_ARB* = 0x00008578
-  #***** GL_ARB_texture_env_crossbar *****//
-  #***** GL_ARB_texture_env_dot3 *****//
-
-const 
-  GL_DOT3_RGB_ARB* = 0x000086AE
-  GL_DOT3_RGBA_ARB* = 0x000086AF
-  #***** GL_ARB_texture_mirrored_repeat *****//
-
-const 
-  GL_MIRRORED_REPEAT_ARB* = 0x00008370
-  #***** GL_ARB_vertex_blend *****//
-
-const 
-  GL_MAX_VERTEX_UNITS_ARB* = 0x000086A4
-  GL_ACTIVE_VERTEX_UNITS_ARB* = 0x000086A5
-  GL_WEIGHT_SUM_UNITY_ARB* = 0x000086A6
-  constGL_VERTEX_BLEND_ARB* = 0x000086A7
-  GL_MODELVIEW0_ARB* = 0x00001700
-  GL_MODELVIEW1_ARB* = 0x0000850A
-  GL_MODELVIEW2_ARB* = 0x00008722
-  GL_MODELVIEW3_ARB* = 0x00008723
-  GL_MODELVIEW4_ARB* = 0x00008724
-  GL_MODELVIEW5_ARB* = 0x00008725
-  GL_MODELVIEW6_ARB* = 0x00008726
-  GL_MODELVIEW7_ARB* = 0x00008727
-  GL_MODELVIEW8_ARB* = 0x00008728
-  GL_MODELVIEW9_ARB* = 0x00008729
-  GL_MODELVIEW10_ARB* = 0x0000872A
-  GL_MODELVIEW11_ARB* = 0x0000872B
-  GL_MODELVIEW12_ARB* = 0x0000872C
-  GL_MODELVIEW13_ARB* = 0x0000872D
-  GL_MODELVIEW14_ARB* = 0x0000872E
-  GL_MODELVIEW15_ARB* = 0x0000872F
-  GL_MODELVIEW16_ARB* = 0x00008730
-  GL_MODELVIEW17_ARB* = 0x00008731
-  GL_MODELVIEW18_ARB* = 0x00008732
-  GL_MODELVIEW19_ARB* = 0x00008733
-  GL_MODELVIEW20_ARB* = 0x00008734
-  GL_MODELVIEW21_ARB* = 0x00008735
-  GL_MODELVIEW22_ARB* = 0x00008736
-  GL_MODELVIEW23_ARB* = 0x00008737
-  GL_MODELVIEW24_ARB* = 0x00008738
-  GL_MODELVIEW25_ARB* = 0x00008739
-  GL_MODELVIEW26_ARB* = 0x0000873A
-  GL_MODELVIEW27_ARB* = 0x0000873B
-  GL_MODELVIEW28_ARB* = 0x0000873C
-  GL_MODELVIEW29_ARB* = 0x0000873D
-  GL_MODELVIEW30_ARB* = 0x0000873E
-  GL_MODELVIEW31_ARB* = 0x0000873F
-  GL_CURRENT_WEIGHT_ARB* = 0x000086A8
-  GL_WEIGHT_ARRAY_TYPE_ARB* = 0x000086A9
-  GL_WEIGHT_ARRAY_STRIDE_ARB* = 0x000086AA
-  GL_WEIGHT_ARRAY_SIZE_ARB* = 0x000086AB
-  GL_WEIGHT_ARRAY_POINTER_ARB* = 0x000086AC
-  GL_WEIGHT_ARRAY_ARB* = 0x000086AD
-
-const 
-  GL_VERTEX_PROGRAM_ARB* = 0x00008620
-  GL_VERTEX_PROGRAM_POINT_SIZE_ARB* = 0x00008642
-  GL_VERTEX_PROGRAM_TWO_SIDE_ARB* = 0x00008643
-  GL_COLOR_SUM_ARB* = 0x00008458
-  GL_PROGRAM_FORMAT_ASCII_ARB* = 0x00008875
-  GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB* = 0x00008622
-  GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB* = 0x00008623
-  GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB* = 0x00008624
-  GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB* = 0x00008625
-  GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB* = 0x0000886A
-  GL_CURRENT_VERTEX_ATTRIB_ARB* = 0x00008626
-  GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB* = 0x00008645
-  GL_PROGRAM_LENGTH_ARB* = 0x00008627
-  GL_PROGRAM_FORMAT_ARB* = 0x00008876
-  GL_PROGRAM_BINDING_ARB* = 0x00008677
-  GL_PROGRAM_INSTRUCTIONS_ARB* = 0x000088A0
-  GL_MAX_PROGRAM_INSTRUCTIONS_ARB* = 0x000088A1
-  GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB* = 0x000088A2
-  GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB* = 0x000088A3
-  GL_PROGRAM_TEMPORARIES_ARB* = 0x000088A4
-  GL_MAX_PROGRAM_TEMPORARIES_ARB* = 0x000088A5
-  GL_PROGRAM_NATIVE_TEMPORARIES_ARB* = 0x000088A6
-  GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB* = 0x000088A7
-  GL_PROGRAM_PARAMETERS_ARB* = 0x000088A8
-  GL_MAX_PROGRAM_PARAMETERS_ARB* = 0x000088A9
-  GL_PROGRAM_NATIVE_PARAMETERS_ARB* = 0x000088AA
-  GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB* = 0x000088AB
-  GL_PROGRAM_ATTRIBS_ARB* = 0x000088AC
-  GL_MAX_PROGRAM_ATTRIBS_ARB* = 0x000088AD
-  GL_PROGRAM_NATIVE_ATTRIBS_ARB* = 0x000088AE
-  GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB* = 0x000088AF
-  GL_PROGRAM_ADDRESS_REGISTERS_ARB* = 0x000088B0
-  GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB* = 0x000088B1
-  GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB* = 0x000088B2
-  GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB* = 0x000088B3
-  GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB* = 0x000088B4
-  GL_MAX_PROGRAM_ENV_PARAMETERS_ARB* = 0x000088B5
-  GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB* = 0x000088B6
-  constGL_PROGRAM_STRING_ARB* = 0x00008628
-  GL_PROGRAM_ERROR_POSITION_ARB* = 0x0000864B
-  GL_CURRENT_MATRIX_ARB* = 0x00008641
-  GL_TRANSPOSE_CURRENT_MATRIX_ARB* = 0x000088B7
-  GL_CURRENT_MATRIX_STACK_DEPTH_ARB* = 0x00008640
-  GL_MAX_VERTEX_ATTRIBS_ARB* = 0x00008869
-  GL_MAX_PROGRAM_MATRICES_ARB* = 0x0000862F
-  GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB* = 0x0000862E
-  GL_PROGRAM_ERROR_STRING_ARB* = 0x00008874
-  GL_MATRIX0_ARB* = 0x000088C0
-  GL_MATRIX1_ARB* = 0x000088C1
-  GL_MATRIX2_ARB* = 0x000088C2
-  GL_MATRIX3_ARB* = 0x000088C3
-  GL_MATRIX4_ARB* = 0x000088C4
-  GL_MATRIX5_ARB* = 0x000088C5
-  GL_MATRIX6_ARB* = 0x000088C6
-  GL_MATRIX7_ARB* = 0x000088C7
-  GL_MATRIX8_ARB* = 0x000088C8
-  GL_MATRIX9_ARB* = 0x000088C9
-  GL_MATRIX10_ARB* = 0x000088CA
-  GL_MATRIX11_ARB* = 0x000088CB
-  GL_MATRIX12_ARB* = 0x000088CC
-  GL_MATRIX13_ARB* = 0x000088CD
-  GL_MATRIX14_ARB* = 0x000088CE
-  GL_MATRIX15_ARB* = 0x000088CF
-  GL_MATRIX16_ARB* = 0x000088D0
-  GL_MATRIX17_ARB* = 0x000088D1
-  GL_MATRIX18_ARB* = 0x000088D2
-  GL_MATRIX19_ARB* = 0x000088D3
-  GL_MATRIX20_ARB* = 0x000088D4
-  GL_MATRIX21_ARB* = 0x000088D5
-  GL_MATRIX22_ARB* = 0x000088D6
-  GL_MATRIX23_ARB* = 0x000088D7
-  GL_MATRIX24_ARB* = 0x000088D8
-  GL_MATRIX25_ARB* = 0x000088D9
-  GL_MATRIX26_ARB* = 0x000088DA
-  GL_MATRIX27_ARB* = 0x000088DB
-  GL_MATRIX28_ARB* = 0x000088DC
-  GL_MATRIX29_ARB* = 0x000088DD
-  GL_MATRIX30_ARB* = 0x000088DE
-  GL_MATRIX31_ARB* = 0x000088DF
-
-const 
-  GL_422_EXT* = 0x000080CC
-  GL_422_REV_EXT* = 0x000080CD
-  GL_422_AVERAGE_EXT* = 0x000080CE
-  GL_422_REV_AVERAGE_EXT* = 0x000080CF
-  #***** GL_EXT_abgr *****//
-
-const 
-  GL_ABGR_EXT* = 0x00008000
-  #***** GL_EXT_bgra *****//
-
-const 
-  GL_BGR_EXT* = 0x000080E0
-  GL_BGRA_EXT* = 0x000080E1
-  #***** GL_EXT_blend_color *****//
-
-const 
-  GL_CONSTANT_COLOR_EXT* = 0x00008001
-  GL_ONE_MINUS_CONSTANT_COLOR_EXT* = 0x00008002
-  GL_CONSTANT_ALPHA_EXT* = 0x00008003
-  GL_ONE_MINUS_CONSTANT_ALPHA_EXT* = 0x00008004
-  constGL_BLEND_COLOR_EXT* = 0x00008005
-
-proc glBlendColorEXT*(red: TGLclampf, green: TGLclampf, blue: TGLclampf, 
-                      alpha: TGLclampf){.dynlib: dllname, 
-    importc: "glBlendColorEXT".}
-  #***** GL_EXT_blend_func_separate *****//
-const 
-  GL_BLEND_DST_RGB_EXT* = 0x000080C8
-  GL_BLEND_SRC_RGB_EXT* = 0x000080C9
-  GL_BLEND_DST_ALPHA_EXT* = 0x000080CA
-  GL_BLEND_SRC_ALPHA_EXT* = 0x000080CB
-
-proc glBlendFuncSeparateEXT*(sfactorRGB: TGLenum, dfactorRGB: TGLenum, 
-                             sfactorAlpha: TGLenum, dfactorAlpha: TGLenum){.
-    dynlib: dllname, importc: "glBlendFuncSeparateEXT".}
-  #***** GL_EXT_blend_logic_op *****//
-  #***** GL_EXT_blend_minmax *****//
-const 
-  GL_FUNC_ADD_EXT* = 0x00008006
-  GL_MIN_EXT* = 0x00008007
-  GL_MAX_EXT* = 0x00008008
-  constGL_BLEND_EQUATION_EXT* = 0x00008009
-
-proc glBlendEquationEXT*(mode: TGLenum){.dynlib: dllname, 
-    importc: "glBlendEquationEXT".}
-  #***** GL_EXT_blend_subtract *****//
-const 
-  GL_FUNC_SUBTRACT_EXT* = 0x0000800A
-  GL_FUNC_REVERSE_SUBTRACT_EXT* = 0x0000800B
-  #***** GL_EXT_clip_volume_hint *****//
-
-const 
-  GL_CLIP_VOLUME_CLIPPING_HINT_EXT* = 0x000080F0
-  #***** GL_EXT_color_subtable *****//
-
-proc glColorSubTableEXT*(target: TGLenum, start: TGLsizei, count: TGLsizei, 
-                         format: TGLenum, thetype: TGLenum, data: PGLvoid){.
-    dynlib: dllname, importc: "glColorSubTableEXT".}
-proc glCopyColorSubTableEXT*(target: TGLenum, start: TGLsizei, x: TGLint, 
-                             y: TGLint, width: TGLsizei){.dynlib: dllname, 
-    importc: "glCopyColorSubTableEXT".}
-  #***** GL_EXT_compiled_vertex_array *****//
-const 
-  GL_ARRAY_ELEMENT_LOCK_FIRST_EXT* = 0x000081A8
-  GL_ARRAY_ELEMENT_LOCK_COUNT_EXT* = 0x000081A9
-
-proc glLockArraysEXT*(first: TGLint, count: TGLsizei){.dynlib: dllname, 
-    importc: "glLockArraysEXT".}
-proc glUnlockArraysEXT*(){.dynlib: dllname, importc: "glUnlockArraysEXT".}
-  #***** GL_EXT_convolution *****//
-const 
-  GL_CONVOLUTION_1D_EXT* = 0x00008010
-  GL_CONVOLUTION_2D_EXT* = 0x00008011
-  GL_SEPARABLE_2D_EXT* = 0x00008012
-  GL_CONVOLUTION_BORDER_MODE_EXT* = 0x00008013
-  GL_CONVOLUTION_FILTER_SCALE_EXT* = 0x00008014
-  GL_CONVOLUTION_FILTER_BIAS_EXT* = 0x00008015
-  GL_REDUCE_EXT* = 0x00008016
-  GL_CONVOLUTION_FORMAT_EXT* = 0x00008017
-  GL_CONVOLUTION_WIDTH_EXT* = 0x00008018
-  GL_CONVOLUTION_HEIGHT_EXT* = 0x00008019
-  GL_MAX_CONVOLUTION_WIDTH_EXT* = 0x0000801A
-  GL_MAX_CONVOLUTION_HEIGHT_EXT* = 0x0000801B
-  GL_POST_CONVOLUTION_RED_SCALE_EXT* = 0x0000801C
-  GL_POST_CONVOLUTION_GREEN_SCALE_EXT* = 0x0000801D
-  GL_POST_CONVOLUTION_BLUE_SCALE_EXT* = 0x0000801E
-  GL_POST_CONVOLUTION_ALPHA_SCALE_EXT* = 0x0000801F
-  GL_POST_CONVOLUTION_RED_BIAS_EXT* = 0x00008020
-  GL_POST_CONVOLUTION_GREEN_BIAS_EXT* = 0x00008021
-  GL_POST_CONVOLUTION_BLUE_BIAS_EXT* = 0x00008022
-  GL_POST_CONVOLUTION_ALPHA_BIAS_EXT* = 0x00008023
-
-proc glConvolutionFilter1DEXT*(target: TGLenum, internalformat: TGLenum, 
-                               width: TGLsizei, format: TGLenum, 
-                               thetype: TGLenum, image: PGLvoid){.
-    dynlib: dllname, importc: "glConvolutionFilter1DEXT".}
-proc glConvolutionFilter2DEXT*(target: TGLenum, internalformat: TGLenum, 
-                               width: TGLsizei, height: TGLsizei, 
-                               format: TGLenum, thetype: TGLenum, image: PGLvoid){.
-    dynlib: dllname, importc: "glConvolutionFilter2DEXT".}
-proc glCopyConvolutionFilter1DEXT*(target: TGLenum, internalformat: TGLenum, 
-                                   x: TGLint, y: TGLint, width: TGLsizei){.
-    dynlib: dllname, importc: "glCopyConvolutionFilter1DEXT".}
-proc glCopyConvolutionFilter2DEXT*(target: TGLenum, internalformat: TGLenum, 
-                                   x: TGLint, y: TGLint, width: TGLsizei, 
-                                   height: TGLsizei){.dynlib: dllname, 
-    importc: "glCopyConvolutionFilter2DEXT".}
-proc glGetConvolutionFilterEXT*(target: TGLenum, format: TGLenum, 
-                                thetype: TGLenum, image: PGLvoid){.
-    dynlib: dllname, importc: "glGetConvolutionFilterEXT".}
-proc glSeparableFilter2DEXT*(target: TGLenum, internalformat: TGLenum, 
-                             width: TGLsizei, height: TGLsizei, format: TGLenum, 
-                             thetype: TGLenum, row: PGLvoid, column: PGLvoid){.
-    dynlib: dllname, importc: "glSeparableFilter2DEXT".}
-proc glGetSeparableFilterEXT*(target: TGLenum, format: TGLenum, 
-                              thetype: TGLenum, row: PGLvoid, column: PGLvoid, 
-                              span: PGLvoid){.dynlib: dllname, 
-    importc: "glGetSeparableFilterEXT".}
-proc glConvolutionParameteriEXT*(target: TGLenum, pname: TGLenum, param: TGLint){.
-    dynlib: dllname, importc: "glConvolutionParameteriEXT".}
-proc glConvolutionParameterivEXT*(target: TGLenum, pname: TGLenum, 
-                                  params: PGLint){.dynlib: dllname, 
-    importc: "glConvolutionParameterivEXT".}
-proc glConvolutionParameterfEXT*(target: TGLenum, pname: TGLenum, 
-                                 param: TGLfloat){.dynlib: dllname, 
-    importc: "glConvolutionParameterfEXT".}
-proc glConvolutionParameterfvEXT*(target: TGLenum, pname: TGLenum, 
-                                  params: PGLfloat){.dynlib: dllname, 
-    importc: "glConvolutionParameterfvEXT".}
-proc glGetConvolutionParameterivEXT*(target: TGLenum, pname: TGLenum, 
-                                     params: PGLint){.dynlib: dllname, 
-    importc: "glGetConvolutionParameterivEXT".}
-proc glGetConvolutionParameterfvEXT*(target: TGLenum, pname: TGLenum, 
-                                     params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetConvolutionParameterfvEXT".}
-  #***** GL_EXT_fog_coord *****//
-const 
-  GL_FOG_COORDINATE_SOURCE_EXT* = 0x00008450
-  GL_FOG_COORDINATE_EXT* = 0x00008451
-  GL_FRAGMENT_DEPTH_EXT* = 0x00008452
-  GL_CURRENT_FOG_COORDINATE_EXT* = 0x00008453
-  GL_FOG_COORDINATE_ARRAY_TYPE_EXT* = 0x00008454
-  GL_FOG_COORDINATE_ARRAY_STRIDE_EXT* = 0x00008455
-  GL_FOG_COORDINATE_ARRAY_POINTER_EXT* = 0x00008456
-  GL_FOG_COORDINATE_ARRAY_EXT* = 0x00008457
-
-proc glFogCoordfEXfloat*(coord: TGLfloat){.dynlib: dllname, 
-    importc: "glFogCoordfEXfloat".}
-proc glFogCoorddEXdouble*(coord: TGLdouble){.dynlib: dllname, 
-    importc: "glFogCoorddEXdouble".}
-proc glFogCoordfvEXfloat*(coord: TGLfloat){.dynlib: dllname, 
-    importc: "glFogCoordfvEXfloat".}
-proc glFogCoorddvEXdouble*(coord: TGLdouble){.dynlib: dllname, 
-    importc: "glFogCoorddvEXdouble".}
-proc glFogCoordPointerEXT*(thetype: TGLenum, stride: TGLsizei, pointer: PGLvoid){.
-    dynlib: dllname, importc: "glFogCoordPointerEXT".}
-  #***** GL_EXT_histogram *****//
-const 
-  constGL_HISTOGRAM_EXT* = 0x00008024
-  GL_PROXY_HISTOGRAM_EXT* = 0x00008025
-  GL_HISTOGRAM_WIDTH_EXT* = 0x00008026
-  GL_HISTOGRAM_FORMAT_EXT* = 0x00008027
-  GL_HISTOGRAM_RED_SIZE_EXT* = 0x00008028
-  GL_HISTOGRAM_GREEN_SIZE_EXT* = 0x00008029
-  GL_HISTOGRAM_BLUE_SIZE_EXT* = 0x0000802A
-  GL_HISTOGRAM_ALPHA_SIZE_EXT* = 0x0000802B
-  GL_HISTOGRAM_LUMINANCE_SIZE_EXT* = 0x0000802C
-  GL_HISTOGRAM_SINK_EXT* = 0x0000802D
-  constGL_MINMAX_EXT* = 0x0000802E
-  GL_MINMAX_FORMAT_EXT* = 0x0000802F
-  GL_MINMAX_SINK_EXT* = 0x00008030
-
-proc glHistogramEXT*(target: TGLenum, width: TGLsizei, internalformat: TGLenum, 
-                     sink: TGLboolean){.dynlib: dllname, 
-                                        importc: "glHistogramEXT".}
-proc glResetHistogramEXT*(target: TGLenum){.dynlib: dllname, 
-    importc: "glResetHistogramEXT".}
-proc glGetHistogramEXT*(target: TGLenum, reset: TGLboolean, format: TGLenum, 
-                        thetype: TGLenum, values: PGLvoid){.dynlib: dllname, 
-    importc: "glGetHistogramEXT".}
-proc glGetHistogramParameterivEXT*(target: TGLenum, pname: TGLenum, 
-                                   params: PGLint){.dynlib: dllname, 
-    importc: "glGetHistogramParameterivEXT".}
-proc glGetHistogramParameterfvEXT*(target: TGLenum, pname: TGLenum, 
-                                   params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetHistogramParameterfvEXT".}
-proc glMinmaxEXT*(target: TGLenum, internalformat: TGLenum, sink: TGLboolean){.
-    dynlib: dllname, importc: "glMinmaxEXT".}
-proc glResetMinmaxEXT*(target: TGLenum){.dynlib: dllname, 
-    importc: "glResetMinmaxEXT".}
-proc glGetMinmaxEXT*(target: TGLenum, reset: TGLboolean, format: TGLenum, 
-                     thetype: TGLenum, values: PGLvoid){.dynlib: dllname, 
-    importc: "glGetMinmaxEXT".}
-proc glGetMinmaxParameterivEXT*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetMinmaxParameterivEXT".}
-proc glGetMinmaxParameterfvEXT*(target: TGLenum, pname: TGLenum, 
-                                params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetMinmaxParameterfvEXT".}
-  #***** GL_EXT_multi_draw_arrays *****//
-proc glMultiDrawArraysEXT*(mode: TGLenum, first: PGLint, count: PGLsizei, 
-                           primcount: TGLsizei){.dynlib: dllname, 
-    importc: "glMultiDrawArraysEXT".}
-proc glMultiDrawElementsEXT*(mode: TGLenum, count: PGLsizei, thetype: TGLenum, 
-                             indices: PGLvoid, primcount: TGLsizei){.
-    dynlib: dllname, importc: "glMultiDrawElementsEXT".}
-  #***** GL_EXT_packed_pixels *****//
-const 
-  GL_UNSIGNED_BYTE_3_3_2_EXT* = 0x00008032
-  GL_UNSIGNED_SHORT_4_4_4_4_EXT* = 0x00008033
-  GL_UNSIGNED_SHORT_5_5_5_1_EXT* = 0x00008034
-  GL_UNSIGNED_INT_8_8_8_8_EXT* = 0x00008035
-  GL_UNSIGNED_INT_10_10_10_2_EXT* = 0x00008036
-  #***** GL_EXT_paletted_texture *****//
-
-const 
-  GL_COLOR_INDEX1_EXT* = 0x000080E2
-  GL_COLOR_INDEX2_EXT* = 0x000080E3
-  GL_COLOR_INDEX4_EXT* = 0x000080E4
-  GL_COLOR_INDEX8_EXT* = 0x000080E5
-  GL_COLOR_INDEX12_EXT* = 0x000080E6
-  GL_COLOR_INDEX16_EXT* = 0x000080E7
-  GL_COLOR_TABLE_FORMAT_EXT* = 0x000080D8
-  GL_COLOR_TABLE_WIDTH_EXT* = 0x000080D9
-  GL_COLOR_TABLE_RED_SIZE_EXT* = 0x000080DA
-  GL_COLOR_TABLE_GREEN_SIZE_EXT* = 0x000080DB
-  GL_COLOR_TABLE_BLUE_SIZE_EXT* = 0x000080DC
-  GL_COLOR_TABLE_ALPHA_SIZE_EXT* = 0x000080DD
-  GL_COLOR_TABLE_LUMINANCE_SIZE_EXT* = 0x000080DE
-  GL_COLOR_TABLE_INTENSITY_SIZE_EXT* = 0x000080DF
-  GL_TEXTURE_INDEX_SIZE_EXT* = 0x000080ED
-  GL_TEXTURE_1D* = 0x00000DE0
-  GL_TEXTURE_2D* = 0x00000DE1
-  GL_TEXTURE_3D_EXT* = 0x0000806F # GL_TEXTURE_CUBE_MAP_ARB  { already defined }
-  GL_PROXY_TEXTURE_1D* = 0x00008063
-  GL_PROXY_TEXTURE_2D* = 0x00008064
-  GL_PROXY_TEXTURE_3D_EXT* = 0x00008070 # GL_PROXY_TEXTURE_CUBE_MAP_ARB  { already defined }
-                                        # GL_TEXTURE_1D  { already defined }
-                                        # GL_TEXTURE_2D  { already defined }
-                                        # GL_TEXTURE_3D_EXT  { already defined }
-                                        # GL_TEXTURE_CUBE_MAP_ARB  { already defined }
-
-proc glColorTableEXT*(target: TGLenum, internalFormat: TGLenum, width: TGLsizei, 
-                      format: TGLenum, thetype: TGLenum, data: PGLvoid){.
-    dynlib: dllname, importc: "glColorTableEXT".}
-  # glColorSubTableEXT  { already defined }
-proc glGetColorTableEXT*(target: TGLenum, format: TGLenum, thetype: TGLenum, 
-                         data: PGLvoid){.dynlib: dllname, 
-    importc: "glGetColorTableEXT".}
-proc glGetColorTableParameterivEXT*(target: TGLenum, pname: TGLenum, 
-                                    params: PGLint){.dynlib: dllname, 
-    importc: "glGetColorTableParameterivEXT".}
-proc glGetColorTableParameterfvEXT*(target: TGLenum, pname: TGLenum, 
-                                    params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetColorTableParameterfvEXT".}
-  #***** GL_EXT_point_parameters *****//
-const 
-  GL_POINT_SIZE_MIN_EXT* = 0x00008126
-  GL_POINT_SIZE_MAX_EXT* = 0x00008127
-  GL_POINT_FADE_THRESHOLD_SIZE_EXT* = 0x00008128
-  GL_DISTANCE_ATTENUATION_EXT* = 0x00008129
-
-proc glPointParameterfEXT*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glPointParameterfEXT".}
-proc glPointParameterfvEXT*(pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glPointParameterfvEXT".}
-  #***** GL_EXT_polygon_offset *****//
-const 
-  constGL_POLYGON_OFFSET_EXT* = 0x00008037
-  GL_POLYGON_OFFSET_FACTOR_EXT* = 0x00008038
-  GL_POLYGON_OFFSET_BIAS_EXT* = 0x00008039
-
-proc glPolygonOffsetEXT*(factor: TGLfloat, bias: TGLfloat){.dynlib: dllname, 
-    importc: "glPolygonOffsetEXT".}
-  #***** GL_EXT_secondary_color *****//
-const 
-  GL_COLOR_SUM_EXT* = 0x00008458
-  GL_CURRENT_SECONDARY_COLOR_EXT* = 0x00008459
-  GL_SECONDARY_COLOR_ARRAY_SIZE_EXT* = 0x0000845A
-  GL_SECONDARY_COLOR_ARRAY_TYPE_EXT* = 0x0000845B
-  GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT* = 0x0000845C
-  GL_SECONDARY_COLOR_ARRAY_POINTER_EXT* = 0x0000845D
-  GL_SECONDARY_COLOR_ARRAY_EXT* = 0x0000845E
-
-proc glSecondaryColor3bEXT*(components: TGLbyte){.dynlib: dllname, 
-    importc: "glSecondaryColor3bEXT".}
-proc glSecondaryColor3sEXT*(components: TGLshort){.dynlib: dllname, 
-    importc: "glSecondaryColor3sEXT".}
-proc glSecondaryColor3iEXT*(components: TGLint){.dynlib: dllname, 
-    importc: "glSecondaryColor3iEXT".}
-proc glSecondaryColor3fEXT*(components: TGLfloat){.dynlib: dllname, 
-    importc: "glSecondaryColor3fEXT".}
-proc glSecondaryColor3dEXT*(components: TGLdouble){.dynlib: dllname, 
-    importc: "glSecondaryColor3dEXT".}
-proc glSecondaryColor3ubEXT*(components: TGLubyte){.dynlib: dllname, 
-    importc: "glSecondaryColor3ubEXT".}
-proc glSecondaryColor3usEXT*(components: TGLushort){.dynlib: dllname, 
-    importc: "glSecondaryColor3usEXT".}
-proc glSecondaryColor3uiEXT*(components: TGLuint){.dynlib: dllname, 
-    importc: "glSecondaryColor3uiEXT".}
-proc glSecondaryColor3bvEXT*(components: TGLbyte){.dynlib: dllname, 
-    importc: "glSecondaryColor3bvEXT".}
-proc glSecondaryColor3svEXT*(components: TGLshort){.dynlib: dllname, 
-    importc: "glSecondaryColor3svEXT".}
-proc glSecondaryColor3ivEXT*(components: TGLint){.dynlib: dllname, 
-    importc: "glSecondaryColor3ivEXT".}
-proc glSecondaryColor3fvEXT*(components: TGLfloat){.dynlib: dllname, 
-    importc: "glSecondaryColor3fvEXT".}
-proc glSecondaryColor3dvEXT*(components: TGLdouble){.dynlib: dllname, 
-    importc: "glSecondaryColor3dvEXT".}
-proc glSecondaryColor3ubvEXT*(components: TGLubyte){.dynlib: dllname, 
-    importc: "glSecondaryColor3ubvEXT".}
-proc glSecondaryColor3usvEXT*(components: TGLushort){.dynlib: dllname, 
-    importc: "glSecondaryColor3usvEXT".}
-proc glSecondaryColor3uivEXT*(components: TGLuint){.dynlib: dllname, 
-    importc: "glSecondaryColor3uivEXT".}
-proc glSecondaryColorPointerEXT*(size: TGLint, thetype: TGLenum, 
-                                 stride: TGLsizei, pointer: PGLvoid){.
-    dynlib: dllname, importc: "glSecondaryColorPointerEXT".}
-  #***** GL_EXT_separate_specular_color *****//
-const 
-  GL_LIGHT_MODEL_COLOR_CONTROL_EXT* = 0x000081F8
-  GL_SINGLE_COLOR_EXT* = 0x000081F9
-  GL_SEPARATE_SPECULAR_COLOR_EXT* = 0x000081FA
-  #***** GL_EXT_shadow_funcs *****//
-  #***** GL_EXT_shared_texture_palette *****//
-
-const 
-  GL_SHARED_TEXTURE_PALETTE_EXT* = 0x000081FB
-  #***** GL_EXT_stencil_two_side *****//
-
-const 
-  GL_STENCIL_TEST_TWO_SIDE_EXT* = 0x00008910
-  constGL_ACTIVE_STENCIL_FACE_EXT* = 0x00008911
-
-proc glActiveStencilFaceEXT*(face: TGLenum){.dynlib: dllname, 
-    importc: "glActiveStencilFaceEXT".}
-  #***** GL_EXT_stencil_wrap *****//
-const 
-  GL_INCR_WRAP_EXT* = 0x00008507
-  GL_DECR_WRAP_EXT* = 0x00008508
-  #***** GL_EXT_subtexture *****//
-
-proc glTexSubImage1DEXT*(target: TGLenum, level: TGLint, xoffset: TGLint, 
-                         width: TGLsizei, format: TGLenum, thetype: TGLenum, 
-                         pixels: PGLvoid){.dynlib: dllname, 
-    importc: "glTexSubImage1DEXT".}
-proc glTexSubImage2DEXT*(target: TGLenum, level: TGLint, xoffset: TGLint, 
-                         yoffset: TGLint, width: TGLsizei, height: TGLsizei, 
-                         format: TGLenum, thetype: TGLenum, pixels: PGLvoid){.
-    dynlib: dllname, importc: "glTexSubImage2DEXT".}
-proc glTexSubImage3DEXT*(target: TGLenum, level: TGLint, xoffset: TGLint, 
-                         yoffset: TGLint, zoffset: TGLint, width: TGLsizei, 
-                         height: TGLsizei, depth: TGLsizei, format: TGLenum, 
-                         thetype: TGLenum, pixels: PGLvoid){.dynlib: dllname, 
-    importc: "glTexSubImage3DEXT".}
-  #***** GL_EXT_texture3D *****//
-const 
-  GL_PACK_SKIP_IMAGES_EXT* = 0x0000806B
-  GL_PACK_IMAGE_HEIGHT_EXT* = 0x0000806C
-  GL_UNPACK_SKIP_IMAGES_EXT* = 0x0000806D
-  GL_UNPACK_IMAGE_HEIGHT_EXT* = 0x0000806E # GL_TEXTURE_3D_EXT  { already defined }
-                                           # GL_PROXY_TEXTURE_3D_EXT  { already defined }
-  GL_TEXTURE_DEPTH_EXT* = 0x00008071
-  GL_TEXTURE_WRAP_R_EXT* = 0x00008072
-  GL_MAX_3D_TEXTURE_SIZE_EXT* = 0x00008073
-
-proc glTexImage3DEXT*(target: TGLenum, level: TGLint, internalformat: TGLenum, 
-                      width: TGLsizei, height: TGLsizei, depth: TGLsizei, 
-                      border: TGLint, format: TGLenum, thetype: TGLenum, 
-                      pixels: PGLvoid){.dynlib: dllname, 
-                                        importc: "glTexImage3DEXT".}
-  #***** GL_EXT_texture_compression_s3tc *****//
-const 
-  GL_COMPRESSED_RGB_S3TC_DXT1_EXT* = 0x000083F0
-  GL_COMPRESSED_RGBA_S3TC_DXT1_EXT* = 0x000083F1
-  GL_COMPRESSED_RGBA_S3TC_DXT3_EXT* = 0x000083F2
-  GL_COMPRESSED_RGBA_S3TC_DXT5_EXT* = 0x000083F3
-  #***** GL_EXT_texture_env_add *****//
-  #***** GL_EXT_texture_env_combine *****//
-
-const 
-  GL_COMBINE_EXT* = 0x00008570
-  GL_COMBINE_RGB_EXT* = 0x00008571
-  GL_COMBINE_ALPHA_EXT* = 0x00008572
-  GL_SOURCE0_RGB_EXT* = 0x00008580
-  GL_SOURCE1_RGB_EXT* = 0x00008581
-  GL_SOURCE2_RGB_EXT* = 0x00008582
-  GL_SOURCE0_ALPHA_EXT* = 0x00008588
-  GL_SOURCE1_ALPHA_EXT* = 0x00008589
-  GL_SOURCE2_ALPHA_EXT* = 0x0000858A
-  GL_OPERAND0_RGB_EXT* = 0x00008590
-  GL_OPERAND1_RGB_EXT* = 0x00008591
-  GL_OPERAND2_RGB_EXT* = 0x00008592
-  GL_OPERAND0_ALPHA_EXT* = 0x00008598
-  GL_OPERAND1_ALPHA_EXT* = 0x00008599
-  GL_OPERAND2_ALPHA_EXT* = 0x0000859A
-  GL_RGB_SCALE_EXT* = 0x00008573
-  GL_ADD_SIGNED_EXT* = 0x00008574
-  GL_INTERPOLATE_EXT* = 0x00008575
-  GL_CONSTANT_EXT* = 0x00008576
-  GL_PRIMARY_COLOR_EXT* = 0x00008577
-  GL_PREVIOUS_EXT* = 0x00008578
-  #***** GL_EXT_texture_env_dot3 *****//
-
-const 
-  GL_DOT3_RGB_EXT* = 0x00008740
-  GL_DOT3_RGBA_EXT* = 0x00008741
-  #***** GL_EXT_texture_filter_anisotropic *****//
-
-const 
-  GL_TEXTURE_MAX_ANISOTROPY_EXT* = 0x000084FE
-  GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT* = 0x000084FF
-  #***** GL_EXT_texture_lod_bias *****//
-
-const 
-  GL_TEXTURE_FILTER_CONTROL_EXT* = 0x00008500
-  GL_TEXTURE_LOD_BIAS_EXT* = 0x00008501
-  GL_MAX_TEXTURE_LOD_BIAS_EXT* = 0x000084FD
-  #***** GL_EXT_texture_object *****//
-
-const 
-  GL_TEXTURE_PRIORITY_EXT* = 0x00008066
-  GL_TEXTURE_RESIDENT_EXT* = 0x00008067
-  GL_TEXTURE_1D_BINDING_EXT* = 0x00008068
-  GL_TEXTURE_2D_BINDING_EXT* = 0x00008069
-  GL_TEXTURE_3D_BINDING_EXT* = 0x0000806A
-
-proc glGenTexturesEXT*(n: TGLsizei, textures: PGLuint){.dynlib: dllname, 
-    importc: "glGenTexturesEXT".}
-proc glDeleteTexturesEXT*(n: TGLsizei, textures: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteTexturesEXT".}
-proc glBindTextureEXT*(target: TGLenum, texture: TGLuint){.dynlib: dllname, 
-    importc: "glBindTextureEXT".}
-proc glPrioritizeTexturesEXT*(n: TGLsizei, textures: PGLuint, 
-                              priorities: PGLclampf){.dynlib: dllname, 
-    importc: "glPrioritizeTexturesEXT".}
-proc glAreTexturesResidentEXT*(n: TGLsizei, textures: PGLuint, 
-                               residences: PGLboolean): TGLboolean{.
-    dynlib: dllname, importc: "glAreTexturesResidentEXT".}
-proc glIsTextureEXT*(texture: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsTextureEXT".}
-  #***** GL_EXT_vertex_array *****//
-const 
-  GL_VERTEX_ARRAY_EXT* = 0x00008074
-  GL_NORMAL_ARRAY_EXT* = 0x00008075
-  GL_COLOR_ARRAY_EXT* = 0x00008076
-  GL_INDEX_ARRAY_EXT* = 0x00008077
-  GL_TEXTURE_COORD_ARRAY_EXT* = 0x00008078
-  GL_EDGE_FLAG_ARRAY_EXT* = 0x00008079
-  GL_DOUBLE_EXT* = 0x0000140A
-  GL_VERTEX_ARRAY_SIZE_EXT* = 0x0000807A
-  GL_VERTEX_ARRAY_TYPE_EXT* = 0x0000807B
-  GL_VERTEX_ARRAY_STRIDE_EXT* = 0x0000807C
-  GL_VERTEX_ARRAY_COUNT_EXT* = 0x0000807D
-  GL_NORMAL_ARRAY_TYPE_EXT* = 0x0000807E
-  GL_NORMAL_ARRAY_STRIDE_EXT* = 0x0000807F
-  GL_NORMAL_ARRAY_COUNT_EXT* = 0x00008080
-  GL_COLOR_ARRAY_SIZE_EXT* = 0x00008081
-  GL_COLOR_ARRAY_TYPE_EXT* = 0x00008082
-  GL_COLOR_ARRAY_STRIDE_EXT* = 0x00008083
-  GL_COLOR_ARRAY_COUNT_EXT* = 0x00008084
-  GL_INDEX_ARRAY_TYPE_EXT* = 0x00008085
-  GL_INDEX_ARRAY_STRIDE_EXT* = 0x00008086
-  GL_INDEX_ARRAY_COUNT_EXT* = 0x00008087
-  GL_TEXTURE_COORD_ARRAY_SIZE_EXT* = 0x00008088
-  GL_TEXTURE_COORD_ARRAY_TYPE_EXT* = 0x00008089
-  GL_TEXTURE_COORD_ARRAY_STRIDE_EXT* = 0x0000808A
-  GL_TEXTURE_COORD_ARRAY_COUNT_EXT* = 0x0000808B
-  GL_EDGE_FLAG_ARRAY_STRIDE_EXT* = 0x0000808C
-  GL_EDGE_FLAG_ARRAY_COUNT_EXT* = 0x0000808D
-  GL_VERTEX_ARRAY_POINTER_EXT* = 0x0000808E
-  GL_NORMAL_ARRAY_POINTER_EXT* = 0x0000808F
-  GL_COLOR_ARRAY_POINTER_EXT* = 0x00008090
-  GL_INDEX_ARRAY_POINTER_EXT* = 0x00008091
-  GL_TEXTURE_COORD_ARRAY_POINTER_EXT* = 0x00008092
-  GL_EDGE_FLAG_ARRAY_POINTER_EXT* = 0x00008093
-
-proc glArrayElementEXT*(i: TGLint){.dynlib: dllname, 
-                                    importc: "glArrayElementEXT".}
-proc glDrawArraysEXT*(mode: TGLenum, first: TGLint, count: TGLsizei){.
-    dynlib: dllname, importc: "glDrawArraysEXT".}
-proc glVertexPointerEXT*(size: TGLint, thetype: TGLenum, stride: TGLsizei, 
-                         count: TGLsizei, pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glVertexPointerEXT".}
-proc glNormalPointerEXT*(thetype: TGLenum, stride: TGLsizei, count: TGLsizei, 
-                         pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glNormalPointerEXT".}
-proc glColorPointerEXT*(size: TGLint, thetype: TGLenum, stride: TGLsizei, 
-                        count: TGLsizei, pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glColorPointerEXT".}
-proc glIndexPointerEXT*(thetype: TGLenum, stride: TGLsizei, count: TGLsizei, 
-                        pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glIndexPointerEXT".}
-proc glTexCoordPointerEXT*(size: TGLint, thetype: TGLenum, stride: TGLsizei, 
-                           count: TGLsizei, pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glTexCoordPointerEXT".}
-proc glEdgeFlagPointerEXT*(stride: TGLsizei, count: TGLsizei, 
-                           pointer: PGLboolean){.dynlib: dllname, 
-    importc: "glEdgeFlagPointerEXT".}
-proc glGetPointervEXT*(pname: TGLenum, params: PGLvoid){.dynlib: dllname, 
-    importc: "glGetPointervEXT".}
-  #***** GL_EXT_vertex_shader *****//
-const 
-  GL_VERTEX_SHADER_EXT* = 0x00008780
-  GL_VARIANT_VALUE_EXT* = 0x000087E4
-  GL_VARIANT_DATATYPE_EXT* = 0x000087E5
-  GL_VARIANT_ARRAY_STRIDE_EXT* = 0x000087E6
-  GL_VARIANT_ARRAY_TYPE_EXT* = 0x000087E7
-  GL_VARIANT_ARRAY_EXT* = 0x000087E8
-  GL_VARIANT_ARRAY_POINTER_EXT* = 0x000087E9
-  GL_INVARIANT_VALUE_EXT* = 0x000087EA
-  GL_INVARIANT_DATATYPE_EXT* = 0x000087EB
-  GL_LOCAL_CONSTANT_VALUE_EXT* = 0x000087EC
-  GL_LOCAL_CONSTANT_DATATYPE_EXT* = 0x000087ED
-  GL_OP_INDEX_EXT* = 0x00008782
-  GL_OP_NEGATE_EXT* = 0x00008783
-  GL_OP_DOT3_EXT* = 0x00008784
-  GL_OP_DOT4_EXT* = 0x00008785
-  GL_OP_MUL_EXT* = 0x00008786
-  GL_OP_ADD_EXT* = 0x00008787
-  GL_OP_MADD_EXT* = 0x00008788
-  GL_OP_FRAC_EXT* = 0x00008789
-  GL_OP_MAX_EXT* = 0x0000878A
-  GL_OP_MIN_EXT* = 0x0000878B
-  GL_OP_SET_GE_EXT* = 0x0000878C
-  GL_OP_SET_LT_EXT* = 0x0000878D
-  GL_OP_CLAMP_EXT* = 0x0000878E
-  GL_OP_FLOOR_EXT* = 0x0000878F
-  GL_OP_ROUND_EXT* = 0x00008790
-  GL_OP_EXP_BASE_2_EXT* = 0x00008791
-  GL_OP_LOG_BASE_2_EXT* = 0x00008792
-  GL_OP_POWER_EXT* = 0x00008793
-  GL_OP_RECIP_EXT* = 0x00008794
-  GL_OP_RECIP_SQRT_EXT* = 0x00008795
-  GL_OP_SUB_EXT* = 0x00008796
-  GL_OP_CROSS_PRODUCT_EXT* = 0x00008797
-  GL_OP_MULTIPLY_MATRIX_EXT* = 0x00008798
-  GL_OP_MOV_EXT* = 0x00008799
-  GL_OUTPUT_VERTEX_EXT* = 0x0000879A
-  GL_OUTPUT_COLOR0_EXT* = 0x0000879B
-  GL_OUTPUT_COLOR1_EXT* = 0x0000879C
-  GL_OUTPUT_TEXTURE_COORD0_EXT* = 0x0000879D
-  GL_OUTPUT_TEXTURE_COORD1_EXT* = 0x0000879E
-  GL_OUTPUT_TEXTURE_COORD2_EXT* = 0x0000879F
-  GL_OUTPUT_TEXTURE_COORD3_EXT* = 0x000087A0
-  GL_OUTPUT_TEXTURE_COORD4_EXT* = 0x000087A1
-  GL_OUTPUT_TEXTURE_COORD5_EXT* = 0x000087A2
-  GL_OUTPUT_TEXTURE_COORD6_EXT* = 0x000087A3
-  GL_OUTPUT_TEXTURE_COORD7_EXT* = 0x000087A4
-  GL_OUTPUT_TEXTURE_COORD8_EXT* = 0x000087A5
-  GL_OUTPUT_TEXTURE_COORD9_EXT* = 0x000087A6
-  GL_OUTPUT_TEXTURE_COORD10_EXT* = 0x000087A7
-  GL_OUTPUT_TEXTURE_COORD11_EXT* = 0x000087A8
-  GL_OUTPUT_TEXTURE_COORD12_EXT* = 0x000087A9
-  GL_OUTPUT_TEXTURE_COORD13_EXT* = 0x000087AA
-  GL_OUTPUT_TEXTURE_COORD14_EXT* = 0x000087AB
-  GL_OUTPUT_TEXTURE_COORD15_EXT* = 0x000087AC
-  GL_OUTPUT_TEXTURE_COORD16_EXT* = 0x000087AD
-  GL_OUTPUT_TEXTURE_COORD17_EXT* = 0x000087AE
-  GL_OUTPUT_TEXTURE_COORD18_EXT* = 0x000087AF
-  GL_OUTPUT_TEXTURE_COORD19_EXT* = 0x000087B0
-  GL_OUTPUT_TEXTURE_COORD20_EXT* = 0x000087B1
-  GL_OUTPUT_TEXTURE_COORD21_EXT* = 0x000087B2
-  GL_OUTPUT_TEXTURE_COORD22_EXT* = 0x000087B3
-  GL_OUTPUT_TEXTURE_COORD23_EXT* = 0x000087B4
-  GL_OUTPUT_TEXTURE_COORD24_EXT* = 0x000087B5
-  GL_OUTPUT_TEXTURE_COORD25_EXT* = 0x000087B6
-  GL_OUTPUT_TEXTURE_COORD26_EXT* = 0x000087B7
-  GL_OUTPUT_TEXTURE_COORD27_EXT* = 0x000087B8
-  GL_OUTPUT_TEXTURE_COORD28_EXT* = 0x000087B9
-  GL_OUTPUT_TEXTURE_COORD29_EXT* = 0x000087BA
-  GL_OUTPUT_TEXTURE_COORD30_EXT* = 0x000087BB
-  GL_OUTPUT_TEXTURE_COORD31_EXT* = 0x000087BC
-  GL_OUTPUT_FOG_EXT* = 0x000087BD
-  GL_SCALAR_EXT* = 0x000087BE
-  GL_VECTOR_EXT* = 0x000087BF
-  GL_MATRIX_EXT* = 0x000087C0
-  GL_VARIANT_EXT* = 0x000087C1
-  GL_INVARIANT_EXT* = 0x000087C2
-  GL_LOCAL_CONSTANT_EXT* = 0x000087C3
-  GL_LOCAL_EXT* = 0x000087C4
-  GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT* = 0x000087C5
-  GL_MAX_VERTEX_SHADER_VARIANTS_EXT* = 0x000087C6
-  GL_MAX_VERTEX_SHADER_INVARIANTS_EXT* = 0x000087C7
-  GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT* = 0x000087C8
-  GL_MAX_VERTEX_SHADER_LOCALS_EXT* = 0x000087C9
-  GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT* = 0x000087CA
-  GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT* = 0x000087CB
-  GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT* = 0x000087CC
-  GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT* = 0x000087CD
-  GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT* = 0x000087CE
-  GL_VERTEX_SHADER_INSTRUCTIONS_EXT* = 0x000087CF
-  GL_VERTEX_SHADER_VARIANTS_EXT* = 0x000087D0
-  GL_VERTEX_SHADER_INVARIANTS_EXT* = 0x000087D1
-  GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT* = 0x000087D2
-  GL_VERTEX_SHADER_LOCALS_EXT* = 0x000087D3
-  GL_VERTEX_SHADER_BINDING_EXT* = 0x00008781
-  GL_VERTEX_SHADER_OPTIMIZED_EXT* = 0x000087D4
-  GL_X_EXT* = 0x000087D5
-  GL_Y_EXT* = 0x000087D6
-  GL_Z_EXT* = 0x000087D7
-  GL_W_EXT* = 0x000087D8
-  GL_NEGATIVE_X_EXT* = 0x000087D9
-  GL_NEGATIVE_Y_EXT* = 0x000087DA
-  GL_NEGATIVE_Z_EXT* = 0x000087DB
-  GL_NEGATIVE_W_EXT* = 0x000087DC
-  GL_ZERO_EXT* = 0x000087DD
-  GL_ONE_EXT* = 0x000087DE
-  GL_NEGATIVE_ONE_EXT* = 0x000087DF
-  GL_NORMALIZED_RANGE_EXT* = 0x000087E0
-  GL_FULL_RANGE_EXT* = 0x000087E1
-  GL_CURRENT_VERTEX_EXT* = 0x000087E2
-  GL_MVP_MATRIX_EXT* = 0x000087E3
-
-proc glBeginVertexShaderEXT*(){.dynlib: dllname, 
-                                importc: "glBeginVertexShaderEXT".}
-proc glEndVertexShaderEXT*(){.dynlib: dllname, importc: "glEndVertexShaderEXT".}
-proc glBindVertexShaderEXT*(id: TGLuint){.dynlib: dllname, 
-    importc: "glBindVertexShaderEXT".}
-proc glGenVertexShadersEXT*(range: TGLuint): TGLuint{.dynlib: dllname, 
-    importc: "glGenVertexShadersEXT".}
-proc glDeleteVertexShaderEXT*(id: TGLuint){.dynlib: dllname, 
-    importc: "glDeleteVertexShaderEXT".}
-proc glShaderOp1EXT*(op: TGLenum, res: TGLuint, arg1: TGLuint){.dynlib: dllname, 
-    importc: "glShaderOp1EXT".}
-proc glShaderOp2EXT*(op: TGLenum, res: TGLuint, arg1: TGLuint, arg2: TGLuint){.
-    dynlib: dllname, importc: "glShaderOp2EXT".}
-proc glShaderOp3EXT*(op: TGLenum, res: TGLuint, arg1: TGLuint, arg2: TGLuint, 
-                     arg3: TGLuint){.dynlib: dllname, importc: "glShaderOp3EXT".}
-proc glSwizzleEXT*(res: TGLuint, theIn: TGLuint, outX: TGLenum, outY: TGLenum, 
-                   outZ: TGLenum, outW: TGLenum){.dynlib: dllname, 
-    importc: "glSwizzleEXT".}
-proc glWriteMaskEXT*(res: TGLuint, theIn: TGLuint, outX: TGLenum, outY: TGLenum, 
-                     outZ: TGLenum, outW: TGLenum){.dynlib: dllname, 
-    importc: "glWriteMaskEXT".}
-proc glInsertComponentEXT*(res: TGLuint, src: TGLuint, num: TGLuint){.
-    dynlib: dllname, importc: "glInsertComponentEXT".}
-proc glExtractComponentEXT*(res: TGLuint, src: TGLuint, num: TGLuint){.
-    dynlib: dllname, importc: "glExtractComponentEXT".}
-proc glGenSymbolsEXT*(datatype: TGLenum, storagetype: TGLenum, range: TGLenum, 
-                      components: TGLuint): TGLuint{.dynlib: dllname, 
-    importc: "glGenSymbolsEXT".}
-proc glSetInvariantEXT*(id: TGLuint, thetype: TGLenum, address: PGLvoid){.
-    dynlib: dllname, importc: "glSetInvariantEXT".}
-proc glSetLocalConstantEXT*(id: TGLuint, thetype: TGLenum, address: PGLvoid){.
-    dynlib: dllname, importc: "glSetLocalConstantEXT".}
-proc glVariantbvEXT*(id: TGLuint, address: PGLbyte){.dynlib: dllname, 
-    importc: "glVariantbvEXT".}
-proc glVariantsvEXT*(id: TGLuint, address: PGLshort){.dynlib: dllname, 
-    importc: "glVariantsvEXT".}
-proc glVariantivEXT*(id: TGLuint, address: PGLint){.dynlib: dllname, 
-    importc: "glVariantivEXT".}
-proc glVariantfvEXT*(id: TGLuint, address: PGLfloat){.dynlib: dllname, 
-    importc: "glVariantfvEXT".}
-proc glVariantdvEXT*(id: TGLuint, address: PGLdouble){.dynlib: dllname, 
-    importc: "glVariantdvEXT".}
-proc glVariantubvEXT*(id: TGLuint, address: PGLubyte){.dynlib: dllname, 
-    importc: "glVariantubvEXT".}
-proc glVariantusvEXT*(id: TGLuint, address: PGLushort){.dynlib: dllname, 
-    importc: "glVariantusvEXT".}
-proc glVariantuivEXT*(id: TGLuint, address: PGLuint){.dynlib: dllname, 
-    importc: "glVariantuivEXT".}
-proc glVariantPointerEXT*(id: TGLuint, thetype: TGLenum, stride: TGLuint, 
-                          address: PGLvoid){.dynlib: dllname, 
-    importc: "glVariantPointerEXT".}
-proc glEnableVariantClientStateEXT*(id: TGLuint){.dynlib: dllname, 
-    importc: "glEnableVariantClientStateEXT".}
-proc glDisableVariantClientStateEXT*(id: TGLuint){.dynlib: dllname, 
-    importc: "glDisableVariantClientStateEXT".}
-proc glBindLightParameterEXT*(light: TGLenum, value: TGLenum): TGLuint{.
-    dynlib: dllname, importc: "glBindLightParameterEXT".}
-proc glBindMaterialParameterEXT*(face: TGLenum, value: TGLenum): TGLuint{.
-    dynlib: dllname, importc: "glBindMaterialParameterEXT".}
-proc glBindTexGenParameterEXT*(theunit: TGLenum, coord: TGLenum, value: TGLenum): TGLuint{.
-    dynlib: dllname, importc: "glBindTexGenParameterEXT".}
-proc glBindTextureUnitParameterEXT*(theunit: TGLenum, value: TGLenum): TGLuint{.
-    dynlib: dllname, importc: "glBindTextureUnitParameterEXT".}
-proc glBindParameterEXT*(value: TGLenum): TGLuint{.dynlib: dllname, 
-    importc: "glBindParameterEXT".}
-proc glIsVariantEnabledEXT*(id: TGLuint, cap: TGLenum): TGLboolean{.
-    dynlib: dllname, importc: "glIsVariantEnabledEXT".}
-proc glGetVariantBooleanvEXT*(id: TGLuint, value: TGLenum, data: PGLboolean){.
-    dynlib: dllname, importc: "glGetVariantBooleanvEXT".}
-proc glGetVariantIntegervEXT*(id: TGLuint, value: TGLenum, data: PGLint){.
-    dynlib: dllname, importc: "glGetVariantIntegervEXT".}
-proc glGetVariantFloatvEXT*(id: TGLuint, value: TGLenum, data: PGLfloat){.
-    dynlib: dllname, importc: "glGetVariantFloatvEXT".}
-proc glGetVariantPointervEXT*(id: TGLuint, value: TGLenum, data: PGLvoid){.
-    dynlib: dllname, importc: "glGetVariantPointervEXT".}
-proc glGetInvariantBooleanvEXT*(id: TGLuint, value: TGLenum, data: PGLboolean){.
-    dynlib: dllname, importc: "glGetInvariantBooleanvEXT".}
-proc glGetInvariantIntegervEXT*(id: TGLuint, value: TGLenum, data: PGLint){.
-    dynlib: dllname, importc: "glGetInvariantIntegervEXT".}
-proc glGetInvariantFloatvEXT*(id: TGLuint, value: TGLenum, data: PGLfloat){.
-    dynlib: dllname, importc: "glGetInvariantFloatvEXT".}
-proc glGetLocalConstantBooleanvEXT*(id: TGLuint, value: TGLenum, 
-                                    data: PGLboolean){.dynlib: dllname, 
-    importc: "glGetLocalConstantBooleanvEXT".}
-proc glGetLocalConstantIntegervEXT*(id: TGLuint, value: TGLenum, data: PGLint){.
-    dynlib: dllname, importc: "glGetLocalConstantIntegervEXT".}
-proc glGetLocalConstantFloatvEXT*(id: TGLuint, value: TGLenum, data: PGLfloat){.
-    dynlib: dllname, importc: "glGetLocalConstantFloatvEXT".}
-  #***** GL_EXT_vertex_weighting *****//
-const 
-  GL_VERTEX_WEIGHTING_EXT* = 0x00008509
-  GL_MODELVIEW0_EXT* = 0x00001700
-  GL_MODELVIEW1_EXT* = 0x0000850A
-  GL_MODELVIEW0_MATRIX_EXT* = 0x00000BA6
-  GL_MODELVIEW1_MATRIX_EXT* = 0x00008506
-  GL_CURRENT_VERTEX_WEIGHT_EXT* = 0x0000850B
-  GL_VERTEX_WEIGHT_ARRAY_EXT* = 0x0000850C
-  GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT* = 0x0000850D
-  GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT* = 0x0000850E
-  GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT* = 0x0000850F
-  GL_MODELVIEW0_STACK_DEPTH_EXT* = 0x00000BA3
-  GL_MODELVIEW1_STACK_DEPTH_EXT* = 0x00008502
-  GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT* = 0x00008510
-
-proc glVertexWeightfEXT*(weight: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexWeightfEXT".}
-proc glVertexWeightfvEXT*(weight: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexWeightfvEXT".}
-proc glVertexWeightPointerEXT*(size: TGLint, thetype: TGLenum, stride: TGLsizei, 
-                               pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glVertexWeightPointerEXT".}
-  #***** GL_HP_occlusion_test *****//
-const 
-  GL_OCCLUSION_TEST_HP* = 0x00008165
-  GL_OCCLUSION_TEST_RESULT_HP* = 0x00008166
-  #***** GL_NV_blend_square *****//
-  #***** GL_NV_copy_depth_to_color *****//
-
-const 
-  GL_DEPTH_STENCIL_TO_RGBA_NV* = 0x0000886E
-  GL_DEPTH_STENCIL_TO_BGRA_NV* = 0x0000886F
-  #***** GL_NV_depth_clamp *****//
-
-const 
-  GL_DEPTH_CLAMP_NV* = 0x0000864F
-  #***** GL_NV_evaluators *****//
-
-const 
-  GL_EVAL_2D_NV* = 0x000086C0
-  GL_EVAL_TRIANGULAR_2D_NV* = 0x000086C1
-  GL_MAP_TESSELLATION_NV* = 0x000086C2
-  GL_MAP_ATTRIB_U_ORDER_NV* = 0x000086C3
-  GL_MAP_ATTRIB_V_ORDER_NV* = 0x000086C4
-  GL_EVAL_FRACTIONAL_TESSELLATION_NV* = 0x000086C5
-  GL_EVAL_VERTEX_ATTRIB0_NV* = 0x000086C6
-  GL_EVAL_VERTEX_ATTRIB1_NV* = 0x000086C7
-  GL_EVAL_VERTEX_ATTRIB2_NV* = 0x000086C8
-  GL_EVAL_VERTEX_ATTRIB3_NV* = 0x000086C9
-  GL_EVAL_VERTEX_ATTRIB4_NV* = 0x000086CA
-  GL_EVAL_VERTEX_ATTRIB5_NV* = 0x000086CB
-  GL_EVAL_VERTEX_ATTRIB6_NV* = 0x000086CC
-  GL_EVAL_VERTEX_ATTRIB7_NV* = 0x000086CD
-  GL_EVAL_VERTEX_ATTRIB8_NV* = 0x000086CE
-  GL_EVAL_VERTEX_ATTRIB9_NV* = 0x000086CF
-  GL_EVAL_VERTEX_ATTRIB10_NV* = 0x000086D0
-  GL_EVAL_VERTEX_ATTRIB11_NV* = 0x000086D1
-  GL_EVAL_VERTEX_ATTRIB12_NV* = 0x000086D2
-  GL_EVAL_VERTEX_ATTRIB13_NV* = 0x000086D3
-  GL_EVAL_VERTEX_ATTRIB14_NV* = 0x000086D4
-  GL_EVAL_VERTEX_ATTRIB15_NV* = 0x000086D5
-  GL_MAX_MAP_TESSELLATION_NV* = 0x000086D6
-  GL_MAX_RATIONAL_EVAL_ORDER_NV* = 0x000086D7
-
-proc glMapControlPointsNV*(target: TGLenum, index: TGLuint, thetype: TGLenum, 
-                           ustride: TGLsizei, vstride: TGLsizei, uorder: TGLint, 
-                           vorder: TGLint, thepacked: TGLboolean, 
-                           points: PGLvoid){.dynlib: dllname, 
-    importc: "glMapControlPointsNV".}
-proc glMapParameterivNV*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glMapParameterivNV".}
-proc glMapParameterfvNV*(target: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glMapParameterfvNV".}
-proc glGetMapControlPointsNV*(target: TGLenum, index: TGLuint, thetype: TGLenum, 
-                              ustride: TGLsizei, vstride: TGLsizei, 
-                              thepacked: TGLboolean, points: PGLvoid){.
-    dynlib: dllname, importc: "glGetMapControlPointsNV".}
-proc glGetMapParameterivNV*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetMapParameterivNV".}
-proc glGetMapParameterfvNV*(target: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetMapParameterfvNV".}
-proc glGetMapAttribParameterivNV*(target: TGLenum, index: TGLuint, 
-                                  pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetMapAttribParameterivNV".}
-proc glGetMapAttribParameterfvNV*(target: TGLenum, index: TGLuint, 
-                                  pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetMapAttribParameterfvNV".}
-proc glEvalMapsNV*(target: TGLenum, mode: TGLenum){.dynlib: dllname, 
-    importc: "glEvalMapsNV".}
-  #***** GL_NV_fence *****//
-const 
-  GL_ALL_COMPLETED_NV* = 0x000084F2
-  GL_FENCE_STATUS_NV* = 0x000084F3
-  GL_FENCE_CONDITION_NV* = 0x000084F4
-
-proc glGenFencesNV*(n: TGLsizei, fences: PGLuint){.dynlib: dllname, 
-    importc: "glGenFencesNV".}
-proc glDeleteFencesNV*(n: TGLsizei, fences: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteFencesNV".}
-proc glSetFenceNV*(fence: TGLuint, condition: TGLenum){.dynlib: dllname, 
-    importc: "glSetFenceNV".}
-proc glTestFenceNV*(fence: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glTestFenceNV".}
-proc glFinishFenceNV*(fence: TGLuint){.dynlib: dllname, 
-                                       importc: "glFinishFenceNV".}
-proc glIsFenceNV*(fence: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsFenceNV".}
-proc glGetFenceivNV*(fence: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetFenceivNV".}
-  #***** GL_NV_fog_distance *****//
-const 
-  GL_FOG_DISTANCE_MODE_NV* = 0x0000855A
-  GL_EYE_RADIAL_NV* = 0x0000855B
-  GL_EYE_PLANE_ABSOLUTE_NV* = 0x0000855C
-  #***** GL_NV_light_max_exponent *****//
-
-const 
-  GL_MAX_SHININESS_NV* = 0x00008504
-  GL_MAX_SPOT_EXPONENT_NV* = 0x00008505
-  #***** GL_NV_multisample_filter_hint *****//
-
-const 
-  GL_MULTISAMPLE_FILTER_HINT_NV* = 0x00008534
-  #***** GL_NV_occlusion_query *****//
-  # GL_OCCLUSION_TEST_HP  { already defined }
-  # GL_OCCLUSION_TEST_RESULT_HP  { already defined }
-
-const 
-  GL_PIXEL_COUNTER_BITS_NV* = 0x00008864
-  GL_CURRENT_OCCLUSION_QUERY_ID_NV* = 0x00008865
-  GL_PIXEL_COUNT_NV* = 0x00008866
-  GL_PIXEL_COUNT_AVAILABLE_NV* = 0x00008867
-
-proc glGenOcclusionQueriesNV*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glGenOcclusionQueriesNV".}
-proc glDeleteOcclusionQueriesNV*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteOcclusionQueriesNV".}
-proc glIsOcclusionQueryNV*(id: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsOcclusionQueryNV".}
-proc glBeginOcclusionQueryNV*(id: TGLuint){.dynlib: dllname, 
-    importc: "glBeginOcclusionQueryNV".}
-proc glEndOcclusionQueryNV*(){.dynlib: dllname, importc: "glEndOcclusionQueryNV".}
-proc glGetOcclusionQueryivNV*(id: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetOcclusionQueryivNV".}
-proc glGetOcclusionQueryuivNV*(id: TGLuint, pname: TGLenum, params: PGLuint){.
-    dynlib: dllname, importc: "glGetOcclusionQueryuivNV".}
-  #***** GL_NV_packed_depth_stencil *****//
-const 
-  GL_DEPTH_STENCIL_NV* = 0x000084F9
-  GL_UNSIGNED_INT_24_8_NV* = 0x000084FA
-  #***** GL_NV_point_sprite *****//
-
-const 
-  GL_POINT_SPRITE_NV* = 0x00008861
-  GL_COORD_REPLACE_NV* = 0x00008862
-  GL_POINT_SPRITE_R_MODE_NV* = 0x00008863
-
-proc glPointParameteriNV*(pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glPointParameteriNV".}
-proc glPointParameterivNV*(pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glPointParameterivNV".}
-  #***** GL_NV_register_combiners *****//
-const 
-  GL_REGISTER_COMBINERS_NV* = 0x00008522
-  GL_COMBINER0_NV* = 0x00008550
-  GL_COMBINER1_NV* = 0x00008551
-  GL_COMBINER2_NV* = 0x00008552
-  GL_COMBINER3_NV* = 0x00008553
-  GL_COMBINER4_NV* = 0x00008554
-  GL_COMBINER5_NV* = 0x00008555
-  GL_COMBINER6_NV* = 0x00008556
-  GL_COMBINER7_NV* = 0x00008557
-  GL_VARIABLE_A_NV* = 0x00008523
-  GL_VARIABLE_B_NV* = 0x00008524
-  GL_VARIABLE_C_NV* = 0x00008525
-  GL_VARIABLE_D_NV* = 0x00008526
-  GL_VARIABLE_E_NV* = 0x00008527
-  GL_VARIABLE_F_NV* = 0x00008528
-  GL_VARIABLE_G_NV* = 0x00008529
-  GL_CONSTANT_COLOR0_NV* = 0x0000852A
-  GL_CONSTANT_COLOR1_NV* = 0x0000852B
-  GL_PRIMARY_COLOR_NV* = 0x0000852C
-  GL_SECONDARY_COLOR_NV* = 0x0000852D
-  GL_SPARE0_NV* = 0x0000852E
-  GL_SPARE1_NV* = 0x0000852F
-  GL_UNSIGNED_IDENTITY_NV* = 0x00008536
-  GL_UNSIGNED_INVERT_NV* = 0x00008537
-  GL_EXPAND_NORMAL_NV* = 0x00008538
-  GL_EXPAND_NEGATE_NV* = 0x00008539
-  GL_HALF_BIAS_NORMAL_NV* = 0x0000853A
-  GL_HALF_BIAS_NEGATE_NV* = 0x0000853B
-  GL_SIGNED_IDENTITY_NV* = 0x0000853C
-  GL_SIGNED_NEGATE_NV* = 0x0000853D
-  GL_E_TIMES_F_NV* = 0x00008531
-  GL_SPARE0_PLUS_SECONDARY_COLOR_NV* = 0x00008532
-  GL_SCALE_BY_TWO_NV* = 0x0000853E
-  GL_SCALE_BY_FOUR_NV* = 0x0000853F
-  GL_SCALE_BY_ONE_HALF_NV* = 0x00008540
-  GL_BIAS_BY_NEGATIVE_ONE_HALF_NV* = 0x00008541
-  GL_DISCARD_NV* = 0x00008530
-  constGL_COMBINER_INPUT_NV* = 0x00008542
-  GL_COMBINER_MAPPING_NV* = 0x00008543
-  GL_COMBINER_COMPONENT_USAGE_NV* = 0x00008544
-  GL_COMBINER_AB_DOT_PRODUCT_NV* = 0x00008545
-  GL_COMBINER_CD_DOT_PRODUCT_NV* = 0x00008546
-  GL_COMBINER_MUX_SUM_NV* = 0x00008547
-  GL_COMBINER_SCALE_NV* = 0x00008548
-  GL_COMBINER_BIAS_NV* = 0x00008549
-  GL_COMBINER_AB_OUTPUT_NV* = 0x0000854A
-  GL_COMBINER_CD_OUTPUT_NV* = 0x0000854B
-  GL_COMBINER_SUM_OUTPUT_NV* = 0x0000854C
-  GL_NUM_GENERAL_COMBINERS_NV* = 0x0000854E
-  GL_COLOR_SUM_CLAMP_NV* = 0x0000854F
-  GL_MAX_GENERAL_COMBINERS_NV* = 0x0000854D
-
-proc glCombinerParameterfvNV*(pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glCombinerParameterfvNV".}
-proc glCombinerParameterivNV*(pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glCombinerParameterivNV".}
-proc glCombinerParameterfNV*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glCombinerParameterfNV".}
-proc glCombinerParameteriNV*(pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glCombinerParameteriNV".}
-proc glCombinerInputNV*(stage: TGLenum, portion: TGLenum, variable: TGLenum, 
-                        input: TGLenum, mapping: TGLenum, 
-                        componentUsage: TGLenum){.dynlib: dllname, 
-    importc: "glCombinerInputNV".}
-proc glCombinerOutputNV*(stage: TGLenum, portion: TGLenum, abOutput: TGLenum, 
-                         cdOutput: TGLenum, sumOutput: TGLenum, scale: TGLenum, 
-                         bias: TGLenum, abDotProduct: TGLboolean, 
-                         cdDotProduct: TGLboolean, muxSum: TGLboolean){.
-    dynlib: dllname, importc: "glCombinerOutputNV".}
-proc glFinalCombinerInputNV*(variable: TGLenum, input: TGLenum, 
-                             mapping: TGLenum, componentUsage: TGLenum){.
-    dynlib: dllname, importc: "glFinalCombinerInputNV".}
-proc glGetCombinerInputParameterfvNV*(stage: TGLenum, portion: TGLenum, 
-                                      variable: TGLenum, pname: TGLenum, 
-                                      params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetCombinerInputParameterfvNV".}
-proc glGetCombinerInputParameterivNV*(stage: TGLenum, portion: TGLenum, 
-                                      variable: TGLenum, pname: TGLenum, 
-                                      params: PGLint){.dynlib: dllname, 
-    importc: "glGetCombinerInputParameterivNV".}
-proc glGetCombinerOutputParameterfvNV*(stage: TGLenum, portion: TGLenum, 
-                                       pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetCombinerOutputParameterfvNV".}
-proc glGetCombinerOutputParameterivNV*(stage: TGLenum, portion: TGLenum, 
-                                       pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetCombinerOutputParameterivNV".}
-proc glGetFinalCombinerInputParameterfvNV*(variable: TGLenum, pname: TGLenum, 
-    params: PGLfloat){.dynlib: dllname, 
-                       importc: "glGetFinalCombinerInputParameterfvNV".}
-proc glGetFinalCombinerInputParameterivNV*(variable: TGLenum, pname: TGLenum, 
-    params: PGLint){.dynlib: dllname, 
-                     importc: "glGetFinalCombinerInputParameterivNV".}
-  #***** GL_NV_register_combiners2 *****//
-const 
-  GL_PER_STAGE_CONSTANTS_NV* = 0x00008535
-
-proc glCombinerStageParameterfvNV*(stage: TGLenum, pname: TGLenum, 
-                                   params: PGLfloat){.dynlib: dllname, 
-    importc: "glCombinerStageParameterfvNV".}
-proc glGetCombinerStageParameterfvNV*(stage: TGLenum, pname: TGLenum, 
-                                      params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetCombinerStageParameterfvNV".}
-  #***** GL_NV_texgen_emboss *****//
-const 
-  GL_EMBOSS_MAP_NV* = 0x0000855F
-  GL_EMBOSS_LIGHT_NV* = 0x0000855D
-  GL_EMBOSS_CONSTANT_NV* = 0x0000855E
-  #***** GL_NV_texgen_reflection *****//
-
-const 
-  GL_NORMAL_MAP_NV* = 0x00008511
-  GL_REFLECTION_MAP_NV* = 0x00008512
-  #***** GL_NV_texture_compression_vtc *****//
-  # GL_COMPRESSED_RGB_S3TC_DXT1_EXT  { already defined }
-  # GL_COMPRESSED_RGBA_S3TC_DXT1_EXT  { already defined }
-  # GL_COMPRESSED_RGBA_S3TC_DXT3_EXT  { already defined }
-  # GL_COMPRESSED_RGBA_S3TC_DXT5_EXT  { already defined }
-  #***** GL_NV_texture_env_combine4 *****//
-
-const 
-  GL_COMBINE4_NV* = 0x00008503
-  GL_SOURCE3_RGB_NV* = 0x00008583
-  GL_SOURCE3_ALPHA_NV* = 0x0000858B
-  GL_OPERAND3_RGB_NV* = 0x00008593
-  GL_OPERAND3_ALPHA_NV* = 0x0000859B
-  #***** GL_NV_texture_rectangle *****//
-
-const 
-  GL_TEXTURE_RECTANGLE_NV* = 0x000084F5
-  GL_TEXTURE_BINDING_RECTANGLE_NV* = 0x000084F6
-  GL_PROXY_TEXTURE_RECTANGLE_NV* = 0x000084F7
-  GL_MAX_RECTANGLE_TEXTURE_SIZE_NV* = 0x000084F8
-  #***** GL_NV_texture_shader *****//
-
-const 
-  GL_TEXTURE_SHADER_NV* = 0x000086DE
-  GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV* = 0x000086D9
-  GL_SHADER_OPERATION_NV* = 0x000086DF
-  GL_CULL_MODES_NV* = 0x000086E0
-  GL_OFFSET_TEXTURE_MATRIX_NV* = 0x000086E1
-  GL_OFFSET_TEXTURE_SCALE_NV* = 0x000086E2
-  GL_OFFSET_TEXTURE_BIAS_NV* = 0x000086E3
-  GL_PREVIOUS_TEXTURE_INPUT_NV* = 0x000086E4
-  GL_CONST_EYE_NV* = 0x000086E5
-  GL_SHADER_CONSISTENT_NV* = 0x000086DD
-  GL_PASS_THROUGH_NV* = 0x000086E6
-  GL_CULL_FRAGMENT_NV* = 0x000086E7
-  GL_OFFSET_TEXTURE_2D_NV* = 0x000086E8
-  GL_OFFSET_TEXTURE_RECTANGLE_NV* = 0x0000864C
-  GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV* = 0x0000864D
-  GL_DEPENDENT_AR_TEXTURE_2D_NV* = 0x000086E9
-  GL_DEPENDENT_GB_TEXTURE_2D_NV* = 0x000086EA
-  GL_DOT_PRODUCT_NV* = 0x000086EC
-  GL_DOT_PRODUCT_DEPTH_REPLACE_NV* = 0x000086ED
-  GL_DOT_PRODUCT_TEXTURE_2D_NV* = 0x000086EE
-  GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV* = 0x0000864E
-  GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV* = 0x000086F0
-  GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV* = 0x000086F1
-  GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV* = 0x000086F2
-  GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV* = 0x000086F3
-  GL_HILO_NV* = 0x000086F4
-  GL_DSDT_NV* = 0x000086F5
-  GL_DSDT_MAG_NV* = 0x000086F6
-  GL_DSDT_MAG_VIB_NV* = 0x000086F7
-  GL_UNSIGNED_INT_S8_S8_8_8_NV* = 0x000086DA
-  GL_UNSIGNED_INT_8_8_S8_S8_REV_NV* = 0x000086DB
-  GL_SIGNED_RGBA_NV* = 0x000086FB
-  GL_SIGNED_RGBA8_NV* = 0x000086FC
-  GL_SIGNED_RGB_NV* = 0x000086FE
-  GL_SIGNED_RGB8_NV* = 0x000086FF
-  GL_SIGNED_LUMINANCE_NV* = 0x00008701
-  GL_SIGNED_LUMINANCE8_NV* = 0x00008702
-  GL_SIGNED_LUMINANCE_ALPHA_NV* = 0x00008703
-  GL_SIGNED_LUMINANCE8_ALPHA8_NV* = 0x00008704
-  GL_SIGNED_ALPHA_NV* = 0x00008705
-  GL_SIGNED_ALPHA8_NV* = 0x00008706
-  GL_SIGNED_INTENSITY_NV* = 0x00008707
-  GL_SIGNED_INTENSITY8_NV* = 0x00008708
-  GL_SIGNED_RGB_UNSIGNED_ALPHA_NV* = 0x0000870C
-  GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV* = 0x0000870D
-  GL_HILO16_NV* = 0x000086F8
-  GL_SIGNED_HILO_NV* = 0x000086F9
-  GL_SIGNED_HILO16_NV* = 0x000086FA
-  GL_DSDT8_NV* = 0x00008709
-  GL_DSDT8_MAG8_NV* = 0x0000870A
-  GL_DSDT_MAG_INTENSITY_NV* = 0x000086DC
-  GL_DSDT8_MAG8_INTENSITY8_NV* = 0x0000870B
-  GL_HI_SCALE_NV* = 0x0000870E
-  GL_LO_SCALE_NV* = 0x0000870F
-  GL_DS_SCALE_NV* = 0x00008710
-  GL_DT_SCALE_NV* = 0x00008711
-  GL_MAGNITUDE_SCALE_NV* = 0x00008712
-  GL_VIBRANCE_SCALE_NV* = 0x00008713
-  GL_HI_BIAS_NV* = 0x00008714
-  GL_LO_BIAS_NV* = 0x00008715
-  GL_DS_BIAS_NV* = 0x00008716
-  GL_DT_BIAS_NV* = 0x00008717
-  GL_MAGNITUDE_BIAS_NV* = 0x00008718
-  GL_VIBRANCE_BIAS_NV* = 0x00008719
-  GL_TEXTURE_BORDER_VALUES_NV* = 0x0000871A
-  GL_TEXTURE_HI_SIZE_NV* = 0x0000871B
-  GL_TEXTURE_LO_SIZE_NV* = 0x0000871C
-  GL_TEXTURE_DS_SIZE_NV* = 0x0000871D
-  GL_TEXTURE_DT_SIZE_NV* = 0x0000871E
-  GL_TEXTURE_MAG_SIZE_NV* = 0x0000871F
-  #***** GL_NV_texture_shader2 *****//
-
-const 
-  GL_DOT_PRODUCT_TEXTURE_3D_NV* = 0x000086EF # GL_HILO_NV  { already defined }
-                                             # GL_DSDT_NV  { already defined }
-                                             # GL_DSDT_MAG_NV  { already defined }
-                                             # GL_DSDT_MAG_VIB_NV  { already defined }
-                                             # GL_UNSIGNED_INT_S8_S8_8_8_NV  { already defined }
-                                             # GL_UNSIGNED_INT_8_8_S8_S8_REV_NV  { already defined }
-                                             # GL_SIGNED_RGBA_NV  { already defined }
-                                             # GL_SIGNED_RGBA8_NV  { already defined }
-                                             # GL_SIGNED_RGB_NV  { already defined }
-                                             # GL_SIGNED_RGB8_NV  { already defined }
-                                             # GL_SIGNED_LUMINANCE_NV  { already defined }
-                                             # GL_SIGNED_LUMINANCE8_NV  { already defined }
-                                             # GL_SIGNED_LUMINANCE_ALPHA_NV  { already defined }
-                                             # GL_SIGNED_LUMINANCE8_ALPHA8_NV  { already defined }
-                                             # GL_SIGNED_ALPHA_NV  { already defined }
-                                             # GL_SIGNED_ALPHA8_NV  { already defined }
-                                             # GL_SIGNED_INTENSITY_NV  { already defined }
-                                             # GL_SIGNED_INTENSITY8_NV  { already defined }
-                                             # GL_SIGNED_RGB_UNSIGNED_ALPHA_NV  { already defined }
-                                             # GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV  { already defined }
-                                             # GL_HILO16_NV  { already defined }
-                                             # GL_SIGNED_HILO_NV  { already defined }
-                                             # GL_SIGNED_HILO16_NV  { already defined }
-                                             # GL_DSDT8_NV  { already defined }
-                                             # GL_DSDT8_MAG8_NV  { already defined }
-                                             # GL_DSDT_MAG_INTENSITY_NV  { already defined }
-                                             # GL_DSDT8_MAG8_INTENSITY8_NV  { already defined }
-  #***** GL_NV_texture_shader3 *****//
-
-const 
-  GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV* = 0x00008850
-  GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV* = 0x00008851
-  GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV* = 0x00008852
-  GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV* = 0x00008853
-  GL_OFFSET_HILO_TEXTURE_2D_NV* = 0x00008854
-  GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV* = 0x00008855
-  GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV* = 0x00008856
-  GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV* = 0x00008857
-  GL_DEPENDENT_HILO_TEXTURE_2D_NV* = 0x00008858
-  GL_DEPENDENT_RGB_TEXTURE_3D_NV* = 0x00008859
-  GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV* = 0x0000885A
-  GL_DOT_PRODUCT_PASS_THROUGH_NV* = 0x0000885B
-  GL_DOT_PRODUCT_TEXTURE_1D_NV* = 0x0000885C
-  GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV* = 0x0000885D
-  GL_HILO8_NV* = 0x0000885E
-  GL_SIGNED_HILO8_NV* = 0x0000885F
-  GL_FORCE_BLUE_TO_ONE_NV* = 0x00008860
-  #***** GL_NV_vertex_array_range *****//
-
-const 
-  constGL_VERTEX_ARRAY_RANGE_NV* = 0x0000851D
-  GL_VERTEX_ARRAY_RANGE_LENGTH_NV* = 0x0000851E
-  GL_VERTEX_ARRAY_RANGE_VALID_NV* = 0x0000851F
-  GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV* = 0x00008520
-  GL_VERTEX_ARRAY_RANGE_POINTER_NV* = 0x00008521
-
-proc glVertexArrayRangeNV*(len: TGLsizei, pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glVertexArrayRangeNV".}
-proc glFlushVertexArrayRangeNV*(){.dynlib: dllname, 
-                                   importc: "glFlushVertexArrayRangeNV".}
-  #***** GL_NV_vertex_array_range2 *****//
-const 
-  GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV* = 0x00008533
-  #***** GL_NV_vertex_program *****//
-
-const 
-  GL_VERTEX_PROGRAM_NV* = 0x00008620
-  GL_VERTEX_PROGRAM_POINT_SIZE_NV* = 0x00008642
-  GL_VERTEX_PROGRAM_TWO_SIDE_NV* = 0x00008643
-  GL_VERTEX_STATE_PROGRAM_NV* = 0x00008621
-  GL_ATTRIB_ARRAY_SIZE_NV* = 0x00008623
-  GL_ATTRIB_ARRAY_STRIDE_NV* = 0x00008624
-  GL_ATTRIB_ARRAY_TYPE_NV* = 0x00008625
-  GL_CURRENT_ATTRIB_NV* = 0x00008626
-  GL_PROGRAM_PARAMETER_NV* = 0x00008644
-  GL_ATTRIB_ARRAY_POINTER_NV* = 0x00008645
-  GL_PROGRAM_TARGET_NV* = 0x00008646
-  GL_PROGRAM_LENGTH_NV* = 0x00008627
-  GL_PROGRAM_RESIDENT_NV* = 0x00008647
-  GL_PROGRAM_STRING_NV* = 0x00008628
-  constGL_TRACK_MATRIX_NV* = 0x00008648
-  GL_TRACK_MATRIX_TRANSFORM_NV* = 0x00008649
-  GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV* = 0x0000862E
-  GL_MAX_TRACK_MATRICES_NV* = 0x0000862F
-  GL_CURRENT_MATRIX_STACK_DEPTH_NV* = 0x00008640
-  GL_CURRENT_MATRIX_NV* = 0x00008641
-  GL_VERTEX_PROGRAM_BINDING_NV* = 0x0000864A
-  GL_PROGRAM_ERROR_POSITION_NV* = 0x0000864B
-  GL_MODELVIEW_PROJECTION_NV* = 0x00008629
-  GL_MATRIX0_NV* = 0x00008630
-  GL_MATRIX1_NV* = 0x00008631
-  GL_MATRIX2_NV* = 0x00008632
-  GL_MATRIX3_NV* = 0x00008633
-  GL_MATRIX4_NV* = 0x00008634
-  GL_MATRIX5_NV* = 0x00008635
-  GL_MATRIX6_NV* = 0x00008636
-  GL_MATRIX7_NV* = 0x00008637
-  GL_IDENTITY_NV* = 0x0000862A
-  GL_INVERSE_NV* = 0x0000862B
-  GL_TRANSPOSE_NV* = 0x0000862C
-  GL_INVERSE_TRANSPOSE_NV* = 0x0000862D
-  GL_VERTEX_ATTRIB_ARRAY0_NV* = 0x00008650
-  GL_VERTEX_ATTRIB_ARRAY1_NV* = 0x00008651
-  GL_VERTEX_ATTRIB_ARRAY2_NV* = 0x00008652
-  GL_VERTEX_ATTRIB_ARRAY3_NV* = 0x00008653
-  GL_VERTEX_ATTRIB_ARRAY4_NV* = 0x00008654
-  GL_VERTEX_ATTRIB_ARRAY5_NV* = 0x00008655
-  GL_VERTEX_ATTRIB_ARRAY6_NV* = 0x00008656
-  GL_VERTEX_ATTRIB_ARRAY7_NV* = 0x00008657
-  GL_VERTEX_ATTRIB_ARRAY8_NV* = 0x00008658
-  GL_VERTEX_ATTRIB_ARRAY9_NV* = 0x00008659
-  GL_VERTEX_ATTRIB_ARRAY10_NV* = 0x0000865A
-  GL_VERTEX_ATTRIB_ARRAY11_NV* = 0x0000865B
-  GL_VERTEX_ATTRIB_ARRAY12_NV* = 0x0000865C
-  GL_VERTEX_ATTRIB_ARRAY13_NV* = 0x0000865D
-  GL_VERTEX_ATTRIB_ARRAY14_NV* = 0x0000865E
-  GL_VERTEX_ATTRIB_ARRAY15_NV* = 0x0000865F
-  GL_MAP1_VERTEX_ATTRIB0_4_NV* = 0x00008660
-  GL_MAP1_VERTEX_ATTRIB1_4_NV* = 0x00008661
-  GL_MAP1_VERTEX_ATTRIB2_4_NV* = 0x00008662
-  GL_MAP1_VERTEX_ATTRIB3_4_NV* = 0x00008663
-  GL_MAP1_VERTEX_ATTRIB4_4_NV* = 0x00008664
-  GL_MAP1_VERTEX_ATTRIB5_4_NV* = 0x00008665
-  GL_MAP1_VERTEX_ATTRIB6_4_NV* = 0x00008666
-  GL_MAP1_VERTEX_ATTRIB7_4_NV* = 0x00008667
-  GL_MAP1_VERTEX_ATTRIB8_4_NV* = 0x00008668
-  GL_MAP1_VERTEX_ATTRIB9_4_NV* = 0x00008669
-  GL_MAP1_VERTEX_ATTRIB10_4_NV* = 0x0000866A
-  GL_MAP1_VERTEX_ATTRIB11_4_NV* = 0x0000866B
-  GL_MAP1_VERTEX_ATTRIB12_4_NV* = 0x0000866C
-  GL_MAP1_VERTEX_ATTRIB13_4_NV* = 0x0000866D
-  GL_MAP1_VERTEX_ATTRIB14_4_NV* = 0x0000866E
-  GL_MAP1_VERTEX_ATTRIB15_4_NV* = 0x0000866F
-  GL_MAP2_VERTEX_ATTRIB0_4_NV* = 0x00008670
-  GL_MAP2_VERTEX_ATTRIB1_4_NV* = 0x00008671
-  GL_MAP2_VERTEX_ATTRIB2_4_NV* = 0x00008672
-  GL_MAP2_VERTEX_ATTRIB3_4_NV* = 0x00008673
-  GL_MAP2_VERTEX_ATTRIB4_4_NV* = 0x00008674
-  GL_MAP2_VERTEX_ATTRIB5_4_NV* = 0x00008675
-  GL_MAP2_VERTEX_ATTRIB6_4_NV* = 0x00008676
-  GL_MAP2_VERTEX_ATTRIB7_4_NV* = 0x00008677
-  GL_MAP2_VERTEX_ATTRIB8_4_NV* = 0x00008678
-  GL_MAP2_VERTEX_ATTRIB9_4_NV* = 0x00008679
-  GL_MAP2_VERTEX_ATTRIB10_4_NV* = 0x0000867A
-  GL_MAP2_VERTEX_ATTRIB11_4_NV* = 0x0000867B
-  GL_MAP2_VERTEX_ATTRIB12_4_NV* = 0x0000867C
-  GL_MAP2_VERTEX_ATTRIB13_4_NV* = 0x0000867D
-  GL_MAP2_VERTEX_ATTRIB14_4_NV* = 0x0000867E
-  GL_MAP2_VERTEX_ATTRIB15_4_NV* = 0x0000867F
-
-proc glBindProgramNV*(target: TGLenum, id: TGLuint){.dynlib: dllname, 
-    importc: "glBindProgramNV".}
-proc glDeleteProgramsNV*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteProgramsNV".}
-proc glExecuteProgramNV*(target: TGLenum, id: TGLuint, params: PGLfloat){.
-    dynlib: dllname, importc: "glExecuteProgramNV".}
-proc glGenProgramsNV*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glGenProgramsNV".}
-proc glAreProgramsResidentNV*(n: TGLsizei, ids: PGLuint, residences: PGLboolean): TGLboolean{.
-    dynlib: dllname, importc: "glAreProgramsResidentNV".}
-proc glRequestResidentProgramsNV*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glRequestResidentProgramsNV".}
-proc glGetProgramParameterfvNV*(target: TGLenum, index: TGLuint, pname: TGLenum, 
-                                params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetProgramParameterfvNV".}
-proc glGetProgramParameterdvNV*(target: TGLenum, index: TGLuint, pname: TGLenum, 
-                                params: PGLdouble){.dynlib: dllname, 
-    importc: "glGetProgramParameterdvNV".}
-proc glGetProgramivNV*(id: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetProgramivNV".}
-proc glGetProgramStringNV*(id: TGLuint, pname: TGLenum, theProgram: PGLubyte){.
-    dynlib: dllname, importc: "glGetProgramStringNV".}
-proc glGetTrackMatrixivNV*(target: TGLenum, address: TGLuint, pname: TGLenum, 
-                           params: PGLint){.dynlib: dllname, 
-    importc: "glGetTrackMatrixivNV".}
-proc glGetVertexAttribdvNV*(index: TGLuint, pname: TGLenum, params: PGLdouble){.
-    dynlib: dllname, importc: "glGetVertexAttribdvNV".}
-proc glGetVertexAttribfvNV*(index: TGLuint, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetVertexAttribfvNV".}
-proc glGetVertexAttribivNV*(index: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetVertexAttribivNV".}
-proc glGetVertexAttribPointervNV*(index: TGLuint, pname: TGLenum, 
-                                  pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glGetVertexAttribPointervNV".}
-proc glIsProgramNV*(id: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsProgramNV".}
-proc glLoadProgramNV*(target: TGLenum, id: TGLuint, length: TGLsizei, 
-                      theProgram: PGLubyte){.dynlib: dllname, 
-    importc: "glLoadProgramNV".}
-proc glProgramParameter4fNV*(target: TGLenum, index: TGLuint, x: TGLfloat, 
-                             y: TGLfloat, z: TGLfloat, w: TGLfloat){.
-    dynlib: dllname, importc: "glProgramParameter4fNV".}
-proc glProgramParameter4fvNV*(target: TGLenum, index: TGLuint, params: PGLfloat){.
-    dynlib: dllname, importc: "glProgramParameter4fvNV".}
-proc glProgramParameters4dvNV*(target: TGLenum, index: TGLuint, num: TGLuint, 
-                               params: PGLdouble){.dynlib: dllname, 
-    importc: "glProgramParameters4dvNV".}
-proc glProgramParameters4fvNV*(target: TGLenum, index: TGLuint, num: TGLuint, 
-                               params: PGLfloat){.dynlib: dllname, 
-    importc: "glProgramParameters4fvNV".}
-proc glTrackMatrixNV*(target: TGLenum, address: TGLuint, matrix: TGLenum, 
-                      transform: TGLenum){.dynlib: dllname, 
-    importc: "glTrackMatrixNV".}
-proc glVertexAttribPointerNV*(index: TGLuint, size: TGLint, thetype: TGLenum, 
-                              stride: TGLsizei, pointer: PGLvoid){.
-    dynlib: dllname, importc: "glVertexAttribPointerNV".}
-proc glVertexAttrib1sNV*(index: TGLuint, x: TGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib1sNV".}
-proc glVertexAttrib1fNV*(index: TGLuint, x: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib1fNV".}
-proc glVertexAttrib1dNV*(index: TGLuint, x: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib1dNV".}
-proc glVertexAttrib2sNV*(index: TGLuint, x: TGLshort, y: TGLshort){.
-    dynlib: dllname, importc: "glVertexAttrib2sNV".}
-proc glVertexAttrib2fNV*(index: TGLuint, x: TGLfloat, y: TGLfloat){.
-    dynlib: dllname, importc: "glVertexAttrib2fNV".}
-proc glVertexAttrib2dNV*(index: TGLuint, x: TGLdouble, y: TGLdouble){.
-    dynlib: dllname, importc: "glVertexAttrib2dNV".}
-proc glVertexAttrib3sNV*(index: TGLuint, x: TGLshort, y: TGLshort, z: TGLshort){.
-    dynlib: dllname, importc: "glVertexAttrib3sNV".}
-proc glVertexAttrib3fNV*(index: TGLuint, x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glVertexAttrib3fNV".}
-proc glVertexAttrib3dNV*(index: TGLuint, x: TGLdouble, y: TGLdouble, 
-                         z: TGLdouble){.dynlib: dllname, 
-                                        importc: "glVertexAttrib3dNV".}
-proc glVertexAttrib4sNV*(index: TGLuint, x: TGLshort, y: TGLshort, z: TGLshort, 
-                         w: TGLshort){.dynlib: dllname, 
-                                       importc: "glVertexAttrib4sNV".}
-proc glVertexAttrib4fNV*(index: TGLuint, x: TGLfloat, y: TGLfloat, z: TGLfloat, 
-                         w: TGLfloat){.dynlib: dllname, 
-                                       importc: "glVertexAttrib4fNV".}
-proc glVertexAttrib4dNV*(index: TGLuint, x: TGLdouble, y: TGLdouble, 
-                         z: TGLdouble, w: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib4dNV".}
-proc glVertexAttrib4ubNV*(index: TGLuint, x: TGLubyte, y: TGLubyte, z: TGLubyte, 
-                          w: TGLubyte){.dynlib: dllname, 
-                                        importc: "glVertexAttrib4ubNV".}
-proc glVertexAttrib1svNV*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib1svNV".}
-proc glVertexAttrib1fvNV*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib1fvNV".}
-proc glVertexAttrib1dvNV*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib1dvNV".}
-proc glVertexAttrib2svNV*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib2svNV".}
-proc glVertexAttrib2fvNV*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib2fvNV".}
-proc glVertexAttrib2dvNV*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib2dvNV".}
-proc glVertexAttrib3svNV*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib3svNV".}
-proc glVertexAttrib3fvNV*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib3fvNV".}
-proc glVertexAttrib3dvNV*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib3dvNV".}
-proc glVertexAttrib4svNV*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib4svNV".}
-proc glVertexAttrib4fvNV*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib4fvNV".}
-proc glVertexAttrib4dvNV*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib4dvNV".}
-proc glVertexAttrib4ubvNV*(index: TGLuint, v: PGLubyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4ubvNV".}
-proc glVertexAttribs1svNV*(index: TGLuint, n: TGLsizei, v: PGLshort){.
-    dynlib: dllname, importc: "glVertexAttribs1svNV".}
-proc glVertexAttribs1fvNV*(index: TGLuint, n: TGLsizei, v: PGLfloat){.
-    dynlib: dllname, importc: "glVertexAttribs1fvNV".}
-proc glVertexAttribs1dvNV*(index: TGLuint, n: TGLsizei, v: PGLdouble){.
-    dynlib: dllname, importc: "glVertexAttribs1dvNV".}
-proc glVertexAttribs2svNV*(index: TGLuint, n: TGLsizei, v: PGLshort){.
-    dynlib: dllname, importc: "glVertexAttribs2svNV".}
-proc glVertexAttribs2fvNV*(index: TGLuint, n: TGLsizei, v: PGLfloat){.
-    dynlib: dllname, importc: "glVertexAttribs2fvNV".}
-proc glVertexAttribs2dvNV*(index: TGLuint, n: TGLsizei, v: PGLdouble){.
-    dynlib: dllname, importc: "glVertexAttribs2dvNV".}
-proc glVertexAttribs3svNV*(index: TGLuint, n: TGLsizei, v: PGLshort){.
-    dynlib: dllname, importc: "glVertexAttribs3svNV".}
-proc glVertexAttribs3fvNV*(index: TGLuint, n: TGLsizei, v: PGLfloat){.
-    dynlib: dllname, importc: "glVertexAttribs3fvNV".}
-proc glVertexAttribs3dvNV*(index: TGLuint, n: TGLsizei, v: PGLdouble){.
-    dynlib: dllname, importc: "glVertexAttribs3dvNV".}
-proc glVertexAttribs4svNV*(index: TGLuint, n: TGLsizei, v: PGLshort){.
-    dynlib: dllname, importc: "glVertexAttribs4svNV".}
-proc glVertexAttribs4fvNV*(index: TGLuint, n: TGLsizei, v: PGLfloat){.
-    dynlib: dllname, importc: "glVertexAttribs4fvNV".}
-proc glVertexAttribs4dvNV*(index: TGLuint, n: TGLsizei, v: PGLdouble){.
-    dynlib: dllname, importc: "glVertexAttribs4dvNV".}
-proc glVertexAttribs4ubvNV*(index: TGLuint, n: TGLsizei, v: PGLubyte){.
-    dynlib: dllname, importc: "glVertexAttribs4ubvNV".}
-  #***** GL_NV_vertex_program1_1 *****//
-  #***** GL_ATI_element_array *****//
-const 
-  GL_ELEMENT_ARRAY_ATI* = 0x00008768
-  GL_ELEMENT_ARRAY_TYPE_ATI* = 0x00008769
-  GL_ELEMENT_ARRAY_POINTER_ATI* = 0x0000876A
-
-proc glElementPointerATI*(thetype: TGLenum, pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glElementPointerATI".}
-proc glDrawElementArrayATI*(mode: TGLenum, count: TGLsizei){.dynlib: dllname, 
-    importc: "glDrawElementArrayATI".}
-proc glDrawRangeElementArrayATI*(mode: TGLenum, start: TGLuint, theend: TGLuint, 
-                                 count: TGLsizei){.dynlib: dllname, 
-    importc: "glDrawRangeElementArrayATI".}
-  #***** GL_ATI_envmap_bumpmap *****//
-const 
-  GL_BUMP_ROT_MATRIX_ATI* = 0x00008775
-  GL_BUMP_ROT_MATRIX_SIZE_ATI* = 0x00008776
-  GL_BUMP_NUM_TEX_UNITS_ATI* = 0x00008777
-  GL_BUMP_TEX_UNITS_ATI* = 0x00008778
-  GL_DUDV_ATI* = 0x00008779
-  GL_DU8DV8_ATI* = 0x0000877A
-  GL_BUMP_ENVMAP_ATI* = 0x0000877B
-  GL_BUMP_TARGET_ATI* = 0x0000877C
-
-proc glTexBumpParameterivATI*(pname: TGLenum, param: PGLint){.dynlib: dllname, 
-    importc: "glTexBumpParameterivATI".}
-proc glTexBumpParameterfvATI*(pname: TGLenum, param: PGLfloat){.dynlib: dllname, 
-    importc: "glTexBumpParameterfvATI".}
-proc glGetTexBumpParameterivATI*(pname: TGLenum, param: PGLint){.
-    dynlib: dllname, importc: "glGetTexBumpParameterivATI".}
-proc glGetTexBumpParameterfvATI*(pname: TGLenum, param: PGLfloat){.
-    dynlib: dllname, importc: "glGetTexBumpParameterfvATI".}
-  #***** GL_ATI_fragment_shader *****//
-const 
-  GL_FRAGMENT_SHADER_ATI* = 0x00008920
-  GL_REG_0_ATI* = 0x00008921
-  GL_REG_1_ATI* = 0x00008922
-  GL_REG_2_ATI* = 0x00008923
-  GL_REG_3_ATI* = 0x00008924
-  GL_REG_4_ATI* = 0x00008925
-  GL_REG_5_ATI* = 0x00008926
-  GL_CON_0_ATI* = 0x00008941
-  GL_CON_1_ATI* = 0x00008942
-  GL_CON_2_ATI* = 0x00008943
-  GL_CON_3_ATI* = 0x00008944
-  GL_CON_4_ATI* = 0x00008945
-  GL_CON_5_ATI* = 0x00008946
-  GL_CON_6_ATI* = 0x00008947
-  GL_CON_7_ATI* = 0x00008948
-  GL_MOV_ATI* = 0x00008961
-  GL_ADD_ATI* = 0x00008963
-  GL_MUL_ATI* = 0x00008964
-  GL_SUB_ATI* = 0x00008965
-  GL_DOT3_ATI* = 0x00008966
-  GL_DOT4_ATI* = 0x00008967
-  GL_MAD_ATI* = 0x00008968
-  GL_LERP_ATI* = 0x00008969
-  GL_CND_ATI* = 0x0000896A
-  GL_CND0_ATI* = 0x0000896B
-  GL_DOT2_ADD_ATI* = 0x0000896C
-  GL_SECONDARY_INTERPOLATOR_ATI* = 0x0000896D
-  GL_SWIZZLE_STR_ATI* = 0x00008976
-  GL_SWIZZLE_STQ_ATI* = 0x00008977
-  GL_SWIZZLE_STR_DR_ATI* = 0x00008978
-  GL_SWIZZLE_STQ_DQ_ATI* = 0x00008979
-  GL_RED_BIT_ATI* = 0x00000001
-  GL_GREEN_BIT_ATI* = 0x00000002
-  GL_BLUE_BIT_ATI* = 0x00000004
-  GL_2X_BIT_ATI* = 0x00000001
-  GL_4X_BIT_ATI* = 0x00000002
-  GL_8X_BIT_ATI* = 0x00000004
-  GL_HALF_BIT_ATI* = 0x00000008
-  GL_QUARTER_BIT_ATI* = 0x00000010
-  GL_EIGHTH_BIT_ATI* = 0x00000020
-  GL_SATURATE_BIT_ATI* = 0x00000040 # GL_2X_BIT_ATI  { already defined }
-  GL_COMP_BIT_ATI* = 0x00000002
-  GL_NEGATE_BIT_ATI* = 0x00000004
-  GL_BIAS_BIT_ATI* = 0x00000008
-
-proc glGenFragmentShadersATI*(range: TGLuint): TGLuint{.dynlib: dllname, 
-    importc: "glGenFragmentShadersATI".}
-proc glBindFragmentShaderATI*(id: TGLuint){.dynlib: dllname, 
-    importc: "glBindFragmentShaderATI".}
-proc glDeleteFragmentShaderATI*(id: TGLuint){.dynlib: dllname, 
-    importc: "glDeleteFragmentShaderATI".}
-proc glBeginFragmentShaderATI*(){.dynlib: dllname, 
-                                  importc: "glBeginFragmentShaderATI".}
-proc glEndFragmentShaderATI*(){.dynlib: dllname, 
-                                importc: "glEndFragmentShaderATI".}
-proc glPassTexCoordATI*(dst: TGLuint, coord: TGLuint, swizzle: TGLenum){.
-    dynlib: dllname, importc: "glPassTexCoordATI".}
-proc glSampleMapATI*(dst: TGLuint, interp: TGLuint, swizzle: TGLenum){.
-    dynlib: dllname, importc: "glSampleMapATI".}
-proc glColorFragmentOp1ATI*(op: TGLenum, dst: TGLuint, dstMask: TGLuint, 
-                            dstMod: TGLuint, arg1: TGLuint, arg1Rep: TGLuint, 
-                            arg1Mod: TGLuint){.dynlib: dllname, 
-    importc: "glColorFragmentOp1ATI".}
-proc glColorFragmentOp2ATI*(op: TGLenum, dst: TGLuint, dstMask: TGLuint, 
-                            dstMod: TGLuint, arg1: TGLuint, arg1Rep: TGLuint, 
-                            arg1Mod: TGLuint, arg2: TGLuint, arg2Rep: TGLuint, 
-                            arg2Mod: TGLuint){.dynlib: dllname, 
-    importc: "glColorFragmentOp2ATI".}
-proc glColorFragmentOp3ATI*(op: TGLenum, dst: TGLuint, dstMask: TGLuint, 
-                            dstMod: TGLuint, arg1: TGLuint, arg1Rep: TGLuint, 
-                            arg1Mod: TGLuint, arg2: TGLuint, arg2Rep: TGLuint, 
-                            arg2Mod: TGLuint, arg3: TGLuint, arg3Rep: TGLuint, 
-                            arg3Mod: TGLuint){.dynlib: dllname, 
-    importc: "glColorFragmentOp3ATI".}
-proc glAlphaFragmentOp1ATI*(op: TGLenum, dst: TGLuint, dstMod: TGLuint, 
-                            arg1: TGLuint, arg1Rep: TGLuint, arg1Mod: TGLuint){.
-    dynlib: dllname, importc: "glAlphaFragmentOp1ATI".}
-proc glAlphaFragmentOp2ATI*(op: TGLenum, dst: TGLuint, dstMod: TGLuint, 
-                            arg1: TGLuint, arg1Rep: TGLuint, arg1Mod: TGLuint, 
-                            arg2: TGLuint, arg2Rep: TGLuint, arg2Mod: TGLuint){.
-    dynlib: dllname, importc: "glAlphaFragmentOp2ATI".}
-proc glAlphaFragmentOp3ATI*(op: TGLenum, dst: TGLuint, dstMod: TGLuint, 
-                            arg1: TGLuint, arg1Rep: TGLuint, arg1Mod: TGLuint, 
-                            arg2: TGLuint, arg2Rep: TGLuint, arg2Mod: TGLuint, 
-                            arg3: TGLuint, arg3Rep: TGLuint, arg3Mod: TGLuint){.
-    dynlib: dllname, importc: "glAlphaFragmentOp3ATI".}
-proc glSetFragmentShaderConstantATI*(dst: TGLuint, value: PGLfloat){.
-    dynlib: dllname, importc: "glSetFragmentShaderConstantATI".}
-  #***** GL_ATI_pn_triangles *****//
-const 
-  GL_PN_TRIANGLES_ATI* = 0x000087F0
-  GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI* = 0x000087F1
-  GL_PN_TRIANGLES_POINT_MODE_ATI* = 0x000087F2
-  GL_PN_TRIANGLES_NORMAL_MODE_ATI* = 0x000087F3
-  GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI* = 0x000087F4
-  GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI* = 0x000087F5
-  GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI* = 0x000087F6
-  GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI* = 0x000087F7
-  GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI* = 0x000087F8
-
-proc glPNTrianglesiATI*(pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glPNTrianglesiATI".}
-proc glPNTrianglesfATI*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glPNTrianglesfATI".}
-  #***** GL_ATI_texture_mirror_once *****//
-const 
-  GL_MIRROR_CLAMP_ATI* = 0x00008742
-  GL_MIRROR_CLAMP_TO_EDGE_ATI* = 0x00008743
-  #***** GL_ATI_vertex_array_object *****//
-
-const 
-  GL_STATIC_ATI* = 0x00008760
-  GL_DYNAMIC_ATI* = 0x00008761
-  GL_PRESERVE_ATI* = 0x00008762
-  GL_DISCARD_ATI* = 0x00008763
-  GL_OBJECT_BUFFER_SIZE_ATI* = 0x00008764
-  GL_OBJECT_BUFFER_USAGE_ATI* = 0x00008765
-  GL_ARRAY_OBJECT_BUFFER_ATI* = 0x00008766
-  GL_ARRAY_OBJECT_OFFSET_ATI* = 0x00008767
-
-proc glNewObjectBufferATI*(size: TGLsizei, pointer: PGLvoid, usage: TGLenum): TGLuint{.
-    dynlib: dllname, importc: "glNewObjectBufferATI".}
-proc glIsObjectBufferATI*(buffer: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsObjectBufferATI".}
-proc glUpdateObjectBufferATI*(buffer: TGLuint, offset: TGLuint, size: TGLsizei, 
-                              pointer: PGLvoid, preserve: TGLenum){.
-    dynlib: dllname, importc: "glUpdateObjectBufferATI".}
-proc glGetObjectBufferfvATI*(buffer: TGLuint, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetObjectBufferfvATI".}
-proc glGetObjectBufferivATI*(buffer: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetObjectBufferivATI".}
-proc glDeleteObjectBufferATI*(buffer: TGLuint){.dynlib: dllname, 
-    importc: "glDeleteObjectBufferATI".}
-proc glArrayObjectATI*(thearray: TGLenum, size: TGLint, thetype: TGLenum, 
-                       stride: TGLsizei, buffer: TGLuint, offset: TGLuint){.
-    dynlib: dllname, importc: "glArrayObjectATI".}
-proc glGetArrayObjectfvATI*(thearray: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetArrayObjectfvATI".}
-proc glGetArrayObjectivATI*(thearray: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetArrayObjectivATI".}
-proc glVariantArrayObjectATI*(id: TGLuint, thetype: TGLenum, stride: TGLsizei, 
-                              buffer: TGLuint, offset: TGLuint){.
-    dynlib: dllname, importc: "glVariantArrayObjectATI".}
-proc glGetVariantArrayObjectfvATI*(id: TGLuint, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetVariantArrayObjectfvATI".}
-proc glGetVariantArrayObjectivATI*(id: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetVariantArrayObjectivATI".}
-  #***** GL_ATI_vertex_streams *****//
-const 
-  GL_MAX_VERTEX_STREAMS_ATI* = 0x0000876B
-  GL_VERTEX_STREAM0_ATI* = 0x0000876C
-  GL_VERTEX_STREAM1_ATI* = 0x0000876D
-  GL_VERTEX_STREAM2_ATI* = 0x0000876E
-  GL_VERTEX_STREAM3_ATI* = 0x0000876F
-  GL_VERTEX_STREAM4_ATI* = 0x00008770
-  GL_VERTEX_STREAM5_ATI* = 0x00008771
-  GL_VERTEX_STREAM6_ATI* = 0x00008772
-  GL_VERTEX_STREAM7_ATI* = 0x00008773
-  GL_VERTEX_SOURCE_ATI* = 0x00008774
-
-proc glVertexStream1s*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glVertexStream1s".}
-proc glVertexStream1i*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glVertexStream1i".}
-proc glVertexStream1f*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexStream1f".}
-proc glVertexStream1d*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexStream1d".}
-proc glVertexStream1sv*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glVertexStream1sv".}
-proc glVertexStream1iv*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glVertexStream1iv".}
-proc glVertexStream1fv*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexStream1fv".}
-proc glVertexStream1dv*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexStream1dv".}
-proc glVertexStream2s*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glVertexStream2s".}
-proc glVertexStream2i*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glVertexStream2i".}
-proc glVertexStream2f*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexStream2f".}
-proc glVertexStream2d*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexStream2d".}
-proc glVertexStream2sv*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glVertexStream2sv".}
-proc glVertexStream2iv*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glVertexStream2iv".}
-proc glVertexStream2fv*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexStream2fv".}
-proc glVertexStream2dv*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexStream2dv".}
-proc glVertexStream3s*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glVertexStream3s".}
-proc glVertexStream3i*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glVertexStream3i".}
-proc glVertexStream3f*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexStream3f".}
-proc glVertexStream3d*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexStream3d".}
-proc glVertexStream3sv*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glVertexStream3sv".}
-proc glVertexStream3iv*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glVertexStream3iv".}
-proc glVertexStream3fv*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexStream3fv".}
-proc glVertexStream3dv*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexStream3dv".}
-proc glVertexStream4s*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glVertexStream4s".}
-proc glVertexStream4i*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glVertexStream4i".}
-proc glVertexStream4f*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexStream4f".}
-proc glVertexStream4d*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexStream4d".}
-proc glVertexStream4sv*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glVertexStream4sv".}
-proc glVertexStream4iv*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glVertexStream4iv".}
-proc glVertexStream4fv*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexStream4fv".}
-proc glVertexStream4dv*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexStream4dv".}
-proc glNormalStream3b*(stream: TGLenum, coords: TGLByte){.dynlib: dllname, 
-    importc: "glNormalStream3b".}
-proc glNormalStream3s*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glNormalStream3s".}
-proc glNormalStream3i*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glNormalStream3i".}
-proc glNormalStream3f*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glNormalStream3f".}
-proc glNormalStream3d*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glNormalStream3d".}
-proc glNormalStream3bv*(stream: TGLenum, coords: TGLByte){.dynlib: dllname, 
-    importc: "glNormalStream3bv".}
-proc glNormalStream3sv*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glNormalStream3sv".}
-proc glNormalStream3iv*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glNormalStream3iv".}
-proc glNormalStream3fv*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glNormalStream3fv".}
-proc glNormalStream3dv*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glNormalStream3dv".}
-proc glClientActiveVertexStream*(stream: TGLenum){.dynlib: dllname, 
-    importc: "glClientActiveVertexStream".}
-proc glVertexBlendEnvi*(pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glVertexBlendEnvi".}
-proc glVertexBlendEnvf*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexBlendEnvf".}
-  #***** GL_3DFX_texture_compression_FXT1 *****//
-const 
-  GL_COMPRESSED_RGB_FXT1_3DFX* = 0x000086B0
-  GL_COMPRESSED_RGBA_FXT1_3DFX* = 0x000086B1
-  #***** GL_IBM_cull_vertex *****//
-
-const 
-  GL_CULL_VERTEX_IBM* = 0x0001928A
-  #***** GL_IBM_multimode_draw_arrays *****//
-
-proc glMultiModeDrawArraysIBM*(mode: PGLenum, first: PGLint, count: PGLsizei, 
-                               primcount: TGLsizei, modestride: TGLint){.
-    dynlib: dllname, importc: "glMultiModeDrawArraysIBM".}
-proc glMultiModeDrawElementsIBM*(mode: PGLenum, count: PGLsizei, 
-                                 thetype: TGLenum, indices: PGLvoid, 
-                                 primcount: TGLsizei, modestride: TGLint){.
-    dynlib: dllname, importc: "glMultiModeDrawElementsIBM".}
-  #***** GL_IBM_raster_pos_clip *****//
-const 
-  GL_RASTER_POSITION_UNCLIPPED_IBM* = 0x00019262
-  #***** GL_IBM_texture_mirrored_repeat *****//
-
-const 
-  GL_MIRRORED_REPEAT_IBM* = 0x00008370
-  #***** GL_IBM_vertex_array_lists *****//
-
-const 
-  GL_VERTEX_ARRAY_LIST_IBM* = 0x0001929E
-  GL_NORMAL_ARRAY_LIST_IBM* = 0x0001929F
-  GL_COLOR_ARRAY_LIST_IBM* = 0x000192A0
-  GL_INDEX_ARRAY_LIST_IBM* = 0x000192A1
-  GL_TEXTURE_COORD_ARRAY_LIST_IBM* = 0x000192A2
-  GL_EDGE_FLAG_ARRAY_LIST_IBM* = 0x000192A3
-  GL_FOG_COORDINATE_ARRAY_LIST_IBM* = 0x000192A4
-  GL_SECONDARY_COLOR_ARRAY_LIST_IBM* = 0x000192A5
-  GL_VERTEX_ARRAY_LIST_STRIDE_IBM* = 0x000192A8
-  GL_NORMAL_ARRAY_LIST_STRIDE_IBM* = 0x000192A9
-  GL_COLOR_ARRAY_LIST_STRIDE_IBM* = 0x000192AA
-  GL_INDEX_ARRAY_LIST_STRIDE_IBM* = 0x000192AB
-  GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM* = 0x000192AC
-  GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM* = 0x000192AD
-  GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM* = 0x000192AE
-  GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM* = 0x000192AF
-
-proc glColorPointerListIBM*(size: TGLint, thetype: TGLenum, stride: TGLint, 
-                            pointer: PGLvoid, ptrstride: TGLint){.
-    dynlib: dllname, importc: "glColorPointerListIBM".}
-proc glSecondaryColorPointerListIBM*(size: TGLint, thetype: TGLenum, 
-                                     stride: TGLint, pointer: PGLvoid, 
-                                     ptrstride: TGLint){.dynlib: dllname, 
-    importc: "glSecondaryColorPointerListIBM".}
-proc glEdgeFlagPointerListIBM*(stride: TGLint, pointer: PGLboolean, 
-                               ptrstride: TGLint){.dynlib: dllname, 
-    importc: "glEdgeFlagPointerListIBM".}
-proc glFogCoordPointerListIBM*(thetype: TGLenum, stride: TGLint, 
-                               pointer: PGLvoid, ptrstride: TGLint){.
-    dynlib: dllname, importc: "glFogCoordPointerListIBM".}
-proc glNormalPointerListIBM*(thetype: TGLenum, stride: TGLint, pointer: PGLvoid, 
-                             ptrstride: TGLint){.dynlib: dllname, 
-    importc: "glNormalPointerListIBM".}
-proc glTexCoordPointerListIBM*(size: TGLint, thetype: TGLenum, stride: TGLint, 
-                               pointer: PGLvoid, ptrstride: TGLint){.
-    dynlib: dllname, importc: "glTexCoordPointerListIBM".}
-proc glVertexPointerListIBM*(size: TGLint, thetype: TGLenum, stride: TGLint, 
-                             pointer: PGLvoid, ptrstride: TGLint){.
-    dynlib: dllname, importc: "glVertexPointerListIBM".}
-  #***** GL_MESA_resize_buffers *****//
-proc glResizeBuffersMESA*(){.dynlib: dllname, importc: "glResizeBuffersMESA".}
-  #***** GL_MESA_window_pos *****//
-proc glWindowPos2dMESA*(x: TGLdouble, y: TGLdouble){.dynlib: dllname, 
-    importc: "glWindowPos2dMESA".}
-proc glWindowPos2fMESA*(x: TGLfloat, y: TGLfloat){.dynlib: dllname, 
-    importc: "glWindowPos2fMESA".}
-proc glWindowPos2iMESA*(x: TGLint, y: TGLint){.dynlib: dllname, 
-    importc: "glWindowPos2iMESA".}
-proc glWindowPos2sMESA*(x: TGLshort, y: TGLshort){.dynlib: dllname, 
-    importc: "glWindowPos2sMESA".}
-proc glWindowPos2ivMESA*(p: PGLint){.dynlib: dllname, 
-                                     importc: "glWindowPos2ivMESA".}
-proc glWindowPos2svMESA*(p: PGLshort){.dynlib: dllname, 
-                                       importc: "glWindowPos2svMESA".}
-proc glWindowPos2fvMESA*(p: PGLfloat){.dynlib: dllname, 
-                                       importc: "glWindowPos2fvMESA".}
-proc glWindowPos2dvMESA*(p: PGLdouble){.dynlib: dllname, 
-                                        importc: "glWindowPos2dvMESA".}
-proc glWindowPos3iMESA*(x: TGLint, y: TGLint, z: TGLint){.dynlib: dllname, 
-    importc: "glWindowPos3iMESA".}
-proc glWindowPos3sMESA*(x: TGLshort, y: TGLshort, z: TGLshort){.dynlib: dllname, 
-    importc: "glWindowPos3sMESA".}
-proc glWindowPos3fMESA*(x: TGLfloat, y: TGLfloat, z: TGLfloat){.dynlib: dllname, 
-    importc: "glWindowPos3fMESA".}
-proc glWindowPos3dMESA*(x: TGLdouble, y: TGLdouble, z: TGLdouble){.
-    dynlib: dllname, importc: "glWindowPos3dMESA".}
-proc glWindowPos3ivMESA*(p: PGLint){.dynlib: dllname, 
-                                     importc: "glWindowPos3ivMESA".}
-proc glWindowPos3svMESA*(p: PGLshort){.dynlib: dllname, 
-                                       importc: "glWindowPos3svMESA".}
-proc glWindowPos3fvMESA*(p: PGLfloat){.dynlib: dllname, 
-                                       importc: "glWindowPos3fvMESA".}
-proc glWindowPos3dvMESA*(p: PGLdouble){.dynlib: dllname, 
-                                        importc: "glWindowPos3dvMESA".}
-proc glWindowPos4iMESA*(x: TGLint, y: TGLint, z: TGLint, w: TGLint){.
-    dynlib: dllname, importc: "glWindowPos4iMESA".}
-proc glWindowPos4sMESA*(x: TGLshort, y: TGLshort, z: TGLshort, w: TGLshort){.
-    dynlib: dllname, importc: "glWindowPos4sMESA".}
-proc glWindowPos4fMESA*(x: TGLfloat, y: TGLfloat, z: TGLfloat, w: TGLfloat){.
-    dynlib: dllname, importc: "glWindowPos4fMESA".}
-proc glWindowPos4dMESA*(x: TGLdouble, y: TGLdouble, z: TGLdouble, w: TGLdouble){.
-    dynlib: dllname, importc: "glWindowPos4dMESA".}
-proc glWindowPos4ivMESA*(p: PGLint){.dynlib: dllname, 
-                                     importc: "glWindowPos4ivMESA".}
-proc glWindowPos4svMESA*(p: PGLshort){.dynlib: dllname, 
-                                       importc: "glWindowPos4svMESA".}
-proc glWindowPos4fvMESA*(p: PGLfloat){.dynlib: dllname, 
-                                       importc: "glWindowPos4fvMESA".}
-proc glWindowPos4dvMESA*(p: PGLdouble){.dynlib: dllname, 
-                                        importc: "glWindowPos4dvMESA".}
-  #***** GL_OML_interlace *****//
-const 
-  GL_INTERLACE_OML* = 0x00008980
-  GL_INTERLACE_READ_OML* = 0x00008981
-  #***** GL_OML_resample *****//
-
-const 
-  GL_PACK_RESAMPLE_OML* = 0x00008984
-  GL_UNPACK_RESAMPLE_OML* = 0x00008985
-  GL_RESAMPLE_REPLICATE_OML* = 0x00008986
-  GL_RESAMPLE_ZERO_FILL_OML* = 0x00008987
-  GL_RESAMPLE_AVERAGE_OML* = 0x00008988
-  GL_RESAMPLE_DECIMATE_OML* = 0x00008989 # GL_RESAMPLE_AVERAGE_OML  { already defined }
-  #***** GL_OML_subsample *****//
-
-const 
-  GL_FORMAT_SUBSAMPLE_24_24_OML* = 0x00008982
-  GL_FORMAT_SUBSAMPLE_244_244_OML* = 0x00008983
-  #***** GL_SGIS_generate_mipmap *****//
-
-const 
-  GL_GENERATE_MIPMAP_SGIS* = 0x00008191
-  GL_GENERATE_MIPMAP_HINT_SGIS* = 0x00008192
-  #***** GL_SGIS_multisample *****//
-
-const 
-  GLX_SAMPLE_BUFFERS_SGIS* = 0x000186A0
-  GLX_SAMPLES_SGIS* = 0x000186A1
-  GL_MULTISAMPLE_SGIS* = 0x0000809D
-  GL_SAMPLE_ALPHA_TO_MASK_SGIS* = 0x0000809E
-  GL_SAMPLE_ALPHA_TO_ONE_SGIS* = 0x0000809F
-  constGL_SAMPLE_MASK_SGIS* = 0x000080A0
-  GL_MULTISAMPLE_BIT_EXT* = 0x20000000
-  GL_1PASS_SGIS* = 0x000080A1
-  GL_2PASS_0_SGIS* = 0x000080A2
-  GL_2PASS_1_SGIS* = 0x000080A3
-  GL_4PASS_0_SGIS* = 0x000080A4
-  GL_4PASS_1_SGIS* = 0x000080A5
-  GL_4PASS_2_SGIS* = 0x000080A6
-  GL_4PASS_3_SGIS* = 0x000080A7
-  GL_SAMPLE_BUFFERS_SGIS* = 0x000080A8
-  GL_SAMPLES_SGIS* = 0x000080A9
-  GL_SAMPLE_MASK_VALUE_SGIS* = 0x000080AA
-  GL_SAMPLE_MASK_INVERT_SGIS* = 0x000080AB
-  constGL_SAMPLE_PATTERN_SGIS* = 0x000080AC
-
-proc glSampleMaskSGIS*(value: TGLclampf, invert: TGLboolean){.dynlib: dllname, 
-    importc: "glSampleMaskSGIS".}
-proc glSamplePatternSGIS*(pattern: TGLenum){.dynlib: dllname, 
-    importc: "glSamplePatternSGIS".}
-  #***** GL_SGIS_pixel_texture *****//
-const 
-  GL_PIXEL_TEXTURE_SGIS* = 0x00008353
-  GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS* = 0x00008354
-  GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS* = 0x00008355
-  GL_PIXEL_GROUP_COLOR_SGIS* = 0x00008356
-
-proc glPixelTexGenParameteriSGIS*(pname: TGLenum, param: TGLint){.
-    dynlib: dllname, importc: "glPixelTexGenParameteriSGIS".}
-proc glPixelTexGenParameterfSGIS*(pname: TGLenum, param: TGLfloat){.
-    dynlib: dllname, importc: "glPixelTexGenParameterfSGIS".}
-proc glGetPixelTexGenParameterivSGIS*(pname: TGLenum, params: TGLint){.
-    dynlib: dllname, importc: "glGetPixelTexGenParameterivSGIS".}
-proc glGetPixelTexGenParameterfvSGIS*(pname: TGLenum, params: TGLfloat){.
-    dynlib: dllname, importc: "glGetPixelTexGenParameterfvSGIS".}
-  #***** GL_SGIS_texture_border_clamp *****//
-  # GL_CLAMP_TO_BORDER_SGIS  { already defined }
-  #***** GL_SGIS_texture_color_mask *****//
-const 
-  GL_TEXTURE_COLOR_WRITEMASK_SGIS* = 0x000081EF
-
-proc glTextureColorMaskSGIS*(r: TGLboolean, g: TGLboolean, b: TGLboolean, 
-                             a: TGLboolean){.dynlib: dllname, 
-    importc: "glTextureColorMaskSGIS".}
-  #***** GL_SGIS_texture_edge_clamp *****//
-const 
-  GL_CLAMP_TO_EDGE_SGIS* = 0x0000812F
-  #***** GL_SGIS_texture_lod *****//
-
-const 
-  GL_TEXTURE_MIN_LOD_SGIS* = 0x0000813A
-  GL_TEXTURE_MAX_LOD_SGIS* = 0x0000813B
-  GL_TEXTURE_BASE_LEVEL_SGIS* = 0x0000813C
-  GL_TEXTURE_MAX_LEVEL_SGIS* = 0x0000813D
-  #***** GL_SGIS_depth_texture *****//
-
-const 
-  GL_DEPTH_COMPONENT16_SGIX* = 0x000081A5
-  GL_DEPTH_COMPONENT24_SGIX* = 0x000081A6
-  GL_DEPTH_COMPONENT32_SGIX* = 0x000081A7
-  #***** GL_SGIX_fog_offset *****//
-
-const 
-  GL_FOG_OFFSET_SGIX* = 0x00008198
-  GL_FOG_OFFSET_VALUE_SGIX* = 0x00008199
-  #***** GL_SGIX_interlace *****//
-
-const 
-  GL_INTERLACE_SGIX* = 0x00008094
-  #***** GL_SGIX_shadow_ambient *****//
-
-const 
-  GL_SHADOW_AMBIENT_SGIX* = 0x000080BF
-  #***** GL_SGI_color_matrix *****//
-
-const 
-  GL_COLOR_MATRIX_SGI* = 0x000080B1
-  GL_COLOR_MATRIX_STACK_DEPTH_SGI* = 0x000080B2
-  GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI* = 0x000080B3
-  GL_POST_COLOR_MATRIX_RED_SCALE_SGI* = 0x000080B4
-  GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI* = 0x000080B5
-  GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI* = 0x000080B6
-  GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI* = 0x000080B7
-  GL_POST_COLOR_MATRIX_RED_BIAS_SGI* = 0x000080B8
-  GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI* = 0x000080B9
-  GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI* = 0x000080BA
-  GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI* = 0x000080BB
-  #***** GL_SGI_color_table *****//
-
-const 
-  constGL_COLOR_TABLE_SGI* = 0x000080D0
-  GL_POST_CONVOLUTION_COLOR_TABLE_SGI* = 0x000080D1
-  GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI* = 0x000080D2
-  GL_PROXY_COLOR_TABLE_SGI* = 0x000080D3
-  GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI* = 0x000080D4
-  GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI* = 0x000080D5
-  GL_COLOR_TABLE_SCALE_SGI* = 0x000080D6
-  GL_COLOR_TABLE_BIAS_SGI* = 0x000080D7
-  GL_COLOR_TABLE_FORMAT_SGI* = 0x000080D8
-  GL_COLOR_TABLE_WIDTH_SGI* = 0x000080D9
-  GL_COLOR_TABLE_RED_SIZE_SGI* = 0x000080DA
-  GL_COLOR_TABLE_GREEN_SIZE_SGI* = 0x000080DB
-  GL_COLOR_TABLE_BLUE_SIZE_SGI* = 0x000080DC
-  GL_COLOR_TABLE_ALPHA_SIZE_SGI* = 0x000080DD
-  GL_COLOR_TABLE_LUMINANCE_SIZE_SGI* = 0x000080DE
-  GL_COLOR_TABLE_INTENSITY_SIZE_SGI* = 0x000080DF
-
-proc glColorTableSGI*(target: TGLenum, internalformat: TGLenum, width: TGLsizei, 
-                      format: TGLenum, thetype: TGLenum, table: PGLvoid){.
-    dynlib: dllname, importc: "glColorTableSGI".}
-proc glCopyColorTableSGI*(target: TGLenum, internalformat: TGLenum, x: TGLint, 
-                          y: TGLint, width: TGLsizei){.dynlib: dllname, 
-    importc: "glCopyColorTableSGI".}
-proc glColorTableParameterivSGI*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glColorTableParameterivSGI".}
-proc glColorTableParameterfvSGI*(target: TGLenum, pname: TGLenum, 
-                                 params: PGLfloat){.dynlib: dllname, 
-    importc: "glColorTableParameterfvSGI".}
-proc glGetColorTableSGI*(target: TGLenum, format: TGLenum, thetype: TGLenum, 
-                         table: PGLvoid){.dynlib: dllname, 
-    importc: "glGetColorTableSGI".}
-proc glGetColorTableParameterivSGI*(target: TGLenum, pname: TGLenum, 
-                                    params: PGLint){.dynlib: dllname, 
-    importc: "glGetColorTableParameterivSGI".}
-proc glGetColorTableParameterfvSGI*(target: TGLenum, pname: TGLenum, 
-                                    params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetColorTableParameterfvSGI".}
-  #***** GL_SGI_texture_color_table *****//
-const 
-  GL_TEXTURE_COLOR_TABLE_SGI* = 0x000080BC
-  GL_PROXY_TEXTURE_COLOR_TABLE_SGI* = 0x000080BD
-  #***** GL_SUN_vertex *****//
-
-proc glColor4ubVertex2fSUN*(r: TGLubyte, g: TGLubyte, b: TGLubyte, a: TGLubyte, 
-                            x: TGLfloat, y: TGLfloat){.dynlib: dllname, 
-    importc: "glColor4ubVertex2fSUN".}
-proc glColor4ubVertex2fvSUN*(c: PGLubyte, v: PGLfloat){.dynlib: dllname, 
-    importc: "glColor4ubVertex2fvSUN".}
-proc glColor4ubVertex3fSUN*(r: TGLubyte, g: TGLubyte, b: TGLubyte, a: TGLubyte, 
-                            x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glColor4ubVertex3fSUN".}
-proc glColor4ubVertex3fvSUN*(c: PGLubyte, v: PGLfloat){.dynlib: dllname, 
-    importc: "glColor4ubVertex3fvSUN".}
-proc glColor3fVertex3fSUN*(r: TGLfloat, g: TGLfloat, b: TGLfloat, x: TGLfloat, 
-                           y: TGLfloat, z: TGLfloat){.dynlib: dllname, 
-    importc: "glColor3fVertex3fSUN".}
-proc glColor3fVertex3fvSUN*(c: PGLfloat, v: PGLfloat){.dynlib: dllname, 
-    importc: "glColor3fVertex3fvSUN".}
-proc glNormal3fVertex3fSUN*(nx: TGLfloat, ny: TGLfloat, nz: TGLfloat, 
-                            x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glNormal3fVertex3fSUN".}
-proc glNormal3fVertex3fvSUN*(n: PGLfloat, v: PGLfloat){.dynlib: dllname, 
-    importc: "glNormal3fVertex3fvSUN".}
-proc glColor4fNormal3fVertex3fSUN*(r: TGLfloat, g: TGLfloat, b: TGLfloat, 
-                                   a: TGLfloat, nx: TGLfloat, ny: TGLfloat, 
-                                   nz: TGLfloat, x: TGLfloat, y: TGLfloat, 
-                                   z: TGLfloat){.dynlib: dllname, 
-    importc: "glColor4fNormal3fVertex3fSUN".}
-proc glColor4fNormal3fVertex3fvSUN*(c: PGLfloat, n: PGLfloat, v: PGLfloat){.
-    dynlib: dllname, importc: "glColor4fNormal3fVertex3fvSUN".}
-proc glTexCoord2fVertex3fSUN*(s: TGLfloat, t: TGLfloat, x: TGLfloat, 
-                              y: TGLfloat, z: TGLfloat){.dynlib: dllname, 
-    importc: "glTexCoord2fVertex3fSUN".}
-proc glTexCoord2fVertex3fvSUN*(tc: PGLfloat, v: PGLfloat){.dynlib: dllname, 
-    importc: "glTexCoord2fVertex3fvSUN".}
-proc glTexCoord4fVertex4fSUN*(s: TGLfloat, t: TGLfloat, p: TGLfloat, 
-                              q: TGLfloat, x: TGLfloat, y: TGLfloat, 
-                              z: TGLfloat, w: TGLfloat){.dynlib: dllname, 
-    importc: "glTexCoord4fVertex4fSUN".}
-proc glTexCoord4fVertex4fvSUN*(tc: PGLfloat, v: PGLfloat){.dynlib: dllname, 
-    importc: "glTexCoord4fVertex4fvSUN".}
-proc glTexCoord2fColor4ubVertex3fSUN*(s: TGLfloat, t: TGLfloat, r: TGLubyte, 
-                                      g: TGLubyte, b: TGLubyte, a: TGLubyte, 
-                                      x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glTexCoord2fColor4ubVertex3fSUN".}
-proc glTexCoord2fColor4ubVertex3fvSUN*(tc: PGLfloat, c: PGLubyte, v: PGLfloat){.
-    dynlib: dllname, importc: "glTexCoord2fColor4ubVertex3fvSUN".}
-proc glTexCoord2fColor3fVertex3fSUN*(s: TGLfloat, t: TGLfloat, r: TGLfloat, 
-                                     g: TGLfloat, b: TGLfloat, x: TGLfloat, 
-                                     y: TGLfloat, z: TGLfloat){.dynlib: dllname, 
-    importc: "glTexCoord2fColor3fVertex3fSUN".}
-proc glTexCoord2fColor3fVertex3fvSUN*(tc: PGLfloat, c: PGLfloat, v: PGLfloat){.
-    dynlib: dllname, importc: "glTexCoord2fColor3fVertex3fvSUN".}
-proc glTexCoord2fNormal3fVertex3fSUN*(s: TGLfloat, t: TGLfloat, nx: TGLfloat, 
-                                      ny: TGLfloat, nz: TGLfloat, x: TGLfloat, 
-                                      y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glTexCoord2fNormal3fVertex3fSUN".}
-proc glTexCoord2fNormal3fVertex3fvSUN*(tc: PGLfloat, n: PGLfloat, v: PGLfloat){.
-    dynlib: dllname, importc: "glTexCoord2fNormal3fVertex3fvSUN".}
-proc glTexCoord2fColor4fNormal3fVertex3fSUN*(s: TGLfloat, t: TGLfloat, 
-    r: TGLfloat, g: TGLfloat, b: TGLfloat, a: TGLfloat, nx: TGLfloat, 
-    ny: TGLfloat, nz: TGLfloat, x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glTexCoord2fColor4fNormal3fVertex3fSUN".}
-proc glTexCoord2fColor4fNormal3fVertex3fvSUN*(tc: PGLfloat, c: PGLfloat, 
-    n: PGLfloat, v: PGLfloat){.dynlib: dllname, importc: "glTexCoord2fColor4fNormal3fVertex3fvSUN".}
-proc glTexCoord4fColor4fNormal3fVertex4fSUN*(s: TGLfloat, t: TGLfloat, 
-    p: TGLfloat, q: TGLfloat, r: TGLfloat, g: TGLfloat, b: TGLfloat, 
-    a: TGLfloat, nx: TGLfloat, ny: TGLfloat, nz: TGLfloat, x: TGLfloat, 
-    y: TGLfloat, z: TGLfloat, w: TGLfloat){.dynlib: dllname, 
-    importc: "glTexCoord4fColor4fNormal3fVertex4fSUN".}
-proc glTexCoord4fColor4fNormal3fVertex4fvSUN*(tc: PGLfloat, c: PGLfloat, 
-    n: PGLfloat, v: PGLfloat){.dynlib: dllname, importc: "glTexCoord4fColor4fNormal3fVertex4fvSUN".}
-proc glReplacementCodeuiVertex3fSUN*(rc: TGLuint, x: TGLfloat, y: TGLfloat, 
-                                     z: TGLfloat){.dynlib: dllname, 
-    importc: "glReplacementCodeuiVertex3fSUN".}
-proc glReplacementCodeuiVertex3fvSUN*(rc: PGLuint, v: PGLfloat){.
-    dynlib: dllname, importc: "glReplacementCodeuiVertex3fvSUN".}
-proc glReplacementCodeuiColor4ubVertex3fSUN*(rc: TGLuint, r: TGLubyte, 
-    g: TGLubyte, b: TGLubyte, a: TGLubyte, x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glReplacementCodeuiColor4ubVertex3fSUN".}
-proc glReplacementCodeuiColor4ubVertex3fvSUN*(rc: PGLuint, c: PGLubyte, 
-    v: PGLfloat){.dynlib: dllname, 
-                  importc: "glReplacementCodeuiColor4ubVertex3fvSUN".}
-proc glReplacementCodeuiColor3fVertex3fSUN*(rc: TGLuint, r: TGLfloat, 
-    g: TGLfloat, b: TGLfloat, x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glReplacementCodeuiColor3fVertex3fSUN".}
-proc glReplacementCodeuiColor3fVertex3fvSUN*(rc: PGLuint, c: PGLfloat, 
-    v: PGLfloat){.dynlib: dllname, 
-                  importc: "glReplacementCodeuiColor3fVertex3fvSUN".}
-proc glReplacementCodeuiNormal3fVertex3fSUN*(rc: TGLuint, nx: TGLfloat, 
-    ny: TGLfloat, nz: TGLfloat, x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glReplacementCodeuiNormal3fVertex3fSUN".}
-proc glReplacementCodeuiNormal3fVertex3fvSUN*(rc: PGLuint, n: PGLfloat, 
-    v: PGLfloat){.dynlib: dllname, 
-                  importc: "glReplacementCodeuiNormal3fVertex3fvSUN".}
-proc glReplacementCodeuiColor4fNormal3fVertex3fSUN*(rc: TGLuint, r: TGLfloat, 
-    g: TGLfloat, b: TGLfloat, a: TGLfloat, nx: TGLfloat, ny: TGLfloat, 
-    nz: TGLfloat, x: TGLfloat, y: TGLfloat, z: TGLfloat){.dynlib: dllname, 
-    importc: "glReplacementCodeuiColor4fNormal3fVertex3fSUN".}
-proc glReplacementCodeuiColor4fNormal3fVertex3fvSUN*(rc: PGLuint, c: PGLfloat, 
-    n: PGLfloat, v: PGLfloat){.dynlib: dllname, importc: "glReplacementCodeuiColor4fNormal3fVertex3fvSUN".}
-proc glReplacementCodeuiTexCoord2fVertex3fSUN*(rc: TGLuint, s: TGLfloat, 
-    t: TGLfloat, x: TGLfloat, y: TGLfloat, z: TGLfloat){.dynlib: dllname, 
-    importc: "glReplacementCodeuiTexCoord2fVertex3fSUN".}
-proc glReplacementCodeuiTexCoord2fVertex3fvSUN*(rc: PGLuint, tc: PGLfloat, 
-    v: PGLfloat){.dynlib: dllname, 
-                  importc: "glReplacementCodeuiTexCoord2fVertex3fvSUN".}
-proc glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN*(rc: TGLuint, s: TGLfloat, 
-    t: TGLfloat, nx: TGLfloat, ny: TGLfloat, nz: TGLfloat, x: TGLfloat, 
-    y: TGLfloat, z: TGLfloat){.dynlib: dllname, importc: "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN".}
-proc glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN*(rc: PGLuint, 
-    tc: PGLfloat, n: PGLfloat, v: PGLfloat){.dynlib: dllname, 
-    importc: "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN".}
-proc glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN*(rc: TGLuint, 
-    s: TGLfloat, t: TGLfloat, r: TGLfloat, g: TGLfloat, b: TGLfloat, 
-    a: TGLfloat, nx: TGLfloat, ny: TGLfloat, nz: TGLfloat, x: TGLfloat, 
-    y: TGLfloat, z: TGLfloat){.dynlib: dllname, importc: "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN".}
-proc glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN*(rc: PGLuint, 
-    tc: PGLfloat, c: PGLfloat, n: PGLfloat, v: PGLfloat){.dynlib: dllname, 
-    importc: "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN".}
-  #***** GL_ARB_fragment_program *****//
-const 
-  GL_FRAGMENT_PROGRAM_ARB* = 0x00008804 # GL_PROGRAM_FORMAT_ASCII_ARB  { already defined }
-                                        # GL_PROGRAM_LENGTH_ARB  { already defined }
-                                        # GL_PROGRAM_FORMAT_ARB  { already defined }
-                                        # GL_PROGRAM_BINDING_ARB  { already defined }
-                                        # GL_PROGRAM_INSTRUCTIONS_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_INSTRUCTIONS_ARB  { already defined }
-                                        # GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB  { already defined }
-                                        # GL_PROGRAM_TEMPORARIES_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_TEMPORARIES_ARB  { already defined }
-                                        # GL_PROGRAM_NATIVE_TEMPORARIES_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB  { already defined }
-                                        # GL_PROGRAM_PARAMETERS_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_PARAMETERS_ARB  { already defined }
-                                        # GL_PROGRAM_NATIVE_PARAMETERS_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB  { already defined }
-                                        # GL_PROGRAM_ATTRIBS_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_ATTRIBS_ARB  { already defined }
-                                        # GL_PROGRAM_NATIVE_ATTRIBS_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_ENV_PARAMETERS_ARB  { already defined }
-                                        # GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB  { already defined }
-  GL_PROGRAM_ALU_INSTRUCTIONS_ARB* = 0x00008805
-  GL_PROGRAM_TEX_INSTRUCTIONS_ARB* = 0x00008806
-  GL_PROGRAM_TEX_INDIRECTIONS_ARB* = 0x00008807
-  GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB* = 0x00008808
-  GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB* = 0x00008809
-  GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB* = 0x0000880A
-  GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB* = 0x0000880B
-  GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB* = 0x0000880C
-  GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB* = 0x0000880D
-  GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB* = 0x0000880E
-  GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB* = 0x0000880F
-  GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB* = 0x00008810 # GL_PROGRAM_STRING_ARB  { already defined }
-                                                           # 
-                                                           # 
-                                                           # GL_PROGRAM_ERROR_POSITION_ARB  { already defined }
-                                                           # GL_CURRENT_MATRIX_ARB  { already defined }
-                                                           # 
-                                                           # 
-                                                           # GL_TRANSPOSE_CURRENT_MATRIX_ARB  { already defined }
-                                                           # 
-                                                           # 
-                                                           # GL_CURRENT_MATRIX_STACK_DEPTH_ARB  { already defined }
-                                                           # 
-                                                           # 
-                                                           # GL_MAX_PROGRAM_MATRICES_ARB  { already defined }
-                                                           # 
-                                                           # 
-                                                           # GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB  { already defined }
-  GL_MAX_TEXTURE_COORDS_ARB* = 0x00008871
-  GL_MAX_TEXTURE_IMAGE_UNITS_ARB* = 0x00008872 # GL_PROGRAM_ERROR_STRING_ARB  { already defined }
-                                               # GL_MATRIX0_ARB  { already defined }
-                                               # GL_MATRIX1_ARB  { already defined }
-                                               # GL_MATRIX2_ARB  { already defined }
-                                               # GL_MATRIX3_ARB  { already defined }
-                                               # GL_MATRIX4_ARB  { already defined }
-                                               # GL_MATRIX5_ARB  { already defined }
-                                               # GL_MATRIX6_ARB  { already defined }
-                                               # GL_MATRIX7_ARB  { already defined }
-                                               # GL_MATRIX8_ARB  { already defined }
-                                               # GL_MATRIX9_ARB  { already defined }
-                                               # GL_MATRIX10_ARB  { already defined }
-                                               # GL_MATRIX11_ARB  { already defined }
-                                               # GL_MATRIX12_ARB  { already defined }
-                                               # GL_MATRIX13_ARB  { already defined }
-                                               # GL_MATRIX14_ARB  { already defined }
-                                               # GL_MATRIX15_ARB  { already defined }
-                                               # GL_MATRIX16_ARB  { already defined }
-                                               # GL_MATRIX17_ARB  { already defined }
-                                               # GL_MATRIX18_ARB  { already defined }
-                                               # GL_MATRIX19_ARB  { already defined }
-                                               # GL_MATRIX20_ARB  { already defined }
-                                               # GL_MATRIX21_ARB  { already defined }
-                                               # GL_MATRIX22_ARB  { already defined }
-                                               # GL_MATRIX23_ARB  { already defined }
-                                               # GL_MATRIX24_ARB  { already defined }
-                                               # GL_MATRIX25_ARB  { already defined }
-                                               # GL_MATRIX26_ARB  { already defined }
-                                               # GL_MATRIX27_ARB  { already defined }
-                                               # GL_MATRIX28_ARB  { already defined }
-                                               # GL_MATRIX29_ARB  { already defined }
-                                               # GL_MATRIX30_ARB  { already defined }
-                                               # GL_MATRIX31_ARB  { already defined }
-                                               # glProgramStringARB  { already defined }
-                                               # glBindProgramARB  { already defined }
-                                               # glDeleteProgramsARB  { already defined }
-                                               # glGenProgramsARB  { already defined }
-                                               # glProgramEnvParameter4dARB  { already defined }
-                                               # glProgramEnvParameter4dvARB  { already defined }
-                                               # glProgramEnvParameter4fARB  { already defined }
-                                               # glProgramEnvParameter4fvARB  { already defined }
-                                               # glProgramLocalParameter4dARB  { already defined }
-                                               # glProgramLocalParameter4dvARB  { already defined }
-                                               # glProgramLocalParameter4fARB  { already defined }
-                                               # glProgramLocalParameter4fvARB  { already defined }
-                                               # glGetProgramEnvParameterdvARB  { already defined }
-                                               # glGetProgramEnvParameterfvARB  { already defined }
-                                               # glGetProgramLocalParameterdvARB  { already defined }
-                                               # glGetProgramLocalParameterfvARB  { already defined }
-                                               # glGetProgramivARB  { already defined }
-                                               # glGetProgramStringARB  { already defined }
-                                               # glIsProgramARB  { already defined }
-  #***** GL_ATI_text_fragment_shader *****
-
-const 
-  GL_TEXT_FRAGMENT_SHADER_ATI* = 0x00008200 #***** GL_ARB_vertex_buffer_object *****
-
-const 
-  GL_BUFFER_SIZE_ARB* = 0x00008764
-  GL_BUFFER_USAGE_ARB* = 0x00008765
-  GL_ARRAY_BUFFER_ARB* = 0x00008892
-  GL_ELEMENT_ARRAY_BUFFER_ARB* = 0x00008893
-  GL_ARRAY_BUFFER_BINDING_ARB* = 0x00008894
-  GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB* = 0x00008895
-  GL_VERTEX_ARRAY_BUFFER_BINDING_ARB* = 0x00008896
-  GL_NORMAL_ARRAY_BUFFER_BINDING_ARB* = 0x00008897
-  GL_COLOR_ARRAY_BUFFER_BINDING_ARB* = 0x00008898
-  GL_INDEX_ARRAY_BUFFER_BINDING_ARB* = 0x00008899
-  GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB* = 0x0000889A
-  GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB* = 0x0000889B
-  GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB* = 0x0000889C
-  GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB* = 0x0000889D
-  GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB* = 0x0000889E
-  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB* = 0x0000889F
-  GL_READ_ONLY_ARB* = 0x000088B8
-  GL_WRITE_ONLY_ARB* = 0x000088B9
-  GL_READ_WRITE_ARB* = 0x000088BA
-  GL_BUFFER_ACCESS_ARB* = 0x000088BB
-  GL_BUFFER_MAPPED_ARB* = 0x000088BC
-  GL_BUFFER_MAP_POINTER_ARB* = 0x000088BD
-  GL_STREAM_DRAW_ARB* = 0x000088E0
-  GL_STREAM_READ_ARB* = 0x000088E1
-  GL_STREAM_COPY_ARB* = 0x000088E2
-  GL_STATIC_DRAW_ARB* = 0x000088E4
-  GL_STATIC_READ_ARB* = 0x000088E5
-  GL_STATIC_COPY_ARB* = 0x000088E6
-  GL_DYNAMIC_DRAW_ARB* = 0x000088E8
-  GL_DYNAMIC_READ_ARB* = 0x000088E9
-  GL_DYNAMIC_COPY_ARB* = 0x000088EA
-
-proc glBindBufferARB*(target: TGLenum, buffer: TGLuint){.dynlib: dllname, 
-    importc: "glBindBufferARB".}
-proc glDeleteBuffersARB*(n: TGLsizei, buffers: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteBuffersARB".}
-proc glGenBuffersARB*(n: TGLsizei, buffers: PGLuint){.dynlib: dllname, 
-    importc: "glGenBuffersARB".}
-proc glIsBufferARB*(buffer: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsBufferARB".}
-proc glBufferDataARB*(target: TGLenum, size: TGLsizei, data: PGLvoid, 
-                      usage: TGLenum){.dynlib: dllname, 
-                                       importc: "glBufferDataARB".}
-proc glBufferSubDataARB*(target: TGLenum, offset: TGLint, size: TGLsizei, 
-                         data: PGLvoid){.dynlib: dllname, 
-    importc: "glBufferSubDataARB".}
-proc glGetBufferSubDataARB*(target: TGLenum, offset: TGLint, size: TGLsizei, 
-                            data: PGLvoid){.dynlib: dllname, 
-    importc: "glGetBufferSubDataARB".}
-proc glMapBufferARB*(target: TGLenum, access: TGLenum): PGLvoid{.
-    dynlib: dllname, importc: "glMapBufferARB".}
-proc glUnmapBufferARB*(target: TGLenum): TGLboolean{.dynlib: dllname, 
-    importc: "glUnmapBufferARB".}
-proc glGetBufferParameterivARB*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetBufferParameterivARB".}
-proc glGetBufferPointervARB*(target: TGLenum, pname: TGLenum, params: PPGLvoid){.
-    dynlib: dllname, importc: "glGetBufferPointervARB".}
-  #***** GL_APPLE_client_storage *****//
-const 
-  GL_UNPACK_CLIENT_STORAGE_APPLE* = 0x000085B2
-  #***** GL_APPLE_element_array *****//
-
-const 
-  GL_ELEMENT_ARRAY_APPLE* = 0x00008768
-  GL_ELEMENT_ARRAY_TYPE_APPLE* = 0x00008769
-  GL_ELEMENT_ARRAY_POINTER_APPLE* = 0x0000876A
-
-proc glElementPointerAPPLE*(thetype: TGLenum, pointer: PGLvoid){.
-    dynlib: dllname, importc: "glElementPointerAPPLE".}
-proc glDrawElementArrayAPPLE*(mode: TGLenum, first: TGLint, count: TGLsizei){.
-    dynlib: dllname, importc: "glDrawElementArrayAPPLE".}
-proc glDrawRangeElementArrayAPPLE*(mode: TGLenum, start: TGLuint, 
-                                   theend: TGLuint, first: TGLint, 
-                                   count: TGLsizei){.dynlib: dllname, 
-    importc: "glDrawRangeElementArrayAPPLE".}
-proc glMultiDrawElementArrayAPPLE*(mode: TGLenum, first: PGLint, 
-                                   count: PGLsizei, primcount: TGLsizei){.
-    dynlib: dllname, importc: "glMultiDrawElementArrayAPPLE".}
-proc glMultiDrawRangeElementArrayAPPLE*(mode: TGLenum, start: TGLuint, 
-                                        theend: TGLuint, first: PGLint, 
-                                        count: PGLsizei, primcount: TGLsizei){.
-    dynlib: dllname, importc: "glMultiDrawRangeElementArrayAPPLE".}
-  #***** GL_APPLE_fence *****//
-const 
-  GL_DRAW_PIXELS_APPLE* = 0x00008A0A
-  GL_FENCE_APPLE* = 0x00008A0B
-
-proc glGenFencesAPPLE*(n: TGLsizei, fences: PGLuint){.dynlib: dllname, 
-    importc: "glGenFencesAPPLE".}
-proc glDeleteFencesAPPLE*(n: TGLsizei, fences: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteFencesAPPLE".}
-proc glSetFenceAPPLE*(fence: TGLuint){.dynlib: dllname, 
-                                       importc: "glSetFenceAPPLE".}
-proc glIsFenceAPPLE*(fence: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsFenceAPPLE".}
-proc glTestFenceAPPLE*(fence: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glTestFenceAPPLE".}
-proc glFinishFenceAPPLE*(fence: TGLuint){.dynlib: dllname, 
-    importc: "glFinishFenceAPPLE".}
-proc glTestObjectAPPLE*(theobject: TGLenum, name: TGLuint): TGLboolean{.
-    dynlib: dllname, importc: "glTestObjectAPPLE".}
-proc glFinishObjectAPPLE*(theobject: TGLenum, name: TGLint){.dynlib: dllname, 
-    importc: "glFinishObjectAPPLE".}
-  #***** GL_APPLE_vertex_array_object *****//
-const 
-  GL_VERTEX_ARRAY_BINDING_APPLE* = 0x000085B5
-
-proc glBindVertexArrayAPPLE*(thearray: TGLuint){.dynlib: dllname, 
-    importc: "glBindVertexArrayAPPLE".}
-proc glDeleteVertexArraysAPPLE*(n: TGLsizei, arrays: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteVertexArraysAPPLE".}
-proc glGenVertexArraysAPPLE*(n: TGLsizei, arrays: PGLuint){.dynlib: dllname, 
-    importc: "glGenVertexArraysAPPLE".}
-proc glIsVertexArrayAPPLE*(thearray: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsVertexArrayAPPLE".}
-  #***** GL_APPLE_vertex_array_range *****//
-const 
-  constGL_VERTEX_ARRAY_RANGE_APPLE* = 0x0000851D
-  GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE* = 0x0000851E
-  GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE* = 0x00008520
-  GL_VERTEX_ARRAY_RANGE_POINTER_APPLE* = 0x00008521
-  GL_VERTEX_ARRAY_STORAGE_HINT_APPLE* = 0x0000851F
-  GL_STORAGE_CACHED_APPLE* = 0x000085BE
-  GL_STORAGE_SHARED_APPLE* = 0x000085BF
-
-proc glVertexArrayRangeAPPLE*(len: TGLsizei, pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glVertexArrayRangeAPPLE".}
-proc glFlushVertexArrayRangeAPPLE*(len: TGLsizei, pointer: PGLvoid){.
-    dynlib: dllname, importc: "glFlushVertexArrayRangeAPPLE".}
-proc glVertexArrayParameteriAPPLE*(pname: TGLenum, param: TGLint){.
-    dynlib: dllname, importc: "glVertexArrayParameteriAPPLE".}
-  #***** GL_ARB_matrix_palette *****//
-const 
-  GL_MATRIX_PALETTE_ARB* = 0x00008840
-  GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB* = 0x00008841
-  GL_MAX_PALETTE_MATRICES_ARB* = 0x00008842
-  constGL_CURRENT_PALETTE_MATRIX_ARB* = 0x00008843
-  GL_MATRIX_INDEX_ARRAY_ARB* = 0x00008844
-  GL_CURRENT_MATRIX_INDEX_ARB* = 0x00008845
-  GL_MATRIX_INDEX_ARRAY_SIZE_ARB* = 0x00008846
-  GL_MATRIX_INDEX_ARRAY_TYPE_ARB* = 0x00008847
-  GL_MATRIX_INDEX_ARRAY_STRIDE_ARB* = 0x00008848
-  GL_MATRIX_INDEX_ARRAY_POINTER_ARB* = 0x00008849
-
-proc glCurrentPaletteMatrixARB*(index: TGLint){.dynlib: dllname, 
-    importc: "glCurrentPaletteMatrixARB".}
-proc glMatrixIndexubvARB*(size: TGLint, indices: PGLubyte){.dynlib: dllname, 
-    importc: "glMatrixIndexubvARB".}
-proc glMatrixIndexusvARB*(size: TGLint, indices: PGLushort){.dynlib: dllname, 
-    importc: "glMatrixIndexusvARB".}
-proc glMatrixIndexuivARB*(size: TGLint, indices: PGLuint){.dynlib: dllname, 
-    importc: "glMatrixIndexuivARB".}
-proc glMatrixIndexPointerARB*(size: TGLint, thetype: TGLenum, stride: TGLsizei, 
-                              pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glMatrixIndexPointerARB".}
-  #***** GL_NV_element_array *****//
-const 
-  GL_ELEMENT_ARRAY_TYPE_NV* = 0x00008769
-  GL_ELEMENT_ARRAY_POINTER_NV* = 0x0000876A
-
-proc glElementPointerNV*(thetype: TGLenum, pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glElementPointerNV".}
-proc glDrawElementArrayNV*(mode: TGLenum, first: TGLint, count: TGLsizei){.
-    dynlib: dllname, importc: "glDrawElementArrayNV".}
-proc glDrawRangeElementArrayNV*(mode: TGLenum, start: TGLuint, theend: TGLuint, 
-                                first: TGLint, count: TGLsizei){.
-    dynlib: dllname, importc: "glDrawRangeElementArrayNV".}
-proc glMultiDrawElementArrayNV*(mode: TGLenum, first: PGLint, count: PGLsizei, 
-                                primcount: TGLsizei){.dynlib: dllname, 
-    importc: "glMultiDrawElementArrayNV".}
-proc glMultiDrawRangeElementArrayNV*(mode: TGLenum, start: TGLuint, 
-                                     theend: TGLuint, first: PGLint, 
-                                     count: PGLsizei, primcount: TGLsizei){.
-    dynlib: dllname, importc: "glMultiDrawRangeElementArrayNV".}
-  #***** GL_NV_float_buffer *****//
-const 
-  GL_FLOAT_R_NV* = 0x00008880
-  GL_FLOAT_RG_NV* = 0x00008881
-  GL_FLOAT_RGB_NV* = 0x00008882
-  GL_FLOAT_RGBA_NV* = 0x00008883
-  GL_FLOAT_R16_NV* = 0x00008884
-  GL_FLOAT_R32_NV* = 0x00008885
-  GL_FLOAT_RG16_NV* = 0x00008886
-  GL_FLOAT_RG32_NV* = 0x00008887
-  GL_FLOAT_RGB16_NV* = 0x00008888
-  GL_FLOAT_RGB32_NV* = 0x00008889
-  GL_FLOAT_RGBA16_NV* = 0x0000888A
-  GL_FLOAT_RGBA32_NV* = 0x0000888B
-  GL_TEXTURE_FLOAT_COMPONENTS_NV* = 0x0000888C
-  GL_FLOAT_CLEAR_COLOR_VALUE_NV* = 0x0000888D
-  GL_FLOAT_RGBA_MODE_NV* = 0x0000888E
-  #***** GL_NV_fragment_program *****//
-
-const 
-  GL_FRAGMENT_PROGRAM_NV* = 0x00008870
-  GL_MAX_TEXTURE_COORDS_NV* = 0x00008871
-  GL_MAX_TEXTURE_IMAGE_UNITS_NV* = 0x00008872
-  GL_FRAGMENT_PROGRAM_BINDING_NV* = 0x00008873
-  GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV* = 0x00008868
-  GL_PROGRAM_ERROR_STRING_NV* = 0x00008874
-
-proc glProgramNamedParameter4fNV*(id: TGLuint, length: TGLsizei, name: PGLubyte, 
-                                  x: TGLfloat, y: TGLfloat, z: TGLfloat, 
-                                  w: TGLfloat){.dynlib: dllname, 
-    importc: "glProgramNamedParameter4fNV".}
-proc glProgramNamedParameter4dNV*(id: TGLuint, length: TGLsizei, name: PGLubyte, 
-                                  x: TGLdouble, y: TGLdouble, z: TGLdouble, 
-                                  w: TGLdouble){.dynlib: dllname, 
-    importc: "glProgramNamedParameter4dNV".}
-proc glGetProgramNamedParameterfvNV*(id: TGLuint, length: TGLsizei, 
-                                     name: PGLubyte, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetProgramNamedParameterfvNV".}
-proc glGetProgramNamedParameterdvNV*(id: TGLuint, length: TGLsizei, 
-                                     name: PGLubyte, params: PGLdouble){.
-    dynlib: dllname, importc: "glGetProgramNamedParameterdvNV".}
-  # glProgramLocalParameter4dARB  { already defined }
-  # glProgramLocalParameter4dvARB  { already defined }
-  # glProgramLocalParameter4fARB  { already defined }
-  # glProgramLocalParameter4fvARB  { already defined }
-  # glGetProgramLocalParameterdvARB  { already defined }
-  # glGetProgramLocalParameterfvARB  { already defined }
-  #***** GL_NV_primitive_restart *****//
-const 
-  constGL_PRIMITIVE_RESTART_NV* = 0x00008558
-  constGL_PRIMITIVE_RESTART_INDEX_NV* = 0x00008559
-
-proc glPrimitiveRestartNV*(){.dynlib: dllname, importc: "glPrimitiveRestartNV".}
-proc glPrimitiveRestartIndexNV*(index: TGLuint){.dynlib: dllname, 
-    importc: "glPrimitiveRestartIndexNV".}
-  #***** GL_NV_vertex_program2 *****//
-  #***** GL_NV_pixel_data_range *****//
-const 
-  GL_WRITE_PIXEL_DATA_RANGE_NV* = 0x00008878
-  GL_READ_PIXEL_DATA_RANGE_NV* = 0x00008879
-  GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV* = 0x0000887A
-  GL_READ_PIXEL_DATA_RANGE_LENGTH_NV* = 0x0000887B
-  GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV* = 0x0000887C
-  GL_READ_PIXEL_DATA_RANGE_POINTER_NV* = 0x0000887D
-
-proc glPixelDataRangeNV*(target: TGLenum, len: TGLsizei, pointer: PGLvoid){.
-    dynlib: dllname, importc: "glPixelDataRangeNV".}
-proc glFlushPixelDataRangeNV*(target: TGLenum){.dynlib: dllname, 
-    importc: "glFlushPixelDataRangeNV".}
-  # wglAllocateMemoryNV  { already defined }
-  # wglFreeMemoryNV  { already defined }
-  #***** GL_EXT_texture_rectangle *****//
-const 
-  GL_TEXTURE_RECTANGLE_EXT* = 0x000084F5
-  GL_TEXTURE_BINDING_RECTANGLE_EXT* = 0x000084F6
-  GL_PROXY_TEXTURE_RECTANGLE_EXT* = 0x000084F7
-  GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT* = 0x000084F8
-  #***** GL_S3_s3tc *****//
-
-const 
-  GL_RGB_S3TC* = 0x000083A0
-  GL_RGB4_S3TC* = 0x000083A1
-  GL_RGBA_S3TC* = 0x000083A2
-  GL_RGBA4_S3TC* = 0x000083A3
-  #***** GL_ATI_draw_buffers *****//
-
-const 
-  GL_MAX_DRAW_BUFFERS_ATI* = 0x00008824
-  GL_DRAW_BUFFER0_ATI* = 0x00008825
-  GL_DRAW_BUFFER1_ATI* = 0x00008826
-  GL_DRAW_BUFFER2_ATI* = 0x00008827
-  GL_DRAW_BUFFER3_ATI* = 0x00008828
-  GL_DRAW_BUFFER4_ATI* = 0x00008829
-  GL_DRAW_BUFFER5_ATI* = 0x0000882A
-  GL_DRAW_BUFFER6_ATI* = 0x0000882B
-  GL_DRAW_BUFFER7_ATI* = 0x0000882C
-  GL_DRAW_BUFFER8_ATI* = 0x0000882D
-  GL_DRAW_BUFFER9_ATI* = 0x0000882E
-  GL_DRAW_BUFFER10_ATI* = 0x0000882F
-  GL_DRAW_BUFFER11_ATI* = 0x00008830
-  GL_DRAW_BUFFER12_ATI* = 0x00008831
-  GL_DRAW_BUFFER13_ATI* = 0x00008832
-  GL_DRAW_BUFFER14_ATI* = 0x00008833
-  GL_DRAW_BUFFER15_ATI* = 0x00008834
-
-proc glDrawBuffersATI*(n: TGLsizei, bufs: PGLenum){.dynlib: dllname, 
-    importc: "glDrawBuffersATI".}
-  #***** GL_ATI_texture_env_combine3 *****//
-const 
-  GL_MODULATE_ADD_ATI* = 0x00008744
-  GL_MODULATE_SIGNED_ADD_ATI* = 0x00008745
-  GL_MODULATE_SUBTRACT_ATI* = 0x00008746
-  #***** GL_ATI_texture_float *****//
-
-const 
-  GL_RGBA_FLOAT32_ATI* = 0x00008814
-  GL_RGB_FLOAT32_ATI* = 0x00008815
-  GL_ALPHA_FLOAT32_ATI* = 0x00008816
-  GL_INTENSITY_FLOAT32_ATI* = 0x00008817
-  GL_LUMINANCE_FLOAT32_ATI* = 0x00008818
-  GL_LUMINANCE_ALPHA_FLOAT32_ATI* = 0x00008819
-  GL_RGBA_FLOAT16_ATI* = 0x0000881A
-  GL_RGB_FLOAT16_ATI* = 0x0000881B
-  GL_ALPHA_FLOAT16_ATI* = 0x0000881C
-  GL_INTENSITY_FLOAT16_ATI* = 0x0000881D
-  GL_LUMINANCE_FLOAT16_ATI* = 0x0000881E
-  GL_LUMINANCE_ALPHA_FLOAT16_ATI* = 0x0000881F
-  #***** GL_NV_texture_expand_normal *****//
-
-const 
-  GL_TEXTURE_UNSIGNED_REMAP_MODE_NV* = 0x0000888F
-  #***** GL_NV_half_float *****//
-
-const 
-  GL_HALF_FLOAT_NV* = 0x0000140B
-
-proc glVertex2hNV*(x: TGLushort, y: TGLushort){.dynlib: dllname, 
-    importc: "glVertex2hNV".}
-proc glVertex2hvNV*(v: PGLushort){.dynlib: dllname, importc: "glVertex2hvNV".}
-proc glVertex3hNV*(x: TGLushort, y: TGLushort, z: TGLushort){.dynlib: dllname, 
-    importc: "glVertex3hNV".}
-proc glVertex3hvNV*(v: PGLushort){.dynlib: dllname, importc: "glVertex3hvNV".}
-proc glVertex4hNV*(x: TGLushort, y: TGLushort, z: TGLushort, w: TGLushort){.
-    dynlib: dllname, importc: "glVertex4hNV".}
-proc glVertex4hvNV*(v: PGLushort){.dynlib: dllname, importc: "glVertex4hvNV".}
-proc glNormal3hNV*(nx: TGLushort, ny: TGLushort, nz: TGLushort){.
-    dynlib: dllname, importc: "glNormal3hNV".}
-proc glNormal3hvNV*(v: PGLushort){.dynlib: dllname, importc: "glNormal3hvNV".}
-proc glColor3hNV*(red: TGLushort, green: TGLushort, blue: TGLushort){.
-    dynlib: dllname, importc: "glColor3hNV".}
-proc glColor3hvNV*(v: PGLushort){.dynlib: dllname, importc: "glColor3hvNV".}
-proc glColor4hNV*(red: TGLushort, green: TGLushort, blue: TGLushort, 
-                  alpha: TGLushort){.dynlib: dllname, importc: "glColor4hNV".}
-proc glColor4hvNV*(v: PGLushort){.dynlib: dllname, importc: "glColor4hvNV".}
-proc glTexCoord1hNV*(s: TGLushort){.dynlib: dllname, importc: "glTexCoord1hNV".}
-proc glTexCoord1hvNV*(v: PGLushort){.dynlib: dllname, importc: "glTexCoord1hvNV".}
-proc glTexCoord2hNV*(s: TGLushort, t: TGLushort){.dynlib: dllname, 
-    importc: "glTexCoord2hNV".}
-proc glTexCoord2hvNV*(v: PGLushort){.dynlib: dllname, importc: "glTexCoord2hvNV".}
-proc glTexCoord3hNV*(s: TGLushort, t: TGLushort, r: TGLushort){.dynlib: dllname, 
-    importc: "glTexCoord3hNV".}
-proc glTexCoord3hvNV*(v: PGLushort){.dynlib: dllname, importc: "glTexCoord3hvNV".}
-proc glTexCoord4hNV*(s: TGLushort, t: TGLushort, r: TGLushort, q: TGLushort){.
-    dynlib: dllname, importc: "glTexCoord4hNV".}
-proc glTexCoord4hvNV*(v: PGLushort){.dynlib: dllname, importc: "glTexCoord4hvNV".}
-proc glMultiTexCoord1hNV*(target: TGLenum, s: TGLushort){.dynlib: dllname, 
-    importc: "glMultiTexCoord1hNV".}
-proc glMultiTexCoord1hvNV*(target: TGLenum, v: PGLushort){.dynlib: dllname, 
-    importc: "glMultiTexCoord1hvNV".}
-proc glMultiTexCoord2hNV*(target: TGLenum, s: TGLushort, t: TGLushort){.
-    dynlib: dllname, importc: "glMultiTexCoord2hNV".}
-proc glMultiTexCoord2hvNV*(target: TGLenum, v: PGLushort){.dynlib: dllname, 
-    importc: "glMultiTexCoord2hvNV".}
-proc glMultiTexCoord3hNV*(target: TGLenum, s: TGLushort, t: TGLushort, 
-                          r: TGLushort){.dynlib: dllname, 
-    importc: "glMultiTexCoord3hNV".}
-proc glMultiTexCoord3hvNV*(target: TGLenum, v: PGLushort){.dynlib: dllname, 
-    importc: "glMultiTexCoord3hvNV".}
-proc glMultiTexCoord4hNV*(target: TGLenum, s: TGLushort, t: TGLushort, 
-                          r: TGLushort, q: TGLushort){.dynlib: dllname, 
-    importc: "glMultiTexCoord4hNV".}
-proc glMultiTexCoord4hvNV*(target: TGLenum, v: PGLushort){.dynlib: dllname, 
-    importc: "glMultiTexCoord4hvNV".}
-proc glFogCoordhNV*(fog: TGLushort){.dynlib: dllname, importc: "glFogCoordhNV".}
-proc glFogCoordhvNV*(fog: PGLushort){.dynlib: dllname, importc: "glFogCoordhvNV".}
-proc glSecondaryColor3hNV*(red: TGLushort, green: TGLushort, blue: TGLushort){.
-    dynlib: dllname, importc: "glSecondaryColor3hNV".}
-proc glSecondaryColor3hvNV*(v: PGLushort){.dynlib: dllname, 
-    importc: "glSecondaryColor3hvNV".}
-proc glVertexWeighthNV*(weight: TGLushort){.dynlib: dllname, 
-    importc: "glVertexWeighthNV".}
-proc glVertexWeighthvNV*(weight: PGLushort){.dynlib: dllname, 
-    importc: "glVertexWeighthvNV".}
-proc glVertexAttrib1hNV*(index: TGLuint, x: TGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib1hNV".}
-proc glVertexAttrib1hvNV*(index: TGLuint, v: PGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib1hvNV".}
-proc glVertexAttrib2hNV*(index: TGLuint, x: TGLushort, y: TGLushort){.
-    dynlib: dllname, importc: "glVertexAttrib2hNV".}
-proc glVertexAttrib2hvNV*(index: TGLuint, v: PGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib2hvNV".}
-proc glVertexAttrib3hNV*(index: TGLuint, x: TGLushort, y: TGLushort, 
-                         z: TGLushort){.dynlib: dllname, 
-                                        importc: "glVertexAttrib3hNV".}
-proc glVertexAttrib3hvNV*(index: TGLuint, v: PGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib3hvNV".}
-proc glVertexAttrib4hNV*(index: TGLuint, x: TGLushort, y: TGLushort, 
-                         z: TGLushort, w: TGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib4hNV".}
-proc glVertexAttrib4hvNV*(index: TGLuint, v: PGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib4hvNV".}
-proc glVertexAttribs1hvNV*(index: TGLuint, n: TGLsizei, v: PGLushort){.
-    dynlib: dllname, importc: "glVertexAttribs1hvNV".}
-proc glVertexAttribs2hvNV*(index: TGLuint, n: TGLsizei, v: PGLushort){.
-    dynlib: dllname, importc: "glVertexAttribs2hvNV".}
-proc glVertexAttribs3hvNV*(index: TGLuint, n: TGLsizei, v: PGLushort){.
-    dynlib: dllname, importc: "glVertexAttribs3hvNV".}
-proc glVertexAttribs4hvNV*(index: TGLuint, n: TGLsizei, v: PGLushort){.
-    dynlib: dllname, importc: "glVertexAttribs4hvNV".}
-  #***** GL_ATI_map_object_buffer *****//
-proc glMapObjectBufferATI*(buffer: TGLuint): PGLvoid{.dynlib: dllname, 
-    importc: "glMapObjectBufferATI".}
-proc glUnmapObjectBufferATI*(buffer: TGLuint){.dynlib: dllname, 
-    importc: "glUnmapObjectBufferATI".}
-  #***** GL_ATI_separate_stencil *****//
-const 
-  GL_KEEP* = 0x00001E00
-  GL_ZERO* = 0x00000000
-  GL_REPLACE* = 0x00001E01
-  GL_INCR* = 0x00001E02
-  GL_DECR* = 0x00001E03
-  GL_INVERT* = 0x0000150A
-  GL_NEVER* = 0x00000200
-  GL_LESS* = 0x00000201
-  GL_LEQUAL* = 0x00000203
-  GL_GREATER* = 0x00000204
-  GL_GEQUAL* = 0x00000206
-  GL_EQUAL* = 0x00000202
-  GL_NOTEQUAL* = 0x00000205
-  GL_ALWAYS* = 0x00000207
-  GL_FRONT* = 0x00000404
-  GL_BACK* = 0x00000405
-  GL_FRONT_AND_BACK* = 0x00000408
-  GL_STENCIL_BACK_FUNC_ATI* = 0x00008800
-  GL_STENCIL_BACK_FAIL_ATI* = 0x00008801
-  GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI* = 0x00008802
-  GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI* = 0x00008803
-
-proc glStencilOpSeparateATI*(face: TGLenum, sfail: TGLenum, dpfail: TGLenum, 
-                             dppass: TGLenum){.dynlib: dllname, 
-    importc: "glStencilOpSeparateATI".}
-proc glStencilFuncSeparateATI*(frontfunc: TGLenum, backfunc: TGLenum, 
-                               theRef: TGLint, mask: TGLuint){.dynlib: dllname, 
-    importc: "glStencilFuncSeparateATI".}
-  #***** GL_ATI_vertex_attrib_array_object *****//
-proc glVertexAttribArrayObjectATI*(index: TGLuint, size: TGLint, 
-                                   thetype: TGLenum, normalized: TGLboolean, 
-                                   stride: TGLsizei, buffer: TGLuint, 
-                                   offset: TGLuint){.dynlib: dllname, 
-    importc: "glVertexAttribArrayObjectATI".}
-proc glGetVertexAttribArrayObjectfvATI*(index: TGLuint, pname: TGLenum, 
-                                        params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetVertexAttribArrayObjectfvATI".}
-proc glGetVertexAttribArrayObjectivATI*(index: TGLuint, pname: TGLenum, 
-                                        params: PGLint){.dynlib: dllname, 
-    importc: "glGetVertexAttribArrayObjectivATI".}
-  #***** GL_ARB_occlusion_query *****//
-const 
-  GL_SAMPLES_PASSED_ARB* = 0x00008914
-  GL_QUERY_COUNTER_BITS_ARB* = 0x00008864
-  GL_CURRENT_QUERY_ARB* = 0x00008865
-  GL_QUERY_RESULT_ARB* = 0x00008866
-  GL_QUERY_RESULT_AVAILABLE_ARB* = 0x00008867
-
-proc glGenQueriesARB*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glGenQueriesARB".}
-proc glDeleteQueriesARB*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteQueriesARB".}
-proc glIsQueryARB*(id: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsQueryARB".}
-proc glBeginQueryARB*(target: TGLenum, id: TGLuint){.dynlib: dllname, 
-    importc: "glBeginQueryARB".}
-proc glEndQueryARB*(target: TGLenum){.dynlib: dllname, importc: "glEndQueryARB".}
-proc glGetQueryivARB*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetQueryivARB".}
-proc glGetQueryObjectivARB*(id: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetQueryObjectivARB".}
-proc glGetQueryObjectuivARB*(id: TGLuint, pname: TGLenum, params: PGLuint){.
-    dynlib: dllname, importc: "glGetQueryObjectuivARB".}
-  #***** GL_ARB_shader_objects *****//
-const 
-  GL_PROGRAM_OBJECT_ARB* = 0x00008B40
-  GL_OBJECT_TYPE_ARB* = 0x00008B4E
-  GL_OBJECT_SUBTYPE_ARB* = 0x00008B4F
-  GL_OBJECT_DELETE_STATUS_ARB* = 0x00008B80
-  GL_OBJECT_COMPILE_STATUS_ARB* = 0x00008B81
-  GL_OBJECT_LINK_STATUS_ARB* = 0x00008B82
-  GL_OBJECT_VALIDATE_STATUS_ARB* = 0x00008B83
-  GL_OBJECT_INFO_LOG_LENGTH_ARB* = 0x00008B84
-  GL_OBJECT_ATTACHED_OBJECTS_ARB* = 0x00008B85
-  GL_OBJECT_ACTIVE_UNIFORMS_ARB* = 0x00008B86
-  GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB* = 0x00008B87
-  GL_OBJECT_SHADER_SOURCE_LENGTH_ARB* = 0x00008B88
-  GL_SHADER_OBJECT_ARB* = 0x00008B48
-  GL_FLOAT* = 0x00001406
-  GL_FLOAT_VEC2_ARB* = 0x00008B50
-  GL_FLOAT_VEC3_ARB* = 0x00008B51
-  GL_FLOAT_VEC4_ARB* = 0x00008B52
-  GL_INT* = 0x00001404
-  GL_INT_VEC2_ARB* = 0x00008B53
-  GL_INT_VEC3_ARB* = 0x00008B54
-  GL_INT_VEC4_ARB* = 0x00008B55
-  GL_BOOL_ARB* = 0x00008B56
-  GL_BOOL_VEC2_ARB* = 0x00008B57
-  GL_BOOL_VEC3_ARB* = 0x00008B58
-  GL_BOOL_VEC4_ARB* = 0x00008B59
-  GL_FLOAT_MAT2_ARB* = 0x00008B5A
-  GL_FLOAT_MAT3_ARB* = 0x00008B5B
-  GL_FLOAT_MAT4_ARB* = 0x00008B5C
-
-proc glDeleteObjectARB*(obj: GLhandleARB){.dynlib: dllname, 
-    importc: "glDeleteObjectARB".}
-proc glGetHandleARB*(pname: TGLenum): GLhandleARB{.dynlib: dllname, 
-    importc: "glGetHandleARB".}
-proc glDetachObjectARB*(containerObj: GLhandleARB, attachedObj: GLhandleARB){.
-    dynlib: dllname, importc: "glDetachObjectARB".}
-proc glCreateShaderObjectARB*(shaderType: TGLenum): GLhandleARB{.
-    dynlib: dllname, importc: "glCreateShaderObjectARB".}
-proc glShaderSourceARB*(shaderObj: GLhandleARB, count: TGLsizei, str: PGLvoid, 
-                        len: PGLint){.dynlib: dllname, 
-                                      importc: "glShaderSourceARB".}
-proc glCompileShaderARB*(shaderObj: GLhandleARB){.dynlib: dllname, 
-    importc: "glCompileShaderARB".}
-proc glCreateProgramObjectARB*(): GLhandleARB{.dynlib: dllname, 
-    importc: "glCreateProgramObjectARB".}
-proc glAttachObjectARB*(containerObj: GLhandleARB, obj: GLhandleARB){.
-    dynlib: dllname, importc: "glAttachObjectARB".}
-proc glLinkProgramARB*(programObj: GLhandleARB){.dynlib: dllname, 
-    importc: "glLinkProgramARB".}
-proc glUseProgramObjectARB*(programObj: GLhandleARB){.dynlib: dllname, 
-    importc: "glUseProgramObjectARB".}
-proc glValidateProgramARB*(programObj: GLhandleARB){.dynlib: dllname, 
-    importc: "glValidateProgramARB".}
-proc glUniform1fARB*(location: TGLint, v0: TGLfloat){.dynlib: dllname, 
-    importc: "glUniform1fARB".}
-proc glUniform2fARB*(location: TGLint, v0: TGLfloat, v1: TGLfloat){.
-    dynlib: dllname, importc: "glUniform2fARB".}
-proc glUniform3fARB*(location: TGLint, v0: TGLfloat, v1: TGLfloat, v2: TGLfloat){.
-    dynlib: dllname, importc: "glUniform3fARB".}
-proc glUniform4fARB*(location: TGLint, v0: TGLfloat, v1: TGLfloat, v2: TGLfloat, 
-                     v3: TGLfloat){.dynlib: dllname, importc: "glUniform4fARB".}
-proc glUniform1iARB*(location: TGLint, v0: TGLint){.dynlib: dllname, 
-    importc: "glUniform1iARB".}
-proc glUniform2iARB*(location: TGLint, v0: TGLint, v1: TGLint){.dynlib: dllname, 
-    importc: "glUniform2iARB".}
-proc glUniform3iARB*(location: TGLint, v0: TGLint, v1: TGLint, v2: TGLint){.
-    dynlib: dllname, importc: "glUniform3iARB".}
-proc glUniform4iARB*(location: TGLint, v0: TGLint, v1: TGLint, v2: TGLint, 
-                     v3: TGLint){.dynlib: dllname, importc: "glUniform4iARB".}
-proc glUniform1fvARB*(location: TGLint, count: TGLsizei, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniform1fvARB".}
-proc glUniform2fvARB*(location: TGLint, count: TGLsizei, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniform2fvARB".}
-proc glUniform3fvARB*(location: TGLint, count: TGLsizei, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniform3fvARB".}
-proc glUniform4fvARB*(location: TGLint, count: TGLsizei, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniform4fvARB".}
-proc glUniform1ivARB*(location: TGLint, count: TGLsizei, value: PGLint){.
-    dynlib: dllname, importc: "glUniform1ivARB".}
-proc glUniform2ivARB*(location: TGLint, count: TGLsizei, value: PGLint){.
-    dynlib: dllname, importc: "glUniform2ivARB".}
-proc glUniform3ivARB*(location: TGLint, count: TGLsizei, value: PGLint){.
-    dynlib: dllname, importc: "glUniform3ivARB".}
-proc glUniform4ivARB*(location: TGLint, count: TGLsizei, value: PGLint){.
-    dynlib: dllname, importc: "glUniform4ivARB".}
-proc glUniformMatrix2fvARB*(location: TGLint, count: TGLsizei, 
-                            transpose: TGLboolean, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniformMatrix2fvARB".}
-proc glUniformMatrix3fvARB*(location: TGLint, count: TGLsizei, 
-                            transpose: TGLboolean, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniformMatrix3fvARB".}
-proc glUniformMatrix4fvARB*(location: TGLint, count: TGLsizei, 
-                            transpose: TGLboolean, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniformMatrix4fvARB".}
-proc glGetObjectParameterfvARB*(obj: GLhandleARB, pname: TGLenum, 
-                                params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetObjectParameterfvARB".}
-proc glGetObjectParameterivARB*(obj: GLhandleARB, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetObjectParameterivARB".}
-proc glGetInfoLogARB*(obj: GLhandleARB, maxLength: TGLsizei, len: PGLsizei, 
-                      infoLog: PGLcharARB){.dynlib: dllname, 
-    importc: "glGetInfoLogARB".}
-proc glGetAttachedObjectsARB*(containerObj: GLhandleARB, maxCount: TGLsizei, 
-                              count: PGLsizei, obj: PGLhandleARB){.
-    dynlib: dllname, importc: "glGetAttachedObjectsARB".}
-proc glGetUniformLocationARB*(programObj: GLhandleARB, name: PGLcharARB): TGLint{.
-    dynlib: dllname, importc: "glGetUniformLocationARB".}
-proc glGetActiveUniformARB*(programObj: GLhandleARB, index: TGLuint, 
-                            maxLength: TGLsizei, len: PGLsizei, size: PGLint, 
-                            thetype: PGLenum, name: PGLcharARB){.
-    dynlib: dllname, importc: "glGetActiveUniformARB".}
-proc glGetUniformfvARB*(programObj: GLhandleARB, location: TGLint, 
-                        params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetUniformfvARB".}
-proc glGetUniformivARB*(programObj: GLhandleARB, location: TGLint, 
-                        params: PGLint){.dynlib: dllname, 
-    importc: "glGetUniformivARB".}
-proc glGetShaderSourceARB*(obj: GLhandleARB, maxLength: TGLsizei, len: PGLsizei, 
-                           source: PGLcharARB){.dynlib: dllname, 
-    importc: "glGetShaderSourceARB".}
-const 
-  GL_VERTEX_SHADER_ARB* = 0x00008B31
-  GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB* = 0x00008B4A
-  GL_MAX_VARYING_FLOATS_ARB* = 0x00008B4B # GL_MAX_VERTEX_ATTRIBS_ARB  { already defined }
-                                          # GL_MAX_TEXTURE_IMAGE_UNITS_ARB  { already defined }
-  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB* = 0x00008B4C
-  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB* = 0x00008B4D # 
-                                                        # 
-                                                        # GL_MAX_TEXTURE_COORDS_ARB  { already defined }
-                                                        # 
-                                                        # 
-                                                        # GL_VERTEX_PROGRAM_POINT_SIZE_ARB  { already defined }
-                                                        # 
-                                                        # 
-                                                        # GL_VERTEX_PROGRAM_TWO_SIDE_ARB  { already defined }
-                                                        # GL_OBJECT_TYPE_ARB  { already defined }
-                                                        # GL_OBJECT_SUBTYPE_ARB  { already defined }
-  GL_OBJECT_ACTIVE_ATTRIBUTES_ARB* = 0x00008B89
-  GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB* = 0x00008B8A # GL_SHADER_OBJECT_ARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # GL_CURRENT_VERTEX_ATTRIB_ARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB  { already defined }
-                                                          # GL_FLOAT  { already defined }
-                                                          # GL_FLOAT_VEC2_ARB  { already defined }
-                                                          # GL_FLOAT_VEC3_ARB  { already defined }
-                                                          # GL_FLOAT_VEC4_ARB  { already defined }
-                                                          # GL_FLOAT_MAT2_ARB  { already defined }
-                                                          # GL_FLOAT_MAT3_ARB  { already defined }
-                                                          # GL_FLOAT_MAT4_ARB  { already defined }
-                                                          # glVertexAttrib1fARB  { already defined }
-                                                          # glVertexAttrib1sARB  { already defined }
-                                                          # glVertexAttrib1dARB  { already defined }
-                                                          # glVertexAttrib2fARB  { already defined }
-                                                          # glVertexAttrib2sARB  { already defined }
-                                                          # glVertexAttrib2dARB  { already defined }
-                                                          # glVertexAttrib3fARB  { already defined }
-                                                          # glVertexAttrib3sARB  { already defined }
-                                                          # glVertexAttrib3dARB  { already defined }
-                                                          # glVertexAttrib4fARB  { already defined }
-                                                          # glVertexAttrib4sARB  { already defined }
-                                                          # glVertexAttrib4dARB  { already defined }
-                                                          # glVertexAttrib4NubARB  { already defined }
-                                                          # glVertexAttrib1fvARB  { already defined }
-                                                          # glVertexAttrib1svARB  { already defined }
-                                                          # glVertexAttrib1dvARB  { already defined }
-                                                          # glVertexAttrib2fvARB  { already defined }
-                                                          # glVertexAttrib2svARB  { already defined }
-                                                          # glVertexAttrib2dvARB  { already defined }
-                                                          # glVertexAttrib3fvARB  { already defined }
-                                                          # glVertexAttrib3svARB  { already defined }
-                                                          # glVertexAttrib3dvARB  { already defined }
-                                                          # glVertexAttrib4fvARB  { already defined }
-                                                          # glVertexAttrib4svARB  { already defined }
-                                                          # glVertexAttrib4dvARB  { already defined }
-                                                          # glVertexAttrib4ivARB  { already defined }
-                                                          # glVertexAttrib4bvARB  { already defined }
-                                                          # glVertexAttrib4ubvARB  { already defined }
-                                                          # glVertexAttrib4usvARB  { already defined }
-                                                          # glVertexAttrib4uivARB  { already defined }
-                                                          # glVertexAttrib4NbvARB  { already defined }
-                                                          # glVertexAttrib4NsvARB  { already defined }
-                                                          # glVertexAttrib4NivARB  { already defined }
-                                                          # glVertexAttrib4NubvARB  { already defined }
-                                                          # glVertexAttrib4NusvARB  { already defined }
-                                                          # glVertexAttrib4NuivARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # glVertexAttribPointerARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # glEnableVertexAttribArrayARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # glDisableVertexAttribArrayARB  { already defined }
-
-proc glBindAttribLocationARB*(programObj: GLhandleARB, index: TGLuint, 
-                              name: PGLcharARB){.dynlib: dllname, 
-    importc: "glBindAttribLocationARB".}
-proc glGetActiveAttribARB*(programObj: GLhandleARB, index: TGLuint, 
-                           maxLength: TGLsizei, len: PGLsizei, size: PGLint, 
-                           thetype: PGLenum, name: PGLcharARB){.dynlib: dllname, 
-    importc: "glGetActiveAttribARB".}
-proc glGetAttribLocationARB*(programObj: GLhandleARB, name: PGLcharARB): TGLint{.
-    dynlib: dllname, importc: "glGetAttribLocationARB".}
-  # glGetVertexAttribdvARB  { already defined }
-  # glGetVertexAttribfvARB  { already defined }
-  # glGetVertexAttribivARB  { already defined }
-  # glGetVertexAttribPointervARB  { already defined }
-  #***** GL_ARB_fragment_shader *****//
-const 
-  GL_FRAGMENT_SHADER_ARB* = 0x00008B30
-  GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB* = 0x00008B49 # GL_MAX_TEXTURE_COORDS_ARB  { already defined }
-                                                       # 
-                                                       # 
-                                                       # GL_MAX_TEXTURE_IMAGE_UNITS_ARB  { already defined }
-                                                       # GL_OBJECT_TYPE_ARB  { already defined }
-                                                       # GL_OBJECT_SUBTYPE_ARB  { already defined }
-                                                       # GL_SHADER_OBJECT_ARB  { already defined }
-  #***** GL_ARB_shading_language_100 *****//
-  #***** GL_ARB_texture_non_power_of_two *****//
-  #***** GL_ARB_point_sprite *****//
-
-const 
-  GL_POINT_SPRITE_ARB* = 0x00008861
-  GL_COORD_REPLACE_ARB* = 0x00008862
-  #***** GL_EXT_depth_bounds_test *****//
-
-const 
-  constGL_DEPTH_BOUNDS_TEST_EXT* = 0x00008890
-  constGL_DEPTH_BOUNDS_EXT* = 0x00008891
-
-proc glDepthBoundsEXT*(zmin: TGLclampd, zmax: TGLclampd){.dynlib: dllname, 
-    importc: "glDepthBoundsEXT".}
-  #***** GL_EXT_texture_mirror_clamp *****//
-const 
-  GL_MIRROR_CLAMP_EXT* = 0x00008742
-  GL_MIRROR_CLAMP_TO_EDGE_EXT* = 0x00008743
-  GL_MIRROR_CLAMP_TO_BORDER_EXT* = 0x00008912
-  #***** GL_EXT_blend_equation_separate *****//
-
-const 
-  GL_BLEND_EQUATION_RGB_EXT* = 0x00008009
-  GL_BLEND_EQUATION_ALPHA_EXT* = 0x0000883D
-
-proc glBlendEquationSeparateEXT*(modeRGB: TGLenum, modeAlpha: TGLenum){.
-    dynlib: dllname, importc: "glBlendEquationSeparateEXT".}
-  #***** GL_MESA_pack_invert *****//
-const 
-  GL_PACK_INVERT_MESA* = 0x00008758
-  #***** GL_MESA_ycbcr_texture *****//
-
-const 
-  GL_YCBCR_MESA* = 0x00008757
-  GL_UNSIGNED_SHORT_8_8_MESA* = 0x000085BA
-  GL_UNSIGNED_SHORT_8_8_REV_MESA* = 0x000085BB
-  #***** GL_ARB_fragment_program_shadow *****//
-  #***** GL_NV_fragment_program_option *****//
-  #***** GL_EXT_pixel_buffer_object *****//
-
-const 
-  GL_PIXEL_PACK_BUFFER_EXT* = 0x000088EB
-  GL_PIXEL_UNPACK_BUFFER_EXT* = 0x000088EC
-  GL_PIXEL_PACK_BUFFER_BINDING_EXT* = 0x000088ED
-  GL_PIXEL_UNPACK_BUFFER_BINDING_EXT* = 0x000088EF
-  #***** GL_NV_fragment_program2 *****//
-
-const 
-  GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV* = 0x000088F4
-  GL_MAX_PROGRAM_CALL_DEPTH_NV* = 0x000088F5
-  GL_MAX_PROGRAM_IF_DEPTH_NV* = 0x000088F6
-  GL_MAX_PROGRAM_LOOP_DEPTH_NV* = 0x000088F7
-  GL_MAX_PROGRAM_LOOP_COUNT_NV* = 0x000088F8
-  #***** GL_NV_vertex_program2_option *****//
-  # GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV  { already defined }
-  # GL_MAX_PROGRAM_CALL_DEPTH_NV  { already defined }
-  #***** GL_NV_vertex_program3 *****//
-  # GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB  { already defined }
-  #***** GL_ARB_draw_buffers *****//
-
-const 
-  GL_MAX_DRAW_BUFFERS_ARB* = 0x00008824
-  GL_DRAW_BUFFER0_ARB* = 0x00008825
-  GL_DRAW_BUFFER1_ARB* = 0x00008826
-  GL_DRAW_BUFFER2_ARB* = 0x00008827
-  GL_DRAW_BUFFER3_ARB* = 0x00008828
-  GL_DRAW_BUFFER4_ARB* = 0x00008829
-  GL_DRAW_BUFFER5_ARB* = 0x0000882A
-  GL_DRAW_BUFFER6_ARB* = 0x0000882B
-  GL_DRAW_BUFFER7_ARB* = 0x0000882C
-  GL_DRAW_BUFFER8_ARB* = 0x0000882D
-  GL_DRAW_BUFFER9_ARB* = 0x0000882E
-  GL_DRAW_BUFFER10_ARB* = 0x0000882F
-  GL_DRAW_BUFFER11_ARB* = 0x00008830
-  GL_DRAW_BUFFER12_ARB* = 0x00008831
-  GL_DRAW_BUFFER13_ARB* = 0x00008832
-  GL_DRAW_BUFFER14_ARB* = 0x00008833
-  GL_DRAW_BUFFER15_ARB* = 0x00008834
-
-proc glDrawBuffersARB*(n: TGLsizei, bufs: PGLenum){.dynlib: dllname, 
-    importc: "glDrawBuffersARB".}
-  #***** GL_ARB_texture_rectangle *****//
-const 
-  GL_TEXTURE_RECTANGLE_ARB* = 0x000084F5
-  GL_TEXTURE_BINDING_RECTANGLE_ARB* = 0x000084F6
-  GL_PROXY_TEXTURE_RECTANGLE_ARB* = 0x000084F7
-  GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB* = 0x000084F8
-  #***** GL_ARB_color_buffer_float *****//
-
-const 
-  GL_RGBA_FLOAT_MODE_ARB* = 0x00008820
-  GL_CLAMP_VERTEX_COLOR_ARB* = 0x0000891A
-  GL_CLAMP_FRAGMENT_COLOR_ARB* = 0x0000891B
-  GL_CLAMP_READ_COLOR_ARB* = 0x0000891C
-  GL_FIXED_ONLY_ARB* = 0x0000891D
-  WGL_TYPE_RGBA_FLOAT_ARB* = 0x000021A0
-
-proc glClampColorARB*(target: TGLenum, clamp: TGLenum){.dynlib: dllname, 
-    importc: "glClampColorARB".}
-  #***** GL_ARB_half_float_pixel *****//
-const 
-  GL_HALF_FLOAT_ARB* = 0x0000140B
-  #***** GL_ARB_texture_float *****//
-
-const 
-  GL_TEXTURE_RED_TYPE_ARB* = 0x00008C10
-  GL_TEXTURE_GREEN_TYPE_ARB* = 0x00008C11
-  GL_TEXTURE_BLUE_TYPE_ARB* = 0x00008C12
-  GL_TEXTURE_ALPHA_TYPE_ARB* = 0x00008C13
-  GL_TEXTURE_LUMINANCE_TYPE_ARB* = 0x00008C14
-  GL_TEXTURE_INTENSITY_TYPE_ARB* = 0x00008C15
-  GL_TEXTURE_DEPTH_TYPE_ARB* = 0x00008C16
-  GL_UNSIGNED_NORMALIZED_ARB* = 0x00008C17
-  GL_RGBA32F_ARB* = 0x00008814
-  GL_RGB32F_ARB* = 0x00008815
-  GL_ALPHA32F_ARB* = 0x00008816
-  GL_INTENSITY32F_ARB* = 0x00008817
-  GL_LUMINANCE32F_ARB* = 0x00008818
-  GL_LUMINANCE_ALPHA32F_ARB* = 0x00008819
-  GL_RGBA16F_ARB* = 0x0000881A
-  GL_RGB16F_ARB* = 0x0000881B
-  GL_ALPHA16F_ARB* = 0x0000881C
-  GL_INTENSITY16F_ARB* = 0x0000881D
-  GL_LUMINANCE16F_ARB* = 0x0000881E
-  GL_LUMINANCE_ALPHA16F_ARB* = 0x0000881F
-  #***** GL_EXT_texture_compression_dxt1 *****//
-  # GL_COMPRESSED_RGB_S3TC_DXT1_EXT  { already defined }
-  # GL_COMPRESSED_RGBA_S3TC_DXT1_EXT  { already defined }
-  #***** GL_ARB_pixel_buffer_object *****//
-
-const 
-  GL_PIXEL_PACK_BUFFER_ARB* = 0x000088EB
-  GL_PIXEL_UNPACK_BUFFER_ARB* = 0x000088EC
-  GL_PIXEL_PACK_BUFFER_BINDING_ARB* = 0x000088ED
-  GL_PIXEL_UNPACK_BUFFER_BINDING_ARB* = 0x000088EF
-  #***** GL_EXT_framebuffer_object *****//
-
-const 
-  GL_FRAMEBUFFER_EXT* = 0x00008D40
-  GL_RENDERBUFFER_EXT* = 0x00008D41
-  GL_STENCIL_INDEX_EXT* = 0x00008D45
-  GL_STENCIL_INDEX1_EXT* = 0x00008D46
-  GL_STENCIL_INDEX4_EXT* = 0x00008D47
-  GL_STENCIL_INDEX8_EXT* = 0x00008D48
-  GL_STENCIL_INDEX16_EXT* = 0x00008D49
-  GL_RENDERBUFFER_WIDTH_EXT* = 0x00008D42
-  GL_RENDERBUFFER_HEIGHT_EXT* = 0x00008D43
-  GL_RENDERBUFFER_INTERNAL_FORMAT_EXT* = 0x00008D44
-  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT* = 0x00008CD0
-  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT* = 0x00008CD1
-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT* = 0x00008CD2
-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT* = 0x00008CD3
-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT* = 0x00008CD4
-  GL_COLOR_ATTACHMENT0_EXT* = 0x00008CE0
-  GL_COLOR_ATTACHMENT1_EXT* = 0x00008CE1
-  GL_COLOR_ATTACHMENT2_EXT* = 0x00008CE2
-  GL_COLOR_ATTACHMENT3_EXT* = 0x00008CE3
-  GL_COLOR_ATTACHMENT4_EXT* = 0x00008CE4
-  GL_COLOR_ATTACHMENT5_EXT* = 0x00008CE5
-  GL_COLOR_ATTACHMENT6_EXT* = 0x00008CE6
-  GL_COLOR_ATTACHMENT7_EXT* = 0x00008CE7
-  GL_COLOR_ATTACHMENT8_EXT* = 0x00008CE8
-  GL_COLOR_ATTACHMENT9_EXT* = 0x00008CE9
-  GL_COLOR_ATTACHMENT10_EXT* = 0x00008CEA
-  GL_COLOR_ATTACHMENT11_EXT* = 0x00008CEB
-  GL_COLOR_ATTACHMENT12_EXT* = 0x00008CEC
-  GL_COLOR_ATTACHMENT13_EXT* = 0x00008CED
-  GL_COLOR_ATTACHMENT14_EXT* = 0x00008CEE
-  GL_COLOR_ATTACHMENT15_EXT* = 0x00008CEF
-  GL_DEPTH_ATTACHMENT_EXT* = 0x00008D00
-  GL_STENCIL_ATTACHMENT_EXT* = 0x00008D20
-  GL_FRAMEBUFFER_COMPLETE_EXT* = 0x00008CD5
-  GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT* = 0x00008CD6
-  GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT* = 0x00008CD7
-  GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT* = 0x00008CD8
-  GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT* = 0x00008CD9
-  GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT* = 0x00008CDA
-  GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT* = 0x00008CDB
-  GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT* = 0x00008CDC
-  GL_FRAMEBUFFER_UNSUPPORTED_EXT* = 0x00008CDD
-  GL_FRAMEBUFFER_STATUS_ERROR_EXT* = 0x00008CDE
-  GL_FRAMEBUFFER_BINDING_EXT* = 0x00008CA6
-  GL_RENDERBUFFER_BINDING_EXT* = 0x00008CA7
-  GL_MAX_COLOR_ATTACHMENTS_EXT* = 0x00008CDF
-  GL_MAX_RENDERBUFFER_SIZE_EXT* = 0x000084E8
-  GL_INVALID_FRAMEBUFFER_OPERATION_EXT* = 0x00000506
-
-proc glIsRenderbufferEXT*(renderbuffer: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsRenderbufferEXT".}
-proc glBindRenderbufferEXT*(target: TGLenum, renderbuffer: TGLuint){.
-    dynlib: dllname, importc: "glBindRenderbufferEXT".}
-proc glDeleteRenderbuffersEXT*(n: TGLsizei, renderbuffers: PGLuint){.
-    dynlib: dllname, importc: "glDeleteRenderbuffersEXT".}
-proc glGenRenderbuffersEXT*(n: TGLsizei, renderbuffers: PGLuint){.
-    dynlib: dllname, importc: "glGenRenderbuffersEXT".}
-proc glRenderbufferStorageEXT*(target: TGLenum, internalformat: TGLenum, 
-                               width: TGLsizei, height: TGLsizei){.
-    dynlib: dllname, importc: "glRenderbufferStorageEXT".}
-proc glGetRenderbufferParameterivEXT*(target: TGLenum, pname: TGLenum, 
-                                      params: PGLint){.dynlib: dllname, 
-    importc: "glGetRenderbufferParameterivEXT".}
-proc glIsFramebufferEXT*(framebuffer: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsFramebufferEXT".}
-proc glBindFramebufferEXT*(target: TGLenum, framebuffer: TGLuint){.
-    dynlib: dllname, importc: "glBindFramebufferEXT".}
-proc glDeleteFramebuffersEXT*(n: TGLsizei, framebuffers: PGLuint){.
-    dynlib: dllname, importc: "glDeleteFramebuffersEXT".}
-proc glGenFramebuffersEXT*(n: TGLsizei, framebuffers: PGLuint){.dynlib: dllname, 
-    importc: "glGenFramebuffersEXT".}
-proc glCheckFramebufferStatusEXT*(target: TGLenum): TGLenum{.dynlib: dllname, 
-    importc: "glCheckFramebufferStatusEXT".}
-proc glFramebufferTexture1DEXT*(target: TGLenum, attachment: TGLenum, 
-                                textarget: TGLenum, texture: TGLuint, 
-                                level: TGLint){.dynlib: dllname, 
-    importc: "glFramebufferTexture1DEXT".}
-proc glFramebufferTexture2DEXT*(target: TGLenum, attachment: TGLenum, 
-                                textarget: TGLenum, texture: TGLuint, 
-                                level: TGLint){.dynlib: dllname, 
-    importc: "glFramebufferTexture2DEXT".}
-proc glFramebufferTexture3DEXT*(target: TGLenum, attachment: TGLenum, 
-                                textarget: TGLenum, texture: TGLuint, 
-                                level: TGLint, zoffset: TGLint){.
-    dynlib: dllname, importc: "glFramebufferTexture3DEXT".}
-proc glFramebufferRenderbufferEXT*(target: TGLenum, attachment: TGLenum, 
-                                   renderbuffertarget: TGLenum, 
-                                   renderbuffer: TGLuint){.dynlib: dllname, 
-    importc: "glFramebufferRenderbufferEXT".}
-proc glGetFramebufferAttachmentParameterivEXT*(target: TGLenum, 
-    attachment: TGLenum, pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glGetFramebufferAttachmentParameterivEXT".}
-proc glGenerateMipmapEXT*(target: TGLenum){.dynlib: dllname, 
-    importc: "glGenerateMipmapEXT".}
-  #***** GL_version_1_4 *****//
-const 
-  GL_BLEND_DST_RGB* = 0x000080C8
-  GL_BLEND_SRC_RGB* = 0x000080C9
-  GL_BLEND_DST_ALPHA* = 0x000080CA
-  GL_BLEND_SRC_ALPHA* = 0x000080CB
-  GL_POINT_SIZE_MIN* = 0x00008126
-  GL_POINT_SIZE_MAX* = 0x00008127
-  GL_POINT_FADE_THRESHOLD_SIZE* = 0x00008128
-  GL_POINT_DISTANCE_ATTENUATION* = 0x00008129
-  GL_GENERATE_MIPMAP* = 0x00008191
-  GL_GENERATE_MIPMAP_HINT* = 0x00008192
-  GL_DEPTH_COMPONENT16* = 0x000081A5
-  GL_DEPTH_COMPONENT24* = 0x000081A6
-  GL_DEPTH_COMPONENT32* = 0x000081A7
-  GL_MIRRORED_REPEAT* = 0x00008370
-  GL_FOG_COORDINATE_SOURCE* = 0x00008450
-  GL_FOG_COORDINATE* = 0x00008451
-  GL_FRAGMENT_DEPTH* = 0x00008452
-  GL_CURRENT_FOG_COORDINATE* = 0x00008453
-  GL_FOG_COORDINATE_ARRAY_TYPE* = 0x00008454
-  GL_FOG_COORDINATE_ARRAY_STRIDE* = 0x00008455
-  GL_FOG_COORDINATE_ARRAY_POINTER* = 0x00008456
-  GL_FOG_COORDINATE_ARRAY* = 0x00008457
-  GL_COLOR_SUM* = 0x00008458
-  GL_CURRENT_SECONDARY_COLOR* = 0x00008459
-  GL_SECONDARY_COLOR_ARRAY_SIZE* = 0x0000845A
-  GL_SECONDARY_COLOR_ARRAY_TYPE* = 0x0000845B
-  GL_SECONDARY_COLOR_ARRAY_STRIDE* = 0x0000845C
-  GL_SECONDARY_COLOR_ARRAY_POINTER* = 0x0000845D
-  GL_SECONDARY_COLOR_ARRAY* = 0x0000845E
-  GL_MAX_TEXTURE_LOD_BIAS* = 0x000084FD
-  GL_TEXTURE_FILTER_CONTROL* = 0x00008500
-  GL_TEXTURE_LOD_BIAS* = 0x00008501
-  GL_INCR_WRAP* = 0x00008507
-  GL_DECR_WRAP* = 0x00008508
-  GL_TEXTURE_DEPTH_SIZE* = 0x0000884A
-  GL_DEPTH_TEXTURE_MODE* = 0x0000884B
-  GL_TEXTURE_COMPARE_MODE* = 0x0000884C
-  GL_TEXTURE_COMPARE_FUNC* = 0x0000884D
-  GL_COMPARE_R_TO_TEXTURE* = 0x0000884E
-
-proc glBlendFuncSeparate*(sfactorRGB: TGLenum, dfactorRGB: TGLenum, 
-                          sfactorAlpha: TGLenum, dfactorAlpha: TGLenum){.
-    dynlib: dllname, importc: "glBlendFuncSeparate".}
-proc glFogCoordf*(coord: TGLfloat){.dynlib: dllname, importc: "glFogCoordf".}
-proc glFogCoordfv*(coord: PGLfloat){.dynlib: dllname, importc: "glFogCoordfv".}
-proc glFogCoordd*(coord: TGLdouble){.dynlib: dllname, importc: "glFogCoordd".}
-proc glFogCoorddv*(coord: PGLdouble){.dynlib: dllname, importc: "glFogCoorddv".}
-proc glFogCoordPointer*(thetype: TGLenum, stride: TGLsizei, pointer: PGLvoid){.
-    dynlib: dllname, importc: "glFogCoordPointer".}
-proc glMultiDrawArrays*(mode: TGLenum, first: PGLint, count: PGLsizei, 
-                        primcount: TGLsizei){.dynlib: dllname, 
-    importc: "glMultiDrawArrays".}
-proc glMultiDrawElements*(mode: TGLenum, count: PGLsizei, thetype: TGLenum, 
-                          indices: PGLvoid, primcount: TGLsizei){.
-    dynlib: dllname, importc: "glMultiDrawElements".}
-proc glPointParameterf*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glPointParameterf".}
-proc glPointParameterfv*(pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glPointParameterfv".}
-proc glPointParameteri*(pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glPointParameteri".}
-proc glPointParameteriv*(pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glPointParameteriv".}
-proc glSecondaryColor3b*(red: TGLByte, green: TGLByte, blue: TGLByte){.
-    dynlib: dllname, importc: "glSecondaryColor3b".}
-proc glSecondaryColor3bv*(v: PGLbyte){.dynlib: dllname, 
-                                       importc: "glSecondaryColor3bv".}
-proc glSecondaryColor3d*(red: TGLdouble, green: TGLdouble, blue: TGLdouble){.
-    dynlib: dllname, importc: "glSecondaryColor3d".}
-proc glSecondaryColor3dv*(v: PGLdouble){.dynlib: dllname, 
-    importc: "glSecondaryColor3dv".}
-proc glSecondaryColor3f*(red: TGLfloat, green: TGLfloat, blue: TGLfloat){.
-    dynlib: dllname, importc: "glSecondaryColor3f".}
-proc glSecondaryColor3fv*(v: PGLfloat){.dynlib: dllname, 
-                                        importc: "glSecondaryColor3fv".}
-proc glSecondaryColor3i*(red: TGLint, green: TGLint, blue: TGLint){.
-    dynlib: dllname, importc: "glSecondaryColor3i".}
-proc glSecondaryColor3iv*(v: PGLint){.dynlib: dllname, 
-                                      importc: "glSecondaryColor3iv".}
-proc glSecondaryColor3s*(red: TGLshort, green: TGLshort, blue: TGLshort){.
-    dynlib: dllname, importc: "glSecondaryColor3s".}
-proc glSecondaryColor3sv*(v: PGLshort){.dynlib: dllname, 
-                                        importc: "glSecondaryColor3sv".}
-proc glSecondaryColor3ub*(red: TGLubyte, green: TGLubyte, blue: TGLubyte){.
-    dynlib: dllname, importc: "glSecondaryColor3ub".}
-proc glSecondaryColor3ubv*(v: PGLubyte){.dynlib: dllname, 
-    importc: "glSecondaryColor3ubv".}
-proc glSecondaryColor3ui*(red: TGLuint, green: TGLuint, blue: TGLuint){.
-    dynlib: dllname, importc: "glSecondaryColor3ui".}
-proc glSecondaryColor3uiv*(v: PGLuint){.dynlib: dllname, 
-                                        importc: "glSecondaryColor3uiv".}
-proc glSecondaryColor3us*(red: TGLushort, green: TGLushort, blue: TGLushort){.
-    dynlib: dllname, importc: "glSecondaryColor3us".}
-proc glSecondaryColor3usv*(v: PGLushort){.dynlib: dllname, 
-    importc: "glSecondaryColor3usv".}
-proc glSecondaryColorPointer*(size: TGLint, thetype: TGLenum, stride: TGLsizei, 
-                              pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glSecondaryColorPointer".}
-proc glWindowPos2d*(x: TGLdouble, y: TGLdouble){.dynlib: dllname, 
-    importc: "glWindowPos2d".}
-proc glWindowPos2dv*(v: PGLdouble){.dynlib: dllname, importc: "glWindowPos2dv".}
-proc glWindowPos2f*(x: TGLfloat, y: TGLfloat){.dynlib: dllname, 
-    importc: "glWindowPos2f".}
-proc glWindowPos2fv*(v: PGLfloat){.dynlib: dllname, importc: "glWindowPos2fv".}
-proc glWindowPos2i*(x: TGLint, y: TGLint){.dynlib: dllname, 
-    importc: "glWindowPos2i".}
-proc glWindowPos2iv*(v: PGLint){.dynlib: dllname, importc: "glWindowPos2iv".}
-proc glWindowPos2s*(x: TGLshort, y: TGLshort){.dynlib: dllname, 
-    importc: "glWindowPos2s".}
-proc glWindowPos2sv*(v: PGLshort){.dynlib: dllname, importc: "glWindowPos2sv".}
-proc glWindowPos3d*(x: TGLdouble, y: TGLdouble, z: TGLdouble){.dynlib: dllname, 
-    importc: "glWindowPos3d".}
-proc glWindowPos3dv*(v: PGLdouble){.dynlib: dllname, importc: "glWindowPos3dv".}
-proc glWindowPos3f*(x: TGLfloat, y: TGLfloat, z: TGLfloat){.dynlib: dllname, 
-    importc: "glWindowPos3f".}
-proc glWindowPos3fv*(v: PGLfloat){.dynlib: dllname, importc: "glWindowPos3fv".}
-proc glWindowPos3i*(x: TGLint, y: TGLint, z: TGLint){.dynlib: dllname, 
-    importc: "glWindowPos3i".}
-proc glWindowPos3iv*(v: PGLint){.dynlib: dllname, importc: "glWindowPos3iv".}
-proc glWindowPos3s*(x: TGLshort, y: TGLshort, z: TGLshort){.dynlib: dllname, 
-    importc: "glWindowPos3s".}
-proc glWindowPos3sv*(v: PGLshort){.dynlib: dllname, importc: "glWindowPos3sv".}
-  #***** GL_version_1_5 *****//
-const 
-  GL_BUFFER_SIZE* = 0x00008764
-  GL_BUFFER_USAGE* = 0x00008765
-  GL_QUERY_COUNTER_BITS* = 0x00008864
-  GL_CURRENT_QUERY* = 0x00008865
-  GL_QUERY_RESULT* = 0x00008866
-  GL_QUERY_RESULT_AVAILABLE* = 0x00008867
-  GL_ARRAY_BUFFER* = 0x00008892
-  GL_ELEMENT_ARRAY_BUFFER* = 0x00008893
-  GL_ARRAY_BUFFER_BINDING* = 0x00008894
-  GL_ELEMENT_ARRAY_BUFFER_BINDING* = 0x00008895
-  GL_VERTEX_ARRAY_BUFFER_BINDING* = 0x00008896
-  GL_NORMAL_ARRAY_BUFFER_BINDING* = 0x00008897
-  GL_COLOR_ARRAY_BUFFER_BINDING* = 0x00008898
-  GL_INDEX_ARRAY_BUFFER_BINDING* = 0x00008899
-  GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING* = 0x0000889A
-  GL_EDGE_FLAG_ARRAY_BUFFER_BINDING* = 0x0000889B
-  GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING* = 0x0000889C
-  GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING* = 0x0000889D
-  GL_WEIGHT_ARRAY_BUFFER_BINDING* = 0x0000889E
-  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING* = 0x0000889F
-  GL_READ_ONLY* = 0x000088B8
-  GL_WRITE_ONLY* = 0x000088B9
-  GL_READ_WRITE* = 0x000088BA
-  GL_BUFFER_ACCESS* = 0x000088BB
-  GL_BUFFER_MAPPED* = 0x000088BC
-  GL_BUFFER_MAP_POINTER* = 0x000088BD
-  GL_STREAM_DRAW* = 0x000088E0
-  GL_STREAM_READ* = 0x000088E1
-  GL_STREAM_COPY* = 0x000088E2
-  GL_STATIC_DRAW* = 0x000088E4
-  GL_STATIC_READ* = 0x000088E5
-  GL_STATIC_COPY* = 0x000088E6
-  GL_DYNAMIC_DRAW* = 0x000088E8
-  GL_DYNAMIC_READ* = 0x000088E9
-  GL_DYNAMIC_COPY* = 0x000088EA
-  GL_SAMPLES_PASSED* = 0x00008914
-  GL_FOG_COORD_SRC* = 0x00008450
-  GL_FOG_COORD* = 0x00008451
-  GL_CURRENT_FOG_COORD* = 0x00008453
-  GL_FOG_COORD_ARRAY_TYPE* = 0x00008454
-  GL_FOG_COORD_ARRAY_STRIDE* = 0x00008455
-  GL_FOG_COORD_ARRAY_POINTER* = 0x00008456
-  GL_FOG_COORD_ARRAY* = 0x00008457
-  GL_FOG_COORD_ARRAY_BUFFER_BINDING* = 0x0000889D
-  GL_SRC0_RGB* = 0x00008580
-  GL_SRC1_RGB* = 0x00008581
-  GL_SRC2_RGB* = 0x00008582
-  GL_SRC0_ALPHA* = 0x00008588
-  GL_SRC1_ALPHA* = 0x00008589
-  GL_SRC2_ALPHA* = 0x0000858A
-
-proc glGenQueries*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glGenQueries".}
-proc glDeleteQueries*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteQueries".}
-proc glIsQuery*(id: TGLuint): TGLboolean{.dynlib: dllname, importc: "glIsQuery".}
-proc glBeginQuery*(target: TGLenum, id: TGLuint){.dynlib: dllname, 
-    importc: "glBeginQuery".}
-proc glEndQuery*(target: TGLenum){.dynlib: dllname, importc: "glEndQuery".}
-proc glGetQueryiv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetQueryiv".}
-proc glGetQueryObjectiv*(id: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetQueryObjectiv".}
-proc glGetQueryObjectuiv*(id: TGLuint, pname: TGLenum, params: PGLuint){.
-    dynlib: dllname, importc: "glGetQueryObjectuiv".}
-proc glBindBuffer*(target: TGLenum, buffer: TGLuint){.dynlib: dllname, 
-    importc: "glBindBuffer".}
-proc glDeleteBuffers*(n: TGLsizei, buffers: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteBuffers".}
-proc glGenBuffers*(n: TGLsizei, buffers: PGLuint){.dynlib: dllname, 
-    importc: "glGenBuffers".}
-proc glIsBuffer*(buffer: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsBuffer".}
-proc glBufferData*(target: TGLenum, size: GLsizeiptr, data: PGLvoid, 
-                   usage: TGLenum){.dynlib: dllname, importc: "glBufferData".}
-proc glBufferSubData*(target: TGLenum, offset: GLintptr, size: GLsizeiptr, 
-                      data: PGLvoid){.dynlib: dllname, 
-                                      importc: "glBufferSubData".}
-proc glGetBufferSubData*(target: TGLenum, offset: GLintptr, size: GLsizeiptr, 
-                         data: PGLvoid){.dynlib: dllname, 
-    importc: "glGetBufferSubData".}
-proc glMapBuffer*(target: TGLenum, access: TGLenum): PGLvoid{.dynlib: dllname, 
-    importc: "glMapBuffer".}
-proc glUnmapBuffer*(target: TGLenum): TGLboolean{.dynlib: dllname, 
-    importc: "glUnmapBuffer".}
-proc glGetBufferParameteriv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetBufferParameteriv".}
-proc glGetBufferPointerv*(target: TGLenum, pname: TGLenum, params: PGLvoid){.
-    dynlib: dllname, importc: "glGetBufferPointerv".}
-  #***** GL_version_2_0 *****//
-const 
-  GL_BLEND_EQUATION_RGB* = 0x00008009
-  GL_VERTEX_ATTRIB_ARRAY_ENABLED* = 0x00008622
-  GL_VERTEX_ATTRIB_ARRAY_SIZE* = 0x00008623
-  GL_VERTEX_ATTRIB_ARRAY_STRIDE* = 0x00008624
-  GL_VERTEX_ATTRIB_ARRAY_TYPE* = 0x00008625
-  GL_CURRENT_VERTEX_ATTRIB* = 0x00008626
-  GL_VERTEX_PROGRAM_POINT_SIZE* = 0x00008642
-  GL_VERTEX_PROGRAM_TWO_SIDE* = 0x00008643
-  GL_VERTEX_ATTRIB_ARRAY_POINTER* = 0x00008645
-  GL_STENCIL_BACK_FUNC* = 0x00008800
-  GL_STENCIL_BACK_FAIL* = 0x00008801
-  GL_STENCIL_BACK_PASS_DEPTH_FAIL* = 0x00008802
-  GL_STENCIL_BACK_PASS_DEPTH_PASS* = 0x00008803
-  GL_MAX_DRAW_BUFFERS* = 0x00008824
-  GL_DRAW_BUFFER0* = 0x00008825
-  GL_DRAW_BUFFER1* = 0x00008826
-  GL_DRAW_BUFFER2* = 0x00008827
-  GL_DRAW_BUFFER3* = 0x00008828
-  GL_DRAW_BUFFER4* = 0x00008829
-  GL_DRAW_BUFFER5* = 0x0000882A
-  GL_DRAW_BUFFER6* = 0x0000882B
-  GL_DRAW_BUFFER7* = 0x0000882C
-  GL_DRAW_BUFFER8* = 0x0000882D
-  GL_DRAW_BUFFER9* = 0x0000882E
-  GL_DRAW_BUFFER10* = 0x0000882F
-  GL_DRAW_BUFFER11* = 0x00008830
-  GL_DRAW_BUFFER12* = 0x00008831
-  GL_DRAW_BUFFER13* = 0x00008832
-  GL_DRAW_BUFFER14* = 0x00008833
-  GL_DRAW_BUFFER15* = 0x00008834
-  GL_BLEND_EQUATION_ALPHA* = 0x0000883D
-  GL_POINT_SPRITE* = 0x00008861
-  GL_COORD_REPLACE* = 0x00008862
-  GL_MAX_VERTEX_ATTRIBS* = 0x00008869
-  GL_VERTEX_ATTRIB_ARRAY_NORMALIZED* = 0x0000886A
-  GL_MAX_TEXTURE_COORDS* = 0x00008871
-  GL_MAX_TEXTURE_IMAGE_UNITS* = 0x00008872
-  GL_FRAGMENT_SHADER* = 0x00008B30
-  GL_VERTEX_SHADER* = 0x00008B31
-  GL_MAX_FRAGMENT_UNIFORM_COMPONENTS* = 0x00008B49
-  GL_MAX_VERTEX_UNIFORM_COMPONENTS* = 0x00008B4A
-  GL_MAX_VARYING_FLOATS* = 0x00008B4B
-  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS* = 0x00008B4C
-  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS* = 0x00008B4D
-  GL_SHADER_TYPE* = 0x00008B4F
-  GL_FLOAT_VEC2* = 0x00008B50
-  GL_FLOAT_VEC3* = 0x00008B51
-  GL_FLOAT_VEC4* = 0x00008B52
-  GL_INT_VEC2* = 0x00008B53
-  GL_INT_VEC3* = 0x00008B54
-  GL_INT_VEC4* = 0x00008B55
-  GL_BOOL* = 0x00008B56
-  GL_BOOL_VEC2* = 0x00008B57
-  GL_BOOL_VEC3* = 0x00008B58
-  GL_BOOL_VEC4* = 0x00008B59
-  GL_FLOAT_MAT2* = 0x00008B5A
-  GL_FLOAT_MAT3* = 0x00008B5B
-  GL_FLOAT_MAT4* = 0x00008B5C
-  GL_SAMPLER_1D* = 0x00008B5D
-  GL_SAMPLER_2D* = 0x00008B5E
-  GL_SAMPLER_3D* = 0x00008B5F
-  GL_SAMPLER_CUBE* = 0x00008B60
-  GL_SAMPLER_1D_SHADOW* = 0x00008B61
-  GL_SAMPLER_2D_SHADOW* = 0x00008B62
-  GL_DELETE_STATUS* = 0x00008B80
-  GL_COMPILE_STATUS* = 0x00008B81
-  GL_LINK_STATUS* = 0x00008B82
-  GL_VALIDATE_STATUS* = 0x00008B83
-  GL_INFO_LOG_LENGTH* = 0x00008B84
-  GL_ATTACHED_SHADERS* = 0x00008B85
-  GL_ACTIVE_UNIFORMS* = 0x00008B86
-  GL_ACTIVE_UNIFORM_MAX_LENGTH* = 0x00008B87
-  GL_SHADER_SOURCE_LENGTH* = 0x00008B88
-  GL_ACTIVE_ATTRIBUTES* = 0x00008B89
-  GL_ACTIVE_ATTRIBUTE_MAX_LENGTH* = 0x00008B8A
-  GL_FRAGMENT_SHADER_DERIVATIVE_HINT* = 0x00008B8B
-  GL_SHADING_LANGUAGE_VERSION* = 0x00008B8C
-  GL_CURRENT_PROGRAM* = 0x00008B8D
-  GL_POINT_SPRITE_COORD_ORIGIN* = 0x00008CA0
-  GL_LOWER_LEFT* = 0x00008CA1
-  GL_UPPER_LEFT* = 0x00008CA2
-  GL_STENCIL_BACK_REF* = 0x00008CA3
-  GL_STENCIL_BACK_VALUE_MASK* = 0x00008CA4
-  GL_STENCIL_BACK_WRITEMASK* = 0x00008CA5
-
-{.pop.}
\ No newline at end of file
diff --git a/lib/wrappers/opengl/glu.nim b/lib/wrappers/opengl/glu.nim
deleted file mode 100644
index e00120d83..000000000
--- a/lib/wrappers/opengl/glu.nim
+++ /dev/null
@@ -1,335 +0,0 @@
-#
-#
-#  Adaption of the delphi3d.net OpenGL units to FreePascal
-#  Sebastian Guenther (sg@freepascal.org) in 2002
-#  These units are free to use
-#******************************************************************************
-# Converted to Delphi by Tom Nuydens (tom@delphi3d.net)                        
-# For the latest updates, visit Delphi3D: http://www.delphi3d.net              
-#******************************************************************************
-
-import 
-  GL
-
-when defined(windows): 
-  {.push, callconv: stdcall.}
-else: 
-  {.push, callconv: cdecl.}
-
-when defined(windows): 
-  const 
-    dllname = "glu32.dll"
-elif defined(macosx): 
-  const 
-    dllname = "/System/Library/Frameworks/OpenGL.framework/Libraries/libGLU.dylib"
-else: 
-  const 
-    dllname = "libGLU.so.1"
-type 
-  TViewPortArray* = array[0..3, TGLint]
-  T16dArray* = array[0..15, TGLdouble]
-  TCallBack* = proc ()
-  T3dArray* = array[0..2, TGLdouble]
-  T4pArray* = array[0..3, Pointer]
-  T4fArray* = array[0..3, TGLfloat]
-  PPointer* = ptr Pointer
-
-type 
-  GLUnurbs*{.final.} = object 
-  PGLUnurbs* = ptr GLUnurbs
-  GLUquadric*{.final.} = object 
-  PGLUquadric* = ptr GLUquadric
-  GLUtesselator*{.final.} = object 
-  PGLUtesselator* = ptr GLUtesselator # backwards compatibility:
-  GLUnurbsObj* = GLUnurbs
-  PGLUnurbsObj* = PGLUnurbs
-  GLUquadricObj* = GLUquadric
-  PGLUquadricObj* = PGLUquadric
-  GLUtesselatorObj* = GLUtesselator
-  PGLUtesselatorObj* = PGLUtesselator
-  GLUtriangulatorObj* = GLUtesselator
-  PGLUtriangulatorObj* = PGLUtesselator
-  TGLUnurbs* = GLUnurbs
-  TGLUquadric* = GLUquadric
-  TGLUtesselator* = GLUtesselator
-  TGLUnurbsObj* = GLUnurbsObj
-  TGLUquadricObj* = GLUquadricObj
-  TGLUtesselatorObj* = GLUtesselatorObj
-  TGLUtriangulatorObj* = GLUtriangulatorObj
-
-proc gluErrorString*(errCode: TGLenum): cstring{.dynlib: dllname, 
-    importc: "gluErrorString".}
-proc gluErrorUnicodeStringEXT*(errCode: TGLenum): ptr int16{.dynlib: dllname, 
-    importc: "gluErrorUnicodeStringEXT".}
-proc gluGetString*(name: TGLenum): cstring{.dynlib: dllname, 
-    importc: "gluGetString".}
-proc gluOrtho2D*(left, right, bottom, top: TGLdouble){.dynlib: dllname, 
-    importc: "gluOrtho2D".}
-proc gluPerspective*(fovy, aspect, zNear, zFar: TGLdouble){.dynlib: dllname, 
-    importc: "gluPerspective".}
-proc gluPickMatrix*(x, y, width, height: TGLdouble, viewport: var TViewPortArray){.
-    dynlib: dllname, importc: "gluPickMatrix".}
-proc gluLookAt*(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: TGLdouble){.
-    dynlib: dllname, importc: "gluLookAt".}
-proc gluProject*(objx, objy, objz: TGLdouble, 
-                 modelMatrix, projMatrix: var T16dArray, 
-                 viewport: var TViewPortArray, winx, winy, winz: PGLdouble): int{.
-    dynlib: dllname, importc: "gluProject".}
-proc gluUnProject*(winx, winy, winz: TGLdouble, 
-                   modelMatrix, projMatrix: var T16dArray, 
-                   viewport: var TViewPortArray, objx, objy, objz: PGLdouble): int{.
-    dynlib: dllname, importc: "gluUnProject".}
-proc gluScaleImage*(format: TGLenum, widthin, heightin: TGLint, typein: TGLenum, 
-                    datain: Pointer, widthout, heightout: TGLint, 
-                    typeout: TGLenum, dataout: Pointer): int{.dynlib: dllname, 
-    importc: "gluScaleImage".}
-proc gluBuild1DMipmaps*(target: TGLenum, components, width: TGLint, 
-                        format, atype: TGLenum, data: Pointer): int{.
-    dynlib: dllname, importc: "gluBuild1DMipmaps".}
-proc gluBuild2DMipmaps*(target: TGLenum, components, width, height: TGLint, 
-                        format, atype: TGLenum, data: Pointer): int{.
-    dynlib: dllname, importc: "gluBuild2DMipmaps".}
-proc gluNewQuadric*(): PGLUquadric{.dynlib: dllname, importc: "gluNewQuadric".}
-proc gluDeleteQuadric*(state: PGLUquadric){.dynlib: dllname, 
-    importc: "gluDeleteQuadric".}
-proc gluQuadricNormals*(quadObject: PGLUquadric, normals: TGLenum){.
-    dynlib: dllname, importc: "gluQuadricNormals".}
-proc gluQuadricTexture*(quadObject: PGLUquadric, textureCoords: TGLboolean){.
-    dynlib: dllname, importc: "gluQuadricTexture".}
-proc gluQuadricOrientation*(quadObject: PGLUquadric, orientation: TGLenum){.
-    dynlib: dllname, importc: "gluQuadricOrientation".}
-proc gluQuadricDrawStyle*(quadObject: PGLUquadric, drawStyle: TGLenum){.
-    dynlib: dllname, importc: "gluQuadricDrawStyle".}
-proc gluCylinder*(qobj: PGLUquadric, baseRadius, topRadius, height: TGLdouble, 
-                  slices, stacks: TGLint){.dynlib: dllname, 
-    importc: "gluCylinder".}
-proc gluDisk*(qobj: PGLUquadric, innerRadius, outerRadius: TGLdouble, 
-              slices, loops: TGLint){.dynlib: dllname, importc: "gluDisk".}
-proc gluPartialDisk*(qobj: PGLUquadric, innerRadius, outerRadius: TGLdouble, 
-                     slices, loops: TGLint, startAngle, sweepAngle: TGLdouble){.
-    dynlib: dllname, importc: "gluPartialDisk".}
-proc gluSphere*(qobj: PGLuquadric, radius: TGLdouble, slices, stacks: TGLint){.
-    dynlib: dllname, importc: "gluSphere".}
-proc gluQuadricCallback*(qobj: PGLUquadric, which: TGLenum, fn: TCallBack){.
-    dynlib: dllname, importc: "gluQuadricCallback".}
-proc gluNewTess*(): PGLUtesselator{.dynlib: dllname, importc: "gluNewTess".}
-proc gluDeleteTess*(tess: PGLUtesselator){.dynlib: dllname, 
-    importc: "gluDeleteTess".}
-proc gluTessBeginPolygon*(tess: PGLUtesselator, polygon_data: Pointer){.
-    dynlib: dllname, importc: "gluTessBeginPolygon".}
-proc gluTessBeginContour*(tess: PGLUtesselator){.dynlib: dllname, 
-    importc: "gluTessBeginContour".}
-proc gluTessVertex*(tess: PGLUtesselator, coords: var T3dArray, data: Pointer){.
-    dynlib: dllname, importc: "gluTessVertex".}
-proc gluTessEndContour*(tess: PGLUtesselator){.dynlib: dllname, 
-    importc: "gluTessEndContour".}
-proc gluTessEndPolygon*(tess: PGLUtesselator){.dynlib: dllname, 
-    importc: "gluTessEndPolygon".}
-proc gluTessProperty*(tess: PGLUtesselator, which: TGLenum, value: TGLdouble){.
-    dynlib: dllname, importc: "gluTessProperty".}
-proc gluTessNormal*(tess: PGLUtesselator, x, y, z: TGLdouble){.dynlib: dllname, 
-    importc: "gluTessNormal".}
-proc gluTessCallback*(tess: PGLUtesselator, which: TGLenum, fn: TCallBack){.
-    dynlib: dllname, importc: "gluTessCallback".}
-proc gluGetTessProperty*(tess: PGLUtesselator, which: TGLenum, value: PGLdouble){.
-    dynlib: dllname, importc: "gluGetTessProperty".}
-proc gluNewNurbsRenderer*(): PGLUnurbs{.dynlib: dllname, 
-                                        importc: "gluNewNurbsRenderer".}
-proc gluDeleteNurbsRenderer*(nobj: PGLUnurbs){.dynlib: dllname, 
-    importc: "gluDeleteNurbsRenderer".}
-proc gluBeginSurface*(nobj: PGLUnurbs){.dynlib: dllname, 
-                                        importc: "gluBeginSurface".}
-proc gluBeginCurve*(nobj: PGLUnurbs){.dynlib: dllname, importc: "gluBeginCurve".}
-proc gluEndCurve*(nobj: PGLUnurbs){.dynlib: dllname, importc: "gluEndCurve".}
-proc gluEndSurface*(nobj: PGLUnurbs){.dynlib: dllname, importc: "gluEndSurface".}
-proc gluBeginTrim*(nobj: PGLUnurbs){.dynlib: dllname, importc: "gluBeginTrim".}
-proc gluEndTrim*(nobj: PGLUnurbs){.dynlib: dllname, importc: "gluEndTrim".}
-proc gluPwlCurve*(nobj: PGLUnurbs, count: TGLint, aarray: PGLfloat, 
-                  stride: TGLint, atype: TGLenum){.dynlib: dllname, 
-    importc: "gluPwlCurve".}
-proc gluNurbsCurve*(nobj: PGLUnurbs, nknots: TGLint, knot: PGLfloat, 
-                    stride: TGLint, ctlarray: PGLfloat, order: TGLint, 
-                    atype: TGLenum){.dynlib: dllname, importc: "gluNurbsCurve".}
-proc gluNurbsSurface*(nobj: PGLUnurbs, sknot_count: TGLint, sknot: PGLfloat, 
-                      tknot_count: TGLint, tknot: PGLfloat, 
-                      s_stride, t_stride: TGLint, ctlarray: PGLfloat, 
-                      sorder, torder: TGLint, atype: TGLenum){.dynlib: dllname, 
-    importc: "gluNurbsSurface".}
-proc gluLoadSamplingMatrices*(nobj: PGLUnurbs, 
-                              modelMatrix, projMatrix: var T16dArray, 
-                              viewport: var TViewPortArray){.dynlib: dllname, 
-    importc: "gluLoadSamplingMatrices".}
-proc gluNurbsProperty*(nobj: PGLUnurbs, aproperty: TGLenum, value: TGLfloat){.
-    dynlib: dllname, importc: "gluNurbsProperty".}
-proc gluGetNurbsProperty*(nobj: PGLUnurbs, aproperty: TGLenum, value: PGLfloat){.
-    dynlib: dllname, importc: "gluGetNurbsProperty".}
-proc gluNurbsCallback*(nobj: PGLUnurbs, which: TGLenum, fn: TCallBack){.
-    dynlib: dllname, importc: "gluNurbsCallback".}
-  #*** Callback function prototypes ***
-type                          # gluQuadricCallback
-  GLUquadricErrorProc* = proc (p: TGLenum) # gluTessCallback
-  GLUtessBeginProc* = proc (p: TGLenum)
-  GLUtessEdgeFlagProc* = proc (p: TGLboolean)
-  GLUtessVertexProc* = proc (p: Pointer)
-  GLUtessEndProc* = proc ()
-  GLUtessErrorProc* = proc (p: TGLenum)
-  GLUtessCombineProc* = proc (p1: var T3dArray, p2: T4pArray, p3: T4fArray, 
-                              p4: PPointer)
-  GLUtessBeginDataProc* = proc (p1: TGLenum, p2: Pointer)
-  GLUtessEdgeFlagDataProc* = proc (p1: TGLboolean, p2: Pointer)
-  GLUtessVertexDataProc* = proc (p1, p2: Pointer)
-  GLUtessEndDataProc* = proc (p: Pointer)
-  GLUtessErrorDataProc* = proc (p1: TGLenum, p2: Pointer)
-  GLUtessCombineDataProc* = proc (p1: var T3dArray, p2: var T4pArray, 
-                                  p3: var T4fArray, p4: PPointer, p5: Pointer) # 
-                                                                               # 
-                                                                               # gluNurbsCallback
-  GLUnurbsErrorProc* = proc (p: TGLenum) #***           Generic constants               ****/
-
-const                         # Version
-  GLU_VERSION_1_1* = 1
-  GLU_VERSION_1_2* = 1        # Errors: (return value 0 = no error)
-  GLU_INVALID_ENUM* = 100900
-  GLU_INVALID_VALUE* = 100901
-  GLU_OUT_OF_MEMORY* = 100902
-  GLU_INCOMPATIBLE_GL_VERSION* = 100903 # StringName
-  GLU_VERSION* = 100800
-  GLU_EXTENSIONS* = 100801    # Boolean
-  GLU_TRUE* = GL_TRUE
-  GLU_FALSE* = GL_FALSE #***           Quadric constants               ****/
-                        # QuadricNormal
-  GLU_SMOOTH* = 100000
-  GLU_FLAT* = 100001
-  GLU_NONE* = 100002          # QuadricDrawStyle
-  GLU_POINT* = 100010
-  GLU_LINE* = 100011
-  GLU_FILL* = 100012
-  GLU_SILHOUETTE* = 100013    # QuadricOrientation
-  GLU_OUTSIDE* = 100020
-  GLU_INSIDE* = 100021        # Callback types:
-                              #      GLU_ERROR       = 100103;
-                              #***           Tesselation constants           ****/
-  GLU_TESS_MAX_COORD* = 1.00000e+150 # TessProperty
-  GLU_TESS_WINDING_RULE* = 100140
-  GLU_TESS_BOUNDARY_ONLY* = 100141
-  GLU_TESS_TOLERANCE* = 100142 # TessWinding
-  GLU_TESS_WINDING_ODD* = 100130
-  GLU_TESS_WINDING_NONZERO* = 100131
-  GLU_TESS_WINDING_POSITIVE* = 100132
-  GLU_TESS_WINDING_NEGATIVE* = 100133
-  GLU_TESS_WINDING_ABS_GEQ_TWO* = 100134 # TessCallback
-  GLU_TESS_BEGIN* = 100100    # void (CALLBACK*)(TGLenum    type)
-  constGLU_TESS_VERTEX* = 100101 # void (CALLBACK*)(void      *data)
-  GLU_TESS_END* = 100102      # void (CALLBACK*)(void)
-  GLU_TESS_ERROR* = 100103    # void (CALLBACK*)(TGLenum    errno)
-  GLU_TESS_EDGE_FLAG* = 100104 # void (CALLBACK*)(TGLboolean boundaryEdge)
-  GLU_TESS_COMBINE* = 100105 # void (CALLBACK*)(TGLdouble  coords[3],
-                             #                                                            void      *data[4],
-                             #                                                            TGLfloat   weight[4],
-                             #                                                            void      **dataOut) 
-  GLU_TESS_BEGIN_DATA* = 100106 # void (CALLBACK*)(TGLenum    type,
-                                #                                                            void      *polygon_data) 
-  GLU_TESS_VERTEX_DATA* = 100107 # void (CALLBACK*)(void      *data,
-                                 #                                                            void      *polygon_data) 
-  GLU_TESS_END_DATA* = 100108 # void (CALLBACK*)(void      *polygon_data)
-  GLU_TESS_ERROR_DATA* = 100109 # void (CALLBACK*)(TGLenum    errno,
-                                #                                                            void      *polygon_data) 
-  GLU_TESS_EDGE_FLAG_DATA* = 100110 # void (CALLBACK*)(TGLboolean boundaryEdge,
-                                    #                                                            void      *polygon_data) 
-  GLU_TESS_COMBINE_DATA* = 100111 # void (CALLBACK*)(TGLdouble  coords[3],
-                                  #                                                            void      *data[4],
-                                  #                                                            TGLfloat   weight[4],
-                                  #                                                            void      **dataOut,
-                                  #                                                            void      *polygon_data) 
-                                  # TessError
-  GLU_TESS_ERROR1* = 100151
-  GLU_TESS_ERROR2* = 100152
-  GLU_TESS_ERROR3* = 100153
-  GLU_TESS_ERROR4* = 100154
-  GLU_TESS_ERROR5* = 100155
-  GLU_TESS_ERROR6* = 100156
-  GLU_TESS_ERROR7* = 100157
-  GLU_TESS_ERROR8* = 100158
-  GLU_TESS_MISSING_BEGIN_POLYGON* = GLU_TESS_ERROR1
-  GLU_TESS_MISSING_BEGIN_CONTOUR* = GLU_TESS_ERROR2
-  GLU_TESS_MISSING_END_POLYGON* = GLU_TESS_ERROR3
-  GLU_TESS_MISSING_END_CONTOUR* = GLU_TESS_ERROR4
-  GLU_TESS_COORD_TOO_LARGE* = GLU_TESS_ERROR5
-  GLU_TESS_NEED_COMBINE_CALLBACK* = GLU_TESS_ERROR6 #***           NURBS constants                 ****/
-                                                    # NurbsProperty
-  GLU_AUTO_LOAD_MATRIX* = 100200
-  GLU_CULLING* = 100201
-  GLU_SAMPLING_TOLERANCE* = 100203
-  GLU_DISPLAY_MODE* = 100204
-  GLU_PARAMETRIC_TOLERANCE* = 100202
-  GLU_SAMPLING_METHOD* = 100205
-  GLU_U_STEP* = 100206
-  GLU_V_STEP* = 100207        # NurbsSampling
-  GLU_PATH_LENGTH* = 100215
-  GLU_PARAMETRIC_ERROR* = 100216
-  GLU_DOMAIN_DISTANCE* = 100217 # NurbsTrim
-  GLU_MAP1_TRIM_2* = 100210
-  GLU_MAP1_TRIM_3* = 100211   # NurbsDisplay
-                              #      GLU_FILL                = 100012;
-  GLU_OUTLINE_POLYGON* = 100240
-  GLU_OUTLINE_PATCH* = 100241 # NurbsCallback
-                              #      GLU_ERROR               = 100103;
-                              # NurbsErrors
-  GLU_NURBS_ERROR1* = 100251
-  GLU_NURBS_ERROR2* = 100252
-  GLU_NURBS_ERROR3* = 100253
-  GLU_NURBS_ERROR4* = 100254
-  GLU_NURBS_ERROR5* = 100255
-  GLU_NURBS_ERROR6* = 100256
-  GLU_NURBS_ERROR7* = 100257
-  GLU_NURBS_ERROR8* = 100258
-  GLU_NURBS_ERROR9* = 100259
-  GLU_NURBS_ERROR10* = 100260
-  GLU_NURBS_ERROR11* = 100261
-  GLU_NURBS_ERROR12* = 100262
-  GLU_NURBS_ERROR13* = 100263
-  GLU_NURBS_ERROR14* = 100264
-  GLU_NURBS_ERROR15* = 100265
-  GLU_NURBS_ERROR16* = 100266
-  GLU_NURBS_ERROR17* = 100267
-  GLU_NURBS_ERROR18* = 100268
-  GLU_NURBS_ERROR19* = 100269
-  GLU_NURBS_ERROR20* = 100270
-  GLU_NURBS_ERROR21* = 100271
-  GLU_NURBS_ERROR22* = 100272
-  GLU_NURBS_ERROR23* = 100273
-  GLU_NURBS_ERROR24* = 100274
-  GLU_NURBS_ERROR25* = 100275
-  GLU_NURBS_ERROR26* = 100276
-  GLU_NURBS_ERROR27* = 100277
-  GLU_NURBS_ERROR28* = 100278
-  GLU_NURBS_ERROR29* = 100279
-  GLU_NURBS_ERROR30* = 100280
-  GLU_NURBS_ERROR31* = 100281
-  GLU_NURBS_ERROR32* = 100282
-  GLU_NURBS_ERROR33* = 100283
-  GLU_NURBS_ERROR34* = 100284
-  GLU_NURBS_ERROR35* = 100285
-  GLU_NURBS_ERROR36* = 100286
-  GLU_NURBS_ERROR37* = 100287 #***           Backwards compatibility for old tesselator           ****/
-
-proc gluBeginPolygon*(tess: PGLUtesselator){.dynlib: dllname, 
-    importc: "gluBeginPolygon".}
-proc gluNextContour*(tess: PGLUtesselator, atype: TGLenum){.dynlib: dllname, 
-    importc: "gluNextContour".}
-proc gluEndPolygon*(tess: PGLUtesselator){.dynlib: dllname, 
-    importc: "gluEndPolygon".}
-const                         # Contours types -- obsolete!
-  GLU_CW* = 100120
-  GLU_CCW* = 100121
-  GLU_INTERIOR* = 100122
-  GLU_EXTERIOR* = 100123
-  GLU_UNKNOWN* = 100124       # Names without "TESS_" prefix
-  GLU_BEGIN* = GLU_TESS_BEGIN
-  GLU_VERTEX* = constGLU_TESS_VERTEX
-  GLU_END* = GLU_TESS_END
-  GLU_ERROR* = GLU_TESS_ERROR
-  GLU_EDGE_FLAG* = GLU_TESS_EDGE_FLAG
-
-{.pop.}
-# implementation
diff --git a/lib/wrappers/opengl/glut.nim b/lib/wrappers/opengl/glut.nim
deleted file mode 100644
index ff157c327..000000000
--- a/lib/wrappers/opengl/glut.nim
+++ /dev/null
@@ -1,438 +0,0 @@
-#
-#
-#  Adaption of the delphi3d.net OpenGL units to FreePascal
-#  Sebastian Guenther (sg@freepascal.org) in 2002
-#  These units are free to use
-#
-
-# Copyright (c) Mark J. Kilgard, 1994, 1995, 1996.
-# This program is freely distributable without licensing fees  and is
-#   provided without guarantee or warrantee expressed or  implied. This
-#   program is -not- in the public domain.
-#******************************************************************************
-# Converted to Delphi by Tom Nuydens (tom@delphi3d.net)
-#   Contributions by Igor Karpov (glygrik@hotbox.ru)
-#   For the latest updates, visit Delphi3D: http://www.delphi3d.net
-#******************************************************************************
-
-import 
-  GL
-
-when defined(windows): 
-  const 
-    dllname = "glut32.dll"
-elif defined(macosx): 
-  const 
-    dllname = "/System/Library/Frameworks/GLUT.framework/GLUT"
-else: 
-  const 
-    dllname = "libglut.so.3"
-type
-  TGlutVoidCallback* = proc (){.cdecl.}
-  TGlut1IntCallback* = proc (value: cint){.cdecl.}
-  TGlut2IntCallback* = proc (v1, v2: cint){.cdecl.}
-  TGlut3IntCallback* = proc (v1, v2, v3: cint){.cdecl.}
-  TGlut4IntCallback* = proc (v1, v2, v3, v4: cint){.cdecl.}
-  TGlut1Char2IntCallback* = proc (c: int8, v1, v2: cint){.cdecl.}
-  TGlut1UInt3IntCallback* = proc (u, v1, v2, v3: cint){.cdecl.}
-
-const 
-  GLUT_API_VERSION* = 3
-  GLUT_XLIB_IMPLEMENTATION* = 12 # Display mode bit masks.
-  GLUT_RGB* = 0
-  GLUT_RGBA* = GLUT_RGB
-  GLUT_INDEX* = 1
-  GLUT_SINGLE* = 0
-  GLUT_DOUBLE* = 2
-  GLUT_ACCUM* = 4
-  GLUT_ALPHA* = 8
-  GLUT_DEPTH* = 16
-  GLUT_STENCIL* = 32
-  GLUT_MULTISAMPLE* = 128
-  GLUT_STEREO* = 256
-  GLUT_LUMINANCE* = 512       # Mouse buttons.
-  GLUT_LEFT_BUTTON* = 0
-  GLUT_MIDDLE_BUTTON* = 1
-  GLUT_RIGHT_BUTTON* = 2      # Mouse button state.
-  GLUT_DOWN* = 0
-  GLUT_UP* = 1                # function keys
-  GLUT_KEY_F1* = 1
-  GLUT_KEY_F2* = 2
-  GLUT_KEY_F3* = 3
-  GLUT_KEY_F4* = 4
-  GLUT_KEY_F5* = 5
-  GLUT_KEY_F6* = 6
-  GLUT_KEY_F7* = 7
-  GLUT_KEY_F8* = 8
-  GLUT_KEY_F9* = 9
-  GLUT_KEY_F10* = 10
-  GLUT_KEY_F11* = 11
-  GLUT_KEY_F12* = 12          # directional keys
-  GLUT_KEY_LEFT* = 100
-  GLUT_KEY_UP* = 101
-  GLUT_KEY_RIGHT* = 102
-  GLUT_KEY_DOWN* = 103
-  GLUT_KEY_PAGE_UP* = 104
-  GLUT_KEY_PAGE_DOWN* = 105
-  GLUT_KEY_HOME* = 106
-  GLUT_KEY_END* = 107
-  GLUT_KEY_INSERT* = 108      # Entry/exit  state.
-  GLUT_LEFT* = 0
-  GLUT_ENTERED* = 1           # Menu usage state.
-  GLUT_MENU_NOT_IN_USE* = 0
-  GLUT_MENU_IN_USE* = 1       # Visibility  state.
-  GLUT_NOT_VISIBLE* = 0
-  GLUT_VISIBLE* = 1           # Window status  state.
-  GLUT_HIDDEN* = 0
-  GLUT_FULLY_RETAINED* = 1
-  GLUT_PARTIALLY_RETAINED* = 2
-  GLUT_FULLY_COVERED* = 3     # Color index component selection values.
-  GLUT_RED* = 0
-  GLUT_GREEN* = 1
-  GLUT_BLUE* = 2              # Layers for use.
-  GLUT_NORMAL* = 0
-  GLUT_OVERLAY* = 1
-
-when defined(Windows): 
-  const                       # Stroke font constants (use these in GLUT program).
-    GLUT_STROKE_ROMAN* = cast[Pointer](0)
-    GLUT_STROKE_MONO_ROMAN* = cast[Pointer](1) # Bitmap font constants (use these in GLUT program).
-    GLUT_BITMAP_9_BY_15* = cast[Pointer](2)
-    GLUT_BITMAP_8_BY_13* = cast[Pointer](3)
-    GLUT_BITMAP_TIMES_ROMAN_10* = cast[Pointer](4)
-    GLUT_BITMAP_TIMES_ROMAN_24* = cast[Pointer](5)
-    GLUT_BITMAP_HELVETICA_10* = cast[Pointer](6)
-    GLUT_BITMAP_HELVETICA_12* = cast[Pointer](7)
-    GLUT_BITMAP_HELVETICA_18* = cast[Pointer](8)
-else: 
-  var                         # Stroke font constants (use these in GLUT program).
-    GLUT_STROKE_ROMAN*: Pointer
-    GLUT_STROKE_MONO_ROMAN*: Pointer # Bitmap font constants (use these in GLUT program).
-    GLUT_BITMAP_9_BY_15*: Pointer
-    GLUT_BITMAP_8_BY_13*: Pointer
-    GLUT_BITMAP_TIMES_ROMAN_10*: Pointer
-    GLUT_BITMAP_TIMES_ROMAN_24*: Pointer
-    GLUT_BITMAP_HELVETICA_10*: Pointer
-    GLUT_BITMAP_HELVETICA_12*: Pointer
-    GLUT_BITMAP_HELVETICA_18*: Pointer
-const                         # glutGet parameters.
-  GLUT_WINDOW_X* = 100
-  GLUT_WINDOW_Y* = 101
-  GLUT_WINDOW_WIDTH* = 102
-  GLUT_WINDOW_HEIGHT* = 103
-  GLUT_WINDOW_BUFFER_SIZE* = 104
-  GLUT_WINDOW_STENCIL_SIZE* = 105
-  GLUT_WINDOW_DEPTH_SIZE* = 106
-  GLUT_WINDOW_RED_SIZE* = 107
-  GLUT_WINDOW_GREEN_SIZE* = 108
-  GLUT_WINDOW_BLUE_SIZE* = 109
-  GLUT_WINDOW_ALPHA_SIZE* = 110
-  GLUT_WINDOW_ACCUM_RED_SIZE* = 111
-  GLUT_WINDOW_ACCUM_GREEN_SIZE* = 112
-  GLUT_WINDOW_ACCUM_BLUE_SIZE* = 113
-  GLUT_WINDOW_ACCUM_ALPHA_SIZE* = 114
-  GLUT_WINDOW_DOUBLEBUFFER* = 115
-  GLUT_WINDOW_RGBA* = 116
-  GLUT_WINDOW_PARENT* = 117
-  GLUT_WINDOW_NUM_CHILDREN* = 118
-  GLUT_WINDOW_COLORMAP_SIZE* = 119
-  GLUT_WINDOW_NUM_SAMPLES* = 120
-  GLUT_WINDOW_STEREO* = 121
-  GLUT_WINDOW_CURSOR* = 122
-  GLUT_SCREEN_WIDTH* = 200
-  GLUT_SCREEN_HEIGHT* = 201
-  GLUT_SCREEN_WIDTH_MM* = 202
-  GLUT_SCREEN_HEIGHT_MM* = 203
-  GLUT_MENU_NUM_ITEMS* = 300
-  GLUT_DISPLAY_MODE_POSSIBLE* = 400
-  GLUT_INIT_WINDOW_X* = 500
-  GLUT_INIT_WINDOW_Y* = 501
-  GLUT_INIT_WINDOW_WIDTH* = 502
-  GLUT_INIT_WINDOW_HEIGHT* = 503
-  constGLUT_INIT_DISPLAY_MODE* = 504
-  GLUT_ELAPSED_TIME* = 700
-  GLUT_WINDOW_FORMAT_ID* = 123 # glutDeviceGet parameters.
-  GLUT_HAS_KEYBOARD* = 600
-  GLUT_HAS_MOUSE* = 601
-  GLUT_HAS_SPACEBALL* = 602
-  GLUT_HAS_DIAL_AND_BUTTON_BOX* = 603
-  GLUT_HAS_TABLET* = 604
-  GLUT_NUM_MOUSE_BUTTONS* = 605
-  GLUT_NUM_SPACEBALL_BUTTONS* = 606
-  GLUT_NUM_BUTTON_BOX_BUTTONS* = 607
-  GLUT_NUM_DIALS* = 608
-  GLUT_NUM_TABLET_BUTTONS* = 609
-  GLUT_DEVICE_IGNORE_KEY_REPEAT* = 610
-  GLUT_DEVICE_KEY_REPEAT* = 611
-  GLUT_HAS_JOYSTICK* = 612
-  GLUT_OWNS_JOYSTICK* = 613
-  GLUT_JOYSTICK_BUTTONS* = 614
-  GLUT_JOYSTICK_AXES* = 615
-  GLUT_JOYSTICK_POLL_RATE* = 616 # glutLayerGet parameters.
-  GLUT_OVERLAY_POSSIBLE* = 800
-  GLUT_LAYER_IN_USE* = 801
-  GLUT_HAS_OVERLAY* = 802
-  GLUT_TRANSPARENT_INDEX* = 803
-  GLUT_NORMAL_DAMAGED* = 804
-  GLUT_OVERLAY_DAMAGED* = 805 # glutVideoResizeGet parameters.
-  GLUT_VIDEO_RESIZE_POSSIBLE* = 900
-  GLUT_VIDEO_RESIZE_IN_USE* = 901
-  GLUT_VIDEO_RESIZE_X_DELTA* = 902
-  GLUT_VIDEO_RESIZE_Y_DELTA* = 903
-  GLUT_VIDEO_RESIZE_WIDTH_DELTA* = 904
-  GLUT_VIDEO_RESIZE_HEIGHT_DELTA* = 905
-  GLUT_VIDEO_RESIZE_X* = 906
-  GLUT_VIDEO_RESIZE_Y* = 907
-  GLUT_VIDEO_RESIZE_WIDTH* = 908
-  GLUT_VIDEO_RESIZE_HEIGHT* = 909 # glutGetModifiers return mask.
-  GLUT_ACTIVE_SHIFT* = 1
-  GLUT_ACTIVE_CTRL* = 2
-  GLUT_ACTIVE_ALT* = 4        # glutSetCursor parameters.
-                              # Basic arrows.
-  GLUT_CURSOR_RIGHT_ARROW* = 0
-  GLUT_CURSOR_LEFT_ARROW* = 1 # Symbolic cursor shapes.
-  GLUT_CURSOR_INFO* = 2
-  GLUT_CURSOR_DESTROY* = 3
-  GLUT_CURSOR_HELP* = 4
-  GLUT_CURSOR_CYCLE* = 5
-  GLUT_CURSOR_SPRAY* = 6
-  GLUT_CURSOR_WAIT* = 7
-  GLUT_CURSOR_TEXT* = 8
-  GLUT_CURSOR_CROSSHAIR* = 9  # Directional cursors.
-  GLUT_CURSOR_UP_DOWN* = 10
-  GLUT_CURSOR_LEFT_RIGHT* = 11 # Sizing cursors.
-  GLUT_CURSOR_TOP_SIDE* = 12
-  GLUT_CURSOR_BOTTOM_SIDE* = 13
-  GLUT_CURSOR_LEFT_SIDE* = 14
-  GLUT_CURSOR_RIGHT_SIDE* = 15
-  GLUT_CURSOR_TOP_LEFT_CORNER* = 16
-  GLUT_CURSOR_TOP_RIGHT_CORNER* = 17
-  GLUT_CURSOR_BOTTOM_RIGHT_CORNER* = 18
-  GLUT_CURSOR_BOTTOM_LEFT_CORNER* = 19 # Inherit from parent window.
-  GLUT_CURSOR_INHERIT* = 100  # Blank cursor.
-  GLUT_CURSOR_NONE* = 101     # Fullscreen crosshair (if available).
-  GLUT_CURSOR_FULL_CROSSHAIR* = 102 # GLUT device control sub-API.
-                                    # glutSetKeyRepeat modes.
-  GLUT_KEY_REPEAT_OFF* = 0
-  GLUT_KEY_REPEAT_ON* = 1
-  GLUT_KEY_REPEAT_DEFAULT* = 2 # Joystick button masks.
-  GLUT_JOYSTICK_BUTTON_A* = 1
-  GLUT_JOYSTICK_BUTTON_B* = 2
-  GLUT_JOYSTICK_BUTTON_C* = 4
-  GLUT_JOYSTICK_BUTTON_D* = 8 # GLUT game mode sub-API.
-                              # glutGameModeGet.
-  GLUT_GAME_MODE_ACTIVE* = 0
-  GLUT_GAME_MODE_POSSIBLE* = 1
-  GLUT_GAME_MODE_WIDTH* = 2
-  GLUT_GAME_MODE_HEIGHT* = 3
-  GLUT_GAME_MODE_PIXEL_DEPTH* = 4
-  GLUT_GAME_MODE_REFRESH_RATE* = 5
-  GLUT_GAME_MODE_DISPLAY_CHANGED* = 6 # GLUT initialization sub-API.
-
-proc glutInit*(argcp: ptr cint, argv: pointer){.dynlib: dllname, 
-    importc: "glutInit".}
-
-proc glutInit*() =
-  ## version that passes `argc` and `argc` implicitely.
-  var
-    cmdLine {.importc: "cmdLine".}: array[0..255, cstring]
-    cmdCount {.importc: "cmdCount".}: cint
-  glutInit(addr(cmdCount), addr(cmdLine))
-
-proc glutInitDisplayMode*(mode: int16){.dynlib: dllname, 
-                                        importc: "glutInitDisplayMode".}
-proc glutInitDisplayString*(str: cstring){.dynlib: dllname, 
-    importc: "glutInitDisplayString".}
-proc glutInitWindowPosition*(x, y: int){.dynlib: dllname, 
-    importc: "glutInitWindowPosition".}
-proc glutInitWindowSize*(width, height: int){.dynlib: dllname, 
-    importc: "glutInitWindowSize".}
-proc glutMainLoop*(){.dynlib: dllname, importc: "glutMainLoop".}
-  # GLUT window sub-API.
-proc glutCreateWindow*(title: cstring): int{.dynlib: dllname, 
-    importc: "glutCreateWindow".}
-proc glutCreateSubWindow*(win, x, y, width, height: int): int{.dynlib: dllname, 
-    importc: "glutCreateSubWindow".}
-proc glutDestroyWindow*(win: int){.dynlib: dllname, importc: "glutDestroyWindow".}
-proc glutPostRedisplay*(){.dynlib: dllname, importc: "glutPostRedisplay".}
-proc glutPostWindowRedisplay*(win: int){.dynlib: dllname, 
-    importc: "glutPostWindowRedisplay".}
-proc glutSwapBuffers*(){.dynlib: dllname, importc: "glutSwapBuffers".}
-proc glutGetWindow*(): int{.dynlib: dllname, importc: "glutGetWindow".}
-proc glutSetWindow*(win: int){.dynlib: dllname, importc: "glutSetWindow".}
-proc glutSetWindowTitle*(title: cstring){.dynlib: dllname, 
-    importc: "glutSetWindowTitle".}
-proc glutSetIconTitle*(title: cstring){.dynlib: dllname, 
-                                        importc: "glutSetIconTitle".}
-proc glutPositionWindow*(x, y: int){.dynlib: dllname, 
-                                     importc: "glutPositionWindow".}
-proc glutReshapeWindow*(width, height: int){.dynlib: dllname, 
-    importc: "glutReshapeWindow".}
-proc glutPopWindow*(){.dynlib: dllname, importc: "glutPopWindow".}
-proc glutPushWindow*(){.dynlib: dllname, importc: "glutPushWindow".}
-proc glutIconifyWindow*(){.dynlib: dllname, importc: "glutIconifyWindow".}
-proc glutShowWindow*(){.dynlib: dllname, importc: "glutShowWindow".}
-proc glutHideWindow*(){.dynlib: dllname, importc: "glutHideWindow".}
-proc glutFullScreen*(){.dynlib: dllname, importc: "glutFullScreen".}
-proc glutSetCursor*(cursor: int){.dynlib: dllname, importc: "glutSetCursor".}
-proc glutWarpPointer*(x, y: int){.dynlib: dllname, importc: "glutWarpPointer".}
-  # GLUT overlay sub-API.
-proc glutEstablishOverlay*(){.dynlib: dllname, importc: "glutEstablishOverlay".}
-proc glutRemoveOverlay*(){.dynlib: dllname, importc: "glutRemoveOverlay".}
-proc glutUseLayer*(layer: TGLenum){.dynlib: dllname, importc: "glutUseLayer".}
-proc glutPostOverlayRedisplay*(){.dynlib: dllname, 
-                                  importc: "glutPostOverlayRedisplay".}
-proc glutPostWindowOverlayRedisplay*(win: int){.dynlib: dllname, 
-    importc: "glutPostWindowOverlayRedisplay".}
-proc glutShowOverlay*(){.dynlib: dllname, importc: "glutShowOverlay".}
-proc glutHideOverlay*(){.dynlib: dllname, importc: "glutHideOverlay".}
-  # GLUT menu sub-API.
-proc glutCreateMenu*(callback: TGlut1IntCallback): int{.dynlib: dllname, 
-    importc: "glutCreateMenu".}
-proc glutDestroyMenu*(menu: int){.dynlib: dllname, importc: "glutDestroyMenu".}
-proc glutGetMenu*(): int{.dynlib: dllname, importc: "glutGetMenu".}
-proc glutSetMenu*(menu: int){.dynlib: dllname, importc: "glutSetMenu".}
-proc glutAddMenuEntry*(caption: cstring, value: int){.dynlib: dllname, 
-    importc: "glutAddMenuEntry".}
-proc glutAddSubMenu*(caption: cstring, submenu: int){.dynlib: dllname, 
-    importc: "glutAddSubMenu".}
-proc glutChangeToMenuEntry*(item: int, caption: cstring, value: int){.
-    dynlib: dllname, importc: "glutChangeToMenuEntry".}
-proc glutChangeToSubMenu*(item: int, caption: cstring, submenu: int){.
-    dynlib: dllname, importc: "glutChangeToSubMenu".}
-proc glutRemoveMenuItem*(item: int){.dynlib: dllname, 
-                                     importc: "glutRemoveMenuItem".}
-proc glutAttachMenu*(button: int){.dynlib: dllname, importc: "glutAttachMenu".}
-proc glutDetachMenu*(button: int){.dynlib: dllname, importc: "glutDetachMenu".}
-  # GLUT window callback sub-API.
-proc glutDisplayFunc*(f: TGlutVoidCallback){.dynlib: dllname, 
-    importc: "glutDisplayFunc".}
-proc glutReshapeFunc*(f: TGlut2IntCallback){.dynlib: dllname, 
-    importc: "glutReshapeFunc".}
-proc glutKeyboardFunc*(f: TGlut1Char2IntCallback){.dynlib: dllname, 
-    importc: "glutKeyboardFunc".}
-proc glutMouseFunc*(f: TGlut4IntCallback){.dynlib: dllname, 
-    importc: "glutMouseFunc".}
-proc glutMotionFunc*(f: TGlut2IntCallback){.dynlib: dllname, 
-    importc: "glutMotionFunc".}
-proc glutPassiveMotionFunc*(f: TGlut2IntCallback){.dynlib: dllname, 
-    importc: "glutPassiveMotionFunc".}
-proc glutEntryFunc*(f: TGlut1IntCallback){.dynlib: dllname, 
-    importc: "glutEntryFunc".}
-proc glutVisibilityFunc*(f: TGlut1IntCallback){.dynlib: dllname, 
-    importc: "glutVisibilityFunc".}
-proc glutIdleFunc*(f: TGlutVoidCallback){.dynlib: dllname, 
-    importc: "glutIdleFunc".}
-proc glutTimerFunc*(millis: int16, f: TGlut1IntCallback, value: int){.
-    dynlib: dllname, importc: "glutTimerFunc".}
-proc glutMenuStateFunc*(f: TGlut1IntCallback){.dynlib: dllname, 
-    importc: "glutMenuStateFunc".}
-proc glutSpecialFunc*(f: TGlut3IntCallback){.dynlib: dllname, 
-    importc: "glutSpecialFunc".}
-proc glutSpaceballMotionFunc*(f: TGlut3IntCallback){.dynlib: dllname, 
-    importc: "glutSpaceballMotionFunc".}
-proc glutSpaceballRotateFunc*(f: TGlut3IntCallback){.dynlib: dllname, 
-    importc: "glutSpaceballRotateFunc".}
-proc glutSpaceballButtonFunc*(f: TGlut2IntCallback){.dynlib: dllname, 
-    importc: "glutSpaceballButtonFunc".}
-proc glutButtonBoxFunc*(f: TGlut2IntCallback){.dynlib: dllname, 
-    importc: "glutButtonBoxFunc".}
-proc glutDialsFunc*(f: TGlut2IntCallback){.dynlib: dllname, 
-    importc: "glutDialsFunc".}
-proc glutTabletMotionFunc*(f: TGlut2IntCallback){.dynlib: dllname, 
-    importc: "glutTabletMotionFunc".}
-proc glutTabletButtonFunc*(f: TGlut4IntCallback){.dynlib: dllname, 
-    importc: "glutTabletButtonFunc".}
-proc glutMenuStatusFunc*(f: TGlut3IntCallback){.dynlib: dllname, 
-    importc: "glutMenuStatusFunc".}
-proc glutOverlayDisplayFunc*(f: TGlutVoidCallback){.dynlib: dllname, 
-    importc: "glutOverlayDisplayFunc".}
-proc glutWindowStatusFunc*(f: TGlut1IntCallback){.dynlib: dllname, 
-    importc: "glutWindowStatusFunc".}
-proc glutKeyboardUpFunc*(f: TGlut1Char2IntCallback){.dynlib: dllname, 
-    importc: "glutKeyboardUpFunc".}
-proc glutSpecialUpFunc*(f: TGlut3IntCallback){.dynlib: dllname, 
-    importc: "glutSpecialUpFunc".}
-proc glutJoystickFunc*(f: TGlut1UInt3IntCallback, pollInterval: int){.
-    dynlib: dllname, importc: "glutJoystickFunc".}
-  # GLUT color index sub-API.
-proc glutSetColor*(cell: int, red, green, blue: TGLfloat){.dynlib: dllname, 
-    importc: "glutSetColor".}
-proc glutGetColor*(ndx, component: int): TGLfloat{.dynlib: dllname, 
-    importc: "glutGetColor".}
-proc glutCopyColormap*(win: int){.dynlib: dllname, importc: "glutCopyColormap".}
-  # GLUT state retrieval sub-API.
-proc glutGet*(t: TGLenum): int{.dynlib: dllname, importc: "glutGet".}
-proc glutDeviceGet*(t: TGLenum): int{.dynlib: dllname, importc: "glutDeviceGet".}
-  # GLUT extension support sub-API
-proc glutExtensionSupported*(name: cstring): int{.dynlib: dllname, 
-    importc: "glutExtensionSupported".}
-proc glutGetModifiers*(): int{.dynlib: dllname, importc: "glutGetModifiers".}
-proc glutLayerGet*(t: TGLenum): int{.dynlib: dllname, importc: "glutLayerGet".}
-  # GLUT font sub-API
-proc glutBitmapCharacter*(font: pointer, character: int){.dynlib: dllname, 
-    importc: "glutBitmapCharacter".}
-proc glutBitmapWidth*(font: pointer, character: int): int{.dynlib: dllname, 
-    importc: "glutBitmapWidth".}
-proc glutStrokeCharacter*(font: pointer, character: int){.dynlib: dllname, 
-    importc: "glutStrokeCharacter".}
-proc glutStrokeWidth*(font: pointer, character: int): int{.dynlib: dllname, 
-    importc: "glutStrokeWidth".}
-proc glutBitmapLength*(font: pointer, str: cstring): int{.dynlib: dllname, 
-    importc: "glutBitmapLength".}
-proc glutStrokeLength*(font: pointer, str: cstring): int{.dynlib: dllname, 
-    importc: "glutStrokeLength".}
-  # GLUT pre-built models sub-API
-proc glutWireSphere*(radius: TGLdouble, slices, stacks: TGLint){.
-    dynlib: dllname, importc: "glutWireSphere".}
-proc glutSolidSphere*(radius: TGLdouble, slices, stacks: TGLint){.
-    dynlib: dllname, importc: "glutSolidSphere".}
-proc glutWireCone*(base, height: TGLdouble, slices, stacks: TGLint){.
-    dynlib: dllname, importc: "glutWireCone".}
-proc glutSolidCone*(base, height: TGLdouble, slices, stacks: TGLint){.
-    dynlib: dllname, importc: "glutSolidCone".}
-proc glutWireCube*(size: TGLdouble){.dynlib: dllname, importc: "glutWireCube".}
-proc glutSolidCube*(size: TGLdouble){.dynlib: dllname, importc: "glutSolidCube".}
-proc glutWireTorus*(innerRadius, outerRadius: TGLdouble, sides, rings: TGLint){.
-    dynlib: dllname, importc: "glutWireTorus".}
-proc glutSolidTorus*(innerRadius, outerRadius: TGLdouble, sides, rings: TGLint){.
-    dynlib: dllname, importc: "glutSolidTorus".}
-proc glutWireDodecahedron*(){.dynlib: dllname, importc: "glutWireDodecahedron".}
-proc glutSolidDodecahedron*(){.dynlib: dllname, importc: "glutSolidDodecahedron".}
-proc glutWireTeapot*(size: TGLdouble){.dynlib: dllname, 
-                                       importc: "glutWireTeapot".}
-proc glutSolidTeapot*(size: TGLdouble){.dynlib: dllname, 
-                                        importc: "glutSolidTeapot".}
-proc glutWireOctahedron*(){.dynlib: dllname, importc: "glutWireOctahedron".}
-proc glutSolidOctahedron*(){.dynlib: dllname, importc: "glutSolidOctahedron".}
-proc glutWireTetrahedron*(){.dynlib: dllname, importc: "glutWireTetrahedron".}
-proc glutSolidTetrahedron*(){.dynlib: dllname, importc: "glutSolidTetrahedron".}
-proc glutWireIcosahedron*(){.dynlib: dllname, importc: "glutWireIcosahedron".}
-proc glutSolidIcosahedron*(){.dynlib: dllname, importc: "glutSolidIcosahedron".}
-  # GLUT video resize sub-API.
-proc glutVideoResizeGet*(param: TGLenum): int{.dynlib: dllname, 
-    importc: "glutVideoResizeGet".}
-proc glutSetupVideoResizing*(){.dynlib: dllname, 
-                                importc: "glutSetupVideoResizing".}
-proc glutStopVideoResizing*(){.dynlib: dllname, importc: "glutStopVideoResizing".}
-proc glutVideoResize*(x, y, width, height: int){.dynlib: dllname, 
-    importc: "glutVideoResize".}
-proc glutVideoPan*(x, y, width, height: int){.dynlib: dllname, 
-    importc: "glutVideoPan".}
-  # GLUT debugging sub-API.
-proc glutReportErrors*(){.dynlib: dllname, importc: "glutReportErrors".}
-  # GLUT device control sub-API.
-proc glutIgnoreKeyRepeat*(ignore: int){.dynlib: dllname, 
-                                        importc: "glutIgnoreKeyRepeat".}
-proc glutSetKeyRepeat*(repeatMode: int){.dynlib: dllname, 
-    importc: "glutSetKeyRepeat".}
-proc glutForceJoystickFunc*(){.dynlib: dllname, importc: "glutForceJoystickFunc".}
-  # GLUT game mode sub-API.
-  #example glutGameModeString('1280x1024:32@75');
-proc glutGameModeString*(AString: cstring){.dynlib: dllname, 
-    importc: "glutGameModeString".}
-proc glutEnterGameMode*(): int{.dynlib: dllname, importc: "glutEnterGameMode".}
-proc glutLeaveGameMode*(){.dynlib: dllname, importc: "glutLeaveGameMode".}
-proc glutGameModeGet*(mode: TGLenum): int{.dynlib: dllname, 
-    importc: "glutGameModeGet".}
-# implementation
diff --git a/lib/wrappers/opengl/glx.nim b/lib/wrappers/opengl/glx.nim
deleted file mode 100644
index ae5ca75b5..000000000
--- a/lib/wrappers/opengl/glx.nim
+++ /dev/null
@@ -1,153 +0,0 @@
-#
-#
-#  Translation of the Mesa GLX headers for FreePascal
-#  Copyright (C) 1999 Sebastian Guenther
-#
-#
-#  Mesa 3-D graphics library
-#  Version:  3.0
-#  Copyright (C) 1995-1998  Brian Paul
-#
-#  This library is free software; you can redistribute it and/or
-#  modify it under the terms of the GNU Library General Public
-#  License as published by the Free Software Foundation; either
-#  version 2 of the License, or (at your option) any later version.
-#
-#  This library is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#  Library General Public License for more details.
-#
-#  You should have received a copy of the GNU Library General Public
-#  License along with this library; if not, write to the Free
-#  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-#
-
-import 
-  X, XLib, XUtil, gl
-
-when defined(windows): 
-  const 
-    dllname = "GL.dll"
-elif defined(macosx): 
-  const 
-    dllname = "/usr/X11R6/lib/libGL.dylib"
-else: 
-  const 
-    dllname = "libGL.so"
-const 
-  GLX_USE_GL* = 1'i32
-  GLX_BUFFER_SIZE* = 2'i32
-  GLX_LEVEL* = 3'i32
-  GLX_RGBA* = 4'i32
-  GLX_DOUBLEBUFFER* = 5'i32
-  GLX_STEREO* = 6'i32
-  GLX_AUX_BUFFERS* = 7'i32
-  GLX_RED_SIZE* = 8'i32
-  GLX_GREEN_SIZE* = 9'i32
-  GLX_BLUE_SIZE* = 10'i32
-  GLX_ALPHA_SIZE* = 11'i32
-  GLX_DEPTH_SIZE* = 12'i32
-  GLX_STENCIL_SIZE* = 13'i32
-  GLX_ACCUM_RED_SIZE* = 14'i32
-  GLX_ACCUM_GREEN_SIZE* = 15'i32
-  GLX_ACCUM_BLUE_SIZE* = 16'i32
-  GLX_ACCUM_ALPHA_SIZE* = 17'i32  # GLX_EXT_visual_info extension
-  GLX_X_VISUAL_TYPE_EXT* = 0x00000022
-  GLX_TRANSPARENT_TYPE_EXT* = 0x00000023
-  GLX_TRANSPARENT_INDEX_VALUE_EXT* = 0x00000024
-  GLX_TRANSPARENT_RED_VALUE_EXT* = 0x00000025
-  GLX_TRANSPARENT_GREEN_VALUE_EXT* = 0x00000026
-  GLX_TRANSPARENT_BLUE_VALUE_EXT* = 0x00000027
-  GLX_TRANSPARENT_ALPHA_VALUE_EXT* = 0x00000028 # Error codes returned by glXGetConfig:
-  GLX_BAD_SCREEN* = 1
-  GLX_BAD_ATTRIBUTE* = 2
-  GLX_NO_EXTENSION* = 3
-  GLX_BAD_VISUAL* = 4
-  GLX_BAD_CONTEXT* = 5
-  GLX_BAD_VALUE* = 6
-  GLX_BAD_ENUM* = 7           # GLX 1.1 and later:
-  GLX_VENDOR* = 1
-  GLX_VERSION* = 2
-  GLX_EXTENSIONS* = 3         # GLX_visual_info extension
-  GLX_TRUE_COLOR_EXT* = 0x00008002
-  GLX_DIRECT_COLOR_EXT* = 0x00008003
-  GLX_PSEUDO_COLOR_EXT* = 0x00008004
-  GLX_STATIC_COLOR_EXT* = 0x00008005
-  GLX_GRAY_SCALE_EXT* = 0x00008006
-  GLX_STATIC_GRAY_EXT* = 0x00008007
-  GLX_NONE_EXT* = 0x00008000
-  GLX_TRANSPARENT_RGB_EXT* = 0x00008008
-  GLX_TRANSPARENT_INDEX_EXT* = 0x00008009
-
-type                          # From XLib:
-  XPixmap* = TXID
-  XFont* = TXID
-  XColormap* = TXID
-  GLXContext* = Pointer
-  GLXPixmap* = TXID
-  GLXDrawable* = TXID
-  GLXContextID* = TXID
-  TXPixmap* = XPixmap
-  TXFont* = XFont
-  TXColormap* = XColormap
-  TGLXContext* = GLXContext
-  TGLXPixmap* = GLXPixmap
-  TGLXDrawable* = GLXDrawable
-  TGLXContextID* = GLXContextID
-
-proc glXChooseVisual*(dpy: PDisplay, screen: int, attribList: ptr int32): PXVisualInfo{.
-    cdecl, dynlib: dllname, importc: "glXChooseVisual".}
-proc glXCreateContext*(dpy: PDisplay, vis: PXVisualInfo, shareList: GLXContext, 
-                       direct: bool): GLXContext{.cdecl, dynlib: dllname, 
-    importc: "glXCreateContext".}
-proc glXDestroyContext*(dpy: PDisplay, ctx: GLXContext){.cdecl, dynlib: dllname, 
-    importc: "glXDestroyContext".}
-proc glXMakeCurrent*(dpy: PDisplay, drawable: GLXDrawable, ctx: GLXContext): bool{.
-    cdecl, dynlib: dllname, importc: "glXMakeCurrent".}
-proc glXCopyContext*(dpy: PDisplay, src, dst: GLXContext, mask: int32){.cdecl, 
-    dynlib: dllname, importc: "glXCopyContext".}
-proc glXSwapBuffers*(dpy: PDisplay, drawable: GLXDrawable){.cdecl, 
-    dynlib: dllname, importc: "glXSwapBuffers".}
-proc glXCreateGLXPixmap*(dpy: PDisplay, visual: PXVisualInfo, pixmap: XPixmap): GLXPixmap{.
-    cdecl, dynlib: dllname, importc: "glXCreateGLXPixmap".}
-proc glXDestroyGLXPixmap*(dpy: PDisplay, pixmap: GLXPixmap){.cdecl, 
-    dynlib: dllname, importc: "glXDestroyGLXPixmap".}
-proc glXQueryExtension*(dpy: PDisplay, errorb, event: var int): bool{.cdecl, 
-    dynlib: dllname, importc: "glXQueryExtension".}
-proc glXQueryVersion*(dpy: PDisplay, maj, min: var int): bool{.cdecl, 
-    dynlib: dllname, importc: "glXQueryVersion".}
-proc glXIsDirect*(dpy: PDisplay, ctx: GLXContext): bool{.cdecl, dynlib: dllname, 
-    importc: "glXIsDirect".}
-proc glXGetConfig*(dpy: PDisplay, visual: PXVisualInfo, attrib: int, 
-                   value: var int): int{.cdecl, dynlib: dllname, 
-    importc: "glXGetConfig".}
-proc glXGetCurrentContext*(): GLXContext{.cdecl, dynlib: dllname, 
-    importc: "glXGetCurrentContext".}
-proc glXGetCurrentDrawable*(): GLXDrawable{.cdecl, dynlib: dllname, 
-    importc: "glXGetCurrentDrawable".}
-proc glXWaitGL*(){.cdecl, dynlib: dllname, importc: "glXWaitGL".}
-proc glXWaitX*(){.cdecl, dynlib: dllname, importc: "glXWaitX".}
-proc glXUseXFont*(font: XFont, first, count, list: int){.cdecl, dynlib: dllname, 
-    importc: "glXUseXFont".}
-  # GLX 1.1 and later
-proc glXQueryExtensionsString*(dpy: PDisplay, screen: int): cstring{.cdecl, 
-    dynlib: dllname, importc: "glXQueryExtensionsString".}
-proc glXQueryServerString*(dpy: PDisplay, screen, name: int): cstring{.cdecl, 
-    dynlib: dllname, importc: "glXQueryServerString".}
-proc glXGetClientString*(dpy: PDisplay, name: int): cstring{.cdecl, 
-    dynlib: dllname, importc: "glXGetClientString".}
-  # Mesa GLX Extensions
-proc glXCreateGLXPixmapMESA*(dpy: PDisplay, visual: PXVisualInfo, 
-                             pixmap: XPixmap, cmap: XColormap): GLXPixmap{.
-    cdecl, dynlib: dllname, importc: "glXCreateGLXPixmapMESA".}
-proc glXReleaseBufferMESA*(dpy: PDisplay, d: GLXDrawable): bool{.cdecl, 
-    dynlib: dllname, importc: "glXReleaseBufferMESA".}
-proc glXCopySubBufferMESA*(dpy: PDisplay, drawbale: GLXDrawable, 
-                           x, y, width, height: int){.cdecl, dynlib: dllname, 
-    importc: "glXCopySubBufferMESA".}
-proc glXGetVideoSyncSGI*(counter: var int32): int{.cdecl, dynlib: dllname, 
-    importc: "glXGetVideoSyncSGI".}
-proc glXWaitVideoSyncSGI*(divisor, remainder: int, count: var int32): int{.
-    cdecl, dynlib: dllname, importc: "glXWaitVideoSyncSGI".}
-# implementation
diff --git a/lib/wrappers/opengl/opengl.nim b/lib/wrappers/opengl/opengl.nim
deleted file mode 100644
index 6549cc6f9..000000000
--- a/lib/wrappers/opengl/opengl.nim
+++ /dev/null
@@ -1,9708 +0,0 @@
-#

-#

-#            Nimrod's Runtime Library

-#        (c) Copyright 2012 Andreas Rumpf

-#

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

-#    distribution, for details about the copyright.

-#

-

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

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

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

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

-##

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

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

-

-when defined(linux):

-  import X, XLib, XUtil

-elif defined(windows):

-  import winlean, os

-

-when defined(windows): 

-  const 

-    ogldll* = "OpenGL32.dll"

-    gludll* = "GLU32.dll"

-elif defined(macosx): 

-  const 

-    ogldll* = "libGL.dylib"

-    gludll* = "libGLU.dylib"

-else: 

-  const 

-    ogldll* = "libGL.so.1"

-    gludll* = "libGLU.so.1"

-

-when defined(useGlew):

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

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

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

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

-else:

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

-  import dynlib

-  

-  let oglHandle = LoadLib(ogldll)

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

-  

-  when defined(windows):

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

-      symAddr(oglHandle, "wglGetProcAddress"))

-  elif defined(linux):

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

-      symAddr(oglHandle, "glXGetProcAddress"))

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

-      symAddr(oglHandle, "glXGetProcAddressARB"))

-

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

-    when defined(windows):

-      result = symAddr(h, procname)

-      if result != nil: return

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

-    elif defined(linux):

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

-      if result != nil: return 

-      if not isNil(glXGetProcAddressARB): 

-        result = glXGetProcAddressARB(ProcName)

-        if result != nil: return

-      result = symAddr(h, procname)

-    else:

-      result = symAddr(h, procName)

-    if result == nil: raiseInvalidLibrary(procName)

-

-  var gluHandle: TLibHandle

-  

-  proc gluGetProc(procname: cstring): pointer =

-    if gluHandle == nil:

-      gluHandle = LoadLib(gludll)

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

-    result = glGetProc(gluHandle, procname)

-  

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

-  # the imported proc name:

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

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

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

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

-  

-  proc nimLoadProcs0() {.importc.}

-  

-  template loadExtensions*() =

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

-    ## extensions.

-    bind nimLoadProcs0

-    nimLoadProcs0()

-

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

-#                                                                              

-#       OpenGL 4.2 - Headertranslation                                         

-#       Version 4.2a                                                           

-#       Date : 26.11.2011                                                      

-#                                                                              

-#       Works with :                                                           

-#        - Delphi 3 and up                                                     

-#        - FreePascal (1.9.3 and up)                                           

-#                                                                              

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

-#                                                                              

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

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

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

-#                                                                              

-#       Copyright (C) DGL-OpenGL2-Portteam                                     

-#       All Rights Reserved                                                    

-#                                                                              

-#       Obtained through:                                                      

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

-#                                                                              

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

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

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

-#       Additional input :                                                     

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

-#         - Lars Middendorf                                                    

-#         - Martin Waldegger (Mars)                                            

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

-#       Additional thanks:                                                     

-#           sigsegv (libdl.so)                                                 

-#                                                                              

-#                                                                              

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

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

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

-#                                                                              

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

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

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

-# obtain a copy of the License at                                              

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

-#                                                                              

-# Software distributed under the License is distributed on an                  

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

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

-# rights and limitations under the License.                                    

-#                                                                              

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

-# History :                                                                    

-# Version 1.0    Initial Release                                               

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

-#                versions lower than 7                                    (SW) 

-#                Added a function named RaiseLastOSError including a comment   

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

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

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

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

-#                but not the core-functions                               (SW) 

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

-#                revert to the default libs anymore                       (MW) 

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

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

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

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

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

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

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

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

-#                Language specification 1.10 :                                 

-#                - Added new GL_SAMPLER*-Constants                            

-#                - Added Constant GL_SHADING_LANGUAGE_VERSION_ARB              

-#                - Added Constant GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB       

-#                - Added Constant GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB  (SW) 

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

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

-#                glCompileShaderARB changed from function to procedure    (MW) 

-# Version 1.5    Added support for FreePascal                             (BR) 

-#                Added type TGLVectorf3/TGLVector3f                       (SW) 

-# Version 1.6    Added Extension GL_EXT_framebuffer_object                (SX) 

-# Version 1.7    Added Extension GL_ARB_fragment_program_shadow           (SX) 

-#                Added Extension GL_ARB_draw_buffers                      (SX) 

-#                Added Extension GL_ARB_texture_rectangle                 (SX) 

-#                Added Extension GL_ARB_color_buffer_float                (SX) 

-#                Added Extension GL_ARB_half_float_pixel                  (SX) 

-#                Added Extension GL_ARB_texture_float                     (SX) 

-#                Added Extension GL_ARB_pixel_buffer_object               (SX) 

-#                Added Extension GL_EXT_depth_bounds_test                 (SX) 

-#                Added Extension GL_EXT_texture_mirror_clamp              (SX) 

-#                Added Extension GL_EXT_blend_equation_separate           (SX) 

-#                Added Extension GL_EXT_pixel_buffer_object               (SX) 

-#                Added Extension GL_EXT_texture_compression_dxt1          (SX) 

-#                Added Extension GL_NV_fragment_program_option            (SX) 

-#                Added Extension GL_NV_fragment_program2                  (SX) 

-#                Added Extension GL_NV_vertex_program2_option             (SX) 

-#                Added Extension GL_NV_vertex_program3                    (SX) 

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

-#                Added .Net 1.1 Support                                   (LM) 

-#                Added .Net overloaded functions                          (LM) 

-#                Added delayed extension loading and stubs                (LM) 

-#                Added automatic InitOpenGL call in CreateRenderingContext(LM) 

-#                Added extra Read* function                              (LM) 

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

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

-#                Removed unexisting extension GL_ARB_texture_mirror_repeat(SX) 

-#                Added Extension WGL_ARB_pixel_format_float               (SX) 

-#                Added Extension GL_EXT_stencil_clear_tag                 (SX) 

-#                Added Extension GL_EXT_texture_rectangle                 (SX) 

-#                Added Extension GL_EXT_texture_edge_clamp                (SX) 

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

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

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

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

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

-#                Bug with wglGetExtensionsStringEXT removed                    

-#                different type for .net                                  (SX) 

-#                Added OpenGL 2.0 Core                                    (SX) 

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

-#                fixes some problems with gluProject                      (SX) 

-#                fixes some problems with gluUnProject                    (SX) 

-#                fixes some problems with gluTessVertex                   (SX) 

-#                fixes some problems with gluLoadSamplingMatrices         (SX) 

-# Version 2.1    Removed .NET Support                                     (SX) 

-#                Better support for Linux                                 (SX) 

-#                Better Codeformation                                     (SX) 

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

-#                Added OpenGL 2.1 Core                                    (SX) 

-#                Added Extension GL_EXT_packed_depth_stencil              (SX) 

-#                Added Extension GL_EXT_texture_sRGB                      (SX) 

-#                Added Extension GL_EXT_framebuffer_blit                  (SX) 

-#                Added Extension GL_EXT_framebuffer_multisample           (SX) 

-#                Added Extension GL_EXT_timer_query                       (SX) 

-#                Added Extension GL_EXT_gpu_program_parameters            (SX) 

-#                Added Extension GL_EXT_bindable_uniform                  (SX) 

-#                Added Extension GL_EXT_draw_buffers2                     (SX) 

-#                Added Extension GL_EXT_draw_instanced                    (SX) 

-#                Added Extension GL_EXT_framebuffer_sRGB                  (SX) 

-#                Added Extension GL_EXT_geometry_shader4                  (SX) 

-#                Added Extension GL_EXT_gpu_shader4                       (SX) 

-#                Added Extension GL_EXT_packed_float                      (SX) 

-#                Added Extension GL_EXT_texture_array                     (SX) 

-#                Added Extension GL_EXT_texture_buffer_object             (SX) 

-#                Added Extension GL_EXT_texture_compression_latc          (SX) 

-#                Added Extension GL_EXT_texture_compression_rgtc          (SX) 

-#                Added Extension GL_EXT_texture_integer                   (SX) 

-#                Added Extension GL_EXT_texture_shared_exponent           (SX) 

-#                Added Extension GL_NV_depth_buffer_float                 (SX) 

-#                Added Extension GL_NV_fragment_program4                  (SX) 

-#                Added Extension GL_NV_framebuffer_multisample_coverage   (SX) 

-#                Added Extension GL_NV_geometry_program4                  (SX) 

-#                Added Extension GL_NV_gpu_program4                       (SX) 

-#                Added Extension GL_NV_parameter_buffer_object            (SX) 

-#                Added Extension GL_NV_transform_feedback                 (SX) 

-#                Added Extension GL_NV_vertex_program4                    (SX) 

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

-#                possible better support for mac                          (SX) 

-#                Added OpenGL 3.0 Core                                    (SX) 

-#                Added Extension GL_ARB_depth_buffer_float                (SX) 

-#                Added Extension GL_ARB_draw_instanced                    (SX) 

-#                Added Extension GL_ARB_framebuffer_object                (SX) 

-#                Added Extension GL_ARB_framebuffer_sRGB                  (SX) 

-#                Added Extension GL_ARB_geometry_shader4                  (SX) 

-#                Added Extension GL_ARB_half_float_vertex                 (SX) 

-#                Added Extension GL_ARB_instanced_arrays                  (SX) 

-#                Added Extension GL_ARB_map_buffer_range                  (SX) 

-#                Added Extension GL_ARB_texture_buffer_object             (SX) 

-#                Added Extension GL_ARB_texture_compression_rgtc          (SX) 

-#                Added Extension GL_ARB_texture_rg                        (SX) 

-#                Added Extension GL_ARB_vertex_array_object               (SX) 

-#                Added Extension GL_NV_conditional_render                 (SX) 

-#                Added Extension GL_NV_present_video                      (SX) 

-#                Added Extension GL_EXT_transform_feedback                (SX) 

-#                Added Extension GL_EXT_direct_state_access               (SX) 

-#                Added Extension GL_EXT_vertex_array_bgra                 (SX) 

-#                Added Extension GL_EXT_texture_swizzle                   (SX) 

-#                Added Extension GL_NV_explicit_multisample               (SX) 

-#                Added Extension GL_NV_transform_feedback2                (SX) 

-#                Added Extension WGL_ARB_create_context                   (SX) 

-#                Added Extension WGL_NV_present_video                     (SX) 

-#                Added Extension WGL_NV_video_out                         (SX) 

-#                Added Extension WGL_NV_swap_group                        (SX) 

-#                Added Extension WGL_NV_gpu_affinity                      (SX) 

-#                Added define DGL_TINY_HEADER to suppress automatic            

-#                function loading                                         (SX) 

-#                glProcedure renamed to dglGetProcAddress and now it's         

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

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

-#                Read_GL_ARB_buffer_object renamed to                          

-#                Read_GL_ARB_vertex_buffer_object                         (SX) 

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

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

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

-#                Functions from GL_ARB_map_buffer_range where updated     (SX) 

-#                Functions from GL_NV_present_video where added           (SX) 

-#                Added consts of GL_ARB_instanced_arrays                  (SX) 

-#                Defines to identify Delphi was changed (prevent for           

-#                feature maintenance)                                     (SX) 

-#                Added Extension GL_ATI_meminfo                           (SX) 

-#                Added Extension GL_AMD_performance_monitor               (SX) 

-#                Added Extension GL_AMD_texture_texture4                  (SX) 

-#                Added Extension GL_AMD_vertex_shader_tesselator          (SX) 

-#                Added Extension GL_EXT_provoking_vertex                  (SX) 

-#                Added Extension WGL_AMD_gpu_association                  (SX) 

-#                Added OpenGL 3.1 Core                                    (SX) 

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

-#                define DGL_DEPRECATED                                    (SX) 

-#                Added Extension GL_ARB_uniform_buffer_object             (SX) 

-#                Added Extension GL_ARB_compatibility                     (SX) 

-#                Added Extension GL_ARB_copy_buffer                       (SX) 

-#                Added Extension GL_ARB_shader_texture_lod                (SX) 

-#                Remove function from GL_NV_present_video                 (SX) 

-#                Added Extension WGL_3DL_stereo_control                   (SX) 

-#                Added Extension GL_EXT_texture_snorm                     (SX) 

-#                Added Extension GL_AMD_draw_buffers_blend                (SX) 

-#                Added Extension GL_APPLE_texture_range                   (SX) 

-#                Added Extension GL_APPLE_float_pixels                    (SX) 

-#                Added Extension GL_APPLE_vertex_program_evaluators       (SX) 

-#                Added Extension GL_APPLE_aux_depth_stencil               (SX) 

-#                Added Extension GL_APPLE_object_purgeable                (SX) 

-#                Added Extension GL_APPLE_row_bytes                       (SX) 

-#                Added OpenGL 3.2 Core                                    (SX) 

-#                Added Extension GL_ARB_depth_clamp                       (SX) 

-#                Added Extension GL_ARB_draw_elements_base_vertex         (SX) 

-#                Added Extension GL_ARB_fragment_coord_conventions        (SX) 

-#                Added Extension GL_ARB_provoking_vertex                  (SX) 

-#                Added Extension GL_ARB_seamless_cube_map                 (SX) 

-#                Added Extension GL_ARB_sync                              (SX) 

-#                Added Extension GL_ARB_texture_multisample               (SX) 

-#                Added Extension GL_ARB_vertex_array_bgra                 (SX) 

-#                Added Extension GL_ARB_draw_buffers_blend                (SX) 

-#                Added Extension GL_ARB_sample_shading                    (SX) 

-#                Added Extension GL_ARB_texture_cube_map_array            (SX) 

-#                Added Extension GL_ARB_texture_gather                    (SX) 

-#                Added Extension GL_ARB_texture_query_lod                 (SX) 

-#                Added Extension WGL_ARB_create_context_profile           (SX) 

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

-#                Added Extension GLX_ARB_multisample                      (SX) 

-#                Added Extension GLX_ARB_fbconfig_float                   (SX) 

-#                Added Extension GLX_ARB_get_proc_address                 (SX) 

-#                Added Extension GLX_ARB_create_context                   (SX) 

-#                Added Extension GLX_ARB_create_context_profile           (SX) 

-#                Added Extension GLX_EXT_visual_info                      (SX) 

-#                Added Extension GLX_EXT_visual_rating                    (SX) 

-#                Added Extension GLX_EXT_import_context                   (SX) 

-#                Added Extension GLX_EXT_fbconfig_packed_float            (SX) 

-#                Added Extension GLX_EXT_framebuffer_sRGB                 (SX) 

-#                Added Extension GLX_EXT_texture_from_pixmap              (SX) 

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

-# Version 3.2.2  Added Extension GL_APPLE_rgb_422                         (SX) 

-#                Added Extension GL_EXT_separate_shader_objects           (SX) 

-#                Added Extension GL_NV_video_capture                      (SX) 

-#                Added Extension GL_NV_copy_image                         (SX) 

-#                Added Extension GL_NV_parameter_buffer_object2           (SX) 

-#                Added Extension GL_NV_shader_buffer_load                 (SX) 

-#                Added Extension GL_NV_vertex_buffer_unified_memory       (SX) 

-#                Added Extension GL_NV_texture_barrier                    (SX) 

-#                Variable GL_EXT_texture_snorm will be filled             (SX) 

-#                Variable GL_APPLE_row_bytes will be filled               (SX) 

-#                Added Extension WGL_NV_video_capture                     (SX) 

-#                Added Extension WGL_NV_copy_image                        (SX) 

-#                WGL_NV_video_out now named WGL_NV_video_output           (SX) 

-#                Added Extension GLX_EXT_swap_control                     (SX) 

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

-#                Added const GL_UNIFORM_BUFFER_EXT                        (SX) 

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

-# Version 4.0    Changes on Extension GL_ARB_texture_gather               (SX) 

-#                Changes on Extension GL_NV_shader_buffer_load            (SX) 

-#                Added OpenGL 3.3 Core                                    (SX) 

-#                Added OpenGL 4.0 Core                                    (SX) 

-#                Added Extension GL_AMD_shader_stencil_export             (SX) 

-#                Added Extension GL_AMD_seamless_cubemap_per_texture      (SX) 

-#                Added Extension GL_ARB_shading_language_include          (SX) 

-#                Added Extension GL_ARB_texture_compression_bptc          (SX) 

-#                Added Extension GL_ARB_blend_func_extended               (SX) 

-#                Added Extension GL_ARB_explicit_attrib_location          (SX) 

-#                Added Extension GL_ARB_occlusion_query2                  (SX) 

-#                Added Extension GL_ARB_sampler_objects                   (SX) 

-#                Added Extension GL_ARB_shader_bit_encoding               (SX) 

-#                Added Extension GL_ARB_texture_rgb10_a2ui                (SX) 

-#                Added Extension GL_ARB_texture_swizzle                   (SX) 

-#                Added Extension GL_ARB_timer_query                       (SX) 

-#                Added Extension GL_ARB_vertextyp_2_10_10_10_rev        (SX) 

-#                Added Extension GL_ARB_draw_indirect                     (SX) 

-#                Added Extension GL_ARB_gpu_shader5                       (SX) 

-#                Added Extension GL_ARB_gpu_shader_fp64                   (SX) 

-#                Added Extension GL_ARB_shader_subroutine                 (SX) 

-#                Added Extension GL_ARB_tessellation_shader               (SX) 

-#                Added Extension GL_ARB_texture_buffer_object_rgb32       (SX) 

-#                Added Extension GL_ARB_transform_feedback2               (SX) 

-#                Added Extension GL_ARB_transform_feedback3               (SX) 

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

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

-#                GL_AMD_vertex_shader_tesselator will be read now         (SX) 

-#                GL_AMD_draw_buffers_blend will be read now               (SX) 

-#                Changes on glStencilFuncSeparate (GL_2_0)                (SX) 

-#                Changes on GL_VERSION_3_2                                (SX) 

-#                Changes on GL_VERSION_3_3                                (SX) 

-#                Changes on GL_VERSION_4_0                                (SX) 

-#                Changes on GL_ARB_sample_shading                         (SX) 

-#                Changes on GL_ARB_texture_cube_map_array                 (SX) 

-#                Changes on GL_ARB_gpu_shader5                            (SX) 

-#                Changes on GL_ARB_transform_feedback3                    (SX) 

-#                Changes on GL_ARB_sampler_objects                        (SX) 

-#                Changes on GL_ARB_gpu_shader_fp64                        (SX) 

-#                Changes on GL_APPLE_element_array                        (SX) 

-#                Changes on GL_APPLE_vertex_array_range                   (SX) 

-#                Changes on GL_NV_transform_feedback                      (SX) 

-#                Changes on GL_NV_vertex_buffer_unified_memory            (SX) 

-#                Changes on GL_EXT_multi_draw_arrays                      (SX) 

-#                Changes on GL_EXT_direct_state_access                    (SX) 

-#                Changes on GL_AMD_performance_monitor                    (SX) 

-#                Changes on GL_AMD_seamless_cubemap_per_texture           (SX) 

-#                Changes on GL_EXT_geometry_shader4                       (SX) 

-#                Added OpenGL 4.1 Core                                    (SX) 

-#                Added Extension GL_ARB_ES2_compatibility                 (SX) 

-#                Added Extension GL_ARB_get_program_binary                (SX) 

-#                Added Extension GL_ARB_separate_shader_objects           (SX) 

-#                Added Extension GL_ARB_shader_precision                  (SX) 

-#                Added Extension GL_ARB_vertex_attrib_64bit               (SX) 

-#                Added Extension GL_ARB_viewport_array                    (SX) 

-#                Added Extension GL_ARB_cl_event                          (SX) 

-#                Added Extension GL_ARB_debug_output                      (SX) 

-#                Added Extension GL_ARB_robustness                        (SX) 

-#                Added Extension GL_ARB_shader_stencil_export             (SX) 

-#                Added Extension GL_AMD_conservative_depth                (SX) 

-#                Added Extension GL_EXT_shader_image_load_store           (SX) 

-#                Added Extension GL_EXT_vertex_attrib_64bit               (SX) 

-#                Added Extension GL_NV_gpu_program5                       (SX) 

-#                Added Extension GL_NV_gpu_shader5                        (SX) 

-#                Added Extension GL_NV_shader_buffer_store                (SX) 

-#                Added Extension GL_NV_tessellation_program5              (SX) 

-#                Added Extension GL_NV_vertex_attrib_integer_64bit        (SX) 

-#                Added Extension GL_NV_multisample_coverage               (SX) 

-#                Added Extension GL_AMD_name_gen_delete                   (SX) 

-#                Added Extension GL_AMD_debug_output                      (SX) 

-#                Added Extension GL_NV_vdpau_interop                      (SX) 

-#                Added Extension GL_AMD_transform_feedback3_lines_triangles (SX) 

-#                Added Extension GL_AMD_depth_clamp_separate              (SX) 

-#                Added Extension GL_EXT_texture_sRGB_decode               (SX) 

-#                Added Extension WGL_ARB_framebuffer_sRGB                 (SX) 

-#                Added Extension WGL_ARB_create_context_robustness        (SX) 

-#                Added Extension WGL_EXT_create_context_es2_profile       (SX) 

-#                Added Extension WGL_NV_multisample_coverage              (SX) 

-#                Added Extension GLX_ARB_vertex_buffer_object             (SX) 

-#                Added Extension GLX_ARB_framebuffer_sRGB                 (SX) 

-#                Added Extension GLX_ARB_create_context_robustness        (SX) 

-#                Added Extension GLX_EXT_create_context_es2_profile       (SX) 

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

-# Version 4.2    Added OpenGL 4.2 Core                                    (SW) 

-#                Added Extension GL_ARB_base_instance                     (SW) 

-#                Added Extension GL_ARB_shading_language_420pack          (SW) 

-#                Added Extension GL_ARB_transform_feedback_instanced      (SW) 

-#                Added Extension GL_ARB_compressed_texture_pixel_storage  (SW) 

-#                Added Extension GL_ARB_conservative_depth                (SW) 

-#                Added Extension GL_ARB_internalformat_query              (SW) 

-#                Added Extension GL_ARB_map_buffer_alignment              (SW) 

-#                Added Extension GL_ARB_shader_atomic_counters            (SW) 

-#                Added Extension GL_ARB_shader_image_load_store           (SW) 

-#                Added Extension GL_ARB_shading_language_packing          (SW) 

-#                Added Extension GL_ARB_texture_storage                   (SW) 

-#                Added Extension WGL_NV_DX_interop                        (SW) 

-#                Added Define for WGL_EXT_create_context_es2_profile      (SW) 

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

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

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

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

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

-#                                                                              

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

-# to keep it up to date                                                        

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

-

-{.deadCodeElim: on.}

-

-type 

-  PPointer* = ptr Pointer

-  GLenum* = uint32

-  GLboolean* = bool

-  GLbitfield* = uint32

-  GLbyte* = int8

-  GLshort* = int16

-  GLint* = int32

-  GLsizei* = int32

-  GLubyte* = uint8

-  GLushort* = uint16

-  GLuint* = uint32

-  GLfloat* = float32

-  GLclampf* = float32

-  GLdouble* = float64

-  GLclampd* = float64

-  GLvoid* = Pointer

-  GLint64* = Int64

-  GLuint64* = uint64

-  TGLenum* = GLenum

-  TGLboolean* = GLboolean

-  TGLbitfield* = GLbitfield

-  TGLbyte* = GLbyte

-  TGLshort* = GLshort

-  TGLint* = GLint

-  TGLsizei* = GLsizei

-  TGLubyte* = GLubyte

-  TGLushort* = GLushort

-  TGLuint* = GLuint

-  TGLfloat* = GLfloat

-  TGLclampf* = GLclampf

-  TGLdouble* = GLdouble

-  TGLclampd* = GLclampd

-  TGLvoid* = GLvoid

-  TGLint64* = GLint64

-  TGLuint64* = GLuint64

-  PGLboolean* = ptr GLboolean

-  PGLbyte* = ptr GLbyte

-  PGLshort* = ptr GLshort

-  PGLint* = ptr GLint

-  PGLsizei* = ptr GLsizei

-  PGLubyte* = ptr GLubyte

-  PGLushort* = ptr GLushort

-  PGLuint* = ptr GLuint

-  PGLclampf* = ptr GLclampf

-  PGLfloat* = ptr GLfloat

-  PGLdouble* = ptr GLdouble

-  PGLclampd* = ptr GLclampd

-  PGLenum* = ptr GLenum

-  PGLvoid* = Pointer

-  PPGLvoid* = ptr PGLvoid

-  PGLint64* = ptr GLint64

-  PGLuint64* = ptr GLuint64   # GL_NV_half_float

-  GLhalfNV* = int16

-  TGLhalfNV* = GLhalfNV

-  PGLhalfNV* = ptr GLhalfNV   # GL_ARB_shader_objects

-  PGLHandleARB* = ptr GLHandleARB

-  GLHandleARB* = int

-  GLcharARB* = Char

-  PGLcharARB* = cstring

-  PPGLcharARB* = ptr PGLcharARB # GL_VERSION_1_5

-  GLintptr* = GLint

-  GLsizeiptr* = GLsizei       # GL_ARB_vertex_buffer_object

-  GLintptrARB* = GLint

-  GLsizeiptrARB* = GLsizei    # GL_VERSION_2_0

-  GLHandle* = int

-  PGLchar* = cstring

-  PPGLchar* = ptr PGLChar     # GL_EXT_timer_query

-  GLint64EXT* = Int64

-  TGLint64EXT* = GLint64EXT

-  PGLint64EXT* = ptr GLint64EXT

-  GLuint64EXT* = GLuint64

-  TGLuint64EXT* = GLuint64EXT

-  PGLuint64EXT* = ptr GLuint64EXT # WGL_ARB_pbuffer

-  

-  GLsync* = Pointer           # GL_ARB_cl_event

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

-  Tcl_context*{.final.} = object 

-  Tcl_event*{.final.} = object 

-  p_cl_context* = ptr Tcl_context

-  p_cl_event* = ptr Tcl_event  # GL_ARB_debug_output

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

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

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

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

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

-      stdcall.}               # GL_NV_vdpau_interop

-  GLvdpauSurfaceNV* = GLintptr

-  PGLvdpauSurfaceNV* = ptr GLvdpauSurfaceNV # GLX

-  

-when defined(windows):

-  type

-    HPBUFFERARB* = THandle      # WGL_EXT_pbuffer

-    HPBUFFEREXT* = THandle      # WGL_NV_present_video

-    PHVIDEOOUTPUTDEVICENV* = ptr HVIDEOOUTPUTDEVICENV

-    HVIDEOOUTPUTDEVICENV* = THandle # WGL_NV_video_output

-    PHPVIDEODEV* = ptr HPVIDEODEV

-    HPVIDEODEV* = THandle       # WGL_NV_gpu_affinity

-    PHPGPUNV* = ptr HPGPUNV

-    PHGPUNV* = ptr HGPUNV       # WGL_NV_video_capture

-    HVIDEOINPUTDEVICENV* = THandle

-    PHVIDEOINPUTDEVICENV* = ptr HVIDEOINPUTDEVICENV

-    HPGPUNV* = THandle

-    HGPUNV* = THandle           # GL_ARB_sync

-

-when defined(LINUX): 

-  type 

-    GLXContext* = Pointer

-    GLXContextID* = TXID

-    GLXDrawable* = TXID

-    GLXFBConfig* = Pointer

-    GLXPbuffer* = TXID

-    GLXPixmap* = TXID

-    GLXWindow* = TXID

-    Window* = TXID

-    Colormap* = TXID

-    Pixmap* = TXID

-    Font* = TXID

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-  TGLArrayf4* = TGLVectorf4

-  TGLArrayf3* = TGLVectorf3

-  TGLArrayd3* = TGLVectord3

-  TGLArrayi4* = TGLVectori4

-  TGLArrayp4* = TGLVectorp4

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

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

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

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

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

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

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

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

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

-  TVector3d* = TGLVectord3

-  TVector4i* = TGLVectori4

-  TVector4f* = TGLVectorf4

-  TVector4p* = TGLVectorp4

-  TMatrix4f* = TGLMatrixf4

-  TMatrix4d* = TGLMatrixd4

-  PGLMatrixd4* = ptr TGLMatrixd4

-  PVector4i* = ptr TVector4i

-  TRect*{.final.} = object 

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

-

-  PGPU_DEVICE* = ptr GPU_DEVICE

-  GPU_DEVICE*{.final.} = object 

-    cb*: int32

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

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

-    Flags*: int32

-    rcVirtualScreen*: TRect

-

-

-when defined(windows): 

-  type 

-    PWGLSwap* = ptr TWGLSwap

-    TWGLSWAP*{.final.} = object 

-      hdc*: HDC

-      uiFlags*: int32

-

-type 

-  TGLUNurbs*{.final.} = object 

-  TGLUQuadric*{.final.} = object 

-  TGLUTesselator*{.final.} = object 

-  PGLUNurbs* = ptr TGLUNurbs

-  PGLUQuadric* = ptr TGLUQuadric

-  PGLUTesselator* = ptr TGLUTesselator # backwards compatibility

-  TGLUNurbsObj* = TGLUNurbs

-  TGLUQuadricObj* = TGLUQuadric

-  TGLUTesselatorObj* = TGLUTesselator

-  TGLUTriangulatorObj* = TGLUTesselator

-  PGLUNurbsObj* = PGLUNurbs

-  PGLUQuadricObj* = PGLUQuadric

-  PGLUTesselatorObj* = PGLUTesselator

-  PGLUTriangulatorObj* = PGLUTesselator # GLUQuadricCallback

-

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-                             Weight: TGLArrayf4, OutData: PPointer, 

-                             UserData: Pointer){.stdcall.}

-  # GLUNurbsCallback

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

-

-const                         # GL_VERSION_1_1

-                              # AttribMask 

-  GL_DEPTH_BUFFER_BIT* = 0x00000100

-  GL_STENCIL_BUFFER_BIT* = 0x00000400

-  GL_COLOR_BUFFER_BIT* = 0x00004000 # Boolean 

-  GL_TRUE* = 1

-  GL_FALSE* = 0               # BeginMode 

-  GL_POINTS* = 0x00000000

-  GL_LINES* = 0x00000001

-  GL_LINE_LOOP* = 0x00000002

-  GL_LINE_STRIP* = 0x00000003

-  GL_TRIANGLES* = 0x00000004

-  GL_TRIANGLE_STRIP* = 0x00000005

-  GL_TRIANGLE_FAN* = 0x00000006 # AlphaFunction 

-  GL_NEVER* = 0x00000200

-  GL_LESS* = 0x00000201

-  GL_EQUAL* = 0x00000202

-  GL_LEQUAL* = 0x00000203

-  GL_GREATER* = 0x00000204

-  GL_NOTEQUAL* = 0x00000205

-  GL_GEQUAL* = 0x00000206

-  GL_ALWAYS* = 0x00000207     # BlendingFactorDest 

-  GL_ZERO* = 0

-  GL_ONE* = 1

-  GL_SRC_COLOR* = 0x00000300

-  GL_ONE_MINUS_SRC_COLOR* = 0x00000301

-  GL_SRC_ALPHA* = 0x00000302

-  GL_ONE_MINUS_SRC_ALPHA* = 0x00000303

-  GL_DST_ALPHA* = 0x00000304

-  GL_ONE_MINUS_DST_ALPHA* = 0x00000305 # BlendingFactorSrc 

-  GL_DST_COLOR* = 0x00000306

-  GL_ONE_MINUS_DST_COLOR* = 0x00000307

-  GL_SRC_ALPHA_SATURATE* = 0x00000308 # DrawBufferMode 

-  GL_NONE* = 0

-  GL_FRONT_LEFT* = 0x00000400

-  GL_FRONT_RIGHT* = 0x00000401

-  GL_BACK_LEFT* = 0x00000402

-  GL_BACK_RIGHT* = 0x00000403

-  GL_FRONT* = 0x00000404

-  GL_BACK* = 0x00000405

-  GL_LEFT* = 0x00000406

-  GL_RIGHT* = 0x00000407

-  GL_FRONT_AND_BACK* = 0x00000408 # ErrorCode 

-  GL_NO_ERROR* = 0

-  GL_INVALID_ENUM* = 0x00000500

-  GL_INVALID_VALUE* = 0x00000501

-  GL_INVALID_OPERATION* = 0x00000502

-  GL_OUT_OF_MEMORY* = 0x00000505 # FrontFaceDirection 

-  GL_CW* = 0x00000900

-  GL_CCW* = 0x00000901        # GetPName 

-  cGL_POINT_SIZE* = 0x00000B11

-  GL_POINT_SIZE_RANGE* = 0x00000B12

-  GL_POINT_SIZE_GRANULARITY* = 0x00000B13

-  GL_LINE_SMOOTH* = 0x00000B20

-  cGL_LINE_WIDTH* = 0x00000B21

-  GL_LINE_WIDTH_RANGE* = 0x00000B22

-  GL_LINE_WIDTH_GRANULARITY* = 0x00000B23

-  GL_POLYGON_SMOOTH* = 0x00000B41

-  cGL_CULL_FACE* = 0x00000B44

-  GL_CULL_FACE_MODE* = 0x00000B45

-  cGL_FRONT_FACE* = 0x00000B46

-  cGL_DEPTH_RANGE* = 0x00000B70

-  GL_DEPTH_TEST* = 0x00000B71

-  GL_DEPTH_WRITEMASK* = 0x00000B72

-  GL_DEPTH_CLEAR_VALUE* = 0x00000B73

-  cGL_DEPTH_FUNC* = 0x00000B74

-  GL_STENCIL_TEST* = 0x00000B90

-  GL_STENCIL_CLEAR_VALUE* = 0x00000B91

-  cGL_STENCIL_FUNC* = 0x00000B92

-  GL_STENCIL_VALUE_MASK* = 0x00000B93

-  GL_STENCIL_FAIL* = 0x00000B94

-  GL_STENCIL_PASS_DEPTH_FAIL* = 0x00000B95

-  GL_STENCIL_PASS_DEPTH_PASS* = 0x00000B96

-  GL_STENCIL_REF* = 0x00000B97

-  GL_STENCIL_WRITEMASK* = 0x00000B98

-  cGL_VIEWPORT* = 0x00000BA2

-  GL_DITHER* = 0x00000BD0

-  GL_BLEND_DST* = 0x00000BE0

-  GL_BLEND_SRC* = 0x00000BE1

-  GL_BLEND* = 0x00000BE2

-  GL_LOGIC_OP_MODE* = 0x00000BF0

-  GL_COLOR_LOGIC_OP* = 0x00000BF2

-  cGL_DRAW_BUFFER* = 0x00000C01

-  cGL_READ_BUFFER* = 0x00000C02

-  GL_SCISSOR_BOX* = 0x00000C10

-  GL_SCISSOR_TEST* = 0x00000C11

-  GL_COLOR_CLEAR_VALUE* = 0x00000C22

-  GL_COLOR_WRITEMASK* = 0x00000C23

-  GL_DOUBLEBUFFER* = 0x00000C32

-  GL_STEREO* = 0x00000C33

-  GL_LINE_SMOOTH_HINT* = 0x00000C52

-  GL_POLYGON_SMOOTH_HINT* = 0x00000C53

-  GL_UNPACK_SWAP_BYTES* = 0x00000CF0

-  GL_UNPACK_LSB_FIRST* = 0x00000CF1

-  GL_UNPACK_ROW_LENGTH* = 0x00000CF2

-  GL_UNPACK_SKIP_ROWS* = 0x00000CF3

-  GL_UNPACK_SKIP_PIXELS* = 0x00000CF4

-  GL_UNPACK_ALIGNMENT* = 0x00000CF5

-  GL_PACK_SWAP_BYTES* = 0x00000D00

-  GL_PACK_LSB_FIRST* = 0x00000D01

-  GL_PACK_ROW_LENGTH* = 0x00000D02

-  GL_PACK_SKIP_ROWS* = 0x00000D03

-  GL_PACK_SKIP_PIXELS* = 0x00000D04

-  GL_PACK_ALIGNMENT* = 0x00000D05

-  GL_MAX_TEXTURE_SIZE* = 0x00000D33

-  GL_MAX_VIEWPORT_DIMS* = 0x00000D3A

-  GL_SUBPIXEL_BITS* = 0x00000D50

-  GL_TEXTURE_1D* = 0x00000DE0

-  GL_TEXTURE_2D* = 0x00000DE1

-  GL_POLYGON_OFFSET_UNITS* = 0x00002A00

-  GL_POLYGON_OFFSET_POINT* = 0x00002A01

-  GL_POLYGON_OFFSET_LINE* = 0x00002A02

-  GL_POLYGON_OFFSET_FILL* = 0x00008037

-  GL_POLYGON_OFFSET_FACTOR* = 0x00008038

-  GL_TEXTURE_BINDING_1D* = 0x00008068

-  GL_TEXTURE_BINDING_2D* = 0x00008069 # GetTextureParameter 

-  GL_TEXTURE_WIDTH* = 0x00001000

-  GL_TEXTURE_HEIGHT* = 0x00001001

-  GL_TEXTURE_INTERNAL_FORMAT* = 0x00001003

-  GL_TEXTURE_BORDER_COLOR* = 0x00001004

-  GL_TEXTURE_BORDER* = 0x00001005

-  GL_TEXTURE_RED_SIZE* = 0x0000805C

-  GL_TEXTURE_GREEN_SIZE* = 0x0000805D

-  GL_TEXTURE_BLUE_SIZE* = 0x0000805E

-  GL_TEXTURE_ALPHA_SIZE* = 0x0000805F # HintMode 

-  GL_DONT_CARE* = 0x00001100

-  GL_FASTEST* = 0x00001101

-  GL_NICEST* = 0x00001102     # DataType 

-  cGL_BYTE* = 0x00001400

-  cGL_UNSIGNED_BYTE* = 0x00001401

-  cGL_SHORT* = 0x00001402

-  cGL_UNSIGNED_SHORT* = 0x00001403

-  cGL_INT* = 0x00001404

-  cGL_UNSIGNED_INT* = 0x00001405

-  cGL_FLOAT* = 0x00001406

-  cGL_DOUBLE* = 0x0000140A     # LogicOp 

-  cGL_CLEAR* = 0x00001500

-  GL_AND* = 0x00001501

-  GL_AND_REVERSE* = 0x00001502

-  GL_COPY* = 0x00001503

-  GL_AND_INVERTED* = 0x00001504

-  GL_NOOP* = 0x00001505

-  GL_XOR* = 0x00001506

-  GL_OR* = 0x00001507

-  GL_NOR* = 0x00001508

-  GL_EQUIV* = 0x00001509

-  GL_INVERT* = 0x0000150A

-  GL_OR_REVERSE* = 0x0000150B

-  GL_COPY_INVERTED* = 0x0000150C

-  GL_OR_INVERTED* = 0x0000150D

-  GL_NAND* = 0x0000150E

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

-  GL_TEXTURE* = 0x00001702    # PixelCopyType 

-  GL_COLOR* = 0x00001800

-  GL_DEPTH* = 0x00001801

-  GL_STENCIL* = 0x00001802    # PixelFormat 

-  GL_STENCIL_INDEX* = 0x00001901

-  GL_DEPTH_COMPONENT* = 0x00001902

-  GL_RED* = 0x00001903

-  GL_GREEN* = 0x00001904

-  GL_BLUE* = 0x00001905

-  GL_ALPHA* = 0x00001906

-  GL_RGB* = 0x00001907

-  GL_RGBA* = 0x00001908       # PolygonMode 

-  GL_POINT* = 0x00001B00

-  GL_LINE* = 0x00001B01

-  GL_FILL* = 0x00001B02       # StencilOp 

-  GL_KEEP* = 0x00001E00

-  GL_REPLACE* = 0x00001E01

-  GL_INCR* = 0x00001E02

-  GL_DECR* = 0x00001E03       # StringName 

-  GL_VENDOR* = 0x00001F00

-  GL_RENDERER* = 0x00001F01

-  GL_VERSION* = 0x00001F02

-  GL_EXTENSIONS* = 0x00001F03 # TextureMagFilter 

-  GL_NEAREST* = 0x00002600

-  GL_LINEAR* = 0x00002601     # TextureMinFilter 

-  GL_NEAREST_MIPMAP_NEAREST* = 0x00002700

-  GL_LINEAR_MIPMAP_NEAREST* = 0x00002701

-  GL_NEAREST_MIPMAP_LINEAR* = 0x00002702

-  GL_LINEAR_MIPMAP_LINEAR* = 0x00002703 # TextureParameterName 

-  GL_TEXTURE_MAG_FILTER* = 0x00002800

-  GL_TEXTURE_MIN_FILTER* = 0x00002801

-  GL_TEXTURE_WRAP_S* = 0x00002802

-  GL_TEXTURE_WRAP_T* = 0x00002803 # TextureTarget 

-  GL_PROXY_TEXTURE_1D* = 0x00008063

-  GL_PROXY_TEXTURE_2D* = 0x00008064 # TextureWrapMode 

-  GL_REPEAT* = 0x00002901     # PixelInternalFormat 

-  GL_R3_G3_B2* = 0x00002A10

-  GL_RGB4* = 0x0000804F

-  GL_RGB5* = 0x00008050

-  GL_RGB8* = 0x00008051

-  GL_RGB10* = 0x00008052

-  GL_RGB12* = 0x00008053

-  GL_RGB16* = 0x00008054

-  GL_RGBA2* = 0x00008055

-  GL_RGBA4* = 0x00008056

-  GL_RGB5_A1* = 0x00008057

-  GL_RGBA8* = 0x00008058

-  GL_RGB10_A2* = 0x00008059

-  GL_RGBA12* = 0x0000805A

-  GL_RGBA16* = 0x0000805B

-  cGL_ACCUM* = 0x00000100

-  GL_LOAD* = 0x00000101

-  GL_RETURN* = 0x00000102

-  GL_MULT* = 0x00000103

-  GL_ADD* = 0x00000104

-  GL_CURRENT_BIT* = 0x00000001

-  GL_POINT_BIT* = 0x00000002

-  GL_LINE_BIT* = 0x00000004

-  GL_POLYGON_BIT* = 0x00000008

-  GL_POLYGON_STIPPLE_BIT* = 0x00000010

-  GL_PIXEL_MODE_BIT* = 0x00000020

-  GL_LIGHTING_BIT* = 0x00000040

-  GL_FOG_BIT* = 0x00000080

-  GL_ACCUM_BUFFER_BIT* = 0x00000200

-  GL_VIEWPORT_BIT* = 0x00000800

-  GL_TRANSFORM_BIT* = 0x00001000

-  GL_ENABLE_BIT* = 0x00002000

-  GL_HINT_BIT* = 0x00008000

-  GL_EVAL_BIT* = 0x00010000

-  GL_LIST_BIT* = 0x00020000

-  GL_TEXTURE_BIT* = 0x00040000

-  GL_SCISSOR_BIT* = 0x00080000

-  GL_ALL_ATTRIB_BITS* = 0x000FFFFF

-  GL_QUADS* = 0x00000007

-  GL_QUAD_STRIP* = 0x00000008

-  GL_POLYGON* = 0x00000009

-  GL_CLIP_PLANE0* = 0x00003000

-  GL_CLIP_PLANE1* = 0x00003001

-  GL_CLIP_PLANE2* = 0x00003002

-  GL_CLIP_PLANE3* = 0x00003003

-  GL_CLIP_PLANE4* = 0x00003004

-  GL_CLIP_PLANE5* = 0x00003005

-  GL_2_BYTES* = 0x00001407

-  GL_3_BYTES* = 0x00001408

-  GL_4_BYTES* = 0x00001409

-  GL_AUX0* = 0x00000409

-  GL_AUX1* = 0x0000040A

-  GL_AUX2* = 0x0000040B

-  GL_AUX3* = 0x0000040C

-  GL_STACK_OVERFLOW* = 0x00000503

-  GL_STACK_UNDERFLOW* = 0x00000504

-  GL_2D* = 0x00000600

-  GL_3D* = 0x00000601

-  GL_3D_COLOR* = 0x00000602

-  GL_3D_COLOR_TEXTURE* = 0x00000603

-  GL_4D_COLOR_TEXTURE* = 0x00000604

-  GL_PASS_THROUGH_TOKEN* = 0x00000700

-  GL_POINT_TOKEN* = 0x00000701

-  GL_LINE_TOKEN* = 0x00000702

-  GL_POLYGON_TOKEN* = 0x00000703

-  GL_BITMAP_TOKEN* = 0x00000704

-  GL_DRAW_PIXEL_TOKEN* = 0x00000705

-  GL_COPY_PIXEL_TOKEN* = 0x00000706

-  GL_LINE_RESET_TOKEN* = 0x00000707

-  GL_EXP* = 0x00000800

-  GL_EXP2* = 0x00000801

-  GL_COEFF* = 0x00000A00

-  GL_ORDER* = 0x00000A01

-  GL_DOMAIN* = 0x00000A02

-  GL_CURRENT_COLOR* = 0x00000B00

-  GL_CURRENT_INDEX* = 0x00000B01

-  GL_CURRENT_NORMAL* = 0x00000B02

-  GL_CURRENT_TEXTURE_COORDS* = 0x00000B03

-  GL_CURRENT_RASTER_COLOR* = 0x00000B04

-  GL_CURRENT_RASTER_INDEX* = 0x00000B05

-  GL_CURRENT_RASTER_TEXTURE_COORDS* = 0x00000B06

-  GL_CURRENT_RASTER_POSITION* = 0x00000B07

-  GL_CURRENT_RASTER_POSITION_VALID* = 0x00000B08

-  GL_CURRENT_RASTER_DISTANCE* = 0x00000B09

-  GL_POINT_SMOOTH* = 0x00000B10

-  cGL_LINE_STIPPLE* = 0x00000B24

-  GL_LINE_STIPPLE_PATTERN* = 0x00000B25

-  GL_LINE_STIPPLE_REPEAT* = 0x00000B26

-  GL_LIST_MODE* = 0x00000B30

-  GL_MAX_LIST_NESTING* = 0x00000B31

-  cGL_LIST_BASE* = 0x00000B32

-  GL_LIST_INDEX* = 0x00000B33

-  cGL_POLYGON_MODE* = 0x00000B40

-  cGL_POLYGON_STIPPLE* = 0x00000B42

-  cGL_EDGE_FLAG* = 0x00000B43

-  GL_LIGHTING* = 0x00000B50

-  GL_LIGHT_MODEL_LOCAL_VIEWER* = 0x00000B51

-  GL_LIGHT_MODEL_TWO_SIDE* = 0x00000B52

-  GL_LIGHT_MODEL_AMBIENT* = 0x00000B53

-  cGL_SHADE_MODEL* = 0x00000B54

-  GL_COLOR_MATERIAL_FACE* = 0x00000B55

-  GL_COLOR_MATERIAL_PARAMETER* = 0x00000B56

-  cGL_COLOR_MATERIAL* = 0x00000B57

-  GL_FOG* = 0x00000B60

-  GL_FOG_INDEX* = 0x00000B61

-  GL_FOG_DENSITY* = 0x00000B62

-  GL_FOG_START* = 0x00000B63

-  GL_FOG_END* = 0x00000B64

-  GL_FOG_MODE* = 0x00000B65

-  GL_FOG_COLOR* = 0x00000B66

-  GL_ACCUM_CLEAR_VALUE* = 0x00000B80

-  cGL_MATRIX_MODE* = 0x00000BA0

-  GL_NORMALIZE* = 0x00000BA1

-  GL_MODELVIEW_STACK_DEPTH* = 0x00000BA3

-  GL_PROJECTION_STACK_DEPTH* = 0x00000BA4

-  GL_TEXTURE_STACK_DEPTH* = 0x00000BA5

-  GL_MODELVIEW_MATRIX* = 0x00000BA6

-  GL_PROJECTION_MATRIX* = 0x00000BA7

-  GL_TEXTURE_MATRIX* = 0x00000BA8

-  GL_ATTRIB_STACK_DEPTH* = 0x00000BB0

-  GL_CLIENT_ATTRIB_STACK_DEPTH* = 0x00000BB1

-  GL_ALPHA_TEST* = 0x00000BC0

-  GL_ALPHA_TEST_FUNC* = 0x00000BC1

-  GL_ALPHA_TEST_REF* = 0x00000BC2

-  GL_INDEX_LOGIC_OP* = 0x00000BF1

-  GL_AUX_BUFFERS* = 0x00000C00

-  GL_INDEX_CLEAR_VALUE* = 0x00000C20

-  GL_INDEX_WRITEMASK* = 0x00000C21

-  GL_INDEX_MODE* = 0x00000C30

-  GL_RGBA_MODE* = 0x00000C31

-  cGL_RENDER_MODE* = 0x00000C40

-  GL_PERSPECTIVE_CORRECTION_HINT* = 0x00000C50

-  GL_POINT_SMOOTH_HINT* = 0x00000C51

-  GL_FOG_HINT* = 0x00000C54

-  GL_TEXTURE_GEN_S* = 0x00000C60

-  GL_TEXTURE_GEN_T* = 0x00000C61

-  GL_TEXTURE_GEN_R* = 0x00000C62

-  GL_TEXTURE_GEN_Q* = 0x00000C63

-  GL_PIXEL_MAP_I_TO_I* = 0x00000C70

-  GL_PIXEL_MAP_S_TO_S* = 0x00000C71

-  GL_PIXEL_MAP_I_TO_R* = 0x00000C72

-  GL_PIXEL_MAP_I_TO_G* = 0x00000C73

-  GL_PIXEL_MAP_I_TO_B* = 0x00000C74

-  GL_PIXEL_MAP_I_TO_A* = 0x00000C75

-  GL_PIXEL_MAP_R_TO_R* = 0x00000C76

-  GL_PIXEL_MAP_G_TO_G* = 0x00000C77

-  GL_PIXEL_MAP_B_TO_B* = 0x00000C78

-  GL_PIXEL_MAP_A_TO_A* = 0x00000C79

-  GL_PIXEL_MAP_I_TO_I_SIZE* = 0x00000CB0

-  GL_PIXEL_MAP_S_TO_S_SIZE* = 0x00000CB1

-  GL_PIXEL_MAP_I_TO_R_SIZE* = 0x00000CB2

-  GL_PIXEL_MAP_I_TO_G_SIZE* = 0x00000CB3

-  GL_PIXEL_MAP_I_TO_B_SIZE* = 0x00000CB4

-  GL_PIXEL_MAP_I_TO_A_SIZE* = 0x00000CB5

-  GL_PIXEL_MAP_R_TO_R_SIZE* = 0x00000CB6

-  GL_PIXEL_MAP_G_TO_G_SIZE* = 0x00000CB7

-  GL_PIXEL_MAP_B_TO_B_SIZE* = 0x00000CB8

-  GL_PIXEL_MAP_A_TO_A_SIZE* = 0x00000CB9

-  GL_MAP_COLOR* = 0x00000D10

-  GL_MAP_STENCIL* = 0x00000D11

-  GL_INDEX_SHIFT* = 0x00000D12

-  GL_INDEX_OFFSET* = 0x00000D13

-  GL_RED_SCALE* = 0x00000D14

-  GL_RED_BIAS* = 0x00000D15

-  GL_ZOOM_X* = 0x00000D16

-  GL_ZOOM_Y* = 0x00000D17

-  GL_GREEN_SCALE* = 0x00000D18

-  GL_GREEN_BIAS* = 0x00000D19

-  GL_BLUE_SCALE* = 0x00000D1A

-  GL_BLUE_BIAS* = 0x00000D1B

-  GL_ALPHA_SCALE* = 0x00000D1C

-  GL_ALPHA_BIAS* = 0x00000D1D

-  GL_DEPTH_SCALE* = 0x00000D1E

-  GL_DEPTH_BIAS* = 0x00000D1F

-  GL_MAX_EVAL_ORDER* = 0x00000D30

-  GL_MAX_LIGHTS* = 0x00000D31

-  GL_MAX_CLIP_PLANES* = 0x00000D32

-  GL_MAX_PIXEL_MAP_TABLE* = 0x00000D34

-  GL_MAX_ATTRIB_STACK_DEPTH* = 0x00000D35

-  GL_MAX_MODELVIEW_STACK_DEPTH* = 0x00000D36

-  GL_MAX_NAME_STACK_DEPTH* = 0x00000D37

-  GL_MAX_PROJECTION_STACK_DEPTH* = 0x00000D38

-  GL_MAX_TEXTURE_STACK_DEPTH* = 0x00000D39

-  GL_MAX_CLIENT_ATTRIB_STACK_DEPTH* = 0x00000D3B

-  GL_INDEX_BITS* = 0x00000D51

-  GL_RED_BITS* = 0x00000D52

-  GL_GREEN_BITS* = 0x00000D53

-  GL_BLUE_BITS* = 0x00000D54

-  GL_ALPHA_BITS* = 0x00000D55

-  GL_DEPTH_BITS* = 0x00000D56

-  GL_STENCIL_BITS* = 0x00000D57

-  GL_ACCUM_RED_BITS* = 0x00000D58

-  GL_ACCUM_GREEN_BITS* = 0x00000D59

-  GL_ACCUM_BLUE_BITS* = 0x00000D5A

-  GL_ACCUM_ALPHA_BITS* = 0x00000D5B

-  GL_NAME_STACK_DEPTH* = 0x00000D70

-  GL_AUTO_NORMAL* = 0x00000D80

-  GL_MAP1_COLOR_4* = 0x00000D90

-  GL_MAP1_INDEX* = 0x00000D91

-  GL_MAP1_NORMAL* = 0x00000D92

-  GL_MAP1_TEXTURE_COORD_1* = 0x00000D93

-  GL_MAP1_TEXTURE_COORD_2* = 0x00000D94

-  GL_MAP1_TEXTURE_COORD_3* = 0x00000D95

-  GL_MAP1_TEXTURE_COORD_4* = 0x00000D96

-  GL_MAP1_VERTEX_3* = 0x00000D97

-  GL_MAP1_VERTEX_4* = 0x00000D98

-  GL_MAP2_COLOR_4* = 0x00000DB0

-  GL_MAP2_INDEX* = 0x00000DB1

-  GL_MAP2_NORMAL* = 0x00000DB2

-  GL_MAP2_TEXTURE_COORD_1* = 0x00000DB3

-  GL_MAP2_TEXTURE_COORD_2* = 0x00000DB4

-  GL_MAP2_TEXTURE_COORD_3* = 0x00000DB5

-  GL_MAP2_TEXTURE_COORD_4* = 0x00000DB6

-  GL_MAP2_VERTEX_3* = 0x00000DB7

-  GL_MAP2_VERTEX_4* = 0x00000DB8

-  GL_MAP1_GRID_DOMAIN* = 0x00000DD0

-  GL_MAP1_GRID_SEGMENTS* = 0x00000DD1

-  GL_MAP2_GRID_DOMAIN* = 0x00000DD2

-  GL_MAP2_GRID_SEGMENTS* = 0x00000DD3

-  GL_FEEDBACK_BUFFER_POINTER* = 0x00000DF0

-  GL_FEEDBACK_BUFFER_SIZE* = 0x00000DF1

-  GL_FEEDBACK_BUFFERtyp* = 0x00000DF2

-  GL_SELECTION_BUFFER_POINTER* = 0x00000DF3

-  GL_SELECTION_BUFFER_SIZE* = 0x00000DF4

-  GL_LIGHT0* = 0x00004000

-  GL_LIGHT1* = 0x00004001

-  GL_LIGHT2* = 0x00004002

-  GL_LIGHT3* = 0x00004003

-  GL_LIGHT4* = 0x00004004

-  GL_LIGHT5* = 0x00004005

-  GL_LIGHT6* = 0x00004006

-  GL_LIGHT7* = 0x00004007

-  GL_AMBIENT* = 0x00001200

-  GL_DIFFUSE* = 0x00001201

-  GL_SPECULAR* = 0x00001202

-  GL_POSITION* = 0x00001203

-  GL_SPOT_DIRECTION* = 0x00001204

-  GL_SPOT_EXPONENT* = 0x00001205

-  GL_SPOT_CUTOFF* = 0x00001206

-  GL_CONSTANT_ATTENUATION* = 0x00001207

-  GL_LINEAR_ATTENUATION* = 0x00001208

-  GL_QUADRATIC_ATTENUATION* = 0x00001209

-  GL_COMPILE* = 0x00001300

-  GL_COMPILE_AND_EXECUTE* = 0x00001301

-  GL_EMISSION* = 0x00001600

-  GL_SHININESS* = 0x00001601

-  GL_AMBIENT_AND_DIFFUSE* = 0x00001602

-  GL_COLOR_INDEXES* = 0x00001603

-  GL_MODELVIEW* = 0x00001700

-  GL_PROJECTION* = 0x00001701

-  GL_COLOR_INDEX* = 0x00001900

-  GL_LUMINANCE* = 0x00001909

-  GL_LUMINANCE_ALPHA* = 0x0000190A

-  cGL_BITMAP* = 0x00001A00

-  GL_RENDER* = 0x00001C00

-  GL_FEEDBACK* = 0x00001C01

-  GL_SELECT* = 0x00001C02

-  GL_FLAT* = 0x00001D00

-  GL_SMOOTH* = 0x00001D01

-  GL_S* = 0x00002000

-  GL_T* = 0x00002001

-  GL_R* = 0x00002002

-  GL_Q* = 0x00002003

-  GL_MODULATE* = 0x00002100

-  GL_DECAL* = 0x00002101

-  GL_TEXTURE_ENV_MODE* = 0x00002200

-  GL_TEXTURE_ENV_COLOR* = 0x00002201

-  GL_TEXTURE_ENV* = 0x00002300

-  GL_EYE_LINEAR* = 0x00002400

-  GL_OBJECT_LINEAR* = 0x00002401

-  GL_SPHERE_MAP* = 0x00002402

-  GL_TEXTURE_GEN_MODE* = 0x00002500

-  GL_OBJECT_PLANE* = 0x00002501

-  GL_EYE_PLANE* = 0x00002502

-  GL_CLAMP* = 0x00002900

-  GL_CLIENT_PIXEL_STORE_BIT* = 0x00000001

-  GL_CLIENT_VERTEX_ARRAY_BIT* = 0x00000002

-  GL_CLIENT_ALL_ATTRIB_BITS* = 0xFFFFFFFF

-  GL_ALPHA4* = 0x0000803B

-  GL_ALPHA8* = 0x0000803C

-  GL_ALPHA12* = 0x0000803D

-  GL_ALPHA16* = 0x0000803E

-  GL_LUMINANCE4* = 0x0000803F

-  GL_LUMINANCE8* = 0x00008040

-  GL_LUMINANCE12* = 0x00008041

-  GL_LUMINANCE16* = 0x00008042

-  GL_LUMINANCE4_ALPHA4* = 0x00008043

-  GL_LUMINANCE6_ALPHA2* = 0x00008044

-  GL_LUMINANCE8_ALPHA8* = 0x00008045

-  GL_LUMINANCE12_ALPHA4* = 0x00008046

-  GL_LUMINANCE12_ALPHA12* = 0x00008047

-  GL_LUMINANCE16_ALPHA16* = 0x00008048

-  GL_INTENSITY* = 0x00008049

-  GL_INTENSITY4* = 0x0000804A

-  GL_INTENSITY8* = 0x0000804B

-  GL_INTENSITY12* = 0x0000804C

-  GL_INTENSITY16* = 0x0000804D

-  GL_TEXTURE_LUMINANCE_SIZE* = 0x00008060

-  GL_TEXTURE_INTENSITY_SIZE* = 0x00008061

-  GL_TEXTURE_PRIORITY* = 0x00008066

-  GL_TEXTURE_RESIDENT* = 0x00008067

-  GL_VERTEX_ARRAY* = 0x00008074

-  GL_NORMAL_ARRAY* = 0x00008075

-  GL_COLOR_ARRAY* = 0x00008076

-  GL_INDEX_ARRAY* = 0x00008077

-  GL_TEXTURE_COORD_ARRAY* = 0x00008078

-  GL_EDGE_FLAG_ARRAY* = 0x00008079

-  GL_VERTEX_ARRAY_SIZE* = 0x0000807A

-  GL_VERTEX_ARRAYtyp* = 0x0000807B

-  GL_VERTEX_ARRAY_STRIDE* = 0x0000807C

-  GL_NORMAL_ARRAYtyp* = 0x0000807E

-  GL_NORMAL_ARRAY_STRIDE* = 0x0000807F

-  GL_COLOR_ARRAY_SIZE* = 0x00008081

-  GL_COLOR_ARRAYtyp* = 0x00008082

-  GL_COLOR_ARRAY_STRIDE* = 0x00008083

-  GL_INDEX_ARRAYtyp* = 0x00008085

-  GL_INDEX_ARRAY_STRIDE* = 0x00008086

-  GL_TEXTURE_COORD_ARRAY_SIZE* = 0x00008088

-  GL_TEXTURE_COORD_ARRAYtyp* = 0x00008089

-  GL_TEXTURE_COORD_ARRAY_STRIDE* = 0x0000808A

-  GL_EDGE_FLAG_ARRAY_STRIDE* = 0x0000808C

-  GL_VERTEX_ARRAY_POINTER* = 0x0000808E

-  GL_NORMAL_ARRAY_POINTER* = 0x0000808F

-  GL_COLOR_ARRAY_POINTER* = 0x00008090

-  GL_INDEX_ARRAY_POINTER* = 0x00008091

-  GL_TEXTURE_COORD_ARRAY_POINTER* = 0x00008092

-  GL_EDGE_FLAG_ARRAY_POINTER* = 0x00008093

-  GL_V2F* = 0x00002A20

-  GL_V3F* = 0x00002A21

-  GL_C4UB_V2F* = 0x00002A22

-  GL_C4UB_V3F* = 0x00002A23

-  GL_C3F_V3F* = 0x00002A24

-  GL_N3F_V3F* = 0x00002A25

-  GL_C4F_N3F_V3F* = 0x00002A26

-  GL_T2F_V3F* = 0x00002A27

-  GL_T4F_V4F* = 0x00002A28

-  GL_T2F_C4UB_V3F* = 0x00002A29

-  GL_T2F_C3F_V3F* = 0x00002A2A

-  GL_T2F_N3F_V3F* = 0x00002A2B

-  GL_T2F_C4F_N3F_V3F* = 0x00002A2C

-  GL_T4F_C4F_N3F_V4F* = 0x00002A2D

-  GL_COLOR_TABLE_FORMAT_EXT* = 0x000080D8

-  GL_COLOR_TABLE_WIDTH_EXT* = 0x000080D9

-  GL_COLOR_TABLE_RED_SIZE_EXT* = 0x000080DA

-  GL_COLOR_TABLE_GREEN_SIZE_EXT* = 0x000080DB

-  GL_COLOR_TABLE_BLUE_SIZE_EXT* = 0x000080DC

-  GL_COLOR_TABLE_ALPHA_SIZE_EXT* = 0x000080DD

-  GL_COLOR_TABLE_LUMINANCE_SIZE_EXT* = 0x000080DE

-  GL_COLOR_TABLE_INTENSITY_SIZE_EXT* = 0x000080DF

-  cGL_LOGIC_OP* = GL_INDEX_LOGIC_OP

-  GL_TEXTURE_COMPONENTS* = GL_TEXTURE_INTERNAL_FORMAT # GL_VERSION_1_2

-  GL_UNSIGNED_BYTE_3_3_2* = 0x00008032

-  GL_UNSIGNED_SHORT_4_4_4_4* = 0x00008033

-  GL_UNSIGNED_SHORT_5_5_5_1* = 0x00008034

-  GL_UNSIGNED_INT_8_8_8_8* = 0x00008035

-  GL_UNSIGNED_INT_10_10_10_2* = 0x00008036

-  GL_TEXTURE_BINDING_3D* = 0x0000806A

-  GL_PACK_SKIP_IMAGES* = 0x0000806B

-  GL_PACK_IMAGE_HEIGHT* = 0x0000806C

-  GL_UNPACK_SKIP_IMAGES* = 0x0000806D

-  GL_UNPACK_IMAGE_HEIGHT* = 0x0000806E

-  GL_TEXTURE_3D* = 0x0000806F

-  GL_PROXY_TEXTURE_3D* = 0x00008070

-  GL_TEXTURE_DEPTH* = 0x00008071

-  GL_TEXTURE_WRAP_R* = 0x00008072

-  GL_MAX_3D_TEXTURE_SIZE* = 0x00008073

-  GL_UNSIGNED_BYTE_2_3_3_REV* = 0x00008362

-  GL_UNSIGNED_SHORT_5_6_5* = 0x00008363

-  GL_UNSIGNED_SHORT_5_6_5_REV* = 0x00008364

-  GL_UNSIGNED_SHORT_4_4_4_4_REV* = 0x00008365

-  GL_UNSIGNED_SHORT_1_5_5_5_REV* = 0x00008366

-  GL_UNSIGNED_INT_8_8_8_8_REV* = 0x00008367

-  GL_UNSIGNED_INT_2_10_10_10_REV* = 0x00008368

-  GL_BGR* = 0x000080E0

-  GL_BGRA* = 0x000080E1

-  GL_MAX_ELEMENTS_VERTICES* = 0x000080E8

-  GL_MAX_ELEMENTS_INDICES* = 0x000080E9

-  GL_CLAMP_TO_EDGE* = 0x0000812F

-  GL_TEXTURE_MIN_LOD* = 0x0000813A

-  GL_TEXTURE_MAX_LOD* = 0x0000813B

-  GL_TEXTURE_BASE_LEVEL* = 0x0000813C

-  GL_TEXTURE_MAX_LEVEL* = 0x0000813D

-  GL_SMOOTH_POINT_SIZE_RANGE* = 0x00000B12

-  GL_SMOOTH_POINT_SIZE_GRANULARITY* = 0x00000B13

-  GL_SMOOTH_LINE_WIDTH_RANGE* = 0x00000B22

-  GL_SMOOTH_LINE_WIDTH_GRANULARITY* = 0x00000B23

-  GL_ALIASED_LINE_WIDTH_RANGE* = 0x0000846E

-  GL_RESCALE_NORMAL* = 0x0000803A

-  GL_LIGHT_MODEL_COLOR_CONTROL* = 0x000081F8

-  GL_SINGLE_COLOR* = 0x000081F9

-  GL_SEPARATE_SPECULAR_COLOR* = 0x000081FA

-  GL_ALIASED_POINT_SIZE_RANGE* = 0x0000846D # GL_VERSION_1_3

-  GL_TEXTURE0* = 0x000084C0

-  GL_TEXTURE1* = 0x000084C1

-  GL_TEXTURE2* = 0x000084C2

-  GL_TEXTURE3* = 0x000084C3

-  GL_TEXTURE4* = 0x000084C4

-  GL_TEXTURE5* = 0x000084C5

-  GL_TEXTURE6* = 0x000084C6

-  GL_TEXTURE7* = 0x000084C7

-  GL_TEXTURE8* = 0x000084C8

-  GL_TEXTURE9* = 0x000084C9

-  GL_TEXTURE10* = 0x000084CA

-  GL_TEXTURE11* = 0x000084CB

-  GL_TEXTURE12* = 0x000084CC

-  GL_TEXTURE13* = 0x000084CD

-  GL_TEXTURE14* = 0x000084CE

-  GL_TEXTURE15* = 0x000084CF

-  GL_TEXTURE16* = 0x000084D0

-  GL_TEXTURE17* = 0x000084D1

-  GL_TEXTURE18* = 0x000084D2

-  GL_TEXTURE19* = 0x000084D3

-  GL_TEXTURE20* = 0x000084D4

-  GL_TEXTURE21* = 0x000084D5

-  GL_TEXTURE22* = 0x000084D6

-  GL_TEXTURE23* = 0x000084D7

-  GL_TEXTURE24* = 0x000084D8

-  GL_TEXTURE25* = 0x000084D9

-  GL_TEXTURE26* = 0x000084DA

-  GL_TEXTURE27* = 0x000084DB

-  GL_TEXTURE28* = 0x000084DC

-  GL_TEXTURE29* = 0x000084DD

-  GL_TEXTURE30* = 0x000084DE

-  GL_TEXTURE31* = 0x000084DF

-  cGL_ACTIVE_TEXTURE* = 0x000084E0

-  GL_MULTISAMPLE* = 0x0000809D

-  GL_SAMPLE_ALPHA_TO_COVERAGE* = 0x0000809E

-  GL_SAMPLE_ALPHA_TO_ONE* = 0x0000809F

-  cGL_SAMPLE_COVERAGE* = 0x000080A0

-  GL_SAMPLE_BUFFERS* = 0x000080A8

-  GL_SAMPLES* = 0x000080A9

-  GL_SAMPLE_COVERAGE_VALUE* = 0x000080AA

-  GL_SAMPLE_COVERAGE_INVERT* = 0x000080AB

-  GL_TEXTURE_CUBE_MAP* = 0x00008513

-  GL_TEXTURE_BINDING_CUBE_MAP* = 0x00008514

-  GL_TEXTURE_CUBE_MAP_POSITIVE_X* = 0x00008515

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_X* = 0x00008516

-  GL_TEXTURE_CUBE_MAP_POSITIVE_Y* = 0x00008517

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y* = 0x00008518

-  GL_TEXTURE_CUBE_MAP_POSITIVE_Z* = 0x00008519

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z* = 0x0000851A

-  GL_PROXY_TEXTURE_CUBE_MAP* = 0x0000851B

-  GL_MAX_CUBE_MAP_TEXTURE_SIZE* = 0x0000851C

-  GL_COMPRESSED_RGB* = 0x000084ED

-  GL_COMPRESSED_RGBA* = 0x000084EE

-  GL_TEXTURE_COMPRESSION_HINT* = 0x000084EF

-  GL_TEXTURE_COMPRESSED_IMAGE_SIZE* = 0x000086A0

-  GL_TEXTURE_COMPRESSED* = 0x000086A1

-  GL_NUM_COMPRESSED_TEXTURE_FORMATS* = 0x000086A2

-  GL_COMPRESSED_TEXTURE_FORMATS* = 0x000086A3

-  GL_CLAMP_TO_BORDER* = 0x0000812D

-  cGL_CLIENT_ACTIVE_TEXTURE* = 0x000084E1

-  GL_MAX_TEXTURE_UNITS* = 0x000084E2

-  GL_TRANSPOSE_MODELVIEW_MATRIX* = 0x000084E3

-  GL_TRANSPOSE_PROJECTION_MATRIX* = 0x000084E4

-  GL_TRANSPOSE_TEXTURE_MATRIX* = 0x000084E5

-  GL_TRANSPOSE_COLOR_MATRIX* = 0x000084E6

-  GL_MULTISAMPLE_BIT* = 0x20000000

-  GL_NORMAL_MAP* = 0x00008511

-  GL_REFLECTION_MAP* = 0x00008512

-  GL_COMPRESSED_ALPHA* = 0x000084E9

-  GL_COMPRESSED_LUMINANCE* = 0x000084EA

-  GL_COMPRESSED_LUMINANCE_ALPHA* = 0x000084EB

-  GL_COMPRESSED_INTENSITY* = 0x000084EC

-  GL_COMBINE* = 0x00008570

-  GL_COMBINE_RGB* = 0x00008571

-  GL_COMBINE_ALPHA* = 0x00008572

-  GL_SOURCE0_RGB* = 0x00008580

-  GL_SOURCE1_RGB* = 0x00008581

-  GL_SOURCE2_RGB* = 0x00008582

-  GL_SOURCE0_ALPHA* = 0x00008588

-  GL_SOURCE1_ALPHA* = 0x00008589

-  GL_SOURCE2_ALPHA* = 0x0000858A

-  GL_OPERAND0_RGB* = 0x00008590

-  GL_OPERAND1_RGB* = 0x00008591

-  GL_OPERAND2_RGB* = 0x00008592

-  GL_OPERAND0_ALPHA* = 0x00008598

-  GL_OPERAND1_ALPHA* = 0x00008599

-  GL_OPERAND2_ALPHA* = 0x0000859A

-  GL_RGB_SCALE* = 0x00008573

-  GL_ADD_SIGNED* = 0x00008574

-  GL_INTERPOLATE* = 0x00008575

-  GL_SUBTRACT* = 0x000084E7

-  GL_CONSTANT* = 0x00008576

-  GL_PRIMARY_COLOR* = 0x00008577

-  GL_PREVIOUS* = 0x00008578

-  GL_DOT3_RGB* = 0x000086AE

-  GL_DOT3_RGBA* = 0x000086AF  # GL_VERSION_1_4

-  GL_BLEND_DST_RGB* = 0x000080C8

-  GL_BLEND_SRC_RGB* = 0x000080C9

-  GL_BLEND_DST_ALPHA* = 0x000080CA

-  GL_BLEND_SRC_ALPHA* = 0x000080CB

-  GL_POINT_FADE_THRESHOLD_SIZE* = 0x00008128

-  GL_DEPTH_COMPONENT16* = 0x000081A5

-  GL_DEPTH_COMPONENT24* = 0x000081A6

-  GL_DEPTH_COMPONENT32* = 0x000081A7

-  GL_MIRRORED_REPEAT* = 0x00008370

-  GL_MAX_TEXTURE_LOD_BIAS* = 0x000084FD

-  GL_TEXTURE_LOD_BIAS* = 0x00008501

-  GL_INCR_WRAP* = 0x00008507

-  GL_DECR_WRAP* = 0x00008508

-  GL_TEXTURE_DEPTH_SIZE* = 0x0000884A

-  GL_TEXTURE_COMPARE_MODE* = 0x0000884C

-  GL_TEXTURE_COMPARE_FUNC* = 0x0000884D

-  GL_POINT_SIZE_MIN* = 0x00008126

-  GL_POINT_SIZE_MAX* = 0x00008127

-  GL_POINT_DISTANCE_ATTENUATION* = 0x00008129

-  cGL_GENERATE_MIPMAP* = 0x00008191

-  GL_GENERATE_MIPMAP_HINT* = 0x00008192

-  GL_FOG_COORDINATE_SOURCE* = 0x00008450

-  GL_FOG_COORDINATE* = 0x00008451

-  GL_FRAGMENT_DEPTH* = 0x00008452

-  GL_CURRENT_FOG_COORDINATE* = 0x00008453

-  GL_FOG_COORDINATE_ARRAYtyp* = 0x00008454

-  GL_FOG_COORDINATE_ARRAY_STRIDE* = 0x00008455

-  GL_FOG_COORDINATE_ARRAY_POINTER* = 0x00008456

-  GL_FOG_COORDINATE_ARRAY* = 0x00008457

-  GL_COLOR_SUM* = 0x00008458

-  GL_CURRENT_SECONDARY_COLOR* = 0x00008459

-  GL_SECONDARY_COLOR_ARRAY_SIZE* = 0x0000845A

-  GL_SECONDARY_COLOR_ARRAYtyp* = 0x0000845B

-  GL_SECONDARY_COLOR_ARRAY_STRIDE* = 0x0000845C

-  GL_SECONDARY_COLOR_ARRAY_POINTER* = 0x0000845D

-  GL_SECONDARY_COLOR_ARRAY* = 0x0000845E

-  GL_TEXTURE_FILTER_CONTROL* = 0x00008500

-  GL_DEPTH_TEXTURE_MODE* = 0x0000884B

-  GL_COMPARE_R_TO_TEXTURE* = 0x0000884E # GL_VERSION_1_5

-  GL_BUFFER_SIZE* = 0x00008764

-  GL_BUFFER_USAGE* = 0x00008765

-  GL_QUERY_COUNTER_BITS* = 0x00008864

-  GL_CURRENT_QUERY* = 0x00008865

-  GL_QUERY_RESULT* = 0x00008866

-  GL_QUERY_RESULT_AVAILABLE* = 0x00008867

-  GL_ARRAY_BUFFER* = 0x00008892

-  GL_ELEMENT_ARRAY_BUFFER* = 0x00008893

-  GL_ARRAY_BUFFER_BINDING* = 0x00008894

-  GL_ELEMENT_ARRAY_BUFFER_BINDING* = 0x00008895

-  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING* = 0x0000889F

-  GL_READ_ONLY* = 0x000088B8

-  GL_WRITE_ONLY* = 0x000088B9

-  GL_READ_WRITE* = 0x000088BA

-  GL_BUFFER_ACCESS* = 0x000088BB

-  GL_BUFFER_MAPPED* = 0x000088BC

-  GL_BUFFER_MAP_POINTER* = 0x000088BD

-  GL_STREAM_DRAW* = 0x000088E0

-  GL_STREAM_READ* = 0x000088E1

-  GL_STREAM_COPY* = 0x000088E2

-  GL_STATIC_DRAW* = 0x000088E4

-  GL_STATIC_READ* = 0x000088E5

-  GL_STATIC_COPY* = 0x000088E6

-  GL_DYNAMIC_DRAW* = 0x000088E8

-  GL_DYNAMIC_READ* = 0x000088E9

-  GL_DYNAMIC_COPY* = 0x000088EA

-  GL_SAMPLES_PASSED* = 0x00008914

-  GL_VERTEX_ARRAY_BUFFER_BINDING* = 0x00008896

-  GL_NORMAL_ARRAY_BUFFER_BINDING* = 0x00008897

-  GL_COLOR_ARRAY_BUFFER_BINDING* = 0x00008898

-  GL_INDEX_ARRAY_BUFFER_BINDING* = 0x00008899

-  GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING* = 0x0000889A

-  GL_EDGE_FLAG_ARRAY_BUFFER_BINDING* = 0x0000889B

-  GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING* = 0x0000889C

-  GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING* = 0x0000889D

-  GL_WEIGHT_ARRAY_BUFFER_BINDING* = 0x0000889E

-  GL_FOG_COORD_SRC* = 0x00008450

-  GL_FOG_COORD* = 0x00008451

-  GL_CURRENT_FOG_COORD* = 0x00008453

-  GL_FOG_COORD_ARRAYtyp* = 0x00008454

-  GL_FOG_COORD_ARRAY_STRIDE* = 0x00008455

-  GL_FOG_COORD_ARRAY_POINTER* = 0x00008456

-  GL_FOG_COORD_ARRAY* = 0x00008457

-  GL_FOG_COORD_ARRAY_BUFFER_BINDING* = 0x0000889D

-  GL_SRC0_RGB* = 0x00008580

-  GL_SRC1_RGB* = 0x00008581

-  GL_SRC2_RGB* = 0x00008582

-  GL_SRC0_ALPHA* = 0x00008588

-  GL_SRC1_ALPHA* = 0x00008589

-  GL_SRC2_ALPHA* = 0x0000858A # GL_VERSION_2_0

-  GL_BLEND_EQUATION_RGB* = 0x00008009

-  GL_VERTEX_ATTRIB_ARRAY_ENABLED* = 0x00008622

-  GL_VERTEX_ATTRIB_ARRAY_SIZE* = 0x00008623

-  GL_VERTEX_ATTRIB_ARRAY_STRIDE* = 0x00008624

-  GL_VERTEX_ATTRIB_ARRAYtyp* = 0x00008625

-  GL_CURRENT_VERTEX_ATTRIB* = 0x00008626

-  GL_VERTEX_PROGRAM_POINT_SIZE* = 0x00008642

-  GL_VERTEX_ATTRIB_ARRAY_POINTER* = 0x00008645

-  GL_STENCIL_BACK_FUNC* = 0x00008800

-  GL_STENCIL_BACK_FAIL* = 0x00008801

-  GL_STENCIL_BACK_PASS_DEPTH_FAIL* = 0x00008802

-  GL_STENCIL_BACK_PASS_DEPTH_PASS* = 0x00008803

-  GL_MAX_DRAW_BUFFERS* = 0x00008824

-  GL_DRAW_BUFFER0* = 0x00008825

-  GL_DRAW_BUFFER1* = 0x00008826

-  GL_DRAW_BUFFER2* = 0x00008827

-  GL_DRAW_BUFFER3* = 0x00008828

-  GL_DRAW_BUFFER4* = 0x00008829

-  GL_DRAW_BUFFER5* = 0x0000882A

-  GL_DRAW_BUFFER6* = 0x0000882B

-  GL_DRAW_BUFFER7* = 0x0000882C

-  GL_DRAW_BUFFER8* = 0x0000882D

-  GL_DRAW_BUFFER9* = 0x0000882E

-  GL_DRAW_BUFFER10* = 0x0000882F

-  GL_DRAW_BUFFER11* = 0x00008830

-  GL_DRAW_BUFFER12* = 0x00008831

-  GL_DRAW_BUFFER13* = 0x00008832

-  GL_DRAW_BUFFER14* = 0x00008833

-  GL_DRAW_BUFFER15* = 0x00008834

-  GL_BLEND_EQUATION_ALPHA* = 0x0000883D

-  GL_MAX_VERTEX_ATTRIBS* = 0x00008869

-  GL_VERTEX_ATTRIB_ARRAY_NORMALIZED* = 0x0000886A

-  GL_MAX_TEXTURE_IMAGE_UNITS* = 0x00008872

-  GL_FRAGMENT_SHADER* = 0x00008B30

-  GL_VERTEX_SHADER* = 0x00008B31

-  GL_MAX_FRAGMENT_UNIFORM_COMPONENTS* = 0x00008B49

-  GL_MAX_VERTEX_UNIFORM_COMPONENTS* = 0x00008B4A

-  GL_MAX_VARYING_FLOATS* = 0x00008B4B

-  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS* = 0x00008B4C

-  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS* = 0x00008B4D

-  GL_SHADERtyp* = 0x00008B4F

-  GL_FLOAT_VEC2* = 0x00008B50

-  GL_FLOAT_VEC3* = 0x00008B51

-  GL_FLOAT_VEC4* = 0x00008B52

-  GL_INT_VEC2* = 0x00008B53

-  GL_INT_VEC3* = 0x00008B54

-  GL_INT_VEC4* = 0x00008B55

-  GL_BOOL* = 0x00008B56

-  GL_BOOL_VEC2* = 0x00008B57

-  GL_BOOL_VEC3* = 0x00008B58

-  GL_BOOL_VEC4* = 0x00008B59

-  GL_FLOAT_MAT2* = 0x00008B5A

-  GL_FLOAT_MAT3* = 0x00008B5B

-  GL_FLOAT_MAT4* = 0x00008B5C

-  GL_SAMPLER_1D* = 0x00008B5D

-  GL_SAMPLER_2D* = 0x00008B5E

-  GL_SAMPLER_3D* = 0x00008B5F

-  GL_SAMPLER_CUBE* = 0x00008B60

-  GL_SAMPLER_1D_SHADOW* = 0x00008B61

-  GL_SAMPLER_2D_SHADOW* = 0x00008B62

-  GL_DELETE_STATUS* = 0x00008B80

-  GL_COMPILE_STATUS* = 0x00008B81

-  GL_LINK_STATUS* = 0x00008B82

-  GL_VALIDATE_STATUS* = 0x00008B83

-  GL_INFO_LOG_LENGTH* = 0x00008B84

-  GL_ATTACHED_SHADERS* = 0x00008B85

-  GL_ACTIVE_UNIFORMS* = 0x00008B86

-  GL_ACTIVE_UNIFORM_MAX_LENGTH* = 0x00008B87

-  GL_SHADER_SOURCE_LENGTH* = 0x00008B88

-  GL_ACTIVE_ATTRIBUTES* = 0x00008B89

-  GL_ACTIVE_ATTRIBUTE_MAX_LENGTH* = 0x00008B8A

-  GL_FRAGMENT_SHADER_DERIVATIVE_HINT* = 0x00008B8B

-  GL_SHADING_LANGUAGE_VERSION* = 0x00008B8C

-  GL_CURRENT_PROGRAM* = 0x00008B8D

-  GL_POINT_SPRITE_COORD_ORIGIN* = 0x00008CA0

-  GL_LOWER_LEFT* = 0x00008CA1

-  GL_UPPER_LEFT* = 0x00008CA2

-  GL_STENCIL_BACK_REF* = 0x00008CA3

-  GL_STENCIL_BACK_VALUE_MASK* = 0x00008CA4

-  GL_STENCIL_BACK_WRITEMASK* = 0x00008CA5

-  GL_VERTEX_PROGRAM_TWO_SIDE* = 0x00008643

-  GL_POINT_SPRITE* = 0x00008861

-  GL_COORD_REPLACE* = 0x00008862

-  GL_MAX_TEXTURE_COORDS* = 0x00008871 # GL_VERSION_2_1

-  GL_PIXEL_PACK_BUFFER* = 0x000088EB

-  GL_PIXEL_UNPACK_BUFFER* = 0x000088EC

-  GL_PIXEL_PACK_BUFFER_BINDING* = 0x000088ED

-  GL_PIXEL_UNPACK_BUFFER_BINDING* = 0x000088EF

-  GL_FLOAT_MAT2x3* = 0x00008B65

-  GL_FLOAT_MAT2x4* = 0x00008B66

-  GL_FLOAT_MAT3x2* = 0x00008B67

-  GL_FLOAT_MAT3x4* = 0x00008B68

-  GL_FLOAT_MAT4x2* = 0x00008B69

-  GL_FLOAT_MAT4x3* = 0x00008B6A

-  GL_SRGB* = 0x00008C40

-  GL_SRGB8* = 0x00008C41

-  GL_SRGB_ALPHA* = 0x00008C42

-  GL_SRGB8_ALPHA8* = 0x00008C43

-  GL_COMPRESSED_SRGB* = 0x00008C48

-  GL_COMPRESSED_SRGB_ALPHA* = 0x00008C49

-  GL_CURRENT_RASTER_SECONDARY_COLOR* = 0x0000845F

-  GL_SLUMINANCE_ALPHA* = 0x00008C44

-  GL_SLUMINANCE8_ALPHA8* = 0x00008C45

-  GL_SLUMINANCE* = 0x00008C46

-  GL_SLUMINANCE8* = 0x00008C47

-  GL_COMPRESSED_SLUMINANCE* = 0x00008C4A

-  GL_COMPRESSED_SLUMINANCE_ALPHA* = 0x00008C4B # GL_VERSION_3_0

-  GL_COMPARE_REF_TO_TEXTURE* = 0x0000884E

-  GL_CLIP_DISTANCE0* = 0x00003000

-  GL_CLIP_DISTANCE1* = 0x00003001

-  GL_CLIP_DISTANCE2* = 0x00003002

-  GL_CLIP_DISTANCE3* = 0x00003003

-  GL_CLIP_DISTANCE4* = 0x00003004

-  GL_CLIP_DISTANCE5* = 0x00003005

-  GL_CLIP_DISTANCE6* = 0x00003006

-  GL_CLIP_DISTANCE7* = 0x00003007

-  GL_MAX_CLIP_DISTANCES* = 0x00000D32

-  GL_MAJOR_VERSION* = 0x0000821B

-  GL_MINOR_VERSION* = 0x0000821C

-  GL_NUM_EXTENSIONS* = 0x0000821D

-  GL_CONTEXT_FLAGS* = 0x0000821E

-  GL_DEPTH_BUFFER* = 0x00008223

-  GL_STENCIL_BUFFER* = 0x00008224

-  GL_COMPRESSED_RED* = 0x00008225

-  GL_COMPRESSED_RG* = 0x00008226

-  GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT* = 0x00000001

-  GL_RGBA32F* = 0x00008814

-  GL_RGB32F* = 0x00008815

-  GL_RGBA16F* = 0x0000881A

-  GL_RGB16F* = 0x0000881B

-  GL_VERTEX_ATTRIB_ARRAY_INTEGER* = 0x000088FD

-  GL_MAX_ARRAY_TEXTURE_LAYERS* = 0x000088FF

-  GL_MIN_PROGRAM_TEXEL_OFFSET* = 0x00008904

-  GL_MAX_PROGRAM_TEXEL_OFFSET* = 0x00008905

-  GL_CLAMP_READ_COLOR* = 0x0000891C

-  GL_FIXED_ONLY* = 0x0000891D

-  GL_MAX_VARYING_COMPONENTS* = 0x00008B4B

-  GL_TEXTURE_1D_ARRAY* = 0x00008C18

-  GL_PROXY_TEXTURE_1D_ARRAY* = 0x00008C19

-  GL_TEXTURE_2D_ARRAY* = 0x00008C1A

-  GL_PROXY_TEXTURE_2D_ARRAY* = 0x00008C1B

-  GL_TEXTURE_BINDING_1D_ARRAY* = 0x00008C1C

-  GL_TEXTURE_BINDING_2D_ARRAY* = 0x00008C1D

-  GL_R11F_G11F_B10F* = 0x00008C3A

-  GL_UNSIGNED_INT_10F_11F_11F_REV* = 0x00008C3B

-  GL_RGB9_E5* = 0x00008C3D

-  GL_UNSIGNED_INT_5_9_9_9_REV* = 0x00008C3E

-  GL_TEXTURE_SHARED_SIZE* = 0x00008C3F

-  GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH* = 0x00008C76

-  GL_TRANSFORM_FEEDBACK_BUFFER_MODE* = 0x00008C7F

-  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS* = 0x00008C80

-  cGL_TRANSFORM_FEEDBACK_VARYINGS* = 0x00008C83

-  GL_TRANSFORM_FEEDBACK_BUFFER_START* = 0x00008C84

-  GL_TRANSFORM_FEEDBACK_BUFFER_SIZE* = 0x00008C85

-  GL_PRIMITIVES_GENERATED* = 0x00008C87

-  GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN* = 0x00008C88

-  GL_RASTERIZER_DISCARD* = 0x00008C89

-  GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS* = 0x00008C8A

-  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS* = 0x00008C8B

-  GL_INTERLEAVED_ATTRIBS* = 0x00008C8C

-  GL_SEPARATE_ATTRIBS* = 0x00008C8D

-  GL_TRANSFORM_FEEDBACK_BUFFER* = 0x00008C8E

-  GL_TRANSFORM_FEEDBACK_BUFFER_BINDING* = 0x00008C8F

-  GL_RGBA32UI* = 0x00008D70

-  GL_RGB32UI* = 0x00008D71

-  GL_RGBA16UI* = 0x00008D76

-  GL_RGB16UI* = 0x00008D77

-  GL_RGBA8UI* = 0x00008D7C

-  GL_RGB8UI* = 0x00008D7D

-  GL_RGBA32I* = 0x00008D82

-  GL_RGB32I* = 0x00008D83

-  GL_RGBA16I* = 0x00008D88

-  GL_RGB16I* = 0x00008D89

-  GL_RGBA8I* = 0x00008D8E

-  GL_RGB8I* = 0x00008D8F

-  GL_RED_INTEGER* = 0x00008D94

-  GL_GREEN_INTEGER* = 0x00008D95

-  GL_BLUE_INTEGER* = 0x00008D96

-  GL_RGB_INTEGER* = 0x00008D98

-  GL_RGBA_INTEGER* = 0x00008D99

-  GL_BGR_INTEGER* = 0x00008D9A

-  GL_BGRA_INTEGER* = 0x00008D9B

-  GL_SAMPLER_1D_ARRAY* = 0x00008DC0

-  GL_SAMPLER_2D_ARRAY* = 0x00008DC1

-  GL_SAMPLER_1D_ARRAY_SHADOW* = 0x00008DC3

-  GL_SAMPLER_2D_ARRAY_SHADOW* = 0x00008DC4

-  GL_SAMPLER_CUBE_SHADOW* = 0x00008DC5

-  GL_UNSIGNED_INT_VEC2* = 0x00008DC6

-  GL_UNSIGNED_INT_VEC3* = 0x00008DC7

-  GL_UNSIGNED_INT_VEC4* = 0x00008DC8

-  GL_INT_SAMPLER_1D* = 0x00008DC9

-  GL_INT_SAMPLER_2D* = 0x00008DCA

-  GL_INT_SAMPLER_3D* = 0x00008DCB

-  GL_INT_SAMPLER_CUBE* = 0x00008DCC

-  GL_INT_SAMPLER_1D_ARRAY* = 0x00008DCE

-  GL_INT_SAMPLER_2D_ARRAY* = 0x00008DCF

-  GL_UNSIGNED_INT_SAMPLER_1D* = 0x00008DD1

-  GL_UNSIGNED_INT_SAMPLER_2D* = 0x00008DD2

-  GL_UNSIGNED_INT_SAMPLER_3D* = 0x00008DD3

-  GL_UNSIGNED_INT_SAMPLER_CUBE* = 0x00008DD4

-  GL_UNSIGNED_INT_SAMPLER_1D_ARRAY* = 0x00008DD6

-  GL_UNSIGNED_INT_SAMPLER_2D_ARRAY* = 0x00008DD7

-  GL_QUERY_WAIT* = 0x00008E13

-  GL_QUERY_NO_WAIT* = 0x00008E14

-  GL_QUERY_BY_REGION_WAIT* = 0x00008E15

-  GL_QUERY_BY_REGION_NO_WAIT* = 0x00008E16

-  GL_BUFFER_ACCESS_FLAGS* = 0x0000911F

-  GL_BUFFER_MAP_LENGTH* = 0x00009120

-  GL_BUFFER_MAP_OFFSET* = 0x00009121

-  GL_CLAMP_VERTEX_COLOR* = 0x0000891A

-  GL_CLAMP_FRAGMENT_COLOR* = 0x0000891B

-  GL_ALPHA_INTEGER* = 0x00008D97 # GL_VERSION_3_1

-  GL_SAMPLER_2D_RECT* = 0x00008B63

-  GL_SAMPLER_2D_RECT_SHADOW* = 0x00008B64

-  GL_SAMPLER_BUFFER* = 0x00008DC2

-  GL_INT_SAMPLER_2D_RECT* = 0x00008DCD

-  GL_INT_SAMPLER_BUFFER* = 0x00008DD0

-  GL_UNSIGNED_INT_SAMPLER_2D_RECT* = 0x00008DD5

-  GL_UNSIGNED_INT_SAMPLER_BUFFER* = 0x00008DD8

-  GL_TEXTURE_BUFFER* = 0x00008C2A

-  GL_MAX_TEXTURE_BUFFER_SIZE* = 0x00008C2B

-  GL_TEXTURE_BINDING_BUFFER* = 0x00008C2C

-  GL_TEXTURE_BUFFER_DATA_STORE_BINDING* = 0x00008C2D

-  GL_TEXTURE_BUFFER_FORMAT* = 0x00008C2E

-  GL_TEXTURE_RECTANGLE* = 0x000084F5

-  GL_TEXTURE_BINDING_RECTANGLE* = 0x000084F6

-  GL_PROXY_TEXTURE_RECTANGLE* = 0x000084F7

-  GL_MAX_RECTANGLE_TEXTURE_SIZE* = 0x000084F8

-  GL_RED_SNORM* = 0x00008F90

-  GL_RG_SNORM* = 0x00008F91

-  GL_RGB_SNORM* = 0x00008F92

-  GL_RGBA_SNORM* = 0x00008F93

-  GL_R8_SNORM* = 0x00008F94

-  GL_RG8_SNORM* = 0x00008F95

-  GL_RGB8_SNORM* = 0x00008F96

-  GL_RGBA8_SNORM* = 0x00008F97

-  GL_R16_SNORM* = 0x00008F98

-  GL_RG16_SNORM* = 0x00008F99

-  GL_RGB16_SNORM* = 0x00008F9A

-  GL_RGBA16_SNORM* = 0x00008F9B

-  GL_SIGNED_NORMALIZED* = 0x00008F9C

-  GL_PRIMITIVE_RESTART* = 0x00008F9D

-  cGL_PRIMITIVE_RESTART_INDEX* = 0x00008F9E

-  GL_CONTEXT_CORE_PROFILE_BIT* = 0x00000001

-  GL_CONTEXT_COMPATIBILITY_PROFILE_BIT* = 0x00000002

-  GL_LINES_ADJACENCY* = 0x0000000A

-  GL_LINE_STRIP_ADJACENCY* = 0x0000000B

-  GL_TRIANGLES_ADJACENCY* = 0x0000000C

-  GL_TRIANGLE_STRIP_ADJACENCY* = 0x0000000D

-  GL_PROGRAM_POINT_SIZE* = 0x00008642

-  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS* = 0x00008C29

-  GL_FRAMEBUFFER_ATTACHMENT_LAYERED* = 0x00008DA7

-  GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS* = 0x00008DA8

-  GL_GEOMETRY_SHADER* = 0x00008DD9

-  GL_GEOMETRY_VERTICES_OUT* = 0x00008916

-  GL_GEOMETRY_INPUTtyp* = 0x00008917

-  GL_GEOMETRY_OUTPUTtyp* = 0x00008918

-  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS* = 0x00008DDF

-  GL_MAX_GEOMETRY_OUTPUT_VERTICES* = 0x00008DE0

-  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS* = 0x00008DE1

-  GL_MAX_VERTEX_OUTPUT_COMPONENTS* = 0x00009122

-  GL_MAX_GEOMETRY_INPUT_COMPONENTS* = 0x00009123

-  GL_MAX_GEOMETRY_OUTPUT_COMPONENTS* = 0x00009124

-  GL_MAX_FRAGMENT_INPUT_COMPONENTS* = 0x00009125

-  GL_CONTEXT_PROFILE_MASK* = 0x00009126 # GL_VERSION_3_3

-  GL_VERTEX_ATTRIB_ARRAY_DIVISOR* = 0x000088FE # GL_VERSION_4_0

-  GL_SAMPLE_SHADING* = 0x00008C36

-  GL_MIN_SAMPLE_SHADING_VALUE* = 0x00008C37

-  GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET* = 0x00008E5E

-  GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET* = 0x00008E5F

-  GL_TEXTURE_CUBE_MAP_ARRAY* = 0x00009009

-  GL_TEXTURE_BINDING_CUBE_MAP_ARRAY* = 0x0000900A

-  GL_PROXY_TEXTURE_CUBE_MAP_ARRAY* = 0x0000900B

-  GL_SAMPLER_CUBE_MAP_ARRAY* = 0x0000900C

-  GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW* = 0x0000900D

-  GL_INT_SAMPLER_CUBE_MAP_ARRAY* = 0x0000900E

-  GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY* = 0x0000900F # GL_3DFX_multisample

-  GL_MULTISAMPLE_3DFX* = 0x000086B2

-  GL_SAMPLE_BUFFERS_3DFX* = 0x000086B3

-  GL_SAMPLES_3DFX* = 0x000086B4

-  GL_MULTISAMPLE_BIT_3DFX* = 0x20000000 # GL_3DFX_texture_compression_FXT1

-  GL_COMPRESSED_RGB_FXT1_3DFX* = 0x000086B0

-  GL_COMPRESSED_RGBA_FXT1_3DFX* = 0x000086B1 # GL_APPLE_client_storage

-  GL_UNPACK_CLIENT_STORAGE_APPLE* = 0x000085B2 # GL_APPLE_element_array

-  GL_ELEMENT_ARRAY_APPLE* = 0x00008A0C

-  GL_ELEMENT_ARRAYtyp_APPLE* = 0x00008A0D

-  GL_ELEMENT_ARRAY_POINTER_APPLE* = 0x00008A0E # GL_APPLE_fence

-  GL_DRAW_PIXELS_APPLE* = 0x00008A0A

-  GL_FENCE_APPLE* = 0x00008A0B # GL_APPLE_specular_vector

-  GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE* = 0x000085B0 # GL_APPLE_transform_hint

-  GL_TRANSFORM_HINT_APPLE* = 0x000085B1 # GL_APPLE_vertex_array_object

-  GL_VERTEX_ARRAY_BINDING_APPLE* = 0x000085B5 # GL_APPLE_vertex_array_range

-  cGL_VERTEX_ARRAY_RANGE_APPLE* = 0x0000851D

-  GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE* = 0x0000851E

-  GL_VERTEX_ARRAY_STORAGE_HINT_APPLE* = 0x0000851F

-  GL_VERTEX_ARRAY_RANGE_POINTER_APPLE* = 0x00008521

-  GL_STORAGE_CLIENT_APPLE* = 0x000085B4

-  GL_STORAGE_CACHED_APPLE* = 0x000085BE

-  GL_STORAGE_SHARED_APPLE* = 0x000085BF # GL_APPLE_ycbcr_422

-  GL_YCBCR_422_APPLE* = 0x000085B9

-  GL_UNSIGNED_SHORT_8_8_APPLE* = 0x000085BA

-  GL_UNSIGNED_SHORT_8_8_REV_APPLE* = 0x000085BB # GL_APPLE_texture_range

-  GL_TEXTURE_RANGE_LENGTH_APPLE* = 0x000085B7

-  GL_TEXTURE_RANGE_POINTER_APPLE* = 0x000085B8

-  GL_TEXTURE_STORAGE_HINT_APPLE* = 0x000085BC

-  GL_STORAGE_PRIVATE_APPLE* = 0x000085BD # reuse GL_STORAGE_CACHED_APPLE 

-                                         # reuse GL_STORAGE_SHARED_APPLE 

-                                         # GL_APPLE_float_pixels

-  GL_HALF_APPLE* = 0x0000140B

-  GL_RGBA_FLOAT32_APPLE* = 0x00008814

-  GL_RGB_FLOAT32_APPLE* = 0x00008815

-  GL_ALPHA_FLOAT32_APPLE* = 0x00008816

-  GL_INTENSITY_FLOAT32_APPLE* = 0x00008817

-  GL_LUMINANCE_FLOAT32_APPLE* = 0x00008818

-  GL_LUMINANCE_ALPHA_FLOAT32_APPLE* = 0x00008819

-  GL_RGBA_FLOAT16_APPLE* = 0x0000881A

-  GL_RGB_FLOAT16_APPLE* = 0x0000881B

-  GL_ALPHA_FLOAT16_APPLE* = 0x0000881C

-  GL_INTENSITY_FLOAT16_APPLE* = 0x0000881D

-  GL_LUMINANCE_FLOAT16_APPLE* = 0x0000881E

-  GL_LUMINANCE_ALPHA_FLOAT16_APPLE* = 0x0000881F

-  GL_COLOR_FLOAT_APPLE* = 0x00008A0F # GL_APPLE_vertex_program_evaluators

-  GL_VERTEX_ATTRIB_MAP1_APPLE* = 0x00008A00

-  GL_VERTEX_ATTRIB_MAP2_APPLE* = 0x00008A01

-  GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE* = 0x00008A02

-  GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE* = 0x00008A03

-  GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE* = 0x00008A04

-  GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE* = 0x00008A05

-  GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE* = 0x00008A06

-  GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE* = 0x00008A07

-  GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE* = 0x00008A08

-  GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE* = 0x00008A09 # GL_APPLE_aux_depth_stencil

-  GL_AUX_DEPTH_STENCIL_APPLE* = 0x00008A14 # GL_APPLE_object_purgeable

-  GL_BUFFER_OBJECT_APPLE* = 0x000085B3

-  GL_RELEASED_APPLE* = 0x00008A19

-  GL_VOLATILE_APPLE* = 0x00008A1A

-  GL_RETAINED_APPLE* = 0x00008A1B

-  GL_UNDEFINED_APPLE* = 0x00008A1C

-  GL_PURGEABLE_APPLE* = 0x00008A1D # GL_APPLE_row_bytes

-  GL_PACK_ROW_BYTES_APPLE* = 0x00008A15

-  GL_UNPACK_ROW_BYTES_APPLE* = 0x00008A16 # GL_APPLE_rgb_422

-                                          # reuse GL_UNSIGNED_SHORT_8_8_APPLE 

-                                          # reuse GL_UNSIGNED_SHORT_8_8_REV_APPLE 

-                                          # GL_ARB_depth_texture

-  GL_DEPTH_COMPONENT16_ARB* = 0x000081A5

-  GL_DEPTH_COMPONENT24_ARB* = 0x000081A6

-  GL_DEPTH_COMPONENT32_ARB* = 0x000081A7

-  GL_TEXTURE_DEPTH_SIZE_ARB* = 0x0000884A

-  GL_DEPTH_TEXTURE_MODE_ARB* = 0x0000884B # GL_ARB_fragment_program

-  GL_FRAGMENT_PROGRAM_ARB* = 0x00008804

-  GL_PROGRAM_ALU_INSTRUCTIONS_ARB* = 0x00008805

-  GL_PROGRAM_TEX_INSTRUCTIONS_ARB* = 0x00008806

-  GL_PROGRAM_TEX_INDIRECTIONS_ARB* = 0x00008807

-  GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB* = 0x00008808

-  GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB* = 0x00008809

-  GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB* = 0x0000880A

-  GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB* = 0x0000880B

-  GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB* = 0x0000880C

-  GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB* = 0x0000880D

-  GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB* = 0x0000880E

-  GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB* = 0x0000880F

-  GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB* = 0x00008810

-  GL_MAX_TEXTURE_COORDS_ARB* = 0x00008871

-  GL_MAX_TEXTURE_IMAGE_UNITS_ARB* = 0x00008872 # GL_ARB_imaging

-  GL_CONSTANT_COLOR_ARB* = 0x00008001

-  GL_ONE_MINUS_CONSTANT_COLOR* = 0x00008002

-  GL_CONSTANT_ALPHA* = 0x00008003

-  GL_ONE_MINUS_CONSTANT_ALPHA* = 0x00008004

-  cGL_BLEND_COLOR* = 0x00008005

-  GL_FUNC_ADD* = 0x00008006

-  GL_MIN* = 0x00008007

-  GL_MAX* = 0x00008008

-  cGL_BLEND_EQUATION* = 0x00008009

-  GL_FUNC_SUBTRACT* = 0x0000800A

-  GL_FUNC_REVERSE_SUBTRACT* = 0x0000800B

-  GL_CONVOLUTION_1D* = 0x00008010

-  GL_CONVOLUTION_2D* = 0x00008011

-  GL_SEPARABLE_2D* = 0x00008012

-  GL_CONVOLUTION_BORDER_MODE* = 0x00008013

-  GL_CONVOLUTION_FILTER_SCALE* = 0x00008014

-  GL_CONVOLUTION_FILTER_BIAS* = 0x00008015

-  GL_REDUCE* = 0x00008016

-  GL_CONVOLUTION_FORMAT* = 0x00008017

-  GL_CONVOLUTION_WIDTH* = 0x00008018

-  GL_CONVOLUTION_HEIGHT* = 0x00008019

-  GL_MAX_CONVOLUTION_WIDTH* = 0x0000801A

-  GL_MAX_CONVOLUTION_HEIGHT* = 0x0000801B

-  GL_POST_CONVOLUTION_RED_SCALE* = 0x0000801C

-  GL_POST_CONVOLUTION_GREEN_SCALE* = 0x0000801D

-  GL_POST_CONVOLUTION_BLUE_SCALE* = 0x0000801E

-  GL_POST_CONVOLUTION_ALPHA_SCALE* = 0x0000801F

-  GL_POST_CONVOLUTION_RED_BIAS* = 0x00008020

-  GL_POST_CONVOLUTION_GREEN_BIAS* = 0x00008021

-  GL_POST_CONVOLUTION_BLUE_BIAS* = 0x00008022

-  GL_POST_CONVOLUTION_ALPHA_BIAS* = 0x00008023

-  cGL_HISTOGRAM* = 0x00008024

-  GL_PROXY_HISTOGRAM* = 0x00008025

-  GL_HISTOGRAM_WIDTH* = 0x00008026

-  GL_HISTOGRAM_FORMAT* = 0x00008027

-  GL_HISTOGRAM_RED_SIZE* = 0x00008028

-  GL_HISTOGRAM_GREEN_SIZE* = 0x00008029

-  GL_HISTOGRAM_BLUE_SIZE* = 0x0000802A

-  GL_HISTOGRAM_ALPHA_SIZE* = 0x0000802B

-  GL_HISTOGRAM_LUMINANCE_SIZE* = 0x0000802C

-  GL_HISTOGRAM_SINK* = 0x0000802D

-  cGL_MINMAX* = 0x0000802E

-  GL_MINMAX_FORMAT* = 0x0000802F

-  GL_MINMAX_SINK* = 0x00008030

-  GL_TABLE_TOO_LARGE* = 0x00008031

-  GL_COLOR_MATRIX* = 0x000080B1

-  GL_COLOR_MATRIX_STACK_DEPTH* = 0x000080B2

-  GL_MAX_COLOR_MATRIX_STACK_DEPTH* = 0x000080B3

-  GL_POST_COLOR_MATRIX_RED_SCALE* = 0x000080B4

-  GL_POST_COLOR_MATRIX_GREEN_SCALE* = 0x000080B5

-  GL_POST_COLOR_MATRIX_BLUE_SCALE* = 0x000080B6

-  GL_POST_COLOR_MATRIX_ALPHA_SCALE* = 0x000080B7

-  GL_POST_COLOR_MATRIX_RED_BIAS* = 0x000080B8

-  GL_POST_COLOR_MATRIX_GREEN_BIAS* = 0x000080B9

-  GL_POST_COLOR_MATRIX_BLUE_BIAS* = 0x000080BA

-  GL_POST_COLOR_MATRIX_ALPHA_BIAS* = 0x000080BB

-  cGL_COLOR_TABLE* = 0x000080D0

-  GL_POST_CONVOLUTION_COLOR_TABLE* = 0x000080D1

-  GL_POST_COLOR_MATRIX_COLOR_TABLE* = 0x000080D2

-  GL_PROXY_COLOR_TABLE* = 0x000080D3

-  GL_PROXY_POST_CONVOLUTION_COLOR_TABLE* = 0x000080D4

-  GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE* = 0x000080D5

-  GL_COLOR_TABLE_SCALE* = 0x000080D6

-  GL_COLOR_TABLE_BIAS* = 0x000080D7

-  GL_COLOR_TABLE_FORMAT* = 0x000080D8

-  GL_COLOR_TABLE_WIDTH* = 0x000080D9

-  GL_COLOR_TABLE_RED_SIZE* = 0x000080DA

-  GL_COLOR_TABLE_GREEN_SIZE* = 0x000080DB

-  GL_COLOR_TABLE_BLUE_SIZE* = 0x000080DC

-  GL_COLOR_TABLE_ALPHA_SIZE* = 0x000080DD

-  GL_COLOR_TABLE_LUMINANCE_SIZE* = 0x000080DE

-  GL_COLOR_TABLE_INTENSITY_SIZE* = 0x000080DF

-  GL_CONSTANT_BORDER* = 0x00008151

-  GL_REPLICATE_BORDER* = 0x00008153

-  GL_CONVOLUTION_BORDER_COLOR* = 0x00008154 # GL_ARB_matrix_palette

-  GL_MATRIX_PALETTE_ARB* = 0x00008840

-  GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB* = 0x00008841

-  GL_MAX_PALETTE_MATRICES_ARB* = 0x00008842

-  cGL_CURRENT_PALETTE_MATRIX_ARB* = 0x00008843

-  GL_MATRIX_INDEX_ARRAY_ARB* = 0x00008844

-  GL_CURRENT_MATRIX_INDEX_ARB* = 0x00008845

-  GL_MATRIX_INDEX_ARRAY_SIZE_ARB* = 0x00008846

-  GL_MATRIX_INDEX_ARRAYtyp_ARB* = 0x00008847

-  GL_MATRIX_INDEX_ARRAY_STRIDE_ARB* = 0x00008848

-  GL_MATRIX_INDEX_ARRAY_POINTER_ARB* = 0x00008849 # GL_ARB_multisample

-  GL_MULTISAMPLE_ARB* = 0x0000809D

-  GL_SAMPLE_ALPHA_TO_COVERAGE_ARB* = 0x0000809E

-  GL_SAMPLE_ALPHA_TO_ONE_ARB* = 0x0000809F

-  cGL_SAMPLE_COVERAGE_ARB* = 0x000080A0

-  GL_SAMPLE_BUFFERS_ARB* = 0x000080A8

-  GL_SAMPLES_ARB* = 0x000080A9

-  GL_SAMPLE_COVERAGE_VALUE_ARB* = 0x000080AA

-  GL_SAMPLE_COVERAGE_INVERT_ARB* = 0x000080AB

-  GL_MULTISAMPLE_BIT_ARB* = 0x20000000 # GL_ARB_multitexture

-  GL_TEXTURE0_ARB* = 0x000084C0

-  GL_TEXTURE1_ARB* = 0x000084C1

-  GL_TEXTURE2_ARB* = 0x000084C2

-  GL_TEXTURE3_ARB* = 0x000084C3

-  GL_TEXTURE4_ARB* = 0x000084C4

-  GL_TEXTURE5_ARB* = 0x000084C5

-  GL_TEXTURE6_ARB* = 0x000084C6

-  GL_TEXTURE7_ARB* = 0x000084C7

-  GL_TEXTURE8_ARB* = 0x000084C8

-  GL_TEXTURE9_ARB* = 0x000084C9

-  GL_TEXTURE10_ARB* = 0x000084CA

-  GL_TEXTURE11_ARB* = 0x000084CB

-  GL_TEXTURE12_ARB* = 0x000084CC

-  GL_TEXTURE13_ARB* = 0x000084CD

-  GL_TEXTURE14_ARB* = 0x000084CE

-  GL_TEXTURE15_ARB* = 0x000084CF

-  GL_TEXTURE16_ARB* = 0x000084D0

-  GL_TEXTURE17_ARB* = 0x000084D1

-  GL_TEXTURE18_ARB* = 0x000084D2

-  GL_TEXTURE19_ARB* = 0x000084D3

-  GL_TEXTURE20_ARB* = 0x000084D4

-  GL_TEXTURE21_ARB* = 0x000084D5

-  GL_TEXTURE22_ARB* = 0x000084D6

-  GL_TEXTURE23_ARB* = 0x000084D7

-  GL_TEXTURE24_ARB* = 0x000084D8

-  GL_TEXTURE25_ARB* = 0x000084D9

-  GL_TEXTURE26_ARB* = 0x000084DA

-  GL_TEXTURE27_ARB* = 0x000084DB

-  GL_TEXTURE28_ARB* = 0x000084DC

-  GL_TEXTURE29_ARB* = 0x000084DD

-  GL_TEXTURE30_ARB* = 0x000084DE

-  GL_TEXTURE31_ARB* = 0x000084DF

-  cGL_ACTIVE_TEXTURE_ARB* = 0x000084E0

-  cGL_CLIENT_ACTIVE_TEXTURE_ARB* = 0x000084E1

-  GL_MAX_TEXTURE_UNITS_ARB* = 0x000084E2 # GL_ARB_point_parameters

-  GL_POINT_SIZE_MIN_ARB* = 0x00008126

-  GL_POINT_SIZE_MAX_ARB* = 0x00008127

-  GL_POINT_FADE_THRESHOLD_SIZE_ARB* = 0x00008128

-  GL_POINT_DISTANCE_ATTENUATION_ARB* = 0x00008129 # GL_ARB_shadow

-  GL_TEXTURE_COMPARE_MODE_ARB* = 0x0000884C

-  GL_TEXTURE_COMPARE_FUNC_ARB* = 0x0000884D

-  GL_COMPARE_R_TO_TEXTURE_ARB* = 0x0000884E # GL_ARB_shadow_ambient

-  GL_TEXTURE_COMPARE_FAIL_VALUE_ARB* = 0x000080BF # GL_ARB_texture_border_clamp

-  GL_CLAMP_TO_BORDER_ARB* = 0x0000812D # GL_ARB_texture_compression

-  GL_COMPRESSED_ALPHA_ARB* = 0x000084E9

-  GL_COMPRESSED_LUMINANCE_ARB* = 0x000084EA

-  GL_COMPRESSED_LUMINANCE_ALPHA_ARB* = 0x000084EB

-  GL_COMPRESSED_INTENSITY_ARB* = 0x000084EC

-  GL_COMPRESSED_RGB_ARB* = 0x000084ED

-  GL_COMPRESSED_RGBA_ARB* = 0x000084EE

-  GL_TEXTURE_COMPRESSION_HINT_ARB* = 0x000084EF

-  GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB* = 0x000086A0

-  GL_TEXTURE_COMPRESSED_ARB* = 0x000086A1

-  GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB* = 0x000086A2

-  GL_COMPRESSED_TEXTURE_FORMATS_ARB* = 0x000086A3 # GL_ARB_texture_cube_map

-  GL_NORMAL_MAP_ARB* = 0x00008511

-  GL_REFLECTION_MAP_ARB* = 0x00008512

-  GL_TEXTURE_CUBE_MAP_ARB* = 0x00008513

-  GL_TEXTURE_BINDING_CUBE_MAP_ARB* = 0x00008514

-  GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB* = 0x00008515

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB* = 0x00008516

-  GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB* = 0x00008517

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB* = 0x00008518

-  GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB* = 0x00008519

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB* = 0x0000851A

-  GL_PROXY_TEXTURE_CUBE_MAP_ARB* = 0x0000851B

-  GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB* = 0x0000851C # GL_ARB_texture_env_combine

-  GL_COMBINE_ARB* = 0x00008570

-  GL_COMBINE_RGB_ARB* = 0x00008571

-  GL_COMBINE_ALPHA_ARB* = 0x00008572

-  GL_SOURCE0_RGB_ARB* = 0x00008580

-  GL_SOURCE1_RGB_ARB* = 0x00008581

-  GL_SOURCE2_RGB_ARB* = 0x00008582

-  GL_SOURCE0_ALPHA_ARB* = 0x00008588

-  GL_SOURCE1_ALPHA_ARB* = 0x00008589

-  GL_SOURCE2_ALPHA_ARB* = 0x0000858A

-  GL_OPERAND0_RGB_ARB* = 0x00008590

-  GL_OPERAND1_RGB_ARB* = 0x00008591

-  GL_OPERAND2_RGB_ARB* = 0x00008592

-  GL_OPERAND0_ALPHA_ARB* = 0x00008598

-  GL_OPERAND1_ALPHA_ARB* = 0x00008599

-  GL_OPERAND2_ALPHA_ARB* = 0x0000859A

-  GL_RGB_SCALE_ARB* = 0x00008573

-  GL_ADD_SIGNED_ARB* = 0x00008574

-  GL_INTERPOLATE_ARB* = 0x00008575

-  GL_SUBTRACT_ARB* = 0x000084E7

-  GL_CONSTANT_ARB* = 0x00008576

-  GL_PRIMARY_COLOR_ARB* = 0x00008577

-  GL_PREVIOUS_ARB* = 0x00008578 # GL_ARB_texture_env_dot3

-  GL_DOT3_RGB_ARB* = 0x000086AE

-  GL_DOT3_RGBA_ARB* = 0x000086AF # GL_ARB_texture_mirrored_repeat

-  GL_MIRRORED_REPEAT_ARB* = 0x00008370 # GL_ARB_transpose_matrix

-  GL_TRANSPOSE_MODELVIEW_MATRIX_ARB* = 0x000084E3

-  GL_TRANSPOSE_PROJECTION_MATRIX_ARB* = 0x000084E4

-  GL_TRANSPOSE_TEXTURE_MATRIX_ARB* = 0x000084E5

-  GL_TRANSPOSE_COLOR_MATRIX_ARB* = 0x000084E6 # GL_ARB_vertex_blend

-  GL_MAX_VERTEX_UNITS_ARB* = 0x000086A4

-  GL_ACTIVE_VERTEX_UNITS_ARB* = 0x000086A5

-  GL_WEIGHT_SUM_UNITY_ARB* = 0x000086A6

-  cGL_VERTEX_BLEND_ARB* = 0x000086A7

-  GL_CURRENT_WEIGHT_ARB* = 0x000086A8

-  GL_WEIGHT_ARRAYtyp_ARB* = 0x000086A9

-  GL_WEIGHT_ARRAY_STRIDE_ARB* = 0x000086AA

-  GL_WEIGHT_ARRAY_SIZE_ARB* = 0x000086AB

-  GL_WEIGHT_ARRAY_POINTER_ARB* = 0x000086AC

-  GL_WEIGHT_ARRAY_ARB* = 0x000086AD

-  GL_MODELVIEW0_ARB* = 0x00001700

-  GL_MODELVIEW1_ARB* = 0x0000850A

-  GL_MODELVIEW2_ARB* = 0x00008722

-  GL_MODELVIEW3_ARB* = 0x00008723

-  GL_MODELVIEW4_ARB* = 0x00008724

-  GL_MODELVIEW5_ARB* = 0x00008725

-  GL_MODELVIEW6_ARB* = 0x00008726

-  GL_MODELVIEW7_ARB* = 0x00008727

-  GL_MODELVIEW8_ARB* = 0x00008728

-  GL_MODELVIEW9_ARB* = 0x00008729

-  GL_MODELVIEW10_ARB* = 0x0000872A

-  GL_MODELVIEW11_ARB* = 0x0000872B

-  GL_MODELVIEW12_ARB* = 0x0000872C

-  GL_MODELVIEW13_ARB* = 0x0000872D

-  GL_MODELVIEW14_ARB* = 0x0000872E

-  GL_MODELVIEW15_ARB* = 0x0000872F

-  GL_MODELVIEW16_ARB* = 0x00008730

-  GL_MODELVIEW17_ARB* = 0x00008731

-  GL_MODELVIEW18_ARB* = 0x00008732

-  GL_MODELVIEW19_ARB* = 0x00008733

-  GL_MODELVIEW20_ARB* = 0x00008734

-  GL_MODELVIEW21_ARB* = 0x00008735

-  GL_MODELVIEW22_ARB* = 0x00008736

-  GL_MODELVIEW23_ARB* = 0x00008737

-  GL_MODELVIEW24_ARB* = 0x00008738

-  GL_MODELVIEW25_ARB* = 0x00008739

-  GL_MODELVIEW26_ARB* = 0x0000873A

-  GL_MODELVIEW27_ARB* = 0x0000873B

-  GL_MODELVIEW28_ARB* = 0x0000873C

-  GL_MODELVIEW29_ARB* = 0x0000873D

-  GL_MODELVIEW30_ARB* = 0x0000873E

-  GL_MODELVIEW31_ARB* = 0x0000873F # GL_ARB_vertex_buffer_object

-  GL_BUFFER_SIZE_ARB* = 0x00008764

-  GL_BUFFER_USAGE_ARB* = 0x00008765

-  GL_ARRAY_BUFFER_ARB* = 0x00008892

-  GL_ELEMENT_ARRAY_BUFFER_ARB* = 0x00008893

-  GL_ARRAY_BUFFER_BINDING_ARB* = 0x00008894

-  GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB* = 0x00008895

-  GL_VERTEX_ARRAY_BUFFER_BINDING_ARB* = 0x00008896

-  GL_NORMAL_ARRAY_BUFFER_BINDING_ARB* = 0x00008897

-  GL_COLOR_ARRAY_BUFFER_BINDING_ARB* = 0x00008898

-  GL_INDEX_ARRAY_BUFFER_BINDING_ARB* = 0x00008899

-  GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB* = 0x0000889A

-  GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB* = 0x0000889B

-  GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB* = 0x0000889C

-  GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB* = 0x0000889D

-  GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB* = 0x0000889E

-  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB* = 0x0000889F

-  GL_READ_ONLY_ARB* = 0x000088B8

-  GL_WRITE_ONLY_ARB* = 0x000088B9

-  GL_READ_WRITE_ARB* = 0x000088BA

-  GL_BUFFER_ACCESS_ARB* = 0x000088BB

-  GL_BUFFER_MAPPED_ARB* = 0x000088BC

-  GL_BUFFER_MAP_POINTER_ARB* = 0x000088BD

-  GL_STREAM_DRAW_ARB* = 0x000088E0

-  GL_STREAM_READ_ARB* = 0x000088E1

-  GL_STREAM_COPY_ARB* = 0x000088E2

-  GL_STATIC_DRAW_ARB* = 0x000088E4

-  GL_STATIC_READ_ARB* = 0x000088E5

-  GL_STATIC_COPY_ARB* = 0x000088E6

-  GL_DYNAMIC_DRAW_ARB* = 0x000088E8

-  GL_DYNAMIC_READ_ARB* = 0x000088E9

-  GL_DYNAMIC_COPY_ARB* = 0x000088EA # GL_ARB_vertex_program

-  GL_COLOR_SUM_ARB* = 0x00008458

-  GL_VERTEX_PROGRAM_ARB* = 0x00008620

-  GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB* = 0x00008622

-  GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB* = 0x00008623

-  GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB* = 0x00008624

-  GL_VERTEX_ATTRIB_ARRAYtyp_ARB* = 0x00008625

-  GL_CURRENT_VERTEX_ATTRIB_ARB* = 0x00008626

-  GL_PROGRAM_LENGTH_ARB* = 0x00008627

-  cGL_PROGRAM_STRING_ARB* = 0x00008628

-  GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB* = 0x0000862E

-  GL_MAX_PROGRAM_MATRICES_ARB* = 0x0000862F

-  GL_CURRENT_MATRIX_STACK_DEPTH_ARB* = 0x00008640

-  GL_CURRENT_MATRIX_ARB* = 0x00008641

-  GL_VERTEX_PROGRAM_POINT_SIZE_ARB* = 0x00008642

-  GL_VERTEX_PROGRAM_TWO_SIDE_ARB* = 0x00008643

-  GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB* = 0x00008645

-  GL_PROGRAM_ERROR_POSITION_ARB* = 0x0000864B

-  GL_PROGRAM_BINDING_ARB* = 0x00008677

-  GL_MAX_VERTEX_ATTRIBS_ARB* = 0x00008869

-  GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB* = 0x0000886A

-  GL_PROGRAM_ERROR_STRING_ARB* = 0x00008874

-  GL_PROGRAM_FORMAT_ASCII_ARB* = 0x00008875

-  GL_PROGRAM_FORMAT_ARB* = 0x00008876

-  GL_PROGRAM_INSTRUCTIONS_ARB* = 0x000088A0

-  GL_MAX_PROGRAM_INSTRUCTIONS_ARB* = 0x000088A1

-  GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB* = 0x000088A2

-  GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB* = 0x000088A3

-  GL_PROGRAM_TEMPORARIES_ARB* = 0x000088A4

-  GL_MAX_PROGRAM_TEMPORARIES_ARB* = 0x000088A5

-  GL_PROGRAM_NATIVE_TEMPORARIES_ARB* = 0x000088A6

-  GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB* = 0x000088A7

-  GL_PROGRAM_PARAMETERS_ARB* = 0x000088A8

-  GL_MAX_PROGRAM_PARAMETERS_ARB* = 0x000088A9

-  GL_PROGRAM_NATIVE_PARAMETERS_ARB* = 0x000088AA

-  GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB* = 0x000088AB

-  GL_PROGRAM_ATTRIBS_ARB* = 0x000088AC

-  GL_MAX_PROGRAM_ATTRIBS_ARB* = 0x000088AD

-  GL_PROGRAM_NATIVE_ATTRIBS_ARB* = 0x000088AE

-  GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB* = 0x000088AF

-  GL_PROGRAM_ADDRESS_REGISTERS_ARB* = 0x000088B0

-  GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB* = 0x000088B1

-  GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB* = 0x000088B2

-  GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB* = 0x000088B3

-  GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB* = 0x000088B4

-  GL_MAX_PROGRAM_ENV_PARAMETERS_ARB* = 0x000088B5

-  GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB* = 0x000088B6

-  GL_TRANSPOSE_CURRENT_MATRIX_ARB* = 0x000088B7

-  GL_MATRIX0_ARB* = 0x000088C0

-  GL_MATRIX1_ARB* = 0x000088C1

-  GL_MATRIX2_ARB* = 0x000088C2

-  GL_MATRIX3_ARB* = 0x000088C3

-  GL_MATRIX4_ARB* = 0x000088C4

-  GL_MATRIX5_ARB* = 0x000088C5

-  GL_MATRIX6_ARB* = 0x000088C6

-  GL_MATRIX7_ARB* = 0x000088C7

-  GL_MATRIX8_ARB* = 0x000088C8

-  GL_MATRIX9_ARB* = 0x000088C9

-  GL_MATRIX10_ARB* = 0x000088CA

-  GL_MATRIX11_ARB* = 0x000088CB

-  GL_MATRIX12_ARB* = 0x000088CC

-  GL_MATRIX13_ARB* = 0x000088CD

-  GL_MATRIX14_ARB* = 0x000088CE

-  GL_MATRIX15_ARB* = 0x000088CF

-  GL_MATRIX16_ARB* = 0x000088D0

-  GL_MATRIX17_ARB* = 0x000088D1

-  GL_MATRIX18_ARB* = 0x000088D2

-  GL_MATRIX19_ARB* = 0x000088D3

-  GL_MATRIX20_ARB* = 0x000088D4

-  GL_MATRIX21_ARB* = 0x000088D5

-  GL_MATRIX22_ARB* = 0x000088D6

-  GL_MATRIX23_ARB* = 0x000088D7

-  GL_MATRIX24_ARB* = 0x000088D8

-  GL_MATRIX25_ARB* = 0x000088D9

-  GL_MATRIX26_ARB* = 0x000088DA

-  GL_MATRIX27_ARB* = 0x000088DB

-  GL_MATRIX28_ARB* = 0x000088DC

-  GL_MATRIX29_ARB* = 0x000088DD

-  GL_MATRIX30_ARB* = 0x000088DE

-  GL_MATRIX31_ARB* = 0x000088DF # GL_ARB_draw_buffers

-  GL_MAX_DRAW_BUFFERS_ARB* = 0x00008824

-  GL_DRAW_BUFFER0_ARB* = 0x00008825

-  GL_DRAW_BUFFER1_ARB* = 0x00008826

-  GL_DRAW_BUFFER2_ARB* = 0x00008827

-  GL_DRAW_BUFFER3_ARB* = 0x00008828

-  GL_DRAW_BUFFER4_ARB* = 0x00008829

-  GL_DRAW_BUFFER5_ARB* = 0x0000882A

-  GL_DRAW_BUFFER6_ARB* = 0x0000882B

-  GL_DRAW_BUFFER7_ARB* = 0x0000882C

-  GL_DRAW_BUFFER8_ARB* = 0x0000882D

-  GL_DRAW_BUFFER9_ARB* = 0x0000882E

-  GL_DRAW_BUFFER10_ARB* = 0x0000882F

-  GL_DRAW_BUFFER11_ARB* = 0x00008830

-  GL_DRAW_BUFFER12_ARB* = 0x00008831

-  GL_DRAW_BUFFER13_ARB* = 0x00008832

-  GL_DRAW_BUFFER14_ARB* = 0x00008833

-  GL_DRAW_BUFFER15_ARB* = 0x00008834 # GL_ARB_texture_rectangle

-  GL_TEXTURE_RECTANGLE_ARB* = 0x000084F5

-  GL_TEXTURE_BINDING_RECTANGLE_ARB* = 0x000084F6

-  GL_PROXY_TEXTURE_RECTANGLE_ARB* = 0x000084F7

-  GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB* = 0x000084F8 # GL_ARB_color_buffer_float

-  GL_RGBA_FLOAT_MODE_ARB* = 0x00008820

-  GL_CLAMP_VERTEX_COLOR_ARB* = 0x0000891A

-  GL_CLAMP_FRAGMENT_COLOR_ARB* = 0x0000891B

-  GL_CLAMP_READ_COLOR_ARB* = 0x0000891C

-  GL_FIXED_ONLY_ARB* = 0x0000891D

-  WGLtyp_RGBA_FLOAT_ARB* = 0x000021A0

-  GLX_RGBA_FLOATtyp* = 0x000020B9

-  GLX_RGBA_FLOAT_BIT* = 0x00000004 # GL_ARB_half_float_pixel

-  GL_HALF_FLOAT_ARB* = 0x0000140B # GL_ARB_texture_float

-  GL_TEXTURE_REDtyp_ARB* = 0x00008C10

-  GL_TEXTURE_GREENtyp_ARB* = 0x00008C11

-  GL_TEXTURE_BLUEtyp_ARB* = 0x00008C12

-  GL_TEXTURE_ALPHAtyp_ARB* = 0x00008C13

-  GL_TEXTURE_LUMINANCEtyp_ARB* = 0x00008C14

-  GL_TEXTURE_INTENSITYtyp_ARB* = 0x00008C15

-  GL_TEXTURE_DEPTHtyp_ARB* = 0x00008C16

-  GL_UNSIGNED_NORMALIZED_ARB* = 0x00008C17

-  GL_RGBA32F_ARB* = 0x00008814

-  GL_RGB32F_ARB* = 0x00008815

-  GL_ALPHA32F_ARB* = 0x00008816

-  GL_INTENSITY32F_ARB* = 0x00008817

-  GL_LUMINANCE32F_ARB* = 0x00008818

-  GL_LUMINANCE_ALPHA32F_ARB* = 0x00008819

-  GL_RGBA16F_ARB* = 0x0000881A

-  GL_RGB16F_ARB* = 0x0000881B

-  GL_ALPHA16F_ARB* = 0x0000881C

-  GL_INTENSITY16F_ARB* = 0x0000881D

-  GL_LUMINANCE16F_ARB* = 0x0000881E

-  GL_LUMINANCE_ALPHA16F_ARB* = 0x0000881F # GL_ARB_pixel_buffer_object

-  GL_PIXEL_PACK_BUFFER_ARB* = 0x000088EB

-  GL_PIXEL_UNPACK_BUFFER_ARB* = 0x000088EC

-  GL_PIXEL_PACK_BUFFER_BINDING_ARB* = 0x000088ED

-  GL_PIXEL_UNPACK_BUFFER_BINDING_ARB* = 0x000088EF # GL_ARB_depth_buffer_float

-  GL_DEPTH_COMPONENT32F* = 0x00008CAC

-  GL_DEPTH32F_STENCIL8* = 0x00008CAD

-  GL_FLOAT_32_UNSIGNED_INT_24_8_REV* = 0x00008DAD # GL_ARB_framebuffer_object

-  GL_INVALID_FRAMEBUFFER_OPERATION* = 0x00000506

-  GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING* = 0x00008210

-  GL_FRAMEBUFFER_ATTACHMENT_COMPONENTtyp* = 0x00008211

-  GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE* = 0x00008212

-  GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE* = 0x00008213

-  GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE* = 0x00008214

-  GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE* = 0x00008215

-  GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE* = 0x00008216

-  GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE* = 0x00008217

-  GL_FRAMEBUFFER_DEFAULT* = 0x00008218

-  GL_FRAMEBUFFER_UNDEFINED* = 0x00008219

-  GL_DEPTH_STENCIL_ATTACHMENT* = 0x0000821A

-  GL_MAX_RENDERBUFFER_SIZE* = 0x000084E8

-  GL_DEPTH_STENCIL* = 0x000084F9

-  GL_UNSIGNED_INT_24_8* = 0x000084FA

-  GL_DEPTH24_STENCIL8* = 0x000088F0

-  GL_TEXTURE_STENCIL_SIZE* = 0x000088F1

-  GL_TEXTURE_REDtyp* = 0x00008C10

-  GL_TEXTURE_GREENtyp* = 0x00008C11

-  GL_TEXTURE_BLUEtyp* = 0x00008C12

-  GL_TEXTURE_ALPHAtyp* = 0x00008C13

-  GL_TEXTURE_DEPTHtyp* = 0x00008C16

-  GL_UNSIGNED_NORMALIZED* = 0x00008C17

-  GL_FRAMEBUFFER_BINDING* = 0x00008CA6

-  GL_DRAW_FRAMEBUFFER_BINDING* = GL_FRAMEBUFFER_BINDING

-  GL_RENDERBUFFER_BINDING* = 0x00008CA7

-  GL_READ_FRAMEBUFFER* = 0x00008CA8

-  GL_DRAW_FRAMEBUFFER* = 0x00008CA9

-  GL_READ_FRAMEBUFFER_BINDING* = 0x00008CAA

-  GL_RENDERBUFFER_SAMPLES* = 0x00008CAB

-  GL_FRAMEBUFFER_ATTACHMENT_OBJECTtyp* = 0x00008CD0

-  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME* = 0x00008CD1

-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL* = 0x00008CD2

-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE* = 0x00008CD3

-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER* = 0x00008CD4

-  GL_FRAMEBUFFER_COMPLETE* = 0x00008CD5

-  GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT* = 0x00008CD6

-  GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT* = 0x00008CD7

-  GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER* = 0x00008CDB

-  GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER* = 0x00008CDC

-  GL_FRAMEBUFFER_UNSUPPORTED* = 0x00008CDD

-  GL_MAX_COLOR_ATTACHMENTS* = 0x00008CDF

-  GL_COLOR_ATTACHMENT0* = 0x00008CE0

-  GL_COLOR_ATTACHMENT1* = 0x00008CE1

-  GL_COLOR_ATTACHMENT2* = 0x00008CE2

-  GL_COLOR_ATTACHMENT3* = 0x00008CE3

-  GL_COLOR_ATTACHMENT4* = 0x00008CE4

-  GL_COLOR_ATTACHMENT5* = 0x00008CE5

-  GL_COLOR_ATTACHMENT6* = 0x00008CE6

-  GL_COLOR_ATTACHMENT7* = 0x00008CE7

-  GL_COLOR_ATTACHMENT8* = 0x00008CE8

-  GL_COLOR_ATTACHMENT9* = 0x00008CE9

-  GL_COLOR_ATTACHMENT10* = 0x00008CEA

-  GL_COLOR_ATTACHMENT11* = 0x00008CEB

-  GL_COLOR_ATTACHMENT12* = 0x00008CEC

-  GL_COLOR_ATTACHMENT13* = 0x00008CED

-  GL_COLOR_ATTACHMENT14* = 0x00008CEE

-  GL_COLOR_ATTACHMENT15* = 0x00008CEF

-  GL_DEPTH_ATTACHMENT* = 0x00008D00

-  GL_STENCIL_ATTACHMENT* = 0x00008D20

-  GL_FRAMEBUFFER* = 0x00008D40

-  GL_RENDERBUFFER* = 0x00008D41

-  GL_RENDERBUFFER_WIDTH* = 0x00008D42

-  GL_RENDERBUFFER_HEIGHT* = 0x00008D43

-  GL_RENDERBUFFER_INTERNAL_FORMAT* = 0x00008D44

-  GL_STENCIL_INDEX1* = 0x00008D46

-  GL_STENCIL_INDEX4* = 0x00008D47

-  GL_STENCIL_INDEX8* = 0x00008D48

-  GL_STENCIL_INDEX16* = 0x00008D49

-  GL_RENDERBUFFER_RED_SIZE* = 0x00008D50

-  GL_RENDERBUFFER_GREEN_SIZE* = 0x00008D51

-  GL_RENDERBUFFER_BLUE_SIZE* = 0x00008D52

-  GL_RENDERBUFFER_ALPHA_SIZE* = 0x00008D53

-  GL_RENDERBUFFER_DEPTH_SIZE* = 0x00008D54

-  GL_RENDERBUFFER_STENCIL_SIZE* = 0x00008D55

-  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE* = 0x00008D56

-  GL_MAX_SAMPLES* = 0x00008D57

-  GL_INDEX* = 0x00008222

-  GL_TEXTURE_LUMINANCEtyp* = 0x00008C14

-  GL_TEXTURE_INTENSITYtyp* = 0x00008C15 # GL_ARB_framebuffer_sRGB

-  GL_FRAMEBUFFER_SRGB* = 0x00008DB9 # GL_ARB_geometry_shader4

-  GL_LINES_ADJACENCY_ARB* = 0x0000000A

-  GL_LINE_STRIP_ADJACENCY_ARB* = 0x0000000B

-  GL_TRIANGLES_ADJACENCY_ARB* = 0x0000000C

-  GL_TRIANGLE_STRIP_ADJACENCY_ARB* = 0x0000000D

-  GL_PROGRAM_POINT_SIZE_ARB* = 0x00008642

-  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB* = 0x00008C29

-  GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB* = 0x00008DA7

-  GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB* = 0x00008DA8

-  GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB* = 0x00008DA9

-  GL_GEOMETRY_SHADER_ARB* = 0x00008DD9

-  GL_GEOMETRY_VERTICES_OUT_ARB* = 0x00008DDA

-  GL_GEOMETRY_INPUTtyp_ARB* = 0x00008DDB

-  GL_GEOMETRY_OUTPUTtyp_ARB* = 0x00008DDC

-  GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB* = 0x00008DDD

-  GL_MAX_VERTEX_VARYING_COMPONENTS_ARB* = 0x00008DDE

-  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB* = 0x00008DDF

-  GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB* = 0x00008DE0

-  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB* = 0x00008DE1 # reuse 

-                                                            # GL_MAX_VARYING_COMPONENTS 

-                                                            # reuse 

-                                                            # GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 

-                                                            # 

-                                                            # GL_ARB_half_float_vertex

-  GL_HALF_FLOAT* = 0x0000140B # GL_ARB_instanced_arrays

-  GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB* = 0x000088FE # GL_ARB_map_buffer_range

-  GL_MAP_READ_BIT* = 0x00000001

-  GL_MAP_WRITE_BIT* = 0x00000002

-  GL_MAP_INVALIDATE_RANGE_BIT* = 0x00000004

-  GL_MAP_INVALIDATE_BUFFER_BIT* = 0x00000008

-  GL_MAP_FLUSH_EXPLICIT_BIT* = 0x00000010

-  GL_MAP_UNSYNCHRONIZED_BIT* = 0x00000020 # GL_ARB_texture_buffer_object

-  GL_TEXTURE_BUFFER_ARB* = 0x00008C2A

-  GL_MAX_TEXTURE_BUFFER_SIZE_ARB* = 0x00008C2B

-  GL_TEXTURE_BINDING_BUFFER_ARB* = 0x00008C2C

-  GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB* = 0x00008C2D

-  GL_TEXTURE_BUFFER_FORMAT_ARB* = 0x00008C2E # GL_ARB_texture_compression_rgtc

-  GL_COMPRESSED_RED_RGTC1* = 0x00008DBB

-  GL_COMPRESSED_SIGNED_RED_RGTC1* = 0x00008DBC

-  GL_COMPRESSED_RG_RGTC2* = 0x00008DBD

-  GL_COMPRESSED_SIGNED_RG_RGTC2* = 0x00008DBE # GL_ARB_texture_rg

-  GL_RG* = 0x00008227

-  GL_RG_INTEGER* = 0x00008228

-  GL_R8* = 0x00008229

-  GL_R16* = 0x0000822A

-  GL_RG8* = 0x0000822B

-  GL_RG16* = 0x0000822C

-  GL_R16F* = 0x0000822D

-  GL_R32F* = 0x0000822E

-  GL_RG16F* = 0x0000822F

-  GL_RG32F* = 0x00008230

-  GL_R8I* = 0x00008231

-  GL_R8UI* = 0x00008232

-  GL_R16I* = 0x00008233

-  GL_R16UI* = 0x00008234

-  GL_R32I* = 0x00008235

-  GL_R32UI* = 0x00008236

-  GL_RG8I* = 0x00008237

-  GL_RG8UI* = 0x00008238

-  GL_RG16I* = 0x00008239

-  GL_RG16UI* = 0x0000823A

-  GL_RG32I* = 0x0000823B

-  GL_RG32UI* = 0x0000823C     # GL_ARB_vertex_array_object

-  GL_VERTEX_ARRAY_BINDING* = 0x000085B5 # GL_ARB_uniform_buffer_object

-  GL_UNIFORM_BUFFER* = 0x00008A11

-  GL_UNIFORM_BUFFER_BINDING* = 0x00008A28

-  GL_UNIFORM_BUFFER_START* = 0x00008A29

-  GL_UNIFORM_BUFFER_SIZE* = 0x00008A2A

-  GL_MAX_VERTEX_UNIFORM_BLOCKS* = 0x00008A2B

-  GL_MAX_GEOMETRY_UNIFORM_BLOCKS* = 0x00008A2C

-  GL_MAX_FRAGMENT_UNIFORM_BLOCKS* = 0x00008A2D

-  GL_MAX_COMBINED_UNIFORM_BLOCKS* = 0x00008A2E

-  GL_MAX_UNIFORM_BUFFER_BINDINGS* = 0x00008A2F

-  GL_MAX_UNIFORM_BLOCK_SIZE* = 0x00008A30

-  GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS* = 0x00008A31

-  GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS* = 0x00008A32

-  GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS* = 0x00008A33

-  GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT* = 0x00008A34

-  GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH* = 0x00008A35

-  GL_ACTIVE_UNIFORM_BLOCKS* = 0x00008A36

-  GL_UNIFORMtyp* = 0x00008A37

-  GL_UNIFORM_SIZE* = 0x00008A38

-  GL_UNIFORM_NAME_LENGTH* = 0x00008A39

-  GL_UNIFORM_BLOCK_INDEX* = 0x00008A3A

-  GL_UNIFORM_OFFSET* = 0x00008A3B

-  GL_UNIFORM_ARRAY_STRIDE* = 0x00008A3C

-  GL_UNIFORM_MATRIX_STRIDE* = 0x00008A3D

-  GL_UNIFORM_IS_ROW_MAJOR* = 0x00008A3E

-  cGL_UNIFORM_BLOCK_BINDING* = 0x00008A3F

-  GL_UNIFORM_BLOCK_DATA_SIZE* = 0x00008A40

-  GL_UNIFORM_BLOCK_NAME_LENGTH* = 0x00008A41

-  GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS* = 0x00008A42

-  GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES* = 0x00008A43

-  GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER* = 0x00008A44

-  GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER* = 0x00008A45

-  GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER* = 0x00008A46

-  GL_INVALID_INDEX* = 0xFFFFFFFF # GL_ARB_compatibility

-                                 # ARB_compatibility just defines tokens from core 3.0 

-                                 # GL_ARB_copy_buffer

-  GL_COPY_READ_BUFFER* = 0x00008F36

-  GL_COPY_WRITE_BUFFER* = 0x00008F37 # GL_ARB_depth_clamp

-  GL_DEPTH_CLAMP* = 0x0000864F # GL_ARB_provoking_vertex

-  GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION* = 0x00008E4C

-  GL_FIRST_VERTEX_CONVENTION* = 0x00008E4D

-  GL_LAST_VERTEX_CONVENTION* = 0x00008E4E

-  cGL_PROVOKING_VERTEX* = 0x00008E4F # GL_ARB_seamless_cube_map

-  GL_TEXTURE_CUBE_MAP_SEAMLESS* = 0x0000884F # GL_ARB_sync

-  GL_MAX_SERVER_WAIT_TIMEOUT* = 0x00009111

-  GL_OBJECTtyp* = 0x00009112

-  GL_SYNC_CONDITION* = 0x00009113

-  GL_SYNC_STATUS* = 0x00009114

-  GL_SYNC_FLAGS* = 0x00009115

-  GL_SYNC_FENCE* = 0x00009116

-  GL_SYNC_GPU_COMMANDS_COMPLETE* = 0x00009117

-  GL_UNSIGNALED* = 0x00009118

-  GL_SIGNALED* = 0x00009119

-  GL_ALREADY_SIGNALED* = 0x0000911A

-  GL_TIMEOUT_EXPIRED* = 0x0000911B

-  GL_CONDITION_SATISFIED* = 0x0000911C

-  GL_WAIT_FAILED* = 0x0000911D

-  GL_SYNC_FLUSH_COMMANDS_BIT* = 0x00000001

-  GL_TIMEOUT_IGNORED* = int64(- 1) # GL_ARB_texture_multisample

-  GL_SAMPLE_POSITION* = 0x00008E50

-  GL_SAMPLE_MASK* = 0x00008E51

-  GL_SAMPLE_MASK_VALUE* = 0x00008E52

-  GL_MAX_SAMPLE_MASK_WORDS* = 0x00008E59

-  GL_TEXTURE_2D_MULTISAMPLE* = 0x00009100

-  GL_PROXY_TEXTURE_2D_MULTISAMPLE* = 0x00009101

-  GL_TEXTURE_2D_MULTISAMPLE_ARRAY* = 0x00009102

-  GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY* = 0x00009103

-  GL_TEXTURE_BINDING_2D_MULTISAMPLE* = 0x00009104

-  GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY* = 0x00009105

-  GL_TEXTURE_SAMPLES* = 0x00009106

-  GL_TEXTURE_FIXED_SAMPLE_LOCATIONS* = 0x00009107

-  GL_SAMPLER_2D_MULTISAMPLE* = 0x00009108

-  GL_INT_SAMPLER_2D_MULTISAMPLE* = 0x00009109

-  GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE* = 0x0000910A

-  GL_SAMPLER_2D_MULTISAMPLE_ARRAY* = 0x0000910B

-  GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY* = 0x0000910C

-  GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY* = 0x0000910D

-  GL_MAX_COLOR_TEXTURE_SAMPLES* = 0x0000910E

-  GL_MAX_DEPTH_TEXTURE_SAMPLES* = 0x0000910F

-  GL_MAX_INTEGER_SAMPLES* = 0x00009110 # GL_ARB_vertex_array_bgra

-                                       # reuse GL_BGRA 

-                                       # GL_ARB_sample_shading

-  GL_SAMPLE_SHADING_ARB* = 0x00008C36

-  GL_MIN_SAMPLE_SHADING_VALUE_ARB* = 0x00008C37 # GL_ARB_texture_cube_map_array

-  GL_TEXTURE_CUBE_MAP_ARRAY_ARB* = 0x00009009

-  GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB* = 0x0000900A

-  GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB* = 0x0000900B

-  GL_SAMPLER_CUBE_MAP_ARRAY_ARB* = 0x0000900C

-  GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB* = 0x0000900D

-  GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB* = 0x0000900E

-  GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB* = 0x0000900F # GL_ARB_texture_gather

-  GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB* = 0x00008E5E

-  GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB* = 0x00008E5F # 

-                                                         # GL_ARB_shading_language_include

-  GL_SHADER_INCLUDE_ARB* = 0x00008DAE

-  GL_NAMED_STRING_LENGTH_ARB* = 0x00008DE9

-  GL_NAMED_STRINGtyp_ARB* = 0x00008DEA # GL_ARB_texture_compression_bptc

-  GL_COMPRESSED_RGBA_BPTC_UNORM_ARB* = 0x00008E8C

-  GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB* = 0x00008E8D

-  GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB* = 0x00008E8E

-  GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB* = 0x00008E8F # 

-                                                          # GL_ARB_blend_func_extended

-  GL_SRC1_COLOR* = 0x000088F9 # reuse GL_SRC1_ALPHA 

-  GL_ONE_MINUS_SRC1_COLOR* = 0x000088FA

-  GL_ONE_MINUS_SRC1_ALPHA* = 0x000088FB

-  GL_MAX_DUAL_SOURCE_DRAW_BUFFERS* = 0x000088FC # GL_ARB_occlusion_query2

-  GL_ANY_SAMPLES_PASSED* = 0x00008C2F # GL_ARB_sampler_objects

-  GL_SAMPLER_BINDING* = 0x00008919 # GL_ARB_texture_rgb10_a2ui

-  GL_RGB10_A2UI* = 0x0000906F # GL_ARB_texture_swizzle

-  GL_TEXTURE_SWIZZLE_R* = 0x00008E42

-  GL_TEXTURE_SWIZZLE_G* = 0x00008E43

-  GL_TEXTURE_SWIZZLE_B* = 0x00008E44

-  GL_TEXTURE_SWIZZLE_A* = 0x00008E45

-  GL_TEXTURE_SWIZZLE_RGBA* = 0x00008E46 # GL_ARB_timer_query

-  GL_TIME_ELAPSED* = 0x000088BF

-  GL_TIMESTAMP* = 0x00008E28  # GL_ARB_vertextyp_2_10_10_10_rev

-                              # reuse GL_UNSIGNED_INT_2_10_10_10_REV 

-  GL_INT_2_10_10_10_REV* = 0x00008D9F # GL_ARB_draw_indirect

-  GL_DRAW_INDIRECT_BUFFER* = 0x00008F3F

-  GL_DRAW_INDIRECT_BUFFER_BINDING* = 0x00008F43 # GL_ARB_gpu_shader5

-  GL_GEOMETRY_SHADER_INVOCATIONS* = 0x0000887F

-  GL_MAX_GEOMETRY_SHADER_INVOCATIONS* = 0x00008E5A

-  GL_MIN_FRAGMENT_INTERPOLATION_OFFSET* = 0x00008E5B

-  GL_MAX_FRAGMENT_INTERPOLATION_OFFSET* = 0x00008E5C

-  GL_FRAGMENT_INTERPOLATION_OFFSET_BITS* = 0x00008E5D # reuse GL_MAX_VERTEX_STREAMS 

-                                                      # GL_ARB_gpu_shader_fp64

-                                                      # reuse GL_DOUBLE 

-  GL_DOUBLE_VEC2* = 0x00008FFC

-  GL_DOUBLE_VEC3* = 0x00008FFD

-  GL_DOUBLE_VEC4* = 0x00008FFE

-  GL_DOUBLE_MAT2* = 0x00008F46

-  GL_DOUBLE_MAT3* = 0x00008F47

-  GL_DOUBLE_MAT4* = 0x00008F48

-  GL_DOUBLE_MAT2x3* = 0x00008F49

-  GL_DOUBLE_MAT2x4* = 0x00008F4A

-  GL_DOUBLE_MAT3x2* = 0x00008F4B

-  GL_DOUBLE_MAT3x4* = 0x00008F4C

-  GL_DOUBLE_MAT4x2* = 0x00008F4D

-  GL_DOUBLE_MAT4x3* = 0x00008F4E # GL_ARB_shader_subroutine

-  GL_ACTIVE_SUBROUTINES* = 0x00008DE5

-  GL_ACTIVE_SUBROUTINE_UNIFORMS* = 0x00008DE6

-  GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS* = 0x00008E47

-  GL_ACTIVE_SUBROUTINE_MAX_LENGTH* = 0x00008E48

-  GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH* = 0x00008E49

-  GL_MAX_SUBROUTINES* = 0x00008DE7

-  GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS* = 0x00008DE8

-  GL_NUM_COMPATIBLE_SUBROUTINES* = 0x00008E4A

-  GL_COMPATIBLE_SUBROUTINES* = 0x00008E4B # GL_ARB_tessellation_shader

-  GL_PATCHES* = 0x0000000E

-  GL_PATCH_VERTICES* = 0x00008E72

-  GL_PATCH_DEFAULT_INNER_LEVEL* = 0x00008E73

-  GL_PATCH_DEFAULT_OUTER_LEVEL* = 0x00008E74

-  GL_TESS_CONTROL_OUTPUT_VERTICES* = 0x00008E75

-  GL_TESS_GEN_MODE* = 0x00008E76

-  GL_TESS_GEN_SPACING* = 0x00008E77

-  GL_TESS_GEN_VERTEX_ORDER* = 0x00008E78

-  GL_TESS_GEN_POINT_MODE* = 0x00008E79

-  GL_ISOLINES* = 0x00008E7A   # reuse GL_EQUAL 

-  GL_FRACTIONAL_ODD* = 0x00008E7B

-  GL_FRACTIONAL_EVEN* = 0x00008E7C

-  GL_MAX_PATCH_VERTICES* = 0x00008E7D

-  GL_MAX_TESS_GEN_LEVEL* = 0x00008E7E

-  GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS* = 0x00008E7F

-  GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS* = 0x00008E80

-  GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS* = 0x00008E81

-  GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS* = 0x00008E82

-  GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS* = 0x00008E83

-  GL_MAX_TESS_PATCH_COMPONENTS* = 0x00008E84

-  GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS* = 0x00008E85

-  GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS* = 0x00008E86

-  GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS* = 0x00008E89

-  GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS* = 0x00008E8A

-  GL_MAX_TESS_CONTROL_INPUT_COMPONENTS* = 0x0000886C

-  GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS* = 0x0000886D

-  GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS* = 0x00008E1E

-  GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS* = 0x00008E1F

-  GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER* = 0x000084F0

-  GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER* = 0x000084F1

-  GL_TESS_EVALUATION_SHADER* = 0x00008E87

-  GL_TESS_CONTROL_SHADER* = 0x00008E88 # GL_ARB_texture_buffer_object_rgb32

-                                       # GL_ARB_transform_feedback2

-  GL_TRANSFORM_FEEDBACK* = 0x00008E22

-  GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED* = 0x00008E23

-  GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE* = 0x00008E24

-  GL_TRANSFORM_FEEDBACK_BINDING* = 0x00008E25 # GL_ARB_transform_feedback3

-  GL_MAX_TRANSFORM_FEEDBACK_BUFFERS* = 0x00008E70

-  GL_MAX_VERTEX_STREAMS* = 0x00008E71 # GL_ARB_ES2_compatibility

-  GL_FIXED* = 0x0000140C

-  GL_IMPLEMENTATION_COLOR_READtyp* = 0x00008B9A

-  GL_IMPLEMENTATION_COLOR_READ_FORMAT* = 0x00008B9B

-  GL_LOW_FLOAT* = 0x00008DF0

-  GL_MEDIUM_FLOAT* = 0x00008DF1

-  GL_HIGH_FLOAT* = 0x00008DF2

-  GL_LOW_INT* = 0x00008DF3

-  GL_MEDIUM_INT* = 0x00008DF4

-  GL_HIGH_INT* = 0x00008DF5

-  GL_SHADER_COMPILER* = 0x00008DFA

-  GL_NUM_SHADER_BINARY_FORMATS* = 0x00008DF9

-  GL_MAX_VERTEX_UNIFORM_VECTORS* = 0x00008DFB

-  GL_MAX_VARYING_VECTORS* = 0x00008DFC

-  GL_MAX_FRAGMENT_UNIFORM_VECTORS* = 0x00008DFD # GL_ARB_get_program_binary

-  GL_PROGRAM_BINARY_RETRIEVABLE_HINT* = 0x00008257

-  GL_PROGRAM_BINARY_LENGTH* = 0x00008741

-  GL_NUM_PROGRAM_BINARY_FORMATS* = 0x000087FE

-  GL_PROGRAM_BINARY_FORMATS* = 0x000087FF # GL_ARB_separate_shader_objects

-  GL_VERTEX_SHADER_BIT* = 0x00000001

-  GL_FRAGMENT_SHADER_BIT* = 0x00000002

-  GL_GEOMETRY_SHADER_BIT* = 0x00000004

-  GL_TESS_CONTROL_SHADER_BIT* = 0x00000008

-  GL_TESS_EVALUATION_SHADER_BIT* = 0x00000010

-  GL_ALL_SHADER_BITS* = 0xFFFFFFFF

-  GL_PROGRAM_SEPARABLE* = 0x00008258

-  GL_ACTIVE_PROGRAM* = 0x00008259

-  GL_PROGRAM_PIPELINE_BINDING* = 0x0000825A # GL_ARB_vertex_attrib_64bit

-  GL_MAX_VIEWPORTS* = 0x0000825B

-  GL_VIEWPORT_SUBPIXEL_BITS* = 0x0000825C

-  GL_VIEWPORT_BOUNDS_RANGE* = 0x0000825D

-  GL_LAYER_PROVOKING_VERTEX* = 0x0000825E

-  GL_VIEWPORT_INDEX_PROVOKING_VERTEX* = 0x0000825F

-  GL_UNDEFINED_VERTEX* = 0x00008260 # GL_ARB_cl_event

-  GL_SYNC_CL_EVENT_ARB* = 0x00008240

-  GL_SYNC_CL_EVENT_COMPLETE_ARB* = 0x00008241 # GL_ARB_debug_output

-  GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB* = 0x00008242

-  GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB* = 0x00008243

-  GL_DEBUG_CALLBACK_FUNCTION_ARB* = 0x00008244

-  GL_DEBUG_CALLBACK_USER_PARAM_ARB* = 0x00008245

-  GL_DEBUG_SOURCE_API_ARB* = 0x00008246

-  GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB* = 0x00008247

-  GL_DEBUG_SOURCE_SHADER_COMPILER_ARB* = 0x00008248

-  GL_DEBUG_SOURCE_THIRD_PARTY_ARB* = 0x00008249

-  GL_DEBUG_SOURCE_APPLICATION_ARB* = 0x0000824A

-  GL_DEBUG_SOURCE_OTHER_ARB* = 0x0000824B

-  GL_DEBUGtyp_ERROR_ARB* = 0x0000824C

-  GL_DEBUGtyp_DEPRECATED_BEHAVIOR_ARB* = 0x0000824D

-  GL_DEBUGtyp_UNDEFINED_BEHAVIOR_ARB* = 0x0000824E

-  GL_DEBUGtyp_PORTABILITY_ARB* = 0x0000824F

-  GL_DEBUGtyp_PERFORMANCE_ARB* = 0x00008250

-  GL_DEBUGtyp_OTHER_ARB* = 0x00008251

-  GL_MAX_DEBUG_MESSAGE_LENGTH_ARB* = 0x00009143

-  GL_MAX_DEBUG_LOGGED_MESSAGES_ARB* = 0x00009144

-  GL_DEBUG_LOGGED_MESSAGES_ARB* = 0x00009145

-  GL_DEBUG_SEVERITY_HIGH_ARB* = 0x00009146

-  GL_DEBUG_SEVERITY_MEDIUM_ARB* = 0x00009147

-  GL_DEBUG_SEVERITY_LOW_ARB* = 0x00009148 # GL_ARB_robustness

-                                          # reuse GL_NO_ERROR 

-  GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB* = 0x00000004

-  GL_LOSE_CONTEXT_ON_RESET_ARB* = 0x00008252

-  GL_GUILTY_CONTEXT_RESET_ARB* = 0x00008253

-  GL_INNOCENT_CONTEXT_RESET_ARB* = 0x00008254

-  GL_UNKNOWN_CONTEXT_RESET_ARB* = 0x00008255

-  GL_RESET_NOTIFICATION_STRATEGY_ARB* = 0x00008256

-  GL_NO_RESET_NOTIFICATION_ARB* = 0x00008261 #  

-                                             #  GL_ARB_compressed_texture_pixel_storage 

-  GL_UNPACK_COMPRESSED_BLOCK_WIDTH* = 0x00009127

-  GL_UNPACK_COMPRESSED_BLOCK_HEIGHT* = 0x00009128

-  GL_UNPACK_COMPRESSED_BLOCK_DEPTH* = 0x00009129

-  GL_UNPACK_COMPRESSED_BLOCK_SIZE* = 0x0000912A

-  GL_PACK_COMPRESSED_BLOCK_WIDTH* = 0x0000912B

-  GL_PACK_COMPRESSED_BLOCK_HEIGHT* = 0x0000912C

-  GL_PACK_COMPRESSED_BLOCK_DEPTH* = 0x0000912D

-  GL_PACK_COMPRESSED_BLOCK_SIZE* = 0x0000912E # GL_ARB_internalformat_query

-  GL_NUM_SAMPLE_COUNTS* = 0x00009380 # GL_ARB_map_buffer_alignment

-  GL_MIN_MAP_BUFFER_ALIGNMENT* = 0x000090BC # GL_ARB_shader_atomic_counters

-  GL_ATOMIC_COUNTER_BUFFER* = 0x000092C0

-  GL_ATOMIC_COUNTER_BUFFER_BINDING* = 0x000092C1

-  GL_ATOMIC_COUNTER_BUFFER_START* = 0x000092C2

-  GL_ATOMIC_COUNTER_BUFFER_SIZE* = 0x000092C3

-  GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE* = 0x000092C4

-  GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS* = 0x000092C5

-  GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES* = 0x000092C6

-  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER* = 0x000092C7

-  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER* = 0x000092C8

-  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER* = 0x000092C9

-  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER* = 0x000092CA

-  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER* = 0x000092CB

-  GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS* = 0x000092CC

-  GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS* = 0x000092CD

-  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS* = 0x000092CE

-  GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS* = 0x000092CF

-  GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS* = 0x000092D0

-  GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS* = 0x000092D1

-  GL_MAX_VERTEX_ATOMIC_COUNTERS* = 0x000092D2

-  GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS* = 0x000092D3

-  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS* = 0x000092D4

-  GL_MAX_GEOMETRY_ATOMIC_COUNTERS* = 0x000092D5

-  GL_MAX_FRAGMENT_ATOMIC_COUNTERS* = 0x000092D6

-  GL_MAX_COMBINED_ATOMIC_COUNTERS* = 0x000092D7

-  GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE* = 0x000092D8

-  GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS* = 0x000092DC

-  GL_ACTIVE_ATOMIC_COUNTER_BUFFERS* = 0x000092D9

-  GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX* = 0x000092DA

-  GL_UNSIGNED_INT_ATOMIC_COUNTER* = 0x000092DB # GL_ARB_shader_image_load_store

-  GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT* = 0x00000001

-  GL_ELEMENT_ARRAY_BARRIER_BIT* = 0x00000002

-  GL_UNIFORM_BARRIER_BIT* = 0x00000004

-  GL_TEXTURE_FETCH_BARRIER_BIT* = 0x00000008

-  GL_SHADER_IMAGE_ACCESS_BARRIER_BIT* = 0x00000020

-  GL_COMMAND_BARRIER_BIT* = 0x00000040

-  GL_PIXEL_BUFFER_BARRIER_BIT* = 0x00000080

-  GL_TEXTURE_UPDATE_BARRIER_BIT* = 0x00000100

-  GL_BUFFER_UPDATE_BARRIER_BIT* = 0x00000200

-  GL_FRAMEBUFFER_BARRIER_BIT* = 0x00000400

-  GL_TRANSFORM_FEEDBACK_BARRIER_BIT* = 0x00000800

-  GL_ATOMIC_COUNTER_BARRIER_BIT* = 0x00001000

-  GL_ALL_BARRIER_BITS* = 0xFFFFFFFF

-  GL_MAX_IMAGE_UNITS* = 0x00008F38

-  GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS* = 0x00008F39

-  GL_IMAGE_BINDING_NAME* = 0x00008F3A

-  GL_IMAGE_BINDING_LEVEL* = 0x00008F3B

-  GL_IMAGE_BINDING_LAYERED* = 0x00008F3C

-  GL_IMAGE_BINDING_LAYER* = 0x00008F3D

-  GL_IMAGE_BINDING_ACCESS* = 0x00008F3E

-  GL_IMAGE_1D* = 0x0000904C

-  GL_IMAGE_2D* = 0x0000904D

-  GL_IMAGE_3D* = 0x0000904E

-  GL_IMAGE_2D_RECT* = 0x0000904F

-  GL_IMAGE_CUBE* = 0x00009050

-  GL_IMAGE_BUFFER* = 0x00009051

-  GL_IMAGE_1D_ARRAY* = 0x00009052

-  GL_IMAGE_2D_ARRAY* = 0x00009053

-  GL_IMAGE_CUBE_MAP_ARRAY* = 0x00009054

-  GL_IMAGE_2D_MULTISAMPLE* = 0x00009055

-  GL_IMAGE_2D_MULTISAMPLE_ARRAY* = 0x00009056

-  GL_INT_IMAGE_1D* = 0x00009057

-  GL_INT_IMAGE_2D* = 0x00009058

-  GL_INT_IMAGE_3D* = 0x00009059

-  GL_INT_IMAGE_2D_RECT* = 0x0000905A

-  GL_INT_IMAGE_CUBE* = 0x0000905B

-  GL_INT_IMAGE_BUFFER* = 0x0000905C

-  GL_INT_IMAGE_1D_ARRAY* = 0x0000905D

-  GL_INT_IMAGE_2D_ARRAY* = 0x0000905E

-  GL_INT_IMAGE_CUBE_MAP_ARRAY* = 0x0000905F

-  GL_INT_IMAGE_2D_MULTISAMPLE* = 0x00009060

-  GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY* = 0x00009061

-  GL_UNSIGNED_INT_IMAGE_1D* = 0x00009062

-  GL_UNSIGNED_INT_IMAGE_2D* = 0x00009063

-  GL_UNSIGNED_INT_IMAGE_3D* = 0x00009064

-  GL_UNSIGNED_INT_IMAGE_2D_RECT* = 0x00009065

-  GL_UNSIGNED_INT_IMAGE_CUBE* = 0x00009066

-  GL_UNSIGNED_INT_IMAGE_BUFFER* = 0x00009067

-  GL_UNSIGNED_INT_IMAGE_1D_ARRAY* = 0x00009068

-  GL_UNSIGNED_INT_IMAGE_2D_ARRAY* = 0x00009069

-  GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY* = 0x0000906A

-  GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE* = 0x0000906B

-  GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY* = 0x0000906C

-  GL_MAX_IMAGE_SAMPLES* = 0x0000906D

-  GL_IMAGE_BINDING_FORMAT* = 0x0000906E

-  GL_IMAGE_FORMAT_COMPATIBILITYtyp* = 0x000090C7

-  GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE* = 0x000090C8

-  GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS* = 0x000090C9

-  GL_MAX_VERTEX_IMAGE_UNIFORMS* = 0x000090CA

-  GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS* = 0x000090CB

-  GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS* = 0x000090CC

-  GL_MAX_GEOMETRY_IMAGE_UNIFORMS* = 0x000090CD

-  GL_MAX_FRAGMENT_IMAGE_UNIFORMS* = 0x000090CE

-  GL_MAX_COMBINED_IMAGE_UNIFORMS* = 0x000090CF # GL_ARB_texture_storage

-  GL_TEXTURE_IMMUTABLE_FORMAT* = 0x0000912F # GL_ATI_draw_buffers

-  GL_MAX_DRAW_BUFFERS_ATI* = 0x00008824

-  GL_DRAW_BUFFER0_ATI* = 0x00008825

-  GL_DRAW_BUFFER1_ATI* = 0x00008826

-  GL_DRAW_BUFFER2_ATI* = 0x00008827

-  GL_DRAW_BUFFER3_ATI* = 0x00008828

-  GL_DRAW_BUFFER4_ATI* = 0x00008829

-  GL_DRAW_BUFFER5_ATI* = 0x0000882A

-  GL_DRAW_BUFFER6_ATI* = 0x0000882B

-  GL_DRAW_BUFFER7_ATI* = 0x0000882C

-  GL_DRAW_BUFFER8_ATI* = 0x0000882D

-  GL_DRAW_BUFFER9_ATI* = 0x0000882E

-  GL_DRAW_BUFFER10_ATI* = 0x0000882F

-  GL_DRAW_BUFFER11_ATI* = 0x00008830

-  GL_DRAW_BUFFER12_ATI* = 0x00008831

-  GL_DRAW_BUFFER13_ATI* = 0x00008832

-  GL_DRAW_BUFFER14_ATI* = 0x00008833

-  GL_DRAW_BUFFER15_ATI* = 0x00008834 # GL_ATI_element_array

-  GL_ELEMENT_ARRAY_ATI* = 0x00008768

-  GL_ELEMENT_ARRAYtyp_ATI* = 0x00008769

-  GL_ELEMENT_ARRAY_POINTER_ATI* = 0x0000876A # GL_ATI_envmap_bumpmap

-  GL_BUMP_ROT_MATRIX_ATI* = 0x00008775

-  GL_BUMP_ROT_MATRIX_SIZE_ATI* = 0x00008776

-  GL_BUMP_NUM_TEX_UNITS_ATI* = 0x00008777

-  GL_BUMP_TEX_UNITS_ATI* = 0x00008778

-  GL_DUDV_ATI* = 0x00008779

-  GL_DU8DV8_ATI* = 0x0000877A

-  GL_BUMP_ENVMAP_ATI* = 0x0000877B

-  GL_BUMP_TARGET_ATI* = 0x0000877C # GL_ATI_fragment_shader

-  GL_FRAGMENT_SHADER_ATI* = 0x00008920

-  GL_REG_0_ATI* = 0x00008921

-  GL_REG_1_ATI* = 0x00008922

-  GL_REG_2_ATI* = 0x00008923

-  GL_REG_3_ATI* = 0x00008924

-  GL_REG_4_ATI* = 0x00008925

-  GL_REG_5_ATI* = 0x00008926

-  GL_REG_6_ATI* = 0x00008927

-  GL_REG_7_ATI* = 0x00008928

-  GL_REG_8_ATI* = 0x00008929

-  GL_REG_9_ATI* = 0x0000892A

-  GL_REG_10_ATI* = 0x0000892B

-  GL_REG_11_ATI* = 0x0000892C

-  GL_REG_12_ATI* = 0x0000892D

-  GL_REG_13_ATI* = 0x0000892E

-  GL_REG_14_ATI* = 0x0000892F

-  GL_REG_15_ATI* = 0x00008930

-  GL_REG_16_ATI* = 0x00008931

-  GL_REG_17_ATI* = 0x00008932

-  GL_REG_18_ATI* = 0x00008933

-  GL_REG_19_ATI* = 0x00008934

-  GL_REG_20_ATI* = 0x00008935

-  GL_REG_21_ATI* = 0x00008936

-  GL_REG_22_ATI* = 0x00008937

-  GL_REG_23_ATI* = 0x00008938

-  GL_REG_24_ATI* = 0x00008939

-  GL_REG_25_ATI* = 0x0000893A

-  GL_REG_26_ATI* = 0x0000893B

-  GL_REG_27_ATI* = 0x0000893C

-  GL_REG_28_ATI* = 0x0000893D

-  GL_REG_29_ATI* = 0x0000893E

-  GL_REG_30_ATI* = 0x0000893F

-  GL_REG_31_ATI* = 0x00008940

-  GL_CON_0_ATI* = 0x00008941

-  GL_CON_1_ATI* = 0x00008942

-  GL_CON_2_ATI* = 0x00008943

-  GL_CON_3_ATI* = 0x00008944

-  GL_CON_4_ATI* = 0x00008945

-  GL_CON_5_ATI* = 0x00008946

-  GL_CON_6_ATI* = 0x00008947

-  GL_CON_7_ATI* = 0x00008948

-  GL_CON_8_ATI* = 0x00008949

-  GL_CON_9_ATI* = 0x0000894A

-  GL_CON_10_ATI* = 0x0000894B

-  GL_CON_11_ATI* = 0x0000894C

-  GL_CON_12_ATI* = 0x0000894D

-  GL_CON_13_ATI* = 0x0000894E

-  GL_CON_14_ATI* = 0x0000894F

-  GL_CON_15_ATI* = 0x00008950

-  GL_CON_16_ATI* = 0x00008951

-  GL_CON_17_ATI* = 0x00008952

-  GL_CON_18_ATI* = 0x00008953

-  GL_CON_19_ATI* = 0x00008954

-  GL_CON_20_ATI* = 0x00008955

-  GL_CON_21_ATI* = 0x00008956

-  GL_CON_22_ATI* = 0x00008957

-  GL_CON_23_ATI* = 0x00008958

-  GL_CON_24_ATI* = 0x00008959

-  GL_CON_25_ATI* = 0x0000895A

-  GL_CON_26_ATI* = 0x0000895B

-  GL_CON_27_ATI* = 0x0000895C

-  GL_CON_28_ATI* = 0x0000895D

-  GL_CON_29_ATI* = 0x0000895E

-  GL_CON_30_ATI* = 0x0000895F

-  GL_CON_31_ATI* = 0x00008960

-  GL_MOV_ATI* = 0x00008961

-  GL_ADD_ATI* = 0x00008963

-  GL_MUL_ATI* = 0x00008964

-  GL_SUB_ATI* = 0x00008965

-  GL_DOT3_ATI* = 0x00008966

-  GL_DOT4_ATI* = 0x00008967

-  GL_MAD_ATI* = 0x00008968

-  GL_LERP_ATI* = 0x00008969

-  GL_CND_ATI* = 0x0000896A

-  GL_CND0_ATI* = 0x0000896B

-  GL_DOT2_ADD_ATI* = 0x0000896C

-  GL_SECONDARY_INTERPOLATOR_ATI* = 0x0000896D

-  GL_NUM_FRAGMENT_REGISTERS_ATI* = 0x0000896E

-  GL_NUM_FRAGMENT_CONSTANTS_ATI* = 0x0000896F

-  GL_NUM_PASSES_ATI* = 0x00008970

-  GL_NUM_INSTRUCTIONS_PER_PASS_ATI* = 0x00008971

-  GL_NUM_INSTRUCTIONS_TOTAL_ATI* = 0x00008972

-  GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI* = 0x00008973

-  GL_NUM_LOOPBACK_COMPONENTS_ATI* = 0x00008974

-  GL_COLOR_ALPHA_PAIRING_ATI* = 0x00008975

-  GL_SWIZZLE_STR_ATI* = 0x00008976

-  GL_SWIZZLE_STQ_ATI* = 0x00008977

-  GL_SWIZZLE_STR_DR_ATI* = 0x00008978

-  GL_SWIZZLE_STQ_DQ_ATI* = 0x00008979

-  GL_SWIZZLE_STRQ_ATI* = 0x0000897A

-  GL_SWIZZLE_STRQ_DQ_ATI* = 0x0000897B

-  GL_RED_BIT_ATI* = 0x00000001

-  GL_GREEN_BIT_ATI* = 0x00000002

-  GL_BLUE_BIT_ATI* = 0x00000004

-  GL_2X_BIT_ATI* = 0x00000001

-  GL_4X_BIT_ATI* = 0x00000002

-  GL_8X_BIT_ATI* = 0x00000004

-  GL_HALF_BIT_ATI* = 0x00000008

-  GL_QUARTER_BIT_ATI* = 0x00000010

-  GL_EIGHTH_BIT_ATI* = 0x00000020

-  GL_SATURATE_BIT_ATI* = 0x00000040

-  GL_COMP_BIT_ATI* = 0x00000002

-  GL_NEGATE_BIT_ATI* = 0x00000004

-  GL_BIAS_BIT_ATI* = 0x00000008 # GL_ATI_pn_triangles

-  GL_PN_TRIANGLES_ATI* = 0x000087F0

-  GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI* = 0x000087F1

-  GL_PN_TRIANGLES_POINT_MODE_ATI* = 0x000087F2

-  GL_PN_TRIANGLES_NORMAL_MODE_ATI* = 0x000087F3

-  GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI* = 0x000087F4

-  GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI* = 0x000087F5

-  GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI* = 0x000087F6

-  GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI* = 0x000087F7

-  GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI* = 0x000087F8 # 

-                                                          # GL_ATI_separate_stencil

-  GL_STENCIL_BACK_FUNC_ATI* = 0x00008800

-  GL_STENCIL_BACK_FAIL_ATI* = 0x00008801

-  GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI* = 0x00008802

-  GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI* = 0x00008803 # GL_ATI_text_fragment_shader

-  GL_TEXT_FRAGMENT_SHADER_ATI* = 0x00008200 # GL_ATI_texture_env_combine3

-  GL_MODULATE_ADD_ATI* = 0x00008744

-  GL_MODULATE_SIGNED_ADD_ATI* = 0x00008745

-  GL_MODULATE_SUBTRACT_ATI* = 0x00008746 # GL_ATI_texture_float

-  GL_RGBA_FLOAT32_ATI* = 0x00008814

-  GL_RGB_FLOAT32_ATI* = 0x00008815

-  GL_ALPHA_FLOAT32_ATI* = 0x00008816

-  GL_INTENSITY_FLOAT32_ATI* = 0x00008817

-  GL_LUMINANCE_FLOAT32_ATI* = 0x00008818

-  GL_LUMINANCE_ALPHA_FLOAT32_ATI* = 0x00008819

-  GL_RGBA_FLOAT16_ATI* = 0x0000881A

-  GL_RGB_FLOAT16_ATI* = 0x0000881B

-  GL_ALPHA_FLOAT16_ATI* = 0x0000881C

-  GL_INTENSITY_FLOAT16_ATI* = 0x0000881D

-  GL_LUMINANCE_FLOAT16_ATI* = 0x0000881E

-  GL_LUMINANCE_ALPHA_FLOAT16_ATI* = 0x0000881F # GL_ATI_texture_mirror_once

-  GL_MIRROR_CLAMP_ATI* = 0x00008742

-  GL_MIRROR_CLAMP_TO_EDGE_ATI* = 0x00008743 # GL_ATI_vertex_array_object

-  GL_STATIC_ATI* = 0x00008760

-  GL_DYNAMIC_ATI* = 0x00008761

-  GL_PRESERVE_ATI* = 0x00008762

-  GL_DISCARD_ATI* = 0x00008763

-  GL_OBJECT_BUFFER_SIZE_ATI* = 0x00008764

-  GL_OBJECT_BUFFER_USAGE_ATI* = 0x00008765

-  GL_ARRAY_OBJECT_BUFFER_ATI* = 0x00008766

-  GL_ARRAY_OBJECT_OFFSET_ATI* = 0x00008767 # GL_ATI_vertex_streams

-  GL_MAX_VERTEX_STREAMS_ATI* = 0x0000876B

-  GL_VERTEX_STREAM0_ATI* = 0x0000876C

-  GL_VERTEX_STREAM1_ATI* = 0x0000876D

-  GL_VERTEX_STREAM2_ATI* = 0x0000876E

-  GL_VERTEX_STREAM3_ATI* = 0x0000876F

-  GL_VERTEX_STREAM4_ATI* = 0x00008770

-  GL_VERTEX_STREAM5_ATI* = 0x00008771

-  GL_VERTEX_STREAM6_ATI* = 0x00008772

-  GL_VERTEX_STREAM7_ATI* = 0x00008773

-  GL_VERTEX_SOURCE_ATI* = 0x00008774 # GL_ATI_meminfo

-  GL_VBO_FREE_MEMORY_ATI* = 0x000087FB

-  GL_TEXTURE_FREE_MEMORY_ATI* = 0x000087FC

-  GL_RENDERBUFFER_FREE_MEMORY_ATI* = 0x000087FD # GL_AMD_performance_monitor

-  GL_COUNTERtyp_AMD* = 0x00008BC0

-  GL_COUNTER_RANGE_AMD* = 0x00008BC1

-  GL_UNSIGNED_INT64_AMD* = 0x00008BC2

-  GL_PERCENTAGE_AMD* = 0x00008BC3

-  GL_PERFMON_RESULT_AVAILABLE_AMD* = 0x00008BC4

-  GL_PERFMON_RESULT_SIZE_AMD* = 0x00008BC5

-  GL_PERFMON_RESULT_AMD* = 0x00008BC6 # GL_AMD_vertex_shader_tesselator

-  GL_SAMPLER_BUFFER_AMD* = 0x00009001

-  GL_INT_SAMPLER_BUFFER_AMD* = 0x00009002

-  GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD* = 0x00009003

-  cGL_TESSELLATION_MODE_AMD* = 0x00009004

-  cGL_TESSELLATION_FACTOR_AMD* = 0x00009005

-  GL_DISCRETE_AMD* = 0x00009006

-  GL_CONTINUOUS_AMD* = 0x00009007 # GL_AMD_seamless_cubemap_per_texture

-                                  # reuse GL_TEXTURE_CUBE_MAP_SEAMLESS 

-                                  # GL_AMD_name_gen_delete

-  GL_DATA_BUFFER_AMD* = 0x00009151

-  GL_PERFORMANCE_MONITOR_AMD* = 0x00009152

-  GL_QUERY_OBJECT_AMD* = 0x00009153

-  GL_VERTEX_ARRAY_OBJECT_AMD* = 0x00009154

-  GL_SAMPLER_OBJECT_AMD* = 0x00009155 # GL_AMD_debug_output

-  GL_MAX_DEBUG_LOGGED_MESSAGES_AMD* = 0x00009144

-  GL_DEBUG_LOGGED_MESSAGES_AMD* = 0x00009145

-  GL_DEBUG_SEVERITY_HIGH_AMD* = 0x00009146

-  GL_DEBUG_SEVERITY_MEDIUM_AMD* = 0x00009147

-  GL_DEBUG_SEVERITY_LOW_AMD* = 0x00009148

-  GL_DEBUG_CATEGORY_API_ERROR_AMD* = 0x00009149

-  GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD* = 0x0000914A

-  GL_DEBUG_CATEGORY_DEPRECATION_AMD* = 0x0000914B

-  GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD* = 0x0000914C

-  GL_DEBUG_CATEGORY_PERFORMANCE_AMD* = 0x0000914D

-  GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD* = 0x0000914E

-  GL_DEBUG_CATEGORY_APPLICATION_AMD* = 0x0000914F

-  GL_DEBUG_CATEGORY_OTHER_AMD* = 0x00009150 # GL_AMD_depth_clamp_separate

-  GL_DEPTH_CLAMP_NEAR_AMD* = 0x0000901E

-  GL_DEPTH_CLAMP_FAR_AMD* = 0x0000901F # GL_EXT_422_pixels

-  GL_422_EXT* = 0x000080CC

-  GL_422_REV_EXT* = 0x000080CD

-  GL_422_AVERAGE_EXT* = 0x000080CE

-  GL_422_REV_AVERAGE_EXT* = 0x000080CF # GL_EXT_abgr

-  GL_ABGR_EXT* = 0x00008000   # GL_EXT_bgra

-  GL_BGR_EXT* = 0x000080E0

-  GL_BGRA_EXT* = 0x000080E1   # GL_EXT_blend_color

-  GL_CONSTANT_COLOR_EXT* = 0x00008001

-  GL_ONE_MINUS_CONSTANT_COLOR_EXT* = 0x00008002

-  GL_CONSTANT_ALPHA_EXT* = 0x00008003

-  GL_ONE_MINUS_CONSTANT_ALPHA_EXT* = 0x00008004

-  cGL_BLEND_COLOR_EXT* = 0x00008005 # GL_EXT_blend_func_separate

-  GL_BLEND_DST_RGB_EXT* = 0x000080C8

-  GL_BLEND_SRC_RGB_EXT* = 0x000080C9

-  GL_BLEND_DST_ALPHA_EXT* = 0x000080CA

-  GL_BLEND_SRC_ALPHA_EXT* = 0x000080CB # GL_EXT_blend_minmax

-  GL_FUNC_ADD_EXT* = 0x00008006

-  GL_MIN_EXT* = 0x00008007

-  GL_MAX_EXT* = 0x00008008

-  cGL_BLEND_EQUATION_EXT* = 0x00008009 # GL_EXT_blend_subtract

-  GL_FUNC_SUBTRACT_EXT* = 0x0000800A

-  GL_FUNC_REVERSE_SUBTRACT_EXT* = 0x0000800B # GL_EXT_clip_volume_hint

-  GL_CLIP_VOLUME_CLIPPING_HINT_EXT* = 0x000080F0 # GL_EXT_cmyka

-  GL_CMYK_EXT* = 0x0000800C

-  GL_CMYKA_EXT* = 0x0000800D

-  GL_PACK_CMYK_HINT_EXT* = 0x0000800E

-  GL_UNPACK_CMYK_HINT_EXT* = 0x0000800F # GL_EXT_compiled_vertex_array

-  GL_ARRAY_ELEMENT_LOCK_FIRST_EXT* = 0x000081A8

-  GL_ARRAY_ELEMENT_LOCK_COUNT_EXT* = 0x000081A9 # GL_EXT_convolution

-  GL_CONVOLUTION_1D_EXT* = 0x00008010

-  GL_CONVOLUTION_2D_EXT* = 0x00008011

-  GL_SEPARABLE_2D_EXT* = 0x00008012

-  GL_CONVOLUTION_BORDER_MODE_EXT* = 0x00008013

-  GL_CONVOLUTION_FILTER_SCALE_EXT* = 0x00008014

-  GL_CONVOLUTION_FILTER_BIAS_EXT* = 0x00008015

-  GL_REDUCE_EXT* = 0x00008016

-  GL_CONVOLUTION_FORMAT_EXT* = 0x00008017

-  GL_CONVOLUTION_WIDTH_EXT* = 0x00008018

-  GL_CONVOLUTION_HEIGHT_EXT* = 0x00008019

-  GL_MAX_CONVOLUTION_WIDTH_EXT* = 0x0000801A

-  GL_MAX_CONVOLUTION_HEIGHT_EXT* = 0x0000801B

-  GL_POST_CONVOLUTION_RED_SCALE_EXT* = 0x0000801C

-  GL_POST_CONVOLUTION_GREEN_SCALE_EXT* = 0x0000801D

-  GL_POST_CONVOLUTION_BLUE_SCALE_EXT* = 0x0000801E

-  GL_POST_CONVOLUTION_ALPHA_SCALE_EXT* = 0x0000801F

-  GL_POST_CONVOLUTION_RED_BIAS_EXT* = 0x00008020

-  GL_POST_CONVOLUTION_GREEN_BIAS_EXT* = 0x00008021

-  GL_POST_CONVOLUTION_BLUE_BIAS_EXT* = 0x00008022

-  GL_POST_CONVOLUTION_ALPHA_BIAS_EXT* = 0x00008023 # GL_EXT_coordinate_frame

-  GL_TANGENT_ARRAY_EXT* = 0x00008439

-  GL_BINORMAL_ARRAY_EXT* = 0x0000843A

-  GL_CURRENT_TANGENT_EXT* = 0x0000843B

-  GL_CURRENT_BINORMAL_EXT* = 0x0000843C

-  GL_TANGENT_ARRAYtyp_EXT* = 0x0000843E

-  GL_TANGENT_ARRAY_STRIDE_EXT* = 0x0000843F

-  GL_BINORMAL_ARRAYtyp_EXT* = 0x00008440

-  GL_BINORMAL_ARRAY_STRIDE_EXT* = 0x00008441

-  GL_TANGENT_ARRAY_POINTER_EXT* = 0x00008442

-  GL_BINORMAL_ARRAY_POINTER_EXT* = 0x00008443

-  GL_MAP1_TANGENT_EXT* = 0x00008444

-  GL_MAP2_TANGENT_EXT* = 0x00008445

-  GL_MAP1_BINORMAL_EXT* = 0x00008446

-  GL_MAP2_BINORMAL_EXT* = 0x00008447 # GL_EXT_cull_vertex

-  GL_CULL_VERTEX_EXT* = 0x000081AA

-  GL_CULL_VERTEX_EYE_POSITION_EXT* = 0x000081AB

-  GL_CULL_VERTEX_OBJECT_POSITION_EXT* = 0x000081AC # GL_EXT_draw_range_elements

-  GL_MAX_ELEMENTS_VERTICES_EXT* = 0x000080E8

-  GL_MAX_ELEMENTS_INDICES_EXT* = 0x000080E9 # GL_EXT_fog_coord

-  GL_FOG_COORDINATE_SOURCE_EXT* = 0x00008450

-  GL_FOG_COORDINATE_EXT* = 0x00008451

-  GL_FRAGMENT_DEPTH_EXT* = 0x00008452

-  GL_CURRENT_FOG_COORDINATE_EXT* = 0x00008453

-  GL_FOG_COORDINATE_ARRAYtyp_EXT* = 0x00008454

-  GL_FOG_COORDINATE_ARRAY_STRIDE_EXT* = 0x00008455

-  GL_FOG_COORDINATE_ARRAY_POINTER_EXT* = 0x00008456

-  GL_FOG_COORDINATE_ARRAY_EXT* = 0x00008457 # GL_EXT_framebuffer_object

-  GL_FRAMEBUFFER_EXT* = 0x00008D40

-  GL_RENDERBUFFER_EXT* = 0x00008D41

-  GL_STENCIL_INDEX_EXT* = 0x00008D45

-  GL_STENCIL_INDEX1_EXT* = 0x00008D46

-  GL_STENCIL_INDEX4_EXT* = 0x00008D47

-  GL_STENCIL_INDEX8_EXT* = 0x00008D48

-  GL_STENCIL_INDEX16_EXT* = 0x00008D49

-  GL_RENDERBUFFER_WIDTH_EXT* = 0x00008D42

-  GL_RENDERBUFFER_HEIGHT_EXT* = 0x00008D43

-  GL_RENDERBUFFER_INTERNAL_FORMAT_EXT* = 0x00008D44

-  GL_FRAMEBUFFER_ATTACHMENT_OBJECTtyp_EXT* = 0x00008CD0

-  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT* = 0x00008CD1

-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT* = 0x00008CD2

-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT* = 0x00008CD3

-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT* = 0x00008CD4

-  GL_COLOR_ATTACHMENT0_EXT* = 0x00008CE0

-  GL_COLOR_ATTACHMENT1_EXT* = 0x00008CE1

-  GL_COLOR_ATTACHMENT2_EXT* = 0x00008CE2

-  GL_COLOR_ATTACHMENT3_EXT* = 0x00008CE3

-  GL_COLOR_ATTACHMENT4_EXT* = 0x00008CE4

-  GL_COLOR_ATTACHMENT5_EXT* = 0x00008CE5

-  GL_COLOR_ATTACHMENT6_EXT* = 0x00008CE6

-  GL_COLOR_ATTACHMENT7_EXT* = 0x00008CE7

-  GL_COLOR_ATTACHMENT8_EXT* = 0x00008CE8

-  GL_COLOR_ATTACHMENT9_EXT* = 0x00008CE9

-  GL_COLOR_ATTACHMENT10_EXT* = 0x00008CEA

-  GL_COLOR_ATTACHMENT11_EXT* = 0x00008CEB

-  GL_COLOR_ATTACHMENT12_EXT* = 0x00008CEC

-  GL_COLOR_ATTACHMENT13_EXT* = 0x00008CED

-  GL_COLOR_ATTACHMENT14_EXT* = 0x00008CEE

-  GL_COLOR_ATTACHMENT15_EXT* = 0x00008CEF

-  GL_DEPTH_ATTACHMENT_EXT* = 0x00008D00

-  GL_STENCIL_ATTACHMENT_EXT* = 0x00008D20

-  GL_FRAMEBUFFER_COMPLETE_EXT* = 0x00008CD5

-  GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT* = 0x00008CD6

-  GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT* = 0x00008CD7

-  GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT* = 0x00008CD8

-  GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT* = 0x00008CD9

-  GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT* = 0x00008CDA

-  GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT* = 0x00008CDB

-  GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT* = 0x00008CDC

-  GL_FRAMEBUFFER_UNSUPPORTED_EXT* = 0x00008CDD

-  GL_FRAMEBUFFER_STATUS_ERROR_EXT* = 0x00008CDE

-  GL_FRAMEBUFFER_BINDING_EXT* = 0x00008CA6

-  GL_RENDERBUFFER_BINDING_EXT* = 0x00008CA7

-  GL_MAX_COLOR_ATTACHMENTS_EXT* = 0x00008CDF

-  GL_MAX_RENDERBUFFER_SIZE_EXT* = 0x000084E8

-  GL_INVALID_FRAMEBUFFER_OPERATION_EXT* = 0x00000506 # GL_EXT_histogram

-  cGL_HISTOGRAM_EXT* = 0x00008024

-  GL_PROXY_HISTOGRAM_EXT* = 0x00008025

-  GL_HISTOGRAM_WIDTH_EXT* = 0x00008026

-  GL_HISTOGRAM_FORMAT_EXT* = 0x00008027

-  GL_HISTOGRAM_RED_SIZE_EXT* = 0x00008028

-  GL_HISTOGRAM_GREEN_SIZE_EXT* = 0x00008029

-  GL_HISTOGRAM_BLUE_SIZE_EXT* = 0x0000802A

-  GL_HISTOGRAM_ALPHA_SIZE_EXT* = 0x0000802B

-  GL_HISTOGRAM_LUMINANCE_SIZE_EXT* = 0x0000802C

-  GL_HISTOGRAM_SINK_EXT* = 0x0000802D

-  cGL_MINMAX_EXT* = 0x0000802E

-  GL_MINMAX_FORMAT_EXT* = 0x0000802F

-  GL_MINMAX_SINK_EXT* = 0x00008030

-  GL_TABLE_TOO_LARGE_EXT* = 0x00008031 # GL_EXT_index_array_formats

-  GL_IUI_V2F_EXT* = 0x000081AD

-  GL_IUI_V3F_EXT* = 0x000081AE

-  GL_IUI_N3F_V2F_EXT* = 0x000081AF

-  GL_IUI_N3F_V3F_EXT* = 0x000081B0

-  GL_T2F_IUI_V2F_EXT* = 0x000081B1

-  GL_T2F_IUI_V3F_EXT* = 0x000081B2

-  GL_T2F_IUI_N3F_V2F_EXT* = 0x000081B3

-  GL_T2F_IUI_N3F_V3F_EXT* = 0x000081B4 # GL_EXT_index_func

-  GL_INDEX_TEST_EXT* = 0x000081B5

-  GL_INDEX_TEST_FUNC_EXT* = 0x000081B6

-  GL_INDEX_TEST_REF_EXT* = 0x000081B7 # GL_EXT_index_material

-  cGL_INDEX_MATERIAL_EXT* = 0x000081B8

-  GL_INDEX_MATERIAL_PARAMETER_EXT* = 0x000081B9

-  GL_INDEX_MATERIAL_FACE_EXT* = 0x000081BA # GL_EXT_light_texture

-  GL_FRAGMENT_MATERIAL_EXT* = 0x00008349

-  GL_FRAGMENT_NORMAL_EXT* = 0x0000834A

-  GL_FRAGMENT_COLOR_EXT* = 0x0000834C

-  GL_ATTENUATION_EXT* = 0x0000834D

-  GL_SHADOW_ATTENUATION_EXT* = 0x0000834E

-  GL_TEXTURE_APPLICATION_MODE_EXT* = 0x0000834F

-  cGL_TEXTURE_LIGHT_EXT* = 0x00008350

-  GL_TEXTURE_MATERIAL_FACE_EXT* = 0x00008351

-  GL_TEXTURE_MATERIAL_PARAMETER_EXT* = 0x00008352 # GL_EXT_multisample

-  GL_MULTISAMPLE_EXT* = 0x0000809D

-  GL_SAMPLE_ALPHA_TO_MASK_EXT* = 0x0000809E

-  GL_SAMPLE_ALPHA_TO_ONE_EXT* = 0x0000809F

-  cGL_SAMPLE_MASK_EXT* = 0x000080A0

-  GL_1PASS_EXT* = 0x000080A1

-  GL_2PASS_0_EXT* = 0x000080A2

-  GL_2PASS_1_EXT* = 0x000080A3

-  GL_4PASS_0_EXT* = 0x000080A4

-  GL_4PASS_1_EXT* = 0x000080A5

-  GL_4PASS_2_EXT* = 0x000080A6

-  GL_4PASS_3_EXT* = 0x000080A7

-  GL_SAMPLE_BUFFERS_EXT* = 0x000080A8

-  GL_SAMPLES_EXT* = 0x000080A9

-  GL_SAMPLE_MASK_VALUE_EXT* = 0x000080AA

-  GL_SAMPLE_MASK_INVERT_EXT* = 0x000080AB

-  cGL_SAMPLE_PATTERN_EXT* = 0x000080AC

-  GL_MULTISAMPLE_BIT_EXT* = 0x20000000 # GL_EXT_packed_pixels

-  GL_UNSIGNED_BYTE_3_3_2_EXT* = 0x00008032

-  GL_UNSIGNED_SHORT_4_4_4_4_EXT* = 0x00008033

-  GL_UNSIGNED_SHORT_5_5_5_1_EXT* = 0x00008034

-  GL_UNSIGNED_INT_8_8_8_8_EXT* = 0x00008035

-  GL_UNSIGNED_INT_10_10_10_2_EXT* = 0x00008036 # GL_EXT_paletted_texture

-  GL_COLOR_INDEX1_EXT* = 0x000080E2

-  GL_COLOR_INDEX2_EXT* = 0x000080E3

-  GL_COLOR_INDEX4_EXT* = 0x000080E4

-  GL_COLOR_INDEX8_EXT* = 0x000080E5

-  GL_COLOR_INDEX12_EXT* = 0x000080E6

-  GL_COLOR_INDEX16_EXT* = 0x000080E7

-  GL_TEXTURE_INDEX_SIZE_EXT* = 0x000080ED # GL_EXT_pixel_transform

-  GL_PIXEL_TRANSFORM_2D_EXT* = 0x00008330

-  GL_PIXEL_MAG_FILTER_EXT* = 0x00008331

-  GL_PIXEL_MIN_FILTER_EXT* = 0x00008332

-  GL_PIXEL_CUBIC_WEIGHT_EXT* = 0x00008333

-  GL_CUBIC_EXT* = 0x00008334

-  GL_AVERAGE_EXT* = 0x00008335

-  GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT* = 0x00008336

-  GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT* = 0x00008337

-  GL_PIXEL_TRANSFORM_2D_MATRIX_EXT* = 0x00008338 # GL_EXT_point_parameters

-  GL_POINT_SIZE_MIN_EXT* = 0x00008126

-  GL_POINT_SIZE_MAX_EXT* = 0x00008127

-  GL_POINT_FADE_THRESHOLD_SIZE_EXT* = 0x00008128

-  GL_DISTANCE_ATTENUATION_EXT* = 0x00008129 # GL_EXT_polygon_offset

-  cGL_POLYGON_OFFSET_EXT* = 0x00008037

-  GL_POLYGON_OFFSET_FACTOR_EXT* = 0x00008038

-  GL_POLYGON_OFFSET_BIAS_EXT* = 0x00008039 # GL_EXT_rescale_normal

-  GL_RESCALE_NORMAL_EXT* = 0x0000803A # GL_EXT_secondary_color

-  GL_COLOR_SUM_EXT* = 0x00008458

-  GL_CURRENT_SECONDARY_COLOR_EXT* = 0x00008459

-  GL_SECONDARY_COLOR_ARRAY_SIZE_EXT* = 0x0000845A

-  GL_SECONDARY_COLOR_ARRAYtyp_EXT* = 0x0000845B

-  GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT* = 0x0000845C

-  GL_SECONDARY_COLOR_ARRAY_POINTER_EXT* = 0x0000845D

-  GL_SECONDARY_COLOR_ARRAY_EXT* = 0x0000845E # GL_EXT_separate_specular_color

-  GL_LIGHT_MODEL_COLOR_CONTROL_EXT* = 0x000081F8

-  GL_SINGLE_COLOR_EXT* = 0x000081F9

-  GL_SEPARATE_SPECULAR_COLOR_EXT* = 0x000081FA # GL_EXT_shared_texture_palette

-  GL_SHARED_TEXTURE_PALETTE_EXT* = 0x000081FB # GL_EXT_stencil_two_side

-  GL_STENCIL_TEST_TWO_SIDE_EXT* = 0x00008910

-  cGL_ACTIVE_STENCIL_FACE_EXT* = 0x00008911 # GL_EXT_stencil_wrap

-  GL_INCR_WRAP_EXT* = 0x00008507

-  GL_DECR_WRAP_EXT* = 0x00008508 # GL_EXT_texture

-  GL_ALPHA4_EXT* = 0x0000803B

-  GL_ALPHA8_EXT* = 0x0000803C

-  GL_ALPHA12_EXT* = 0x0000803D

-  GL_ALPHA16_EXT* = 0x0000803E

-  GL_LUMINANCE4_EXT* = 0x0000803F

-  GL_LUMINANCE8_EXT* = 0x00008040

-  GL_LUMINANCE12_EXT* = 0x00008041

-  GL_LUMINANCE16_EXT* = 0x00008042

-  GL_LUMINANCE4_ALPHA4_EXT* = 0x00008043

-  GL_LUMINANCE6_ALPHA2_EXT* = 0x00008044

-  GL_LUMINANCE8_ALPHA8_EXT* = 0x00008045

-  GL_LUMINANCE12_ALPHA4_EXT* = 0x00008046

-  GL_LUMINANCE12_ALPHA12_EXT* = 0x00008047

-  GL_LUMINANCE16_ALPHA16_EXT* = 0x00008048

-  GL_INTENSITY_EXT* = 0x00008049

-  GL_INTENSITY4_EXT* = 0x0000804A

-  GL_INTENSITY8_EXT* = 0x0000804B

-  GL_INTENSITY12_EXT* = 0x0000804C

-  GL_INTENSITY16_EXT* = 0x0000804D

-  GL_RGB2_EXT* = 0x0000804E

-  GL_RGB4_EXT* = 0x0000804F

-  GL_RGB5_EXT* = 0x00008050

-  GL_RGB8_EXT* = 0x00008051

-  GL_RGB10_EXT* = 0x00008052

-  GL_RGB12_EXT* = 0x00008053

-  GL_RGB16_EXT* = 0x00008054

-  GL_RGBA2_EXT* = 0x00008055

-  GL_RGBA4_EXT* = 0x00008056

-  GL_RGB5_A1_EXT* = 0x00008057

-  GL_RGBA8_EXT* = 0x00008058

-  GL_RGB10_A2_EXT* = 0x00008059

-  GL_RGBA12_EXT* = 0x0000805A

-  GL_RGBA16_EXT* = 0x0000805B

-  GL_TEXTURE_RED_SIZE_EXT* = 0x0000805C

-  GL_TEXTURE_GREEN_SIZE_EXT* = 0x0000805D

-  GL_TEXTURE_BLUE_SIZE_EXT* = 0x0000805E

-  GL_TEXTURE_ALPHA_SIZE_EXT* = 0x0000805F

-  GL_TEXTURE_LUMINANCE_SIZE_EXT* = 0x00008060

-  GL_TEXTURE_INTENSITY_SIZE_EXT* = 0x00008061

-  GL_REPLACE_EXT* = 0x00008062

-  GL_PROXY_TEXTURE_1D_EXT* = 0x00008063

-  GL_PROXY_TEXTURE_2D_EXT* = 0x00008064

-  GL_TEXTURE_TOO_LARGE_EXT* = 0x00008065 # GL_EXT_texture3D

-  GL_PACK_SKIP_IMAGES_EXT* = 0x0000806B

-  GL_PACK_IMAGE_HEIGHT_EXT* = 0x0000806C

-  GL_UNPACK_SKIP_IMAGES_EXT* = 0x0000806D

-  GL_UNPACK_IMAGE_HEIGHT_EXT* = 0x0000806E

-  GL_TEXTURE_3D_EXT* = 0x0000806F

-  GL_PROXY_TEXTURE_3D_EXT* = 0x00008070

-  GL_TEXTURE_DEPTH_EXT* = 0x00008071

-  GL_TEXTURE_WRAP_R_EXT* = 0x00008072

-  GL_MAX_3D_TEXTURE_SIZE_EXT* = 0x00008073 # GL_EXT_texture_compression_s3tc

-  GL_COMPRESSED_RGB_S3TC_DXT1_EXT* = 0x000083F0

-  GL_COMPRESSED_RGBA_S3TC_DXT1_EXT* = 0x000083F1

-  GL_COMPRESSED_RGBA_S3TC_DXT3_EXT* = 0x000083F2

-  GL_COMPRESSED_RGBA_S3TC_DXT5_EXT* = 0x000083F3 # GL_EXT_texture_cube_map

-  GL_NORMAL_MAP_EXT* = 0x00008511

-  GL_REFLECTION_MAP_EXT* = 0x00008512

-  GL_TEXTURE_CUBE_MAP_EXT* = 0x00008513

-  GL_TEXTURE_BINDING_CUBE_MAP_EXT* = 0x00008514

-  GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT* = 0x00008515

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT* = 0x00008516

-  GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT* = 0x00008517

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT* = 0x00008518

-  GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT* = 0x00008519

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT* = 0x0000851A

-  GL_PROXY_TEXTURE_CUBE_MAP_EXT* = 0x0000851B

-  GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT* = 0x0000851C # GL_EXT_texture_edge_clamp

-  GL_CLAMP_TO_EDGE_EXT* = 0x0000812F # GL_EXT_texture_env_combine

-  GL_COMBINE_EXT* = 0x00008570

-  GL_COMBINE_RGB_EXT* = 0x00008571

-  GL_COMBINE_ALPHA_EXT* = 0x00008572

-  GL_RGB_SCALE_EXT* = 0x00008573

-  GL_ADD_SIGNED_EXT* = 0x00008574

-  GL_INTERPOLATE_EXT* = 0x00008575

-  GL_CONSTANT_EXT* = 0x00008576

-  GL_PRIMARY_COLOR_EXT* = 0x00008577

-  GL_PREVIOUS_EXT* = 0x00008578

-  GL_SOURCE0_RGB_EXT* = 0x00008580

-  GL_SOURCE1_RGB_EXT* = 0x00008581

-  GL_SOURCE2_RGB_EXT* = 0x00008582

-  GL_SOURCE0_ALPHA_EXT* = 0x00008588

-  GL_SOURCE1_ALPHA_EXT* = 0x00008589

-  GL_SOURCE2_ALPHA_EXT* = 0x0000858A

-  GL_OPERAND0_RGB_EXT* = 0x00008590

-  GL_OPERAND1_RGB_EXT* = 0x00008591

-  GL_OPERAND2_RGB_EXT* = 0x00008592

-  GL_OPERAND0_ALPHA_EXT* = 0x00008598

-  GL_OPERAND1_ALPHA_EXT* = 0x00008599

-  GL_OPERAND2_ALPHA_EXT* = 0x0000859A # GL_EXT_texture_env_dot3

-  GL_DOT3_RGB_EXT* = 0x00008740

-  GL_DOT3_RGBA_EXT* = 0x00008741 # GL_EXT_texture_filter_anisotropic

-  GL_TEXTURE_MAX_ANISOTROPY_EXT* = 0x000084FE

-  GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT* = 0x000084FF # GL_EXT_texture_lod_bias

-  GL_MAX_TEXTURE_LOD_BIAS_EXT* = 0x000084FD

-  GL_TEXTURE_FILTER_CONTROL_EXT* = 0x00008500

-  GL_TEXTURE_LOD_BIAS_EXT* = 0x00008501 # GL_EXT_texture_object

-  GL_TEXTURE_PRIORITY_EXT* = 0x00008066

-  GL_TEXTURE_RESIDENT_EXT* = 0x00008067

-  GL_TEXTURE_1D_BINDING_EXT* = 0x00008068

-  GL_TEXTURE_2D_BINDING_EXT* = 0x00008069

-  GL_TEXTURE_3D_BINDING_EXT* = 0x0000806A # GL_EXT_texture_perturb_normal

-  GL_PERTURB_EXT* = 0x000085AE

-  cGL_TEXTURE_NORMAL_EXT* = 0x000085AF # GL_EXT_texture_rectangle

-  GL_TEXTURE_RECTANGLE_EXT* = 0x000084F5

-  GL_TEXTURE_BINDING_RECTANGLE_EXT* = 0x000084F6

-  GL_PROXY_TEXTURE_RECTANGLE_EXT* = 0x000084F7

-  GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT* = 0x000084F8 # GL_EXT_vertex_array

-  GL_VERTEX_ARRAY_EXT* = 0x00008074

-  GL_NORMAL_ARRAY_EXT* = 0x00008075

-  GL_COLOR_ARRAY_EXT* = 0x00008076

-  GL_INDEX_ARRAY_EXT* = 0x00008077

-  GL_TEXTURE_COORD_ARRAY_EXT* = 0x00008078

-  GL_EDGE_FLAG_ARRAY_EXT* = 0x00008079

-  GL_VERTEX_ARRAY_SIZE_EXT* = 0x0000807A

-  GL_VERTEX_ARRAYtyp_EXT* = 0x0000807B

-  GL_VERTEX_ARRAY_STRIDE_EXT* = 0x0000807C

-  GL_VERTEX_ARRAY_COUNT_EXT* = 0x0000807D

-  GL_NORMAL_ARRAYtyp_EXT* = 0x0000807E

-  GL_NORMAL_ARRAY_STRIDE_EXT* = 0x0000807F

-  GL_NORMAL_ARRAY_COUNT_EXT* = 0x00008080

-  GL_COLOR_ARRAY_SIZE_EXT* = 0x00008081

-  GL_COLOR_ARRAYtyp_EXT* = 0x00008082

-  GL_COLOR_ARRAY_STRIDE_EXT* = 0x00008083

-  GL_COLOR_ARRAY_COUNT_EXT* = 0x00008084

-  GL_INDEX_ARRAYtyp_EXT* = 0x00008085

-  GL_INDEX_ARRAY_STRIDE_EXT* = 0x00008086

-  GL_INDEX_ARRAY_COUNT_EXT* = 0x00008087

-  GL_TEXTURE_COORD_ARRAY_SIZE_EXT* = 0x00008088

-  GL_TEXTURE_COORD_ARRAYtyp_EXT* = 0x00008089

-  GL_TEXTURE_COORD_ARRAY_STRIDE_EXT* = 0x0000808A

-  GL_TEXTURE_COORD_ARRAY_COUNT_EXT* = 0x0000808B

-  GL_EDGE_FLAG_ARRAY_STRIDE_EXT* = 0x0000808C

-  GL_EDGE_FLAG_ARRAY_COUNT_EXT* = 0x0000808D

-  GL_VERTEX_ARRAY_POINTER_EXT* = 0x0000808E

-  GL_NORMAL_ARRAY_POINTER_EXT* = 0x0000808F

-  GL_COLOR_ARRAY_POINTER_EXT* = 0x00008090

-  GL_INDEX_ARRAY_POINTER_EXT* = 0x00008091

-  GL_TEXTURE_COORD_ARRAY_POINTER_EXT* = 0x00008092

-  GL_EDGE_FLAG_ARRAY_POINTER_EXT* = 0x00008093 # GL_EXT_vertex_shader

-  GL_VERTEX_SHADER_EXT* = 0x00008780

-  GL_VERTEX_SHADER_BINDING_EXT* = 0x00008781

-  GL_OP_INDEX_EXT* = 0x00008782

-  GL_OP_NEGATE_EXT* = 0x00008783

-  GL_OP_DOT3_EXT* = 0x00008784

-  GL_OP_DOT4_EXT* = 0x00008785

-  GL_OP_MUL_EXT* = 0x00008786

-  GL_OP_ADD_EXT* = 0x00008787

-  GL_OP_MADD_EXT* = 0x00008788

-  GL_OP_FRAC_EXT* = 0x00008789

-  GL_OP_MAX_EXT* = 0x0000878A

-  GL_OP_MIN_EXT* = 0x0000878B

-  GL_OP_SET_GE_EXT* = 0x0000878C

-  GL_OP_SET_LT_EXT* = 0x0000878D

-  GL_OP_CLAMP_EXT* = 0x0000878E

-  GL_OP_FLOOR_EXT* = 0x0000878F

-  GL_OP_ROUND_EXT* = 0x00008790

-  GL_OP_EXP_BASE_2_EXT* = 0x00008791

-  GL_OP_LOG_BASE_2_EXT* = 0x00008792

-  GL_OP_POWER_EXT* = 0x00008793

-  GL_OP_RECIP_EXT* = 0x00008794

-  GL_OP_RECIP_SQRT_EXT* = 0x00008795

-  GL_OP_SUB_EXT* = 0x00008796

-  GL_OP_CROSS_PRODUCT_EXT* = 0x00008797

-  GL_OP_MULTIPLY_MATRIX_EXT* = 0x00008798

-  GL_OP_MOV_EXT* = 0x00008799

-  GL_OUTPUT_VERTEX_EXT* = 0x0000879A

-  GL_OUTPUT_COLOR0_EXT* = 0x0000879B

-  GL_OUTPUT_COLOR1_EXT* = 0x0000879C

-  GL_OUTPUT_TEXTURE_COORD0_EXT* = 0x0000879D

-  GL_OUTPUT_TEXTURE_COORD1_EXT* = 0x0000879E

-  GL_OUTPUT_TEXTURE_COORD2_EXT* = 0x0000879F

-  GL_OUTPUT_TEXTURE_COORD3_EXT* = 0x000087A0

-  GL_OUTPUT_TEXTURE_COORD4_EXT* = 0x000087A1

-  GL_OUTPUT_TEXTURE_COORD5_EXT* = 0x000087A2

-  GL_OUTPUT_TEXTURE_COORD6_EXT* = 0x000087A3

-  GL_OUTPUT_TEXTURE_COORD7_EXT* = 0x000087A4

-  GL_OUTPUT_TEXTURE_COORD8_EXT* = 0x000087A5

-  GL_OUTPUT_TEXTURE_COORD9_EXT* = 0x000087A6

-  GL_OUTPUT_TEXTURE_COORD10_EXT* = 0x000087A7

-  GL_OUTPUT_TEXTURE_COORD11_EXT* = 0x000087A8

-  GL_OUTPUT_TEXTURE_COORD12_EXT* = 0x000087A9

-  GL_OUTPUT_TEXTURE_COORD13_EXT* = 0x000087AA

-  GL_OUTPUT_TEXTURE_COORD14_EXT* = 0x000087AB

-  GL_OUTPUT_TEXTURE_COORD15_EXT* = 0x000087AC

-  GL_OUTPUT_TEXTURE_COORD16_EXT* = 0x000087AD

-  GL_OUTPUT_TEXTURE_COORD17_EXT* = 0x000087AE

-  GL_OUTPUT_TEXTURE_COORD18_EXT* = 0x000087AF

-  GL_OUTPUT_TEXTURE_COORD19_EXT* = 0x000087B0

-  GL_OUTPUT_TEXTURE_COORD20_EXT* = 0x000087B1

-  GL_OUTPUT_TEXTURE_COORD21_EXT* = 0x000087B2

-  GL_OUTPUT_TEXTURE_COORD22_EXT* = 0x000087B3

-  GL_OUTPUT_TEXTURE_COORD23_EXT* = 0x000087B4

-  GL_OUTPUT_TEXTURE_COORD24_EXT* = 0x000087B5

-  GL_OUTPUT_TEXTURE_COORD25_EXT* = 0x000087B6

-  GL_OUTPUT_TEXTURE_COORD26_EXT* = 0x000087B7

-  GL_OUTPUT_TEXTURE_COORD27_EXT* = 0x000087B8

-  GL_OUTPUT_TEXTURE_COORD28_EXT* = 0x000087B9

-  GL_OUTPUT_TEXTURE_COORD29_EXT* = 0x000087BA

-  GL_OUTPUT_TEXTURE_COORD30_EXT* = 0x000087BB

-  GL_OUTPUT_TEXTURE_COORD31_EXT* = 0x000087BC

-  GL_OUTPUT_FOG_EXT* = 0x000087BD

-  GL_SCALAR_EXT* = 0x000087BE

-  GL_VECTOR_EXT* = 0x000087BF

-  GL_MATRIX_EXT* = 0x000087C0

-  GL_VARIANT_EXT* = 0x000087C1

-  GL_INVARIANT_EXT* = 0x000087C2

-  GL_LOCAL_CONSTANT_EXT* = 0x000087C3

-  GL_LOCAL_EXT* = 0x000087C4

-  GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT* = 0x000087C5

-  GL_MAX_VERTEX_SHADER_VARIANTS_EXT* = 0x000087C6

-  GL_MAX_VERTEX_SHADER_INVARIANTS_EXT* = 0x000087C7

-  GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT* = 0x000087C8

-  GL_MAX_VERTEX_SHADER_LOCALS_EXT* = 0x000087C9

-  GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT* = 0x000087CA

-  GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT* = 0x000087CB

-  GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT* = 0x000087CC

-  GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT* = 0x000087CD

-  GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT* = 0x000087CE

-  GL_VERTEX_SHADER_INSTRUCTIONS_EXT* = 0x000087CF

-  GL_VERTEX_SHADER_VARIANTS_EXT* = 0x000087D0

-  GL_VERTEX_SHADER_INVARIANTS_EXT* = 0x000087D1

-  GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT* = 0x000087D2

-  GL_VERTEX_SHADER_LOCALS_EXT* = 0x000087D3

-  GL_VERTEX_SHADER_OPTIMIZED_EXT* = 0x000087D4

-  GL_X_EXT* = 0x000087D5

-  GL_Y_EXT* = 0x000087D6

-  GL_Z_EXT* = 0x000087D7

-  GL_W_EXT* = 0x000087D8

-  GL_NEGATIVE_X_EXT* = 0x000087D9

-  GL_NEGATIVE_Y_EXT* = 0x000087DA

-  GL_NEGATIVE_Z_EXT* = 0x000087DB

-  GL_NEGATIVE_W_EXT* = 0x000087DC

-  GL_ZERO_EXT* = 0x000087DD

-  GL_ONE_EXT* = 0x000087DE

-  GL_NEGATIVE_ONE_EXT* = 0x000087DF

-  GL_NORMALIZED_RANGE_EXT* = 0x000087E0

-  GL_FULL_RANGE_EXT* = 0x000087E1

-  GL_CURRENT_VERTEX_EXT* = 0x000087E2

-  GL_MVP_MATRIX_EXT* = 0x000087E3

-  GL_VARIANT_VALUE_EXT* = 0x000087E4

-  GL_VARIANT_DATAtypEXT* = 0x000087E5

-  GL_VARIANT_ARRAY_STRIDE_EXT* = 0x000087E6

-  GL_VARIANT_ARRAYtyp_EXT* = 0x000087E7

-  GL_VARIANT_ARRAY_EXT* = 0x000087E8

-  GL_VARIANT_ARRAY_POINTER_EXT* = 0x000087E9

-  GL_INVARIANT_VALUE_EXT* = 0x000087EA

-  GL_INVARIANT_DATAtypEXT* = 0x000087EB

-  GL_LOCAL_CONSTANT_VALUE_EXT* = 0x000087EC

-  GL_LOCAL_CONSTANT_DATAtypEXT* = 0x000087ED # GL_EXT_vertex_weighting

-  GL_MODELVIEW0_STACK_DEPTH_EXT* = 0x00000BA3

-  GL_MODELVIEW1_STACK_DEPTH_EXT* = 0x00008502

-  GL_MODELVIEW0_MATRIX_EXT* = 0x00000BA6

-  GL_MODELVIEW1_MATRIX_EXT* = 0x00008506

-  GL_VERTEX_WEIGHTING_EXT* = 0x00008509

-  GL_MODELVIEW0_EXT* = 0x00001700

-  GL_MODELVIEW1_EXT* = 0x0000850A

-  GL_CURRENT_VERTEX_WEIGHT_EXT* = 0x0000850B

-  GL_VERTEX_WEIGHT_ARRAY_EXT* = 0x0000850C

-  GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT* = 0x0000850D

-  GL_VERTEX_WEIGHT_ARRAYtyp_EXT* = 0x0000850E

-  GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT* = 0x0000850F

-  GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT* = 0x00008510 # GL_EXT_depth_bounds_test

-  GL_DEPTH_BOUNDS_TEST_EXT* = 0x00008890

-  cGL_DEPTH_BOUNDS_EXT* = 0x00008891 # GL_EXT_texture_mirror_clamp

-  GL_MIRROR_CLAMP_EXT* = 0x00008742

-  GL_MIRROR_CLAMP_TO_EDGE_EXT* = 0x00008743

-  GL_MIRROR_CLAMP_TO_BORDER_EXT* = 0x00008912 # GL_EXT_blend_equation_separate

-  GL_BLEND_EQUATION_RGB_EXT* = 0x00008009

-  GL_BLEND_EQUATION_ALPHA_EXT* = 0x0000883D # GL_EXT_pixel_buffer_object

-  GL_PIXEL_PACK_BUFFER_EXT* = 0x000088EB

-  GL_PIXEL_UNPACK_BUFFER_EXT* = 0x000088EC

-  GL_PIXEL_PACK_BUFFER_BINDING_EXT* = 0x000088ED

-  GL_PIXEL_UNPACK_BUFFER_BINDING_EXT* = 0x000088EF # GL_EXT_stencil_clear_tag

-  GL_STENCIL_TAG_BITS_EXT* = 0x000088F2

-  GL_STENCIL_CLEAR_TAG_VALUE_EXT* = 0x000088F3 # GL_EXT_packed_depth_stencil

-  GL_DEPTH_STENCIL_EXT* = 0x000084F9

-  GL_UNSIGNED_INT_24_8_EXT* = 0x000084FA

-  GL_DEPTH24_STENCIL8_EXT* = 0x000088F0

-  GL_TEXTURE_STENCIL_SIZE_EXT* = 0x000088F1 # GL_EXT_texture_sRGB

-  GL_SRGB_EXT* = 0x00008C40

-  GL_SRGB8_EXT* = 0x00008C41

-  GL_SRGB_ALPHA_EXT* = 0x00008C42

-  GL_SRGB8_ALPHA8_EXT* = 0x00008C43

-  GL_SLUMINANCE_ALPHA_EXT* = 0x00008C44

-  GL_SLUMINANCE8_ALPHA8_EXT* = 0x00008C45

-  GL_SLUMINANCE_EXT* = 0x00008C46

-  GL_SLUMINANCE8_EXT* = 0x00008C47

-  GL_COMPRESSED_SRGB_EXT* = 0x00008C48

-  GL_COMPRESSED_SRGB_ALPHA_EXT* = 0x00008C49

-  GL_COMPRESSED_SLUMINANCE_EXT* = 0x00008C4A

-  GL_COMPRESSED_SLUMINANCE_ALPHA_EXT* = 0x00008C4B

-  GL_COMPRESSED_SRGB_S3TC_DXT1_EXT* = 0x00008C4C

-  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT* = 0x00008C4D

-  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT* = 0x00008C4E

-  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT* = 0x00008C4F # GL_EXT_framebuffer_blit

-  GL_READ_FRAMEBUFFER_EXT* = 0x00008CA8

-  GL_DRAW_FRAMEBUFFER_EXT* = 0x00008CA9

-  GL_READ_FRAMEBUFFER_BINDING_EXT* = GL_FRAMEBUFFER_BINDING_EXT

-  GL_DRAW_FRAMEBUFFER_BINDING_EXT* = 0x00008CAA # GL_EXT_framebuffer_multisample

-  GL_RENDERBUFFER_SAMPLES_EXT* = 0x00008CAB

-  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT* = 0x00008D56

-  GL_MAX_SAMPLES_EXT* = 0x00008D57 # GL_EXT_timer_query

-  GL_TIME_ELAPSED_EXT* = 0x000088BF # GL_EXT_bindable_uniform

-  GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT* = 0x00008DE2

-  GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT* = 0x00008DE3

-  GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT* = 0x00008DE4

-  GL_MAX_BINDABLE_UNIFORM_SIZE_EXT* = 0x00008DED

-  cGL_UNIFORM_BUFFER_EXT* = 0x00008DEE

-  GL_UNIFORM_BUFFER_BINDING_EXT* = 0x00008DEF # GL_EXT_framebuffer_sRGB

-  GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT* = 0x000020B2

-  WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT* = 0x000020A9

-  GL_FRAMEBUFFER_SRGB_EXT* = 0x00008DB9

-  GL_FRAMEBUFFER_SRGB_CAPABLE_EXT* = 0x00008DBA # GL_EXT_geometry_shader4

-  GL_GEOMETRY_SHADER_EXT* = 0x00008DD9

-  GL_GEOMETRY_VERTICES_OUT_EXT* = 0x00008DDA

-  GL_GEOMETRY_INPUTtyp_EXT* = 0x00008DDB

-  GL_GEOMETRY_OUTPUTtyp_EXT* = 0x00008DDC

-  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT* = 0x00008C29

-  GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT* = 0x00008DDD

-  GL_MAX_VERTEX_VARYING_COMPONENTS_EXT* = 0x00008DDE

-  GL_MAX_VARYING_COMPONENTS_EXT* = 0x00008B4B

-  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT* = 0x00008DDF

-  GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT* = 0x00008DE0

-  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT* = 0x00008DE1

-  GL_LINES_ADJACENCY_EXT* = 0x0000000A

-  GL_LINE_STRIP_ADJACENCY_EXT* = 0x0000000B

-  GL_TRIANGLES_ADJACENCY_EXT* = 0x0000000C

-  GL_TRIANGLE_STRIP_ADJACENCY_EXT* = 0x0000000D

-  GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT* = 0x00008DA8

-  GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT* = 0x00008DA9

-  GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT* = 0x00008DA7

-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT* = 0x00008CD4

-  GL_PROGRAM_POINT_SIZE_EXT* = 0x00008642 # GL_EXT_gpu_shader4

-  GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT* = 0x000088FD

-  GL_SAMPLER_1D_ARRAY_EXT* = 0x00008DC0

-  GL_SAMPLER_2D_ARRAY_EXT* = 0x00008DC1

-  GL_SAMPLER_BUFFER_EXT* = 0x00008DC2

-  GL_SAMPLER_1D_ARRAY_SHADOW_EXT* = 0x00008DC3

-  GL_SAMPLER_2D_ARRAY_SHADOW_EXT* = 0x00008DC4

-  GL_SAMPLER_CUBE_SHADOW_EXT* = 0x00008DC5

-  GL_UNSIGNED_INT_VEC2_EXT* = 0x00008DC6

-  GL_UNSIGNED_INT_VEC3_EXT* = 0x00008DC7

-  GL_UNSIGNED_INT_VEC4_EXT* = 0x00008DC8

-  GL_INT_SAMPLER_1D_EXT* = 0x00008DC9

-  GL_INT_SAMPLER_2D_EXT* = 0x00008DCA

-  GL_INT_SAMPLER_3D_EXT* = 0x00008DCB

-  GL_INT_SAMPLER_CUBE_EXT* = 0x00008DCC

-  GL_INT_SAMPLER_2D_RECT_EXT* = 0x00008DCD

-  GL_INT_SAMPLER_1D_ARRAY_EXT* = 0x00008DCE

-  GL_INT_SAMPLER_2D_ARRAY_EXT* = 0x00008DCF

-  GL_INT_SAMPLER_BUFFER_EXT* = 0x00008DD0

-  GL_UNSIGNED_INT_SAMPLER_1D_EXT* = 0x00008DD1

-  GL_UNSIGNED_INT_SAMPLER_2D_EXT* = 0x00008DD2

-  GL_UNSIGNED_INT_SAMPLER_3D_EXT* = 0x00008DD3

-  GL_UNSIGNED_INT_SAMPLER_CUBE_EXT* = 0x00008DD4

-  GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT* = 0x00008DD5

-  GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT* = 0x00008DD6

-  GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT* = 0x00008DD7

-  GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT* = 0x00008DD8

-  GL_MIN_PROGRAM_TEXEL_OFFSET_EXT* = 0x00008904

-  GL_MAX_PROGRAM_TEXEL_OFFSET_EXT* = 0x00008905 # GL_EXT_packed_float

-  GL_R11F_G11F_B10F_EXT* = 0x00008C3A

-  GL_UNSIGNED_INT_10F_11F_11F_REV_EXT* = 0x00008C3B

-  RGBA_SIGNED_COMPONENTS_EXT* = 0x00008C3C

-  WGLtyp_RGBA_UNSIGNED_FLOAT_EXT* = 0x000020A8

-  GLX_RGBA_UNSIGNED_FLOATtyp_EXT* = 0x000020B1

-  GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT* = 0x00000008 # GL_EXT_texture_array

-  GL_TEXTURE_1D_ARRAY_EXT* = 0x00008C18

-  GL_TEXTURE_2D_ARRAY_EXT* = 0x00008C1A

-  GL_PROXY_TEXTURE_2D_ARRAY_EXT* = 0x00008C1B

-  GL_PROXY_TEXTURE_1D_ARRAY_EXT* = 0x00008C19

-  GL_TEXTURE_BINDING_1D_ARRAY_EXT* = 0x00008C1C

-  GL_TEXTURE_BINDING_2D_ARRAY_EXT* = 0x00008C1D

-  GL_MAX_ARRAY_TEXTURE_LAYERS_EXT* = 0x000088FF

-  GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT* = 0x0000884E # GL_EXT_texture_buffer_object

-  cGL_TEXTURE_BUFFER_EXT* = 0x00008C2A

-  GL_MAX_TEXTURE_BUFFER_SIZE_EXT* = 0x00008C2B

-  GL_TEXTURE_BINDING_BUFFER_EXT* = 0x00008C2C

-  GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT* = 0x00008C2D

-  GL_TEXTURE_BUFFER_FORMAT_EXT* = 0x00008C2E # GL_EXT_texture_compression_latc

-  GL_COMPRESSED_LUMINANCE_LATC1_EXT* = 0x00008C70

-  GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT* = 0x00008C71

-  GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT* = 0x00008C72

-  GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT* = 0x00008C73 # 

-                                                               # GL_EXT_texture_compression_rgtc

-  GL_COMPRESSED_RED_RGTC1_EXT* = 0x00008DBB

-  GL_COMPRESSED_SIGNED_RED_RGTC1_EXT* = 0x00008DBC

-  GL_COMPRESSED_RED_GREEN_RGTC2_EXT* = 0x00008DBD

-  GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT* = 0x00008DBE # GL_EXT_texture_integer

-  GL_RGBA_INTEGER_MODE_EXT* = 0x00008D9E

-  GL_RGBA32UI_EXT* = 0x00008D70

-  GL_RGB32UI_EXT* = 0x00008D71

-  GL_ALPHA32UI_EXT* = 0x00008D72

-  GL_INTENSITY32UI_EXT* = 0x00008D73

-  GL_LUMINANCE32UI_EXT* = 0x00008D74

-  GL_LUMINANCE_ALPHA32UI_EXT* = 0x00008D75

-  GL_RGBA16UI_EXT* = 0x00008D76

-  GL_RGB16UI_EXT* = 0x00008D77

-  GL_ALPHA16UI_EXT* = 0x00008D78

-  GL_INTENSITY16UI_EXT* = 0x00008D79

-  GL_LUMINANCE16UI_EXT* = 0x00008D7A

-  GL_LUMINANCE_ALPHA16UI_EXT* = 0x00008D7B

-  GL_RGBA8UI_EXT* = 0x00008D7C

-  GL_RGB8UI_EXT* = 0x00008D7D

-  GL_ALPHA8UI_EXT* = 0x00008D7E

-  GL_INTENSITY8UI_EXT* = 0x00008D7F

-  GL_LUMINANCE8UI_EXT* = 0x00008D80

-  GL_LUMINANCE_ALPHA8UI_EXT* = 0x00008D81

-  GL_RGBA32I_EXT* = 0x00008D82

-  GL_RGB32I_EXT* = 0x00008D83

-  GL_ALPHA32I_EXT* = 0x00008D84

-  GL_INTENSITY32I_EXT* = 0x00008D85

-  GL_LUMINANCE32I_EXT* = 0x00008D86

-  GL_LUMINANCE_ALPHA32I_EXT* = 0x00008D87

-  GL_RGBA16I_EXT* = 0x00008D88

-  GL_RGB16I_EXT* = 0x00008D89

-  GL_ALPHA16I_EXT* = 0x00008D8A

-  GL_INTENSITY16I_EXT* = 0x00008D8B

-  GL_LUMINANCE16I_EXT* = 0x00008D8C

-  GL_LUMINANCE_ALPHA16I_EXT* = 0x00008D8D

-  GL_RGBA8I_EXT* = 0x00008D8E

-  GL_RGB8I_EXT* = 0x00008D8F

-  GL_ALPHA8I_EXT* = 0x00008D90

-  GL_INTENSITY8I_EXT* = 0x00008D91

-  GL_LUMINANCE8I_EXT* = 0x00008D92

-  GL_LUMINANCE_ALPHA8I_EXT* = 0x00008D93

-  GL_RED_INTEGER_EXT* = 0x00008D94

-  GL_GREEN_INTEGER_EXT* = 0x00008D95

-  GL_BLUE_INTEGER_EXT* = 0x00008D96

-  GL_ALPHA_INTEGER_EXT* = 0x00008D97

-  GL_RGB_INTEGER_EXT* = 0x00008D98

-  GL_RGBA_INTEGER_EXT* = 0x00008D99

-  GL_BGR_INTEGER_EXT* = 0x00008D9A

-  GL_BGRA_INTEGER_EXT* = 0x00008D9B

-  GL_LUMINANCE_INTEGER_EXT* = 0x00008D9C

-  GL_LUMINANCE_ALPHA_INTEGER_EXT* = 0x00008D9D # GL_EXT_texture_shared_exponent

-  GL_RGB9_E5_EXT* = 0x00008C3D

-  GL_UNSIGNED_INT_5_9_9_9_REV_EXT* = 0x00008C3E

-  GL_TEXTURE_SHARED_SIZE_EXT* = 0x00008C3F # GL_EXT_transform_feedback

-  GL_TRANSFORM_FEEDBACK_BUFFER_EXT* = 0x00008C8E

-  GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT* = 0x00008C84

-  GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT* = 0x00008C85

-  GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT* = 0x00008C8F

-  GL_INTERLEAVED_ATTRIBS_EXT* = 0x00008C8C

-  GL_SEPARATE_ATTRIBS_EXT* = 0x00008C8D

-  GL_PRIMITIVES_GENERATED_EXT* = 0x00008C87

-  GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT* = 0x00008C88

-  GL_RASTERIZER_DISCARD_EXT* = 0x00008C89

-  GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT* = 0x00008C8A

-  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT* = 0x00008C8B

-  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT* = 0x00008C80

-  cGL_TRANSFORM_FEEDBACK_VARYINGS_EXT* = 0x00008C83

-  GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT* = 0x00008C7F

-  GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT* = 0x00008C76 # 

-                                                             # GL_EXT_direct_state_access

-  GL_PROGRAM_MATRIX_EXT* = 0x00008E2D

-  GL_TRANSPOSE_PROGRAM_MATRIX_EXT* = 0x00008E2E

-  GL_PROGRAM_MATRIX_STACK_DEPTH_EXT* = 0x00008E2F # GL_EXT_texture_swizzle

-  GL_TEXTURE_SWIZZLE_R_EXT* = 0x00008E42

-  GL_TEXTURE_SWIZZLE_G_EXT* = 0x00008E43

-  GL_TEXTURE_SWIZZLE_B_EXT* = 0x00008E44

-  GL_TEXTURE_SWIZZLE_A_EXT* = 0x00008E45

-  GL_TEXTURE_SWIZZLE_RGBA_EXT* = 0x00008E46 # GL_EXT_provoking_vertex

-  GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT* = 0x00008E4C

-  GL_FIRST_VERTEX_CONVENTION_EXT* = 0x00008E4D

-  GL_LAST_VERTEX_CONVENTION_EXT* = 0x00008E4E

-  GL_PROVOKING_VERTEX_EXT* = 0x00008E4F # GL_EXT_texture_snorm

-  GL_ALPHA_SNORM* = 0x00009010

-  GL_LUMINANCE_SNORM* = 0x00009011

-  GL_LUMINANCE_ALPHA_SNORM* = 0x00009012

-  GL_INTENSITY_SNORM* = 0x00009013

-  GL_ALPHA8_SNORM* = 0x00009014

-  GL_LUMINANCE8_SNORM* = 0x00009015

-  GL_LUMINANCE8_ALPHA8_SNORM* = 0x00009016

-  GL_INTENSITY8_SNORM* = 0x00009017

-  GL_ALPHA16_SNORM* = 0x00009018

-  GL_LUMINANCE16_SNORM* = 0x00009019

-  GL_LUMINANCE16_ALPHA16_SNORM* = 0x0000901A

-  GL_INTENSITY16_SNORM* = 0x0000901B # GL_EXT_separate_shader_objects

-  cGL_ACTIVE_PROGRAM_EXT* = 0x00008B8D # GL_EXT_shader_image_load_store

-  GL_MAX_IMAGE_UNITS_EXT* = 0x00008F38

-  GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT* = 0x00008F39

-  GL_IMAGE_BINDING_NAME_EXT* = 0x00008F3A

-  GL_IMAGE_BINDING_LEVEL_EXT* = 0x00008F3B

-  GL_IMAGE_BINDING_LAYERED_EXT* = 0x00008F3C

-  GL_IMAGE_BINDING_LAYER_EXT* = 0x00008F3D

-  GL_IMAGE_BINDING_ACCESS_EXT* = 0x00008F3E

-  GL_IMAGE_1D_EXT* = 0x0000904C

-  GL_IMAGE_2D_EXT* = 0x0000904D

-  GL_IMAGE_3D_EXT* = 0x0000904E

-  GL_IMAGE_2D_RECT_EXT* = 0x0000904F

-  GL_IMAGE_CUBE_EXT* = 0x00009050

-  GL_IMAGE_BUFFER_EXT* = 0x00009051

-  GL_IMAGE_1D_ARRAY_EXT* = 0x00009052

-  GL_IMAGE_2D_ARRAY_EXT* = 0x00009053

-  GL_IMAGE_CUBE_MAP_ARRAY_EXT* = 0x00009054

-  GL_IMAGE_2D_MULTISAMPLE_EXT* = 0x00009055

-  GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT* = 0x00009056

-  GL_INT_IMAGE_1D_EXT* = 0x00009057

-  GL_INT_IMAGE_2D_EXT* = 0x00009058

-  GL_INT_IMAGE_3D_EXT* = 0x00009059

-  GL_INT_IMAGE_2D_RECT_EXT* = 0x0000905A

-  GL_INT_IMAGE_CUBE_EXT* = 0x0000905B

-  GL_INT_IMAGE_BUFFER_EXT* = 0x0000905C

-  GL_INT_IMAGE_1D_ARRAY_EXT* = 0x0000905D

-  GL_INT_IMAGE_2D_ARRAY_EXT* = 0x0000905E

-  GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT* = 0x0000905F

-  GL_INT_IMAGE_2D_MULTISAMPLE_EXT* = 0x00009060

-  GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT* = 0x00009061

-  GL_UNSIGNED_INT_IMAGE_1D_EXT* = 0x00009062

-  GL_UNSIGNED_INT_IMAGE_2D_EXT* = 0x00009063

-  GL_UNSIGNED_INT_IMAGE_3D_EXT* = 0x00009064

-  GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT* = 0x00009065

-  GL_UNSIGNED_INT_IMAGE_CUBE_EXT* = 0x00009066

-  GL_UNSIGNED_INT_IMAGE_BUFFER_EXT* = 0x00009067

-  GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT* = 0x00009068

-  GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT* = 0x00009069

-  GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT* = 0x0000906A

-  GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT* = 0x0000906B

-  GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT* = 0x0000906C

-  GL_MAX_IMAGE_SAMPLES_EXT* = 0x0000906D

-  GL_IMAGE_BINDING_FORMAT_EXT* = 0x0000906E

-  GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT* = 0x00000001

-  GL_ELEMENT_ARRAY_BARRIER_BIT_EXT* = 0x00000002

-  GL_UNIFORM_BARRIER_BIT_EXT* = 0x00000004

-  GL_TEXTURE_FETCH_BARRIER_BIT_EXT* = 0x00000008

-  GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT* = 0x00000020

-  GL_COMMAND_BARRIER_BIT_EXT* = 0x00000040

-  GL_PIXEL_BUFFER_BARRIER_BIT_EXT* = 0x00000080

-  GL_TEXTURE_UPDATE_BARRIER_BIT_EXT* = 0x00000100

-  GL_BUFFER_UPDATE_BARRIER_BIT_EXT* = 0x00000200

-  GL_FRAMEBUFFER_BARRIER_BIT_EXT* = 0x00000400

-  GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT* = 0x00000800

-  GL_ATOMIC_COUNTER_BARRIER_BIT_EXT* = 0x00001000

-  GL_ALL_BARRIER_BITS_EXT* = 0xFFFFFFFF # GL_EXT_vertex_attrib_64bit

-                                        # reuse GL_DOUBLE 

-  GL_DOUBLE_VEC2_EXT* = 0x00008FFC

-  GL_DOUBLE_VEC3_EXT* = 0x00008FFD

-  GL_DOUBLE_VEC4_EXT* = 0x00008FFE

-  GL_DOUBLE_MAT2_EXT* = 0x00008F46

-  GL_DOUBLE_MAT3_EXT* = 0x00008F47

-  GL_DOUBLE_MAT4_EXT* = 0x00008F48

-  GL_DOUBLE_MAT2x3_EXT* = 0x00008F49

-  GL_DOUBLE_MAT2x4_EXT* = 0x00008F4A

-  GL_DOUBLE_MAT3x2_EXT* = 0x00008F4B

-  GL_DOUBLE_MAT3x4_EXT* = 0x00008F4C

-  GL_DOUBLE_MAT4x2_EXT* = 0x00008F4D

-  GL_DOUBLE_MAT4x3_EXT* = 0x00008F4E # GL_EXT_texture_sRGB_decode

-  GL_TEXTURE_SRGB_DECODE_EXT* = 0x00008A48

-  GL_DECODE_EXT* = 0x00008A49

-  GL_SKIP_DECODE_EXT* = 0x00008A4A # GL_NV_texture_multisample 

-  GL_TEXTURE_COVERAGE_SAMPLES_NV* = 0x00009045

-  GL_TEXTURE_COLOR_SAMPLES_NV* = 0x00009046 # GL_AMD_blend_minmax_factor

-  GL_FACTOR_MIN_AMD* = 0x0000901C

-  GL_FACTOR_MAX_AMD* = 0x0000901D # GL_AMD_sample_positions

-  GL_SUBSAMPLE_DISTANCE_AMD* = 0x0000883F # GL_EXT_x11_sync_object

-  GL_SYNC_X11_FENCE_EXT* = 0x000090E1 # GL_EXT_framebuffer_multisample_blit_scaled

-  GL_SCALED_RESOLVE_FASTEST_EXT* = 0x000090BA

-  GL_SCALED_RESOLVE_NICEST_EXT* = 0x000090BB # GL_FfdMaskSGIX

-  GL_TEXTURE_DEFORMATION_BIT_SGIX* = 0x00000001

-  GL_GEOMETRY_DEFORMATION_BIT_SGIX* = 0x00000002 # GL_HP_convolution_border_modes

-  GL_IGNORE_BORDER_HP* = 0x00008150

-  GL_CONSTANT_BORDER_HP* = 0x00008151

-  GL_REPLICATE_BORDER_HP* = 0x00008153

-  GL_CONVOLUTION_BORDER_COLOR_HP* = 0x00008154 # GL_HP_image_transform

-  GL_IMAGE_SCALE_X_HP* = 0x00008155

-  GL_IMAGE_SCALE_Y_HP* = 0x00008156

-  GL_IMAGE_TRANSLATE_X_HP* = 0x00008157

-  GL_IMAGE_TRANSLATE_Y_HP* = 0x00008158

-  GL_IMAGE_ROTATE_ANGLE_HP* = 0x00008159

-  GL_IMAGE_ROTATE_ORIGIN_X_HP* = 0x0000815A

-  GL_IMAGE_ROTATE_ORIGIN_Y_HP* = 0x0000815B

-  GL_IMAGE_MAG_FILTER_HP* = 0x0000815C

-  GL_IMAGE_MIN_FILTER_HP* = 0x0000815D

-  GL_IMAGE_CUBIC_WEIGHT_HP* = 0x0000815E

-  GL_CUBIC_HP* = 0x0000815F

-  GL_AVERAGE_HP* = 0x00008160

-  GL_IMAGE_TRANSFORM_2D_HP* = 0x00008161

-  GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP* = 0x00008162

-  GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP* = 0x00008163 # 

-                                                             # GL_HP_occlusion_test

-  GL_OCCLUSION_TEST_HP* = 0x00008165

-  GL_OCCLUSION_TEST_RESULT_HP* = 0x00008166 # GL_HP_texture_lighting

-  GL_TEXTURE_LIGHTING_MODE_HP* = 0x00008167

-  GL_TEXTURE_POST_SPECULAR_HP* = 0x00008168

-  GL_TEXTURE_PRE_SPECULAR_HP* = 0x00008169 # GL_IBM_cull_vertex

-  GL_CULL_VERTEX_IBM* = 103050 # GL_IBM_rasterpos_clip

-  GL_RASTER_POSITION_UNCLIPPED_IBM* = 0x00019262 # GL_IBM_texture_mirrored_repeat

-  GL_MIRRORED_REPEAT_IBM* = 0x00008370 # GL_IBM_vertex_array_lists

-  GL_VERTEX_ARRAY_LIST_IBM* = 103070

-  GL_NORMAL_ARRAY_LIST_IBM* = 103071

-  GL_COLOR_ARRAY_LIST_IBM* = 103072

-  GL_INDEX_ARRAY_LIST_IBM* = 103073

-  GL_TEXTURE_COORD_ARRAY_LIST_IBM* = 103074

-  GL_EDGE_FLAG_ARRAY_LIST_IBM* = 103075

-  GL_FOG_COORDINATE_ARRAY_LIST_IBM* = 103076

-  GL_SECONDARY_COLOR_ARRAY_LIST_IBM* = 103077

-  GL_VERTEX_ARRAY_LIST_STRIDE_IBM* = 103080

-  GL_NORMAL_ARRAY_LIST_STRIDE_IBM* = 103081

-  GL_COLOR_ARRAY_LIST_STRIDE_IBM* = 103082

-  GL_INDEX_ARRAY_LIST_STRIDE_IBM* = 103083

-  GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM* = 103084

-  GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM* = 103085

-  GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM* = 103086

-  GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM* = 103087 # GL_INGR_color_clamp

-  GL_RED_MIN_CLAMP_INGR* = 0x00008560

-  GL_GREEN_MIN_CLAMP_INGR* = 0x00008561

-  GL_BLUE_MIN_CLAMP_INGR* = 0x00008562

-  GL_ALPHA_MIN_CLAMP_INGR* = 0x00008563

-  GL_RED_MAX_CLAMP_INGR* = 0x00008564

-  GL_GREEN_MAX_CLAMP_INGR* = 0x00008565

-  GL_BLUE_MAX_CLAMP_INGR* = 0x00008566

-  GL_ALPHA_MAX_CLAMP_INGR* = 0x00008567 # GL_INGR_interlace_read

-  GL_INTERLACE_READ_INGR* = 0x00008568 # GL_INTEL_parallel_arrays

-  GL_PARALLEL_ARRAYS_INTEL* = 0x000083F4

-  GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL* = 0x000083F5

-  GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL* = 0x000083F6

-  GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL* = 0x000083F7

-  GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL* = 0x000083F8 # 

-                                                               # GL_NV_copy_depth_to_color

-  GL_DEPTH_STENCIL_TO_RGBA_NV* = 0x0000886E

-  GL_DEPTH_STENCIL_TO_BGRA_NV* = 0x0000886F # GL_NV_depth_clamp

-  GL_DEPTH_CLAMP_NV* = 0x0000864F # GL_NV_evaluators

-  GL_EVAL_2D_NV* = 0x000086C0

-  GL_EVAL_TRIANGULAR_2D_NV* = 0x000086C1

-  GL_MAP_TESSELLATION_NV* = 0x000086C2

-  GL_MAP_ATTRIB_U_ORDER_NV* = 0x000086C3

-  GL_MAP_ATTRIB_V_ORDER_NV* = 0x000086C4

-  GL_EVAL_FRACTIONAL_TESSELLATION_NV* = 0x000086C5

-  GL_EVAL_VERTEX_ATTRIB0_NV* = 0x000086C6

-  GL_EVAL_VERTEX_ATTRIB1_NV* = 0x000086C7

-  GL_EVAL_VERTEX_ATTRIB2_NV* = 0x000086C8

-  GL_EVAL_VERTEX_ATTRIB3_NV* = 0x000086C9

-  GL_EVAL_VERTEX_ATTRIB4_NV* = 0x000086CA

-  GL_EVAL_VERTEX_ATTRIB5_NV* = 0x000086CB

-  GL_EVAL_VERTEX_ATTRIB6_NV* = 0x000086CC

-  GL_EVAL_VERTEX_ATTRIB7_NV* = 0x000086CD

-  GL_EVAL_VERTEX_ATTRIB8_NV* = 0x000086CE

-  GL_EVAL_VERTEX_ATTRIB9_NV* = 0x000086CF

-  GL_EVAL_VERTEX_ATTRIB10_NV* = 0x000086D0

-  GL_EVAL_VERTEX_ATTRIB11_NV* = 0x000086D1

-  GL_EVAL_VERTEX_ATTRIB12_NV* = 0x000086D2

-  GL_EVAL_VERTEX_ATTRIB13_NV* = 0x000086D3

-  GL_EVAL_VERTEX_ATTRIB14_NV* = 0x000086D4

-  GL_EVAL_VERTEX_ATTRIB15_NV* = 0x000086D5

-  GL_MAX_MAP_TESSELLATION_NV* = 0x000086D6

-  GL_MAX_RATIONAL_EVAL_ORDER_NV* = 0x000086D7 # GL_NV_fence

-  GL_ALL_COMPLETED_NV* = 0x000084F2

-  GL_FENCE_STATUS_NV* = 0x000084F3

-  GL_FENCE_CONDITION_NV* = 0x000084F4 # GL_NV_float_buffer

-  GL_FLOAT_R_NV* = 0x00008880

-  GL_FLOAT_RG_NV* = 0x00008881

-  GL_FLOAT_RGB_NV* = 0x00008882

-  GL_FLOAT_RGBA_NV* = 0x00008883

-  GL_FLOAT_R16_NV* = 0x00008884

-  GL_FLOAT_R32_NV* = 0x00008885

-  GL_FLOAT_RG16_NV* = 0x00008886

-  GL_FLOAT_RG32_NV* = 0x00008887

-  GL_FLOAT_RGB16_NV* = 0x00008888

-  GL_FLOAT_RGB32_NV* = 0x00008889

-  GL_FLOAT_RGBA16_NV* = 0x0000888A

-  GL_FLOAT_RGBA32_NV* = 0x0000888B

-  GL_TEXTURE_FLOAT_COMPONENTS_NV* = 0x0000888C

-  GL_FLOAT_CLEAR_COLOR_VALUE_NV* = 0x0000888D

-  GL_FLOAT_RGBA_MODE_NV* = 0x0000888E # GL_NV_fog_distance

-  GL_FOG_DISTANCE_MODE_NV* = 0x0000855A

-  GL_EYE_RADIAL_NV* = 0x0000855B

-  GL_EYE_PLANE_ABSOLUTE_NV* = 0x0000855C # GL_NV_fragment_program

-  GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV* = 0x00008868

-  GL_FRAGMENT_PROGRAM_NV* = 0x00008870

-  GL_MAX_TEXTURE_COORDS_NV* = 0x00008871

-  GL_MAX_TEXTURE_IMAGE_UNITS_NV* = 0x00008872

-  GL_FRAGMENT_PROGRAM_BINDING_NV* = 0x00008873

-  GL_PROGRAM_ERROR_STRING_NV* = 0x00008874 # GL_NV_half_float

-  GL_HALF_FLOAT_NV* = 0x0000140B # GL_NV_light_max_exponent

-  GL_MAX_SHININESS_NV* = 0x00008504

-  GL_MAX_SPOT_EXPONENT_NV* = 0x00008505 # GL_NV_multisample_filter_hint

-  GL_MULTISAMPLE_FILTER_HINT_NV* = 0x00008534 # GL_NV_occlusion_query

-  GL_PIXEL_COUNTER_BITS_NV* = 0x00008864

-  GL_CURRENT_OCCLUSION_QUERY_ID_NV* = 0x00008865

-  GL_PIXEL_COUNT_NV* = 0x00008866

-  GL_PIXEL_COUNT_AVAILABLE_NV* = 0x00008867 # GL_NV_packed_depth_stencil

-  GL_DEPTH_STENCIL_NV* = 0x000084F9

-  GL_UNSIGNED_INT_24_8_NV* = 0x000084FA # GL_NV_pixel_data_range

-  GL_WRITE_PIXEL_DATA_RANGE_NV* = 0x00008878

-  GL_READ_PIXEL_DATA_RANGE_NV* = 0x00008879

-  GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV* = 0x0000887A

-  GL_READ_PIXEL_DATA_RANGE_LENGTH_NV* = 0x0000887B

-  GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV* = 0x0000887C

-  GL_READ_PIXEL_DATA_RANGE_POINTER_NV* = 0x0000887D # GL_NV_point_sprite

-  GL_POINT_SPRITE_NV* = 0x00008861

-  GL_COORD_REPLACE_NV* = 0x00008862

-  GL_POINT_SPRITE_R_MODE_NV* = 0x00008863 # GL_NV_primitive_restart

-  cGL_PRIMITIVE_RESTART_NV* = 0x00008558

-  cGL_PRIMITIVE_RESTART_INDEX_NV* = 0x00008559 # GL_NV_register_combiners

-  GL_REGISTER_COMBINERS_NV* = 0x00008522

-  GL_VARIABLE_A_NV* = 0x00008523

-  GL_VARIABLE_B_NV* = 0x00008524

-  GL_VARIABLE_C_NV* = 0x00008525

-  GL_VARIABLE_D_NV* = 0x00008526

-  GL_VARIABLE_E_NV* = 0x00008527

-  GL_VARIABLE_F_NV* = 0x00008528

-  GL_VARIABLE_G_NV* = 0x00008529

-  GL_CONSTANT_COLOR0_NV* = 0x0000852A

-  GL_CONSTANT_COLOR1_NV* = 0x0000852B

-  GL_PRIMARY_COLOR_NV* = 0x0000852C

-  GL_SECONDARY_COLOR_NV* = 0x0000852D

-  GL_SPARE0_NV* = 0x0000852E

-  GL_SPARE1_NV* = 0x0000852F

-  GL_DISCARD_NV* = 0x00008530

-  GL_E_TIMES_F_NV* = 0x00008531

-  GL_SPARE0_PLUS_SECONDARY_COLOR_NV* = 0x00008532

-  GL_UNSIGNED_IDENTITY_NV* = 0x00008536

-  GL_UNSIGNED_INVERT_NV* = 0x00008537

-  GL_EXPAND_NORMAL_NV* = 0x00008538

-  GL_EXPAND_NEGATE_NV* = 0x00008539

-  GL_HALF_BIAS_NORMAL_NV* = 0x0000853A

-  GL_HALF_BIAS_NEGATE_NV* = 0x0000853B

-  GL_SIGNED_IDENTITY_NV* = 0x0000853C

-  GL_SIGNED_NEGATE_NV* = 0x0000853D

-  GL_SCALE_BY_TWO_NV* = 0x0000853E

-  GL_SCALE_BY_FOUR_NV* = 0x0000853F

-  GL_SCALE_BY_ONE_HALF_NV* = 0x00008540

-  GL_BIAS_BY_NEGATIVE_ONE_HALF_NV* = 0x00008541

-  cGL_COMBINER_INPUT_NV* = 0x00008542

-  GL_COMBINER_MAPPING_NV* = 0x00008543

-  GL_COMBINER_COMPONENT_USAGE_NV* = 0x00008544

-  GL_COMBINER_AB_DOT_PRODUCT_NV* = 0x00008545

-  GL_COMBINER_CD_DOT_PRODUCT_NV* = 0x00008546

-  GL_COMBINER_MUX_SUM_NV* = 0x00008547

-  GL_COMBINER_SCALE_NV* = 0x00008548

-  GL_COMBINER_BIAS_NV* = 0x00008549

-  GL_COMBINER_AB_OUTPUT_NV* = 0x0000854A

-  GL_COMBINER_CD_OUTPUT_NV* = 0x0000854B

-  GL_COMBINER_SUM_OUTPUT_NV* = 0x0000854C

-  GL_MAX_GENERAL_COMBINERS_NV* = 0x0000854D

-  GL_NUM_GENERAL_COMBINERS_NV* = 0x0000854E

-  GL_COLOR_SUM_CLAMP_NV* = 0x0000854F

-  GL_COMBINER0_NV* = 0x00008550

-  GL_COMBINER1_NV* = 0x00008551

-  GL_COMBINER2_NV* = 0x00008552

-  GL_COMBINER3_NV* = 0x00008553

-  GL_COMBINER4_NV* = 0x00008554

-  GL_COMBINER5_NV* = 0x00008555

-  GL_COMBINER6_NV* = 0x00008556

-  GL_COMBINER7_NV* = 0x00008557 # GL_NV_register_combiners2

-  GL_PER_STAGE_CONSTANTS_NV* = 0x00008535 # GL_NV_texgen_emboss

-  GL_EMBOSS_LIGHT_NV* = 0x0000855D

-  GL_EMBOSS_CONSTANT_NV* = 0x0000855E

-  GL_EMBOSS_MAP_NV* = 0x0000855F # GL_NV_texgen_reflection

-  GL_NORMAL_MAP_NV* = 0x00008511

-  GL_REFLECTION_MAP_NV* = 0x00008512 # GL_NV_texture_env_combine4

-  GL_COMBINE4_NV* = 0x00008503

-  GL_SOURCE3_RGB_NV* = 0x00008583

-  GL_SOURCE3_ALPHA_NV* = 0x0000858B

-  GL_OPERAND3_RGB_NV* = 0x00008593

-  GL_OPERAND3_ALPHA_NV* = 0x0000859B # GL_NV_texture_expand_normal

-  GL_TEXTURE_UNSIGNED_REMAP_MODE_NV* = 0x0000888F # GL_NV_texture_rectangle

-  GL_TEXTURE_RECTANGLE_NV* = 0x000084F5

-  GL_TEXTURE_BINDING_RECTANGLE_NV* = 0x000084F6

-  GL_PROXY_TEXTURE_RECTANGLE_NV* = 0x000084F7

-  GL_MAX_RECTANGLE_TEXTURE_SIZE_NV* = 0x000084F8 # GL_NV_texture_shader

-  GL_OFFSET_TEXTURE_RECTANGLE_NV* = 0x0000864C

-  GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV* = 0x0000864D

-  GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV* = 0x0000864E

-  GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV* = 0x000086D9

-  GL_UNSIGNED_INT_S8_S8_8_8_NV* = 0x000086DA

-  GL_UNSIGNED_INT_8_8_S8_S8_REV_NV* = 0x000086DB

-  GL_DSDT_MAG_INTENSITY_NV* = 0x000086DC

-  GL_SHADER_CONSISTENT_NV* = 0x000086DD

-  GL_TEXTURE_SHADER_NV* = 0x000086DE

-  GL_SHADER_OPERATION_NV* = 0x000086DF

-  GL_CULL_MODES_NV* = 0x000086E0

-  GL_OFFSET_TEXTURE_MATRIX_NV* = 0x000086E1

-  GL_OFFSET_TEXTURE_SCALE_NV* = 0x000086E2

-  GL_OFFSET_TEXTURE_BIAS_NV* = 0x000086E3

-  GL_OFFSET_TEXTURE_2D_MATRIX_NV* = GL_OFFSET_TEXTURE_MATRIX_NV

-  GL_OFFSET_TEXTURE_2D_SCALE_NV* = GL_OFFSET_TEXTURE_SCALE_NV

-  GL_OFFSET_TEXTURE_2D_BIAS_NV* = GL_OFFSET_TEXTURE_BIAS_NV

-  GL_PREVIOUS_TEXTURE_INPUT_NV* = 0x000086E4

-  GL_CONST_EYE_NV* = 0x000086E5

-  GL_PASS_THROUGH_NV* = 0x000086E6

-  GL_CULL_FRAGMENT_NV* = 0x000086E7

-  GL_OFFSET_TEXTURE_2D_NV* = 0x000086E8

-  GL_DEPENDENT_AR_TEXTURE_2D_NV* = 0x000086E9

-  GL_DEPENDENT_GB_TEXTURE_2D_NV* = 0x000086EA

-  GL_DOT_PRODUCT_NV* = 0x000086EC

-  GL_DOT_PRODUCT_DEPTH_REPLACE_NV* = 0x000086ED

-  GL_DOT_PRODUCT_TEXTURE_2D_NV* = 0x000086EE

-  GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV* = 0x000086F0

-  GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV* = 0x000086F1

-  GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV* = 0x000086F2

-  GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV* = 0x000086F3

-  GL_HILO_NV* = 0x000086F4

-  GL_DSDT_NV* = 0x000086F5

-  GL_DSDT_MAG_NV* = 0x000086F6

-  GL_DSDT_MAG_VIB_NV* = 0x000086F7

-  GL_HILO16_NV* = 0x000086F8

-  GL_SIGNED_HILO_NV* = 0x000086F9

-  GL_SIGNED_HILO16_NV* = 0x000086FA

-  GL_SIGNED_RGBA_NV* = 0x000086FB

-  GL_SIGNED_RGBA8_NV* = 0x000086FC

-  GL_SIGNED_RGB_NV* = 0x000086FE

-  GL_SIGNED_RGB8_NV* = 0x000086FF

-  GL_SIGNED_LUMINANCE_NV* = 0x00008701

-  GL_SIGNED_LUMINANCE8_NV* = 0x00008702

-  GL_SIGNED_LUMINANCE_ALPHA_NV* = 0x00008703

-  GL_SIGNED_LUMINANCE8_ALPHA8_NV* = 0x00008704

-  GL_SIGNED_ALPHA_NV* = 0x00008705

-  GL_SIGNED_ALPHA8_NV* = 0x00008706

-  GL_SIGNED_INTENSITY_NV* = 0x00008707

-  GL_SIGNED_INTENSITY8_NV* = 0x00008708

-  GL_DSDT8_NV* = 0x00008709

-  GL_DSDT8_MAG8_NV* = 0x0000870A

-  GL_DSDT8_MAG8_INTENSITY8_NV* = 0x0000870B

-  GL_SIGNED_RGB_UNSIGNED_ALPHA_NV* = 0x0000870C

-  GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV* = 0x0000870D

-  GL_HI_SCALE_NV* = 0x0000870E

-  GL_LO_SCALE_NV* = 0x0000870F

-  GL_DS_SCALE_NV* = 0x00008710

-  GL_DT_SCALE_NV* = 0x00008711

-  GL_MAGNITUDE_SCALE_NV* = 0x00008712

-  GL_VIBRANCE_SCALE_NV* = 0x00008713

-  GL_HI_BIAS_NV* = 0x00008714

-  GL_LO_BIAS_NV* = 0x00008715

-  GL_DS_BIAS_NV* = 0x00008716

-  GL_DT_BIAS_NV* = 0x00008717

-  GL_MAGNITUDE_BIAS_NV* = 0x00008718

-  GL_VIBRANCE_BIAS_NV* = 0x00008719

-  GL_TEXTURE_BORDER_VALUES_NV* = 0x0000871A

-  GL_TEXTURE_HI_SIZE_NV* = 0x0000871B

-  GL_TEXTURE_LO_SIZE_NV* = 0x0000871C

-  GL_TEXTURE_DS_SIZE_NV* = 0x0000871D

-  GL_TEXTURE_DT_SIZE_NV* = 0x0000871E

-  GL_TEXTURE_MAG_SIZE_NV* = 0x0000871F # GL_NV_texture_shader2

-  GL_DOT_PRODUCT_TEXTURE_3D_NV* = 0x000086EF # GL_NV_texture_shader3

-  GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV* = 0x00008850

-  GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV* = 0x00008851

-  GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV* = 0x00008852

-  GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV* = 0x00008853

-  GL_OFFSET_HILO_TEXTURE_2D_NV* = 0x00008854

-  GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV* = 0x00008855

-  GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV* = 0x00008856

-  GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV* = 0x00008857

-  GL_DEPENDENT_HILO_TEXTURE_2D_NV* = 0x00008858

-  GL_DEPENDENT_RGB_TEXTURE_3D_NV* = 0x00008859

-  GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV* = 0x0000885A

-  GL_DOT_PRODUCT_PASS_THROUGH_NV* = 0x0000885B

-  GL_DOT_PRODUCT_TEXTURE_1D_NV* = 0x0000885C

-  GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV* = 0x0000885D

-  GL_HILO8_NV* = 0x0000885E

-  GL_SIGNED_HILO8_NV* = 0x0000885F

-  GL_FORCE_BLUE_TO_ONE_NV* = 0x00008860 # GL_NV_vertex_array_range

-  cGL_VERTEX_ARRAY_RANGE_NV* = 0x0000851D

-  GL_VERTEX_ARRAY_RANGE_LENGTH_NV* = 0x0000851E

-  GL_VERTEX_ARRAY_RANGE_VALID_NV* = 0x0000851F

-  GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV* = 0x00008520

-  GL_VERTEX_ARRAY_RANGE_POINTER_NV* = 0x00008521 # GL_NV_vertex_array_range2

-  GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV* = 0x00008533 # GL_NV_vertex_program

-  GL_VERTEX_PROGRAM_NV* = 0x00008620

-  GL_VERTEX_STATE_PROGRAM_NV* = 0x00008621

-  GL_ATTRIB_ARRAY_SIZE_NV* = 0x00008623

-  GL_ATTRIB_ARRAY_STRIDE_NV* = 0x00008624

-  GL_ATTRIB_ARRAYtyp_NV* = 0x00008625

-  GL_CURRENT_ATTRIB_NV* = 0x00008626

-  GL_PROGRAM_LENGTH_NV* = 0x00008627

-  GL_PROGRAM_STRING_NV* = 0x00008628

-  GL_MODELVIEW_PROJECTION_NV* = 0x00008629

-  GL_IDENTITY_NV* = 0x0000862A

-  GL_INVERSE_NV* = 0x0000862B

-  GL_TRANSPOSE_NV* = 0x0000862C

-  GL_INVERSE_TRANSPOSE_NV* = 0x0000862D

-  GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV* = 0x0000862E

-  GL_MAX_TRACK_MATRICES_NV* = 0x0000862F

-  GL_MATRIX0_NV* = 0x00008630

-  GL_MATRIX1_NV* = 0x00008631

-  GL_MATRIX2_NV* = 0x00008632

-  GL_MATRIX3_NV* = 0x00008633

-  GL_MATRIX4_NV* = 0x00008634

-  GL_MATRIX5_NV* = 0x00008635

-  GL_MATRIX6_NV* = 0x00008636

-  GL_MATRIX7_NV* = 0x00008637

-  GL_CURRENT_MATRIX_STACK_DEPTH_NV* = 0x00008640

-  GL_CURRENT_MATRIX_NV* = 0x00008641

-  GL_VERTEX_PROGRAM_POINT_SIZE_NV* = 0x00008642

-  GL_VERTEX_PROGRAM_TWO_SIDE_NV* = 0x00008643

-  GL_PROGRAM_PARAMETER_NV* = 0x00008644

-  GL_ATTRIB_ARRAY_POINTER_NV* = 0x00008645

-  GL_PROGRAM_TARGET_NV* = 0x00008646

-  GL_PROGRAM_RESIDENT_NV* = 0x00008647

-  cGL_TRACK_MATRIX_NV* = 0x00008648

-  GL_TRACK_MATRIX_TRANSFORM_NV* = 0x00008649

-  GL_VERTEX_PROGRAM_BINDING_NV* = 0x0000864A

-  GL_PROGRAM_ERROR_POSITION_NV* = 0x0000864B

-  GL_VERTEX_ATTRIB_ARRAY0_NV* = 0x00008650

-  GL_VERTEX_ATTRIB_ARRAY1_NV* = 0x00008651

-  GL_VERTEX_ATTRIB_ARRAY2_NV* = 0x00008652

-  GL_VERTEX_ATTRIB_ARRAY3_NV* = 0x00008653

-  GL_VERTEX_ATTRIB_ARRAY4_NV* = 0x00008654

-  GL_VERTEX_ATTRIB_ARRAY5_NV* = 0x00008655

-  GL_VERTEX_ATTRIB_ARRAY6_NV* = 0x00008656

-  GL_VERTEX_ATTRIB_ARRAY7_NV* = 0x00008657

-  GL_VERTEX_ATTRIB_ARRAY8_NV* = 0x00008658

-  GL_VERTEX_ATTRIB_ARRAY9_NV* = 0x00008659

-  GL_VERTEX_ATTRIB_ARRAY10_NV* = 0x0000865A

-  GL_VERTEX_ATTRIB_ARRAY11_NV* = 0x0000865B

-  GL_VERTEX_ATTRIB_ARRAY12_NV* = 0x0000865C

-  GL_VERTEX_ATTRIB_ARRAY13_NV* = 0x0000865D

-  GL_VERTEX_ATTRIB_ARRAY14_NV* = 0x0000865E

-  GL_VERTEX_ATTRIB_ARRAY15_NV* = 0x0000865F

-  GL_MAP1_VERTEX_ATTRIB0_4_NV* = 0x00008660

-  GL_MAP1_VERTEX_ATTRIB1_4_NV* = 0x00008661

-  GL_MAP1_VERTEX_ATTRIB2_4_NV* = 0x00008662

-  GL_MAP1_VERTEX_ATTRIB3_4_NV* = 0x00008663

-  GL_MAP1_VERTEX_ATTRIB4_4_NV* = 0x00008664

-  GL_MAP1_VERTEX_ATTRIB5_4_NV* = 0x00008665

-  GL_MAP1_VERTEX_ATTRIB6_4_NV* = 0x00008666

-  GL_MAP1_VERTEX_ATTRIB7_4_NV* = 0x00008667

-  GL_MAP1_VERTEX_ATTRIB8_4_NV* = 0x00008668

-  GL_MAP1_VERTEX_ATTRIB9_4_NV* = 0x00008669

-  GL_MAP1_VERTEX_ATTRIB10_4_NV* = 0x0000866A

-  GL_MAP1_VERTEX_ATTRIB11_4_NV* = 0x0000866B

-  GL_MAP1_VERTEX_ATTRIB12_4_NV* = 0x0000866C

-  GL_MAP1_VERTEX_ATTRIB13_4_NV* = 0x0000866D

-  GL_MAP1_VERTEX_ATTRIB14_4_NV* = 0x0000866E

-  GL_MAP1_VERTEX_ATTRIB15_4_NV* = 0x0000866F

-  GL_MAP2_VERTEX_ATTRIB0_4_NV* = 0x00008670

-  GL_MAP2_VERTEX_ATTRIB1_4_NV* = 0x00008671

-  GL_MAP2_VERTEX_ATTRIB2_4_NV* = 0x00008672

-  GL_MAP2_VERTEX_ATTRIB3_4_NV* = 0x00008673

-  GL_MAP2_VERTEX_ATTRIB4_4_NV* = 0x00008674

-  GL_MAP2_VERTEX_ATTRIB5_4_NV* = 0x00008675

-  GL_MAP2_VERTEX_ATTRIB6_4_NV* = 0x00008676

-  GL_MAP2_VERTEX_ATTRIB7_4_NV* = 0x00008677

-  GL_MAP2_VERTEX_ATTRIB8_4_NV* = 0x00008678

-  GL_MAP2_VERTEX_ATTRIB9_4_NV* = 0x00008679

-  GL_MAP2_VERTEX_ATTRIB10_4_NV* = 0x0000867A

-  GL_MAP2_VERTEX_ATTRIB11_4_NV* = 0x0000867B

-  GL_MAP2_VERTEX_ATTRIB12_4_NV* = 0x0000867C

-  GL_MAP2_VERTEX_ATTRIB13_4_NV* = 0x0000867D

-  GL_MAP2_VERTEX_ATTRIB14_4_NV* = 0x0000867E

-  GL_MAP2_VERTEX_ATTRIB15_4_NV* = 0x0000867F # GL_NV_fragment_program2 and GL_NV_vertex_program2_option

-  GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV* = 0x000088F4

-  GL_MAX_PROGRAM_CALL_DEPTH_NV* = 0x000088F5 # GL_NV_fragment_program2

-  GL_MAX_PROGRAM_IF_DEPTH_NV* = 0x000088F6

-  GL_MAX_PROGRAM_LOOP_DEPTH_NV* = 0x000088F7

-  GL_MAX_PROGRAM_LOOP_COUNT_NV* = 0x000088F8 # GL_NV_vertex_program3

-  MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB* = 0x00008B4C # GL_NV_depth_buffer_float

-  GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV* = 0x00008DAD

-  GL_DEPTH_BUFFER_FLOAT_MODE_NV* = 0x00008DAF # 

-                                              # GL_NV_framebuffer_multisample_coverage

-  GL_RENDERBUFFER_COVERAGE_SAMPLES_NV* = 0x00008CAB

-  GL_RENDERBUFFER_COLOR_SAMPLES_NV* = 0x00008E10 # GL_NV_geometry_program4

-  GL_GEOMETRY_PROGRAM_NV* = 0x00008C26

-  GL_MAX_PROGRAM_OUTPUT_VERTICES_NV* = 0x00008C27

-  GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV* = 0x00008C28 # GL_NV_gpu_program4

-  GL_PROGRAM_ATTRIB_COMPONENTS_NV* = 0x00008906

-  GL_PROGRAM_RESULT_COMPONENTS_NV* = 0x00008907

-  GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV* = 0x00008908

-  GL_MAX_PROGRAM_RESULT_COMPONENTS_NV* = 0x00008909

-  GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV* = 0x00008DA5

-  GL_MAX_PROGRAM_GENERIC_RESULTS_NV* = 0x00008DA6 # GL_NV_parameter_buffer_object

-  GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV* = 0x00008DA0

-  GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV* = 0x00008DA1

-  GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV* = 0x00008DA2

-  GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV* = 0x00008DA3

-  GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV* = 0x00008DA4 # GL_NV_transform_feedback

-  GL_TRANSFORM_FEEDBACK_BUFFER_NV* = 0x00008C8E

-  GL_TRANSFORM_FEEDBACK_BUFFER_START_NV* = 0x00008C84

-  GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV* = 0x00008C85

-  GL_TRANSFORM_FEEDBACK_RECORD_NV* = 0x00008C86

-  GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV* = 0x00008C8F

-  GL_INTERLEAVED_ATTRIBS_NV* = 0x00008C8C

-  GL_SEPARATE_ATTRIBS_NV* = 0x00008C8D

-  GL_PRIMITIVES_GENERATED_NV* = 0x00008C87

-  GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV* = 0x00008C88

-  GL_RASTERIZER_DISCARD_NV* = 0x00008C89

-  GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV* = 0x00008C8A

-  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV* = 0x00008C8B

-  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV* = 0x00008C80

-  cGL_TRANSFORM_FEEDBACK_ATTRIBS_NV* = 0x00008C7E

-  GL_ACTIVE_VARYINGS_NV* = 0x00008C81

-  GL_ACTIVE_VARYING_MAX_LENGTH_NV* = 0x00008C82

-  cGL_TRANSFORM_FEEDBACK_VARYINGS_NV* = 0x00008C83

-  GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV* = 0x00008C7F

-  GL_BACK_PRIMARY_COLOR_NV* = 0x00008C77

-  GL_BACK_SECONDARY_COLOR_NV* = 0x00008C78

-  GL_TEXTURE_COORD_NV* = 0x00008C79

-  GL_CLIP_DISTANCE_NV* = 0x00008C7A

-  GL_VERTEX_ID_NV* = 0x00008C7B

-  GL_PRIMITIVE_ID_NV* = 0x00008C7C

-  GL_GENERIC_ATTRIB_NV* = 0x00008C7D

-  GL_LAYER_NV* = 0x00008DAA

-  GL_NEXT_BUFFER_NV* = - 2

-  GL_SKIP_COMPONENTS4_NV* = - 3

-  GL_SKIP_COMPONENTS3_NV* = - 4

-  GL_SKIP_COMPONENTS2_NV* = - 5

-  GL_SKIP_COMPONENTS1_NV* = - 6 # GL_NV_conditional_render

-  GL_QUERY_WAIT_NV* = 0x00008E13

-  GL_QUERY_NO_WAIT_NV* = 0x00008E14

-  GL_QUERY_BY_REGION_WAIT_NV* = 0x00008E15

-  GL_QUERY_BY_REGION_NO_WAIT_NV* = 0x00008E16 # GL_NV_present_video

-  GL_FRAME_NV* = 0x00008E26

-  GL_FIELDS_NV* = 0x00008E27

-  GL_CURRENT_TIME_NV* = 0x00008E28

-  GL_NUM_FILL_STREAMS_NV* = 0x00008E29

-  GL_PRESENT_TIME_NV* = 0x00008E2A

-  GL_PRESENT_DURATION_NV* = 0x00008E2B # GL_NV_explicit_multisample

-  GL_SAMPLE_POSITION_NV* = 0x00008E50

-  GL_SAMPLE_MASK_NV* = 0x00008E51

-  GL_SAMPLE_MASK_VALUE_NV* = 0x00008E52

-  GL_TEXTURE_BINDING_RENDERBUFFER_NV* = 0x00008E53

-  GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV* = 0x00008E54

-  GL_TEXTURE_RENDERBUFFER_NV* = 0x00008E55

-  GL_SAMPLER_RENDERBUFFER_NV* = 0x00008E56

-  GL_INT_SAMPLER_RENDERBUFFER_NV* = 0x00008E57

-  GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV* = 0x00008E58

-  GL_MAX_SAMPLE_MASK_WORDS_NV* = 0x00008E59 # GL_NV_transform_feedback2

-  GL_TRANSFORM_FEEDBACK_NV* = 0x00008E22

-  GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV* = 0x00008E23

-  GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV* = 0x00008E24

-  GL_TRANSFORM_FEEDBACK_BINDING_NV* = 0x00008E25 # GL_NV_video_capture

-  GL_VIDEO_BUFFER_NV* = 0x00009020

-  GL_VIDEO_BUFFER_BINDING_NV* = 0x00009021

-  GL_FIELD_UPPER_NV* = 0x00009022

-  GL_FIELD_LOWER_NV* = 0x00009023

-  GL_NUM_VIDEO_CAPTURE_STREAMS_NV* = 0x00009024

-  GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV* = 0x00009025

-  GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV* = 0x00009026

-  GL_LAST_VIDEO_CAPTURE_STATUS_NV* = 0x00009027

-  GL_VIDEO_BUFFER_PITCH_NV* = 0x00009028

-  GL_VIDEO_COLOR_CONVERSION_MATRIX_NV* = 0x00009029

-  GL_VIDEO_COLOR_CONVERSION_MAX_NV* = 0x0000902A

-  GL_VIDEO_COLOR_CONVERSION_MIN_NV* = 0x0000902B

-  GL_VIDEO_COLOR_CONVERSION_OFFSET_NV* = 0x0000902C

-  GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV* = 0x0000902D

-  GL_PARTIAL_SUCCESS_NV* = 0x0000902E

-  GL_SUCCESS_NV* = 0x0000902F

-  GL_FAILURE_NV* = 0x00009030

-  GL_YCBYCR8_422_NV* = 0x00009031

-  GL_YCBAYCR8A_4224_NV* = 0x00009032

-  GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV* = 0x00009033

-  GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV* = 0x00009034

-  GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV* = 0x00009035

-  GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV* = 0x00009036

-  GL_Z4Y12Z4CB12Z4CR12_444_NV* = 0x00009037

-  GL_VIDEO_CAPTURE_FRAME_WIDTH_NV* = 0x00009038

-  GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV* = 0x00009039

-  GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV* = 0x0000903A

-  GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV* = 0x0000903B

-  GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV* = 0x0000903C # GL_NV_shader_buffer_load

-  GL_BUFFER_GPU_ADDRESS_NV* = 0x00008F1D

-  GL_GPU_ADDRESS_NV* = 0x00008F34

-  GL_MAX_SHADER_BUFFER_ADDRESS_NV* = 0x00008F35 # 

-                                                # GL_NV_vertex_buffer_unified_memory

-  GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV* = 0x00008F1E

-  GL_ELEMENT_ARRAY_UNIFIED_NV* = 0x00008F1F

-  GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV* = 0x00008F20

-  GL_VERTEX_ARRAY_ADDRESS_NV* = 0x00008F21

-  GL_NORMAL_ARRAY_ADDRESS_NV* = 0x00008F22

-  GL_COLOR_ARRAY_ADDRESS_NV* = 0x00008F23

-  GL_INDEX_ARRAY_ADDRESS_NV* = 0x00008F24

-  GL_TEXTURE_COORD_ARRAY_ADDRESS_NV* = 0x00008F25

-  GL_EDGE_FLAG_ARRAY_ADDRESS_NV* = 0x00008F26

-  GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV* = 0x00008F27

-  GL_FOG_COORD_ARRAY_ADDRESS_NV* = 0x00008F28

-  GL_ELEMENT_ARRAY_ADDRESS_NV* = 0x00008F29

-  GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV* = 0x00008F2A

-  GL_VERTEX_ARRAY_LENGTH_NV* = 0x00008F2B

-  GL_NORMAL_ARRAY_LENGTH_NV* = 0x00008F2C

-  GL_COLOR_ARRAY_LENGTH_NV* = 0x00008F2D

-  GL_INDEX_ARRAY_LENGTH_NV* = 0x00008F2E

-  GL_TEXTURE_COORD_ARRAY_LENGTH_NV* = 0x00008F2F

-  GL_EDGE_FLAG_ARRAY_LENGTH_NV* = 0x00008F30

-  GL_SECONDARY_COLOR_ARRAY_LENGTH_NV* = 0x00008F31

-  GL_FOG_COORD_ARRAY_LENGTH_NV* = 0x00008F32

-  GL_ELEMENT_ARRAY_LENGTH_NV* = 0x00008F33

-  GL_DRAW_INDIRECT_UNIFIED_NV* = 0x00008F40

-  GL_DRAW_INDIRECT_ADDRESS_NV* = 0x00008F41

-  GL_DRAW_INDIRECT_LENGTH_NV* = 0x00008F42 # GL_NV_gpu_program5

-  GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV* = 0x00008E5A

-  GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV* = 0x00008E5B

-  GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV* = 0x00008E5C

-  GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV* = 0x00008E5D

-  GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV* = 0x00008E5E

-  GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV* = 0x00008E5F

-  GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV* = 0x00008F44

-  GL_MAX_PROGRAM_SUBROUTINE_NUM_NV* = 0x00008F45 # GL_NV_gpu_shader5

-  GL_INT64_NV* = 0x0000140E

-  GL_UNSIGNED_INT64_NV* = 0x0000140F

-  GL_INT8_NV* = 0x00008FE0

-  GL_INT8_VEC2_NV* = 0x00008FE1

-  GL_INT8_VEC3_NV* = 0x00008FE2

-  GL_INT8_VEC4_NV* = 0x00008FE3

-  GL_INT16_NV* = 0x00008FE4

-  GL_INT16_VEC2_NV* = 0x00008FE5

-  GL_INT16_VEC3_NV* = 0x00008FE6

-  GL_INT16_VEC4_NV* = 0x00008FE7

-  GL_INT64_VEC2_NV* = 0x00008FE9

-  GL_INT64_VEC3_NV* = 0x00008FEA

-  GL_INT64_VEC4_NV* = 0x00008FEB

-  GL_UNSIGNED_INT8_NV* = 0x00008FEC

-  GL_UNSIGNED_INT8_VEC2_NV* = 0x00008FED

-  GL_UNSIGNED_INT8_VEC3_NV* = 0x00008FEE

-  GL_UNSIGNED_INT8_VEC4_NV* = 0x00008FEF

-  GL_UNSIGNED_INT16_NV* = 0x00008FF0

-  GL_UNSIGNED_INT16_VEC2_NV* = 0x00008FF1

-  GL_UNSIGNED_INT16_VEC3_NV* = 0x00008FF2

-  GL_UNSIGNED_INT16_VEC4_NV* = 0x00008FF3

-  GL_UNSIGNED_INT64_VEC2_NV* = 0x00008FF5

-  GL_UNSIGNED_INT64_VEC3_NV* = 0x00008FF6

-  GL_UNSIGNED_INT64_VEC4_NV* = 0x00008FF7

-  GL_FLOAT16_NV* = 0x00008FF8

-  GL_FLOAT16_VEC2_NV* = 0x00008FF9

-  GL_FLOAT16_VEC3_NV* = 0x00008FFA

-  GL_FLOAT16_VEC4_NV* = 0x00008FFB # reuse GL_PATCHES 

-                                   # GL_NV_shader_buffer_store

-  GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV* = 0x00000010 # reuse GL_READ_WRITE 

-                                                       # reuse GL_WRITE_ONLY 

-                                                       # 

-                                                       # GL_NV_tessellation_program5

-  GL_MAX_PROGRAM_PATCH_ATTRIBS_NV* = 0x000086D8

-  GL_TESS_CONTROL_PROGRAM_NV* = 0x0000891E

-  GL_TESS_EVALUATION_PROGRAM_NV* = 0x0000891F

-  GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV* = 0x00008C74

-  GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV* = 0x00008C75 # 

-                                                               # GL_NV_vertex_attrib_integer_64bit

-                                                               # reuse GL_INT64_NV 

-                                                               # reuse 

-                                                               # GL_UNSIGNED_INT64_NV 

-                                                               # 

-                                                               # GL_NV_multisample_coverage

-  GL_COVERAGE_SAMPLES_NV* = 0x000080A9

-  GL_COLOR_SAMPLES_NV* = 0x00008E20 # GL_NV_vdpau_interop

-  GL_SURFACE_STATE_NV* = 0x000086EB

-  GL_SURFACE_REGISTERED_NV* = 0x000086FD

-  GL_SURFACE_MAPPED_NV* = 0x00008700

-  GL_WRITE_DISCARD_NV* = 0x000088BE # GL_OML_interlace

-  GL_INTERLACE_OML* = 0x00008980

-  GL_INTERLACE_READ_OML* = 0x00008981 # GL_OML_resample

-  GL_PACK_RESAMPLE_OML* = 0x00008984

-  GL_UNPACK_RESAMPLE_OML* = 0x00008985

-  GL_RESAMPLE_REPLICATE_OML* = 0x00008986

-  GL_RESAMPLE_ZERO_FILL_OML* = 0x00008987

-  GL_RESAMPLE_AVERAGE_OML* = 0x00008988

-  GL_RESAMPLE_DECIMATE_OML* = 0x00008989 # GL_OML_subsample

-  GL_FORMAT_SUBSAMPLE_24_24_OML* = 0x00008982

-  GL_FORMAT_SUBSAMPLE_244_244_OML* = 0x00008983 # GL_PGI_misc_hints

-  GL_PREFER_DOUBLEBUFFER_HINT_PGI* = 0x0001A1F8

-  GL_CONSERVE_MEMORY_HINT_PGI* = 0x0001A1FD

-  GL_RECLAIM_MEMORY_HINT_PGI* = 0x0001A1FE

-  GL_NATIVE_GRAPHICS_HANDLE_PGI* = 0x0001A202

-  GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI* = 0x0001A203

-  GL_NATIVE_GRAPHICS_END_HINT_PGI* = 0x0001A204

-  GL_ALWAYS_FAST_HINT_PGI* = 0x0001A20C

-  GL_ALWAYS_SOFT_HINT_PGI* = 0x0001A20D

-  GL_ALLOW_DRAW_OBJ_HINT_PGI* = 0x0001A20E

-  GL_ALLOW_DRAW_WIN_HINT_PGI* = 0x0001A20F

-  GL_ALLOW_DRAW_FRG_HINT_PGI* = 0x0001A210

-  GL_ALLOW_DRAW_MEM_HINT_PGI* = 0x0001A211

-  GL_STRICT_DEPTHFUNC_HINT_PGI* = 0x0001A216

-  GL_STRICT_LIGHTING_HINT_PGI* = 0x0001A217

-  GL_STRICT_SCISSOR_HINT_PGI* = 0x0001A218

-  GL_FULL_STIPPLE_HINT_PGI* = 0x0001A219

-  GL_CLIP_NEAR_HINT_PGI* = 0x0001A220

-  GL_CLIP_FAR_HINT_PGI* = 0x0001A221

-  GL_WIDE_LINE_HINT_PGI* = 0x0001A222

-  GL_BACK_NORMALS_HINT_PGI* = 0x0001A223 # GL_PGI_vertex_hints

-  GL_VERTEX_DATA_HINT_PGI* = 0x0001A22A

-  GL_VERTEX_CONSISTENT_HINT_PGI* = 0x0001A22B

-  GL_MATERIAL_SIDE_HINT_PGI* = 0x0001A22C

-  GL_MAX_VERTEX_HINT_PGI* = 0x0001A22D

-  GL_COLOR3_BIT_PGI* = 0x00010000

-  GL_COLOR4_BIT_PGI* = 0x00020000

-  GL_EDGEFLAG_BIT_PGI* = 0x00040000

-  GL_INDEX_BIT_PGI* = 0x00080000

-  GL_MAT_AMBIENT_BIT_PGI* = 0x00100000

-  GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI* = 0x00200000

-  GL_MAT_DIFFUSE_BIT_PGI* = 0x00400000

-  GL_MAT_EMISSION_BIT_PGI* = 0x00800000

-  GL_MAT_COLOR_INDEXES_BIT_PGI* = 0x01000000

-  GL_MAT_SHININESS_BIT_PGI* = 0x02000000

-  GL_MAT_SPECULAR_BIT_PGI* = 0x04000000

-  GL_NORMAL_BIT_PGI* = 0x08000000

-  GL_TEXCOORD1_BIT_PGI* = 0x10000000

-  GL_TEXCOORD2_BIT_PGI* = 0x20000000

-  GL_TEXCOORD3_BIT_PGI* = 0x40000000

-  GL_TEXCOORD4_BIT_PGI* = 0x80000000

-  GL_VERTEX23_BIT_PGI* = 0x00000004

-  GL_VERTEX4_BIT_PGI* = 0x00000008 # GL_REND_screen_coordinates

-  GL_SCREEN_COORDINATES_REND* = 0x00008490

-  GL_INVERTED_SCREEN_W_REND* = 0x00008491 # GL_S3_s3tc

-  GL_RGB_S3TC* = 0x000083A0

-  GL_RGB4_S3TC* = 0x000083A1

-  GL_RGBA_S3TC* = 0x000083A2

-  GL_RGBA4_S3TC* = 0x000083A3 # GL_SGIS_detail_texture

-  GL_DETAIL_TEXTURE_2D_SGIS* = 0x00008095

-  GL_DETAIL_TEXTURE_2D_BINDING_SGIS* = 0x00008096

-  GL_LINEAR_DETAIL_SGIS* = 0x00008097

-  GL_LINEAR_DETAIL_ALPHA_SGIS* = 0x00008098

-  GL_LINEAR_DETAIL_COLOR_SGIS* = 0x00008099

-  GL_DETAIL_TEXTURE_LEVEL_SGIS* = 0x0000809A

-  GL_DETAIL_TEXTURE_MODE_SGIS* = 0x0000809B

-  GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS* = 0x0000809C # GL_SGIS_fog_function

-  cGL_FOG_FUNC_SGIS* = 0x0000812A

-  GL_FOG_FUNC_POINTS_SGIS* = 0x0000812B

-  GL_MAX_FOG_FUNC_POINTS_SGIS* = 0x0000812C # GL_SGIS_generate_mipmap

-  GL_GENERATE_MIPMAP_SGIS* = 0x00008191

-  GL_GENERATE_MIPMAP_HINT_SGIS* = 0x00008192 # GL_SGIS_multisample

-  GL_MULTISAMPLE_SGIS* = 0x0000809D

-  GL_SAMPLE_ALPHA_TO_MASK_SGIS* = 0x0000809E

-  GL_SAMPLE_ALPHA_TO_ONE_SGIS* = 0x0000809F

-  cGL_SAMPLE_MASK_SGIS* = 0x000080A0

-  GL_1PASS_SGIS* = 0x000080A1

-  GL_2PASS_0_SGIS* = 0x000080A2

-  GL_2PASS_1_SGIS* = 0x000080A3

-  GL_4PASS_0_SGIS* = 0x000080A4

-  GL_4PASS_1_SGIS* = 0x000080A5

-  GL_4PASS_2_SGIS* = 0x000080A6

-  GL_4PASS_3_SGIS* = 0x000080A7

-  GL_SAMPLE_BUFFERS_SGIS* = 0x000080A8

-  GL_SAMPLES_SGIS* = 0x000080A9

-  GL_SAMPLE_MASK_VALUE_SGIS* = 0x000080AA

-  GL_SAMPLE_MASK_INVERT_SGIS* = 0x000080AB

-  cGL_SAMPLE_PATTERN_SGIS* = 0x000080AC # GL_SGIS_pixel_texture

-  GL_PIXEL_TEXTURE_SGIS* = 0x00008353

-  GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS* = 0x00008354

-  GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS* = 0x00008355

-  GL_PIXEL_GROUP_COLOR_SGIS* = 0x00008356 # GL_SGIS_point_line_texgen

-  GL_EYE_DISTANCE_TO_POINT_SGIS* = 0x000081F0

-  GL_OBJECT_DISTANCE_TO_POINT_SGIS* = 0x000081F1

-  GL_EYE_DISTANCE_TO_LINE_SGIS* = 0x000081F2

-  GL_OBJECT_DISTANCE_TO_LINE_SGIS* = 0x000081F3

-  GL_EYE_POINT_SGIS* = 0x000081F4

-  GL_OBJECT_POINT_SGIS* = 0x000081F5

-  GL_EYE_LINE_SGIS* = 0x000081F6

-  GL_OBJECT_LINE_SGIS* = 0x000081F7 # GL_SGIS_point_parameters

-  GL_POINT_SIZE_MIN_SGIS* = 0x00008126

-  GL_POINT_SIZE_MAX_SGIS* = 0x00008127

-  GL_POINT_FADE_THRESHOLD_SIZE_SGIS* = 0x00008128

-  GL_DISTANCE_ATTENUATION_SGIS* = 0x00008129 # GL_SGIS_sharpen_texture

-  GL_LINEAR_SHARPEN_SGIS* = 0x000080AD

-  GL_LINEAR_SHARPEN_ALPHA_SGIS* = 0x000080AE

-  GL_LINEAR_SHARPEN_COLOR_SGIS* = 0x000080AF

-  GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS* = 0x000080B0 # GL_SGIS_texture4D

-  GL_PACK_SKIP_VOLUMES_SGIS* = 0x00008130

-  GL_PACK_IMAGE_DEPTH_SGIS* = 0x00008131

-  GL_UNPACK_SKIP_VOLUMES_SGIS* = 0x00008132

-  GL_UNPACK_IMAGE_DEPTH_SGIS* = 0x00008133

-  GL_TEXTURE_4D_SGIS* = 0x00008134

-  GL_PROXY_TEXTURE_4D_SGIS* = 0x00008135

-  GL_TEXTURE_4DSIZE_SGIS* = 0x00008136

-  GL_TEXTURE_WRAP_Q_SGIS* = 0x00008137

-  GL_MAX_4D_TEXTURE_SIZE_SGIS* = 0x00008138

-  GL_TEXTURE_4D_BINDING_SGIS* = 0x0000814F # GL_SGIS_texture_color_mask

-  GL_TEXTURE_COLOR_WRITEMASK_SGIS* = 0x000081EF # GL_SGIS_texture_edge_clamp

-  GL_CLAMP_TO_EDGE_SGIS* = 0x0000812F # GL_SGIS_texture_filter4

-  GL_FILTER4_SGIS* = 0x00008146

-  GL_TEXTURE_FILTER4_SIZE_SGIS* = 0x00008147 # GL_SGIS_texture_lod

-  GL_TEXTURE_MIN_LOD_SGIS* = 0x0000813A

-  GL_TEXTURE_MAX_LOD_SGIS* = 0x0000813B

-  GL_TEXTURE_BASE_LEVEL_SGIS* = 0x0000813C

-  GL_TEXTURE_MAX_LEVEL_SGIS* = 0x0000813D # GL_SGIS_texture_select

-  GL_DUAL_ALPHA4_SGIS* = 0x00008110

-  GL_DUAL_ALPHA8_SGIS* = 0x00008111

-  GL_DUAL_ALPHA12_SGIS* = 0x00008112

-  GL_DUAL_ALPHA16_SGIS* = 0x00008113

-  GL_DUAL_LUMINANCE4_SGIS* = 0x00008114

-  GL_DUAL_LUMINANCE8_SGIS* = 0x00008115

-  GL_DUAL_LUMINANCE12_SGIS* = 0x00008116

-  GL_DUAL_LUMINANCE16_SGIS* = 0x00008117

-  GL_DUAL_INTENSITY4_SGIS* = 0x00008118

-  GL_DUAL_INTENSITY8_SGIS* = 0x00008119

-  GL_DUAL_INTENSITY12_SGIS* = 0x0000811A

-  GL_DUAL_INTENSITY16_SGIS* = 0x0000811B

-  GL_DUAL_LUMINANCE_ALPHA4_SGIS* = 0x0000811C

-  GL_DUAL_LUMINANCE_ALPHA8_SGIS* = 0x0000811D

-  GL_QUAD_ALPHA4_SGIS* = 0x0000811E

-  GL_QUAD_ALPHA8_SGIS* = 0x0000811F

-  GL_QUAD_LUMINANCE4_SGIS* = 0x00008120

-  GL_QUAD_LUMINANCE8_SGIS* = 0x00008121

-  GL_QUAD_INTENSITY4_SGIS* = 0x00008122

-  GL_QUAD_INTENSITY8_SGIS* = 0x00008123

-  GL_DUAL_TEXTURE_SELECT_SGIS* = 0x00008124

-  GL_QUAD_TEXTURE_SELECT_SGIS* = 0x00008125 # GL_SGIX_async

-  cGL_ASYNC_MARKER_SGIX* = 0x00008329 # GL_SGIX_async_histogram

-  GL_ASYNC_HISTOGRAM_SGIX* = 0x0000832C

-  GL_MAX_ASYNC_HISTOGRAM_SGIX* = 0x0000832D # GL_SGIX_async_pixel

-  GL_ASYNC_TEX_IMAGE_SGIX* = 0x0000835C

-  GL_ASYNC_DRAW_PIXELS_SGIX* = 0x0000835D

-  GL_ASYNC_READ_PIXELS_SGIX* = 0x0000835E

-  GL_MAX_ASYNC_TEX_IMAGE_SGIX* = 0x0000835F

-  GL_MAX_ASYNC_DRAW_PIXELS_SGIX* = 0x00008360

-  GL_MAX_ASYNC_READ_PIXELS_SGIX* = 0x00008361 # GL_SGIX_blend_alpha_minmax

-  GL_ALPHA_MIN_SGIX* = 0x00008320

-  GL_ALPHA_MAX_SGIX* = 0x00008321 # GL_SGIX_calligraphic_fragment

-  GL_CALLIGRAPHIC_FRAGMENT_SGIX* = 0x00008183 # GL_SGIX_clipmap

-  GL_LINEAR_CLIPMAP_LINEAR_SGIX* = 0x00008170

-  GL_TEXTURE_CLIPMAP_CENTER_SGIX* = 0x00008171

-  GL_TEXTURE_CLIPMAP_FRAME_SGIX* = 0x00008172

-  GL_TEXTURE_CLIPMAP_OFFSET_SGIX* = 0x00008173

-  GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX* = 0x00008174

-  GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX* = 0x00008175

-  GL_TEXTURE_CLIPMAP_DEPTH_SGIX* = 0x00008176

-  GL_MAX_CLIPMAP_DEPTH_SGIX* = 0x00008177

-  GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX* = 0x00008178

-  GL_NEAREST_CLIPMAP_NEAREST_SGIX* = 0x0000844D

-  GL_NEAREST_CLIPMAP_LINEAR_SGIX* = 0x0000844E

-  GL_LINEAR_CLIPMAP_NEAREST_SGIX* = 0x0000844F # GL_SGIX_convolution_accuracy

-  GL_CONVOLUTION_HINT_SGIX* = 0x00008316 # GL_SGIX_depth_texture

-  GL_DEPTH_COMPONENT16_SGIX* = 0x000081A5

-  GL_DEPTH_COMPONENT24_SGIX* = 0x000081A6

-  GL_DEPTH_COMPONENT32_SGIX* = 0x000081A7 # GL_SGIX_fog_offset

-  GL_FOG_OFFSET_SGIX* = 0x00008198

-  GL_FOG_OFFSET_VALUE_SGIX* = 0x00008199 # GL_SGIX_fog_scale

-  GL_FOG_SCALE_SGIX* = 0x000081FC

-  GL_FOG_SCALE_VALUE_SGIX* = 0x000081FD # GL_SGIX_fragment_lighting

-  GL_FRAGMENT_LIGHTING_SGIX* = 0x00008400

-  cGL_FRAGMENT_COLOR_MATERIAL_SGIX* = 0x00008401

-  GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX* = 0x00008402

-  GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX* = 0x00008403

-  GL_MAX_FRAGMENT_LIGHTS_SGIX* = 0x00008404

-  GL_MAX_ACTIVE_LIGHTS_SGIX* = 0x00008405

-  GL_CURRENT_RASTER_NORMAL_SGIX* = 0x00008406

-  GL_LIGHT_ENV_MODE_SGIX* = 0x00008407

-  GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX* = 0x00008408

-  GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX* = 0x00008409

-  GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX* = 0x0000840A

-  GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX* = 0x0000840B

-  GL_FRAGMENT_LIGHT0_SGIX* = 0x0000840C

-  GL_FRAGMENT_LIGHT1_SGIX* = 0x0000840D

-  GL_FRAGMENT_LIGHT2_SGIX* = 0x0000840E

-  GL_FRAGMENT_LIGHT3_SGIX* = 0x0000840F

-  GL_FRAGMENT_LIGHT4_SGIX* = 0x00008410

-  GL_FRAGMENT_LIGHT5_SGIX* = 0x00008411

-  GL_FRAGMENT_LIGHT6_SGIX* = 0x00008412

-  GL_FRAGMENT_LIGHT7_SGIX* = 0x00008413 # GL_SGIX_framezoom

-  cGL_FRAMEZOOM_SGIX* = 0x0000818B

-  GL_FRAMEZOOM_FACTOR_SGIX* = 0x0000818C

-  GL_MAX_FRAMEZOOM_FACTOR_SGIX* = 0x0000818D # GL_SGIX_impact_pixel_texture

-  GL_PIXEL_TEX_GEN_Q_CEILING_SGIX* = 0x00008184

-  GL_PIXEL_TEX_GEN_Q_ROUND_SGIX* = 0x00008185

-  GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX* = 0x00008186

-  GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX* = 0x00008187

-  GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX* = 0x00008188

-  GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX* = 0x00008189

-  GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX* = 0x0000818A # GL_SGIX_instruments

-  GL_INSTRUMENT_BUFFER_POINTER_SGIX* = 0x00008180

-  GL_INSTRUMENT_MEASUREMENTS_SGIX* = 0x00008181 # GL_SGIX_interlace

-  GL_INTERLACE_SGIX* = 0x00008094 # GL_SGIX_ir_instrument1

-  GL_IR_INSTRUMENT1_SGIX* = 0x0000817F # GL_SGIX_list_priority

-  GL_LIST_PRIORITY_SGIX* = 0x00008182 # GL_SGIX_pixel_texture

-  cGL_PIXEL_TEX_GEN_SGIX* = 0x00008139

-  GL_PIXEL_TEX_GEN_MODE_SGIX* = 0x0000832B # GL_SGIX_pixel_tiles

-  GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX* = 0x0000813E

-  GL_PIXEL_TILE_CACHE_INCREMENT_SGIX* = 0x0000813F

-  GL_PIXEL_TILE_WIDTH_SGIX* = 0x00008140

-  GL_PIXEL_TILE_HEIGHT_SGIX* = 0x00008141

-  GL_PIXEL_TILE_GRID_WIDTH_SGIX* = 0x00008142

-  GL_PIXEL_TILE_GRID_HEIGHT_SGIX* = 0x00008143

-  GL_PIXEL_TILE_GRID_DEPTH_SGIX* = 0x00008144

-  GL_PIXEL_TILE_CACHE_SIZE_SGIX* = 0x00008145 # GL_SGIX_polynomial_ffd

-  GL_GEOMETRY_DEFORMATION_SGIX* = 0x00008194

-  GL_TEXTURE_DEFORMATION_SGIX* = 0x00008195

-  GL_DEFORMATIONS_MASK_SGIX* = 0x00008196

-  GL_MAX_DEFORMATION_ORDER_SGIX* = 0x00008197 # GL_SGIX_reference_plane

-  cGL_REFERENCE_PLANE_SGIX* = 0x0000817D

-  GL_REFERENCE_PLANE_EQUATION_SGIX* = 0x0000817E # GL_SGIX_resample

-  GL_PACK_RESAMPLE_SGIX* = 0x0000842C

-  GL_UNPACK_RESAMPLE_SGIX* = 0x0000842D

-  GL_RESAMPLE_REPLICATE_SGIX* = 0x0000842E

-  GL_RESAMPLE_ZERO_FILL_SGIX* = 0x0000842F

-  GL_RESAMPLE_DECIMATE_SGIX* = 0x00008430 # GL_SGIX_scalebias_hint

-  GL_SCALEBIAS_HINT_SGIX* = 0x00008322 # GL_SGIX_shadow

-  GL_TEXTURE_COMPARE_SGIX* = 0x0000819A

-  GL_TEXTURE_COMPARE_OPERATOR_SGIX* = 0x0000819B

-  GL_TEXTURE_LEQUAL_R_SGIX* = 0x0000819C

-  GL_TEXTURE_GEQUAL_R_SGIX* = 0x0000819D # GL_SGIX_shadow_ambient

-  GL_SHADOW_AMBIENT_SGIX* = 0x000080BF # GL_SGIX_sprite

-  GL_SPRITE_SGIX* = 0x00008148

-  GL_SPRITE_MODE_SGIX* = 0x00008149

-  GL_SPRITE_AXIS_SGIX* = 0x0000814A

-  GL_SPRITE_TRANSLATION_SGIX* = 0x0000814B

-  GL_SPRITE_AXIAL_SGIX* = 0x0000814C

-  GL_SPRITE_OBJECT_ALIGNED_SGIX* = 0x0000814D

-  GL_SPRITE_EYE_ALIGNED_SGIX* = 0x0000814E # GL_SGIX_subsample

-  GL_PACK_SUBSAMPLE_RATE_SGIX* = 0x000085A0

-  GL_UNPACK_SUBSAMPLE_RATE_SGIX* = 0x000085A1

-  GL_PIXEL_SUBSAMPLE_4444_SGIX* = 0x000085A2

-  GL_PIXEL_SUBSAMPLE_2424_SGIX* = 0x000085A3

-  GL_PIXEL_SUBSAMPLE_4242_SGIX* = 0x000085A4 # GL_SGIX_texture_add_env

-  GL_TEXTURE_ENV_BIAS_SGIX* = 0x000080BE # GL_SGIX_texture_coordinate_clamp

-  GL_TEXTURE_MAX_CLAMP_S_SGIX* = 0x00008369

-  GL_TEXTURE_MAX_CLAMP_T_SGIX* = 0x0000836A

-  GL_TEXTURE_MAX_CLAMP_R_SGIX* = 0x0000836B # GL_SGIX_texture_lod_bias

-  GL_TEXTURE_LOD_BIAS_S_SGIX* = 0x0000818E

-  GL_TEXTURE_LOD_BIAS_T_SGIX* = 0x0000818F

-  GL_TEXTURE_LOD_BIAS_R_SGIX* = 0x00008190 # GL_SGIX_texture_multi_buffer

-  GL_TEXTURE_MULTI_BUFFER_HINT_SGIX* = 0x0000812E # GL_SGIX_texture_scale_bias

-  GL_POST_TEXTURE_FILTER_BIAS_SGIX* = 0x00008179

-  GL_POST_TEXTURE_FILTER_SCALE_SGIX* = 0x0000817A

-  GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX* = 0x0000817B

-  GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX* = 0x0000817C # GL_SGIX_vertex_preclip

-  GL_VERTEX_PRECLIP_SGIX* = 0x000083EE

-  GL_VERTEX_PRECLIP_HINT_SGIX* = 0x000083EF # GL_SGIX_ycrcb

-  GL_YCRCB_422_SGIX* = 0x000081BB

-  GL_YCRCB_444_SGIX* = 0x000081BC # GL_SGIX_ycrcba

-  GL_YCRCB_SGIX* = 0x00008318

-  GL_YCRCBA_SGIX* = 0x00008319 # GL_SGI_color_matrix

-  GL_COLOR_MATRIX_SGI* = 0x000080B1

-  GL_COLOR_MATRIX_STACK_DEPTH_SGI* = 0x000080B2

-  GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI* = 0x000080B3

-  GL_POST_COLOR_MATRIX_RED_SCALE_SGI* = 0x000080B4

-  GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI* = 0x000080B5

-  GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI* = 0x000080B6

-  GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI* = 0x000080B7

-  GL_POST_COLOR_MATRIX_RED_BIAS_SGI* = 0x000080B8

-  GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI* = 0x000080B9

-  GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI* = 0x000080BA

-  GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI* = 0x000080BB # GL_SGI_color_table

-  cGL_COLOR_TABLE_SGI* = 0x000080D0

-  GL_POST_CONVOLUTION_COLOR_TABLE_SGI* = 0x000080D1

-  GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI* = 0x000080D2

-  GL_PROXY_COLOR_TABLE_SGI* = 0x000080D3

-  GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI* = 0x000080D4

-  GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI* = 0x000080D5

-  GL_COLOR_TABLE_SCALE_SGI* = 0x000080D6

-  GL_COLOR_TABLE_BIAS_SGI* = 0x000080D7

-  GL_COLOR_TABLE_FORMAT_SGI* = 0x000080D8

-  GL_COLOR_TABLE_WIDTH_SGI* = 0x000080D9

-  GL_COLOR_TABLE_RED_SIZE_SGI* = 0x000080DA

-  GL_COLOR_TABLE_GREEN_SIZE_SGI* = 0x000080DB

-  GL_COLOR_TABLE_BLUE_SIZE_SGI* = 0x000080DC

-  GL_COLOR_TABLE_ALPHA_SIZE_SGI* = 0x000080DD

-  GL_COLOR_TABLE_LUMINANCE_SIZE_SGI* = 0x000080DE

-  GL_COLOR_TABLE_INTENSITY_SIZE_SGI* = 0x000080DF # GL_SGI_depth_pass_instrument

-  GL_DEPTH_PASS_INSTRUMENT_SGIX* = 0x00008310

-  GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX* = 0x00008311

-  GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX* = 0x00008312 # GL_SGI_texture_color_table

-  GL_TEXTURE_COLOR_TABLE_SGI* = 0x000080BC

-  GL_PROXY_TEXTURE_COLOR_TABLE_SGI* = 0x000080BD # GL_SUNX_constant_data

-  GL_UNPACK_CONSTANT_DATA_SUNX* = 0x000081D5

-  GL_TEXTURE_CONSTANT_DATA_SUNX* = 0x000081D6 # GL_SUN_convolution_border_modes

-  GL_WRAP_BORDER_SUN* = 0x000081D4 # GL_SUN_global_alpha

-  GL_GLOBAL_ALPHA_SUN* = 0x000081D9

-  GL_GLOBAL_ALPHA_FACTOR_SUN* = 0x000081DA # GL_SUN_mesh_array

-  GL_QUAD_MESH_SUN* = 0x00008614

-  GL_TRIANGLE_MESH_SUN* = 0x00008615 # GL_SUN_slice_accum

-  GL_SLICE_ACCUM_SUN* = 0x000085CC # GL_SUN_triangle_list

-  GL_RESTART_SUN* = 0x00000001

-  GL_REPLACE_MIDDLE_SUN* = 0x00000002

-  GL_REPLACE_OLDEST_SUN* = 0x00000003

-  GL_TRIANGLE_LIST_SUN* = 0x000081D7

-  GL_REPLACEMENT_CODE_SUN* = 0x000081D8

-  GL_REPLACEMENT_CODE_ARRAY_SUN* = 0x000085C0

-  GL_REPLACEMENT_CODE_ARRAYtyp_SUN* = 0x000085C1

-  GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN* = 0x000085C2

-  GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN* = 0x000085C3

-  GL_R1UI_V3F_SUN* = 0x000085C4

-  GL_R1UI_C4UB_V3F_SUN* = 0x000085C5

-  GL_R1UI_C3F_V3F_SUN* = 0x000085C6

-  GL_R1UI_N3F_V3F_SUN* = 0x000085C7

-  GL_R1UI_C4F_N3F_V3F_SUN* = 0x000085C8

-  GL_R1UI_T2F_V3F_SUN* = 0x000085C9

-  GL_R1UI_T2F_N3F_V3F_SUN* = 0x000085CA

-  GL_R1UI_T2F_C4F_N3F_V3F_SUN* = 0x000085CB # GL_WIN_phong_shading

-  GL_PHONG_WIN* = 0x000080EA

-  GL_PHONG_HINT_WIN* = 0x000080EB # GL_WIN_specular_fog

-  GL_FOG_SPECULAR_TEXTURE_WIN* = 0x000080EC # GL_ARB_vertex_shader

-  GL_VERTEX_SHADER_ARB* = 0x00008B31

-  GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB* = 0x00008B4A

-  GL_MAX_VARYING_FLOATS_ARB* = 0x00008B4B

-  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB* = 0x00008B4C

-  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB* = 0x00008B4D

-  GL_OBJECT_ACTIVE_ATTRIBUTES_ARB* = 0x00008B89

-  GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB* = 0x00008B8A # GL_ARB_fragment_shader

-  GL_FRAGMENT_SHADER_ARB* = 0x00008B30

-  GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB* = 0x00008B49 # 1.4

-  GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB* = 0x00008B8B # 1.4

-                                                       # GL_ARB_occlusion_query

-  GL_SAMPLES_PASSED_ARB* = 0x00008914

-  GL_QUERY_COUNTER_BITS_ARB* = 0x00008864

-  GL_CURRENT_QUERY_ARB* = 0x00008865

-  GL_QUERY_RESULT_ARB* = 0x00008866

-  GL_QUERY_RESULT_AVAILABLE_ARB* = 0x00008867 # GL_ARB_point_sprite

-  GL_POINT_SPRITE_ARB* = 0x00008861

-  GL_COORD_REPLACE_ARB* = 0x00008862 # GL_ARB_shading_language_100

-  GL_SHADING_LANGUAGE_VERSION_ARB* = 0x00008B8C # 1.4

-                                                # GL_ARB_shader_objects

-  GL_PROGRAM_OBJECT_ARB* = 0x00008B40

-  GL_OBJECTtyp_ARB* = 0x00008B4E

-  GL_OBJECT_SUBtypARB* = 0x00008B4F

-  GL_OBJECT_DELETE_STATUS_ARB* = 0x00008B80

-  GL_OBJECT_COMPILE_STATUS_ARB* = 0x00008B81

-  GL_OBJECT_LINK_STATUS_ARB* = 0x00008B82

-  GL_OBJECT_VALIDATE_STATUS_ARB* = 0x00008B83

-  GL_OBJECT_INFO_LOG_LENGTH_ARB* = 0x00008B84

-  GL_OBJECT_ATTACHED_OBJECTS_ARB* = 0x00008B85

-  GL_OBJECT_ACTIVE_UNIFORMS_ARB* = 0x00008B86

-  GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB* = 0x00008B87

-  GL_OBJECT_SHADER_SOURCE_LENGTH_ARB* = 0x00008B88

-  GL_SHADER_OBJECT_ARB* = 0x00008B48

-  GL_FLOAT_VEC2_ARB* = 0x00008B50

-  GL_FLOAT_VEC3_ARB* = 0x00008B51

-  GL_FLOAT_VEC4_ARB* = 0x00008B52

-  GL_INT_VEC2_ARB* = 0x00008B53

-  GL_INT_VEC3_ARB* = 0x00008B54

-  GL_INT_VEC4_ARB* = 0x00008B55

-  GL_BOOL_ARB* = 0x00008B56

-  GL_BOOL_VEC2_ARB* = 0x00008B57

-  GL_BOOL_VEC3_ARB* = 0x00008B58

-  GL_BOOL_VEC4_ARB* = 0x00008B59

-  GL_FLOAT_MAT2_ARB* = 0x00008B5A

-  GL_FLOAT_MAT3_ARB* = 0x00008B5B

-  GL_FLOAT_MAT4_ARB* = 0x00008B5C

-  GL_SAMPLER_1D_ARB* = 0x00008B5D

-  GL_SAMPLER_2D_ARB* = 0x00008B5E

-  GL_SAMPLER_3D_ARB* = 0x00008B5F

-  GL_SAMPLER_CUBE_ARB* = 0x00008B60

-  GL_SAMPLER_1D_SHADOW_ARB* = 0x00008B61

-  GL_SAMPLER_2D_SHADOW_ARB* = 0x00008B62

-  GL_SAMPLER_2D_RECT_ARB* = 0x00008B63

-  GL_SAMPLER_2D_RECT_SHADOW_ARB* = 0x00008B64 # WGL_3DFX_multisample

-  WGL_SAMPLE_BUFFERS_3DFX* = 0x00002060

-  WGL_SAMPLES_3DFX* = 0x00002061 # WGL_ARB_buffer_region

-  WGL_FRONT_COLOR_BUFFER_BIT_ARB* = 0x00000001

-  WGL_BACK_COLOR_BUFFER_BIT_ARB* = 0x00000002

-  WGL_DEPTH_BUFFER_BIT_ARB* = 0x00000004

-  WGL_STENCIL_BUFFER_BIT_ARB* = 0x00000008 # WGL_ARB_make_current_read

-  ERROR_INVALID_PIXELtyp_ARB* = 0x00002043

-  ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB* = 0x00002054 # WGL_ARB_multisample

-  WGL_SAMPLE_BUFFERS_ARB* = 0x00002041

-  WGL_SAMPLES_ARB* = 0x00002042 # WGL_ARB_pbuffer

-  WGL_DRAW_TO_PBUFFER_ARB* = 0x0000202D

-  WGL_MAX_PBUFFER_PIXELS_ARB* = 0x0000202E

-  WGL_MAX_PBUFFER_WIDTH_ARB* = 0x0000202F

-  WGL_MAX_PBUFFER_HEIGHT_ARB* = 0x00002030

-  WGL_PBUFFER_LARGEST_ARB* = 0x00002033

-  WGL_PBUFFER_WIDTH_ARB* = 0x00002034

-  WGL_PBUFFER_HEIGHT_ARB* = 0x00002035

-  WGL_PBUFFER_LOST_ARB* = 0x00002036 # WGL_ARB_pixel_format

-  WGL_NUMBER_PIXEL_FORMATS_ARB* = 0x00002000

-  WGL_DRAW_TO_WINDOW_ARB* = 0x00002001

-  WGL_DRAW_TO_BITMAP_ARB* = 0x00002002

-  WGL_ACCELERATION_ARB* = 0x00002003

-  WGL_NEED_PALETTE_ARB* = 0x00002004

-  WGL_NEED_SYSTEM_PALETTE_ARB* = 0x00002005

-  WGL_SWAP_LAYER_BUFFERS_ARB* = 0x00002006

-  WGL_SWAP_METHOD_ARB* = 0x00002007

-  WGL_NUMBER_OVERLAYS_ARB* = 0x00002008

-  WGL_NUMBER_UNDERLAYS_ARB* = 0x00002009

-  WGL_TRANSPARENT_ARB* = 0x0000200A

-  WGL_TRANSPARENT_RED_VALUE_ARB* = 0x00002037

-  WGL_TRANSPARENT_GREEN_VALUE_ARB* = 0x00002038

-  WGL_TRANSPARENT_BLUE_VALUE_ARB* = 0x00002039

-  WGL_TRANSPARENT_ALPHA_VALUE_ARB* = 0x0000203A

-  WGL_TRANSPARENT_INDEX_VALUE_ARB* = 0x0000203B

-  WGL_SHARE_DEPTH_ARB* = 0x0000200C

-  WGL_SHARE_STENCIL_ARB* = 0x0000200D

-  WGL_SHARE_ACCUM_ARB* = 0x0000200E

-  WGL_SUPPORT_GDI_ARB* = 0x0000200F

-  WGL_SUPPORT_OPENGL_ARB* = 0x00002010

-  WGL_DOUBLE_BUFFER_ARB* = 0x00002011

-  WGL_STEREO_ARB* = 0x00002012

-  WGL_PIXELtyp_ARB* = 0x00002013

-  WGL_COLOR_BITS_ARB* = 0x00002014

-  WGL_RED_BITS_ARB* = 0x00002015

-  WGL_RED_SHIFT_ARB* = 0x00002016

-  WGL_GREEN_BITS_ARB* = 0x00002017

-  WGL_GREEN_SHIFT_ARB* = 0x00002018

-  WGL_BLUE_BITS_ARB* = 0x00002019

-  WGL_BLUE_SHIFT_ARB* = 0x0000201A

-  WGL_ALPHA_BITS_ARB* = 0x0000201B

-  WGL_ALPHA_SHIFT_ARB* = 0x0000201C

-  WGL_ACCUM_BITS_ARB* = 0x0000201D

-  WGL_ACCUM_RED_BITS_ARB* = 0x0000201E

-  WGL_ACCUM_GREEN_BITS_ARB* = 0x0000201F

-  WGL_ACCUM_BLUE_BITS_ARB* = 0x00002020

-  WGL_ACCUM_ALPHA_BITS_ARB* = 0x00002021

-  WGL_DEPTH_BITS_ARB* = 0x00002022

-  WGL_STENCIL_BITS_ARB* = 0x00002023

-  WGL_AUX_BUFFERS_ARB* = 0x00002024

-  WGL_NO_ACCELERATION_ARB* = 0x00002025

-  WGL_GENERIC_ACCELERATION_ARB* = 0x00002026

-  WGL_FULL_ACCELERATION_ARB* = 0x00002027

-  WGL_SWAP_EXCHANGE_ARB* = 0x00002028

-  WGL_SWAP_COPY_ARB* = 0x00002029

-  WGL_SWAP_UNDEFINED_ARB* = 0x0000202A

-  WGLtyp_RGBA_ARB* = 0x0000202B

-  WGLtyp_COLORINDEX_ARB* = 0x0000202C # WGL_ARB_pixel_format_float

-  WGL_RGBA_FLOAT_MODE_ARB* = 0x00008820

-  WGL_CLAMP_VERTEX_COLOR_ARB* = 0x0000891A

-  WGL_CLAMP_FRAGMENT_COLOR_ARB* = 0x0000891B

-  WGL_CLAMP_READ_COLOR_ARB* = 0x0000891C

-  WGL_FIXED_ONLY_ARB* = 0x0000891D # WGL_ARB_render_texture

-  WGL_BIND_TO_TEXTURE_RGB_ARB* = 0x00002070

-  WGL_BIND_TO_TEXTURE_RGBA_ARB* = 0x00002071

-  WGL_TEXTURE_FORMAT_ARB* = 0x00002072

-  WGL_TEXTURE_TARGET_ARB* = 0x00002073

-  WGL_MIPMAP_TEXTURE_ARB* = 0x00002074

-  WGL_TEXTURE_RGB_ARB* = 0x00002075

-  WGL_TEXTURE_RGBA_ARB* = 0x00002076

-  WGL_NO_TEXTURE_ARB* = 0x00002077

-  WGL_TEXTURE_CUBE_MAP_ARB* = 0x00002078

-  WGL_TEXTURE_1D_ARB* = 0x00002079

-  WGL_TEXTURE_2D_ARB* = 0x0000207A

-  WGL_MIPMAP_LEVEL_ARB* = 0x0000207B

-  WGL_CUBE_MAP_FACE_ARB* = 0x0000207C

-  WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB* = 0x0000207D

-  WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB* = 0x0000207E

-  WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB* = 0x0000207F

-  WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB* = 0x00002080

-  WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB* = 0x00002081

-  WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB* = 0x00002082

-  WGL_FRONT_LEFT_ARB* = 0x00002083

-  WGL_FRONT_RIGHT_ARB* = 0x00002084

-  WGL_BACK_LEFT_ARB* = 0x00002085

-  WGL_BACK_RIGHT_ARB* = 0x00002086

-  WGL_AUX0_ARB* = 0x00002087

-  WGL_AUX1_ARB* = 0x00002088

-  WGL_AUX2_ARB* = 0x00002089

-  WGL_AUX3_ARB* = 0x0000208A

-  WGL_AUX4_ARB* = 0x0000208B

-  WGL_AUX5_ARB* = 0x0000208C

-  WGL_AUX6_ARB* = 0x0000208D

-  WGL_AUX7_ARB* = 0x0000208E

-  WGL_AUX8_ARB* = 0x0000208F

-  WGL_AUX9_ARB* = 0x00002090  # WGL_ARB_create_context

-  WGL_CONTEXT_DEBUG_BIT_ARB* = 0x00000001

-  WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB* = 0x00000002

-  WGL_CONTEXT_MAJOR_VERSION_ARB* = 0x00002091

-  WGL_CONTEXT_MINOR_VERSION_ARB* = 0x00002092

-  WGL_CONTEXT_LAYER_PLANE_ARB* = 0x00002093

-  WGL_CONTEXT_FLAGS_ARB* = 0x00002094

-  ERROR_INVALID_VERSION_ARB* = 0x00002095 # WGL_ARB_create_context_profile

-  WGL_CONTEXT_PROFILE_MASK_ARB* = 0x00009126

-  WGL_CONTEXT_CORE_PROFILE_BIT_ARB* = 0x00000001

-  WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB* = 0x00000002

-  ERROR_INVALID_PROFILE_ARB* = 0x00002096 # WGL_ARB_framebuffer_sRGB

-  WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB* = 0x000020A9 # 

-                                                 # WGL_ARB_create_context_robustness

-  WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB* = 0x00000004

-  WGL_LOSE_CONTEXT_ON_RESET_ARB* = 0x00008252

-  WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB* = 0x00008256

-  WGL_NO_RESET_NOTIFICATION_ARB* = 0x00008261 # WGL_ATI_pixel_format_float

-  WGLtyp_RGBA_FLOAT_ATI* = 0x000021A0

-  GLtyp_RGBA_FLOAT_ATI* = 0x00008820

-  GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI* = 0x00008835 # WGL_AMD_gpu_association

-  WGL_GPU_VENDOR_AMD* = 0x00001F00

-  WGL_GPU_RENDERER_STRING_AMD* = 0x00001F01

-  WGL_GPU_OPENGL_VERSION_STRING_AMD* = 0x00001F02

-  WGL_GPU_FASTEST_TARGET_GPUS_AMD* = 0x000021A2

-  WGL_GPU_RAM_AMD* = 0x000021A3

-  WGL_GPU_CLOCK_AMD* = 0x000021A4

-  WGL_GPU_NUM_PIPES_AMD* = 0x000021A5

-  WGL_GPU_NUM_SIMD_AMD* = 0x000021A6

-  WGL_GPU_NUM_RB_AMD* = 0x000021A7

-  WGL_GPU_NUM_SPI_AMD* = 0x000021A8 # WGL_EXT_depth_float

-  WGL_DEPTH_FLOAT_EXT* = 0x00002040 # WGL_EXT_make_current_read

-  ERROR_INVALID_PIXELtyp_EXT* = 0x00002043 # WGL_EXT_multisample

-  WGL_SAMPLE_BUFFERS_EXT* = 0x00002041

-  WGL_SAMPLES_EXT* = 0x00002042 # WGL_EXT_pbuffer

-  WGL_DRAW_TO_PBUFFER_EXT* = 0x0000202D

-  WGL_MAX_PBUFFER_PIXELS_EXT* = 0x0000202E

-  WGL_MAX_PBUFFER_WIDTH_EXT* = 0x0000202F

-  WGL_MAX_PBUFFER_HEIGHT_EXT* = 0x00002030

-  WGL_OPTIMAL_PBUFFER_WIDTH_EXT* = 0x00002031

-  WGL_OPTIMAL_PBUFFER_HEIGHT_EXT* = 0x00002032

-  WGL_PBUFFER_LARGEST_EXT* = 0x00002033

-  WGL_PBUFFER_WIDTH_EXT* = 0x00002034

-  WGL_PBUFFER_HEIGHT_EXT* = 0x00002035 # WGL_EXT_pixel_format

-  WGL_NUMBER_PIXEL_FORMATS_EXT* = 0x00002000

-  WGL_DRAW_TO_WINDOW_EXT* = 0x00002001

-  WGL_DRAW_TO_BITMAP_EXT* = 0x00002002

-  WGL_ACCELERATION_EXT* = 0x00002003

-  WGL_NEED_PALETTE_EXT* = 0x00002004

-  WGL_NEED_SYSTEM_PALETTE_EXT* = 0x00002005

-  WGL_SWAP_LAYER_BUFFERS_EXT* = 0x00002006

-  WGL_SWAP_METHOD_EXT* = 0x00002007

-  WGL_NUMBER_OVERLAYS_EXT* = 0x00002008

-  WGL_NUMBER_UNDERLAYS_EXT* = 0x00002009

-  WGL_TRANSPARENT_EXT* = 0x0000200A

-  WGL_TRANSPARENT_VALUE_EXT* = 0x0000200B

-  WGL_SHARE_DEPTH_EXT* = 0x0000200C

-  WGL_SHARE_STENCIL_EXT* = 0x0000200D

-  WGL_SHARE_ACCUM_EXT* = 0x0000200E

-  WGL_SUPPORT_GDI_EXT* = 0x0000200F

-  WGL_SUPPORT_OPENGL_EXT* = 0x00002010

-  WGL_DOUBLE_BUFFER_EXT* = 0x00002011

-  WGL_STEREO_EXT* = 0x00002012

-  WGL_PIXELtyp_EXT* = 0x00002013

-  WGL_COLOR_BITS_EXT* = 0x00002014

-  WGL_RED_BITS_EXT* = 0x00002015

-  WGL_RED_SHIFT_EXT* = 0x00002016

-  WGL_GREEN_BITS_EXT* = 0x00002017

-  WGL_GREEN_SHIFT_EXT* = 0x00002018

-  WGL_BLUE_BITS_EXT* = 0x00002019

-  WGL_BLUE_SHIFT_EXT* = 0x0000201A

-  WGL_ALPHA_BITS_EXT* = 0x0000201B

-  WGL_ALPHA_SHIFT_EXT* = 0x0000201C

-  WGL_ACCUM_BITS_EXT* = 0x0000201D

-  WGL_ACCUM_RED_BITS_EXT* = 0x0000201E

-  WGL_ACCUM_GREEN_BITS_EXT* = 0x0000201F

-  WGL_ACCUM_BLUE_BITS_EXT* = 0x00002020

-  WGL_ACCUM_ALPHA_BITS_EXT* = 0x00002021

-  WGL_DEPTH_BITS_EXT* = 0x00002022

-  WGL_STENCIL_BITS_EXT* = 0x00002023

-  WGL_AUX_BUFFERS_EXT* = 0x00002024

-  WGL_NO_ACCELERATION_EXT* = 0x00002025

-  WGL_GENERIC_ACCELERATION_EXT* = 0x00002026

-  WGL_FULL_ACCELERATION_EXT* = 0x00002027

-  WGL_SWAP_EXCHANGE_EXT* = 0x00002028

-  WGL_SWAP_COPY_EXT* = 0x00002029

-  WGL_SWAP_UNDEFINED_EXT* = 0x0000202A

-  WGLtyp_RGBA_EXT* = 0x0000202B

-  WGLtyp_COLORINDEX_EXT* = 0x0000202C # WGL_I3D_digital_video_control

-  WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D* = 0x00002050

-  WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D* = 0x00002051

-  WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D* = 0x00002052

-  WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D* = 0x00002053 # WGL_I3D_gamma

-  WGL_GAMMA_TABLE_SIZE_I3D* = 0x0000204E

-  WGL_GAMMA_EXCLUDE_DESKTOP_I3D* = 0x0000204F # WGL_I3D_genlock

-  WGL_GENLOCK_SOURCE_MULTIVIEW_I3D* = 0x00002044

-  WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D* = 0x00002045

-  WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D* = 0x00002046

-  WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D* = 0x00002047

-  WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D* = 0x00002048

-  WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D* = 0x00002049

-  WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D* = 0x0000204A

-  WGL_GENLOCK_SOURCE_EDGE_RISING_I3D* = 0x0000204B

-  WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D* = 0x0000204C # WGL_I3D_image_buffer

-  WGL_IMAGE_BUFFER_MIN_ACCESS_I3D* = 0x00000001

-  WGL_IMAGE_BUFFER_LOCK_I3D* = 0x00000002 # WGL_NV_float_buffer

-  WGL_FLOAT_COMPONENTS_NV* = 0x000020B0

-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV* = 0x000020B1

-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV* = 0x000020B2

-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV* = 0x000020B3

-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV* = 0x000020B4

-  WGL_TEXTURE_FLOAT_R_NV* = 0x000020B5

-  WGL_TEXTURE_FLOAT_RG_NV* = 0x000020B6

-  WGL_TEXTURE_FLOAT_RGB_NV* = 0x000020B7

-  WGL_TEXTURE_FLOAT_RGBA_NV* = 0x000020B8 # WGL_NV_render_depth_texture

-  WGL_BIND_TO_TEXTURE_DEPTH_NV* = 0x000020A3

-  WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV* = 0x000020A4

-  WGL_DEPTH_TEXTURE_FORMAT_NV* = 0x000020A5

-  WGL_TEXTURE_DEPTH_COMPONENT_NV* = 0x000020A6

-  WGL_DEPTH_COMPONENT_NV* = 0x000020A7 # WGL_NV_render_texture_rectangle

-  WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV* = 0x000020A0

-  WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV* = 0x000020A1

-  WGL_TEXTURE_RECTANGLE_NV* = 0x000020A2 # WGL_NV_present_video

-  WGL_NUM_VIDEO_SLOTS_NV* = 0x000020F0 # WGL_NV_video_output

-  WGL_BIND_TO_VIDEO_RGB_NV* = 0x000020C0

-  WGL_BIND_TO_VIDEO_RGBA_NV* = 0x000020C1

-  WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV* = 0x000020C2

-  WGL_VIDEO_OUT_COLOR_NV* = 0x000020C3

-  WGL_VIDEO_OUT_ALPHA_NV* = 0x000020C4

-  WGL_VIDEO_OUT_DEPTH_NV* = 0x000020C5

-  WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV* = 0x000020C6

-  WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV* = 0x000020C7

-  WGL_VIDEO_OUT_FRAME* = 0x000020C8

-  WGL_VIDEO_OUT_FIELD_1* = 0x000020C9

-  WGL_VIDEO_OUT_FIELD_2* = 0x000020CA

-  WGL_VIDEO_OUT_STACKED_FIELDS_1_2* = 0x000020CB

-  WGL_VIDEO_OUT_STACKED_FIELDS_2_1* = 0x000020CC # WGL_NV_gpu_affinity

-  WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV* = 0x000020D0

-  WGL_ERROR_MISSING_AFFINITY_MASK_NV* = 0x000020D1 # WGL_NV_video_capture

-  WGL_UNIQUE_ID_NV* = 0x000020CE

-  WGL_NUM_VIDEO_CAPTURE_SLOTS_NV* = 0x000020CF # WGL_NV_multisample_coverage

-  WGL_COVERAGE_SAMPLES_NV* = 0x00002042

-  WGL_COLOR_SAMPLES_NV* = 0x000020B9 # WGL_EXT_create_context_es2_profile

-  WGL_CONTEXT_ES2_PROFILE_BIT_EXT* = 0x00000004 # WGL_NV_DX_interop

-  WGL_ACCESS_READ_ONLY_NV* = 0x00000000

-  WGL_ACCESS_READ_WRITE_NV* = 0x00000001

-  WGL_ACCESS_WRITE_DISCARD_NV* = 0x00000002 # WIN_draw_range_elements

-  GL_MAX_ELEMENTS_VERTICES_WIN* = 0x000080E8

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

-  GLX_VENDOR* = 1

-  GLX_VERSION* = 2

-  GLX_EXTENSIONS* = 3

-  GLX_USE_GL* = 1

-  GLX_BUFFER_SIZE* = 2

-  GLX_LEVEL* = 3

-  GLX_RGBA* = 4

-  GLX_DOUBLEBUFFER* = 5

-  GLX_STEREO* = 6

-  GLX_AUX_BUFFERS* = 7

-  GLX_RED_SIZE* = 8

-  GLX_GREEN_SIZE* = 9

-  GLX_BLUE_SIZE* = 10

-  GLX_ALPHA_SIZE* = 11

-  GLX_DEPTH_SIZE* = 12

-  GLX_STENCIL_SIZE* = 13

-  GLX_ACCUM_RED_SIZE* = 14

-  GLX_ACCUM_GREEN_SIZE* = 15

-  GLX_ACCUM_BLUE_SIZE* = 16

-  GLX_ACCUM_ALPHA_SIZE* = 17  # GLX_VERSION_1_3

-  GLX_WINDOW_BIT* = 0x00000001

-  GLX_PIXMAP_BIT* = 0x00000002

-  GLX_PBUFFER_BIT* = 0x00000004

-  GLX_RGBA_BIT* = 0x00000001

-  GLX_COLOR_INDEX_BIT* = 0x00000002

-  GLX_PBUFFER_CLOBBER_MASK* = 0x08000000

-  GLX_FRONT_LEFT_BUFFER_BIT* = 0x00000001

-  GLX_FRONT_RIGHT_BUFFER_BIT* = 0x00000002

-  GLX_BACK_LEFT_BUFFER_BIT* = 0x00000004

-  GLX_BACK_RIGHT_BUFFER_BIT* = 0x00000008

-  GLX_AUX_BUFFERS_BIT* = 0x00000010

-  GLX_DEPTH_BUFFER_BIT* = 0x00000020

-  GLX_STENCIL_BUFFER_BIT* = 0x00000040

-  GLX_ACCUM_BUFFER_BIT* = 0x00000080

-  GLX_CONFIG_CAVEAT* = 0x00000020

-  GLX_X_VISUALtyp* = 0x00000022

-  GLX_TRANSPARENTtyp* = 0x00000023

-  GLX_TRANSPARENT_INDEX_VALUE* = 0x00000024

-  GLX_TRANSPARENT_RED_VALUE* = 0x00000025

-  GLX_TRANSPARENT_GREEN_VALUE* = 0x00000026

-  GLX_TRANSPARENT_BLUE_VALUE* = 0x00000027

-  GLX_TRANSPARENT_ALPHA_VALUE* = 0x00000028

-  GLX_DONT_CARE* = 0xFFFFFFFF

-  GLX_NONE* = 0x00008000

-  GLX_SLOW_CONFIG* = 0x00008001

-  GLX_TRUE_COLOR* = 0x00008002

-  GLX_DIRECT_COLOR* = 0x00008003

-  GLX_PSEUDO_COLOR* = 0x00008004

-  GLX_STATIC_COLOR* = 0x00008005

-  GLX_GRAY_SCALE* = 0x00008006

-  GLX_STATIC_GRAY* = 0x00008007

-  GLX_TRANSPARENT_RGB* = 0x00008008

-  GLX_TRANSPARENT_INDEX* = 0x00008009

-  GLX_VISUAL_ID* = 0x0000800B

-  GLX_SCREEN* = 0x0000800C

-  GLX_NON_CONFORMANT_CONFIG* = 0x0000800D

-  GLX_DRAWABLEtyp* = 0x00008010

-  GLX_RENDERtyp* = 0x00008011

-  GLX_X_RENDERABLE* = 0x00008012

-  GLX_FBCONFIG_ID* = 0x00008013

-  GLX_RGBAtyp* = 0x00008014

-  GLX_COLOR_INDEXtyp* = 0x00008015

-  GLX_MAX_PBUFFER_WIDTH* = 0x00008016

-  GLX_MAX_PBUFFER_HEIGHT* = 0x00008017

-  GLX_MAX_PBUFFER_PIXELS* = 0x00008018

-  GLX_PRESERVED_CONTENTS* = 0x0000801B

-  GLX_LARGEST_PBUFFER* = 0x0000801C

-  GLX_WIDTH* = 0x0000801D

-  GLX_HEIGHT* = 0x0000801E

-  GLX_EVENT_MASK* = 0x0000801F

-  GLX_DAMAGED* = 0x00008020

-  GLX_SAVED* = 0x00008021

-  cGLX_WINDOW* = 0x00008022

-  cGLX_PBUFFER* = 0x00008023

-  GLX_PBUFFER_HEIGHT* = 0x00008040

-  GLX_PBUFFER_WIDTH* = 0x00008041 # GLX_VERSION_1_4

-  GLX_SAMPLE_BUFFERS* = 100000

-  GLX_SAMPLES* = 100001       # GLX_ARB_multisample

-  GLX_SAMPLE_BUFFERS_ARB* = 100000

-  GLX_SAMPLES_ARB* = 100001   # GLX_ARB_fbconfig_float

-  GLX_RGBA_FLOATtyp_ARB* = 0x000020B9

-  GLX_RGBA_FLOAT_BIT_ARB* = 0x00000004 # GLX_ARB_create_context

-  GLX_CONTEXT_DEBUG_BIT_ARB* = 0x00000001

-  GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB* = 0x00000002

-  GLX_CONTEXT_MAJOR_VERSION_ARB* = 0x00002091

-  GLX_CONTEXT_MINOR_VERSION_ARB* = 0x00002092

-  GLX_CONTEXT_FLAGS_ARB* = 0x00002094 # GLX_ARB_create_context_profile

-  GLX_CONTEXT_CORE_PROFILE_BIT_ARB* = 0x00000001

-  GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB* = 0x00000002

-  GLX_CONTEXT_PROFILE_MASK_ARB* = 0x00009126 # GLX_ARB_vertex_buffer_object

-  GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB* = 0x00002095 # 

-                                                                 # GLX_ARB_framebuffer_sRGB

-  GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB* = 0x000020B2 # 

-                                                 # GLX_ARB_create_context_robustness

-  GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB* = 0x00000004

-  GLX_LOSE_CONTEXT_ON_RESET_ARB* = 0x00008252

-  GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB* = 0x00008256

-  GLX_NO_RESET_NOTIFICATION_ARB* = 0x00008261 # GLX_EXT_visual_info

-  GLX_X_VISUALtyp_EXT* = 0x00000022

-  GLX_TRANSPARENTtyp_EXT* = 0x00000023

-  GLX_TRANSPARENT_INDEX_VALUE_EXT* = 0x00000024

-  GLX_TRANSPARENT_RED_VALUE_EXT* = 0x00000025

-  GLX_TRANSPARENT_GREEN_VALUE_EXT* = 0x00000026

-  GLX_TRANSPARENT_BLUE_VALUE_EXT* = 0x00000027

-  GLX_TRANSPARENT_ALPHA_VALUE_EXT* = 0x00000028

-  GLX_NONE_EXT* = 0x00008000

-  GLX_TRUE_COLOR_EXT* = 0x00008002

-  GLX_DIRECT_COLOR_EXT* = 0x00008003

-  GLX_PSEUDO_COLOR_EXT* = 0x00008004

-  GLX_STATIC_COLOR_EXT* = 0x00008005

-  GLX_GRAY_SCALE_EXT* = 0x00008006

-  GLX_STATIC_GRAY_EXT* = 0x00008007

-  GLX_TRANSPARENT_RGB_EXT* = 0x00008008

-  GLX_TRANSPARENT_INDEX_EXT* = 0x00008009 # GLX_EXT_visual_rating

-  GLX_VISUAL_CAVEAT_EXT* = 0x00000020

-  GLX_SLOW_VISUAL_EXT* = 0x00008001

-  GLX_NON_CONFORMANT_VISUAL_EXT* = 0x0000800D # reuse GLX_NONE_EXT 

-                                              # GLX_EXT_import_context

-  GLX_SHARE_CONTEXT_EXT* = 0x0000800A

-  GLX_VISUAL_ID_EXT* = 0x0000800B

-  GLX_SCREEN_EXT* = 0x0000800C # GLX_EXT_fbconfig_packed_float

-                               #  GLX_RGBA_UNSIGNED_FLOATtyp_EXT = $20B1;

-                               #  GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;

-                               # GLX_EXT_framebuffer_sRGB

-                               #  GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;

-                               # GLX_EXT_texture_from_pixmap

-  GLX_TEXTURE_1D_BIT_EXT* = 0x00000001

-  GLX_TEXTURE_2D_BIT_EXT* = 0x00000002

-  GLX_TEXTURE_RECTANGLE_BIT_EXT* = 0x00000004

-  GLX_BIND_TO_TEXTURE_RGB_EXT* = 0x000020D0

-  GLX_BIND_TO_TEXTURE_RGBA_EXT* = 0x000020D1

-  GLX_BIND_TO_MIPMAP_TEXTURE_EXT* = 0x000020D2

-  GLX_BIND_TO_TEXTURE_TARGETS_EXT* = 0x000020D3

-  GLX_Y_INVERTED_EXT* = 0x000020D4

-  GLX_TEXTURE_FORMAT_EXT* = 0x000020D5

-  GLX_TEXTURE_TARGET_EXT* = 0x000020D6

-  GLX_MIPMAP_TEXTURE_EXT* = 0x000020D7

-  GLX_TEXTURE_FORMAT_NONE_EXT* = 0x000020D8

-  GLX_TEXTURE_FORMAT_RGB_EXT* = 0x000020D9

-  GLX_TEXTURE_FORMAT_RGBA_EXT* = 0x000020DA

-  GLX_TEXTURE_1D_EXT* = 0x000020DB

-  GLX_TEXTURE_2D_EXT* = 0x000020DC

-  GLX_TEXTURE_RECTANGLE_EXT* = 0x000020DD

-  GLX_FRONT_LEFT_EXT* = 0x000020DE

-  GLX_FRONT_RIGHT_EXT* = 0x000020DF

-  GLX_BACK_LEFT_EXT* = 0x000020E0

-  GLX_BACK_RIGHT_EXT* = 0x000020E1

-  GLX_FRONT_EXT* = GLX_FRONT_LEFT_EXT

-  GLX_BACK_EXT* = GLX_BACK_LEFT_EXT

-  GLX_AUX0_EXT* = 0x000020E2

-  GLX_AUX1_EXT* = 0x000020E3

-  GLX_AUX2_EXT* = 0x000020E4

-  GLX_AUX3_EXT* = 0x000020E5

-  GLX_AUX4_EXT* = 0x000020E6

-  GLX_AUX5_EXT* = 0x000020E7

-  GLX_AUX6_EXT* = 0x000020E8

-  GLX_AUX7_EXT* = 0x000020E9

-  GLX_AUX8_EXT* = 0x000020EA

-  GLX_AUX9_EXT* = 0x000020EB  # GLX_EXT_swap_control

-  GLX_SWAP_INTERVAL_EXT* = 0x000020F1

-  GLX_MAX_SWAP_INTERVAL_EXT* = 0x000020F2 # GLX_EXT_create_context_es2_profile

-  GLX_CONTEXT_ES2_PROFILE_BIT_EXT* = 0x00000004 # GLU

-  GLU_INVALID_ENUM* = 100900

-  GLU_INVALID_VALUE* = 100901

-  GLU_OUT_OF_MEMORY* = 100902

-  GLU_INCOMPATIBLE_GL_VERSION* = 100903

-  GLU_VERSION* = 100800

-  GLU_EXTENSIONS* = 100801

-  GLU_TRUE* = GL_TRUE

-  GLU_FALSE* = GL_FALSE

-  GLU_SMOOTH* = 100000

-  GLU_FLAT* = 100001

-  GLU_NONE* = 100002

-  GLU_POINT* = 100010

-  GLU_LINE* = 100011

-  GLU_FILL* = 100012

-  GLU_SILHOUETTE* = 100013

-  GLU_OUTSIDE* = 100020

-  GLU_INSIDE* = 100021

-  GLU_TESS_MAX_COORD* = 1.0000000000000005e+150

-  GLU_TESS_WINDING_RULE* = 100140

-  GLU_TESS_BOUNDARY_ONLY* = 100141

-  GLU_TESS_TOLERANCE* = 100142

-  GLU_TESS_WINDING_ODD* = 100130

-  GLU_TESS_WINDING_NONZERO* = 100131

-  GLU_TESS_WINDING_POSITIVE* = 100132

-  GLU_TESS_WINDING_NEGATIVE* = 100133

-  GLU_TESS_WINDING_ABS_GEQ_TWO* = 100134

-  GLU_TESS_BEGIN* = 100100    # TGLUTessBeginProc

-  cGLU_TESS_VERTEX* = 100101   # TGLUTessVertexProc

-  GLU_TESS_END* = 100102      # TGLUTessEndProc

-  GLU_TESS_ERROR* = 100103    # TGLUTessErrorProc

-  GLU_TESS_EDGE_FLAG* = 100104 # TGLUTessEdgeFlagProc

-  GLU_TESS_COMBINE* = 100105  # TGLUTessCombineProc

-  GLU_TESS_BEGIN_DATA* = 100106 # TGLUTessBeginDataProc

-  GLU_TESS_VERTEX_DATA* = 100107 # TGLUTessVertexDataProc

-  GLU_TESS_END_DATA* = 100108 # TGLUTessEndDataProc

-  GLU_TESS_ERROR_DATA* = 100109 # TGLUTessErrorDataProc

-  GLU_TESS_EDGE_FLAG_DATA* = 100110 # TGLUTessEdgeFlagDataProc

-  GLU_TESS_COMBINE_DATA* = 100111 # TGLUTessCombineDataProc

-  GLU_TESS_ERROR1* = 100151

-  GLU_TESS_ERROR2* = 100152

-  GLU_TESS_ERROR3* = 100153

-  GLU_TESS_ERROR4* = 100154

-  GLU_TESS_ERROR5* = 100155

-  GLU_TESS_ERROR6* = 100156

-  GLU_TESS_ERROR7* = 100157

-  GLU_TESS_ERROR8* = 100158

-  GLU_TESS_MISSING_BEGIN_POLYGON* = GLU_TESS_ERROR1

-  GLU_TESS_MISSING_BEGIN_CONTOUR* = GLU_TESS_ERROR2

-  GLU_TESS_MISSING_END_POLYGON* = GLU_TESS_ERROR3

-  GLU_TESS_MISSING_END_CONTOUR* = GLU_TESS_ERROR4

-  GLU_TESS_COORD_TOO_LARGE* = GLU_TESS_ERROR5

-  GLU_TESS_NEED_COMBINE_CALLBACK* = GLU_TESS_ERROR6

-  GLU_AUTO_LOAD_MATRIX* = 100200

-  GLU_CULLING* = 100201

-  GLU_SAMPLING_TOLERANCE* = 100203

-  GLU_DISPLAY_MODE* = 100204

-  GLU_PARAMETRIC_TOLERANCE* = 100202

-  GLU_SAMPLING_METHOD* = 100205

-  GLU_U_STEP* = 100206

-  GLU_V_STEP* = 100207

-  GLU_PATH_LENGTH* = 100215

-  GLU_PARAMETRIC_ERROR* = 100216

-  GLU_DOMAIN_DISTANCE* = 100217

-  GLU_MAP1_TRIM_2* = 100210

-  GLU_MAP1_TRIM_3* = 100211

-  GLU_OUTLINE_POLYGON* = 100240

-  GLU_OUTLINE_PATCH* = 100241

-  GLU_NURBS_ERROR1* = 100251

-  GLU_NURBS_ERROR2* = 100252

-  GLU_NURBS_ERROR3* = 100253

-  GLU_NURBS_ERROR4* = 100254

-  GLU_NURBS_ERROR5* = 100255

-  GLU_NURBS_ERROR6* = 100256

-  GLU_NURBS_ERROR7* = 100257

-  GLU_NURBS_ERROR8* = 100258

-  GLU_NURBS_ERROR9* = 100259

-  GLU_NURBS_ERROR10* = 100260

-  GLU_NURBS_ERROR11* = 100261

-  GLU_NURBS_ERROR12* = 100262

-  GLU_NURBS_ERROR13* = 100263

-  GLU_NURBS_ERROR14* = 100264

-  GLU_NURBS_ERROR15* = 100265

-  GLU_NURBS_ERROR16* = 100266

-  GLU_NURBS_ERROR17* = 100267

-  GLU_NURBS_ERROR18* = 100268

-  GLU_NURBS_ERROR19* = 100269

-  GLU_NURBS_ERROR20* = 100270

-  GLU_NURBS_ERROR21* = 100271

-  GLU_NURBS_ERROR22* = 100272

-  GLU_NURBS_ERROR23* = 100273

-  GLU_NURBS_ERROR24* = 100274

-  GLU_NURBS_ERROR25* = 100275

-  GLU_NURBS_ERROR26* = 100276

-  GLU_NURBS_ERROR27* = 100277

-  GLU_NURBS_ERROR28* = 100278

-  GLU_NURBS_ERROR29* = 100279

-  GLU_NURBS_ERROR30* = 100280

-  GLU_NURBS_ERROR31* = 100281

-  GLU_NURBS_ERROR32* = 100282

-  GLU_NURBS_ERROR33* = 100283

-  GLU_NURBS_ERROR34* = 100284

-  GLU_NURBS_ERROR35* = 100285

-  GLU_NURBS_ERROR36* = 100286

-  GLU_NURBS_ERROR37* = 100287

-  GLU_CW* = 100120

-  GLU_CCW* = 100121

-  GLU_INTERIOR* = 100122

-  GLU_EXTERIOR* = 100123

-  GLU_UNKNOWN* = 100124

-  GLU_BEGIN* = GLU_TESS_BEGIN

-  GLU_VERTEX* = cGLU_TESS_VERTEX

-  GLU_END* = GLU_TESS_END

-  GLU_ERROR* = GLU_TESS_ERROR

-  GLU_EDGE_FLAG* = GLU_TESS_EDGE_FLAG

-

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

-  # GL_VERSION_1_1

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

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

-    stdcall, importc, ogl.}

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

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

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

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

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

-    stdcall, importc, ogl.}

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

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

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

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

-    stdcall, importc, ogl.}

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

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

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

-    stdcall, importc, ogl.}

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

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

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

-    stdcall, importc, ogl.}

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

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-  # GL_VERSION_1_2

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

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

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

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

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

-    stdcall, importc, ogl.}

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

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

-    stdcall, importc, ogl.}

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

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

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

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

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

-    stdcall, importc, ogl.}

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

-    stdcall, importc, ogl.}

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

-    stdcall, importc, ogl.}

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

-    stdcall, importc, ogl.}

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

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

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

-    stdcall, importc, ogl.}

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

-    stdcall, importc, ogl.}

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

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

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

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

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

-  # GL_VERSION_1_3

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

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

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

-                             internalformat: GLenum, width: GLsizei, 

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

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

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

-                             internalformat: GLenum, width: GLsizei, 

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

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

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

-                             internalformat: GLenum, width: GLsizei, 

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

-                                format: GLenum, imageSize: GLsizei, 

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

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

-                                width: GLsizei, format: GLenum, 

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

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

-    stdcall, importc, ogl.}

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

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

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

-  # GL_VERSION_1_4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-  # GL_VERSION_1_5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

-    stdcall, importc, ogl.}

-  # GL_VERSION_2_0

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

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

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

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

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

-    stdcall, importc, ogl.}

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

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

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

-    stdcall, importc, ogl.}

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

-    stdcall, importc, ogl.}

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

-    stdcall, importc, ogl.}

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

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

-    stdcall, importc, ogl.}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-                         value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix3fv*(location: GLint, count: GLsizei, transpose: GLboolean, 

-                         value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix4fv*(location: GLint, count: GLsizei, transpose: GLboolean, 

-                         value: PGLfloat){.stdcall, importc, ogl.}

-proc glValidateProgram*(programObj: GLhandle){.stdcall, importc, ogl.}

-proc glVertexAttrib1d*(index: GLuint, x: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib1dv*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib1f*(index: GLuint, x: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib1fv*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib1s*(index: GLuint, x: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib1sv*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib2d*(index: GLuint, x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib2dv*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib2f*(index: GLuint, x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib2fv*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib2s*(index: GLuint, x: GLshort, y: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib2sv*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib3d*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3dv*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib3f*(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3fv*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib3s*(index: GLuint, x: GLshort, y: GLshort, z: GLshort){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3sv*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4Nbv*(index: GLuint, v: PGLbyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4Niv*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttrib4Nsv*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4Nub*(index: GLuint, x: GLubyte, y: GLubyte, z: GLubyte, 

-                         w: GLubyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4Nubv*(index: GLuint, v: PGLubyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4Nuiv*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttrib4Nusv*(index: GLuint, v: PGLushort){.stdcall, importc, ogl.}

-proc glVertexAttrib4bv*(index: GLuint, v: PGLbyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4d*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble, 

-                       w: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib4dv*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib4f*(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, 

-                       w: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib4fv*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib4iv*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttrib4s*(index: GLuint, x: GLshort, y: GLshort, z: GLshort, 

-                       w: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4sv*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4ubv*(index: GLuint, v: PGLubyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4uiv*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttrib4usv*(index: GLuint, v: PGLushort){.stdcall, importc, ogl.}

-proc glVertexAttribPointer*(index: GLuint, size: GLint, typ: GLenum, 

-                            normalized: GLboolean, stride: GLsizei, 

-                            pointer: PGLvoid){.stdcall, importc, ogl.}

-  # GL_VERSION_2_1

-proc glUniformMatrix2x3fv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix3x2fv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix2x4fv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix4x2fv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix3x4fv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix4x3fv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-  # GL_VERSION_3_0

-  # OpenGL 3.0 also reuses entry points from these extensions: 

-  # ARB_framebuffer_object 

-  # ARB_map_buffer_range 

-  # ARB_vertex_array_object 

-proc glColorMaski*(index: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, 

-                   a: GLboolean){.stdcall, importc, ogl.}

-proc glGetBooleani_v*(target: GLenum, index: GLuint, data: PGLboolean){.stdcall, importc, ogl.}

-proc glGetIntegeri_v*(target: GLenum, index: GLuint, data: PGLint){.stdcall, importc, ogl.}

-proc glEnablei*(target: GLenum, index: GLuint){.stdcall, importc, ogl.}

-proc glDisablei*(target: GLenum, index: GLuint){.stdcall, importc, ogl.}

-proc glIsEnabledi*(target: GLenum, index: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glBeginTransformFeedback*(primitiveMode: GLenum){.stdcall, importc, ogl.}

-proc glEndTransformFeedback*(){.stdcall, importc, ogl.}

-proc glBindBufferRange*(target: GLenum, index: GLuint, buffer: GLuint, 

-                        offset: GLintptr, size: GLsizeiptr){.stdcall, importc, ogl.}

-proc glBindBufferBase*(target: GLenum, index: GLuint, buffer: GLuint){.stdcall, importc, ogl.}

-proc glTransformFeedbackVaryings*(prog: GLuint, count: GLsizei, 

-                                  varyings: cstringArray, bufferMode: GLenum){.

-    stdcall, importc, ogl.}

-proc glGetTransformFeedbackVarying*(prog: GLuint, index: GLuint, 

-                                    bufSize: GLsizei, len: PGLsizei, 

-                                    size: PGLsizei, typ: PGLsizei, name: PGLchar){.

-    stdcall, importc, ogl.}

-proc glClampColor*(targe: GLenum, clamp: GLenum){.stdcall, importc, ogl.}

-proc glBeginConditionalRender*(id: GLuint, mode: GLenum){.stdcall, importc, ogl.}

-proc glEndConditionalRender*(){.stdcall, importc, ogl.}

-proc glVertexAttribIPointer*(index: GLuint, size: GLint, typ: GLenum, 

-                             stride: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glGetVertexAttribIiv*(index: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribIuiv*(index: GLuint, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-proc glVertexAttribI1i*(index: GLuint, x: GLint){.stdcall, importc, ogl.}

-proc glVertexAttribI2i*(index: GLuint, x: GLint, y: GLint){.stdcall, importc, ogl.}

-proc glVertexAttribI3i*(index: GLuint, x: GLint, y: GLint, z: GLint){.stdcall, importc, ogl.}

-proc glVertexAttribI4i*(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint){.

-    stdcall, importc, ogl.}

-proc glVertexAttribI1ui*(index: GLuint, x: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI2ui*(index: GLuint, x: GLuint, y: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI3ui*(index: GLuint, x: GLuint, y: GLuint, z: GLuint){.

-    stdcall, importc, ogl.}

-proc glVertexAttribI4ui*(index: GLuint, x: GLuint, y: GLuint, z: GLuint, 

-                         w: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI1iv*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttribI2iv*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttribI3iv*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttribI4iv*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttribI1uiv*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI2uiv*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI3uiv*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI4uiv*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI4bv*(index: GLuint, v: PGLbyte){.stdcall, importc, ogl.}

-proc glVertexAttribI4sv*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttribI4ubv*(index: GLuint, v: PGLubyte){.stdcall, importc, ogl.}

-proc glVertexAttribI4usv*(index: GLuint, v: PGLushort){.stdcall, importc, ogl.}

-proc glGetUniformuiv*(prog: GLuint, location: GLint, params: PGLuint){.stdcall, importc, ogl.}

-proc glBindFragDataLocation*(prog: GLuint, color: GLuint, name: PGLChar){.

-    stdcall, importc, ogl.}

-proc glGetFragDataLocation*(prog: GLuint, name: PGLChar): GLint{.stdcall, importc, ogl.}

-proc glUniform1ui*(location: GLint, v0: GLuint){.stdcall, importc, ogl.}

-proc glUniform2ui*(location: GLint, v0: GLuint, v1: GLuint){.stdcall, importc, ogl.}

-proc glUniform3ui*(location: GLint, v0: GLuint, v1: GLuint, v2: GLuint){.stdcall, importc, ogl.}

-proc glUniform4ui*(location: GLint, v0: GLuint, v1: GLuint, v2: GLuint, 

-                   v3: GLuint){.stdcall, importc, ogl.}

-proc glUniform1uiv*(location: GLint, count: GLsizei, value: PGLuint){.stdcall, importc, ogl.}

-proc glUniform2uiv*(location: GLint, count: GLsizei, value: PGLuint){.stdcall, importc, ogl.}

-proc glUniform3uiv*(location: GLint, count: GLsizei, value: PGLuint){.stdcall, importc, ogl.}

-proc glUniform4uiv*(location: GLint, count: GLsizei, value: PGLuint){.stdcall, importc, ogl.}

-proc glTexParameterIiv*(target: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glTexParameterIuiv*(target: GLenum, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-proc glGetTexParameterIiv*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetTexParameterIuiv*(target: GLenum, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-proc glClearBufferiv*(buffer: GLenum, drawbuffer: GLint, value: PGLint){.stdcall, importc, ogl.}

-proc glClearBufferuiv*(buffer: GLenum, drawbuffer: GLint, value: PGLuint){.

-    stdcall, importc, ogl.}

-proc glClearBufferfv*(buffer: GLenum, drawbuffer: GLint, value: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glClearBufferfi*(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, 

-                      stencil: GLint){.stdcall, importc, ogl.}

-proc glGetStringi*(name: GLenum, index: GLuint): PGLubyte{.stdcall, importc, ogl.}

-  # GL_VERSION_3_1

-  # OpenGL 3.1 also reuses entry points from these extensions: 

-  # ARB_copy_buffer 

-  # ARB_uniform_buffer_object 

-proc glDrawArraysInstanced*(mode: GLenum, first: GLint, count: GLsizei, 

-                            primcount: GLsizei){.stdcall, importc, ogl.}

-proc glDrawElementsInstanced*(mode: GLenum, count: GLsizei, typ: GLenum, 

-                              indices: PGLvoid, primcount: GLsizei){.stdcall, importc, ogl.}

-proc glTexBuffer*(target: GLenum, internalformat: GLenum, buffer: GLuint){.

-    stdcall, importc, ogl.}

-proc glPrimitiveRestartIndex*(index: GLuint){.stdcall, importc, ogl.}

-  # GL_VERSION_3_2

-  # OpenGL 3.2 also reuses entry points from these extensions: 

-  # ARB_draw_elements_base_vertex 

-  # ARB_provoking_vertex 

-  # ARB_sync 

-  # ARB_texture_multisample 

-proc glGetInteger64i_v*(target: GLenum, index: GLuint, data: PGLint64){.stdcall, importc, ogl.}

-proc glGetBufferParameteri64v*(target: GLenum, pname: GLenum, params: PGLint64){.

-    stdcall, importc, ogl.}

-proc glFramebufferTexture*(target: GLenum, attachment: GLenum, texture: GLuint, 

-                           level: GLint){.stdcall, importc, ogl.}

-  #procedure glFramebufferTextureFace(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); stdcall, importc, ogl;

-  # GL_VERSION_3_3

-  # OpenGL 3.3 also reuses entry points from these extensions: 

-  # ARB_blend_func_extended 

-  # ARB_sampler_objects 

-  # ARB_explicit_attrib_location, but it has none 

-  # ARB_occlusion_query2 (no entry points) 

-  # ARB_shader_bit_encoding (no entry points) 

-  # ARB_texture_rgb10_a2ui (no entry points) 

-  # ARB_texture_swizzle (no entry points) 

-  # ARB_timer_query 

-  # ARB_vertextyp_2_10_10_10_rev 

-proc glVertexAttribDivisor*(index: GLuint, divisor: GLuint){.stdcall, importc, ogl.}

-  # GL_VERSION_4_0

-  # OpenGL 4.0 also reuses entry points from these extensions: 

-  # ARB_texture_query_lod (no entry points) 

-  # ARB_draw_indirect 

-  # ARB_gpu_shader5 (no entry points) 

-  # ARB_gpu_shader_fp64 

-  # ARB_shader_subroutine 

-  # ARB_tessellation_shader 

-  # ARB_texture_buffer_object_rgb32 (no entry points) 

-  # ARB_texture_cube_map_array (no entry points) 

-  # ARB_texture_gather (no entry points) 

-  # ARB_transform_feedback2 

-  # ARB_transform_feedback3 

-proc glMinSampleShading*(value: GLclampf){.stdcall, importc, ogl.}

-proc glBlendEquationi*(buf: GLuint, mode: GLenum){.stdcall, importc, ogl.}

-proc glBlendEquationSeparatei*(buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum){.

-    stdcall, importc, ogl.}

-proc glBlendFunci*(buf: GLuint, src: GLenum, dst: GLenum){.stdcall, importc, ogl.}

-proc glBlendFuncSeparatei*(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, 

-                           srcAlpha: GLenum, dstAlpha: GLenum){.stdcall, importc, ogl.}

-  # GL_VERSION_4_1

-  # OpenGL 4.1 also reuses entry points from these extensions: 

-  # ARB_ES2_compatibility 

-  # ARB_get_program_binary 

-  # ARB_separate_shader_objects 

-  # ARB_shader_precision (no entry points) 

-  # ARB_vertex_attrib_64bit 

-  # ARB_viewport_array 

-  # GL_3DFX_tbuffer

-proc glTbufferMask3DFX*(mask: GLuint){.stdcall, importc, ogl.}

-  # GL_APPLE_element_array

-proc glElementPointerAPPLE*(typ: GLenum, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glDrawElementArrayAPPLE*(mode: GLenum, first: GLint, count: GLsizei){.

-    stdcall, importc, ogl.}

-proc glDrawRangeElementArrayAPPLE*(mode: GLenum, start: GLuint, ending: GLuint, 

-                                   first: GLint, count: GLsizei){.stdcall, importc, ogl.}

-proc glMultiDrawElementArrayAPPLE*(mode: GLenum, first: PGLint, count: PGLsizei, 

-                                   primcount: GLsizei){.stdcall, importc, ogl.}

-proc glMultiDrawRangeElementArrayAPPLE*(mode: GLenum, start: GLuint, 

-                                        ending: GLuint, first: PGLint, 

-                                        count: PGLsizei, primcount: GLsizei){.

-    stdcall, importc, ogl.}

-  # GL_APPLE_fence

-proc glGenFencesAPPLE*(n: GLsizei, fences: PGLuint){.stdcall, importc, ogl.}

-proc glDeleteFencesAPPLE*(n: GLsizei, fences: PGLuint){.stdcall, importc, ogl.}

-proc glSetFenceAPPLE*(fence: GLuint){.stdcall, importc, ogl.}

-proc glIsFenceAPPLE*(fence: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glTestFenceAPPLE*(fence: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glFinishFenceAPPLE*(fence: GLuint){.stdcall, importc, ogl.}

-proc glTestObjectAPPLE*(obj: GLenum, name: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glFinishObjectAPPLE*(obj: GLenum, name: GLint){.stdcall, importc, ogl.}

-  # GL_APPLE_vertex_array_object

-proc glBindVertexArrayAPPLE*(arr: GLuint){.stdcall, importc, ogl.}

-proc glDeleteVertexArraysAPPLE*(n: GLsizei, arrays: PGLuint){.stdcall, importc, ogl.}

-proc glGenVertexArraysAPPLE*(n: GLsizei, arrays: PGLuint){.stdcall, importc, ogl.}

-proc glIsVertexArrayAPPLE*(arr: GLuint): GLboolean{.stdcall, importc, ogl.}

-  # GL_APPLE_vertex_array_range

-proc glVertexArrayRangeAPPLE*(len: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glFlushVertexArrayRangeAPPLE*(len: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glVertexArrayParameteriAPPLE*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-  # GL_APPLE_texture_range

-proc glTextureRangeAPPLE*(target: GLenum, len: GLsizei, Pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetTexParameterPointervAPPLE*(target: GLenum, pname: GLenum, 

-                                     params: PPGLvoid){.stdcall, importc, ogl.}

-  # GL_APPLE_vertex_program_evaluators

-proc glEnableVertexAttribAPPLE*(index: GLuint, pname: GLenum){.stdcall, importc, ogl.}

-proc glDisableVertexAttribAPPLE*(index: GLuint, pname: GLenum){.stdcall, importc, ogl.}

-proc glIsVertexAttribEnabledAPPLE*(index: GLuint, pname: GLenum): GLboolean{.

-    stdcall, importc, ogl.}

-proc glMapVertexAttrib1dAPPLE*(index: GLuint, size: GLuint, u1: GLdouble, 

-                               u2: GLdouble, stride: GLint, order: GLint, 

-                               points: PGLdouble){.stdcall, importc, ogl.}

-proc glMapVertexAttrib1fAPPLE*(index: GLuint, size: GLuint, u1: GLfloat, 

-                               u2: GLfloat, stride: GLint, order: GLint, 

-                               points: PGLfloat){.stdcall, importc, ogl.}

-proc glMapVertexAttrib2dAPPLE*(index: GLuint, size: GLuint, u1: GLdouble, 

-                               u2: GLdouble, ustride: GLint, uorder: GLint, 

-                               v1: GLdouble, v2: GLdouble, vstride: GLint, 

-                               vorder: GLint, points: PGLdouble){.stdcall, importc, ogl.}

-proc glMapVertexAttrib2fAPPLE*(index: GLuint, size: GLuint, u1: GLfloat, 

-                               u2: GLfloat, ustride: GLint, order: GLint, 

-                               v1: GLfloat, v2: GLfloat, vstride: GLint, 

-                               vorder: GLint, points: GLfloat){.stdcall, importc, ogl.}

-  # GL_APPLE_object_purgeable

-proc glObjectPurgeableAPPLE*(objectType: GLenum, name: GLuint, option: GLenum): GLenum{.

-    stdcall, importc, ogl.}

-proc glObjectUnpurgeableAPPLE*(objectType: GLenum, name: GLuint, option: GLenum): GLenum{.

-    stdcall, importc, ogl.}

-proc glGetObjectParameterivAPPLE*(objectType: GLenum, name: GLuint, 

-                                  pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-  # GL_ARB_matrix_palette

-proc glCurrentPaletteMatrixARB*(index: GLint){.stdcall, importc, ogl.}

-proc glMatrixIndexubvARB*(size: GLint, indices: PGLubyte){.stdcall, importc, ogl.}

-proc glMatrixIndexusvARB*(size: GLint, indices: PGLushort){.stdcall, importc, ogl.}

-proc glMatrixIndexuivARB*(size: GLint, indices: PGLuint){.stdcall, importc, ogl.}

-proc glMatrixIndexPointerARB*(size: GLint, typ: GLenum, stride: GLsizei, 

-                              pointer: PGLvoid){.stdcall, importc, ogl.}

-  # GL_ARB_multisample

-proc glSampleCoverageARB*(value: GLclampf, invert: GLboolean){.stdcall, importc, ogl.}

-  # GL_ARB_multitexture

-proc glActiveTextureARB*(texture: GLenum){.stdcall, importc, ogl.}

-proc glClientActiveTextureARB*(texture: GLenum){.stdcall, importc, ogl.}

-proc glMultiTexCoord1dARB*(target: GLenum, s: GLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord1dvARB*(target: GLenum, v: PGLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord1fARB*(target: GLenum, s: GLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord1fvARB*(target: GLenum, v: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord1iARB*(target: GLenum, s: GLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord1ivARB*(target: GLenum, v: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord1sARB*(target: GLenum, s: GLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord1svARB*(target: GLenum, v: PGLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord2dARB*(target: GLenum, s: GLdouble, t: GLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord2dvARB*(target: GLenum, v: PGLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord2fARB*(target: GLenum, s: GLfloat, t: GLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord2fvARB*(target: GLenum, v: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord2iARB*(target: GLenum, s: GLint, t: GLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord2ivARB*(target: GLenum, v: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord2sARB*(target: GLenum, s: GLshort, t: GLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord2svARB*(target: GLenum, v: PGLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord3dARB*(target: GLenum, s: GLdouble, t: GLdouble, r: GLdouble){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoord3dvARB*(target: GLenum, v: PGLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord3fARB*(target: GLenum, s: GLfloat, t: GLfloat, r: GLfloat){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoord3fvARB*(target: GLenum, v: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord3iARB*(target: GLenum, s: GLint, t: GLint, r: GLint){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoord3ivARB*(target: GLenum, v: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord3sARB*(target: GLenum, s: GLshort, t: GLshort, r: GLshort){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoord3svARB*(target: GLenum, v: PGLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord4dARB*(target: GLenum, s: GLdouble, t: GLdouble, 

-                           r: GLdouble, q: GLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord4dvARB*(target: GLenum, v: PGLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord4fARB*(target: GLenum, s: GLfloat, t: GLfloat, r: GLfloat, 

-                           q: GLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord4fvARB*(target: GLenum, v: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord4iARB*(target: GLenum, s: GLint, t: GLint, r: GLint, 

-                           q: GLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord4ivARB*(target: GLenum, v: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord4sARB*(target: GLenum, s: GLshort, t: GLshort, r: GLshort, 

-                           q: GLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord4svARB*(target: GLenum, v: PGLshort){.stdcall, importc, ogl.}

-  # GL_ARB_point_parameters

-proc glPointParameterfARB*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glPointParameterfvARB*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_ARB_texture_compression

-proc glCompressedTexImage3DARB*(target: GLenum, level: GLint, 

-                                internalformat: GLenum, width: GLsizei, 

-                                height: GLsizei, depth: GLsizei, border: GLint, 

-                                imageSize: GLsizei, data: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTexImage2DARB*(target: GLenum, level: GLint, 

-                                internalformat: GLenum, width: GLsizei, 

-                                height: GLsizei, border: GLint, 

-                                imageSize: GLsizei, data: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTexImage1DARB*(target: GLenum, level: GLint, 

-                                internalformat: GLenum, width: GLsizei, 

-                                border: GLint, imageSize: GLsizei, data: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glCompressedTexSubImage3DARB*(target: GLenum, level: GLint, xoffset: GLint, 

-                                   yoffset: GLint, zoffset: GLint, 

-                                   width: GLsizei, height: GLsizei, 

-                                   depth: GLsizei, format: GLenum, 

-                                   imageSize: GLsizei, data: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTexSubImage2DARB*(target: GLenum, level: GLint, xoffset: GLint, 

-                                   yoffset: GLint, width: GLsizei, 

-                                   height: GLsizei, format: GLenum, 

-                                   imageSize: GLsizei, data: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTexSubImage1DARB*(target: GLenum, level: GLint, xoffset: GLint, 

-                                   width: GLsizei, format: GLenum, 

-                                   imageSize: GLsizei, data: PGLvoid){.stdcall, importc, ogl.}

-proc glGetCompressedTexImageARB*(target: GLenum, level: GLint, img: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_ARB_transpose_matrix

-proc glLoadTransposeMatrixfARB*(m: PGLfloat){.stdcall, importc, ogl.}

-proc glLoadTransposeMatrixdARB*(m: PGLdouble){.stdcall, importc, ogl.}

-proc glMultTransposeMatrixfARB*(m: PGLfloat){.stdcall, importc, ogl.}

-proc glMultTransposeMatrixdARB*(m: PGLdouble){.stdcall, importc, ogl.}

-  # GL_ARB_vertex_blend

-proc glWeightbvARB*(size: GLint, weights: PGLbyte){.stdcall, importc, ogl.}

-proc glWeightsvARB*(size: GLint, weights: PGLshort){.stdcall, importc, ogl.}

-proc glWeightivARB*(size: GLint, weights: PGLint){.stdcall, importc, ogl.}

-proc glWeightfvARB*(size: GLint, weights: PGLfloat){.stdcall, importc, ogl.}

-proc glWeightdvARB*(size: GLint, weights: PGLdouble){.stdcall, importc, ogl.}

-proc glWeightubvARB*(size: GLint, weights: PGLubyte){.stdcall, importc, ogl.}

-proc glWeightusvARB*(size: GLint, weights: PGLushort){.stdcall, importc, ogl.}

-proc glWeightuivARB*(size: GLint, weights: PGLuint){.stdcall, importc, ogl.}

-proc glWeightPointerARB*(size: GLint, typ: GLenum, stride: GLsizei, 

-                         pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glVertexBlendARB*(count: GLint){.stdcall, importc, ogl.}

-  # GL_ARB_vertex_buffer_object

-proc glBindBufferARB*(target: GLenum, buffer: GLuint){.stdcall, importc, ogl.}

-proc glDeleteBuffersARB*(n: GLsizei, buffers: PGLuint){.stdcall, importc, ogl.}

-proc glGenBuffersARB*(n: GLsizei, buffers: PGLuint){.stdcall, importc, ogl.}

-proc glIsBufferARB*(buffer: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glBufferDataARB*(target: GLenum, size: GLsizeiptrARB, data: PGLvoid, 

-                      usage: GLenum){.stdcall, importc, ogl.}

-proc glBufferSubDataARB*(target: GLenum, offset: GLintptrARB, 

-                         size: GLsizeiptrARB, data: PGLvoid){.stdcall, importc, ogl.}

-proc glGetBufferSubDataARB*(target: GLenum, offset: GLintptrARB, 

-                            size: GLsizeiptrARB, data: PGLvoid){.stdcall, importc, ogl.}

-proc glMapBufferARB*(target: GLenum, access: GLenum): PGLvoid{.stdcall, importc, ogl.}

-proc glUnmapBufferARB*(target: GLenum): GLboolean{.stdcall, importc, ogl.}

-proc glGetBufferParameterivARB*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetBufferPointervARB*(target: GLenum, pname: GLenum, params: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_ARB_vertex_program

-proc glVertexAttrib1dARB*(index: GLuint, x: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib1dvARB*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib1fARB*(index: GLuint, x: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib1fvARB*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib1sARB*(index: GLuint, x: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib1svARB*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib2dARB*(index: GLuint, x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib2dvARB*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib2fARB*(index: GLuint, x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib2fvARB*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib2sARB*(index: GLuint, x: GLshort, y: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib2svARB*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib3dARB*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3dvARB*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib3fARB*(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3fvARB*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib3sARB*(index: GLuint, x: GLshort, y: GLshort, z: GLshort){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3svARB*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4NbvARB*(index: GLuint, v: PGLbyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4NivARB*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttrib4NsvARB*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4NubARB*(index: GLuint, x: GLubyte, y: GLubyte, z: GLubyte, 

-                            w: GLubyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4NubvARB*(index: GLuint, v: PGLubyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4NuivARB*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttrib4NusvARB*(index: GLuint, v: PGLushort){.stdcall, importc, ogl.}

-proc glVertexAttrib4bvARB*(index: GLuint, v: PGLbyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4dARB*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble, 

-                          w: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib4dvARB*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib4fARB*(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, 

-                          w: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib4fvARB*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib4ivARB*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttrib4sARB*(index: GLuint, x: GLshort, y: GLshort, z: GLshort, 

-                          w: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4svARB*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4ubvARB*(index: GLuint, v: PGLubyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4uivARB*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttrib4usvARB*(index: GLuint, v: PGLushort){.stdcall, importc, ogl.}

-proc glVertexAttribPointerARB*(index: GLuint, size: GLint, typ: GLenum, 

-                               normalized: GLboolean, stride: GLsizei, 

-                               pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glEnableVertexAttribArrayARB*(index: GLuint){.stdcall, importc, ogl.}

-proc glDisableVertexAttribArrayARB*(index: GLuint){.stdcall, importc, ogl.}

-proc glProgramStringARB*(target: GLenum, format: GLenum, length: GLsizei, 

-                         string: PGLvoid){.stdcall, importc, ogl.}

-proc glBindProgramARB*(target: GLenum, prog: GLuint){.stdcall, importc, ogl.}

-proc glDeleteProgramsARB*(n: GLsizei, programs: PGLuint){.stdcall, importc, ogl.}

-proc glGenProgramsARB*(n: GLsizei, programs: PGLuint){.stdcall, importc, ogl.}

-proc glProgramEnvParameter4dARB*(target: GLenum, index: GLuint, x: GLdouble, 

-                                 y: GLdouble, z: GLdouble, w: GLdouble){.stdcall, importc, ogl.}

-proc glProgramEnvParameter4dvARB*(target: GLenum, index: GLuint, 

-                                  params: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramEnvParameter4fARB*(target: GLenum, index: GLuint, x: GLfloat, 

-                                 y: GLfloat, z: GLfloat, w: GLfloat){.stdcall, importc, ogl.}

-proc glProgramEnvParameter4fvARB*(target: GLenum, index: GLuint, 

-                                  params: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramLocalParameter4dARB*(target: GLenum, index: GLuint, x: GLdouble, 

-                                   y: GLdouble, z: GLdouble, w: GLdouble){.

-    stdcall, importc, ogl.}

-proc glProgramLocalParameter4dvARB*(target: GLenum, index: GLuint, 

-                                    params: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramLocalParameter4fARB*(target: GLenum, index: GLuint, x: GLfloat, 

-                                   y: GLfloat, z: GLfloat, w: GLfloat){.stdcall, importc, ogl.}

-proc glProgramLocalParameter4fvARB*(target: GLenum, index: GLuint, 

-                                    params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetProgramEnvParameterdvARB*(target: GLenum, index: GLuint, 

-                                    params: PGLdouble){.stdcall, importc, ogl.}

-proc glGetProgramEnvParameterfvARB*(target: GLenum, index: GLuint, 

-                                    params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetProgramLocalParameterdvARB*(target: GLenum, index: GLuint, 

-                                      params: PGLdouble){.stdcall, importc, ogl.}

-proc glGetProgramLocalParameterfvARB*(target: GLenum, index: GLuint, 

-                                      params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetProgramivARB*(target: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetProgramStringARB*(target: GLenum, pname: GLenum, string: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribdvARB*(index: GLuint, pname: GLenum, params: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribfvARB*(index: GLuint, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribivARB*(index: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribPointervARB*(index: GLuint, pname: GLenum, 

-                                   pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glIsProgramARB*(prog: GLuint): GLboolean{.stdcall, importc, ogl.}

-  # GL_ARB_window_pos

-proc glWindowPos2dARB*(x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glWindowPos2dvARB*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glWindowPos2fARB*(x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glWindowPos2fvARB*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glWindowPos2iARB*(x: GLint, y: GLint){.stdcall, importc, ogl.}

-proc glWindowPos2ivARB*(v: PGLint){.stdcall, importc, ogl.}

-proc glWindowPos2sARB*(x: GLshort, y: GLshort){.stdcall, importc, ogl.}

-proc glWindowPos2svARB*(v: PGLshort){.stdcall, importc, ogl.}

-proc glWindowPos3dARB*(x: GLdouble, y: GLdouble, z: GLdouble){.stdcall, importc, ogl.}

-proc glWindowPos3dvARB*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glWindowPos3fARB*(x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glWindowPos3fvARB*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glWindowPos3iARB*(x: GLint, y: GLint, z: GLint){.stdcall, importc, ogl.}

-proc glWindowPos3ivARB*(v: PGLint){.stdcall, importc, ogl.}

-proc glWindowPos3sARB*(x: GLshort, y: GLshort, z: GLshort){.stdcall, importc, ogl.}

-proc glWindowPos3svARB*(v: PGLshort){.stdcall, importc, ogl.}

-  # GL_ARB_draw_buffers

-proc glDrawBuffersARB*(n: GLsizei, bufs: PGLenum){.stdcall, importc, ogl.}

-  # GL_ARB_color_buffer_float

-proc glClampColorARB*(target: GLenum, clamp: GLenum){.stdcall, importc, ogl.}

-  # GL_ARB_vertex_shader

-proc glGetActiveAttribARB*(programobj: GLhandleARB, index: GLuint, 

-                           maxLength: GLsizei, len: var GLsizei, 

-                           size: var GLint, typ: var GLenum, name: PGLcharARB){.

-    stdcall, importc, ogl.}

-proc glGetAttribLocationARB*(programObj: GLhandleARB, char: PGLcharARB): glint{.

-    stdcall, importc, ogl.}

-proc glBindAttribLocationARB*(programObj: GLhandleARB, index: GLuint, 

-                              name: PGLcharARB){.stdcall, importc, ogl.}

-  # GL_ARB_shader_objects

-proc glDeleteObjectARB*(Obj: GLHandleARB){.stdcall, importc, ogl.}

-proc glGetHandleARB*(pname: GlEnum): GLHandleARB{.stdcall, importc, ogl.}

-proc glDetachObjectARB*(container, attached: GLHandleARB){.stdcall, importc, ogl.}

-proc glCreateShaderObjectARB*(shaderType: glenum): GLHandleARB{.stdcall, importc, ogl.}

-proc glShaderSourceARB*(shaderObj: GLHandleARB, count: glsizei, 

-                        string: cstringArray, lengths: pglint){.stdcall, importc, ogl.}

-proc glCompileShaderARB*(shaderObj: GLHandleARB){.stdcall, importc, ogl.}

-proc glCreateProgramObjectARB*(): GLHandleARB{.stdcall, importc, ogl.}

-proc glAttachObjectARB*(programObj, shaderObj: GLhandleARB){.stdcall, importc, ogl.}

-proc glLinkProgramARB*(programObj: GLHandleARB){.stdcall, importc, ogl.}

-proc glUseProgramObjectARB*(programObj: GLHandleARB){.stdcall, importc, ogl.}

-proc glValidateProgramARB*(programObj: GLhandleARB){.stdcall, importc, ogl.}

-proc glUniform1fARB*(location: glint, v0: glfloat){.stdcall, importc, ogl.}

-proc glUniform2fARB*(location: glint, v0, v1: glfloat){.stdcall, importc, ogl.}

-proc glUniform3fARB*(location: glint, v0, v1, v2: glfloat){.stdcall, importc, ogl.}

-proc glUniform4fARB*(location: glint, v0, v1, v2, v3: glfloat){.stdcall, importc, ogl.}

-proc glUniform1iARB*(location: glint, v0: glint){.stdcall, importc, ogl.}

-proc glUniform2iARB*(location: glint, v0, v1: glint){.stdcall, importc, ogl.}

-proc glUniform3iARB*(location: glint, v0, v1, v2: glint){.stdcall, importc, ogl.}

-proc glUniform4iARB*(location: glint, v0, v1, v2, v3: glint){.stdcall, importc, ogl.}

-proc glUniform1fvARB*(location: glint, count: GLsizei, value: pglfloat){.stdcall, importc, ogl.}

-proc glUniform2fvARB*(location: glint, count: GLsizei, value: pglfloat){.stdcall, importc, ogl.}

-proc glUniform3fvARB*(location: glint, count: GLsizei, value: pglfloat){.stdcall, importc, ogl.}

-proc glUniform4fvARB*(location: glint, count: GLsizei, value: pglfloat){.stdcall, importc, ogl.}

-proc glUniform1ivARB*(location: glint, count: GLsizei, value: pglint){.stdcall, importc, ogl.}

-proc glUniform2ivARB*(location: glint, count: GLsizei, value: pglint){.stdcall, importc, ogl.}

-proc glUniform3ivARB*(location: glint, count: GLsizei, value: pglint){.stdcall, importc, ogl.}

-proc glUniform4ivARB*(location: glint, count: GLsizei, value: pglint){.stdcall, importc, ogl.}

-proc glUniformMatrix2fvARB*(location: glint, count: glsizei, 

-                            transpose: glboolean, value: pglfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix3fvARB*(location: glint, count: glsizei, 

-                            transpose: glboolean, value: pglfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix4fvARB*(location: glint, count: glsizei, 

-                            transpose: glboolean, value: pglfloat){.stdcall, importc, ogl.}

-proc glGetObjectParameterfvARB*(Obj: GLHandleARB, pname: GLEnum, 

-                                params: PGLFloat){.stdcall, importc, ogl.}

-proc glGetObjectParameterivARB*(Obj: GLHandleARB, pname: GLEnum, params: PGLInt){.

-    stdcall, importc, ogl.}

-proc glGetInfoLogARB*(shaderObj: GLHandleARB, maxLength: glsizei, 

-                      len: var glint, infoLog: PGLcharARB){.stdcall, importc, ogl.}

-proc glGetAttachedObjectsARB*(programobj: GLhandleARB, maxCount: GLsizei, 

-                              count: var GLsizei, objects: PGLhandleARB){.

-    stdcall, importc, ogl.}

-proc glGetUniformLocationARB*(programObj: GLhandleARB, char: PGLcharARB): glint{.

-    stdcall, importc, ogl.}

-proc glGetActiveUniformARB*(programobj: GLhandleARB, index: GLuint, 

-                            maxLength: GLsizei, len: var GLsizei, 

-                            size: var GLint, typ: var GLenum, name: PGLcharARB){.

-    stdcall, importc, ogl.}

-proc glGetUniformfvARB*(programObj: GLhandleARB, location: GLint, 

-                        params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetUniformivARB*(programObj: GLhandleARB, location: GLint, params: PGLInt){.

-    stdcall, importc, ogl.}

-proc glGetShaderSourceARB*(shader: GLhandleARB, maxLength: GLsizei, 

-                           len: var GLsizei, source: PGLcharARB){.stdcall, importc, ogl.}

-  # GL_ARB_Occlusion_Query

-proc glGenQueriesARB*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glDeleteQueriesARB*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glIsQueryARB*(id: GLuint): bool{.stdcall, importc, ogl.}

-proc glBeginQueryARB*(target: GLenum, id: GLuint){.stdcall, importc, ogl.}

-proc glEndQueryARB*(target: GLenum){.stdcall, importc, ogl.}

-proc glGetQueryivARB*(target, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetQueryObjectivARB*(id: GLuint, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetQueryObjectuivARB*(id: GLuint, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-  # GL_ARB_draw_instanced

-proc glDrawArraysInstancedARB*(mode: GLenum, first: GLint, count: GLsizei, 

-                               primcount: GLsizei){.stdcall, importc, ogl.}

-proc glDrawElementsInstancedARB*(mode: GLenum, count: GLsizei, typ: GLenum, 

-                                 indices: PGLvoid, primcount: GLsizei){.stdcall, importc, ogl.}

-  # GL_ARB_framebuffer_object

-proc glIsRenderbuffer*(renderbuffer: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glBindRenderbuffer*(target: GLenum, renderbuffer: GLuint){.stdcall, importc, ogl.}

-proc glDeleteRenderbuffers*(n: GLsizei, renderbuffers: PGLuint){.stdcall, importc, ogl.}

-proc glGenRenderbuffers*(n: GLsizei, renderbuffers: PGLuint){.stdcall, importc, ogl.}

-proc glRenderbufferStorage*(target: GLenum, internalformat: GLenum, 

-                            width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-proc glGetRenderbufferParameteriv*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glIsFramebuffer*(framebuffer: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glBindFramebuffer*(target: GLenum, framebuffer: GLuint){.stdcall, importc, ogl.}

-proc glDeleteFramebuffers*(n: GLsizei, framebuffers: PGLuint){.stdcall, importc, ogl.}

-proc glGenFramebuffers*(n: GLsizei, framebuffers: PGLuint){.stdcall, importc, ogl.}

-proc glCheckFramebufferStatus*(target: GLenum): GLenum{.stdcall, importc, ogl.}

-proc glFramebufferTexture1D*(target: GLenum, attachment: GLenum, 

-                             textarget: GLenum, texture: GLuint, level: GLint){.

-    stdcall, importc, ogl.}

-proc glFramebufferTexture2D*(target: GLenum, attachment: GLenum, 

-                             textarget: GLenum, texture: GLuint, level: GLint){.

-    stdcall, importc, ogl.}

-proc glFramebufferTexture3D*(target: GLenum, attachment: GLenum, 

-                             textarget: GLenum, texture: GLuint, level: GLint, 

-                             zoffset: GLint){.stdcall, importc, ogl.}

-proc glFramebufferRenderbuffer*(target: GLenum, attachment: GLenum, 

-                                renderbuffertarget: GLenum, renderbuffer: GLuint){.

-    stdcall, importc, ogl.}

-proc glGetFramebufferAttachmentParameteriv*(target: GLenum, attachment: GLenum, 

-    pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGenerateMipmap*(target: GLenum){.stdcall, importc, ogl.}

-proc glBlitFramebuffer*(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, 

-                        dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, 

-                        mask: GLbitfield, filter: GLenum){.stdcall, importc, ogl.}

-proc glRenderbufferStorageMultisample*(target: GLenum, samples: GLsizei, 

-                                       internalformat: GLenum, width: GLsizei, 

-                                       height: GLsizei){.stdcall, importc, ogl.}

-proc glFramebufferTextureLayer*(target: GLenum, attachment: GLenum, 

-                                texture: GLuint, level: GLint, layer: GLint){.

-    stdcall, importc, ogl.}

-  # GL_ARB_geometry_shader4

-proc glProgramParameteriARB*(prog: GLuint, pname: GLenum, value: GLint){.stdcall, importc, ogl.}

-proc glFramebufferTextureARB*(target: GLenum, attachment: GLenum, 

-                              texture: GLuint, level: GLint){.stdcall, importc, ogl.}

-proc glFramebufferTextureLayerARB*(target: GLenum, attachment: GLenum, 

-                                   texture: GLuint, level: GLint, layer: GLint){.

-    stdcall, importc, ogl.}

-proc glFramebufferTextureFaceARB*(target: GLenum, attachment: GLenum, 

-                                  texture: GLuint, level: GLint, face: GLenum){.

-    stdcall, importc, ogl.}

-  # GL_ARB_instanced_arrays

-proc glVertexAttribDivisorARB*(index: GLuint, divisor: GLuint){.stdcall, importc, ogl.}

-  # GL_ARB_map_buffer_range

-proc glMapBufferRange*(target: GLenum, offset: GLintptr, len: GLsizeiptr, 

-                       access: GLbitfield): PGLvoid{.stdcall, importc, ogl.}

-proc glFlushMappedBufferRange*(target: GLenum, offset: GLintptr, len: GLsizeiptr){.

-    stdcall, importc, ogl.}

-  # GL_ARB_texture_buffer_object

-proc glTexBufferARB*(target: GLenum, internalformat: GLenum, buffer: GLuint){.

-    stdcall, importc, ogl.}

-  # GL_ARB_vertex_array_object

-proc glBindVertexArray*(arr: GLuint){.stdcall, importc, ogl.}

-proc glDeleteVertexArrays*(n: GLsizei, arrays: PGLuint){.stdcall, importc, ogl.}

-proc glGenVertexArrays*(n: GLsizei, arrays: PGLuint){.stdcall, importc, ogl.}

-proc glIsVertexArray*(arr: GLuint): GLboolean{.stdcall, importc, ogl.}

-  # GL_ARB_uniform_buffer_object

-proc glGetUniformIndices*(prog: GLuint, uniformCount: GLsizei, 

-                          uniformNames: cstringArray, uniformIndices: PGLuint){.

-    stdcall, importc, ogl.}

-proc glGetActiveUniformsiv*(prog: GLuint, uniformCount: GLsizei, 

-                            uniformIndices: PGLuint, pname: GLenum, 

-                            params: PGLint){.stdcall, importc, ogl.}

-proc glGetActiveUniformName*(prog: GLuint, uniformIndex: GLuint, 

-                             bufSize: GLsizei, len: PGLsizei, 

-                             uniformName: PGLchar){.stdcall, importc, ogl.}

-proc glGetUniformBlockIndex*(prog: GLuint, uniformBlockName: PGLchar): GLuint{.

-    stdcall, importc, ogl.}

-proc glGetActiveUniformBlockiv*(prog: GLuint, uniformBlockIndex: GLuint, 

-                                pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetActiveUniformBlockName*(prog: GLuint, uniformBlockIndex: GLuint, 

-                                  bufSize: GLsizei, len: PGLsizei, 

-                                  uniformBlockName: PGLchar){.stdcall, importc, ogl.}

-proc glUniformBlockBinding*(prog: GLuint, uniformBlockIndex: GLuint, 

-                            uniformBlockBinding: GLuint){.stdcall, importc, ogl.}

-  # GL_ARB_copy_buffer

-proc glCopyBufferSubData*(readTarget: GLenum, writeTarget: GLenum, 

-                          readOffset: GLintptr, writeOffset: GLintptr, 

-                          size: GLsizeiptr){.stdcall, importc, ogl.}

-  # GL_ARB_draw_elements_base_vertex

-proc glDrawElementsBaseVertex*(mode: GLenum, count: GLsizei, typ: GLenum, 

-                               indices: PGLvoid, basevertex: GLint){.stdcall, importc, ogl.}

-proc glDrawRangeElementsBaseVertex*(mode: GLenum, start: GLuint, ending: GLuint, 

-                                    count: GLsizei, typ: GLenum, 

-                                    indices: PGLvoid, basevertex: GLint){.

-    stdcall, importc, ogl.}

-proc glDrawElementsInstancedBaseVertex*(mode: GLenum, count: GLsizei, 

-                                        typ: GLenum, indices: PGLvoid, 

-                                        primcount: GLsizei, basevertex: GLint){.

-    stdcall, importc, ogl.}

-proc glMultiDrawElementsBaseVertex*(mode: GLenum, count: PGLsizei, typ: GLenum, 

-                                    indices: PPGLvoid, primcount: GLsizei, 

-                                    basevertex: PGLint){.stdcall, importc, ogl.}

-  # GL_ARB_provoking_vertex

-proc glProvokingVertex*(mode: GLenum){.stdcall, importc, ogl.}

-  # GL_ARB_sync

-proc glFenceSync*(condition: GLenum, flags: GLbitfield): GLsync{.stdcall, importc, ogl.}

-proc glIsSync*(sync: GLsync): GLboolean{.stdcall, importc, ogl.}

-proc glDeleteSync*(sync: GLsync){.stdcall, importc, ogl.}

-proc glClientWaitSync*(sync: GLsync, flags: GLbitfield, timeout: GLuint64): GLenum{.

-    stdcall, importc, ogl.}

-proc glWaitSync*(sync: GLsync, flags: GLbitfield, timeout: GLuint64){.stdcall, importc, ogl.}

-proc glGetInteger64v*(pname: GLenum, params: PGLint64){.stdcall, importc, ogl.}

-proc glGetSynciv*(sync: GLsync, pname: GLenum, butSize: GLsizei, len: PGLsizei, 

-                  values: PGLint){.stdcall, importc, ogl.}

-  # GL_ARB_texture_multisample

-proc glTexImage2DMultisample*(target: GLenum, samples: GLsizei, 

-                              internalformat: GLint, width: GLsizei, 

-                              height: GLsizei, fixedsamplelocations: GLboolean){.

-    stdcall, importc, ogl.}

-proc glTexImage3DMultisample*(target: GLenum, samples: GLsizei, 

-                              internalformat: GLint, width: GLsizei, 

-                              height: GLsizei, depth: GLsizei, 

-                              fixedsamplelocations: GLboolean){.stdcall, importc, ogl.}

-proc glGetMultisamplefv*(pname: GLenum, index: GLuint, val: PGLfloat){.stdcall, importc, ogl.}

-proc glSampleMaski*(index: GLuint, mask: GLbitfield){.stdcall, importc, ogl.}

-  # GL_ARB_draw_buffers_blend

-proc glBlendEquationiARB*(buf: GLuint, mode: GLenum){.stdcall, importc, ogl.}

-proc glBlendEquationSeparateiARB*(buf: GLuint, modeRGB: GLenum, 

-                                  modeAlpha: GLenum){.stdcall, importc, ogl.}

-proc glBlendFunciARB*(buf: GLuint, src: GLenum, dst: GLenum){.stdcall, importc, ogl.}

-proc glBlendFuncSeparateiARB*(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, 

-                              srcAlpha: GLenum, dstAlpha: GLenum){.stdcall, importc, ogl.}

-  # GL_ARB_sample_shading

-proc glMinSampleShadingARB*(value: GLclampf){.stdcall, importc, ogl.}

-  # GL_ARB_shading_language_include

-proc glNamedStringARB*(typ: GLenum, namelen: GLint, name: PGLchar, 

-                       stringlen: GLint, string: PGLchar){.stdcall, importc, ogl.}

-proc glDeleteNamedStringARB*(namelen: GLint, name: PGLchar){.stdcall, importc, ogl.}

-proc glCompileShaderIncludeARB*(shader: GLuint, count: GLsizei, path: PPGLchar, 

-                                len: PGLint){.stdcall, importc, ogl.}

-proc glIsNamedStringARB*(namelen: GLint, name: PGLchar): GLboolean{.stdcall, importc, ogl.}

-proc glGetNamedStringARB*(namelen: GLint, name: PGLchar, bufSize: GLsizei, 

-                          stringlen: GLint, string: PGLchar){.stdcall, importc, ogl.}

-proc glGetNamedStringivARB*(namelen: GLint, name: PGLchar, pname: GLenum, 

-                            params: PGLint){.stdcall, importc, ogl.}

-  # GL_ARB_blend_func_extended

-proc glBindFragDataLocationIndexed*(prog: GLuint, colorNumber: GLuint, 

-                                    index: GLuint, name: PGLchar){.stdcall, importc, ogl.}

-proc glGetFragDataIndex*(prog: GLuint, name: PGLchar): GLint{.stdcall, importc, ogl.}

-  # GL_ARB_sampler_objects

-proc glGenSamplers*(count: GLsizei, samplers: PGLuint){.stdcall, importc, ogl.}

-proc glDeleteSamplers*(count: GLsizei, samplers: PGLuint){.stdcall, importc, ogl.}

-proc glIsSampler*(sampler: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glBindSampler*(theUnit: GLuint, sampler: GLuint){.stdcall, importc, ogl.}

-proc glSamplerParameteri*(sampler: GLuint, pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glSamplerParameteriv*(sampler: GLuint, pname: GLenum, param: PGLint){.

-    stdcall, importc, ogl.}

-proc glSamplerParameterf*(sampler: GLuint, pname: GLenum, param: GLfloat){.

-    stdcall, importc, ogl.}

-proc glSamplerParameterfv*(sampler: GLuint, pname: GLenum, param: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glSamplerParameterIiv*(sampler: GLuint, pname: GLenum, param: PGLint){.

-    stdcall, importc, ogl.}

-proc glSamplerParameterIuiv*(sampler: GLuint, pname: GLenum, param: PGLuint){.

-    stdcall, importc, ogl.}

-proc glGetSamplerParameteriv*(sampler: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetSamplerParameterIiv*(sampler: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetSamplerParameterfv*(sampler: GLuint, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetSamplerParameterIuiv*(sampler: GLuint, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-  # GL_ARB_timer_query

-proc glQueryCounter*(id: GLuint, target: GLenum){.stdcall, importc, ogl.}

-proc glGetQueryObjecti64v*(id: GLuint, pname: GLenum, params: PGLint64){.stdcall, importc, ogl.}

-proc glGetQueryObjectui64v*(id: GLuint, pname: GLenum, params: PGLuint64){.

-    stdcall, importc, ogl.}

-  # GL_ARB_vertextyp_2_10_10_10_rev

-proc glVertexP2ui*(typ: GLenum, value: GLuint){.stdcall, importc, ogl.}

-proc glVertexP2uiv*(typ: GLenum, value: PGLuint){.stdcall, importc, ogl.}

-proc glVertexP3ui*(typ: GLenum, value: GLuint){.stdcall, importc, ogl.}

-proc glVertexP3uiv*(typ: GLenum, value: PGLuint){.stdcall, importc, ogl.}

-proc glVertexP4ui*(typ: GLenum, value: GLuint){.stdcall, importc, ogl.}

-proc glVertexP4uiv*(typ: GLenum, value: PGLuint){.stdcall, importc, ogl.}

-proc glTexCoordP1ui*(typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glTexCoordP1uiv*(typ: GLenum, coords: PGLuint){.stdcall, importc, ogl.}

-proc glTexCoordP2ui*(typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glTexCoordP2uiv*(typ: GLenum, coords: PGLuint){.stdcall, importc, ogl.}

-proc glTexCoordP3ui*(typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glTexCoordP3uiv*(typ: GLenum, coords: PGLuint){.stdcall, importc, ogl.}

-proc glTexCoordP4ui*(typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glTexCoordP4uiv*(typ: GLenum, coords: PGLuint){.stdcall, importc, ogl.}

-proc glMultiTexCoordP1ui*(texture: GLenum, typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glMultiTexCoordP1uiv*(texture: GLenum, typ: GLenum, coords: GLuint){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoordP2ui*(texture: GLenum, typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glMultiTexCoordP2uiv*(texture: GLenum, typ: GLenum, coords: PGLuint){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoordP3ui*(texture: GLenum, typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glMultiTexCoordP3uiv*(texture: GLenum, typ: GLenum, coords: PGLuint){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoordP4ui*(texture: GLenum, typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glMultiTexCoordP4uiv*(texture: GLenum, typ: GLenum, coords: PGLuint){.

-    stdcall, importc, ogl.}

-proc glNormalP3ui*(typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glNormalP3uiv*(typ: GLenum, coords: PGLuint){.stdcall, importc, ogl.}

-proc glColorP3ui*(typ: GLenum, color: GLuint){.stdcall, importc, ogl.}

-proc glColorP3uiv*(typ: GLenum, color: PGLuint){.stdcall, importc, ogl.}

-proc glColorP4ui*(typ: GLenum, color: GLuint){.stdcall, importc, ogl.}

-proc glColorP4uiv*(typ: GLenum, color: GLuint){.stdcall, importc, ogl.}

-proc glSecondaryColorP3ui*(typ: GLenum, color: GLuint){.stdcall, importc, ogl.}

-proc glSecondaryColorP3uiv*(typ: GLenum, color: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribP1ui*(index: GLuint, typ: GLenum, normalized: GLboolean, 

-                         value: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribP1uiv*(index: GLuint, typ: GLenum, normalized: GLboolean, 

-                          value: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribP2ui*(index: GLuint, typ: GLenum, normalized: GLboolean, 

-                         value: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribP2uiv*(index: GLuint, typ: GLenum, normalized: GLboolean, 

-                          value: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribP3ui*(index: GLuint, typ: GLenum, normalized: GLboolean, 

-                         value: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribP3uiv*(index: GLuint, typ: GLenum, normalized: GLboolean, 

-                          value: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribP4ui*(index: GLuint, typ: GLenum, normalized: GLboolean, 

-                         value: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribP4uiv*(index: GLuint, typ: GLenum, normalized: GLboolean, 

-                          value: PGLuint){.stdcall, importc, ogl.}

-  # GL_ARB_draw_indirect

-proc glDrawArraysIndirect*(mode: GLenum, indirect: PGLvoid){.stdcall, importc, ogl.}

-proc glDrawElementsIndirect*(mode: GLenum, typ: GLenum, indirect: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_ARB_gpu_shader_fp64

-proc glUniform1d*(location: GLint, x: GLdouble){.stdcall, importc, ogl.}

-proc glUniform2d*(location: GLint, x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glUniform3d*(location: GLint, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glUniform4d*(location: GLint, x: GLdouble, y: GLdouble, z: GLdouble, 

-                  w: GLdouble){.stdcall, importc, ogl.}

-proc glUniform1dv*(location: GLint, count: GLsizei, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniform2dv*(location: GLint, count: GLsizei, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniform3dv*(location: GLint, count: GLsizei, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniform4dv*(location: GLint, count: GLsizei, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix2dv*(location: GLint, count: GLsizei, transpose: GLboolean, 

-                         value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix3dv*(location: GLint, count: GLsizei, transpose: GLboolean, 

-                         value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix4dv*(location: GLint, count: GLsizei, transpose: GLboolean, 

-                         value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix2x3dv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix2x4dv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix3x2dv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix3x4dv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix4x2dv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix4x3dv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glGetUniformdv*(prog: GLuint, location: GLint, params: PGLdouble){.stdcall, importc, ogl.}

-  # GL_ARB_shader_subroutine

-proc glGetSubroutineUniformLocation*(prog: GLuint, shadertype: GLenum, 

-                                     name: PGLchar): GLint{.stdcall, importc, ogl.}

-proc glGetSubroutineIndex*(prog: GLuint, shadertype: GLenum, name: PGLchar): GLuint{.

-    stdcall, importc, ogl.}

-proc glGetActiveSubroutineUniformiv*(prog: GLuint, shadertype: GLenum, 

-                                     index: GLuint, pname: GLenum, 

-                                     values: PGLint){.stdcall, importc, ogl.}

-proc glGetActiveSubroutineUniformName*(prog: GLuint, shadertype: GLenum, 

-                                       index: GLuint, bufsize: GLsizei, 

-                                       len: PGLsizei, name: PGLchar){.stdcall, importc, ogl.}

-proc glGetActiveSubroutineName*(prog: GLuint, shadertype: GLenum, index: GLuint, 

-                                bufsize: GLsizei, len: PGLsizei, name: PGLchar){.

-    stdcall, importc, ogl.}

-proc glUniformSubroutinesuiv*(shadertype: GLenum, count: GLsizei, 

-                              indices: PGLuint){.stdcall, importc, ogl.}

-proc glGetUniformSubroutineuiv*(shadertype: GLenum, location: GLint, 

-                                params: PGLuint){.stdcall, importc, ogl.}

-proc glGetProgramStageiv*(prog: GLuint, shadertype: GLenum, pname: GLenum, 

-                          values: PGLint){.stdcall, importc, ogl.}

-  # GL_ARB_tessellation_shader

-proc glPatchParameteri*(pname: GLenum, value: GLint){.stdcall, importc, ogl.}

-proc glPatchParameterfv*(pname: GLenum, values: PGLfloat){.stdcall, importc, ogl.}

-  # GL_ARB_transform_feedback2

-proc glBindTransformFeedback*(target: GLenum, id: GLuint){.stdcall, importc, ogl.}

-proc glDeleteTransformFeedbacks*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glGenTransformFeedbacks*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glIsTransformFeedback*(id: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glPauseTransformFeedback*(){.stdcall, importc, ogl.}

-proc glResumeTransformFeedback*(){.stdcall, importc, ogl.}

-proc glDrawTransformFeedback*(mode: GLenum, id: GLuint){.stdcall, importc, ogl.}

-  # GL_ARB_transform_feedback3

-proc glDrawTransformFeedbackStream*(mode: GLenum, id: GLuint, stream: GLuint){.

-    stdcall, importc, ogl.}

-proc glBeginQueryIndexed*(target: GLenum, index: GLuint, id: GLuint){.stdcall, importc, ogl.}

-proc glEndQueryIndexed*(target: GLenum, index: GLuint){.stdcall, importc, ogl.}

-proc glGetQueryIndexediv*(target: GLenum, index: GLuint, pname: GLenum, 

-                          params: PGLint){.stdcall, importc, ogl.}

-  # GL_ARB_ES2_compatibility

-proc glReleaseShaderCompiler*(){.stdcall, importc, ogl.}

-proc glShaderBinary*(count: GLsizei, shaders: PGLuint, binaryformat: GLenum, 

-                     binary: PGLvoid, len: GLsizei){.stdcall, importc, ogl.}

-proc glGetShaderPrecisionFormat*(shadertype: GLenum, precisiontype: GLenum, 

-                                 range: PGLint, precision: PGLint){.stdcall, importc, ogl.}

-proc glDepthRangef*(n: GLclampf, f: GLclampf){.stdcall, importc, ogl.}

-proc glClearDepthf*(d: GLclampf){.stdcall, importc, ogl.}

-  # GL_ARB_get_prog_binary

-proc glGetProgramBinary*(prog: GLuint, bufSize: GLsizei, len: PGLsizei, 

-                         binaryFormat: PGLenum, binary: PGLvoid){.stdcall, importc, ogl.}

-proc glProgramBinary*(prog: GLuint, binaryFormat: GLenum, binary: PGLvoid, 

-                      len: GLsizei){.stdcall, importc, ogl.}

-proc glProgramParameteri*(prog: GLuint, pname: GLenum, value: GLint){.stdcall, importc, ogl.}

-  # GL_ARB_separate_shader_objects

-proc glUseProgramStages*(pipeline: GLuint, stages: GLbitfield, prog: GLuint){.

-    stdcall, importc, ogl.}

-proc glActiveShaderProgram*(pipeline: GLuint, prog: GLuint){.stdcall, importc, ogl.}

-proc glCreateShaderProgramv*(typ: GLenum, count: GLsizei, strings: cstringArray): GLuint{.

-    stdcall, importc, ogl.}

-proc glBindProgramPipeline*(pipeline: GLuint){.stdcall, importc, ogl.}

-proc glDeleteProgramPipelines*(n: GLsizei, pipelines: PGLuint){.stdcall, importc, ogl.}

-proc glGenProgramPipelines*(n: GLsizei, pipelines: PGLuint){.stdcall, importc, ogl.}

-proc glIsProgramPipeline*(pipeline: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glGetProgramPipelineiv*(pipeline: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glProgramUniform1i*(prog: GLuint, location: GLint, v0: GLint){.stdcall, importc, ogl.}

-proc glProgramUniform1iv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLint){.stdcall, importc, ogl.}

-proc glProgramUniform1f*(prog: GLuint, location: GLint, v0: GLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform1fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform1d*(prog: GLuint, location: GLint, v0: GLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform1dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform1ui*(prog: GLuint, location: GLint, v0: GLuint){.stdcall, importc, ogl.}

-proc glProgramUniform1uiv*(prog: GLuint, location: GLint, count: GLsizei, 

-                           value: PGLuint){.stdcall, importc, ogl.}

-proc glProgramUniform2i*(prog: GLuint, location: GLint, v0: GLint, v1: GLint){.

-    stdcall, importc, ogl.}

-proc glProgramUniform2iv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLint){.stdcall, importc, ogl.}

-proc glProgramUniform2f*(prog: GLuint, location: GLint, v0: GLfloat, v1: GLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramUniform2fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform2d*(prog: GLuint, location: GLint, v0: GLdouble, 

-                         v1: GLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform2dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform2ui*(prog: GLuint, location: GLint, v0: GLuint, v1: GLuint){.

-    stdcall, importc, ogl.}

-proc glProgramUniform2uiv*(prog: GLuint, location: GLint, count: GLsizei, 

-                           value: PGLuint){.stdcall, importc, ogl.}

-proc glProgramUniform3i*(prog: GLuint, location: GLint, v0: GLint, v1: GLint, 

-                         v2: GLint){.stdcall, importc, ogl.}

-proc glProgramUniform3iv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLint){.stdcall, importc, ogl.}

-proc glProgramUniform3f*(prog: GLuint, location: GLint, v0: GLfloat, 

-                         v1: GLfloat, v2: GLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform3fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform3d*(prog: GLuint, location: GLint, v0: GLdouble, 

-                         v1: GLdouble, v2: GLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform3dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform3ui*(prog: GLuint, location: GLint, v0: GLuint, v1: GLuint, 

-                          v2: GLuint){.stdcall, importc, ogl.}

-proc glProgramUniform3uiv*(prog: GLuint, location: GLint, count: GLsizei, 

-                           value: PGLuint){.stdcall, importc, ogl.}

-proc glProgramUniform4i*(prog: GLuint, location: GLint, v0: GLint, v1: GLint, 

-                         v2: GLint, v3: GLint){.stdcall, importc, ogl.}

-proc glProgramUniform4iv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLint){.stdcall, importc, ogl.}

-proc glProgramUniform4f*(prog: GLuint, location: GLint, v0: GLfloat, 

-                         v1: GLfloat, v2: GLfloat, v3: GLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform4fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform4d*(prog: GLuint, location: GLint, v0: GLdouble, 

-                         v1: GLdouble, v2: GLdouble, v3: GLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform4dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform4ui*(prog: GLuint, location: GLint, v0: GLuint, v1: GLuint, 

-                          v2: GLuint, v3: GLuint){.stdcall, importc, ogl.}

-proc glProgramUniform4uiv*(prog: GLuint, location: GLint, count: GLsizei, 

-                           value: PGLuint){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix3fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix4fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix3dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix4dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2x3fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix3x2fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix2x4fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix4x2fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix3x4fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix4x3fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix2x3dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix3x2dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix2x4dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix4x2dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix3x4dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix4x3dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glValidateProgramPipeline*(pipeline: GLuint){.stdcall, importc, ogl.}

-proc glGetProgramPipelineInfoLog*(pipeline: GLuint, bufSize: GLsizei, 

-                                  len: PGLsizei, infoLog: PGLchar){.stdcall, importc, ogl.}

-  # GL_ARB_vertex_attrib_64bit

-proc glVertexAttribL1d*(index: GLuint, x: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL2d*(index: GLuint, x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL3d*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glVertexAttribL4d*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble, 

-                        w: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL1dv*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL2dv*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL3dv*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL4dv*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribLPointer*(index: GLuint, size: GLint, typ: GLenum, 

-                             stride: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glGetVertexAttribLdv*(index: GLuint, pname: GLenum, params: PGLdouble){.

-    stdcall, importc, ogl.}

-  # GL_ARB_viewport_array

-proc glViewportArrayv*(first: GLuint, count: GLsizei, v: PGLfloat){.stdcall, importc, ogl.}

-proc glViewportIndexedf*(index: GLuint, x: GLfloat, y: GLfloat, w: GLfloat, 

-                         h: GLfloat){.stdcall, importc, ogl.}

-proc glViewportIndexedfv*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glScissorArrayv*(first: GLuint, count: GLsizei, v: PGLint){.stdcall, importc, ogl.}

-proc glScissorIndexed*(index: GLuint, left: GLint, bottom: GLint, 

-                       width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-proc glScissorIndexedv*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glDepthRangeArrayv*(first: GLuint, count: GLsizei, v: PGLclampd){.stdcall, importc, ogl.}

-proc glDepthRangeIndexed*(index: GLuint, n: GLclampd, f: GLclampd){.stdcall, importc, ogl.}

-proc glGetFloati_v*(target: GLenum, index: GLuint, data: PGLfloat){.stdcall, importc, ogl.}

-proc glGetDoublei_v*(target: GLenum, index: GLuint, data: PGLdouble){.stdcall, importc, ogl.}

-  # GL 4.2

-  # GL_ARB_base_instance

-proc glDrawArraysInstancedBaseInstance*(mode: GLenum, first: GLint, 

-                                        count: GLsizei, primcount: GLsizei, 

-                                        baseinstance: GLUint){.stdcall, importc, ogl.}

-proc glDrawElementsInstancedBaseInstance*(mode: GLEnum, count: GLsizei, 

-    typ: GLenum, indices: PGLVoid, primcount: GLsizei, baseinstance: GLUInt){.

-    stdcall, importc, ogl.}

-proc glDrawElementsInstancedBaseVertexBaseInstance*(mode: GLEnum, 

-    count: GLsizei, typ: GLenum, indices: PGLVoid, primcount: GLsizei, 

-    basevertex: GLint, baseinstance: GLuint){.stdcall, importc, ogl.}

-  # GL_ARB_transform_feedback_instanced

-proc glDrawTransformFeedbackInstanced*(mode: GLenum, id: GLuint, 

-                                       primcount: GLsizei){.stdcall, importc, ogl.}

-proc glDrawTransformFeedbackStreamInstanced*(mode: GLenum, id: GLUInt, 

-    stream: GLUint, primcount: GLsizei){.stdcall, importc, ogl.}

-  # GL_ARB_internalformat_query

-proc glGetInternalformativ*(target: GLenum, internalformat: GLenum, 

-                            pname: GLenum, bufSize: GLsizei, params: PGLint){.

-    stdcall, importc, ogl.}

-  # GL_ARB_shader_atomic_counters

-proc glGetActiveAtomicCounterBufferiv*(prog: GLuint, bufferIndex: GLuint, 

-                                       pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-  #/ GL_ARB_shader_image_load_store

-proc glBindImageTexture*(theUnit: GLuint, texture: GLuint, level: GLint, 

-                         layered: GLboolean, layer: GLint, access: GLenum, 

-                         format: GLenum){.stdcall, importc, ogl.}

-proc glMemoryBarrier*(barriers: GLbitfield){.stdcall, importc, ogl.}

-  # GL_ARB_texture_storage

-proc glTexStorage1D*(target: GLenum, levels: GLsizei, internalformat: GLenum, 

-                     width: GLsizei){.stdcall, importc, ogl.}

-proc glTexStorage2D*(target: GLenum, levels: GLsizei, internalformat: GLenum, 

-                     width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-proc glTexStorage3D*(target: GLenum, levels: GLsizei, internalformat: GLenum, 

-                     width: GLsizei, height: GLsizei, depth: GLsizei){.stdcall, importc, ogl.}

-proc glTextureStorage1DEXT*(texture: GLuint, target: GLenum, levels: GLsizei, 

-                            internalformat: GLenum, width: GLsizei){.stdcall, importc, ogl.}

-proc glTextureStorage2DEXT*(texture: GLuint, target: GLenum, levels: GLsizei, 

-                            internalformat: GLenum, width: GLsizei, 

-                            height: GLsizei){.stdcall, importc, ogl.}

-proc glTextureStorage3DEXT*(texture: GLuint, target: GLenum, levels: GLsizei, 

-                            internalformat: GLenum, width: GLsizei, 

-                            height: GLsizei, depth: GLsizei){.stdcall, importc, ogl.}

-  #

-  # GL_ARB_cl_event

-proc glCreateSyncFromCLeventARB*(context: p_cl_context, event: p_cl_event, 

-                                 flags: GLbitfield): GLsync{.stdcall, importc, ogl.}

-  # GL_ARB_debug_output

-proc glDebugMessageControlARB*(source: GLenum, typ: GLenum, severity: GLenum, 

-                               count: GLsizei, ids: PGLuint, enabled: GLboolean){.

-    stdcall, importc, ogl.}

-proc glDebugMessageInsertARB*(source: GLenum, typ: GLenum, id: GLuint, 

-                              severity: GLenum, len: GLsizei, buf: PGLchar){.

-    stdcall, importc, ogl.}

-proc glDebugMessageCallbackARB*(callback: TglDebugProcARB, userParam: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetDebugMessageLogARB*(count: GLuint, bufsize: GLsizei, sources: PGLenum, 

-                              types: PGLenum, ids: PGLuint, severities: PGLenum, 

-                              lengths: PGLsizei, messageLog: PGLchar): GLuint{.

-    stdcall, importc, ogl.}

-  # GL_ARB_robustness

-proc glGetGraphicsResetStatusARB*(): GLenum{.stdcall, importc, ogl.}

-proc glGetnMapdvARB*(target: GLenum, query: GLenum, bufSize: GLsizei, 

-                     v: PGLdouble){.stdcall, importc, ogl.}

-proc glGetnMapfvARB*(target: GLenum, query: GLenum, bufSize: GLsizei, 

-                     v: PGLfloat){.stdcall, importc, ogl.}

-proc glGetnMapivARB*(target: GLenum, query: GLenum, bufSize: GLsizei, v: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetnPixelMapfvARB*(map: GLenum, bufSize: GLsizei, values: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetnPixelMapuivARB*(map: GLenum, bufSize: GLsizei, values: PGLuint){.

-    stdcall, importc, ogl.}

-proc glGetnPixelMapusvARB*(map: GLenum, bufSize: GLsizei, values: PGLushort){.

-    stdcall, importc, ogl.}

-proc glGetnPolygonStippleARB*(bufSize: GLsizei, pattern: PGLubyte){.stdcall, importc, ogl.}

-proc glGetnColorTableARB*(target: GLenum, format: GLenum, typ: GLenum, 

-                          bufSize: GLsizei, table: PGLvoid){.stdcall, importc, ogl.}

-proc glGetnConvolutionFilterARB*(target: GLenum, format: GLenum, typ: GLenum, 

-                                 bufSize: GLsizei, image: PGLvoid){.stdcall, importc, ogl.}

-proc glGetnSeparableFilterARB*(target: GLenum, format: GLenum, typ: GLenum, 

-                               rowBufSize: GLsizei, row: PGLvoid, 

-                               columnBufSize: GLsizei, column: PGLvoid, 

-                               span: PGLvoid){.stdcall, importc, ogl.}

-proc glGetnHistogramARB*(target: GLenum, reset: GLboolean, format: GLenum, 

-                         typ: GLenum, bufSize: GLsizei, values: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetnMinmaxARB*(target: GLenum, reset: GLboolean, format: GLenum, 

-                      typ: GLenum, bufSize: GLsizei, values: PGLvoid){.stdcall, importc, ogl.}

-proc glGetnTexImageARB*(target: GLenum, level: GLint, format: GLenum, 

-                        typ: GLenum, bufSize: GLsizei, img: PGLvoid){.stdcall, importc, ogl.}

-proc glReadnPixelsARB*(x: GLint, y: GLint, width: GLsizei, height: GLsizei, 

-                       format: GLenum, typ: GLenum, bufSize: GLsizei, 

-                       data: PGLvoid){.stdcall, importc, ogl.}

-proc glGetnCompressedTexImageARB*(target: GLenum, lod: GLint, bufSize: GLsizei, 

-                                  img: PGLvoid){.stdcall, importc, ogl.}

-proc glGetnUniformfvARB*(prog: GLuint, location: GLint, bufSize: GLsizei, 

-                         params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetnUniformivARB*(prog: GLuint, location: GLint, bufSize: GLsizei, 

-                         params: PGLint){.stdcall, importc, ogl.}

-proc glGetnUniformuivARB*(prog: GLuint, location: GLint, bufSize: GLsizei, 

-                          params: PGLuint){.stdcall, importc, ogl.}

-proc glGetnUniformdvARB*(prog: GLuint, location: GLint, bufSize: GLsizei, 

-                         params: PGLdouble){.stdcall, importc, ogl.}

-  # GL_ATI_draw_buffers

-proc glDrawBuffersATI*(n: GLsizei, bufs: PGLenum){.stdcall, importc, ogl.}

-  # GL_ATI_element_array

-proc glElementPointerATI*(typ: GLenum, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glDrawElementArrayATI*(mode: GLenum, count: GLsizei){.stdcall, importc, ogl.}

-proc glDrawRangeElementArrayATI*(mode: GLenum, start: GLuint, ending: GLuint, 

-                                 count: GLsizei){.stdcall, importc, ogl.}

-  # GL_ATI_envmap_bumpmap

-proc glTexBumpParameterivATI*(pname: GLenum, param: PGLint){.stdcall, importc, ogl.}

-proc glTexBumpParameterfvATI*(pname: GLenum, param: PGLfloat){.stdcall, importc, ogl.}

-proc glGetTexBumpParameterivATI*(pname: GLenum, param: PGLint){.stdcall, importc, ogl.}

-proc glGetTexBumpParameterfvATI*(pname: GLenum, param: PGLfloat){.stdcall, importc, ogl.}

-  # GL_ATI_fragment_shader

-proc glGenFragmentShadersATI*(range: GLuint): GLuint{.stdcall, importc, ogl.}

-proc glBindFragmentShaderATI*(id: GLuint){.stdcall, importc, ogl.}

-proc glDeleteFragmentShaderATI*(id: GLuint){.stdcall, importc, ogl.}

-proc glBeginFragmentShaderATI*(){.stdcall, importc, ogl.}

-proc glEndFragmentShaderATI*(){.stdcall, importc, ogl.}

-proc glPassTexCoordATI*(dst: GLuint, coord: GLuint, swizzle: GLenum){.stdcall, importc, ogl.}

-proc glSampleMapATI*(dst: GLuint, interp: GLuint, swizzle: GLenum){.stdcall, importc, ogl.}

-proc glColorFragmentOp1ATI*(op: GLenum, dst: GLuint, dstMask: GLuint, 

-                            dstMod: GLuint, arg1: GLuint, arg1Rep: GLuint, 

-                            arg1Mod: GLuint){.stdcall, importc, ogl.}

-proc glColorFragmentOp2ATI*(op: GLenum, dst: GLuint, dstMask: GLuint, 

-                            dstMod: GLuint, arg1: GLuint, arg1Rep: GLuint, 

-                            arg1Mod: GLuint, arg2: GLuint, arg2Rep: GLuint, 

-                            arg2Mod: GLuint){.stdcall, importc, ogl.}

-proc glColorFragmentOp3ATI*(op: GLenum, dst: GLuint, dstMask: GLuint, 

-                            dstMod: GLuint, arg1: GLuint, arg1Rep: GLuint, 

-                            arg1Mod: GLuint, arg2: GLuint, arg2Rep: GLuint, 

-                            arg2Mod: GLuint, arg3: GLuint, arg3Rep: GLuint, 

-                            arg3Mod: GLuint){.stdcall, importc, ogl.}

-proc glAlphaFragmentOp1ATI*(op: GLenum, dst: GLuint, dstMod: GLuint, 

-                            arg1: GLuint, arg1Rep: GLuint, arg1Mod: GLuint){.

-    stdcall, importc, ogl.}

-proc glAlphaFragmentOp2ATI*(op: GLenum, dst: GLuint, dstMod: GLuint, 

-                            arg1: GLuint, arg1Rep: GLuint, arg1Mod: GLuint, 

-                            arg2: GLuint, arg2Rep: GLuint, arg2Mod: GLuint){.

-    stdcall, importc, ogl.}

-proc glAlphaFragmentOp3ATI*(op: GLenum, dst: GLuint, dstMod: GLuint, 

-                            arg1: GLuint, arg1Rep: GLuint, arg1Mod: GLuint, 

-                            arg2: GLuint, arg2Rep: GLuint, arg2Mod: GLuint, 

-                            arg3: GLuint, arg3Rep: GLuint, arg3Mod: GLuint){.

-    stdcall, importc, ogl.}

-proc glSetFragmentShaderConstantATI*(dst: GLuint, value: PGLfloat){.stdcall, importc, ogl.}

-  # GL_ATI_map_object_buffer

-proc glMapObjectBufferATI*(buffer: GLuint): PGLvoid{.stdcall, importc, ogl.}

-proc glUnmapObjectBufferATI*(buffer: GLuint){.stdcall, importc, ogl.}

-  # GL_ATI_pn_triangles

-proc glPNTrianglesiATI*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glPNTrianglesfATI*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-  # GL_ATI_separate_stencil

-proc glStencilOpSeparateATI*(face: GLenum, sfail: GLenum, dpfail: GLenum, 

-                             dppass: GLenum){.stdcall, importc, ogl.}

-proc glStencilFuncSeparateATI*(frontfunc: GLenum, backfunc: GLenum, theRef: GLint, 

-                               mask: GLuint){.stdcall, importc, ogl.}

-  # GL_ATI_vertex_array_object

-proc glNewObjectBufferATI*(size: GLsizei, pointer: PGLvoid, usage: GLenum): GLuint{.

-    stdcall, importc, ogl.}

-proc glIsObjectBufferATI*(buffer: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glUpdateObjectBufferATI*(buffer: GLuint, offset: GLuint, size: GLsizei, 

-                              pointer: PGLvoid, preserve: GLenum){.stdcall, importc, ogl.}

-proc glGetObjectBufferfvATI*(buffer: GLuint, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetObjectBufferivATI*(buffer: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glFreeObjectBufferATI*(buffer: GLuint){.stdcall, importc, ogl.}

-proc glArrayObjectATI*(arr: GLenum, size: GLint, typ: GLenum, stride: GLsizei, 

-                       buffer: GLuint, offset: GLuint){.stdcall, importc, ogl.}

-proc glGetArrayObjectfvATI*(arr: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetArrayObjectivATI*(arr: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glVariantArrayObjectATI*(id: GLuint, typ: GLenum, stride: GLsizei, 

-                              buffer: GLuint, offset: GLuint){.stdcall, importc, ogl.}

-proc glGetVariantArrayObjectfvATI*(id: GLuint, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetVariantArrayObjectivATI*(id: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-  # GL_ATI_vertex_attrib_array_object

-proc glVertexAttribArrayObjectATI*(index: GLuint, size: GLint, typ: GLenum, 

-                                   normalized: GLboolean, stride: GLsizei, 

-                                   buffer: GLuint, offset: GLuint){.stdcall, importc, ogl.}

-proc glGetVertexAttribArrayObjectfvATI*(index: GLuint, pname: GLenum, 

-                                        params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetVertexAttribArrayObjectivATI*(index: GLuint, pname: GLenum, 

-                                        params: PGLint){.stdcall, importc, ogl.}

-  # GL_ATI_vertex_streams

-proc glVertexStream1sATI*(stream: GLenum, x: GLshort){.stdcall, importc, ogl.}

-proc glVertexStream1svATI*(stream: GLenum, coords: PGLshort){.stdcall, importc, ogl.}

-proc glVertexStream1iATI*(stream: GLenum, x: GLint){.stdcall, importc, ogl.}

-proc glVertexStream1ivATI*(stream: GLenum, coords: PGLint){.stdcall, importc, ogl.}

-proc glVertexStream1fATI*(stream: GLenum, x: GLfloat){.stdcall, importc, ogl.}

-proc glVertexStream1fvATI*(stream: GLenum, coords: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexStream1dATI*(stream: GLenum, x: GLdouble){.stdcall, importc, ogl.}

-proc glVertexStream1dvATI*(stream: GLenum, coords: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexStream2sATI*(stream: GLenum, x: GLshort, y: GLshort){.stdcall, importc, ogl.}

-proc glVertexStream2svATI*(stream: GLenum, coords: PGLshort){.stdcall, importc, ogl.}

-proc glVertexStream2iATI*(stream: GLenum, x: GLint, y: GLint){.stdcall, importc, ogl.}

-proc glVertexStream2ivATI*(stream: GLenum, coords: PGLint){.stdcall, importc, ogl.}

-proc glVertexStream2fATI*(stream: GLenum, x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glVertexStream2fvATI*(stream: GLenum, coords: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexStream2dATI*(stream: GLenum, x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glVertexStream2dvATI*(stream: GLenum, coords: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexStream3sATI*(stream: GLenum, x: GLshort, y: GLshort, z: GLshort){.

-    stdcall, importc, ogl.}

-proc glVertexStream3svATI*(stream: GLenum, coords: PGLshort){.stdcall, importc, ogl.}

-proc glVertexStream3iATI*(stream: GLenum, x: GLint, y: GLint, z: GLint){.stdcall, importc, ogl.}

-proc glVertexStream3ivATI*(stream: GLenum, coords: PGLint){.stdcall, importc, ogl.}

-proc glVertexStream3fATI*(stream: GLenum, x: GLfloat, y: GLfloat, z: GLfloat){.

-    stdcall, importc, ogl.}

-proc glVertexStream3fvATI*(stream: GLenum, coords: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexStream3dATI*(stream: GLenum, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glVertexStream3dvATI*(stream: GLenum, coords: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexStream4sATI*(stream: GLenum, x: GLshort, y: GLshort, z: GLshort, 

-                          w: GLshort){.stdcall, importc, ogl.}

-proc glVertexStream4svATI*(stream: GLenum, coords: PGLshort){.stdcall, importc, ogl.}

-proc glVertexStream4iATI*(stream: GLenum, x: GLint, y: GLint, z: GLint, w: GLint){.

-    stdcall, importc, ogl.}

-proc glVertexStream4ivATI*(stream: GLenum, coords: PGLint){.stdcall, importc, ogl.}

-proc glVertexStream4fATI*(stream: GLenum, x: GLfloat, y: GLfloat, z: GLfloat, 

-                          w: GLfloat){.stdcall, importc, ogl.}

-proc glVertexStream4fvATI*(stream: GLenum, coords: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexStream4dATI*(stream: GLenum, x: GLdouble, y: GLdouble, z: GLdouble, 

-                          w: GLdouble){.stdcall, importc, ogl.}

-proc glVertexStream4dvATI*(stream: GLenum, coords: PGLdouble){.stdcall, importc, ogl.}

-proc glNormalStream3bATI*(stream: GLenum, nx: GLbyte, ny: GLbyte, nz: GLbyte){.

-    stdcall, importc, ogl.}

-proc glNormalStream3bvATI*(stream: GLenum, coords: PGLbyte){.stdcall, importc, ogl.}

-proc glNormalStream3sATI*(stream: GLenum, nx: GLshort, ny: GLshort, nz: GLshort){.

-    stdcall, importc, ogl.}

-proc glNormalStream3svATI*(stream: GLenum, coords: PGLshort){.stdcall, importc, ogl.}

-proc glNormalStream3iATI*(stream: GLenum, nx: GLint, ny: GLint, nz: GLint){.

-    stdcall, importc, ogl.}

-proc glNormalStream3ivATI*(stream: GLenum, coords: PGLint){.stdcall, importc, ogl.}

-proc glNormalStream3fATI*(stream: GLenum, nx: GLfloat, ny: GLfloat, nz: GLfloat){.

-    stdcall, importc, ogl.}

-proc glNormalStream3fvATI*(stream: GLenum, coords: PGLfloat){.stdcall, importc, ogl.}

-proc glNormalStream3dATI*(stream: GLenum, nx: GLdouble, ny: GLdouble, 

-                          nz: GLdouble){.stdcall, importc, ogl.}

-proc glNormalStream3dvATI*(stream: GLenum, coords: PGLdouble){.stdcall, importc, ogl.}

-proc glClientActiveVertexStreamATI*(stream: GLenum){.stdcall, importc, ogl.}

-proc glVertexBlendEnviATI*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glVertexBlendEnvfATI*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-  # GL_AMD_performance_monitor

-proc glGetPerfMonitorGroupsAMD*(numGroups: PGLint, groupsSize: GLsizei, 

-                                groups: PGLuint){.stdcall, importc, ogl.}

-proc glGetPerfMonitorCountersAMD*(group: GLuint, numCounters: PGLint, 

-                                  maxActiveCouters: PGLint, 

-                                  counterSize: GLsizei, counters: PGLuint){.

-    stdcall, importc, ogl.}

-proc glGetPerfMonitorGroupStringAMD*(group: GLuint, bufSize: GLsizei, 

-                                     len: PGLsizei, groupString: PGLchar){.

-    stdcall, importc, ogl.}

-proc glGetPerfMonitorCounterStringAMD*(group: GLuint, counter: GLuint, 

-                                       bufSize: GLsizei, len: PGLsizei, 

-                                       counterString: PGLchar){.stdcall, importc, ogl.}

-proc glGetPerfMonitorCounterInfoAMD*(group: GLuint, counter: GLuint, 

-                                     pname: GLenum, data: PGLvoid){.stdcall, importc, ogl.}

-proc glGenPerfMonitorsAMD*(n: GLsizei, monitors: PGLuint){.stdcall, importc, ogl.}

-proc glDeletePerfMonitorsAMD*(n: GLsizei, monitors: PGLuint){.stdcall, importc, ogl.}

-proc glSelectPerfMonitorCountersAMD*(monitor: GLuint, enable: GLboolean, 

-                                     group: GLuint, numCounters: GLint, 

-                                     counterList: PGLuint){.stdcall, importc, ogl.}

-proc glBeginPerfMonitorAMD*(monitor: GLuint){.stdcall, importc, ogl.}

-proc glEndPerfMonitorAMD*(monitor: GLuint){.stdcall, importc, ogl.}

-proc glGetPerfMonitorCounterDataAMD*(monitor: GLuint, pname: GLenum, 

-                                     dataSize: GLsizei, data: PGLuint, 

-                                     bytesWritten: PGLint){.stdcall, importc, ogl.}

-  # GL_AMD_vertex_shader_tesselator

-proc glTessellationFactorAMD*(factor: GLfloat){.stdcall, importc, ogl.}

-proc glTessellationModeAMD*(mode: GLenum){.stdcall, importc, ogl.}

-  # GL_AMD_draw_buffers_blend

-proc glBlendFuncIndexedAMD*(buf: GLuint, src: GLenum, dst: GLenum){.stdcall, importc, ogl.}

-proc glBlendFuncSeparateIndexedAMD*(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, 

-                                    srcAlpha: GLenum, dstAlpha: GLenum){.stdcall, importc, ogl.}

-proc glBlendEquationIndexedAMD*(buf: GLuint, mode: GLenum){.stdcall, importc, ogl.}

-proc glBlendEquationSeparateIndexedAMD*(buf: GLuint, modeRGB: GLenum, 

-                                        modeAlpha: GLenum){.stdcall, importc, ogl.}

-  # GL_AMD_name_gen_delete

-proc glGenNamesAMD*(identifier: GLenum, num: GLuint, names: PGLuint){.stdcall, importc, ogl.}

-proc glDeleteNamesAMD*(identifier: GLenum, num: GLuint, names: PGLuint){.stdcall, importc, ogl.}

-proc glIsNameAMD*(identifier: GLenum, name: GLuint): GLboolean{.stdcall, importc, ogl.}

-  # GL_AMD_debug_output

-proc glDebugMessageEnableAMD*(category: GLenum, severity: GLenum, 

-                              count: GLsizei, ids: PGLuint, enabled: GLboolean){.

-    stdcall, importc, ogl.}

-proc glDebugMessageInsertAMD*(category: GLenum, severity: GLenum, id: GLuint, 

-                              len: GLsizei, buf: PGLchar){.stdcall, importc, ogl.}

-proc glDebugMessageCallbackAMD*(callback: TGLDebugProcAMD, userParam: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetDebugMessageLogAMD*(count: GLuint, bufsize: GLsizei, 

-                              categories: PGLenum, severities: PGLuint, 

-                              ids: PGLuint, lengths: PGLsizei, message: PGLchar): GLuint{.

-    stdcall, importc, ogl.}

-  # GL_EXT_blend_color

-proc glBlendColorEXT*(red: GLclampf, green: GLclampf, blue: GLclampf, 

-                      alpha: GLclampf){.stdcall, importc, ogl.}

-  # GL_EXT_blend_func_separate

-proc glBlendFuncSeparateEXT*(sfactorRGB: GLenum, dfactorRGB: GLenum, 

-                             sfactorAlpha: GLenum, dfactorAlpha: GLenum){.

-    stdcall, importc, ogl.}

-  # GL_EXT_blend_minmax

-proc glBlendEquationEXT*(mode: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_color_subtable

-proc glColorSubTableEXT*(target: GLenum, start: GLsizei, count: GLsizei, 

-                         format: GLenum, typ: GLenum, data: PGLvoid){.stdcall, importc, ogl.}

-proc glCopyColorSubTableEXT*(target: GLenum, start: GLsizei, x: GLint, y: GLint, 

-                             width: GLsizei){.stdcall, importc, ogl.}

-  # GL_EXT_compiled_vertex_array

-proc glLockArraysEXT*(first: GLint, count: GLsizei){.stdcall, importc, ogl.}

-proc glUnlockArraysEXT*(){.stdcall, importc, ogl.}

-  # GL_EXT_convolution

-proc glConvolutionFilter1DEXT*(target: GLenum, internalformat: GLenum, 

-                               width: GLsizei, format: GLenum, typ: GLenum, 

-                               image: PGLvoid){.stdcall, importc, ogl.}

-proc glConvolutionFilter2DEXT*(target: GLenum, internalformat: GLenum, 

-                               width: GLsizei, height: GLsizei, format: GLenum, 

-                               typ: GLenum, image: PGLvoid){.stdcall, importc, ogl.}

-proc glConvolutionParameterfEXT*(target: GLenum, pname: GLenum, params: GLfloat){.

-    stdcall, importc, ogl.}

-proc glConvolutionParameterfvEXT*(target: GLenum, pname: GLenum, 

-                                  params: PGLfloat){.stdcall, importc, ogl.}

-proc glConvolutionParameteriEXT*(target: GLenum, pname: GLenum, params: GLint){.

-    stdcall, importc, ogl.}

-proc glConvolutionParameterivEXT*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glCopyConvolutionFilter1DEXT*(target: GLenum, internalformat: GLenum, 

-                                   x: GLint, y: GLint, width: GLsizei){.stdcall, importc, ogl.}

-proc glCopyConvolutionFilter2DEXT*(target: GLenum, internalformat: GLenum, 

-                                   x: GLint, y: GLint, width: GLsizei, 

-                                   height: GLsizei){.stdcall, importc, ogl.}

-proc glGetConvolutionFilterEXT*(target: GLenum, format: GLenum, typ: GLenum, 

-                                image: PGLvoid){.stdcall, importc, ogl.}

-proc glGetConvolutionParameterfvEXT*(target: GLenum, pname: GLenum, 

-                                     params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetConvolutionParameterivEXT*(target: GLenum, pname: GLenum, 

-                                     params: PGLint){.stdcall, importc, ogl.}

-proc glGetSeparableFilterEXT*(target: GLenum, format: GLenum, typ: GLenum, 

-                              row: PGLvoid, column: PGLvoid, span: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glSeparableFilter2DEXT*(target: GLenum, internalformat: GLenum, 

-                             width: GLsizei, height: GLsizei, format: GLenum, 

-                             typ: GLenum, row: PGLvoid, column: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_EXT_coordinate_frame

-proc glTangent3bEXT*(tx: GLbyte, ty: GLbyte, tz: GLbyte){.stdcall, importc, ogl.}

-proc glTangent3bvEXT*(v: PGLbyte){.stdcall, importc, ogl.}

-proc glTangent3dEXT*(tx: GLdouble, ty: GLdouble, tz: GLdouble){.stdcall, importc, ogl.}

-proc glTangent3dvEXT*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glTangent3fEXT*(tx: GLfloat, ty: GLfloat, tz: GLfloat){.stdcall, importc, ogl.}

-proc glTangent3fvEXT*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glTangent3iEXT*(tx: GLint, ty: GLint, tz: GLint){.stdcall, importc, ogl.}

-proc glTangent3ivEXT*(v: PGLint){.stdcall, importc, ogl.}

-proc glTangent3sEXT*(tx: GLshort, ty: GLshort, tz: GLshort){.stdcall, importc, ogl.}

-proc glTangent3svEXT*(v: PGLshort){.stdcall, importc, ogl.}

-proc glBinormal3bEXT*(bx: GLbyte, by: GLbyte, bz: GLbyte){.stdcall, importc, ogl.}

-proc glBinormal3bvEXT*(v: PGLbyte){.stdcall, importc, ogl.}

-proc glBinormal3dEXT*(bx: GLdouble, by: GLdouble, bz: GLdouble){.stdcall, importc, ogl.}

-proc glBinormal3dvEXT*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glBinormal3fEXT*(bx: GLfloat, by: GLfloat, bz: GLfloat){.stdcall, importc, ogl.}

-proc glBinormal3fvEXT*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glBinormal3iEXT*(bx: GLint, by: GLint, bz: GLint){.stdcall, importc, ogl.}

-proc glBinormal3ivEXT*(v: PGLint){.stdcall, importc, ogl.}

-proc glBinormal3sEXT*(bx: GLshort, by: GLshort, bz: GLshort){.stdcall, importc, ogl.}

-proc glBinormal3svEXT*(v: PGLshort){.stdcall, importc, ogl.}

-proc glTangentPointerEXT*(typ: GLenum, stride: GLsizei, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glBinormalPointerEXT*(typ: GLenum, stride: GLsizei, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_EXT_copy_texture

-proc glCopyTexImage1DEXT*(target: GLenum, level: GLint, internalformat: GLenum, 

-                          x: GLint, y: GLint, width: GLsizei, border: GLint){.

-    stdcall, importc, ogl.}

-proc glCopyTexImage2DEXT*(target: GLenum, level: GLint, internalformat: GLenum, 

-                          x: GLint, y: GLint, width: GLsizei, height: GLsizei, 

-                          border: GLint){.stdcall, importc, ogl.}

-proc glCopyTexSubImage1DEXT*(target: GLenum, level: GLint, xoffset: GLint, 

-                             x: GLint, y: GLint, width: GLsizei){.stdcall, importc, ogl.}

-proc glCopyTexSubImage2DEXT*(target: GLenum, level: GLint, xoffset: GLint, 

-                             yoffset: GLint, x: GLint, y: GLint, width: GLsizei, 

-                             height: GLsizei){.stdcall, importc, ogl.}

-proc glCopyTexSubImage3DEXT*(target: GLenum, level: GLint, xoffset: GLint, 

-                             yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, 

-                             width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-  # GL_EXT_cull_vertex

-proc glCullParameterdvEXT*(pname: GLenum, params: PGLdouble){.stdcall, importc, ogl.}

-proc glCullParameterfvEXT*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_EXT_draw_range_elements

-proc glDrawRangeElementsEXT*(mode: GLenum, start: GLuint, ending: GLuint, 

-                             count: GLsizei, typ: GLenum, indices: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_EXT_fog_coord

-proc glFogCoordfEXT*(coord: GLfloat){.stdcall, importc, ogl.}

-proc glFogCoordfvEXT*(coord: PGLfloat){.stdcall, importc, ogl.}

-proc glFogCoorddEXT*(coord: GLdouble){.stdcall, importc, ogl.}

-proc glFogCoorddvEXT*(coord: PGLdouble){.stdcall, importc, ogl.}

-proc glFogCoordPointerEXT*(typ: GLenum, stride: GLsizei, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_EXT_framebuffer_object

-proc glIsRenderbufferEXT*(renderbuffer: GLuint): bool{.stdcall, importc, ogl.}

-proc glBindRenderbufferEXT*(target: GLenum, renderbuffer: GLuint){.stdcall, importc, ogl.}

-proc glDeleteRenderbuffersEXT*(n: GLsizei, renderbuffers: PGLuint){.stdcall, importc, ogl.}

-proc glGenRenderbuffersEXT*(n: GLsizei, renderbuffers: PGLuint){.stdcall, importc, ogl.}

-proc glRenderbufferStorageEXT*(target: GLenum, internalformat: GLenum, 

-                               width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-proc glGetRenderbufferParameterivEXT*(target: GLenum, pname: GLenum, 

-                                      params: PGLint){.stdcall, importc, ogl.}

-proc glIsFramebufferEXT*(framebuffer: GLuint): bool{.stdcall, importc, ogl.}

-proc glBindFramebufferEXT*(target: GLenum, framebuffer: GLuint){.stdcall, importc, ogl.}

-proc glDeleteFramebuffersEXT*(n: GLsizei, framebuffers: PGLuint){.stdcall, importc, ogl.}

-proc glGenFramebuffersEXT*(n: GLsizei, framebuffers: PGLuint){.stdcall, importc, ogl.}

-proc glCheckFramebufferStatusEXT*(target: GLenum): GLenum{.stdcall, importc, ogl.}

-proc glFramebufferTexture1DEXT*(target: GLenum, attachment: GLenum, 

-                                textarget: GLenum, texture: GLuint, level: GLint){.

-    stdcall, importc, ogl.}

-proc glFramebufferTexture2DEXT*(target: GLenum, attachment: GLenum, 

-                                textarget: GLenum, texture: GLuint, level: GLint){.

-    stdcall, importc, ogl.}

-proc glFramebufferTexture3DEXT*(target: GLenum, attachment: GLenum, 

-                                textarget: GLenum, texture: GLuint, 

-                                level: GLint, zoffset: GLint){.stdcall, importc, ogl.}

-proc glFramebufferRenderbufferEXT*(target: GLenum, attachment: GLenum, 

-                                   renderbuffertarget: GLenum, 

-                                   renderbuffer: GLuint){.stdcall, importc, ogl.}

-proc glGetFramebufferAttachmentParameterivEXT*(target: GLenum, 

-    attachment: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGenerateMipmapEXT*(target: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_histogram

-proc glGetHistogramEXT*(target: GLenum, reset: GLboolean, format: GLenum, 

-                        typ: GLenum, values: PGLvoid){.stdcall, importc, ogl.}

-proc glGetHistogramParameterfvEXT*(target: GLenum, pname: GLenum, 

-                                   params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetHistogramParameterivEXT*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetMinmaxEXT*(target: GLenum, reset: GLboolean, format: GLenum, 

-                     typ: GLenum, values: PGLvoid){.stdcall, importc, ogl.}

-proc glGetMinmaxParameterfvEXT*(target: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetMinmaxParameterivEXT*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glHistogramEXT*(target: GLenum, width: GLsizei, internalformat: GLenum, 

-                     sink: GLboolean){.stdcall, importc, ogl.}

-proc glMinmaxEXT*(target: GLenum, internalformat: GLenum, sink: GLboolean){.

-    stdcall, importc, ogl.}

-proc glResetHistogramEXT*(target: GLenum){.stdcall, importc, ogl.}

-proc glResetMinmaxEXT*(target: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_index_func

-proc glIndexFuncEXT*(func: GLenum, theRef: GLclampf){.stdcall, importc, ogl.}

-  # GL_EXT_index_material

-proc glIndexMaterialEXT*(face: GLenum, mode: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_light_texture

-proc glApplyTextureEXT*(mode: GLenum){.stdcall, importc, ogl.}

-proc glTextureLightEXT*(pname: GLenum){.stdcall, importc, ogl.}

-proc glTextureMaterialEXT*(face: GLenum, mode: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_multi_draw_arrays

-proc glMultiDrawArraysEXT*(mode: GLenum, first: PGLint, count: PGLsizei, 

-                           primcount: GLsizei){.stdcall, importc, ogl.}

-proc glMultiDrawElementsEXT*(mode: GLenum, count: PGLsizei, typ: GLenum, 

-                             indices: PGLvoid, primcount: GLsizei){.stdcall, importc, ogl.}

-  # GL_EXT_multisample

-proc glSampleMaskEXT*(value: GLclampf, invert: GLboolean){.stdcall, importc, ogl.}

-proc glSamplePatternEXT*(pattern: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_paletted_texture

-proc glColorTableEXT*(target: GLenum, internalFormat: GLenum, width: GLsizei, 

-                      format: GLenum, typ: GLenum, table: PGLvoid){.stdcall, importc, ogl.}

-proc glGetColorTableEXT*(target: GLenum, format: GLenum, typ: GLenum, 

-                         data: PGLvoid){.stdcall, importc, ogl.}

-proc glGetColorTableParameterivEXT*(target: GLenum, pname: GLenum, 

-                                    params: PGLint){.stdcall, importc, ogl.}

-proc glGetColorTableParameterfvEXT*(target: GLenum, pname: GLenum, 

-                                    params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_EXT_pixel_transform

-proc glPixelTransformParameteriEXT*(target: GLenum, pname: GLenum, param: GLint){.

-    stdcall, importc, ogl.}

-proc glPixelTransformParameterfEXT*(target: GLenum, pname: GLenum, 

-                                    param: GLfloat){.stdcall, importc, ogl.}

-proc glPixelTransformParameterivEXT*(target: GLenum, pname: GLenum, 

-                                     params: PGLint){.stdcall, importc, ogl.}

-proc glPixelTransformParameterfvEXT*(target: GLenum, pname: GLenum, 

-                                     params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_EXT_point_parameters

-proc glPointParameterfEXT*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glPointParameterfvEXT*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_EXT_polygon_offset

-proc glPolygonOffsetEXT*(factor: GLfloat, bias: GLfloat){.stdcall, importc, ogl.}

-  # GL_EXT_secondary_color

-proc glSecondaryColor3bEXT*(red: GLbyte, green: GLbyte, blue: GLbyte){.stdcall, importc, ogl.}

-proc glSecondaryColor3bvEXT*(v: PGLbyte){.stdcall, importc, ogl.}

-proc glSecondaryColor3dEXT*(red: GLdouble, green: GLdouble, blue: GLdouble){.

-    stdcall, importc, ogl.}

-proc glSecondaryColor3dvEXT*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glSecondaryColor3fEXT*(red: GLfloat, green: GLfloat, blue: GLfloat){.

-    stdcall, importc, ogl.}

-proc glSecondaryColor3fvEXT*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glSecondaryColor3iEXT*(red: GLint, green: GLint, blue: GLint){.stdcall, importc, ogl.}

-proc glSecondaryColor3ivEXT*(v: PGLint){.stdcall, importc, ogl.}

-proc glSecondaryColor3sEXT*(red: GLshort, green: GLshort, blue: GLshort){.

-    stdcall, importc, ogl.}

-proc glSecondaryColor3svEXT*(v: PGLshort){.stdcall, importc, ogl.}

-proc glSecondaryColor3ubEXT*(red: GLubyte, green: GLubyte, blue: GLubyte){.

-    stdcall, importc, ogl.}

-proc glSecondaryColor3ubvEXT*(v: PGLubyte){.stdcall, importc, ogl.}

-proc glSecondaryColor3uiEXT*(red: GLuint, green: GLuint, blue: GLuint){.stdcall, importc, ogl.}

-proc glSecondaryColor3uivEXT*(v: PGLuint){.stdcall, importc, ogl.}

-proc glSecondaryColor3usEXT*(red: GLushort, green: GLushort, blue: GLushort){.

-    stdcall, importc, ogl.}

-proc glSecondaryColor3usvEXT*(v: PGLushort){.stdcall, importc, ogl.}

-proc glSecondaryColorPointerEXT*(size: GLint, typ: GLenum, stride: GLsizei, 

-                                 pointer: PGLvoid){.stdcall, importc, ogl.}

-  # GL_EXT_stencil_two_side

-proc glActiveStencilFaceEXT*(face: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_subtexture

-proc glTexSubImage1DEXT*(target: GLenum, level: GLint, xoffset: GLint, 

-                         width: GLsizei, format: GLenum, typ: GLenum, 

-                         pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glTexSubImage2DEXT*(target: GLenum, level: GLint, xoffset: GLint, 

-                         yoffset: GLint, width: GLsizei, height: GLsizei, 

-                         format: GLenum, typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-  # GL_EXT_texture3D

-proc glTexImage3DEXT*(target: GLenum, level: GLint, internalformat: GLenum, 

-                      width: GLsizei, height: GLsizei, depth: GLsizei, 

-                      border: GLint, format: GLenum, typ: GLenum, 

-                      pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glTexSubImage3DEXT*(target: GLenum, level: GLint, xoffset: GLint, 

-                         yoffset: GLint, zoffset: GLint, width: GLsizei, 

-                         height: GLsizei, depth: GLsizei, format: GLenum, 

-                         typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-  # GL_EXT_texture_object

-proc glAreTexturesResidentEXT*(n: GLsizei, textures: PGLuint, 

-                               residences: PGLboolean): GLboolean{.stdcall, importc, ogl.}

-proc glBindTextureEXT*(target: GLenum, texture: GLuint){.stdcall, importc, ogl.}

-proc glDeleteTexturesEXT*(n: GLsizei, textures: PGLuint){.stdcall, importc, ogl.}

-proc glGenTexturesEXT*(n: GLsizei, textures: PGLuint){.stdcall, importc, ogl.}

-proc glIsTextureEXT*(texture: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glPrioritizeTexturesEXT*(n: GLsizei, textures: PGLuint, 

-                              priorities: PGLclampf){.stdcall, importc, ogl.}

-  # GL_EXT_texture_perturb_normal

-proc glTextureNormalEXT*(mode: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_vertex_array

-proc glArrayElementEXT*(i: GLint){.stdcall, importc, ogl.}

-proc glColorPointerEXT*(size: GLint, typ: GLenum, stride: GLsizei, 

-                        count: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glDrawArraysEXT*(mode: GLenum, first: GLint, count: GLsizei){.stdcall, importc, ogl.}

-proc glEdgeFlagPointerEXT*(stride: GLsizei, count: GLsizei, pointer: PGLboolean){.

-    stdcall, importc, ogl.}

-proc glGetPointervEXT*(pname: GLenum, params: PGLvoid){.stdcall, importc, ogl.}

-proc glIndexPointerEXT*(typ: GLenum, stride: GLsizei, count: GLsizei, 

-                        pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glNormalPointerEXT*(typ: GLenum, stride: GLsizei, count: GLsizei, 

-                         pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glTexCoordPointerEXT*(size: GLint, typ: GLenum, stride: GLsizei, 

-                           count: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glVertexPointerEXT*(size: GLint, typ: GLenum, stride: GLsizei, 

-                         count: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-  # GL_EXT_vertex_shader

-proc glBeginVertexShaderEXT*(){.stdcall, importc, ogl.}

-proc glEndVertexShaderEXT*(){.stdcall, importc, ogl.}

-proc glBindVertexShaderEXT*(id: GLuint){.stdcall, importc, ogl.}

-proc glGenVertexShadersEXT*(range: GLuint): GLuint{.stdcall, importc, ogl.}

-proc glDeleteVertexShaderEXT*(id: GLuint){.stdcall, importc, ogl.}

-proc glShaderOp1EXT*(op: GLenum, res: GLuint, arg1: GLuint){.stdcall, importc, ogl.}

-proc glShaderOp2EXT*(op: GLenum, res: GLuint, arg1: GLuint, arg2: GLuint){.

-    stdcall, importc, ogl.}

-proc glShaderOp3EXT*(op: GLenum, res: GLuint, arg1: GLuint, arg2: GLuint, 

-                     arg3: GLuint){.stdcall, importc, ogl.}

-proc glSwizzleEXT*(res: GLuint, ain: GLuint, outX: GLenum, outY: GLenum, 

-                   outZ: GLenum, outW: GLenum){.stdcall, importc, ogl.}

-proc glWriteMaskEXT*(res: GLuint, ain: GLuint, outX: GLenum, outY: GLenum, 

-                     outZ: GLenum, outW: GLenum){.stdcall, importc, ogl.}

-proc glInsertComponentEXT*(res: GLuint, src: GLuint, num: GLuint){.stdcall, importc, ogl.}

-proc glExtractComponentEXT*(res: GLuint, src: GLuint, num: GLuint){.stdcall, importc, ogl.}

-proc glGenSymbolsEXT*(datatype: GLenum, storagetype: GLenum, range: GLenum, 

-                      components: GLuint): GLuint{.stdcall, importc, ogl.}

-proc glSetInvariantEXT*(id: GLuint, typ: GLenum, theAddr: PGLvoid){.stdcall, importc, ogl.}

-proc glSetLocalConstantEXT*(id: GLuint, typ: GLenum, theAddr: PGLvoid){.stdcall, importc, ogl.}

-proc glVariantbvEXT*(id: GLuint, theAddr: PGLbyte){.stdcall, importc, ogl.}

-proc glVariantsvEXT*(id: GLuint, theAddr: PGLshort){.stdcall, importc, ogl.}

-proc glVariantivEXT*(id: GLuint, theAddr: PGLint){.stdcall, importc, ogl.}

-proc glVariantfvEXT*(id: GLuint, theAddr: PGLfloat){.stdcall, importc, ogl.}

-proc glVariantdvEXT*(id: GLuint, theAddr: PGLdouble){.stdcall, importc, ogl.}

-proc glVariantubvEXT*(id: GLuint, theAddr: PGLubyte){.stdcall, importc, ogl.}

-proc glVariantusvEXT*(id: GLuint, theAddr: PGLushort){.stdcall, importc, ogl.}

-proc glVariantuivEXT*(id: GLuint, theAddr: PGLuint){.stdcall, importc, ogl.}

-proc glVariantPointerEXT*(id: GLuint, typ: GLenum, stride: GLuint, theAddr: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glEnableVariantClientStateEXT*(id: GLuint){.stdcall, importc, ogl.}

-proc glDisableVariantClientStateEXT*(id: GLuint){.stdcall, importc, ogl.}

-proc glBindLightParameterEXT*(light: GLenum, value: GLenum): GLuint{.stdcall, importc, ogl.}

-proc glBindMaterialParameterEXT*(face: GLenum, value: GLenum): GLuint{.stdcall, importc, ogl.}

-proc glBindTexGenParameterEXT*(theUnit: GLenum, coord: GLenum, value: GLenum): GLuint{.

-    stdcall, importc, ogl.}

-proc glBindTextureUnitParameterEXT*(theUnit: GLenum, value: GLenum): GLuint{.

-    stdcall, importc, ogl.}

-proc glBindParameterEXT*(value: GLenum): GLuint{.stdcall, importc, ogl.}

-proc glIsVariantEnabledEXT*(id: GLuint, cap: GLenum): GLboolean{.stdcall, importc, ogl.}

-proc glGetVariantBooleanvEXT*(id: GLuint, value: GLenum, data: PGLboolean){.

-    stdcall, importc, ogl.}

-proc glGetVariantIntegervEXT*(id: GLuint, value: GLenum, data: PGLint){.stdcall, importc, ogl.}

-proc glGetVariantFloatvEXT*(id: GLuint, value: GLenum, data: PGLfloat){.stdcall, importc, ogl.}

-proc glGetVariantPointervEXT*(id: GLuint, value: GLenum, data: PGLvoid){.stdcall, importc, ogl.}

-proc glGetInvariantBooleanvEXT*(id: GLuint, value: GLenum, data: PGLboolean){.

-    stdcall, importc, ogl.}

-proc glGetInvariantIntegervEXT*(id: GLuint, value: GLenum, data: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetInvariantFloatvEXT*(id: GLuint, value: GLenum, data: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetLocalConstantBooleanvEXT*(id: GLuint, value: GLenum, data: PGLboolean){.

-    stdcall, importc, ogl.}

-proc glGetLocalConstantIntegervEXT*(id: GLuint, value: GLenum, data: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetLocalConstantFloatvEXT*(id: GLuint, value: GLenum, data: PGLfloat){.

-    stdcall, importc, ogl.}

-  # GL_EXT_vertex_weighting

-proc glVertexWeightfEXT*(weight: GLfloat){.stdcall, importc, ogl.}

-proc glVertexWeightfvEXT*(weight: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexWeightPointerEXT*(size: GLsizei, typ: GLenum, stride: GLsizei, 

-                               pointer: PGLvoid){.stdcall, importc, ogl.}

-  # GL_EXT_stencil_clear_tag

-proc glStencilClearTagEXT*(stencilTagBits: GLsizei, stencilClearTag: GLuint){.

-    stdcall, importc, ogl.}

-  # GL_EXT_framebuffer_blit

-proc glBlitFramebufferEXT*(srcX0: GLint, srcY0: GLint, srcX1: GLint, 

-                           srcY1: GLint, dstX0: GLint, dstY0: GLint, 

-                           dstX1: GLint, dstY1: GLint, mask: GLbitfield, 

-                           filter: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_framebuffer_multisample

-proc glRenderbufferStorageMultisampleEXT*(target: GLenum, samples: GLsizei, 

-    internalformat: GLenum, width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-  # GL_EXT_timer_query

-proc glGetQueryObjecti64vEXT*(id: GLuint, pname: GLenum, params: PGLint64EXT){.

-    stdcall, importc, ogl.}

-proc glGetQueryObjectui64vEXT*(id: GLuint, pname: GLenum, params: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-  # GL_EXT_gpu_program_parameters

-proc glProgramEnvParameters4fvEXT*(target: GLenum, index: GLuint, 

-                                   count: GLsizei, params: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramLocalParameters4fvEXT*(target: GLenum, index: GLuint, 

-                                     count: GLsizei, params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_EXT_bindable_uniform

-proc glUniformBufferEXT*(prog: GLuint, location: GLint, buffer: GLuint){.stdcall, importc, ogl.}

-proc glGetUniformBufferSizeEXT*(prog: GLuint, location: GLint): GLint{.stdcall, importc, ogl.}

-proc glGetUniformOffsetEXT*(prog: GLuint, location: GLint): GLintptr{.stdcall, importc, ogl.}

-  # GL_EXT_draw_buffers2

-proc glColorMaskIndexedEXT*(buf: GLuint, r: GLboolean, g: GLboolean, 

-                            b: GLboolean, a: GLboolean){.stdcall, importc, ogl.}

-proc glGetBooleanIndexedvEXT*(value: GLenum, index: GLuint, data: PGLboolean){.

-    stdcall, importc, ogl.}

-proc glGetIntegerIndexedvEXT*(value: GLenum, index: GLuint, data: PGLint){.

-    stdcall, importc, ogl.}

-proc glEnableIndexedEXT*(target: GLenum, index: GLuint){.stdcall, importc, ogl.}

-proc glDisableIndexedEXT*(target: GLenum, index: GLuint){.stdcall, importc, ogl.}

-proc glIsEnabledIndexedEXT*(target: GLenum, index: GLuint): GLboolean{.stdcall, importc, ogl.}

-  # GL_EXT_draw_instanced

-proc glDrawArraysInstancedEXT*(mode: GLenum, first: GLint, count: GLsizei, 

-                               primcount: GLsizei){.stdcall, importc, ogl.}

-proc glDrawElementsInstancedEXT*(mode: GLenum, count: GLsizei, typ: GLenum, 

-                                 indices: Pointer, primcount: GLsizei){.stdcall, importc, ogl.}

-  # GL_EXT_geometry_shader4

-proc glProgramParameteriEXT*(prog: GLuint, pname: GLenum, value: GLint){.stdcall, importc, ogl.}

-proc glFramebufferTextureEXT*(target: GLenum, attachment: GLenum, 

-                              texture: GLuint, level: GLint){.stdcall, importc, ogl.}

-  #procedure glFramebufferTextureLayerEXT(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); stdcall, importc, ogl;

-proc glFramebufferTextureFaceEXT*(target: GLenum, attachment: GLenum, 

-                                  texture: GLuint, level: GLint, face: GLenum){.

-    stdcall, importc, ogl.}

-  # GL_EXT_gpu_shader4

-proc glVertexAttribI1iEXT*(index: GLuint, x: GLint){.stdcall, importc, ogl.}

-proc glVertexAttribI2iEXT*(index: GLuint, x: GLint, y: GLint){.stdcall, importc, ogl.}

-proc glVertexAttribI3iEXT*(index: GLuint, x: GLint, y: GLint, z: GLint){.stdcall, importc, ogl.}

-proc glVertexAttribI4iEXT*(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint){.

-    stdcall, importc, ogl.}

-proc glVertexAttribI1uiEXT*(index: GLuint, x: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI2uiEXT*(index: GLuint, x: GLuint, y: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI3uiEXT*(index: GLuint, x: GLuint, y: GLuint, z: GLuint){.

-    stdcall, importc, ogl.}

-proc glVertexAttribI4uiEXT*(index: GLuint, x: GLuint, y: GLuint, z: GLuint, 

-                            w: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI1ivEXT*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttribI2ivEXT*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttribI3ivEXT*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttribI4ivEXT*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttribI1uivEXT*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI2uivEXT*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI3uivEXT*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI4uivEXT*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI4bvEXT*(index: GLuint, v: PGLbyte){.stdcall, importc, ogl.}

-proc glVertexAttribI4svEXT*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttribI4ubvEXT*(index: GLuint, v: PGLubyte){.stdcall, importc, ogl.}

-proc glVertexAttribI4usvEXT*(index: GLuint, v: PGLushort){.stdcall, importc, ogl.}

-proc glVertexAttribIPointerEXT*(index: GLuint, size: GLint, typ: GLenum, 

-                                stride: GLsizei, pointer: Pointer){.stdcall, importc, ogl.}

-proc glGetVertexAttribIivEXT*(index: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribIuivEXT*(index: GLuint, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-proc glUniform1uiEXT*(location: GLint, v0: GLuint){.stdcall, importc, ogl.}

-proc glUniform2uiEXT*(location: GLint, v0: GLuint, v1: GLuint){.stdcall, importc, ogl.}

-proc glUniform3uiEXT*(location: GLint, v0: GLuint, v1: GLuint, v2: GLuint){.

-    stdcall, importc, ogl.}

-proc glUniform4uiEXT*(location: GLint, v0: GLuint, v1: GLuint, v2: GLuint, 

-                      v3: GLuint){.stdcall, importc, ogl.}

-proc glUniform1uivEXT*(location: GLint, count: GLsizei, value: PGLuint){.stdcall, importc, ogl.}

-proc glUniform2uivEXT*(location: GLint, count: GLsizei, value: PGLuint){.stdcall, importc, ogl.}

-proc glUniform3uivEXT*(location: GLint, count: GLsizei, value: PGLuint){.stdcall, importc, ogl.}

-proc glUniform4uivEXT*(location: GLint, count: GLsizei, value: PGLuint){.stdcall, importc, ogl.}

-proc glGetUniformuivEXT*(prog: GLuint, location: GLint, params: PGLuint){.

-    stdcall, importc, ogl.}

-proc glBindFragDataLocationEXT*(prog: GLuint, colorNumber: GLuint, name: PGLchar){.

-    stdcall, importc, ogl.}

-proc glGetFragDataLocationEXT*(prog: GLuint, name: PGLchar): GLint{.stdcall, importc, ogl.}

-  # GL_EXT_texture_array

-proc glFramebufferTextureLayerEXT*(target: GLenum, attachment: GLenum, 

-                                   texture: GLuint, level: GLint, layer: GLint){.

-    stdcall, importc, ogl.}

-  # GL_EXT_texture_buffer_object

-proc glTexBufferEXT*(target: GLenum, internalformat: GLenum, buffer: GLuint){.

-    stdcall, importc, ogl.}

-  # GL_EXT_texture_integer

-proc glClearColorIiEXT*(r: GLint, g: GLint, b: GLint, a: GLint){.stdcall, importc, ogl.}

-proc glClearColorIuiEXT*(r: GLuint, g: GLuint, b: GLuint, a: GLuint){.stdcall, importc, ogl.}

-proc glTexParameterIivEXT*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glTexParameterIuivEXT*(target: GLenum, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-proc glGetTexParameterIivEXT*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetTexParameterIiuvEXT*(target: GLenum, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-  # GL_HP_image_transform

-proc glImageTransformParameteriHP*(target: GLenum, pname: GLenum, param: GLint){.

-    stdcall, importc, ogl.}

-proc glImageTransformParameterfHP*(target: GLenum, pname: GLenum, param: GLfloat){.

-    stdcall, importc, ogl.}

-proc glImageTransformParameterivHP*(target: GLenum, pname: GLenum, 

-                                    params: PGLint){.stdcall, importc, ogl.}

-proc glImageTransformParameterfvHP*(target: GLenum, pname: GLenum, 

-                                    params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetImageTransformParameterivHP*(target: GLenum, pname: GLenum, 

-                                       params: PGLint){.stdcall, importc, ogl.}

-proc glGetImageTransformParameterfvHP*(target: GLenum, pname: GLenum, 

-                                       params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_EXT_depth_bounds_test

-proc glDepthBoundsEXT*(zmin: GLclampd, zmax: GLclampd){.stdcall, importc, ogl.}

-  # GL_EXT_blend_equation_separate

-proc glBlendEquationSeparateEXT*(modeRGB: GLenum, modeAlpha: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_transform_feedback

-proc glBeginTransformFeedbackEXT*(primitiveMode: GLenum){.stdcall, importc, ogl.}

-proc glEndTransformFeedbackEXT*(){.stdcall, importc, ogl.}

-proc glBindBufferRangeEXT*(target: GLenum, index: GLuint, buffer: GLuint, 

-                           offset: GLintptr, size: GLsizeiptr){.stdcall, importc, ogl.}

-proc glBindBufferOffsetEXT*(target: GLenum, index: GLuint, buffer: GLuint, 

-                            offset: GLintptr){.stdcall, importc, ogl.}

-proc glBindBufferBaseEXT*(target: GLenum, index: GLuint, buffer: GLuint){.

-    stdcall, importc, ogl.}

-proc glTransformFeedbackVaryingsEXT*(prog: GLuint, count: GLsizei, 

-                                     locations: PGLint, bufferMode: GLenum){.

-    stdcall, importc, ogl.}

-proc glGetTransformFeedbackVaryingEXT*(prog: GLuint, index: GLuint, 

-                                       location: PGLint){.stdcall, importc, ogl.}

-  # GL_EXT_direct_state_access

-proc glClientAttribDefaultEXT*(mask: GLbitfield){.stdcall, importc, ogl.}

-proc glPushClientAttribDefaultEXT*(mask: GLbitfield){.stdcall, importc, ogl.}

-proc glMatrixLoadfEXT*(mode: GLenum, m: PGLfloat){.stdcall, importc, ogl.}

-proc glMatrixLoaddEXT*(mode: GLenum, m: PGLdouble){.stdcall, importc, ogl.}

-proc glMatrixMultfEXT*(mode: GLenum, m: PGLfloat){.stdcall, importc, ogl.}

-proc glMatrixMultdEXT*(mode: GLenum, m: PGLdouble){.stdcall, importc, ogl.}

-proc glMatrixLoadIdentityEXT*(mode: GLenum){.stdcall, importc, ogl.}

-proc glMatrixRotatefEXT*(mode: GLenum, angle: GLfloat, x: GLfloat, y: GLfloat, 

-                         z: GLfloat){.stdcall, importc, ogl.}

-proc glMatrixRotatedEXT*(mode: GLenum, angle: GLdouble, x: GLdouble, 

-                         y: GLdouble, z: GLdouble){.stdcall, importc, ogl.}

-proc glMatrixScalefEXT*(mode: GLenum, x: GLfloat, y: GLfloat, z: GLfloat){.

-    stdcall, importc, ogl.}

-proc glMatrixScaledEXT*(mode: GLenum, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glMatrixTranslatefEXT*(mode: GLenum, x: GLfloat, y: GLfloat, z: GLfloat){.

-    stdcall, importc, ogl.}

-proc glMatrixTranslatedEXT*(mode: GLenum, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glMatrixFrustumEXT*(mode: GLenum, left: GLdouble, right: GLdouble, 

-                         bottom: GLdouble, top: GLdouble, zNear: GLdouble, 

-                         zFar: GLdouble){.stdcall, importc, ogl.}

-proc glMatrixOrthoEXT*(mode: GLenum, left: GLdouble, right: GLdouble, 

-                       bottom: GLdouble, top: GLdouble, zNear: GLdouble, 

-                       zFar: GLdouble){.stdcall, importc, ogl.}

-proc glMatrixPopEXT*(mode: GLenum){.stdcall, importc, ogl.}

-proc glMatrixPushEXT*(mode: GLenum){.stdcall, importc, ogl.}

-proc glMatrixLoadTransposefEXT*(mode: GLenum, m: PGLfloat){.stdcall, importc, ogl.}

-proc glMatrixLoadTransposedEXT*(mode: GLenum, m: PGLdouble){.stdcall, importc, ogl.}

-proc glMatrixMultTransposefEXT*(mode: GLenum, m: PGLfloat){.stdcall, importc, ogl.}

-proc glMatrixMultTransposedEXT*(mode: GLenum, m: PGLdouble){.stdcall, importc, ogl.}

-proc glTextureParameterfEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                             param: GLfloat){.stdcall, importc, ogl.}

-proc glTextureParameterfvEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                              params: PGLfloat){.stdcall, importc, ogl.}

-proc glTextureParameteriEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                             param: GLint){.stdcall, importc, ogl.}

-proc glTextureParameterivEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                              params: PGLint){.stdcall, importc, ogl.}

-proc glTextureImage1DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                          internalformat: GLenum, width: GLsizei, border: GLint, 

-                          format: GLenum, typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glTextureImage2DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                          internalformat: GLenum, width: GLsizei, 

-                          height: GLsizei, border: GLint, format: GLenum, 

-                          typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glTextureSubImage1DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                             xoffset: GLint, width: GLsizei, format: GLenum, 

-                             typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glTextureSubImage2DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                             xoffset: GLint, yoffset: GLint, width: GLsizei, 

-                             height: GLsizei, format: GLenum, typ: GLenum, 

-                             pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glCopyTextureImage1DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                              internalformat: GLenum, x: GLint, y: GLint, 

-                              width: GLsizei, border: GLint){.stdcall, importc, ogl.}

-proc glCopyTextureImage2DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                              internalformat: GLenum, x: GLint, y: GLint, 

-                              width: GLsizei, height: GLsizei, border: GLint){.

-    stdcall, importc, ogl.}

-proc glCopyTextureSubImage1DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                                 xoffset: GLint, x: GLint, y: GLint, 

-                                 width: GLsizei){.stdcall, importc, ogl.}

-proc glCopyTextureSubImage2DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                                 xoffset: GLint, yoffset: GLint, x: GLint, 

-                                 y: GLint, width: GLsizei, height: GLsizei){.

-    stdcall, importc, ogl.}

-proc glGetTextureImageEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                           format: GLenum, typ: GLenum, pixels: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetTextureParameterfvEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                                 params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetTextureParameterivEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                                 params: PGLint){.stdcall, importc, ogl.}

-proc glGetTextureLevelParameterfvEXT*(texture: GLuint, target: GLenum, 

-                                      level: GLint, pname: GLenum, 

-                                      params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetTextureLevelParameterivEXT*(texture: GLuint, target: GLenum, 

-                                      level: GLint, pname: GLenum, params: GLint){.

-    stdcall, importc, ogl.}

-proc glTextureImage3DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                          internalformat: GLenum, width: GLsizei, 

-                          height: GLsizei, depth: GLsizei, border: GLint, 

-                          format: GLenum, typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glTextureSubImage3DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                             xoffset: GLint, yoffset: GLint, zoffset: GLint, 

-                             width: GLsizei, height: GLsizei, depth: GLsizei, 

-                             format: GLenum, typ: GLenum, pixels: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glCopyTextureSubImage3DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                                 xoffset: GLint, yoffset: GLint, zoffset: GLint, 

-                                 x: GLint, y: GLint, width: GLsizei, 

-                                 height: GLsizei){.stdcall, importc, ogl.}

-proc glMultiTexParameterfEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                              param: GLfloat){.stdcall, importc, ogl.}

-proc glMultiTexParameterfvEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                               params: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexParameteriEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                              param: GLint){.stdcall, importc, ogl.}

-proc glMultiTexParameterivEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                               params: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexImage1DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                           internalformat: GLenum, width: GLsizei, 

-                           border: GLint, format: GLenum, typ: GLenum, 

-                           pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glMultiTexImage2DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                           internalformat: GLenum, width: GLsizei, 

-                           height: GLsizei, border: GLint, format: GLenum, 

-                           typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glMultiTexSubImage1DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                              xoffset: GLint, width: GLsizei, format: GLenum, 

-                              typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glMultiTexSubImage2DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                              xoffset: GLint, yoffset: GLint, width: GLsizei, 

-                              height: GLsizei, format: GLenum, typ: GLenum, 

-                              pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glCopyMultiTexImage1DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                               internalformat: GLenum, x: GLint, y: GLint, 

-                               width: GLsizei, border: GLint){.stdcall, importc, ogl.}

-proc glCopyMultiTexImage2DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                               internalformat: GLenum, x: GLint, y: GLint, 

-                               width: GLsizei, height: GLsizei, border: GLint){.

-    stdcall, importc, ogl.}

-proc glCopyMultiTexSubImage1DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                                  xoffset: GLint, x: GLint, y: GLint, 

-                                  width: GLsizei){.stdcall, importc, ogl.}

-proc glCopyMultiTexSubImage2DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                                  xoffset: GLint, yoffset: GLint, x: GLint, 

-                                  y: GLint, width: GLsizei, height: GLsizei){.

-    stdcall, importc, ogl.}

-proc glGetMultiTexImageEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                            format: GLenum, typ: GLenum, pixels: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetMultiTexParameterfvEXT*(texunit: GLenum, target: GLenum, 

-                                  pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetMultiTexParameterivEXT*(texunit: GLenum, target: GLenum, 

-                                  pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetMultiTexLevelParameterfvEXT*(texunit: GLenum, target: GLenum, 

-                                       level: GLint, pname: GLenum, 

-                                       params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetMultiTexLevelParameterivEXT*(texunit: GLenum, target: GLenum, 

-                                       level: GLint, pname: GLenum, 

-                                       params: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexImage3DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                           internalformat: GLenum, width: GLsizei, 

-                           height: GLsizei, depth: GLsizei, border: GLint, 

-                           format: GLenum, typ: GLenum, pixels: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glMultiTexSubImage3DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                              xoffset: GLint, yoffset: GLint, zoffset: GLint, 

-                              width: GLsizei, height: GLsizei, depth: GLsizei, 

-                              format: GLenum, typ: GLenum, pixels: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glCopyMultiTexSubImage3DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                                  xoffset: GLint, yoffset: GLint, 

-                                  zoffset: GLint, x: GLint, y: GLint, 

-                                  width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-proc glBindMultiTextureEXT*(texunit: GLenum, target: GLenum, texture: GLuint){.

-    stdcall, importc, ogl.}

-proc glEnableClientStateIndexedEXT*(arr: GLenum, index: GLuint){.stdcall, importc, ogl.}

-proc glDisableClientStateIndexedEXT*(arr: GLenum, index: GLuint){.stdcall, importc, ogl.}

-proc glMultiTexCoordPointerEXT*(texunit: GLenum, size: GLint, typ: GLenum, 

-                                stride: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glMultiTexEnvfEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                        param: GLfloat){.stdcall, importc, ogl.}

-proc glMultiTexEnvfvEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                         params: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexEnviEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                        param: GLint){.stdcall, importc, ogl.}

-proc glMultiTexEnvivEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                         params: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexGendEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                        param: GLdouble){.stdcall, importc, ogl.}

-proc glMultiTexGendvEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                         params: PGLdouble){.stdcall, importc, ogl.}

-proc glMultiTexGenfEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                        param: GLfloat){.stdcall, importc, ogl.}

-proc glMultiTexGenfvEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                         params: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexGeniEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                        param: GLint){.stdcall, importc, ogl.}

-proc glMultiTexGenivEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                         params: PGLint){.stdcall, importc, ogl.}

-proc glGetMultiTexEnvfvEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                            params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetMultiTexEnvivEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                            params: PGLint){.stdcall, importc, ogl.}

-proc glGetMultiTexGendvEXT*(texunit: GLenum, coord: GLenum, pname: GLenum, 

-                            params: PGLdouble){.stdcall, importc, ogl.}

-proc glGetMultiTexGenfvEXT*(texunit: GLenum, coord: GLenum, pname: GLenum, 

-                            params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetMultiTexGenivEXT*(texunit: GLenum, coord: GLenum, pname: GLenum, 

-                            params: PGLint){.stdcall, importc, ogl.}

-proc glGetFloatIndexedvEXT*(target: GLenum, index: GLuint, data: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetDoubleIndexedvEXT*(target: GLenum, index: GLuint, data: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glGetPointerIndexedvEXT*(target: GLenum, index: GLuint, data: PPGLvoid){.

-    stdcall, importc, ogl.}

-proc glCompressedTextureImage3DEXT*(texture: GLuint, target: GLenum, 

-                                    level: GLint, internalformat: GLenum, 

-                                    width: GLsizei, height: GLsizei, 

-                                    depth: GLsizei, border: GLint, 

-                                    imageSize: GLsizei, bits: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTextureImage2DEXT*(texture: GLuint, target: GLenum, 

-                                    level: GLint, internalformat: GLenum, 

-                                    width: GLsizei, height: GLsizei, 

-                                    border: GLint, imageSize: GLsizei, 

-                                    bits: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTextureImage1DEXT*(texture: GLuint, target: GLenum, 

-                                    level: GLint, internalformat: GLenum, 

-                                    width: GLsizei, border: GLint, 

-                                    imageSize: GLsizei, bits: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTextureSubImage3DEXT*(texture: GLuint, target: GLenum, 

-                                       level: GLint, xoffset: GLint, 

-                                       yoffset: GLint, zoffset: GLint, 

-                                       width: GLsizei, height: GLsizei, 

-                                       depth: GLsizei, format: GLenum, 

-                                       imageSize: GLsizei, bits: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glCompressedTextureSubImage2DEXT*(texture: GLuint, target: GLenum, 

-                                       level: GLint, xoffset: GLint, 

-                                       yoffset: GLint, width: GLsizei, 

-                                       height: GLsizei, format: GLenum, 

-                                       imageSize: GLsizei, bits: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glCompressedTextureSubImage1DEXT*(texture: GLuint, target: GLenum, 

-                                       level: GLint, xoffset: GLint, 

-                                       width: GLsizei, format: GLenum, 

-                                       imageSize: GLsizei, bits: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetCompressedTextureImageEXT*(texture: GLuint, target: GLenum, 

-                                     lod: GLint, img: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedMultiTexImage3DEXT*(texunit: GLenum, target: GLenum, 

-                                     level: GLint, internalformat: GLenum, 

-                                     width: GLsizei, height: GLsizei, 

-                                     depth: GLsizei, border: GLint, 

-                                     imageSize: GLsizei, bits: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedMultiTexImage2DEXT*(texunit: GLenum, target: GLenum, 

-                                     level: GLint, internalformat: GLenum, 

-                                     width: GLsizei, height: GLsizei, 

-                                     border: GLint, imageSize: GLsizei, 

-                                     bits: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedMultiTexImage1DEXT*(texunit: GLenum, target: GLenum, 

-                                     level: GLint, internalformat: GLenum, 

-                                     width: GLsizei, border: GLint, 

-                                     imageSize: GLsizei, bits: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedMultiTexSubImage3DEXT*(texunit: GLenum, target: GLenum, 

-                                        level: GLint, xoffset: GLint, 

-                                        yoffset: GLint, zoffset: GLint, 

-                                        width: GLsizei, height: GLsizei, 

-                                        depth: GLsizei, format: GLenum, 

-                                        imageSize: GLsizei, bits: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glCompressedMultiTexSubImage2DEXT*(texunit: GLenum, target: GLenum, 

-                                        level: GLint, xoffset: GLint, 

-                                        yoffset: GLint, width: GLsizei, 

-                                        height: GLsizei, format: GLenum, 

-                                        imageSize: GLsizei, bits: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glCompressedMultiTexSubImage1DEXT*(texunit: GLenum, target: GLenum, 

-                                        level: GLint, xoffset: GLint, 

-                                        width: GLsizei, format: GLenum, 

-                                        imageSize: GLsizei, bits: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetCompressedMultiTexImageEXT*(texunit: GLenum, target: GLenum, 

-                                      lod: GLint, img: PGLvoid){.stdcall, importc, ogl.}

-proc glNamedProgramStringEXT*(prog: GLuint, target: GLenum, format: GLenum, 

-                              length: GLsizei, string: PGLvoid){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameter4dEXT*(prog: GLuint, target: GLenum, 

-                                        index: GLuint, x: GLdouble, y: GLdouble, 

-                                        z: GLdouble, w: GLdouble){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameter4dvEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, params: PGLdouble){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameter4fEXT*(prog: GLuint, target: GLenum, 

-                                        index: GLuint, x: GLfloat, y: GLfloat, 

-                                        z: GLfloat, w: GLfloat){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameter4fvEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetNamedProgramLocalParameterdvEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, params: PGLdouble){.stdcall, importc, ogl.}

-proc glGetNamedProgramLocalParameterfvEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetNamedProgramivEXT*(prog: GLuint, target: GLenum, pname: GLenum, 

-                             params: PGLint){.stdcall, importc, ogl.}

-proc glGetNamedProgramStringEXT*(prog: GLuint, target: GLenum, pname: GLenum, 

-                                 string: PGLvoid){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameters4fvEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, count: GLsizei, params: PGLfloat){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameterI4iEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameterI4ivEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, params: PGLint){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParametersI4ivEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, count: GLsizei, params: PGLint){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameterI4uiEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameterI4uivEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, params: PGLuint){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParametersI4uivEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, count: GLsizei, params: PGLuint){.stdcall, importc, ogl.}

-proc glGetNamedProgramLocalParameterIivEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, params: PGLint){.stdcall, importc, ogl.}

-proc glGetNamedProgramLocalParameterIuivEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, params: PGLuint){.stdcall, importc, ogl.}

-proc glTextureParameterIivEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                               params: PGLint){.stdcall, importc, ogl.}

-proc glTextureParameterIuivEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                                params: PGLuint){.stdcall, importc, ogl.}

-proc glGetTextureParameterIivEXT*(texture: GLuint, target: GLenum, 

-                                  pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetTextureParameterIuivEXT*(texture: GLuint, target: GLenum, 

-                                   pname: GLenum, params: PGLuint){.stdcall, importc, ogl.}

-proc glMultiTexParameterIivEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                                params: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexParameterIuivEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                                 params: PGLuint){.stdcall, importc, ogl.}

-proc glGetMultiTexParameterIivEXT*(texture: GLuint, target: GLenum, 

-                                   pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetMultiTexParameterIuivEXT*(texture: GLuint, target: GLenum, 

-                                    pname: GLenum, params: PGLuint){.stdcall, importc, ogl.}

-proc glProgramUniform1fEXT*(prog: GLuint, location: GLint, v0: GLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform2fEXT*(prog: GLuint, location: GLint, v0: GLfloat, 

-                            v1: GLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform3fEXT*(prog: GLuint, location: GLint, v0: GLfloat, 

-                            v1: GLfloat, v2: GLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform4fEXT*(prog: GLuint, location: GLint, v0: GLfloat, 

-                            v1: GLfloat, v2: GLfloat, v3: GLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform1iEXT*(prog: GLuint, location: GLint, v0: GLint){.stdcall, importc, ogl.}

-proc glProgramUniform2iEXT*(prog: GLuint, location: GLint, v0: GLint, v1: GLint){.

-    stdcall, importc, ogl.}

-proc glProgramUniform3iEXT*(prog: GLuint, location: GLint, v0: GLint, v1: GLint, 

-                            v2: GLint){.stdcall, importc, ogl.}

-proc glProgramUniform4iEXT*(prog: GLuint, location: GLint, v0: GLint, v1: GLint, 

-                            v2: GLint, v3: GLint){.stdcall, importc, ogl.}

-proc glProgramUniform1fvEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform2fvEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform3fvEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform4fvEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform1ivEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLint){.stdcall, importc, ogl.}

-proc glProgramUniform2ivEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLint){.stdcall, importc, ogl.}

-proc glProgramUniform3ivEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLint){.stdcall, importc, ogl.}

-proc glProgramUniform4ivEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLint){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2fvEXT*(prog: GLuint, location: GLint, 

-                                   count: GLsizei, transpose: GLboolean, 

-                                   value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix3fvEXT*(prog: GLuint, location: GLint, 

-                                   count: GLsizei, transpose: GLboolean, 

-                                   value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix4fvEXT*(prog: GLuint, location: GLint, 

-                                   count: GLsizei, transpose: GLboolean, 

-                                   value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2x3fvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix3x2fvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2x4fvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix4x2fvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix3x4fvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix4x3fvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform1uiEXT*(prog: GLuint, location: GLint, v0: GLuint){.stdcall, importc, ogl.}

-proc glProgramUniform2uiEXT*(prog: GLuint, location: GLint, v0: GLuint, 

-                             v1: GLuint){.stdcall, importc, ogl.}

-proc glProgramUniform3uiEXT*(prog: GLuint, location: GLint, v0: GLuint, 

-                             v1: GLuint, v2: GLuint){.stdcall, importc, ogl.}

-proc glProgramUniform4uiEXT*(prog: GLuint, location: GLint, v0: GLuint, 

-                             v1: GLuint, v2: GLuint, v3: GLuint){.stdcall, importc, ogl.}

-proc glProgramUniform1uivEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLuint){.stdcall, importc, ogl.}

-proc glProgramUniform2uivEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLuint){.stdcall, importc, ogl.}

-proc glProgramUniform3uivEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLuint){.stdcall, importc, ogl.}

-proc glProgramUniform4uivEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLuint){.stdcall, importc, ogl.}

-proc glNamedBufferDataEXT*(buffer: GLuint, size: GLsizei, data: PGLvoid, 

-                           usage: GLenum){.stdcall, importc, ogl.}

-proc glNamedBufferSubDataEXT*(buffer: GLuint, offset: GLintptr, 

-                              size: GLsizeiptr, data: PGLvoid){.stdcall, importc, ogl.}

-proc glMapNamedBufferEXT*(buffer: GLuint, access: GLenum): PGLvoid{.stdcall, importc, ogl.}

-proc glUnmapNamedBufferEXT*(buffer: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glMapNamedBufferRangeEXT*(buffer: GLuint, offset: GLintptr, 

-                               len: GLsizeiptr, access: GLbitfield): PGLvoid{.

-    stdcall, importc, ogl.}

-proc glFlushMappedNamedBufferRangeEXT*(buffer: GLuint, offset: GLintptr, 

-                                       len: GLsizeiptr){.stdcall, importc, ogl.}

-proc glNamedCopyBufferSubDataEXT*(readBuffer: GLuint, writeBuffer: GLuint, 

-                                  readOffset: GLintptr, writeOffset: GLintptr, 

-                                  size: GLsizeiptr){.stdcall, importc, ogl.}

-proc glGetNamedBufferParameterivEXT*(buffer: GLuint, pname: GLenum, 

-                                     params: PGLint){.stdcall, importc, ogl.}

-proc glGetNamedBufferPointervEXT*(buffer: GLuint, pname: GLenum, 

-                                  params: PPGLvoid){.stdcall, importc, ogl.}

-proc glGetNamedBufferSubDataEXT*(buffer: GLuint, offset: GLintptr, 

-                                 size: GLsizeiptr, data: PGLvoid){.stdcall, importc, ogl.}

-proc glTextureBufferEXT*(texture: GLuint, target: GLenum, 

-                         internalformat: GLenum, buffer: GLuint){.stdcall, importc, ogl.}

-proc glMultiTexBufferEXT*(texunit: GLenum, target: GLenum, interformat: GLenum, 

-                          buffer: GLuint){.stdcall, importc, ogl.}

-proc glNamedRenderbufferStorageEXT*(renderbuffer: GLuint, interformat: GLenum, 

-                                    width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-proc glGetNamedRenderbufferParameterivEXT*(renderbuffer: GLuint, pname: GLenum, 

-    params: PGLint){.stdcall, importc, ogl.}

-proc glCheckNamedFramebufferStatusEXT*(framebuffer: GLuint, target: GLenum): GLenum{.

-    stdcall, importc, ogl.}

-proc glNamedFramebufferTexture1DEXT*(framebuffer: GLuint, attachment: GLenum, 

-                                     textarget: GLenum, texture: GLuint, 

-                                     level: GLint){.stdcall, importc, ogl.}

-proc glNamedFramebufferTexture2DEXT*(framebuffer: GLuint, attachment: GLenum, 

-                                     textarget: GLenum, texture: GLuint, 

-                                     level: GLint){.stdcall, importc, ogl.}

-proc glNamedFramebufferTexture3DEXT*(framebuffer: GLuint, attachment: GLenum, 

-                                     textarget: GLenum, texture: GLuint, 

-                                     level: GLint, zoffset: GLint){.stdcall, importc, ogl.}

-proc glNamedFramebufferRenderbufferEXT*(framebuffer: GLuint, attachment: GLenum, 

-                                        renderbuffertarget: GLenum, 

-                                        renderbuffer: GLuint){.stdcall, importc, ogl.}

-proc glGetNamedFramebufferAttachmentParameterivEXT*(framebuffer: GLuint, 

-    attachment: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGenerateTextureMipmapEXT*(texture: GLuint, target: GLenum){.stdcall, importc, ogl.}

-proc glGenerateMultiTexMipmapEXT*(texunit: GLenum, target: GLenum){.stdcall, importc, ogl.}

-proc glFramebufferDrawBufferEXT*(framebuffer: GLuint, mode: GLenum){.stdcall, importc, ogl.}

-proc glFramebufferDrawBuffersEXT*(framebuffer: GLuint, n: GLsizei, bufs: PGLenum){.

-    stdcall, importc, ogl.}

-proc glFramebufferReadBufferEXT*(framebuffer: GLuint, mode: GLenum){.stdcall, importc, ogl.}

-proc glGetFramebufferParameterivEXT*(framebuffer: GLuint, pname: GLenum, 

-                                     params: PGLint){.stdcall, importc, ogl.}

-proc glNamedRenderbufferStorageMultisampleEXT*(renderbuffer: GLuint, 

-    samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei){.

-    stdcall, importc, ogl.}

-proc glNamedRenderbufferStorageMultisampleCoverageEXT*(renderbuffer: GLuint, 

-    coverageSamples: GLsizei, colorSamples: GLsizei, internalformat: GLenum, 

-    width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-proc glNamedFramebufferTextureEXT*(framebuffer: GLuint, attachment: GLenum, 

-                                   texture: GLuint, level: GLint){.stdcall, importc, ogl.}

-proc glNamedFramebufferTextureLayerEXT*(framebuffer: GLuint, attachment: GLenum, 

-                                        texture: GLuint, level: GLint, 

-                                        layer: GLint){.stdcall, importc, ogl.}

-proc glNamedFramebufferTextureFaceEXT*(framebuffer: GLuint, attachment: GLenum, 

-                                       texture: GLuint, level: GLint, 

-                                       face: GLenum){.stdcall, importc, ogl.}

-proc glTextureRenderbufferEXT*(texture: GLuint, target: GLenum, 

-                               renderbuffer: GLuint){.stdcall, importc, ogl.}

-proc glMultiTexRenderbufferEXT*(texunit: GLenum, target: GLenum, 

-                                renderbuffer: GLuint){.stdcall, importc, ogl.}

-proc glProgramUniform1dEXT*(prog: GLuint, location: GLint, x: GLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform2dEXT*(prog: GLuint, location: GLint, x: GLdouble, 

-                            y: GLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform3dEXT*(prog: GLuint, location: GLint, x: GLdouble, 

-                            y: GLdouble, z: GLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform4dEXT*(prog: GLuint, location: GLint, x: GLdouble, 

-                            y: GLdouble, z: GLdouble, w: GLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform1dvEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform2dvEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform3dvEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform4dvEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2dvEXT*(prog: GLuint, location: GLint, 

-                                   count: GLsizei, transpose: GLboolean, 

-                                   value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix3dvEXT*(prog: GLuint, location: GLint, 

-                                   count: GLsizei, transpose: GLboolean, 

-                                   value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix4dvEXT*(prog: GLuint, location: GLint, 

-                                   count: GLsizei, transpose: GLboolean, 

-                                   value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2x3dvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2x4dvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix3x2dvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix3x4dvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix4x2dvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix4x3dvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLdouble){.stdcall, importc, ogl.}

-  # GL_EXT_separate_shader_objects

-proc glUseShaderProgramEXT*(typ: GLenum, prog: GLuint){.stdcall, importc, ogl.}

-proc glActiveProgramEXT*(prog: GLuint){.stdcall, importc, ogl.}

-proc glCreateShaderProgramEXT*(typ: GLenum, string: PGLchar): GLuint{.stdcall, importc, ogl.}

-  # GL_EXT_shader_image_load_store

-proc glBindImageTextureEXT*(index: GLuint, texture: GLuint, level: GLint, 

-                            layered: GLboolean, layer: GLint, access: GLenum, 

-                            format: GLint){.stdcall, importc, ogl.}

-proc glMemoryBarrierEXT*(barriers: GLbitfield){.stdcall, importc, ogl.}

-  # GL_EXT_vertex_attrib_64bit

-proc glVertexAttribL1dEXT*(index: GLuint, x: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL2dEXT*(index: GLuint, x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL3dEXT*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glVertexAttribL4dEXT*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble, 

-                           w: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL1dvEXT*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL2dvEXT*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL3dvEXT*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL4dvEXT*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribLPointerEXT*(index: GLuint, size: GLint, typ: GLenum, 

-                                stride: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glGetVertexAttribLdvEXT*(index: GLuint, pname: GLenum, params: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glVertexArrayVertexAttribLOffsetEXT*(vaobj: GLuint, buffer: GLuint, 

-    index: GLuint, size: GLint, typ: GLenum, stride: GLsizei, offset: GLintptr){.

-    stdcall, importc, ogl.}

-  # GL_IBM_multimode_draw_arrays

-proc glMultiModeDrawArraysIBM*(mode: GLenum, first: PGLint, count: PGLsizei, 

-                               primcount: GLsizei, modestride: GLint){.stdcall, importc, ogl.}

-proc glMultiModeDrawElementsIBM*(mode: PGLenum, count: PGLsizei, typ: GLenum, 

-                                 indices: PGLvoid, primcount: GLsizei, 

-                                 modestride: GLint){.stdcall, importc, ogl.}

-  # GL_IBM_vertex_array_lists

-proc glColorPointerListIBM*(size: GLint, typ: GLenum, stride: GLint, 

-                            pointer: PGLvoid, ptrstride: GLint){.stdcall, importc, ogl.}

-proc glSecondaryColorPointerListIBM*(size: GLint, typ: GLenum, stride: GLint, 

-                                     pointer: PGLvoid, ptrstride: GLint){.

-    stdcall, importc, ogl.}

-proc glEdgeFlagPointerListIBM*(stride: GLint, pointer: PGLboolean, 

-                               ptrstride: GLint){.stdcall, importc, ogl.}

-proc glFogCoordPointerListIBM*(typ: GLenum, stride: GLint, pointer: PGLvoid, 

-                               ptrstride: GLint){.stdcall, importc, ogl.}

-proc glIndexPointerListIBM*(typ: GLenum, stride: GLint, pointer: PGLvoid, 

-                            ptrstride: GLint){.stdcall, importc, ogl.}

-proc glNormalPointerListIBM*(typ: GLenum, stride: GLint, pointer: PGLvoid, 

-                             ptrstride: GLint){.stdcall, importc, ogl.}

-proc glTexCoordPointerListIBM*(size: GLint, typ: GLenum, stride: GLint, 

-                               pointer: PGLvoid, ptrstride: GLint){.stdcall, importc, ogl.}

-proc glVertexPointerListIBM*(size: GLint, typ: GLenum, stride: GLint, 

-                             pointer: PGLvoid, ptrstride: GLint){.stdcall, importc, ogl.}

-  # GL_INGR_blend_func_separate

-proc glBlendFuncSeparateINGR*(sfactorRGB: GLenum, dfactorRGB: GLenum, 

-                              sfactorAlpha: GLenum, dfactorAlpha: GLenum){.

-    stdcall, importc, ogl.}

-  # GL_INTEL_parallel_arrays

-proc glVertexPointervINTEL*(size: GLint, typ: GLenum, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glNormalPointervINTEL*(typ: GLenum, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glColorPointervINTEL*(size: GLint, typ: GLenum, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glTexCoordPointervINTEL*(size: GLint, typ: GLenum, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_MESA_resize_buffers

-proc glResizeBuffersMESA*(){.stdcall, importc, ogl.}

-  # GL_MESA_window_pos

-proc glWindowPos2dMESA*(x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glWindowPos2dvMESA*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glWindowPos2fMESA*(x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glWindowPos2fvMESA*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glWindowPos2iMESA*(x: GLint, y: GLint){.stdcall, importc, ogl.}

-proc glWindowPos2ivMESA*(v: PGLint){.stdcall, importc, ogl.}

-proc glWindowPos2sMESA*(x: GLshort, y: GLshort){.stdcall, importc, ogl.}

-proc glWindowPos2svMESA*(v: PGLshort){.stdcall, importc, ogl.}

-proc glWindowPos3dMESA*(x: GLdouble, y: GLdouble, z: GLdouble){.stdcall, importc, ogl.}

-proc glWindowPos3dvMESA*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glWindowPos3fMESA*(x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glWindowPos3fvMESA*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glWindowPos3iMESA*(x: GLint, y: GLint, z: GLint){.stdcall, importc, ogl.}

-proc glWindowPos3ivMESA*(v: PGLint){.stdcall, importc, ogl.}

-proc glWindowPos3sMESA*(x: GLshort, y: GLshort, z: GLshort){.stdcall, importc, ogl.}

-proc glWindowPos3svMESA*(v: PGLshort){.stdcall, importc, ogl.}

-proc glWindowPos4dMESA*(x: GLdouble, y: GLdouble, z: GLdouble, w: GLdouble){.

-    stdcall, importc, ogl.}

-proc glWindowPos4dvMESA*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glWindowPos4fMESA*(x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat){.stdcall, importc, ogl.}

-proc glWindowPos4fvMESA*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glWindowPos4iMESA*(x: GLint, y: GLint, z: GLint, w: GLint){.stdcall, importc, ogl.}

-proc glWindowPos4ivMESA*(v: PGLint){.stdcall, importc, ogl.}

-proc glWindowPos4sMESA*(x: GLshort, y: GLshort, z: GLshort, w: GLshort){.stdcall, importc, ogl.}

-proc glWindowPos4svMESA*(v: PGLshort){.stdcall, importc, ogl.}

-  # GL_NV_evaluators

-proc glMapControlPointsNV*(target: GLenum, index: GLuint, typ: GLenum, 

-                           ustride: GLsizei, vstride: GLsizei, uorder: GLint, 

-                           vorder: GLint, pack: GLboolean, points: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glMapParameterivNV*(target: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glMapParameterfvNV*(target: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetMapControlPointsNV*(target: GLenum, index: GLuint, typ: GLenum, 

-                              ustride: GLsizei, vstride: GLsizei, 

-                              pack: GLboolean, points: PGLvoid){.stdcall, importc, ogl.}

-proc glGetMapParameterivNV*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetMapParameterfvNV*(target: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetMapAttribParameterivNV*(target: GLenum, index: GLuint, pname: GLenum, 

-                                  params: PGLint){.stdcall, importc, ogl.}

-proc glGetMapAttribParameterfvNV*(target: GLenum, index: GLuint, pname: GLenum, 

-                                  params: PGLfloat){.stdcall, importc, ogl.}

-proc glEvalMapsNV*(target: GLenum, mode: GLenum){.stdcall, importc, ogl.}

-  # GL_NV_fence

-proc glDeleteFencesNV*(n: GLsizei, fences: PGLuint){.stdcall, importc, ogl.}

-proc glGenFencesNV*(n: GLsizei, fences: PGLuint){.stdcall, importc, ogl.}

-proc glIsFenceNV*(fence: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glTestFenceNV*(fence: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glGetFenceivNV*(fence: GLuint, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glFinishFenceNV*(fence: GLuint){.stdcall, importc, ogl.}

-proc glSetFenceNV*(fence: GLuint, condition: GLenum){.stdcall, importc, ogl.}

-  # GL_NV_fragment_prog

-proc glProgramNamedParameter4fNV*(id: GLuint, length: GLsizei, name: PGLubyte, 

-                                  x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramNamedParameter4dNV*(id: GLuint, length: GLsizei, name: PGLubyte, 

-                                  x: GLdouble, y: GLdouble, z: GLdouble, 

-                                  w: GLdouble){.stdcall, importc, ogl.}

-proc glProgramNamedParameter4fvNV*(id: GLuint, length: GLsizei, name: PGLubyte, 

-                                   v: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramNamedParameter4dvNV*(id: GLuint, length: GLsizei, name: PGLubyte, 

-                                   v: PGLdouble){.stdcall, importc, ogl.}

-proc glGetProgramNamedParameterfvNV*(id: GLuint, length: GLsizei, 

-                                     name: PGLubyte, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetProgramNamedParameterdvNV*(id: GLuint, length: GLsizei, 

-                                     name: PGLubyte, params: PGLdouble){.stdcall, importc, ogl.}

-  # GL_NV_half_float

-proc glVertex2hNV*(x: GLhalfNV, y: GLhalfNV){.stdcall, importc, ogl.}

-proc glVertex2hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertex3hNV*(x: GLhalfNV, y: GLhalfNV, z: GLhalfNV){.stdcall, importc, ogl.}

-proc glVertex3hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertex4hNV*(x: GLhalfNV, y: GLhalfNV, z: GLhalfNV, w: GLhalfNV){.stdcall, importc, ogl.}

-proc glVertex4hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glNormal3hNV*(nx: GLhalfNV, ny: GLhalfNV, nz: GLhalfNV){.stdcall, importc, ogl.}

-proc glNormal3hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glColor3hNV*(red: GLhalfNV, green: GLhalfNV, blue: GLhalfNV){.stdcall, importc, ogl.}

-proc glColor3hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glColor4hNV*(red: GLhalfNV, green: GLhalfNV, blue: GLhalfNV, 

-                  alpha: GLhalfNV){.stdcall, importc, ogl.}

-proc glColor4hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glTexCoord1hNV*(s: GLhalfNV){.stdcall, importc, ogl.}

-proc glTexCoord1hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glTexCoord2hNV*(s: GLhalfNV, t: GLhalfNV){.stdcall, importc, ogl.}

-proc glTexCoord2hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glTexCoord3hNV*(s: GLhalfNV, t: GLhalfNV, r: GLhalfNV){.stdcall, importc, ogl.}

-proc glTexCoord3hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glTexCoord4hNV*(s: GLhalfNV, t: GLhalfNV, r: GLhalfNV, q: GLhalfNV){.

-    stdcall, importc, ogl.}

-proc glTexCoord4hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glMultiTexCoord1hNV*(target: GLenum, s: GLhalfNV){.stdcall, importc, ogl.}

-proc glMultiTexCoord1hvNV*(target: GLenum, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glMultiTexCoord2hNV*(target: GLenum, s: GLhalfNV, t: GLhalfNV){.stdcall, importc, ogl.}

-proc glMultiTexCoord2hvNV*(target: GLenum, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glMultiTexCoord3hNV*(target: GLenum, s: GLhalfNV, t: GLhalfNV, r: GLhalfNV){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoord3hvNV*(target: GLenum, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glMultiTexCoord4hNV*(target: GLenum, s: GLhalfNV, t: GLhalfNV, r: GLhalfNV, 

-                          q: GLhalfNV){.stdcall, importc, ogl.}

-proc glMultiTexCoord4hvNV*(target: GLenum, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glFogCoordhNV*(fog: GLhalfNV){.stdcall, importc, ogl.}

-proc glFogCoordhvNV*(fog: PGLhalfNV){.stdcall, importc, ogl.}

-proc glSecondaryColor3hNV*(red: GLhalfNV, green: GLhalfNV, blue: GLhalfNV){.

-    stdcall, importc, ogl.}

-proc glSecondaryColor3hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexWeighthNV*(weight: GLhalfNV){.stdcall, importc, ogl.}

-proc glVertexWeighthvNV*(weight: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttrib1hNV*(index: GLuint, x: GLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttrib1hvNV*(index: GLuint, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttrib2hNV*(index: GLuint, x: GLhalfNV, y: GLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttrib2hvNV*(index: GLuint, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttrib3hNV*(index: GLuint, x: GLhalfNV, y: GLhalfNV, z: GLhalfNV){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3hvNV*(index: GLuint, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttrib4hNV*(index: GLuint, x: GLhalfNV, y: GLhalfNV, z: GLhalfNV, 

-                         w: GLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttrib4hvNV*(index: GLuint, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttribs1hvNV*(index: GLuint, n: GLsizei, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttribs2hvNV*(index: GLuint, n: GLsizei, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttribs3hvNV*(index: GLuint, n: GLsizei, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttribs4hvNV*(index: GLuint, n: GLsizei, v: PGLhalfNV){.stdcall, importc, ogl.}

-  # GL_NV_occlusion_query

-proc glGenOcclusionQueriesNV*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glDeleteOcclusionQueriesNV*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glIsOcclusionQueryNV*(id: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glBeginOcclusionQueryNV*(id: GLuint){.stdcall, importc, ogl.}

-proc glEndOcclusionQueryNV*(){.stdcall, importc, ogl.}

-proc glGetOcclusionQueryivNV*(id: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetOcclusionQueryuivNV*(id: GLuint, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-  # GL_NV_pixel_data_range

-proc glPixelDataRangeNV*(target: GLenum, len: GLsizei, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glFlushPixelDataRangeNV*(target: GLenum){.stdcall, importc, ogl.}

-  # GL_NV_point_sprite

-proc glPointParameteriNV*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glPointParameterivNV*(pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-  # GL_NV_primitive_restart

-proc glPrimitiveRestartNV*(){.stdcall, importc, ogl.}

-proc glPrimitiveRestartIndexNV*(index: GLuint){.stdcall, importc, ogl.}

-  # GL_NV_register_combiners

-proc glCombinerParameterfvNV*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glCombinerParameterfNV*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glCombinerParameterivNV*(pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glCombinerParameteriNV*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glCombinerInputNV*(stage: GLenum, portion: GLenum, variable: GLenum, 

-                        input: GLenum, mapping: GLenum, componentUsage: GLenum){.

-    stdcall, importc, ogl.}

-proc glCombinerOutputNV*(stage: GLenum, portion: GLenum, abOutput: GLenum, 

-                         cdOutput: GLenum, sumOutput: GLenum, scale: GLenum, 

-                         bias: GLenum, abDotProduct: GLboolean, 

-                         cdDotProduct: GLboolean, muxSum: GLboolean){.stdcall, importc, ogl.}

-proc glFinalCombinerInputNV*(variable: GLenum, input: GLenum, mapping: GLenum, 

-                             componentUsage: GLenum){.stdcall, importc, ogl.}

-proc glGetCombinerInputParameterfvNV*(stage: GLenum, portion: GLenum, 

-                                      variable: GLenum, pname: GLenum, 

-                                      params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetCombinerInputParameterivNV*(stage: GLenum, portion: GLenum, 

-                                      variable: GLenum, pname: GLenum, 

-                                      params: PGLint){.stdcall, importc, ogl.}

-proc glGetCombinerOutputParameterfvNV*(stage: GLenum, portion: GLenum, 

-                                       pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetCombinerOutputParameterivNV*(stage: GLenum, portion: GLenum, 

-                                       pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetFinalCombinerInputParameterfvNV*(variable: GLenum, pname: GLenum, 

-    params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetFinalCombinerInputParameterivNV*(variable: GLenum, pname: GLenum, 

-    params: PGLint){.stdcall, importc, ogl.}

-  # GL_NV_register_combiners2

-proc glCombinerStageParameterfvNV*(stage: GLenum, pname: GLenum, 

-                                   params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetCombinerStageParameterfvNV*(stage: GLenum, pname: GLenum, 

-                                      params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_NV_vertex_array_range

-proc glFlushVertexArrayRangeNV*(){.stdcall, importc, ogl.}

-proc glVertexArrayRangeNV*(len: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-  # GL_NV_vertex_prog

-proc glAreProgramsResidentNV*(n: GLsizei, programs: PGLuint, 

-                              residences: PGLboolean): GLboolean{.stdcall, importc, ogl.}

-proc glBindProgramNV*(target: GLenum, id: GLuint){.stdcall, importc, ogl.}

-proc glDeleteProgramsNV*(n: GLsizei, programs: PGLuint){.stdcall, importc, ogl.}

-proc glExecuteProgramNV*(target: GLenum, id: GLuint, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGenProgramsNV*(n: GLsizei, programs: PGLuint){.stdcall, importc, ogl.}

-proc glGetProgramParameterdvNV*(target: GLenum, index: GLuint, pname: GLenum, 

-                                params: PGLdouble){.stdcall, importc, ogl.}

-proc glGetProgramParameterfvNV*(target: GLenum, index: GLuint, pname: GLenum, 

-                                params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetProgramivNV*(id: GLuint, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetProgramStringNV*(id: GLuint, pname: GLenum, prog: PGLubyte){.stdcall, importc, ogl.}

-proc glGetTrackMatrixivNV*(target: GLenum, address: GLuint, pname: GLenum, 

-                           params: PGLint){.stdcall, importc, ogl.}

-proc glGetVertexAttribdvNV*(index: GLuint, pname: GLenum, params: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribfvNV*(index: GLuint, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribivNV*(index: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribPointervNV*(index: GLuint, pname: GLenum, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glIsProgramNV*(id: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glLoadProgramNV*(target: GLenum, id: GLuint, length: GLsizei, 

-                      prog: PGLubyte){.stdcall, importc, ogl.}

-proc glProgramParameter4dNV*(target: GLenum, index: GLuint, x: GLdouble, 

-                             y: GLdouble, z: GLdouble, w: GLdouble){.stdcall, importc, ogl.}

-proc glProgramParameter4dvNV*(target: GLenum, index: GLuint, v: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glProgramParameter4fNV*(target: GLenum, index: GLuint, x: GLfloat, 

-                             y: GLfloat, z: GLfloat, w: GLfloat){.stdcall, importc, ogl.}

-proc glProgramParameter4fvNV*(target: GLenum, index: GLuint, v: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramParameters4dvNV*(target: GLenum, index: GLuint, count: GLuint, 

-                               v: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramParameters4fvNV*(target: GLenum, index: GLuint, count: GLuint, 

-                               v: PGLfloat){.stdcall, importc, ogl.}

-proc glRequestResidentProgramsNV*(n: GLsizei, programs: PGLuint){.stdcall, importc, ogl.}

-proc glTrackMatrixNV*(target: GLenum, address: GLuint, matrix: GLenum, 

-                      transform: GLenum){.stdcall, importc, ogl.}

-proc glVertexAttribPointerNV*(index: GLuint, fsize: GLint, typ: GLenum, 

-                              stride: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glVertexAttrib1dNV*(index: GLuint, x: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib1dvNV*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib1fNV*(index: GLuint, x: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib1fvNV*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib1sNV*(index: GLuint, x: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib1svNV*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib2dNV*(index: GLuint, x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib2dvNV*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib2fNV*(index: GLuint, x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib2fvNV*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib2sNV*(index: GLuint, x: GLshort, y: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib2svNV*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib3dNV*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3dvNV*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib3fNV*(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3fvNV*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib3sNV*(index: GLuint, x: GLshort, y: GLshort, z: GLshort){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3svNV*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4dNV*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble, 

-                         w: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib4dvNV*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib4fNV*(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, 

-                         w: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib4fvNV*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib4sNV*(index: GLuint, x: GLshort, y: GLshort, z: GLshort, 

-                         w: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4svNV*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4ubNV*(index: GLuint, x: GLubyte, y: GLubyte, z: GLubyte, 

-                          w: GLubyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4ubvNV*(index: GLuint, v: PGLubyte){.stdcall, importc, ogl.}

-proc glVertexAttribs1dvNV*(index: GLuint, count: GLsizei, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribs1fvNV*(index: GLuint, count: GLsizei, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttribs1svNV*(index: GLuint, count: GLsizei, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttribs2dvNV*(index: GLuint, count: GLsizei, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribs2fvNV*(index: GLuint, count: GLsizei, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttribs2svNV*(index: GLuint, count: GLsizei, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttribs3dvNV*(index: GLuint, count: GLsizei, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribs3fvNV*(index: GLuint, count: GLsizei, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttribs3svNV*(index: GLuint, count: GLsizei, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttribs4dvNV*(index: GLuint, count: GLsizei, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribs4fvNV*(index: GLuint, count: GLsizei, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttribs4svNV*(index: GLuint, count: GLsizei, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttribs4ubvNV*(index: GLuint, count: GLsizei, v: PGLubyte){.stdcall, importc, ogl.}

-  # GL_NV_depth_buffer_float

-proc glDepthRangedNV*(n: GLdouble, f: GLdouble){.stdcall, importc, ogl.}

-proc glClearDepthdNV*(d: GLdouble){.stdcall, importc, ogl.}

-proc glDepthBoundsdNV*(zmin: GLdouble, zmax: GLdouble){.stdcall, importc, ogl.}

-  # GL_NV_framebuffer_multisample_coverage

-proc glRenderbufferStorageMultsampleCoverageNV*(target: GLenum, 

-    coverageSamples: GLsizei, colorSamples: GLsizei, internalformat: GLenum, 

-    width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-  # GL_NV_geometry_program4

-proc glProgramVertexLimitNV*(target: GLenum, limit: GLint){.stdcall, importc, ogl.}

-  # GL_NV_gpu_program4

-proc glProgramLocalParameterI4iNV*(target: GLenum, index: GLuint, x: GLint, 

-                                   y: GLint, z: GLint, w: GLint){.stdcall, importc, ogl.}

-proc glProgramLocalParameterI4ivNV*(target: GLenum, index: GLuint, 

-                                    params: PGLint){.stdcall, importc, ogl.}

-proc glProgramLocalParametersI4ivNV*(target: GLenum, index: GLuint, 

-                                     count: GLsizei, params: PGLint){.stdcall, importc, ogl.}

-proc glProgramLocalParameterI4uiNV*(target: GLenum, index: GLuint, x: GLuint, 

-                                    y: GLuint, z: GLuint, w: GLuint){.stdcall, importc, ogl.}

-proc glProgramLocalParameterI4uivNV*(target: GLenum, index: GLuint, 

-                                     params: PGLuint){.stdcall, importc, ogl.}

-proc glProgramLocalParametersI4uivNV*(target: GLenum, index: GLuint, 

-                                      count: GLsizei, params: PGLuint){.stdcall, importc, ogl.}

-proc glProgramEnvParameterI4iNV*(target: GLenum, index: GLuint, x: GLint, 

-                                 y: GLint, z: GLint, w: GLint){.stdcall, importc, ogl.}

-proc glProgramEnvParameterI4ivNV*(target: GLenum, index: GLuint, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glProgramEnvParametersI4ivNV*(target: GLenum, index: GLuint, 

-                                   count: GLsizei, params: PGLint){.stdcall, importc, ogl.}

-proc glProgramEnvParameterI4uiNV*(target: GLenum, index: GLuint, x: GLuint, 

-                                  y: GLuint, z: GLuint, w: GLuint){.stdcall, importc, ogl.}

-proc glProgramEnvParameterI4uivNV*(target: GLenum, index: GLuint, 

-                                   params: PGLuint){.stdcall, importc, ogl.}

-proc glProgramEnvParametersI4uivNV*(target: GLenum, index: GLuint, 

-                                    count: GLsizei, params: PGLuint){.stdcall, importc, ogl.}

-proc glGetProgramLocalParameterIivNV*(target: GLenum, index: GLuint, 

-                                      params: PGLint){.stdcall, importc, ogl.}

-proc glGetProgramLocalParameterIuivNV*(target: GLenum, index: GLuint, 

-                                       params: PGLuint){.stdcall, importc, ogl.}

-proc glGetProgramEnvParameterIivNV*(target: GLenum, index: GLuint, 

-                                    params: PGLint){.stdcall, importc, ogl.}

-proc glGetProgramEnvParameterIuivNV*(target: GLenum, index: GLuint, 

-                                     params: PGLuint){.stdcall, importc, ogl.}

-  # GL_NV_parameter_buffer_object

-proc glProgramBufferParametersfvNV*(target: GLenum, buffer: GLuint, 

-                                    index: GLuint, count: GLsizei, 

-                                    params: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramBufferParametersIivNV*(target: GLenum, buffer: GLuint, 

-                                     index: GLuint, count: GLsizei, 

-                                     params: GLint){.stdcall, importc, ogl.}

-proc glProgramBufferParametersIuivNV*(target: GLenum, buffer: GLuint, 

-                                      index: GLuint, count: GLuint, 

-                                      params: PGLuint){.stdcall, importc, ogl.}

-  # GL_NV_transform_feedback

-proc glBeginTransformFeedbackNV*(primitiveMode: GLenum){.stdcall, importc, ogl.}

-proc glEndTransformFeedbackNV*(){.stdcall, importc, ogl.}

-proc glTransformFeedbackAttribsNV*(count: GLsizei, attribs: GLint, 

-                                   bufferMode: GLenum){.stdcall, importc, ogl.}

-proc glBindBufferRangeNV*(target: GLenum, index: GLuint, buffer: GLuint, 

-                          offset: GLintptr, size: GLsizeiptr){.stdcall, importc, ogl.}

-proc glBindBufferOffsetNV*(target: GLenum, index: GLuint, buffer: GLuint, 

-                           offset: GLintptr){.stdcall, importc, ogl.}

-proc glBindBufferBaseNV*(target: GLenum, index: GLuint, buffer: GLuint){.stdcall, importc, ogl.}

-proc glTransformFeedbackVaryingsNV*(prog: GLuint, count: GLsizei, 

-                                    locations: PGLint, bufferMode: GLenum){.

-    stdcall, importc, ogl.}

-proc glActiveVaryingNV*(prog: GLuint, name: PGLchar){.stdcall, importc, ogl.}

-proc glGetVaryingLocationNV*(prog: GLuint, name: PGLchar): GLint{.stdcall, importc, ogl.}

-proc glGetActiveVaryingNV*(prog: GLuint, index: GLuint, bufSize: GLsizei, 

-                           len: PGLsizei, size: PGLsizei, typ: PGLenum, 

-                           name: PGLchar){.stdcall, importc, ogl.}

-proc glGetTransformFeedbackVaryingNV*(prog: GLuint, index: GLuint, 

-                                      location: PGLint){.stdcall, importc, ogl.}

-proc glTransformFeedbackStreamAttribsNV*(count: GLsizei, attribs: PGLint, 

-    nbuffers: GLsizei, bufstreams: PGLint, bufferMode: GLenum){.stdcall, importc, ogl.}

-  # GL_NV_conditional_render

-proc glBeginConditionalRenderNV*(id: GLuint, mode: GLenum){.stdcall, importc, ogl.}

-proc glEndConditionalRenderNV*(){.stdcall, importc, ogl.}

-  # GL_NV_present_video

-proc glPresentFrameKeyedNV*(video_slot: GLuint, minPresentTime: GLuint64EXT, 

-                            beginPresentTimeId: GLuint, 

-                            presentDuratioId: GLuint, typ: GLenum, 

-                            target0: GLenum, fill0: GLuint, key0: GLuint, 

-                            target1: GLenum, fill1: GLuint, key1: GLuint){.

-    stdcall, importc, ogl.}

-proc glPresentFrameDualFillNV*(video_slot: GLuint, minPresentTime: GLuint64EXT, 

-                               beginPresentTimeId: GLuint, 

-                               presentDurationId: GLuint, typ: GLenum, 

-                               target0: GLenum, fill0: GLuint, target1: GLenum, 

-                               fill1: GLuint, target2: GLenum, fill2: GLuint, 

-                               target3: GLenum, fill3: GLuint){.stdcall, importc, ogl.}

-proc glGetVideoivNV*(video_slot: GLuint, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetVideouivNV*(video_slot: GLuint, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-proc glGetVideoi64vNV*(video_slot: GLuint, pname: GLenum, params: PGLint64EXT){.

-    stdcall, importc, ogl.}

-proc glGetVideoui64vNV*(video_slot: GLuint, pname: GLenum, params: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-  #procedure glVideoParameterivNV(video_slot: GLuint; pname: GLenum; const params: PGLint); stdcall, importc, ogl;

-  # GL_NV_explicit_multisample

-proc glGetMultisamplefvNV*(pname: GLenum, index: GLuint, val: PGLfloat){.stdcall, importc, ogl.}

-proc glSampleMaskIndexedNV*(index: GLuint, mask: GLbitfield){.stdcall, importc, ogl.}

-proc glTexRenderbufferNV*(target: GLenum, renderbuffer: GLuint){.stdcall, importc, ogl.}

-  # GL_NV_transform_feedback2

-proc glBindTransformFeedbackNV*(target: GLenum, id: GLuint){.stdcall, importc, ogl.}

-proc glDeleteTransformFeedbacksNV*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glGenTransformFeedbacksNV*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glIsTransformFeedbackNV*(id: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glPauseTransformFeedbackNV*(){.stdcall, importc, ogl.}

-proc glResumeTransformFeedbackNV*(){.stdcall, importc, ogl.}

-proc glDrawTransformFeedbackNV*(mode: GLenum, id: GLuint){.stdcall, importc, ogl.}

-  # GL_NV_video_capture

-proc glBeginVideoCaptureNV*(video_capture_slot: GLuint){.stdcall, importc, ogl.}

-proc glBindVideoCaptureStreamBufferNV*(video_capture_slot: GLuint, 

-                                       stream: GLuint, frame_region: GLenum, 

-                                       offset: GLintptrARB){.stdcall, importc, ogl.}

-proc glBindVideoCaptureStreamTextureNV*(video_capture_slot: GLuint, 

-                                        stream: GLuint, frame_region: GLenum, 

-                                        target: GLenum, texture: GLuint){.

-    stdcall, importc, ogl.}

-proc glEndVideoCaptureNV*(video_capture_slot: GLuint){.stdcall, importc, ogl.}

-proc glGetVideoCaptureivNV*(video_capture_slot: GLuint, pname: GLenum, 

-                            params: PGLint){.stdcall, importc, ogl.}

-proc glGetVideoCaptureStreamivNV*(video_capture_slot: GLuint, stream: GLuint, 

-                                  pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetVideoCaptureStreamfvNV*(video_capture_slot: GLuint, stream: GLuint, 

-                                  pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetVideoCaptureStreamdvNV*(video_capture_slot: GLuint, stream: GLuint, 

-                                  pname: GLenum, params: PGLdouble){.stdcall, importc, ogl.}

-proc glVideoCaptureNV*(video_capture_slot: GLuint, sequence_num: PGLuint, 

-                       capture_time: PGLuint64EXT): GLenum{.stdcall, importc, ogl.}

-proc glVideoCaptureStreamParameterivNV*(video_capture_slot: GLuint, 

-                                        stream: GLuint, pname: GLenum, 

-                                        params: PGLint){.stdcall, importc, ogl.}

-proc glVideoCaptureStreamParameterfvNV*(video_capture_slot: GLuint, 

-                                        stream: GLuint, pname: GLenum, 

-                                        params: PGLfloat){.stdcall, importc, ogl.}

-proc glVideoCaptureStreamParameterdvNV*(video_capture_slot: GLuint, 

-                                        stream: GLuint, pname: GLenum, 

-                                        params: PGLdouble){.stdcall, importc, ogl.}

-  # GL_NV_copy_image

-proc glCopyImageSubDataNV*(srcName: GLuint, srcTarget: GLenum, srcLevel: GLint, 

-                           srcX: GLint, srcY: GLint, srcZ: GLint, 

-                           dstName: GLuint, dstTarget: GLenum, dstLevel: GLint, 

-                           dstX: GLint, dstY: GLint, dstZ: GLint, 

-                           width: GLsizei, height: GLsizei, depth: GLsizei){.

-    stdcall, importc, ogl.}

-  # GL_NV_shader_buffer_load

-proc glMakeBufferResidentNV*(target: GLenum, access: GLenum){.stdcall, importc, ogl.}

-proc glMakeBufferNonResidentNV*(target: GLenum){.stdcall, importc, ogl.}

-proc glIsBufferResidentNV*(target: GLenum): GLboolean{.stdcall, importc, ogl.}

-proc glMakeNamedBufferResidentNV*(buffer: GLuint, access: GLenum){.stdcall, importc, ogl.}

-proc glMakeNamedBufferNonResidentNV*(buffer: GLuint){.stdcall, importc, ogl.}

-proc glIsNamedBufferResidentNV*(buffer: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glGetBufferParameterui64vNV*(target: GLenum, pname: GLenum, 

-                                  params: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glGetNamedBufferParameterui64vNV*(buffer: GLuint, pname: GLenum, 

-                                       params: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glGetIntegerui64vNV*(value: GLenum, result: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glUniformui64NV*(location: GLint, value: GLuint64EXT){.stdcall, importc, ogl.}

-proc glUniformui64vNV*(location: GLint, count: GLsizei, value: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glGetUniformui64vNV*(prog: GLuint, location: GLint, params: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glProgramUniformui64NV*(prog: GLuint, location: GLint, value: GLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glProgramUniformui64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLuint64EXT){.stdcall, importc, ogl.}

-  # GL_NV_vertex_buffer_unified_memory

-proc glBufferAddressRangeNV*(pname: GLenum, index: GLuint, adress: GLuint64EXT, 

-                             len: GLsizeiptr){.stdcall, importc, ogl.}

-proc glVertexFormatNV*(size: GLint, typ: GLenum, stride: GLsizei){.stdcall, importc, ogl.}

-proc glNormalFormatNV*(typ: GLenum, stride: GLsizei){.stdcall, importc, ogl.}

-proc glColorFormatNV*(size: GLint, typ: GLenum, stride: GLsizei){.stdcall, importc, ogl.}

-proc glIndexFormatNV*(typ: GLenum, stride: GLsizei){.stdcall, importc, ogl.}

-proc glTexCoordFormatNV*(size: GLint, typ: GLenum, stride: GLsizei){.stdcall, importc, ogl.}

-proc glEdgeFlagFormatNV*(stride: GLsizei){.stdcall, importc, ogl.}

-proc glSecondaryColorFormatNV*(size: GLint, typ: GLenum, stride: GLsizei){.

-    stdcall, importc, ogl.}

-proc glFogCoordFormatNV*(typ: GLenum, stride: GLsizei){.stdcall, importc, ogl.}

-proc glVertexAttribFormatNV*(index: GLuint, size: GLint, typ: GLenum, 

-                             normalized: GLboolean, stride: GLsizei){.stdcall, importc, ogl.}

-proc glVertexAttribIFormatNV*(index: GLuint, size: GLint, typ: GLenum, 

-                              stride: GLsizei){.stdcall, importc, ogl.}

-proc glGetIntegerui64i_vNV*(value: GLenum, index: GLuint, Result: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-  # GL_NV_gpu_program5

-proc glProgramSubroutineParametersuivNV*(target: GLenum, count: GLsizei, 

-    params: PGLuint){.stdcall, importc, ogl.}

-proc glGetProgramSubroutineParameteruivNV*(target: GLenum, index: GLuint, 

-    param: PGLuint){.stdcall, importc, ogl.}

-  # GL_NV_gpu_shader5

-proc glUniform1i64NV*(location: GLint, x: GLint64EXT){.stdcall, importc, ogl.}

-proc glUniform2i64NV*(location: GLint, x: GLint64EXT, y: GLint64EXT){.stdcall, importc, ogl.}

-proc glUniform3i64NV*(location: GLint, x: GLint64EXT, y: GLint64EXT, 

-                      z: GLint64EXT){.stdcall, importc, ogl.}

-proc glUniform4i64NV*(location: GLint, x: GLint64EXT, y: GLint64EXT, 

-                      z: GLint64EXT, w: GLint64EXT){.stdcall, importc, ogl.}

-proc glUniform1i64vNV*(location: GLint, count: GLsizei, value: PGLint64EXT){.

-    stdcall, importc, ogl.}

-proc glUniform2i64vNV*(location: GLint, count: GLsizei, value: PGLint64EXT){.

-    stdcall, importc, ogl.}

-proc glUniform3i64vNV*(location: GLint, count: GLsizei, value: PGLint64EXT){.

-    stdcall, importc, ogl.}

-proc glUniform4i64vNV*(location: GLint, count: GLsizei, value: PGLint64EXT){.

-    stdcall, importc, ogl.}

-proc glUniform1ui64NV*(location: GLint, x: GLuint64EXT){.stdcall, importc, ogl.}

-proc glUniform2ui64NV*(location: GLint, x: GLuint64EXT, y: GLuint64EXT){.stdcall, importc, ogl.}

-proc glUniform3ui64NV*(location: GLint, x: GLuint64EXT, y: GLuint64EXT, 

-                       z: GLuint64EXT){.stdcall, importc, ogl.}

-proc glUniform4ui64NV*(location: GLint, x: GLuint64EXT, y: GLuint64EXT, 

-                       z: GLuint64EXT, w: GLuint64EXT){.stdcall, importc, ogl.}

-proc glUniform1ui64vNV*(location: GLint, count: GLsizei, value: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glUniform2ui64vNV*(location: GLint, count: GLsizei, value: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glUniform3ui64vNV*(location: GLint, count: GLsizei, value: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glUniform4ui64vNV*(location: GLint, count: GLsizei, value: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glGetUniformi64vNV*(prog: GLuint, location: GLint, params: PGLint64EXT){.

-    stdcall, importc, ogl.}

-proc glProgramUniform1i64NV*(prog: GLuint, location: GLint, x: GLint64EXT){.

-    stdcall, importc, ogl.}

-proc glProgramUniform2i64NV*(prog: GLuint, location: GLint, x: GLint64EXT, 

-                             y: GLint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform3i64NV*(prog: GLuint, location: GLint, x: GLint64EXT, 

-                             y: GLint64EXT, z: GLint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform4i64NV*(prog: GLuint, location: GLint, x: GLint64EXT, 

-                             y: GLint64EXT, z: GLint64EXT, w: GLint64EXT){.

-    stdcall, importc, ogl.}

-proc glProgramUniform1i64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform2i64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform3i64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform4i64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform1ui64NV*(prog: GLuint, location: GLint, x: GLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glProgramUniform2ui64NV*(prog: GLuint, location: GLint, x: GLuint64EXT, 

-                              y: GLuint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform3ui64NV*(prog: GLuint, location: GLint, x: GLuint64EXT, 

-                              y: GLuint64EXT, z: GLuint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform4ui64NV*(prog: GLuint, location: GLint, x: GLuint64EXT, 

-                              y: GLuint64EXT, z: GLuint64EXT, w: GLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glProgramUniform1ui64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                               value: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform2ui64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                               value: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform3ui64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                               value: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform4ui64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                               value: PGLuint64EXT){.stdcall, importc, ogl.}

-  # GL_NV_vertex_attrib_integer_64bit

-proc glVertexAttribL1i64NV*(index: GLuint, x: GLint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL2i64NV*(index: GLuint, x: GLint64EXT, y: GLint64EXT){.

-    stdcall, importc, ogl.}

-proc glVertexAttribL3i64NV*(index: GLuint, x: GLint64EXT, y: GLint64EXT, 

-                            z: GLint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL4i64NV*(index: GLuint, x: GLint64EXT, y: GLint64EXT, 

-                            z: GLint64EXT, w: GLint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL1i64vNV*(index: GLuint, v: PGLint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL2i64vNV*(index: GLuint, v: PGLint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL3i64vNV*(index: GLuint, v: PGLint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL4i64vNV*(index: GLuint, v: PGLint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL1ui64NV*(index: GLuint, x: GLuint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL2ui64NV*(index: GLuint, x: GLuint64EXT, y: GLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glVertexAttribL3ui64NV*(index: GLuint, x: GLuint64EXT, y: GLuint64EXT, 

-                             z: GLuint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL4ui64NV*(index: GLuint, x: GLuint64EXT, y: GLuint64EXT, 

-                             z: GLuint64EXT, w: GLuint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL1ui64vNV*(index: GLuint, v: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL2ui64vNV*(index: GLuint, v: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL3ui64vNV*(index: GLuint, v: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL4ui64vNV*(index: GLuint, v: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glGetVertexAttribLi64vNV*(index: GLuint, pname: GLenum, params: PGLint64EXT){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribLui64vNV*(index: GLuint, pname: GLenum, 

-                                params: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribLFormatNV*(index: GLuint, size: GLint, typ: GLenum, 

-                              stride: GLsizei){.stdcall, importc, ogl.}

-  # GL_NV_vdpau_interop

-proc glVDPAUInitNV*(vdpDevice: PGLvoid, getProcAddress: PGLvoid){.stdcall, importc, ogl.}

-proc glVDPAUFiniNV*(){.stdcall, importc, ogl.}

-proc glVDPAURegisterVideoSurfaceNV*(vdpSurface: PGLvoid, target: GLenum, 

-                                    numTextureNames: GLsizei, 

-                                    textureNames: PGLuint): GLvdpauSurfaceNV{.

-    stdcall, importc, ogl.}

-proc glVDPAURegisterOutputSurfaceNV*(vdpSurface: PGLvoid, target: GLenum, 

-                                     numTextureNames: GLsizei, 

-                                     textureNames: PGLuint): GLvdpauSurfaceNV{.

-    stdcall, importc, ogl.}

-proc glVDPAUIsSurfaceNV*(surface: GLvdpauSurfaceNV){.stdcall, importc, ogl.}

-proc glVDPAUUnregisterSurfaceNV*(surface: GLvdpauSurfaceNV){.stdcall, importc, ogl.}

-proc glVDPAUGetSurfaceivNV*(surface: GLvdpauSurfaceNV, pname: GLenum, 

-                            bufSize: GLsizei, len: PGLsizei, values: PGLint){.

-    stdcall, importc, ogl.}

-proc glVDPAUSurfaceAccessNV*(surface: GLvdpauSurfaceNV, access: GLenum){.stdcall, importc, ogl.}

-proc glVDPAUMapSurfacesNV*(numSurfaces: GLsizei, surfaces: PGLvdpauSurfaceNV){.

-    stdcall, importc, ogl.}

-proc glVDPAUUnmapSurfacesNV*(numSurface: GLsizei, surfaces: PGLvdpauSurfaceNV){.

-    stdcall, importc, ogl.}

-  # GL_NV_texture_barrier

-proc glTextureBarrierNV*(){.stdcall, importc, ogl.}

-  # GL_PGI_misc_hints

-proc glHintPGI*(target: GLenum, mode: GLint){.stdcall, importc, ogl.}

-  # GL_SGIS_detail_texture

-proc glDetailTexFuncSGIS*(target: GLenum, n: GLsizei, points: PGLfloat){.stdcall, importc, ogl.}

-proc glGetDetailTexFuncSGIS*(target: GLenum, points: PGLfloat){.stdcall, importc, ogl.}

-  # GL_SGIS_fog_function

-proc glFogFuncSGIS*(n: GLsizei, points: PGLfloat){.stdcall, importc, ogl.}

-proc glGetFogFuncSGIS*(points: PGLfloat){.stdcall, importc, ogl.}

-  # GL_SGIS_multisample

-proc glSampleMaskSGIS*(value: GLclampf, invert: GLboolean){.stdcall, importc, ogl.}

-proc glSamplePatternSGIS*(pattern: GLenum){.stdcall, importc, ogl.}

-  # GL_SGIS_pixel_texture

-proc glPixelTexGenParameteriSGIS*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glPixelTexGenParameterivSGIS*(pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glPixelTexGenParameterfSGIS*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glPixelTexGenParameterfvSGIS*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetPixelTexGenParameterivSGIS*(pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetPixelTexGenParameterfvSGIS*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_SGIS_point_parameters

-proc glPointParameterfSGIS*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glPointParameterfvSGIS*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_SGIS_sharpen_texture

-proc glSharpenTexFuncSGIS*(target: GLenum, n: GLsizei, points: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetSharpenTexFuncSGIS*(target: GLenum, points: PGLfloat){.stdcall, importc, ogl.}

-  # GL_SGIS_texture4D

-proc glTexImage4DSGIS*(target: GLenum, level: GLint, internalformat: GLenum, 

-                       width: GLsizei, height: GLsizei, depth: GLsizei, 

-                       size4d: GLsizei, border: GLint, format: GLenum, 

-                       typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glTexSubImage4DSGIS*(target: GLenum, level: GLint, xoffset: GLint, 

-                          yoffset: GLint, zoffset: GLint, woffset: GLint, 

-                          width: GLsizei, height: GLsizei, depth: GLsizei, 

-                          size4d: GLsizei, format: GLenum, typ: GLenum, 

-                          pixels: PGLvoid){.stdcall, importc, ogl.}

-  # GL_SGIS_texture_color_mask

-proc glTextureColorMaskSGIS*(red: GLboolean, green: GLboolean, blue: GLboolean, 

-                             alpha: GLboolean){.stdcall, importc, ogl.}

-  # GL_SGIS_texture_filter4

-proc glGetTexFilterFuncSGIS*(target: GLenum, filter: GLenum, weights: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glTexFilterFuncSGIS*(target: GLenum, filter: GLenum, n: GLsizei, 

-                          weights: PGLfloat){.stdcall, importc, ogl.}

-  # GL_SGIX_async

-proc glAsyncMarkerSGIX*(marker: GLuint){.stdcall, importc, ogl.}

-proc glFinishAsyncSGIX*(markerp: PGLuint): GLint{.stdcall, importc, ogl.}

-proc glPollAsyncSGIX*(markerp: PGLuint): GLint{.stdcall, importc, ogl.}

-proc glGenAsyncMarkersSGIX*(range: GLsizei): GLuint{.stdcall, importc, ogl.}

-proc glDeleteAsyncMarkersSGIX*(marker: GLuint, range: GLsizei){.stdcall, importc, ogl.}

-proc glIsAsyncMarkerSGIX*(marker: GLuint): GLboolean{.stdcall, importc, ogl.}

-  # GL_SGIX_flush_raster

-proc glFlushRasterSGIX*(){.stdcall, importc, ogl.}

-  # GL_SGIX_fragment_lighting

-proc glFragmentColorMaterialSGIX*(face: GLenum, mode: GLenum){.stdcall, importc, ogl.}

-proc glFragmentLightfSGIX*(light: GLenum, pname: GLenum, param: GLfloat){.

-    stdcall, importc, ogl.}

-proc glFragmentLightfvSGIX*(light: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glFragmentLightiSGIX*(light: GLenum, pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glFragmentLightivSGIX*(light: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glFragmentLightModelfSGIX*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glFragmentLightModelfvSGIX*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glFragmentLightModeliSGIX*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glFragmentLightModelivSGIX*(pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glFragmentMaterialfSGIX*(face: GLenum, pname: GLenum, param: GLfloat){.

-    stdcall, importc, ogl.}

-proc glFragmentMaterialfvSGIX*(face: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glFragmentMaterialiSGIX*(face: GLenum, pname: GLenum, param: GLint){.

-    stdcall, importc, ogl.}

-proc glFragmentMaterialivSGIX*(face: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetFragmentLightfvSGIX*(light: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetFragmentLightivSGIX*(light: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetFragmentMaterialfvSGIX*(face: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetFragmentMaterialivSGIX*(face: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glLightEnviSGIX*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-  # GL_SGIX_framezoom

-proc glFrameZoomSGIX*(factor: GLint){.stdcall, importc, ogl.}

-  # GL_SGIX_igloo_interface

-proc glIglooInterfaceSGIX*(pname: GLenum, params: PGLvoid){.stdcall, importc, ogl.}

-  # GL_SGIX_instruments

-proc glGetInstrumentsSGIX*(): GLint{.stdcall, importc, ogl.}

-proc glInstrumentsBufferSGIX*(size: GLsizei, buffer: PGLint){.stdcall, importc, ogl.}

-proc glPollInstrumentsSGIX*(marker_p: PGLint): GLint{.stdcall, importc, ogl.}

-proc glReadInstrumentsSGIX*(marker: GLint){.stdcall, importc, ogl.}

-proc glStartInstrumentsSGIX*(){.stdcall, importc, ogl.}

-proc glStopInstrumentsSGIX*(marker: GLint){.stdcall, importc, ogl.}

-  # GL_SGIX_list_priority

-proc glGetListParameterfvSGIX*(list: GLuint, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetListParameterivSGIX*(list: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glListParameterfSGIX*(list: GLuint, pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glListParameterfvSGIX*(list: GLuint, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glListParameteriSGIX*(list: GLuint, pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glListParameterivSGIX*(list: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-  # GL_SGIX_pixel_texture

-proc glPixelTexGenSGIX*(mode: GLenum){.stdcall, importc, ogl.}

-  # GL_SGIX_polynomial_ffd

-proc glDeformationMap3dSGIX*(target: GLenum, u1: GLdouble, u2: GLdouble, 

-                             ustride: GLint, uorder: GLint, v1: GLdouble, 

-                             v2: GLdouble, vstride: GLint, vorder: GLint, 

-                             w1: GLdouble, w2: GLdouble, wstride: GLint, 

-                             worder: GLint, points: PGLdouble){.stdcall, importc, ogl.}

-proc glDeformationMap3fSGIX*(target: GLenum, u1: GLfloat, u2: GLfloat, 

-                             ustride: GLint, uorder: GLint, v1: GLfloat, 

-                             v2: GLfloat, vstride: GLint, vorder: GLint, 

-                             w1: GLfloat, w2: GLfloat, wstride: GLint, 

-                             worder: GLint, points: PGLfloat){.stdcall, importc, ogl.}

-proc glDeformSGIX*(mask: GLbitfield){.stdcall, importc, ogl.}

-proc glLoadIdentityDeformationMapSGIX*(mask: GLbitfield){.stdcall, importc, ogl.}

-  # GL_SGIX_reference_plane

-proc glReferencePlaneSGIX*(equation: PGLdouble){.stdcall, importc, ogl.}

-  # GL_SGIX_sprite

-proc glSpriteParameterfSGIX*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glSpriteParameterfvSGIX*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glSpriteParameteriSGIX*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glSpriteParameterivSGIX*(pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-  # GL_SGIX_tag_sample_buffer

-proc glTagSampleBufferSGIX*(){.stdcall, importc, ogl.}

-  # GL_SGI_color_table

-proc glColorTableSGI*(target: GLenum, internalformat: GLenum, width: GLsizei, 

-                      format: GLenum, typ: GLenum, table: PGLvoid){.stdcall, importc, ogl.}

-proc glColorTableParameterfvSGI*(target: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glColorTableParameterivSGI*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glCopyColorTableSGI*(target: GLenum, internalformat: GLenum, x: GLint, 

-                          y: GLint, width: GLsizei){.stdcall, importc, ogl.}

-proc glGetColorTableSGI*(target: GLenum, format: GLenum, typ: GLenum, 

-                         table: PGLvoid){.stdcall, importc, ogl.}

-proc glGetColorTableParameterfvSGI*(target: GLenum, pname: GLenum, 

-                                    params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetColorTableParameterivSGI*(target: GLenum, pname: GLenum, 

-                                    params: PGLint){.stdcall, importc, ogl.}

-  # GL_SUNX_constant_data

-proc glFinishTextureSUNX*(){.stdcall, importc, ogl.}

-  # GL_SUN_global_alpha

-proc glGlobalAlphaFactorbSUN*(factor: GLbyte){.stdcall, importc, ogl.}

-proc glGlobalAlphaFactorsSUN*(factor: GLshort){.stdcall, importc, ogl.}

-proc glGlobalAlphaFactoriSUN*(factor: GLint){.stdcall, importc, ogl.}

-proc glGlobalAlphaFactorfSUN*(factor: GLfloat){.stdcall, importc, ogl.}

-proc glGlobalAlphaFactordSUN*(factor: GLdouble){.stdcall, importc, ogl.}

-proc glGlobalAlphaFactorubSUN*(factor: GLubyte){.stdcall, importc, ogl.}

-proc glGlobalAlphaFactorusSUN*(factor: GLushort){.stdcall, importc, ogl.}

-proc glGlobalAlphaFactoruiSUN*(factor: GLuint){.stdcall, importc, ogl.}

-  # GL_SUN_mesh_array

-proc glDrawMeshArraysSUN*(mode: GLenum, first: GLint, count: GLsizei, 

-                          width: GLsizei){.stdcall, importc, ogl.}

-  # GL_SUN_triangle_list

-proc glReplacementCodeuiSUN*(code: GLuint){.stdcall, importc, ogl.}

-proc glReplacementCodeusSUN*(code: GLushort){.stdcall, importc, ogl.}

-proc glReplacementCodeubSUN*(code: GLubyte){.stdcall, importc, ogl.}

-proc glReplacementCodeuivSUN*(code: PGLuint){.stdcall, importc, ogl.}

-proc glReplacementCodeusvSUN*(code: PGLushort){.stdcall, importc, ogl.}

-proc glReplacementCodeubvSUN*(code: PGLubyte){.stdcall, importc, ogl.}

-proc glReplacementCodePointerSUN*(typ: GLenum, stride: GLsizei, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_SUN_vertex

-proc glColor4ubVertex2fSUN*(r: GLubyte, g: GLubyte, b: GLubyte, a: GLubyte, 

-                            x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glColor4ubVertex2fvSUN*(c: PGLubyte, v: PGLfloat){.stdcall, importc, ogl.}

-proc glColor4ubVertex3fSUN*(r: GLubyte, g: GLubyte, b: GLubyte, a: GLubyte, 

-                            x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glColor4ubVertex3fvSUN*(c: PGLubyte, v: PGLfloat){.stdcall, importc, ogl.}

-proc glColor3fVertex3fSUN*(r: GLfloat, g: GLfloat, b: GLfloat, x: GLfloat, 

-                           y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glColor3fVertex3fvSUN*(c: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-proc glNormal3fVertex3fSUN*(nx: GLfloat, ny: GLfloat, nz: GLfloat, x: GLfloat, 

-                            y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glNormal3fVertex3fvSUN*(n: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-proc glColor4fNormal3fVertex3fSUN*(r: GLfloat, g: GLfloat, b: GLfloat, 

-                                   a: GLfloat, nx: GLfloat, ny: GLfloat, 

-                                   nz: GLfloat, x: GLfloat, y: GLfloat, 

-                                   z: GLfloat){.stdcall, importc, ogl.}

-proc glColor4fNormal3fVertex3fvSUN*(c: PGLfloat, n: PGLfloat, v: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glTexCoord2fVertex3fSUN*(s: GLfloat, t: GLfloat, x: GLfloat, y: GLfloat, 

-                              z: GLfloat){.stdcall, importc, ogl.}

-proc glTexCoord2fVertex3fvSUN*(tc: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-proc glTexCoord4fVertex4fSUN*(s: GLfloat, t: GLfloat, p: GLfloat, q: GLfloat, 

-                              x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat){.

-    stdcall, importc, ogl.}

-proc glTexCoord4fVertex4fvSUN*(tc: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-proc glTexCoord2fColor4ubVertex3fSUN*(s: GLfloat, t: GLfloat, r: GLubyte, 

-                                      g: GLubyte, b: GLubyte, a: GLubyte, 

-                                      x: GLfloat, y: GLfloat, z: GLfloat){.

-    stdcall, importc, ogl.}

-proc glTexCoord2fColor4ubVertex3fvSUN*(tc: PGLfloat, c: PGLubyte, v: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glTexCoord2fColor3fVertex3fSUN*(s: GLfloat, t: GLfloat, r: GLfloat, 

-                                     g: GLfloat, b: GLfloat, x: GLfloat, 

-                                     y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glTexCoord2fColor3fVertex3fvSUN*(tc: PGLfloat, c: PGLfloat, v: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glTexCoord2fNormal3fVertex3fSUN*(s: GLfloat, t: GLfloat, nx: GLfloat, 

-                                      ny: GLfloat, nz: GLfloat, x: GLfloat, 

-                                      y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glTexCoord2fNormal3fVertex3fvSUN*(tc: PGLfloat, n: PGLfloat, v: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glTexCoord2fColor4fNormal3fVertex3fSUN*(s: GLfloat, t: GLfloat, r: GLfloat, 

-    g: GLfloat, b: GLfloat, a: GLfloat, nx: GLfloat, ny: GLfloat, nz: GLfloat, 

-    x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glTexCoord2fColor4fNormal3fVertex3fvSUN*(tc: PGLfloat, c: PGLfloat, 

-    n: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-proc glTexCoord4fColor4fNormal3fVertex4fSUN*(s: GLfloat, t: GLfloat, p: GLfloat, 

-    q: GLfloat, r: GLfloat, g: GLfloat, b: GLfloat, a: GLfloat, nx: GLfloat, 

-    ny: GLfloat, nz: GLfloat, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat){.

-    stdcall, importc, ogl.}

-proc glTexCoord4fColor4fNormal3fVertex4fvSUN*(tc: PGLfloat, c: PGLfloat, 

-    n: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiVertex3fSUN*(rc: GLuint, x: GLfloat, y: GLfloat, 

-                                     z: GLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiVertex3fvSUN*(rc: PGLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiColor4ubVertex3fSUN*(rc: GLuint, r: GLubyte, g: GLubyte, 

-    b: GLubyte, a: GLubyte, x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiColor4ubVertex3fvSUN*(rc: PGLuint, c: PGLubyte, 

-    v: PGLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiColor3fVertex3fSUN*(rc: GLuint, r: GLfloat, g: GLfloat, 

-    b: GLfloat, x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiColor3fVertex3fvSUN*(rc: PGLuint, c: PGLfloat, 

-    v: PGLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiNormal3fVertex3fSUN*(rc: GLuint, nx: GLfloat, 

-    ny: GLfloat, nz: GLfloat, x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiNormal3fVertex3fvSUN*(rc: PGLuint, n: PGLfloat, 

-    v: PGLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiColor4fNormal3fVertex3fSUN*(rc: GLuint, r: GLfloat, 

-    g: GLfloat, b: GLfloat, a: GLfloat, nx: GLfloat, ny: GLfloat, nz: GLfloat, 

-    x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiColor4fNormal3fVertex3fvSUN*(rc: PGLuint, c: PGLfloat, 

-    n: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiTexCoord2fVertex3fSUN*(rc: GLuint, s: GLfloat, 

-    t: GLfloat, x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiTexCoord2fVertex3fvSUN*(rc: PGLuint, tc: PGLfloat, 

-    v: PGLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN*(rc: GLuint, s: GLfloat, 

-    t: GLfloat, nx: GLfloat, ny: GLfloat, nz: GLfloat, x: GLfloat, y: GLfloat, 

-    z: GLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN*(rc: PGLuint, 

-    tc: PGLfloat, n: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN*(rc: GLuint, 

-    s: GLfloat, t: GLfloat, r: GLfloat, g: GLfloat, b: GLfloat, a: GLfloat, 

-    nx: GLfloat, ny: GLfloat, nz: GLfloat, x: GLfloat, y: GLfloat, z: GLfloat){.

-    stdcall, importc, ogl.}

-proc glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN*(rc: PGLuint, 

-    tc: PGLfloat, c: PGLfloat, n: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-  # window support functions

-when defined(windows): 

-  when not defined(wglGetProcAddress):

-    proc wglGetProcAddress*(ProcName: cstring): Pointer{.stdcall, importc, wgl.}

-  proc wglCopyContext*(p1: HGLRC, p2: HGLRC, p3: int): BOOL{.stdcall, importc, wgl.}

-  proc wglCreateContext*(DC: HDC): HGLRC{.stdcall, importc, wgl.}

-  proc wglCreateLayerContext*(p1: HDC, p2: int): HGLRC{.stdcall, importc, wgl.}

-  proc wglDeleteContext*(p1: HGLRC): BOOL{.stdcall, importc, wgl.}

-  proc wglDescribeLayerPlane*(p1: HDC, p2, p3: int, p4: int, 

-                              LayerPlaneDescriptor: pointer): BOOL{.stdcall, importc, wgl.}

-  proc wglGetCurrentContext*(): HGLRC{.stdcall, importc, wgl.}

-  proc wglGetCurrentDC*(): HDC{.stdcall, importc, wgl.}

-  proc wglGetLayerPaletteEntries*(p1: HDC, p2, p3, p4: int, pcr: pointer): int{.

-      stdcall, importc, wgl.}

-  proc wglMakeCurrent*(DC: HDC, p2: HGLRC): BOOL{.stdcall, importc, wgl.}

-  proc wglRealizeLayerPalette*(p1: HDC, p2: int, p3: BOOL): BOOL{.stdcall, importc, wgl.}

-  proc wglSetLayerPaletteEntries*(p1: HDC, p2, p3, p4: int, pcr: pointer): int{.

-      stdcall, importc, wgl.}

-  proc wglShareLists*(p1, p2: HGLRC): BOOL{.stdcall, importc, wgl.}

-  proc wglSwapLayerBuffers*(p1: HDC, p2: int): BOOL{.stdcall, importc, wgl.}

-  proc wglSwapMultipleBuffers*(p1: int32, p2: PWGLSWAP): int32{.stdcall, importc, wgl.}

-  proc wglUseFontBitmapsA*(DC: HDC, p2, p3, p4: int32): BOOL{.stdcall, importc, wgl.}

-  proc wglUseFontBitmapsW*(DC: HDC, p2, p3, p4: int32): BOOL{.stdcall, importc, wgl.}

-  proc wglUseFontBitmaps*(DC: HDC, p2, p3, p4: int32): BOOL{.stdcall, importc, wgl.}

-  proc wglUseFontOutlinesA*(p1: HDC, p2, p3, p4: int32, p5, p6: float32, 

-                            p7: int, GlyphMetricsFloat: pointer): BOOL{.stdcall, importc, wgl.}

-  proc wglUseFontOutlinesW*(p1: HDC, p2, p3, p4: int32, p5, p6: float32, 

-                            p7: int, GlyphMetricsFloat: pointer): BOOL{.stdcall, importc, wgl.}

-  proc wglUseFontOutlines*(p1: HDC, p2, p3, p4: int32, p5, p6: float32, p7: int, 

-                           GlyphMetricsFloat: pointer): BOOL{.stdcall, importc, wgl.}

-    # WGL_ARB_buffer_region

-  proc wglCreateBufferRegionARB*(hDC: HDC, iLayerPlane: GLint, uType: GLuint): THandle{.

-      stdcall, importc, wgl.}

-  proc wglDeleteBufferRegionARB*(hRegion: THandle){.stdcall, importc, wgl.}

-  proc wglSaveBufferRegionARB*(hRegion: THandle, x: GLint, y: GLint, 

-                               width: GLint, height: GLint): bool{.stdcall, importc, wgl.}

-  proc wglRestoreBufferRegionARB*(hRegion: THandle, x: GLint, y: GLint, 

-                                  width: GLint, height: GLint, xSrc: GLint, 

-                                  ySrc: GLint): bool{.stdcall, importc, wgl.}

-    # WGL_ARB_extensions_string

-  proc wglGetExtensionsStringARB*(hdc: HDC): cstring{.stdcall, importc, wgl.}

-    # WGL_ARB_make_current_read

-  proc wglMakeContextCurrentARB*(hDrawDC: HDC, hReadDC: HDC, hglrc: HGLRC): bool{.

-      stdcall, importc, wgl.}

-  proc wglGetCurrentReadDCARB*(): HDC{.stdcall, importc, wgl.}

-    # WGL_ARB_pbuffer

-  proc wglCreatePbufferARB*(hDC: HDC, iPixelFormat: GLint, iWidth: GLint, 

-                            iHeight: GLint, piAttribList: PGLint): HPBUFFERARB{.

-      stdcall, importc, wgl.}

-  proc wglGetPbufferDCARB*(hPbuffer: HPBUFFERARB): HDC{.stdcall, importc, wgl.}

-  proc wglReleasePbufferDCARB*(hPbuffer: HPBUFFERARB, hDC: HDC): GLint{.stdcall, importc, wgl.}

-  proc wglDestroyPbufferARB*(hPbuffer: HPBUFFERARB): bool{.stdcall, importc, wgl.}

-  proc wglQueryPbufferARB*(hPbuffer: HPBUFFERARB, iAttribute: GLint, 

-                           piValue: PGLint): bool{.stdcall, importc, wgl.}

-    # WGL_ARB_pixel_format

-  proc wglGetPixelFormatAttribivARB*(hdc: HDC, iPixelFormat: GLint, 

-                                     iLayerPlane: GLint, nAttributes: GLuint, 

-                                     piAttributes: PGLint, piValues: PGLint): bool{.

-      stdcall, importc, wgl.}

-  proc wglGetPixelFormatAttribfvARB*(hdc: HDC, iPixelFormat: GLint, 

-                                     iLayerPlane: GLint, nAttributes: GLuint, 

-                                     piAttributes: PGLint, pfValues: PGLfloat): bool{.

-      stdcall, importc, wgl.}

-  proc wglChoosePixelFormatARB*(hdc: HDC, piAttribIList: PGLint, 

-                                pfAttribFList: PGLfloat, nMaxFormats: GLuint, 

-                                piFormats: PGLint, nNumFormats: PGLuint): BOOL{.

-      stdcall, importc, wgl.}

-    # WGL_ARB_color_buffer_float

-  proc wglClampColorARB*(target: GLenum, clamp: GLenum){.stdcall, importc, wgl.}

-    # WGL_ARB_render_texture

-  proc wglBindTexImageARB*(hPbuffer: HPBUFFERARB, iBuffer: GLint): bool{.stdcall, importc, wgl.}

-  proc wglReleaseTexImageARB*(hPbuffer: HPBUFFERARB, iBuffer: GLint): bool{.

-      stdcall, importc, wgl.}

-  proc wglSetPbufferAttribARB*(hPbuffer: HPBUFFERARB, piAttribList: PGLint): bool{.

-      stdcall, importc, wgl.}

-    # WGL_ARB_create_context

-  proc wglCreateContextAttribsARB*(hDC: HDC, hShareContext: HGLRC, 

-                                   attribList: PGLint): HGLRC{.stdcall, importc, wgl.}

-    # WGL_AMD_gpu_association

-  proc wglGetGPUIDsAMD*(maxCount: int, ids: ptr int): int{.stdcall, importc, wgl.}

-  proc wglGetGPUInfoAMD*(id: int, prop: int, dataType: GLenum, size: int, 

-                         data: Pointer): int{.stdcall, importc, wgl.}

-  proc wglGetContextGPUIDAMD*(hglrc: HGLRC): int{.stdcall, importc, wgl.}

-  proc wglCreateAssociatedContextAMD*(id: int): HGLRC{.stdcall, importc, wgl.}

-  proc wglCreateAssociatedContextAttribsAMD*(id: int, hShareContext: HGLRC, 

-      attribList: ptr int32): HGLRC{.stdcall, importc, wgl.}

-  proc wglDeleteAssociatedContextAMD*(hglrc: HGLRC): bool{.stdcall, importc, wgl.}

-  proc wglMakeAssociatedContextCurrentAMD*(hglrc: HGLRC): bool{.stdcall, importc, wgl.}

-  proc wglGetCurrentAssociatedContextAMD*(): HGLRC{.stdcall, importc, wgl.}

-  proc wglBlitContextFramebufferAMD*(dstCtx: HGLRC, srcX0: GLint, srcY0: GLint, 

-                                     srcX1: GLint, srcY1: GLint, dstX0: GLint, 

-                                     dstY0: GLint, dstX1: GLint, dstY1: GLint, 

-                                     mask: GLbitfield, filter: GLenum){.stdcall, importc, wgl.}

-    # WGL_EXT_display_color_table

-  proc wglCreateDisplayColorTableEXT*(id: GLushort): GLboolean{.stdcall, importc, wgl.}

-  proc wglLoadDisplayColorTableEXT*(table: PGLushort, len: GLuint): GLboolean{.

-      stdcall, importc, wgl.}

-  proc wglBindDisplayColorTableEXT*(id: GLushort): GLboolean{.stdcall, importc, wgl.}

-  proc wglDestroyDisplayColorTableEXT*(id: GLushort){.stdcall, importc, wgl.}

-    # WGL_EXT_extensions_string

-  proc wglGetExtensionsStringEXT*(): cstring{.stdcall, importc, wgl.}

-    # WGL_EXT_make_current_read

-  proc wglMakeContextCurrentEXT*(hDrawDC: HDC, hReadDC: HDC, hglrc: HGLRC): bool{.

-      stdcall, importc, wgl.}

-  proc wglGetCurrentReadDCEXT*(): HDC{.stdcall, importc, wgl.}

-    # WGL_EXT_pbuffer

-  proc wglCreatePbufferEXT*(hDC: HDC, iPixelFormat: GLint, iWidth: GLint, 

-                            iHeight: GLint, piAttribList: PGLint): HPBUFFEREXT{.

-      stdcall, importc, wgl.}

-  proc wglGetPbufferDCEXT*(hPbuffer: HPBUFFEREXT): HDC{.stdcall, importc, wgl.}

-  proc wglReleasePbufferDCEXT*(hPbuffer: HPBUFFEREXT, hDC: HDC): GLint{.stdcall, importc, wgl.}

-  proc wglDestroyPbufferEXT*(hPbuffer: HPBUFFEREXT): bool{.stdcall, importc, wgl.}

-  proc wglQueryPbufferEXT*(hPbuffer: HPBUFFEREXT, iAttribute: GLint, 

-                           piValue: PGLint): bool{.stdcall, importc, wgl.}

-    # WGL_EXT_pixel_format

-  proc wglGetPixelFormatAttribivEXT*(hdc: HDC, iPixelFormat: GLint, 

-                                     iLayerPlane: GLint, nAttributes: GLuint, 

-                                     piAttributes: PGLint, piValues: PGLint): bool{.

-      stdcall, importc, wgl.}

-  proc wglGetPixelFormatAttribfvEXT*(hdc: HDC, iPixelFormat: GLint, 

-                                     iLayerPlane: GLint, nAttributes: GLuint, 

-                                     piAttributes: PGLint, pfValues: PGLfloat): bool{.

-      stdcall, importc, wgl.}

-  proc wglChoosePixelFormatEXT*(hdc: HDC, piAttribIList: PGLint, 

-                                pfAttribFList: PGLfloat, nMaxFormats: GLuint, 

-                                piFormats: PGLint, nNumFormats: PGLuint): bool{.

-      stdcall, importc, wgl.}

-    # WGL_EXT_swap_control

-  proc wglSwapIntervalEXT*(interval: GLint): bool{.stdcall, importc, wgl.}

-  proc wglGetSwapIntervalEXT*(): GLint{.stdcall, importc, wgl.}

-    # WGL_I3D_digital_video_control

-  proc wglGetDigitalVideoParametersI3D*(hDC: HDC, iAttribute: GLint, 

-                                        piValue: PGLint): bool{.stdcall, importc, wgl.}

-  proc wglSetDigitalVideoParametersI3D*(hDC: HDC, iAttribute: GLint, 

-                                        piValue: PGLint): bool{.stdcall, importc, wgl.}

-    # WGL_I3D_gamma

-  proc wglGetGammaTableParametersI3D*(hDC: HDC, iAttribute: GLint, 

-                                      piValue: PGLint): bool{.stdcall, importc, wgl.}

-  proc wglSetGammaTableParametersI3D*(hDC: HDC, iAttribute: GLint, 

-                                      piValue: PGLint): bool{.stdcall, importc, wgl.}

-  proc wglGetGammaTableI3D*(hDC: HDC, iEntries: GLint, puRed: PGLushort, 

-                            puGreen: PGLushort, puBlue: PGLushort): bool{.

-      stdcall, importc, wgl.}

-  proc wglSetGammaTableI3D*(hDC: HDC, iEntries: GLint, puRed: PGLushort, 

-                            puGreen: PGLushort, puBlue: PGLushort): bool{.

-      stdcall, importc, wgl.}

-    # WGL_I3D_genlock

-  proc wglEnableGenlockI3D*(hDC: HDC): bool{.stdcall, importc, wgl.}

-  proc wglDisableGenlockI3D*(hDC: HDC): bool{.stdcall, importc, wgl.}

-  proc wglIsEnabledGenlockI3D*(hDC: HDC, pFlag: bool): bool{.stdcall, importc, wgl.}

-  proc wglGenlockSourceI3D*(hDC: HDC, uSource: GLuint): bool{.stdcall, importc, wgl.}

-  proc wglGetGenlockSourceI3D*(hDC: HDC, uSource: PGLuint): bool{.stdcall, importc, wgl.}

-  proc wglGenlockSourceEdgeI3D*(hDC: HDC, uEdge: GLuint): bool{.stdcall, importc, wgl.}

-  proc wglGetGenlockSourceEdgeI3D*(hDC: HDC, uEdge: PGLuint): bool{.stdcall, importc, wgl.}

-  proc wglGenlockSampleRateI3D*(hDC: HDC, uRate: GLuint): bool{.stdcall, importc, wgl.}

-  proc wglGetGenlockSampleRateI3D*(hDC: HDC, uRate: PGLuint): bool{.stdcall, importc, wgl.}

-  proc wglGenlockSourceDelayI3D*(hDC: HDC, uDelay: GLuint): bool{.stdcall, importc, wgl.}

-  proc wglGetGenlockSourceDelayI3D*(hDC: HDC, uDelay: PGLuint): bool{.stdcall, importc, wgl.}

-  proc wglQueryGenlockMaxSourceDelayI3D*(hDC: HDC, uMaxLineDelay: PGLuint, 

-      uMaxPixelDelay: PGLuint): bool{.stdcall, importc, wgl.}

-    # WGL_I3D_image_buffer

-  proc wglCreateImageBufferI3D*(hDC: HDC, dwSize: GLuint, uFlags: GLuint): GLvoid{.

-      stdcall, importc, wgl.}

-  proc wglDestroyImageBufferI3D*(hDC: HDC, pAddress: GLvoid): bool{.stdcall, importc, wgl.}

-  proc wglAssociateImageBufferEventsI3D*(hDC: HDC, pEvent: THandle, 

-      pAddress: PGLvoid, pSize: PGLuint, count: GLuint): bool{.stdcall, importc, wgl.}

-  proc wglReleaseImageBufferEventsI3D*(hDC: HDC, pAddress: PGLvoid, 

-                                       count: GLuint): bool{.stdcall, importc, wgl.}

-    # WGL_I3D_swap_frame_lock

-  proc wglEnableFrameLockI3D*(): bool{.stdcall, importc, wgl.}

-  proc wglDisableFrameLockI3D*(): bool{.stdcall, importc, wgl.}

-  proc wglIsEnabledFrameLockI3D*(pFlag: bool): bool{.stdcall, importc, wgl.}

-  proc wglQueryFrameLockMasterI3D*(pFlag: bool): bool{.stdcall, importc, wgl.}

-    # WGL_I3D_swap_frame_usage

-  proc wglGetFrameUsageI3D*(pUsage: PGLfloat): bool{.stdcall, importc, wgl.}

-  proc wglBeginFrameTrackingI3D*(): bool{.stdcall, importc, wgl.}

-  proc wglEndFrameTrackingI3D*(): bool{.stdcall, importc, wgl.}

-  proc wglQueryFrameTrackingI3D*(pFrameCount: PGLuint, pMissedFrames: PGLuint, 

-                                 pLastMissedUsage: PGLfloat): bool{.stdcall, importc, wgl.}

-    # WGL_NV_vertex_array_range

-  proc wglAllocateMemoryNV*(size: GLsizei, readfreq: GLfloat, 

-                            writefreq: GLfloat, priority: GLfloat){.stdcall, importc, wgl.}

-  proc wglFreeMemoryNV*(pointer: Pointer){.stdcall, importc, wgl.}

-    # WGL_NV_present_video

-  proc wglEnumerateVideoDevicesNV*(hdc: HDC, phDeviceList: PHVIDEOOUTPUTDEVICENV): int{.

-      stdcall, importc, wgl.}

-  proc wglBindVideoDeviceNV*(hd: HDC, uVideoSlot: int, 

-                             hVideoDevice: HVIDEOOUTPUTDEVICENV, 

-                             piAttribList: ptr int32): bool{.stdcall, importc, wgl.}

-  proc wglQueryCurrentContextNV*(iAttribute: int, piValue: ptr int32): bool{.

-      stdcall, importc, wgl.}

-    # WGL_NV_video_output

-  proc wglGetVideoDeviceNV*(hDC: HDC, numDevices: int, hVideoDevice: PHPVIDEODEV): bool{.

-      stdcall, importc, wgl.}

-  proc wglReleaseVideoDeviceNV*(hVideoDevice: HPVIDEODEV): bool{.stdcall, importc, wgl.}

-  proc wglBindVideoImageNV*(hVideoDevice: HPVIDEODEV, hPbuffer: HPBUFFERARB, 

-                            iVideoBuffer: int): bool{.stdcall, importc, wgl.}

-  proc wglReleaseVideoImageNV*(hPbuffer: HPBUFFERARB, iVideoBuffer: int): bool{.

-      stdcall, importc, wgl.}

-  proc wglSendPbufferToVideoNV*(hPbuffer: HPBUFFERARB, iBufferType: int, 

-                                pulCounterPbuffer: ptr int, bBlock: bool): bool{.

-      stdcall, importc, wgl.}

-  proc wglGetVideoInfoNV*(hpVideoDevice: HPVIDEODEV, 

-                          pulCounterOutputPbuffer: ptr int, 

-                          pulCounterOutputVideo: ptr int): bool{.stdcall, importc, wgl.}

-    # WGL_NV_swap_group

-  proc wglJoinSwapGroupNV*(hDC: HDC, group: GLuint): bool{.stdcall, importc, wgl.}

-  proc wglBindSwapBarrierNV*(group: GLuint, barrier: GLuint): bool{.stdcall, importc, wgl.}

-  proc wglQuerySwapGroupNV*(hDC: HDC, group: PGLuint, barrier: PGLuint): bool{.

-      stdcall, importc, wgl.}

-  proc wglQueryMaxSwapGroupsNV*(hDC: HDC, mxGroups: PGLuint, 

-                                maxBarriers: PGLuint): bool{.stdcall, importc, wgl.}

-  proc wglQueryFrameCountNV*(hDC: HDC, count: PGLuint): bool{.stdcall, importc, wgl.}

-  proc wglResetFrameCountNV*(hDC: HDC): bool{.stdcall, importc, wgl.}

-    # WGL_NV_gpu_affinity

-  proc wglEnumGpusNV*(iGpuIndex: int, phGpu: PHGPUNV): bool{.stdcall, importc, wgl.}

-  proc wglEnumGpuDevicesNV*(hGpu: HGPUNV, iDeviceIndex: int, 

-                            lpGpuDevice: PGPU_DEVICE): bool{.stdcall, importc, wgl.}

-  proc wglCreateAffinityDCNV*(phGpuList: PHGPUNV): HDC{.stdcall, importc, wgl.}

-  proc wglEnumGpusFromAffinityDCNV*(hAffinityDC: HDC, iGpuIndex: int, 

-                                    hGpu: PHGPUNV): bool{.stdcall, importc, wgl.}

-  proc wglDeleteDCNV*(hDC: HDC): bool{.stdcall, importc, wgl.}

-    # WGL_NV_video_capture

-  proc wglBindVideoCaptureDeviceNV*(uVideoSlot: int, 

-                                    hDevice: HVIDEOINPUTDEVICENV): bool{.stdcall, importc, wgl.}

-  proc wglEnumerateVideoCaptureDevicesNV*(hDc: HDC, 

-      phDeviceList: PHVIDEOINPUTDEVICENV): int{.stdcall, importc, wgl.}

-  proc wglLockVideoCaptureDeviceNV*(hDc: HDC, hDevice: HVIDEOINPUTDEVICENV): bool{.

-      stdcall, importc, wgl.}

-  proc wglQueryVideoCaptureDeviceNV*(hDc: HDC, hDevice: HVIDEOINPUTDEVICENV, 

-                                     iAttribute: int, piValue: ptr int32): bool{.

-      stdcall, importc, wgl.}

-  proc wglReleaseVideoCaptureDeviceNV*(hDc: HDC, hDevice: HVIDEOINPUTDEVICENV): bool{.

-      stdcall, importc, wgl.}

-    # WGL_NV_copy_image

-  proc wglCopyImageSubDataNV*(hSrcRc: HGLRC, srcName: GLuint, srcTarget: GLenum, 

-                              srcLevel: GLint, srcX: GLint, srcY: GLint, 

-                              srcZ: GLint, hDstRC: HGLRC, dstName: GLuint, 

-                              dstTarget: GLenum, dstLevel: GLint, dstX: GLint, 

-                              dstY: GLint, dstZ: GLint, width: GLsizei, 

-                              height: GLsizei, depth: GLsizei): bool{.stdcall, importc, wgl.}

-    # WGL_NV_DX_interop

-  proc wglDXSetResourceShareHandleNV*(dxObject: PGLVoid, hareHandle: int): bool{.

-      stdcall, importc, wgl.}

-  proc wglDXOpenDeviceNV*(dxDevice: PGLVoid): int{.stdcall, importc, wgl.}

-  proc wglDXCloseDeviceNV*(hDevice: int): bool{.stdcall, importc, wgl.}

-  proc wglDXRegisterObjectNV*(hDevice: int, dxObject: PGLVoid, name: GLUInt, 

-                              typ: TGLEnum, access: TGLenum): int{.stdcall, importc, wgl.}

-  proc wglDXUnregisterObjectNV*(hDevice: int, hObject: int): bool{.stdcall, importc, wgl.}

-  proc wglDXObjectAccessNV*(hObject: int, access: GLenum): bool{.stdcall, importc, wgl.}

-  proc wglDXLockObjectsNV*(hDevice: int, count: GLint, hObjects: ptr int): bool{.

-      stdcall, importc, wgl.}

-  proc wglDXUnlockObjectsNV*(hDevice: int, count: GLint, hObjects: ptr int): bool{.

-      stdcall, importc, wgl.}

-    # WGL_OML_sync_control

-  proc wglGetSyncValuesOML*(hdc: HDC, ust: PGLint64, msc: PGLint64, 

-                            sbc: PGLint64): bool{.stdcall, importc, wgl.}

-  proc wglGetMscRateOML*(hdc: HDC, numerator: PGLint, denominator: PGLint): bool{.

-      stdcall, importc, wgl.}

-  proc wglSwapBuffersMscOML*(hdc: HDC, target_msc: GLint64, divisor: GLint64, 

-                             remainder: GLint64): GLint64{.stdcall, importc, wgl.}

-  proc wglSwapLayerBuffersMscOML*(hdc: HDC, fuPlanes: GLint, 

-                                  target_msc: GLint64, divisor: GLint64, 

-                                  remainder: GLint64): GLint64{.stdcall, importc, wgl.}

-  proc wglWaitForMscOML*(hdc: HDC, target_msc: GLint64, divisor: GLint64, 

-                         remainder: GLint64, ust: PGLint64, msc: PGLint64, 

-                         sbc: PGLint64): bool{.stdcall, importc, wgl.}

-  proc wglWaitForSbcOML*(hdc: HDC, target_sbc: GLint64, ust: PGLint64, 

-                         msc: PGLint64, sbc: PGLint64): bool{.stdcall, importc, wgl.}

-    # WGL_3DL_stereo_control

-  proc wglSetStereoEmitterState3DL*(hDC: HDC, uState: int32): bool{.stdcall, importc, wgl.}

-    # WIN_draw_range_elements

-  proc glDrawRangeElementsWIN*(mode: GLenum, start: GLuint, ending: GLuint, 

-                               count: GLsizei, typ: GLenum, indices: PGLvoid){.

-      stdcall, importc, wgl.}

-    # WIN_swap_hint

-  proc glAddSwapHintRectWIN*(x: GLint, y: GLint, width: GLsizei, height: GLsizei){.

-      stdcall, importc, wgl.}

-when defined(LINUX): 

-  proc glXChooseVisual*(dpy: PDisplay, screen: GLint, attribList: PGLint): PXVisualInfo{.

-      stdcall, importc, oglx.}

-  proc glXCopyContext*(dpy: PDisplay, src: GLXContext, dst: GLXContext, 

-                       mask: GLuint){.stdcall, importc, oglx.}

-  proc glXCreateContext*(dpy: PDisplay, vis: PXVisualInfo, 

-                         shareList: GLXContext, direct: GLboolean): GLXContext{.

-      stdcall, importc, oglx.}

-  proc glXCreateGLXPixmap*(dpy: PDisplay, vis: PXVisualInfo, pixmap: Pixmap): GLXPixmap{.

-      stdcall, importc, oglx.}

-  proc glXDestroyContext*(dpy: PDisplay, ctx: GLXContext){.stdcall, importc, oglx.}

-  proc glXDestroyGLXPixmap*(dpy: PDisplay, pix: GLXPixmap){.stdcall, importc, oglx.}

-  proc glXGetConfig*(dpy: PDisplay, vis: PXVisualInfo, attrib: GLint, 

-                     value: PGLint): GLint{.stdcall, importc, oglx.}

-  proc glXGetCurrentContext*(): GLXContext{.stdcall, importc, oglx.}

-  proc glXGetCurrentDrawable*(): GLXDrawable{.stdcall, importc, oglx.}

-  proc glXIsDirect*(dpy: PDisplay, ctx: GLXContext): glboolean{.stdcall, importc, oglx.}

-  proc glXMakeCurrent*(dpy: PDisplay, drawable: GLXDrawable, ctx: GLXContext): GLboolean{.

-      stdcall, importc, oglx.}

-  proc glXQueryExtension*(dpy: PDisplay, errorBase: PGLint, eventBase: PGLint): GLboolean{.

-      stdcall, importc, oglx.}

-  proc glXQueryVersion*(dpy: PDisplay, major: PGLint, minor: PGLint): GLboolean{.

-      stdcall, importc, oglx.}

-  proc glXSwapBuffers*(dpy: PDisplay, drawable: GLXDrawable){.stdcall, importc, oglx.}

-  proc glXUseXFont*(font: Font, first: GLint, count: GLint, listBase: GLint){.

-      stdcall, importc, oglx.}

-  proc glXWaitGL*(){.stdcall, importc, oglx.}

-  proc glXWaitX*(){.stdcall, importc, oglx.}

-  proc glXGetClientString*(dpy: PDisplay, name: GLint): PGLchar{.stdcall, importc, oglx.}

-  proc glXQueryServerString*(dpy: PDisplay, screen: GLint, name: GLint): PGLchar{.

-      stdcall, importc, oglx.}

-  proc glXQueryExtensionsString*(dpy: PDisplay, screen: GLint): PGLchar{.stdcall, importc, oglx.}

-    # GLX_VERSION_1_3

-  proc glXGetFBConfigs*(dpy: PDisplay, screen: GLint, nelements: PGLint): GLXFBConfig{.

-      stdcall, importc, oglx.}

-  proc glXChooseFBConfig*(dpy: PDisplay, screen: GLint, attrib_list: PGLint, 

-                          nelements: PGLint): GLXFBConfig{.stdcall, importc, oglx.}

-  proc glXGetFBConfigAttrib*(dpy: PDisplay, config: GLXFBConfig, 

-                             attribute: GLint, value: PGLint): glint{.stdcall, importc, oglx.}

-  proc glXGetVisualFromFBConfig*(dpy: PDisplay, config: GLXFBConfig): PXVisualInfo{.stdcall, importc, oglx.}

-  proc glXCreateWindow*(dpy: PDisplay, config: GLXFBConfig, win: Window, 

-                        attrib_list: PGLint): GLXWindow{.stdcall, importc, oglx.}

-  proc glXDestroyWindow*(dpy: PDisplay, win: GLXWindow){.stdcall, importc, oglx.}

-  proc glXCreatePixmap*(dpy: PDisplay, config: GLXFBConfig, pixmap: Pixmap, 

-                        attrib_list: PGLint): GLXPixmap{.stdcall, importc, oglx.}

-  proc glXDestroyPixmap*(dpy: PDisplay, pixmap: GLXPixmap){.stdcall, importc, oglx.}

-  proc glXCreatePbuffer*(dpy: PDisplay, config: GLXFBConfig, attrib_list: PGLint): GLXPbuffer{.

-      stdcall, importc, oglx.}

-  proc glXDestroyPbuffer*(dpy: PDisplay, pbuf: GLXPbuffer){.stdcall, importc, oglx.}

-  proc glXQueryDrawable*(dpy: PDisplay, draw: GLXDrawable, attribute: GLint, 

-                         value: PGLuint){.stdcall, importc, oglx.}

-  proc glXCreateNewContext*(dpy: PDisplay, config: GLXFBConfig, 

-                            rendertyp: GLint, share_list: GLXContext, 

-                            direct: GLboolean): GLXContext{.stdcall, importc, oglx.}

-  proc glXMakeContextCurrent*(display: PDisplay, draw: GLXDrawable, 

-                              read: GLXDrawable, ctx: GLXContext): GLboolean{.

-      stdcall, importc, oglx.}

-  proc glXGetCurrentReadDrawable*(): GLXDrawable{.stdcall, importc, oglx.}

-  proc glXGetCurreentDisplay*(): PDisplay{.stdcall, importc, oglx.}

-  proc glXQueryContext*(dpy: PDisplay, ctx: GLXContext, attribute: GLint, 

-                        value: PGLint): GLint{.stdcall, importc, oglx.}

-  proc glXSelectEvent*(dpy: PDisplay, draw: GLXDrawable, event_mask: GLuint){.

-      stdcall, importc, oglx.}

-  proc glXGetSelectedEvent*(dpy: PDisplay, draw: GLXDrawable, 

-                            event_mask: PGLuint){.stdcall, importc, oglx.}

-    # GLX_VERSION_1_4

-  when not defined(glXGetProcAddress):

-    proc glXGetProcAddress*(name: cstring): pointer{.stdcall, importc, oglx.}

-    # GLX_ARB_get_proc_address

-  when not defined(glXGetProcAddressARB):

-    proc glXGetProcAddressARB*(name: cstring): pointer{.stdcall, importc, oglx.}

-    # GLX_ARB_create_context

-  proc glXCreateContextAttribsARB*(dpy: PDisplay, config: GLXFBConfig, 

-                                   share_context: GLXContext, direct: GLboolean, 

-                                   attrib_list: PGLint): GLXContext{.stdcall, importc, oglx.}

-    # GLX_EXT_import_context

-  proc glXGetCurrentDisplayEXT*(): PDisplay{.stdcall, importc, oglx.}

-  proc glXQueryContextInfoEXT*(dpy: PDisplay, context: GLXContext, 

-                               attribute: GLint, value: PGLint): GLint{.stdcall, importc, oglx.}

-  proc glXGetContextIDEXT*(context: GLXContext): GLXContextID{.stdcall, importc, oglx.}

-  proc glXImportContextEXT*(dpy: PDisplay, contextID: GLXContextID): GLXContext{.

-      stdcall, importc, oglx.}

-  proc glXFreeContextEXT*(dpy: PDisplay, context: GLXContext){.stdcall, importc, oglx.}

-    # GLX_EXT_texture_from_pixmap

-  proc glXBindTexImageEXT*(dpy: PDisplay, drawable: GLXDrawable, buffer: GLint, 

-                           attrib_list: PGLint){.stdcall, importc, oglx.}

-  proc glXReleaseTexImageEXT*(dpy: PDisplay, drawable: GLXDrawable, 

-                              buffer: GLint){.stdcall, importc, oglx.}

-# GL utility functions and procedures

-

-proc gluErrorString*(errCode: GLEnum): cstring{.stdcall, importc, glu.}

-proc gluGetString*(name: GLEnum): cstring{.stdcall, importc, glu.}

-proc gluOrtho2D*(left, right, bottom, top: GLdouble){.stdcall, importc, glu.}

-proc gluPerspective*(fovy, aspect, zNear, zFar: GLdouble){.stdcall, importc, glu.}

-proc gluPickMatrix*(x, y, width, height: GLdouble, viewport: TVector4i){.stdcall, importc, glu.}

-proc gluLookAt*(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble){.

-    stdcall, importc, glu.}

-proc gluProject*(objx, objy, objz: GLdouble, modelMatrix: TGLMatrixd4, 

-                 projMatrix: TGLMatrixd4, viewport: TVector4i, 

-                 winx, winy, winz: PGLdouble): GLint{.stdcall, importc, glu.}

-proc gluUnProject*(winx, winy, winz: GLdouble, modelMatrix: TGLMatrixd4, 

-                   projMatrix: TGLMatrixd4, viewport: TVector4i, 

-                   objx, objy, objz: PGLdouble): GLint{.stdcall, importc, glu.}

-proc gluScaleImage*(format: GLEnum, widthin, heightin: GLint, typein: GLEnum, 

-                    datain: Pointer, widthout, heightout: GLint, 

-                    typeout: GLEnum, dataout: Pointer): GLint{.stdcall, importc, glu.}

-proc gluBuild1DMipmaps*(target: GLEnum, components, width: GLint, 

-                        format, atype: GLEnum, data: Pointer): GLint{.stdcall, importc, glu.}

-proc gluBuild2DMipmaps*(target: GLEnum, components, width, height: GLint, 

-                        format, atype: GLEnum, Data: Pointer): GLint{.stdcall, importc, glu.}

-proc gluNewQuadric*(): PGLUquadric{.stdcall, importc, glu.}

-proc gluDeleteQuadric*(state: PGLUquadric){.stdcall, importc, glu.}

-proc gluQuadricNormals*(quadObject: PGLUquadric, normals: GLEnum){.stdcall, importc, glu.}

-proc gluQuadricTexture*(quadObject: PGLUquadric, textureCoords: GLboolean){.

-    stdcall, importc, glu.}

-proc gluQuadricOrientation*(quadObject: PGLUquadric, orientation: GLEnum){.

-    stdcall, importc, glu.}

-proc gluQuadricDrawStyle*(quadObject: PGLUquadric, drawStyle: GLEnum){.stdcall, importc, glu.}

-proc gluCylinder*(quadObject: PGLUquadric, 

-                  baseRadius, topRadius, height: GLdouble, slices, stacks: GLint){.

-    stdcall, importc, glu.}

-proc gluDisk*(quadObject: PGLUquadric, innerRadius, outerRadius: GLdouble, 

-              slices, loops: GLint){.stdcall, importc, glu.}

-proc gluPartialDisk*(quadObject: PGLUquadric, 

-                     innerRadius, outerRadius: GLdouble, slices, loops: GLint, 

-                     startAngle, sweepAngle: GLdouble){.stdcall, importc, glu.}

-proc gluSphere*(quadObject: PGLUquadric, radius: GLdouble, slices, stacks: GLint){.

-    stdcall, importc, glu.}

-proc gluQuadricCallback*(quadObject: PGLUquadric, which: GLEnum, 

-                         fn: TGLUQuadricErrorProc){.stdcall, importc, glu.}

-proc gluNewTess*(): PGLUtesselator{.stdcall, importc, glu.}

-proc gluDeleteTess*(tess: PGLUtesselator){.stdcall, importc, glu.}

-proc gluTessBeginPolygon*(tess: PGLUtesselator, polygon_data: Pointer){.stdcall, importc, glu.}

-proc gluTessBeginContour*(tess: PGLUtesselator){.stdcall, importc, glu.}

-proc gluTessVertex*(tess: PGLUtesselator, coords: TGLArrayd3, data: Pointer){.

-    stdcall, importc, glu.}

-proc gluTessEndContour*(tess: PGLUtesselator){.stdcall, importc, glu.}

-proc gluTessEndPolygon*(tess: PGLUtesselator){.stdcall, importc, glu.}

-proc gluTessProperty*(tess: PGLUtesselator, which: GLEnum, value: GLdouble){.

-    stdcall, importc, glu.}

-proc gluTessNormal*(tess: PGLUtesselator, x, y, z: GLdouble){.stdcall, importc, glu.}

-proc gluTessCallback*(tess: PGLUtesselator, which: GLEnum, fn: Pointer){.stdcall, importc, glu.}

-proc gluGetTessProperty*(tess: PGLUtesselator, which: GLEnum, value: PGLdouble){.

-    stdcall, importc, glu.}

-proc gluNewNurbsRenderer*(): PGLUnurbs{.stdcall, importc, glu.}

-proc gluDeleteNurbsRenderer*(nobj: PGLUnurbs){.stdcall, importc, glu.}

-proc gluBeginSurface*(nobj: PGLUnurbs){.stdcall, importc, glu.}

-proc gluBeginCurve*(nobj: PGLUnurbs){.stdcall, importc, glu.}

-proc gluEndCurve*(nobj: PGLUnurbs){.stdcall, importc, glu.}

-proc gluEndSurface*(nobj: PGLUnurbs){.stdcall, importc, glu.}

-proc gluBeginTrim*(nobj: PGLUnurbs){.stdcall, importc, glu.}

-proc gluEndTrim*(nobj: PGLUnurbs){.stdcall, importc, glu.}

-proc gluPwlCurve*(nobj: PGLUnurbs, count: GLint, points: PGLfloat, 

-                  stride: GLint, atype: GLEnum){.stdcall, importc, glu.}

-proc gluNurbsCurve*(nobj: PGLUnurbs, nknots: GLint, knot: PGLfloat, 

-                    stride: GLint, ctlarray: PGLfloat, order: GLint, 

-                    atype: GLEnum){.stdcall, importc, glu.}

-proc gluNurbsSurface*(nobj: PGLUnurbs, sknot_count: GLint, sknot: PGLfloat, 

-                      tknot_count: GLint, tknot: PGLfloat, 

-                      s_stride, t_stride: GLint, ctlarray: PGLfloat, 

-                      sorder, torder: GLint, atype: GLEnum){.stdcall, importc, glu.}

-proc gluLoadSamplingMatrices*(nobj: PGLUnurbs, 

-                              modelMatrix, projMatrix: TGLMatrixf4, 

-                              viewport: TVector4i){.stdcall, importc, glu.}

-proc gluNurbsProperty*(nobj: PGLUnurbs, aproperty: GLEnum, value: GLfloat){.

-    stdcall, importc, glu.}

-proc gluGetNurbsProperty*(nobj: PGLUnurbs, aproperty: GLEnum, value: PGLfloat){.

-    stdcall, importc, glu.}

-proc gluNurbsCallback*(nobj: PGLUnurbs, which: GLEnum, fn: TGLUNurbsErrorProc){.

-    stdcall, importc, glu.}

-proc gluBeginPolygon*(tess: PGLUtesselator){.stdcall, importc, glu.}

-proc gluNextContour*(tess: PGLUtesselator, atype: GLEnum){.stdcall, importc, glu.}

-proc gluEndPolygon*(tess: PGLUtesselator){.stdcall, importc, glu.}

-

-type 

-  TRCOption* = enum 

-    opDoubleBuffered, opGDI, opStereo

-  TRCOptions* = set[TRCOption]

-

-var LastPixelFormat*: int

-

-when defined(windows): 

-  proc CreateRenderingContext*(DC: HDC, Options: TRCOptions, ColorBits, ZBits, 

-      StencilBits, AccumBits, AuxBuffers: int, Layer: int): HGLRC

-  proc DestroyRenderingContext*(RC: HGLRC)

-  proc ActivateRenderingContext*(DC: HDC, RC: HGLRC)

-  proc DeactivateRenderingContext*()

-# implementation

-

-proc GetExtensionString*(): string = 

-  when defined(windows):

-    result = $glGetString(GL_EXTENSIONS) & ' ' & $wglGetExtensionsStringEXT() & 

-        ' ' & $wglGetExtensionsStringARB(wglGetCurrentDC())

-  else:

-    result = $glGetString(GL_EXTENSIONS)

-

-when defined(windows): 

-  proc CreateRenderingContext(DC: HDC, Options: TRCOptions, ColorBits, ZBits, 

-      StencilBits, AccumBits, AuxBuffers: int, Layer: int): HGLRC = 

-    type

-      TPIXELFORMATDESCRIPTOR {.final, pure.} = object

-        nSize: int16

-        nVersion: int16

-        dwFlags: DWORD

-        iPixelType: int8

-        cColorBits: int8

-        cRedBits: int8

-        cRedShift: int8

-        cGreenBits: int8

-        cGreenShift: int8

-        cBlueBits: int8

-        cBlueShift: int8

-        cAlphaBits: int8

-        cAlphaShift: int8

-        cAccumBits: int8

-        cAccumRedBits: int8

-        cAccumGreenBits: int8

-        cAccumBlueBits: int8

-        cAccumAlphaBits: int8

-        cDepthBits: int8

-        cStencilBits: int8

-        cAuxBuffers: int8

-        iLayerType: int8

-        bReserved: int8

-        dwLayerMask: DWORD

-        dwVisibleMask: DWORD

-        dwDamageMask: DWORD

-

-    proc GetObjectType(h: HDC): DWORD{.stdcall, dynlib: "gdi32",

-                                           importc: "GetObjectType".}

-    proc ChoosePixelFormat(para1: HDC, para2: ptr TPIXELFORMATDESCRIPTOR): int32{.

-        stdcall, dynlib: "gdi32", importc: "ChoosePixelFormat".}

-    proc GetPixelFormat(para1: HDC): int32{.stdcall, dynlib: "gdi32",

-        importc: "GetPixelFormat".}

-    proc SetPixelFormat(para1: HDC, para2: int32, 

-        para3: ptr TPIXELFORMATDESCRIPTOR): WINBOOL{.

-        stdcall, dynlib: "gdi32", importc: "SetPixelFormat".}

-    proc DescribePixelFormat(para1: HDC, para2, para3: int32,

-                             para4: ptr TPIXELFORMATDESCRIPTOR) {.stdcall,

-        dynlib: "gdi32", importc: "DescribePixelFormat".}

-

-    const 

-      OBJ_MEMDC = 10'i32

-      OBJ_ENHMETADC = 12'i32

-      OBJ_METADC = 4'i32

-      PFD_DOUBLEBUFFER = 0x00000001

-      PFD_STEREO = 0x00000002

-      PFD_DRAW_TO_WINDOW = 0x00000004

-      PFD_DRAW_TO_BITMAP = 0x00000008

-      PFD_SUPPORT_GDI = 0x00000010

-      PFD_SUPPORT_OPENGL = 0x00000020

-      PFDtyp_RGBA = 0'i8

-      PFD_MAIN_PLANE = 0'i8

-      PFD_OVERLAY_PLANE = 1'i8

-      PFD_UNDERLAY_PLANE = int32(- 1)

-    var 

-      PFDescriptor: TPixelFormatDescriptor

-      PixelFormat: int32

-      AType: int32

-    PFDescriptor.nSize = SizeOf(PFDescriptor).int16

-    PFDescriptor.nVersion = 1'i16

-    PFDescriptor.dwFlags = PFD_SUPPORT_OPENGL

-    AType = GetObjectType(DC)

-    if AType == 0: OSError()

-    if AType == OBJ_MEMDC or AType == OBJ_METADC or AType == OBJ_ENHMETADC: 

-      PFDescriptor.dwFlags = PFDescriptor.dwFlags or PFD_DRAW_TO_BITMAP

-    else: 

-      PFDescriptor.dwFlags = PFDescriptor.dwFlags or PFD_DRAW_TO_WINDOW

-    if opDoubleBuffered in Options: 

-      PFDescriptor.dwFlags = PFDescriptor.dwFlags or PFD_DOUBLEBUFFER

-    if opGDI in Options: 

-      PFDescriptor.dwFlags = PFDescriptor.dwFlags or PFD_SUPPORT_GDI

-    if opStereo in Options: 

-      PFDescriptor.dwFlags = PFDescriptor.dwFlags or PFD_STEREO

-    PFDescriptor.iPixelType = PFDtyp_RGBA

-    PFDescriptor.cColorBits = ColorBits.toU8

-    PFDescriptor.cDepthBits = zBits.toU8

-    PFDescriptor.cStencilBits = StencilBits.toU8

-    PFDescriptor.cAccumBits = AccumBits.toU8

-    PFDescriptor.cAuxBuffers = AuxBuffers.toU8

-    if Layer == 0: PFDescriptor.iLayerType = PFD_MAIN_PLANE

-    elif Layer > 0: PFDescriptor.iLayerType = PFD_OVERLAY_PLANE

-    else: PFDescriptor.iLayerType = int8(PFD_UNDERLAY_PLANE)

-    PixelFormat = ChoosePixelFormat(DC, addr(PFDescriptor))

-    if PixelFormat == 0: OSError()

-    if GetPixelFormat(DC) != PixelFormat: 

-      if SetPixelFormat(DC, PixelFormat, addr(PFDescriptor)) == 0'i32: 

-        OSError()

-    DescribePixelFormat(DC, PixelFormat.int32, SizeOf(PFDescriptor).int32, 

-                        addr(PFDescriptor))

-    Result = wglCreateContext(DC)

-    if Result == 0: OSError()

-    else: LastPixelFormat = 0

-  

-  proc DestroyRenderingContext(RC: HGLRC) = 

-    discard wglDeleteContext(RC)

-

-  proc ActivateRenderingContext(DC: HDC, RC: HGLRC) = 

-    discard wglMakeCurrent(DC, RC)

-

-  proc DeactivateRenderingContext() = 

-    discard wglMakeCurrent(0, 0)

diff --git a/lib/wrappers/opengl/wingl.nim b/lib/wrappers/opengl/wingl.nim
deleted file mode 100644
index 7ed78f970..000000000
--- a/lib/wrappers/opengl/wingl.nim
+++ /dev/null
@@ -1,368 +0,0 @@
-import 
-  gl, windows
-
-proc wglGetExtensionsStringARB*(hdc: HDC): cstring{.dynlib: dllname, 
-    importc: "wglGetExtensionsStringARB".}
-const 
-  WGL_FRONT_COLOR_BUFFER_BIT_ARB* = 0x00000001
-  WGL_BACK_COLOR_BUFFER_BIT_ARB* = 0x00000002
-  WGL_DEPTH_BUFFER_BIT_ARB* = 0x00000004
-  WGL_STENCIL_BUFFER_BIT_ARB* = 0x00000008
-
-proc WinChoosePixelFormat*(DC: HDC, p2: PPixelFormatDescriptor): int{.
-    dynlib: "gdi32", importc: "ChoosePixelFormat".}
-proc wglCreateBufferRegionARB*(hDC: HDC, iLayerPlane: TGLint, uType: TGLuint): THandle{.
-    dynlib: dllname, importc: "wglCreateBufferRegionARB".}
-proc wglDeleteBufferRegionARB*(hRegion: THandle){.dynlib: dllname, 
-    importc: "wglDeleteBufferRegionARB".}
-proc wglSaveBufferRegionARB*(hRegion: THandle, x: TGLint, y: TGLint, 
-                             width: TGLint, height: TGLint): BOOL{.
-    dynlib: dllname, importc: "wglSaveBufferRegionARB".}
-proc wglRestoreBufferRegionARB*(hRegion: THandle, x: TGLint, y: TGLint, 
-                                width: TGLint, height: TGLint, xSrc: TGLint, 
-                                ySrc: TGLint): BOOL{.dynlib: dllname, 
-    importc: "wglRestoreBufferRegionARB".}
-proc wglAllocateMemoryNV*(size: TGLsizei, readFrequency: TGLfloat, 
-                          writeFrequency: TGLfloat, priority: TGLfloat): PGLvoid{.
-    dynlib: dllname, importc: "wglAllocateMemoryNV".}
-proc wglFreeMemoryNV*(pointer: PGLvoid){.dynlib: dllname, 
-    importc: "wglFreeMemoryNV".}
-const 
-  WGL_IMAGE_BUFFER_MIN_ACCESS_I3D* = 0x00000001
-  WGL_IMAGE_BUFFER_LOCK_I3D* = 0x00000002
-
-proc wglCreateImageBufferI3D*(hDC: HDC, dwSize: DWORD, uFlags: UINT): PGLvoid{.
-    dynlib: dllname, importc: "wglCreateImageBufferI3D".}
-proc wglDestroyImageBufferI3D*(hDC: HDC, pAddress: PGLvoid): BOOL{.
-    dynlib: dllname, importc: "wglDestroyImageBufferI3D".}
-proc wglAssociateImageBufferEventsI3D*(hdc: HDC, pEvent: PHandle, 
-                                       pAddress: PGLvoid, pSize: PDWORD, 
-                                       count: UINT): BOOL{.dynlib: dllname, 
-    importc: "wglAssociateImageBufferEventsI3D".}
-proc wglReleaseImageBufferEventsI3D*(hdc: HDC, pAddress: PGLvoid, count: UINT): BOOL{.
-    dynlib: dllname, importc: "wglReleaseImageBufferEventsI3D".}
-proc wglEnableFrameLockI3D*(): BOOL{.dynlib: dllname, 
-                                     importc: "wglEnableFrameLockI3D".}
-proc wglDisableFrameLockI3D*(): BOOL{.dynlib: dllname, 
-                                      importc: "wglDisableFrameLockI3D".}
-proc wglIsEnabledFrameLockI3D*(pFlag: PBOOL): BOOL{.dynlib: dllname, 
-    importc: "wglIsEnabledFrameLockI3D".}
-proc wglQueryFrameLockMasterI3D*(pFlag: PBOOL): BOOL{.dynlib: dllname, 
-    importc: "wglQueryFrameLockMasterI3D".}
-proc wglGetFrameUsageI3D*(pUsage: PGLfloat): BOOL{.dynlib: dllname, 
-    importc: "wglGetFrameUsageI3D".}
-proc wglBeginFrameTrackingI3D*(): BOOL{.dynlib: dllname, 
-                                        importc: "wglBeginFrameTrackingI3D".}
-proc wglEndFrameTrackingI3D*(): BOOL{.dynlib: dllname, 
-                                      importc: "wglEndFrameTrackingI3D".}
-proc wglQueryFrameTrackingI3D*(pFrameCount: PDWORD, pMissedFrames: PDWORD, 
-                               pLastMissedUsage: PGLfloat): BOOL{.
-    dynlib: dllname, importc: "wglQueryFrameTrackingI3D".}
-const 
-  WGL_NUMBER_PIXEL_FORMATS_ARB* = 0x00002000
-  WGL_DRAW_TO_WINDOW_ARB* = 0x00002001
-  WGL_DRAW_TO_BITMAP_ARB* = 0x00002002
-  WGL_ACCELERATION_ARB* = 0x00002003
-  WGL_NEED_PALETTE_ARB* = 0x00002004
-  WGL_NEED_SYSTEM_PALETTE_ARB* = 0x00002005
-  WGL_SWAP_LAYER_BUFFERS_ARB* = 0x00002006
-  WGL_SWAP_METHOD_ARB* = 0x00002007
-  WGL_NUMBER_OVERLAYS_ARB* = 0x00002008
-  WGL_NUMBER_UNDERLAYS_ARB* = 0x00002009
-  WGL_TRANSPARENT_ARB* = 0x0000200A
-  WGL_TRANSPARENT_RED_VALUE_ARB* = 0x00002037
-  WGL_TRANSPARENT_GREEN_VALUE_ARB* = 0x00002038
-  WGL_TRANSPARENT_BLUE_VALUE_ARB* = 0x00002039
-  WGL_TRANSPARENT_ALPHA_VALUE_ARB* = 0x0000203A
-  WGL_TRANSPARENT_INDEX_VALUE_ARB* = 0x0000203B
-  WGL_SHARE_DEPTH_ARB* = 0x0000200C
-  WGL_SHARE_STENCIL_ARB* = 0x0000200D
-  WGL_SHARE_ACCUM_ARB* = 0x0000200E
-  WGL_SUPPORT_GDI_ARB* = 0x0000200F
-  WGL_SUPPORT_OPENGL_ARB* = 0x00002010
-  WGL_DOUBLE_BUFFER_ARB* = 0x00002011
-  WGL_STEREO_ARB* = 0x00002012
-  WGL_PIXEL_TYPE_ARB* = 0x00002013
-  WGL_COLOR_BITS_ARB* = 0x00002014
-  WGL_RED_BITS_ARB* = 0x00002015
-  WGL_RED_SHIFT_ARB* = 0x00002016
-  WGL_GREEN_BITS_ARB* = 0x00002017
-  WGL_GREEN_SHIFT_ARB* = 0x00002018
-  WGL_BLUE_BITS_ARB* = 0x00002019
-  WGL_BLUE_SHIFT_ARB* = 0x0000201A
-  WGL_ALPHA_BITS_ARB* = 0x0000201B
-  WGL_ALPHA_SHIFT_ARB* = 0x0000201C
-  WGL_ACCUM_BITS_ARB* = 0x0000201D
-  WGL_ACCUM_RED_BITS_ARB* = 0x0000201E
-  WGL_ACCUM_GREEN_BITS_ARB* = 0x0000201F
-  WGL_ACCUM_BLUE_BITS_ARB* = 0x00002020
-  WGL_ACCUM_ALPHA_BITS_ARB* = 0x00002021
-  WGL_DEPTH_BITS_ARB* = 0x00002022
-  WGL_STENCIL_BITS_ARB* = 0x00002023
-  WGL_AUX_BUFFERS_ARB* = 0x00002024
-  WGL_NO_ACCELERATION_ARB* = 0x00002025
-  WGL_GENERIC_ACCELERATION_ARB* = 0x00002026
-  WGL_FULL_ACCELERATION_ARB* = 0x00002027
-  WGL_SWAP_EXCHANGE_ARB* = 0x00002028
-  WGL_SWAP_COPY_ARB* = 0x00002029
-  WGL_SWAP_UNDEFINED_ARB* = 0x0000202A
-  WGL_TYPE_RGBA_ARB* = 0x0000202B
-  WGL_TYPE_COLORINDEX_ARB* = 0x0000202C
-
-proc wglGetPixelFormatAttribivARB*(hdc: HDC, iPixelFormat: TGLint, 
-                                   iLayerPlane: TGLint, nAttributes: TGLuint, 
-                                   piAttributes: PGLint, piValues: PGLint): BOOL{.
-    dynlib: dllname, importc: "wglGetPixelFormatAttribivARB".}
-proc wglGetPixelFormatAttribfvARB*(hdc: HDC, iPixelFormat: TGLint, 
-                                   iLayerPlane: TGLint, nAttributes: TGLuint, 
-                                   piAttributes: PGLint, pfValues: PGLfloat): BOOL{.
-    dynlib: dllname, importc: "wglGetPixelFormatAttribfvARB".}
-proc wglChoosePixelFormatARB*(hdc: HDC, piAttribIList: PGLint, 
-                              pfAttribFList: PGLfloat, nMaxFormats: TGLuint, 
-                              piFormats: PGLint, nNumFormats: PGLuint): BOOL{.
-    dynlib: dllname, importc: "wglChoosePixelFormatARB".}
-const 
-  WGL_ERROR_INVALID_PIXEL_TYPE_ARB* = 0x00002043
-  WGL_ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB* = 0x00002054
-
-proc wglMakeContextCurrentARB*(hDrawDC: HDC, hReadDC: HDC, hglrc: HGLRC): BOOL{.
-    dynlib: dllname, importc: "wglMakeContextCurrentARB".}
-proc wglGetCurrentReadDCARB*(): HDC{.dynlib: dllname, 
-                                     importc: "wglGetCurrentReadDCARB".}
-const 
-  WGL_DRAW_TO_PBUFFER_ARB* = 0x0000202D # WGL_DRAW_TO_PBUFFER_ARB  { already defined }
-  WGL_MAX_PBUFFER_PIXELS_ARB* = 0x0000202E
-  WGL_MAX_PBUFFER_WIDTH_ARB* = 0x0000202F
-  WGL_MAX_PBUFFER_HEIGHT_ARB* = 0x00002030
-  WGL_PBUFFER_LARGEST_ARB* = 0x00002033
-  WGL_PBUFFER_WIDTH_ARB* = 0x00002034
-  WGL_PBUFFER_HEIGHT_ARB* = 0x00002035
-  WGL_PBUFFER_LOST_ARB* = 0x00002036
-
-proc wglCreatePbufferARB*(hDC: HDC, iPixelFormat: TGLint, iWidth: TGLint, 
-                          iHeight: TGLint, piAttribList: PGLint): THandle{.
-    dynlib: dllname, importc: "wglCreatePbufferARB".}
-proc wglGetPbufferDCARB*(hPbuffer: THandle): HDC{.dynlib: dllname, 
-    importc: "wglGetPbufferDCARB".}
-proc wglReleasePbufferDCARB*(hPbuffer: THandle, hDC: HDC): TGLint{.
-    dynlib: dllname, importc: "wglReleasePbufferDCARB".}
-proc wglDestroyPbufferARB*(hPbuffer: THandle): BOOL{.dynlib: dllname, 
-    importc: "wglDestroyPbufferARB".}
-proc wglQueryPbufferARB*(hPbuffer: THandle, iAttribute: TGLint, piValue: PGLint): BOOL{.
-    dynlib: dllname, importc: "wglQueryPbufferARB".}
-proc wglSwapIntervalEXT*(interval: TGLint): BOOL{.dynlib: dllname, 
-    importc: "wglSwapIntervalEXT".}
-proc wglGetSwapIntervalEXT*(): TGLint{.dynlib: dllname, 
-                                       importc: "wglGetSwapIntervalEXT".}
-const 
-  WGL_BIND_TO_TEXTURE_RGB_ARB* = 0x00002070
-  WGL_BIND_TO_TEXTURE_RGBA_ARB* = 0x00002071
-  WGL_TEXTURE_FORMAT_ARB* = 0x00002072
-  WGL_TEXTURE_TARGET_ARB* = 0x00002073
-  WGL_MIPMAP_TEXTURE_ARB* = 0x00002074
-  WGL_TEXTURE_RGB_ARB* = 0x00002075
-  WGL_TEXTURE_RGBA_ARB* = 0x00002076
-  WGL_NO_TEXTURE_ARB* = 0x00002077
-  WGL_TEXTURE_CUBE_MAP_ARB* = 0x00002078
-  WGL_TEXTURE_1D_ARB* = 0x00002079
-  WGL_TEXTURE_2D_ARB* = 0x0000207A # WGL_NO_TEXTURE_ARB  { already defined }
-  WGL_MIPMAP_LEVEL_ARB* = 0x0000207B
-  WGL_CUBE_MAP_FACE_ARB* = 0x0000207C
-  WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB* = 0x0000207D
-  WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB* = 0x0000207E
-  WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB* = 0x0000207F
-  WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB* = 0x00002080
-  WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB* = 0x00002081
-  WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB* = 0x00002082
-  WGL_FRONT_LEFT_ARB* = 0x00002083
-  WGL_FRONT_RIGHT_ARB* = 0x00002084
-  WGL_BACK_LEFT_ARB* = 0x00002085
-  WGL_BACK_RIGHT_ARB* = 0x00002086
-  WGL_AUX0_ARB* = 0x00002087
-  WGL_AUX1_ARB* = 0x00002088
-  WGL_AUX2_ARB* = 0x00002089
-  WGL_AUX3_ARB* = 0x0000208A
-  WGL_AUX4_ARB* = 0x0000208B
-  WGL_AUX5_ARB* = 0x0000208C
-  WGL_AUX6_ARB* = 0x0000208D
-  WGL_AUX7_ARB* = 0x0000208E
-  WGL_AUX8_ARB* = 0x0000208F
-  WGL_AUX9_ARB* = 0x00002090
-
-proc wglBindTexImageARB*(hPbuffer: THandle, iBuffer: TGLint): BOOL{.
-    dynlib: dllname, importc: "wglBindTexImageARB".}
-proc wglReleaseTexImageARB*(hPbuffer: THandle, iBuffer: TGLint): BOOL{.
-    dynlib: dllname, importc: "wglReleaseTexImageARB".}
-proc wglSetPbufferAttribARB*(hPbuffer: THandle, piAttribList: PGLint): BOOL{.
-    dynlib: dllname, importc: "wglSetPbufferAttribARB".}
-proc wglGetExtensionsStringEXT*(): cstring{.dynlib: dllname, 
-    importc: "wglGetExtensionsStringEXT".}
-proc wglMakeContextCurrentEXT*(hDrawDC: HDC, hReadDC: HDC, hglrc: HGLRC): BOOL{.
-    dynlib: dllname, importc: "wglMakeContextCurrentEXT".}
-proc wglGetCurrentReadDCEXT*(): HDC{.dynlib: dllname, 
-                                     importc: "wglGetCurrentReadDCEXT".}
-const 
-  WGL_DRAW_TO_PBUFFER_EXT* = 0x0000202D
-  WGL_MAX_PBUFFER_PIXELS_EXT* = 0x0000202E
-  WGL_MAX_PBUFFER_WIDTH_EXT* = 0x0000202F
-  WGL_MAX_PBUFFER_HEIGHT_EXT* = 0x00002030
-  WGL_OPTIMAL_PBUFFER_WIDTH_EXT* = 0x00002031
-  WGL_OPTIMAL_PBUFFER_HEIGHT_EXT* = 0x00002032
-  WGL_PBUFFER_LARGEST_EXT* = 0x00002033
-  WGL_PBUFFER_WIDTH_EXT* = 0x00002034
-  WGL_PBUFFER_HEIGHT_EXT* = 0x00002035
-
-proc wglCreatePbufferEXT*(hDC: HDC, iPixelFormat: TGLint, iWidth: TGLint, 
-                          iHeight: TGLint, piAttribList: PGLint): THandle{.
-    dynlib: dllname, importc: "wglCreatePbufferEXT".}
-proc wglGetPbufferDCEXT*(hPbuffer: THandle): HDC{.dynlib: dllname, 
-    importc: "wglGetPbufferDCEXT".}
-proc wglReleasePbufferDCEXT*(hPbuffer: THandle, hDC: HDC): TGLint{.
-    dynlib: dllname, importc: "wglReleasePbufferDCEXT".}
-proc wglDestroyPbufferEXT*(hPbuffer: THandle): BOOL{.dynlib: dllname, 
-    importc: "wglDestroyPbufferEXT".}
-proc wglQueryPbufferEXT*(hPbuffer: THandle, iAttribute: TGLint, piValue: PGLint): BOOL{.
-    dynlib: dllname, importc: "wglQueryPbufferEXT".}
-const 
-  WGL_NUMBER_PIXEL_FORMATS_EXT* = 0x00002000
-  WGL_DRAW_TO_WINDOW_EXT* = 0x00002001
-  WGL_DRAW_TO_BITMAP_EXT* = 0x00002002
-  WGL_ACCELERATION_EXT* = 0x00002003
-  WGL_NEED_PALETTE_EXT* = 0x00002004
-  WGL_NEED_SYSTEM_PALETTE_EXT* = 0x00002005
-  WGL_SWAP_LAYER_BUFFERS_EXT* = 0x00002006
-  WGL_SWAP_METHOD_EXT* = 0x00002007
-  WGL_NUMBER_OVERLAYS_EXT* = 0x00002008
-  WGL_NUMBER_UNDERLAYS_EXT* = 0x00002009
-  WGL_TRANSPARENT_EXT* = 0x0000200A
-  WGL_TRANSPARENT_VALUE_EXT* = 0x0000200B
-  WGL_SHARE_DEPTH_EXT* = 0x0000200C
-  WGL_SHARE_STENCIL_EXT* = 0x0000200D
-  WGL_SHARE_ACCUM_EXT* = 0x0000200E
-  WGL_SUPPORT_GDI_EXT* = 0x0000200F
-  WGL_SUPPORT_OPENGL_EXT* = 0x00002010
-  WGL_DOUBLE_BUFFER_EXT* = 0x00002011
-  WGL_STEREO_EXT* = 0x00002012
-  WGL_PIXEL_TYPE_EXT* = 0x00002013
-  WGL_COLOR_BITS_EXT* = 0x00002014
-  WGL_RED_BITS_EXT* = 0x00002015
-  WGL_RED_SHIFT_EXT* = 0x00002016
-  WGL_GREEN_BITS_EXT* = 0x00002017
-  WGL_GREEN_SHIFT_EXT* = 0x00002018
-  WGL_BLUE_BITS_EXT* = 0x00002019
-  WGL_BLUE_SHIFT_EXT* = 0x0000201A
-  WGL_ALPHA_BITS_EXT* = 0x0000201B
-  WGL_ALPHA_SHIFT_EXT* = 0x0000201C
-  WGL_ACCUM_BITS_EXT* = 0x0000201D
-  WGL_ACCUM_RED_BITS_EXT* = 0x0000201E
-  WGL_ACCUM_GREEN_BITS_EXT* = 0x0000201F
-  WGL_ACCUM_BLUE_BITS_EXT* = 0x00002020
-  WGL_ACCUM_ALPHA_BITS_EXT* = 0x00002021
-  WGL_DEPTH_BITS_EXT* = 0x00002022
-  WGL_STENCIL_BITS_EXT* = 0x00002023
-  WGL_AUX_BUFFERS_EXT* = 0x00002024
-  WGL_NO_ACCELERATION_EXT* = 0x00002025
-  WGL_GENERIC_ACCELERATION_EXT* = 0x00002026
-  WGL_FULL_ACCELERATION_EXT* = 0x00002027
-  WGL_SWAP_EXCHANGE_EXT* = 0x00002028
-  WGL_SWAP_COPY_EXT* = 0x00002029
-  WGL_SWAP_UNDEFINED_EXT* = 0x0000202A
-  WGL_TYPE_RGBA_EXT* = 0x0000202B
-  WGL_TYPE_COLORINDEX_EXT* = 0x0000202C
-
-proc wglGetPixelFormatAttribivEXT*(hdc: HDC, iPixelFormat: TGLint, 
-                                   iLayerPlane: TGLint, nAttributes: TGLuint, 
-                                   piAttributes: PGLint, piValues: PGLint): BOOL{.
-    dynlib: dllname, importc: "wglGetPixelFormatAttribivEXT".}
-proc wglGetPixelFormatAttribfvEXT*(hdc: HDC, iPixelFormat: TGLint, 
-                                   iLayerPlane: TGLint, nAttributes: TGLuint, 
-                                   piAttributes: PGLint, pfValues: PGLfloat): BOOL{.
-    dynlib: dllname, importc: "wglGetPixelFormatAttribfvEXT".}
-proc wglChoosePixelFormatEXT*(hdc: HDC, piAttribIList: PGLint, 
-                              pfAttribFList: PGLfloat, nMaxFormats: TGLuint, 
-                              piFormats: PGLint, nNumFormats: PGLuint): BOOL{.
-    dynlib: dllname, importc: "wglChoosePixelFormatEXT".}
-const 
-  WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D* = 0x00002050
-  WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D* = 0x00002051
-  WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D* = 0x00002052
-  WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D* = 0x00002053
-
-proc wglGetDigitalVideoParametersI3D*(hDC: HDC, iAttribute: TGLint, 
-                                      piValue: PGLint): BOOL{.dynlib: dllname, 
-    importc: "wglGetDigitalVideoParametersI3D".}
-proc wglSetDigitalVideoParametersI3D*(hDC: HDC, iAttribute: TGLint, 
-                                      piValue: PGLint): BOOL{.dynlib: dllname, 
-    importc: "wglSetDigitalVideoParametersI3D".}
-const 
-  WGL_GAMMA_TABLE_SIZE_I3D* = 0x0000204E
-  WGL_GAMMA_EXCLUDE_DESKTOP_I3D* = 0x0000204F
-
-proc wglGetGammaTableParametersI3D*(hDC: HDC, iAttribute: TGLint, 
-                                    piValue: PGLint): BOOL{.dynlib: dllname, 
-    importc: "wglGetGammaTableParametersI3D".}
-proc wglSetGammaTableParametersI3D*(hDC: HDC, iAttribute: TGLint, 
-                                    piValue: PGLint): BOOL{.dynlib: dllname, 
-    importc: "wglSetGammaTableParametersI3D".}
-proc wglGetGammaTableI3D*(hDC: HDC, iEntries: TGLint, puRed: PGLUSHORT, 
-                          puGreen: PGLUSHORT, puBlue: PGLUSHORT): BOOL{.
-    dynlib: dllname, importc: "wglGetGammaTableI3D".}
-proc wglSetGammaTableI3D*(hDC: HDC, iEntries: TGLint, puRed: PGLUSHORT, 
-                          puGreen: PGLUSHORT, puBlue: PGLUSHORT): BOOL{.
-    dynlib: dllname, importc: "wglSetGammaTableI3D".}
-const 
-  WGL_GENLOCK_SOURCE_MULTIVIEW_I3D* = 0x00002044
-  WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D* = 0x00002045
-  WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D* = 0x00002046
-  WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D* = 0x00002047
-  WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D* = 0x00002048
-  WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D* = 0x00002049
-  WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D* = 0x0000204A
-  WGL_GENLOCK_SOURCE_EDGE_RISING_I3D* = 0x0000204B
-  WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D* = 0x0000204C
-  WGL_FLOAT_COMPONENTS_NV* = 0x000020B0
-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV* = 0x000020B1
-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV* = 0x000020B2
-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV* = 0x000020B3
-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV* = 0x000020B4
-  WGL_TEXTURE_FLOAT_R_NV* = 0x000020B5
-  WGL_TEXTURE_FLOAT_RG_NV* = 0x000020B6
-  WGL_TEXTURE_FLOAT_RGB_NV* = 0x000020B7
-  WGL_TEXTURE_FLOAT_RGBA_NV* = 0x000020B8
-
-proc wglEnableGenlockI3D*(hDC: HDC): BOOL{.dynlib: dllname, 
-    importc: "wglEnableGenlockI3D".}
-proc wglDisableGenlockI3D*(hDC: HDC): BOOL{.dynlib: dllname, 
-    importc: "wglDisableGenlockI3D".}
-proc wglIsEnabledGenlockI3D*(hDC: HDC, pFlag: PBOOL): BOOL{.dynlib: dllname, 
-    importc: "wglIsEnabledGenlockI3D".}
-proc wglGenlockSourceI3D*(hDC: HDC, uSource: TGLuint): BOOL{.dynlib: dllname, 
-    importc: "wglGenlockSourceI3D".}
-proc wglGetGenlockSourceI3D*(hDC: HDC, uSource: PGLUINT): BOOL{.dynlib: dllname, 
-    importc: "wglGetGenlockSourceI3D".}
-proc wglGenlockSourceEdgeI3D*(hDC: HDC, uEdge: TGLuint): BOOL{.dynlib: dllname, 
-    importc: "wglGenlockSourceEdgeI3D".}
-proc wglGetGenlockSourceEdgeI3D*(hDC: HDC, uEdge: PGLUINT): BOOL{.
-    dynlib: dllname, importc: "wglGetGenlockSourceEdgeI3D".}
-proc wglGenlockSampleRateI3D*(hDC: HDC, uRate: TGLuint): BOOL{.dynlib: dllname, 
-    importc: "wglGenlockSampleRateI3D".}
-proc wglGetGenlockSampleRateI3D*(hDC: HDC, uRate: PGLUINT): BOOL{.
-    dynlib: dllname, importc: "wglGetGenlockSampleRateI3D".}
-proc wglGenlockSourceDelayI3D*(hDC: HDC, uDelay: TGLuint): BOOL{.
-    dynlib: dllname, importc: "wglGenlockSourceDelayI3D".}
-proc wglGetGenlockSourceDelayI3D*(hDC: HDC, uDelay: PGLUINT): BOOL{.
-    dynlib: dllname, importc: "wglGetGenlockSourceDelayI3D".}
-proc wglQueryGenlockMaxSourceDelayI3D*(hDC: HDC, uMaxLineDelay: PGLUINT, 
-                                       uMaxPixelDelay: PGLUINT): BOOL{.
-    dynlib: dllname, importc: "wglQueryGenlockMaxSourceDelayI3D".}
-const 
-  WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV* = 0x000020A0
-  WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV* = 0x000020A1
-  WGL_TEXTURE_RECTANGLE_NV* = 0x000020A2
-
-const 
-  WGL_RGBA_FLOAT_MODE_ATI* = 0x00008820
-  WGL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI* = 0x00008835
-  WGL_TYPE_RGBA_FLOAT_ATI* = 0x000021A0
-
-# implementation
diff --git a/lib/wrappers/python.nim b/lib/wrappers/python.nim
deleted file mode 100644
index 3e6543765..000000000
--- a/lib/wrappers/python.nim
+++ /dev/null
@@ -1,1587 +0,0 @@
-#
-#    Light-weight binding for the Python interpreter
-#       (c) 2010 Andreas Rumpf 
-#    Based on 'PythonEngine' module by Dr. Dietmar Budelsky
-#
-#
-#************************************************************************
-#                                                                        
-# Module:  Unit 'PythonEngine'     Copyright (c) 1997                    
-#                                                                        
-# Version: 3.0                     Dr. Dietmar Budelsky                  
-# Sub-Version: 0.25                dbudelsky@web.de                      
-#                                  Germany                               
-#                                                                        
-#                                  Morgan Martinet                       
-#                                  4721 rue Brebeuf                      
-#                                  H2J 3L2 MONTREAL (QC)                 
-#                                  CANADA                                
-#                                  e-mail: mmm@free.fr                   
-#                                                                        
-#  look our page at: http://www.multimania.com/marat                     
-#************************************************************************
-#  Functionality:  Delphi Components that provide an interface to the    
-#                  Python language (see python.txt for more infos on     
-#                  Python itself).                                       
-#                                                                        
-#************************************************************************
-#  Contributors:                                                         
-#      Grzegorz Makarewicz (mak@mikroplan.com.pl)                        
-#      Andrew Robinson (andy@hps1.demon.co.uk)                           
-#      Mark Watts(mark_watts@hotmail.com)                                
-#      Olivier Deckmyn (olivier.deckmyn@mail.dotcom.fr)                  
-#      Sigve Tjora (public@tjora.no)                                     
-#      Mark Derricutt (mark@talios.com)                                  
-#      Igor E. Poteryaev (jah@mail.ru)                                   
-#      Yuri Filimonov (fil65@mail.ru)                                    
-#      Stefan Hoffmeister (Stefan.Hoffmeister@Econos.de)                 
-#************************************************************************
-# This source code is distributed with no WARRANTY, for no reason or use.
-# Everyone is allowed to use and change this code free for his own tasks 
-# and projects, as long as this header and its copyright text is intact. 
-# For changed versions of this code, which are public distributed the    
-# following additional conditions have to be fullfilled:                 
-# 1) The header has to contain a comment on the change and the author of 
-#    it.                                                                 
-# 2) A copy of the changed source has to be sent to the above E-Mail     
-#    address or my then valid address, if this is possible to the        
-#    author.                                                             
-# The second condition has the target to maintain an up to date central  
-# version of the component. If this condition is not acceptable for      
-# confidential or legal reasons, everyone is free to derive a component  
-# or to generate a diff file to my or other original sources.            
-# Dr. Dietmar Budelsky, 1997-11-17                                       
-#************************************************************************
-
-{.deadCodeElim: on.}
-
-import 
-  dynlib
-
-
-when defined(windows): 
-  const dllname = "python(27|26|25|24|23|22|21|20|16|15).dll"
-elif defined(macosx):
-  const dllname = "libpython(2.7|2.6|2.5|2.4|2.3|2.2|2.1|2.0|1.6|1.5).dylib"
-else: 
-  const dllver = ".1"
-  const dllname = "libpython(2.7|2.6|2.5|2.4|2.3|2.2|2.1|2.0|1.6|1.5).so" & 
-                  dllver
-
-  
-const 
-  PYT_METHOD_BUFFER_INCREASE* = 10
-  PYT_MEMBER_BUFFER_INCREASE* = 10
-  PYT_GETSET_BUFFER_INCREASE* = 10
-  METH_VARARGS* = 0x0001
-  METH_KEYWORDS* = 0x0002 # Masks for the co_flags field of PyCodeObject
-  CO_OPTIMIZED* = 0x0001
-  CO_NEWLOCALS* = 0x0002
-  CO_VARARGS* = 0x0004
-  CO_VARKEYWORDS* = 0x0008
-
-type                          # Rich comparison opcodes introduced in version 2.1
-  TRichComparisonOpcode* = enum 
-    pyLT, pyLE, pyEQ, pyNE, pyGT, pyGE
-
-const
-  Py_TPFLAGS_HAVE_GETCHARBUFFER* = (1 shl 0) # PySequenceMethods contains sq_contains
-  Py_TPFLAGS_HAVE_SEQUENCE_IN* = (1 shl 1) # Objects which participate in garbage collection (see objimp.h)
-  Py_TPFLAGS_GC* = (1 shl 2)  # PySequenceMethods and PyNumberMethods contain in-place operators
-  Py_TPFLAGS_HAVE_INPLACEOPS* = (1 shl 3) # PyNumberMethods do their own coercion */
-  Py_TPFLAGS_CHECKTYPES* = (1 shl 4)
-  Py_TPFLAGS_HAVE_RICHCOMPARE* = (1 shl 5) # Objects which are weakly referencable if their tp_weaklistoffset is >0
-                                           # XXX Should this have the same value as Py_TPFLAGS_HAVE_RICHCOMPARE?
-                                           # These both indicate a feature that appeared in the same alpha release.
-  Py_TPFLAGS_HAVE_WEAKREFS* = (1 shl 6) # tp_iter is defined
-  Py_TPFLAGS_HAVE_ITER* = (1 shl 7) # New members introduced by Python 2.2 exist
-  Py_TPFLAGS_HAVE_CLASS* = (1 shl 8) # Set if the type object is dynamically allocated
-  Py_TPFLAGS_HEAPTYPE* = (1 shl 9) # Set if the type allows subclassing
-  Py_TPFLAGS_BASETYPE* = (1 shl 10) # Set if the type is 'ready' -- fully initialized
-  Py_TPFLAGS_READY* = (1 shl 12) # Set while the type is being 'readied', to prevent recursive ready calls
-  Py_TPFLAGS_READYING* = (1 shl 13) # Objects support garbage collection (see objimp.h)
-  Py_TPFLAGS_HAVE_GC* = (1 shl 14)
-  Py_TPFLAGS_DEFAULT* = Py_TPFLAGS_HAVE_GETCHARBUFFER or
-      Py_TPFLAGS_HAVE_SEQUENCE_IN or Py_TPFLAGS_HAVE_INPLACEOPS or
-      Py_TPFLAGS_HAVE_RICHCOMPARE or Py_TPFLAGS_HAVE_WEAKREFS or
-      Py_TPFLAGS_HAVE_ITER or Py_TPFLAGS_HAVE_CLASS 
-
-type 
-  TPFlag* = enum 
-    tpfHaveGetCharBuffer, tpfHaveSequenceIn, tpfGC, tpfHaveInplaceOps, 
-    tpfCheckTypes, tpfHaveRichCompare, tpfHaveWeakRefs, tpfHaveIter, 
-    tpfHaveClass, tpfHeapType, tpfBaseType, tpfReady, tpfReadying, tpfHaveGC
-  TPFlags* = set[TPFlag]
-
-const 
-  TPFLAGS_DEFAULT* = {tpfHaveGetCharBuffer, tpfHaveSequenceIn, 
-    tpfHaveInplaceOps, tpfHaveRichCompare, tpfHaveWeakRefs, tpfHaveIter, 
-    tpfHaveClass}
-
-const # Python opcodes
-  single_input* = 256 
-  file_input* = 257
-  eval_input* = 258
-  funcdef* = 259
-  parameters* = 260
-  varargslist* = 261
-  fpdef* = 262
-  fplist* = 263
-  stmt* = 264
-  simple_stmt* = 265
-  small_stmt* = 266
-  expr_stmt* = 267
-  augassign* = 268
-  print_stmt* = 269
-  del_stmt* = 270
-  pass_stmt* = 271
-  flow_stmt* = 272
-  break_stmt* = 273
-  continue_stmt* = 274
-  return_stmt* = 275
-  raise_stmt* = 276
-  import_stmt* = 277
-  import_as_name* = 278
-  dotted_as_name* = 279
-  dotted_name* = 280
-  global_stmt* = 281
-  exec_stmt* = 282
-  assert_stmt* = 283
-  compound_stmt* = 284
-  if_stmt* = 285
-  while_stmt* = 286
-  for_stmt* = 287
-  try_stmt* = 288
-  except_clause* = 289
-  suite* = 290
-  test* = 291
-  and_test* = 291
-  not_test* = 293
-  comparison* = 294
-  comp_op* = 295
-  expr* = 296
-  xor_expr* = 297
-  and_expr* = 298
-  shift_expr* = 299
-  arith_expr* = 300
-  term* = 301
-  factor* = 302
-  power* = 303
-  atom* = 304
-  listmaker* = 305
-  lambdef* = 306
-  trailer* = 307
-  subscriptlist* = 308
-  subscript* = 309
-  sliceop* = 310
-  exprlist* = 311
-  testlist* = 312
-  dictmaker* = 313
-  classdef* = 314
-  arglist* = 315
-  argument* = 316
-  list_iter* = 317
-  list_for* = 318
-  list_if* = 319
-
-const 
-  T_SHORT* = 0
-  T_INT* = 1
-  T_LONG* = 2
-  T_FLOAT* = 3
-  T_DOUBLE* = 4
-  T_STRING* = 5
-  T_OBJECT* = 6
-  T_CHAR* = 7                 # 1-character string
-  T_BYTE* = 8                 # 8-bit signed int
-  T_UBYTE* = 9
-  T_USHORT* = 10
-  T_UINT* = 11
-  T_ULONG* = 12
-  T_STRING_INPLACE* = 13
-  T_OBJECT_EX* = 16 
-  READONLY* = 1
-  RO* = READONLY              # Shorthand 
-  READ_RESTRICTED* = 2
-  WRITE_RESTRICTED* = 4
-  RESTRICTED* = (READ_RESTRICTED or WRITE_RESTRICTED)
-
-type 
-  TPyMemberType* = enum 
-    mtShort, mtInt, mtLong, mtFloat, mtDouble, mtString, mtObject, mtChar, 
-    mtByte, mtUByte, mtUShort, mtUInt, mtULong, mtStringInplace, mtObjectEx
-  TPyMemberFlag* = enum 
-    mfDefault, mfReadOnly, mfReadRestricted, mfWriteRestricted, mfRestricted
-
-type 
-  PInt* = ptr int
-
-#  PLong* = ptr int32
-#  PFloat* = ptr float32
-#  PShort* = ptr int8
-  
-type 
-  PP_frozen* = ptr Pfrozen
-  P_frozen* = ptr Tfrozen
-  PPyObject* = ptr TPyObject
-  PPPyObject* = ptr PPyObject
-  PPPPyObject* = ptr PPPyObject
-  PPyIntObject* = ptr TPyIntObject
-  PPyTypeObject* = ptr TPyTypeObject
-  PPySliceObject* = ptr TPySliceObject
-  TPyCFunction* = proc (self, args: PPyObject): PPyObject{.cdecl.}
-  Tunaryfunc* = proc (ob1: PPyObject): PPyObject{.cdecl.}
-  Tbinaryfunc* = proc (ob1, ob2: PPyObject): PPyObject{.cdecl.}
-  Tternaryfunc* = proc (ob1, ob2, ob3: PPyObject): PPyObject{.cdecl.}
-  Tinquiry* = proc (ob1: PPyObject): int{.cdecl.}
-  Tcoercion* = proc (ob1, ob2: PPPyObject): int{.cdecl.}
-  Tintargfunc* = proc (ob1: PPyObject, i: int): PPyObject{.cdecl.}
-  Tintintargfunc* = proc (ob1: PPyObject, i1, i2: int): PPyObject{.cdecl.}
-  Tintobjargproc* = proc (ob1: PPyObject, i: int, ob2: PPyObject): int{.cdecl.}
-  Tintintobjargproc* = proc (ob1: PPyObject, i1, i2: int, ob2: PPyObject): int{.
-      cdecl.}
-  Tobjobjargproc* = proc (ob1, ob2, ob3: PPyObject): int{.cdecl.}
-  Tpydestructor* = proc (ob: PPyObject){.cdecl.}
-  Tprintfunc* = proc (ob: PPyObject, f: TFile, i: int): int{.cdecl.}
-  Tgetattrfunc* = proc (ob1: PPyObject, name: cstring): PPyObject{.cdecl.}
-  Tsetattrfunc* = proc (ob1: PPyObject, name: cstring, ob2: PPyObject): int{.
-      cdecl.}
-  Tcmpfunc* = proc (ob1, ob2: PPyObject): int{.cdecl.}
-  Treprfunc* = proc (ob: PPyObject): PPyObject{.cdecl.}
-  Thashfunc* = proc (ob: PPyObject): int32{.cdecl.}
-  Tgetattrofunc* = proc (ob1, ob2: PPyObject): PPyObject{.cdecl.}
-  Tsetattrofunc* = proc (ob1, ob2, ob3: PPyObject): int{.cdecl.} 
-  Tgetreadbufferproc* = proc (ob1: PPyObject, i: int, p: Pointer): int{.cdecl.}
-  Tgetwritebufferproc* = proc (ob1: PPyObject, i: int, p: Pointer): int{.cdecl.}
-  Tgetsegcountproc* = proc (ob1: PPyObject, i: int): int{.cdecl.}
-  Tgetcharbufferproc* = proc (ob1: PPyObject, i: int, pstr: cstring): int{.cdecl.}
-  Tobjobjproc* = proc (ob1, ob2: PPyObject): int{.cdecl.}
-  Tvisitproc* = proc (ob1: PPyObject, p: Pointer): int{.cdecl.}
-  Ttraverseproc* = proc (ob1: PPyObject, prc: TVisitproc, p: Pointer): int{.
-      cdecl.}
-  Trichcmpfunc* = proc (ob1, ob2: PPyObject, i: int): PPyObject{.cdecl.}
-  Tgetiterfunc* = proc (ob1: PPyObject): PPyObject{.cdecl.}
-  Titernextfunc* = proc (ob1: PPyObject): PPyObject{.cdecl.}
-  Tdescrgetfunc* = proc (ob1, ob2, ob3: PPyObject): PPyObject{.cdecl.}
-  Tdescrsetfunc* = proc (ob1, ob2, ob3: PPyObject): int{.cdecl.}
-  Tinitproc* = proc (self, args, kwds: PPyObject): int{.cdecl.}
-  Tnewfunc* = proc (subtype: PPyTypeObject, args, kwds: PPyObject): PPyObject{.
-      cdecl.}
-  Tallocfunc* = proc (self: PPyTypeObject, nitems: int): PPyObject{.cdecl.}
-  TPyNumberMethods*{.final.} = object 
-    nb_add*: Tbinaryfunc
-    nb_substract*: Tbinaryfunc
-    nb_multiply*: Tbinaryfunc
-    nb_divide*: Tbinaryfunc
-    nb_remainder*: Tbinaryfunc
-    nb_divmod*: Tbinaryfunc
-    nb_power*: Tternaryfunc
-    nb_negative*: Tunaryfunc
-    nb_positive*: Tunaryfunc
-    nb_absolute*: Tunaryfunc
-    nb_nonzero*: Tinquiry
-    nb_invert*: Tunaryfunc
-    nb_lshift*: Tbinaryfunc
-    nb_rshift*: Tbinaryfunc
-    nb_and*: Tbinaryfunc
-    nb_xor*: Tbinaryfunc
-    nb_or*: Tbinaryfunc
-    nb_coerce*: Tcoercion
-    nb_int*: Tunaryfunc
-    nb_long*: Tunaryfunc
-    nb_float*: Tunaryfunc
-    nb_oct*: Tunaryfunc
-    nb_hex*: Tunaryfunc       #/ jah 29-sep-2000: updated for python 2.0
-                              #/                   added from .h
-    nb_inplace_add*: Tbinaryfunc
-    nb_inplace_subtract*: Tbinaryfunc
-    nb_inplace_multiply*: Tbinaryfunc
-    nb_inplace_divide*: Tbinaryfunc
-    nb_inplace_remainder*: Tbinaryfunc
-    nb_inplace_power*: Tternaryfunc
-    nb_inplace_lshift*: Tbinaryfunc
-    nb_inplace_rshift*: Tbinaryfunc
-    nb_inplace_and*: Tbinaryfunc
-    nb_inplace_xor*: Tbinaryfunc
-    nb_inplace_or*: Tbinaryfunc # Added in release 2.2
-                                # The following require the Py_TPFLAGS_HAVE_CLASS flag
-    nb_floor_divide*: Tbinaryfunc
-    nb_true_divide*: Tbinaryfunc
-    nb_inplace_floor_divide*: Tbinaryfunc
-    nb_inplace_true_divide*: Tbinaryfunc
-
-  PPyNumberMethods* = ptr TPyNumberMethods
-  TPySequenceMethods*{.final.} = object 
-    sq_length*: Tinquiry
-    sq_concat*: Tbinaryfunc
-    sq_repeat*: Tintargfunc
-    sq_item*: Tintargfunc
-    sq_slice*: Tintintargfunc
-    sq_ass_item*: Tintobjargproc
-    sq_ass_slice*: Tintintobjargproc 
-    sq_contains*: Tobjobjproc
-    sq_inplace_concat*: Tbinaryfunc
-    sq_inplace_repeat*: Tintargfunc
-
-  PPySequenceMethods* = ptr TPySequenceMethods
-  TPyMappingMethods*{.final.} = object 
-    mp_length*: Tinquiry
-    mp_subscript*: Tbinaryfunc
-    mp_ass_subscript*: Tobjobjargproc
-
-  PPyMappingMethods* = ptr TPyMappingMethods 
-  TPyBufferProcs*{.final.} = object 
-    bf_getreadbuffer*: Tgetreadbufferproc
-    bf_getwritebuffer*: Tgetwritebufferproc
-    bf_getsegcount*: Tgetsegcountproc
-    bf_getcharbuffer*: Tgetcharbufferproc
-
-  PPyBufferProcs* = ptr TPyBufferProcs
-  TPy_complex*{.final.} = object 
-    float*: float64
-    imag*: float64
-
-  TPyObject*{.pure, inheritable.} = object 
-    ob_refcnt*: int
-    ob_type*: PPyTypeObject
-
-  TPyIntObject* = object of TPyObject
-    ob_ival*: int32
-
-  PByte* = ptr int8
-  Tfrozen*{.final.} = object 
-    name*: cstring
-    code*: PByte
-    size*: int
-
-  TPySliceObject* = object of TPyObject
-    start*, stop*, step*: PPyObject
-
-  PPyMethodDef* = ptr TPyMethodDef
-  TPyMethodDef*{.final.} = object  # structmember.h
-    ml_name*: cstring
-    ml_meth*: TPyCFunction
-    ml_flags*: int
-    ml_doc*: cstring
-
-  PPyMemberDef* = ptr TPyMemberDef
-  TPyMemberDef*{.final.} = object  # descrobject.h
-                                   # Descriptors
-    name*: cstring
-    theType*: int
-    offset*: int
-    flags*: int
-    doc*: cstring
-
-  Tgetter* = proc (obj: PPyObject, context: Pointer): PPyObject{.cdecl.}
-  Tsetter* = proc (obj, value: PPyObject, context: Pointer): int{.cdecl.}
-  PPyGetSetDef* = ptr TPyGetSetDef
-  TPyGetSetDef*{.final.} = object 
-    name*: cstring
-    get*: Tgetter
-    setter*: Tsetter
-    doc*: cstring
-    closure*: Pointer
-
-  Twrapperfunc* = proc (self, args: PPyObject, wrapped: Pointer): PPyObject{.
-      cdecl.}
-  pwrapperbase* = ptr Twrapperbase
-  Twrapperbase*{.final.} = object  # Various kinds of descriptor objects
-                                   ##define PyDescr_COMMON \
-                                   #          PyObject_HEAD \
-                                   #          PyTypeObject *d_type; \
-                                   #          PyObject *d_name
-                                   #  
-    name*: cstring
-    wrapper*: Twrapperfunc
-    doc*: cstring
-
-  PPyDescrObject* = ptr TPyDescrObject
-  TPyDescrObject* = object of TPyObject
-    d_type*: PPyTypeObject
-    d_name*: PPyObject
-
-  PPyMethodDescrObject* = ptr TPyMethodDescrObject
-  TPyMethodDescrObject* = object of TPyDescrObject
-    d_method*: PPyMethodDef
-
-  PPyMemberDescrObject* = ptr TPyMemberDescrObject
-  TPyMemberDescrObject* = object of TPyDescrObject
-    d_member*: PPyMemberDef
-
-  PPyGetSetDescrObject* = ptr TPyGetSetDescrObject
-  TPyGetSetDescrObject* = object of TPyDescrObject
-    d_getset*: PPyGetSetDef
-
-  PPyWrapperDescrObject* = ptr TPyWrapperDescrObject
-  TPyWrapperDescrObject* = object of TPyDescrObject # object.h
-    d_base*: pwrapperbase
-    d_wrapped*: Pointer       # This can be any function pointer
-  
-  TPyTypeObject* = object of TPyObject
-    ob_size*: int             # Number of items in variable part
-    tp_name*: cstring         # For printing
-    tp_basicsize*, tp_itemsize*: int # For allocation
-                                     # Methods to implement standard operations
-    tp_dealloc*: Tpydestructor
-    tp_print*: Tprintfunc
-    tp_getattr*: Tgetattrfunc
-    tp_setattr*: Tsetattrfunc
-    tp_compare*: Tcmpfunc
-    tp_repr*: Treprfunc       # Method suites for standard classes
-    tp_as_number*: PPyNumberMethods
-    tp_as_sequence*: PPySequenceMethods
-    tp_as_mapping*: PPyMappingMethods # More standard operations (here for binary compatibility)
-    tp_hash*: Thashfunc
-    tp_call*: Tternaryfunc
-    tp_str*: Treprfunc
-    tp_getattro*: Tgetattrofunc
-    tp_setattro*: Tsetattrofunc #/ jah 29-sep-2000: updated for python 2.0
-                                # Functions to access object as input/output buffer
-    tp_as_buffer*: PPyBufferProcs # Flags to define presence of optional/expanded features
-    tp_flags*: int32
-    tp_doc*: cstring          # Documentation string
-                              # call function for all accessible objects
-    tp_traverse*: Ttraverseproc # delete references to contained objects
-    tp_clear*: Tinquiry       # rich comparisons
-    tp_richcompare*: Trichcmpfunc # weak reference enabler
-    tp_weaklistoffset*: int32 # Iterators
-    tp_iter*: Tgetiterfunc
-    tp_iternext*: Titernextfunc # Attribute descriptor and subclassing stuff
-    tp_methods*: PPyMethodDef
-    tp_members*: PPyMemberDef
-    tp_getset*: PPyGetSetDef
-    tp_base*: PPyTypeObject
-    tp_dict*: PPyObject
-    tp_descr_get*: Tdescrgetfunc
-    tp_descr_set*: Tdescrsetfunc
-    tp_dictoffset*: int32
-    tp_init*: Tinitproc
-    tp_alloc*: Tallocfunc
-    tp_new*: Tnewfunc
-    tp_free*: Tpydestructor   # Low-level free-memory routine
-    tp_is_gc*: Tinquiry       # For PyObject_IS_GC
-    tp_bases*: PPyObject
-    tp_mro*: PPyObject        # method resolution order
-    tp_cache*: PPyObject
-    tp_subclasses*: PPyObject
-    tp_weaklist*: PPyObject   #More spares
-    tp_xxx7*: pointer
-    tp_xxx8*: pointer
-
-  PPyMethodChain* = ptr TPyMethodChain
-  TPyMethodChain*{.final.} = object 
-    methods*: PPyMethodDef
-    link*: PPyMethodChain
-
-  PPyClassObject* = ptr TPyClassObject
-  TPyClassObject* = object of TPyObject
-    cl_bases*: PPyObject      # A tuple of class objects
-    cl_dict*: PPyObject       # A dictionary
-    cl_name*: PPyObject       # A string
-                              # The following three are functions or NULL
-    cl_getattr*: PPyObject
-    cl_setattr*: PPyObject
-    cl_delattr*: PPyObject
-
-  PPyInstanceObject* = ptr TPyInstanceObject
-  TPyInstanceObject* = object of TPyObject 
-    in_class*: PPyClassObject # The class object
-    in_dict*: PPyObject       # A dictionary
-  
-  PPyMethodObject* = ptr TPyMethodObject
-  TPyMethodObject* = object of TPyObject # Bytecode object, compile.h
-    im_func*: PPyObject       # The function implementing the method
-    im_self*: PPyObject       # The instance it is bound to, or NULL
-    im_class*: PPyObject      # The class that defined the method
-  
-  PPyCodeObject* = ptr TPyCodeObject
-  TPyCodeObject* = object of TPyObject # from pystate.h
-    co_argcount*: int         # #arguments, except *args
-    co_nlocals*: int          # #local variables
-    co_stacksize*: int        # #entries needed for evaluation stack
-    co_flags*: int            # CO_..., see below
-    co_code*: PPyObject       # instruction opcodes (it hides a PyStringObject)
-    co_consts*: PPyObject     # list (constants used)
-    co_names*: PPyObject      # list of strings (names used)
-    co_varnames*: PPyObject   # tuple of strings (local variable names)
-    co_freevars*: PPyObject   # tuple of strings (free variable names)
-    co_cellvars*: PPyObject   # tuple of strings (cell variable names)
-                              # The rest doesn't count for hash/cmp
-    co_filename*: PPyObject   # string (where it was loaded from)
-    co_name*: PPyObject       # string (name, for reference)
-    co_firstlineno*: int      # first source line number
-    co_lnotab*: PPyObject     # string (encoding addr<->lineno mapping)
-  
-  PPyInterpreterState* = ptr TPyInterpreterState
-  PPyThreadState* = ptr TPyThreadState
-  PPyFrameObject* = ptr TPyFrameObject # Interpreter environments
-  TPyInterpreterState*{.final.} = object  # Thread specific information
-    next*: PPyInterpreterState
-    tstate_head*: PPyThreadState
-    modules*: PPyObject
-    sysdict*: PPyObject
-    builtins*: PPyObject
-    checkinterval*: int
-
-  TPyThreadState*{.final.} = object  # from frameobject.h
-    next*: PPyThreadState
-    interp*: PPyInterpreterState
-    frame*: PPyFrameObject
-    recursion_depth*: int
-    ticker*: int
-    tracing*: int
-    sys_profilefunc*: PPyObject
-    sys_tracefunc*: PPyObject
-    curexc_type*: PPyObject
-    curexc_value*: PPyObject
-    curexc_traceback*: PPyObject
-    exc_type*: PPyObject
-    exc_value*: PPyObject
-    exc_traceback*: PPyObject
-    dict*: PPyObject
-
-  PPyTryBlock* = ptr TPyTryBlock
-  TPyTryBlock*{.final.} = object 
-    b_type*: int              # what kind of block this is
-    b_handler*: int           # where to jump to find handler
-    b_level*: int             # value stack level to pop to
-  
-  CO_MAXBLOCKS* = range[0..19]
-  TPyFrameObject* = object of TPyObject # start of the VAR_HEAD of an object
-                                        # From traceback.c
-    ob_size*: int             # Number of items in variable part
-                              # End of the Head of an object
-    f_back*: PPyFrameObject   # previous frame, or NULL
-    f_code*: PPyCodeObject    # code segment
-    f_builtins*: PPyObject    # builtin symbol table (PyDictObject)
-    f_globals*: PPyObject     # global symbol table (PyDictObject)
-    f_locals*: PPyObject      # local symbol table (PyDictObject)
-    f_valuestack*: PPPyObject # points after the last local
-                              # Next free slot in f_valuestack. Frame creation sets to f_valuestack.
-                              # Frame evaluation usually NULLs it, but a frame that yields sets it
-                              # to the current stack top. 
-    f_stacktop*: PPPyObject
-    f_trace*: PPyObject       # Trace function
-    f_exc_type*, f_exc_value*, f_exc_traceback*: PPyObject
-    f_tstate*: PPyThreadState
-    f_lasti*: int             # Last instruction if called
-    f_lineno*: int            # Current line number
-    f_restricted*: int        # Flag set if restricted operations
-                              # in this scope
-    f_iblock*: int            # index in f_blockstack
-    f_blockstack*: array[CO_MAXBLOCKS, TPyTryBlock] # for try and loop blocks
-    f_nlocals*: int           # number of locals
-    f_ncells*: int
-    f_nfreevars*: int
-    f_stacksize*: int         # size of value stack
-    f_localsplus*: array[0..0, PPyObject] # locals+stack, dynamically sized
-  
-  PPyTraceBackObject* = ptr TPyTraceBackObject
-  TPyTraceBackObject* = object of TPyObject # Parse tree node interface
-    tb_next*: PPyTraceBackObject
-    tb_frame*: PPyFrameObject
-    tb_lasti*: int
-    tb_lineno*: int
-
-  PNode* = ptr Tnode
-  Tnode*{.final.} = object    # From weakrefobject.h
-    n_type*: int16
-    n_str*: cstring
-    n_lineno*: int16
-    n_nchildren*: int16
-    n_child*: PNode
-
-  PPyWeakReference* = ptr TPyWeakReference
-  TPyWeakReference* = object of TPyObject 
-    wr_object*: PPyObject
-    wr_callback*: PPyObject
-    hash*: int32
-    wr_prev*: PPyWeakReference
-    wr_next*: PPyWeakReference
-
-
-const                         
-  PyDateTime_DATE_DATASIZE* = 4 # # of bytes for year, month, and day
-  PyDateTime_TIME_DATASIZE* = 6 # # of bytes for hour, minute, second, and usecond
-  PyDateTime_DATETIME_DATASIZE* = 10 # # of bytes for year, month, 
-                                     # day, hour, minute, second, and usecond. 
-
-type 
-  TPyDateTime_Delta* = object of TPyObject
-    hashcode*: int            # -1 when unknown
-    days*: int                # -MAX_DELTA_DAYS <= days <= MAX_DELTA_DAYS
-    seconds*: int             # 0 <= seconds < 24*3600 is invariant
-    microseconds*: int        # 0 <= microseconds < 1000000 is invariant
-  
-  PPyDateTime_Delta* = ptr TPyDateTime_Delta
-  TPyDateTime_TZInfo* = object of TPyObject # a pure abstract base clase
-  PPyDateTime_TZInfo* = ptr TPyDateTime_TZInfo 
-  TPyDateTime_BaseTZInfo* = object of TPyObject
-    hashcode*: int
-    hastzinfo*: bool          # boolean flag
-  
-  PPyDateTime_BaseTZInfo* = ptr TPyDateTime_BaseTZInfo 
-  TPyDateTime_BaseTime* = object of TPyDateTime_BaseTZInfo
-    data*: array[0..Pred(PyDateTime_TIME_DATASIZE), int8]
-
-  PPyDateTime_BaseTime* = ptr TPyDateTime_BaseTime
-  TPyDateTime_Time* = object of TPyDateTime_BaseTime # hastzinfo true
-    tzinfo*: PPyObject
-
-  PPyDateTime_Time* = ptr TPyDateTime_Time 
-  TPyDateTime_Date* = object of TPyDateTime_BaseTZInfo
-    data*: array[0..Pred(PyDateTime_DATE_DATASIZE), int8]
-
-  PPyDateTime_Date* = ptr TPyDateTime_Date 
-  TPyDateTime_BaseDateTime* = object of TPyDateTime_BaseTZInfo
-    data*: array[0..Pred(PyDateTime_DATETIME_DATASIZE), int8]
-
-  PPyDateTime_BaseDateTime* = ptr TPyDateTime_BaseDateTime
-  TPyDateTime_DateTime* = object of TPyDateTime_BaseTZInfo
-    data*: array[0..Pred(PyDateTime_DATETIME_DATASIZE), int8]
-    tzinfo*: PPyObject
-
-  PPyDateTime_DateTime* = ptr TPyDateTime_DateTime 
-
-#----------------------------------------------------#
-#                                                    #
-#         New exception classes                      #
-#                                                    #
-#----------------------------------------------------#
-
-#
-#  // Python's exceptions
-#  EPythonError   = object(Exception)
-#      EName: String;
-#      EValue: String;
-#  end;
-#  EPyExecError   = object(EPythonError)
-#  end;
-#
-#  // Standard exception classes of Python
-#
-#/// jah 29-sep-2000: updated for python 2.0
-#///                   base classes updated according python documentation
-#
-#{ Hierarchy of Python exceptions, Python 2.3, copied from <INSTALL>\Python\exceptions.c
-#
-#Exception\n\
-# |\n\
-# +-- SystemExit\n\
-# +-- StopIteration\n\
-# +-- StandardError\n\
-# |    |\n\
-# |    +-- KeyboardInterrupt\n\
-# |    +-- ImportError\n\
-# |    +-- EnvironmentError\n\
-# |    |    |\n\
-# |    |    +-- IOError\n\
-# |    |    +-- OSError\n\
-# |    |         |\n\
-# |    |         +-- WindowsError\n\
-# |    |         +-- VMSError\n\
-# |    |\n\
-# |    +-- EOFError\n\
-# |    +-- RuntimeError\n\
-# |    |    |\n\
-# |    |    +-- NotImplementedError\n\
-# |    |\n\
-# |    +-- NameError\n\
-# |    |    |\n\
-# |    |    +-- UnboundLocalError\n\
-# |    |\n\
-# |    +-- AttributeError\n\
-# |    +-- SyntaxError\n\
-# |    |    |\n\
-# |    |    +-- IndentationError\n\
-# |    |         |\n\
-# |    |         +-- TabError\n\
-# |    |\n\
-# |    +-- TypeError\n\
-# |    +-- AssertionError\n\
-# |    +-- LookupError\n\
-# |    |    |\n\
-# |    |    +-- IndexError\n\
-# |    |    +-- KeyError\n\
-# |    |\n\
-# |    +-- ArithmeticError\n\
-# |    |    |\n\
-# |    |    +-- OverflowError\n\
-# |    |    +-- ZeroDivisionError\n\
-# |    |    +-- FloatingPointError\n\
-# |    |\n\
-# |    +-- ValueError\n\
-# |    |    |\n\
-# |    |    +-- UnicodeError\n\
-# |    |        |\n\
-# |    |        +-- UnicodeEncodeError\n\
-# |    |        +-- UnicodeDecodeError\n\
-# |    |        +-- UnicodeTranslateError\n\
-# |    |\n\
-# |    +-- ReferenceError\n\
-# |    +-- SystemError\n\
-# |    +-- MemoryError\n\
-# |\n\
-# +---Warning\n\
-#      |\n\
-#      +-- UserWarning\n\
-#      +-- DeprecationWarning\n\
-#      +-- PendingDeprecationWarning\n\
-#      +-- SyntaxWarning\n\
-#      +-- OverflowWarning\n\
-#      +-- RuntimeWarning\n\
-#      +-- FutureWarning"
-#}
-#   EPyException = class (EPythonError);
-#   EPyStandardError = class (EPyException);
-#   EPyArithmeticError = class (EPyStandardError);
-#   EPyLookupError = class (EPyStandardError);
-#   EPyAssertionError = class (EPyStandardError);
-#   EPyAttributeError = class (EPyStandardError);
-#   EPyEOFError = class (EPyStandardError);
-#   EPyFloatingPointError = class (EPyArithmeticError);
-#   EPyEnvironmentError = class (EPyStandardError);
-#   EPyIOError = class (EPyEnvironmentError);
-#   EPyOSError = class (EPyEnvironmentError);
-#   EPyImportError = class (EPyStandardError);
-#   EPyIndexError = class (EPyLookupError);
-#   EPyKeyError = class (EPyLookupError);
-#   EPyKeyboardInterrupt = class (EPyStandardError);
-#   EPyMemoryError = class (EPyStandardError);
-#   EPyNameError = class (EPyStandardError);
-#   EPyOverflowError = class (EPyArithmeticError);
-#   EPyRuntimeError = class (EPyStandardError);
-#   EPyNotImplementedError = class (EPyRuntimeError);
-#   EPySyntaxError = class (EPyStandardError)
-#   public
-#      EFileName: string;
-#      ELineStr: string;
-#      ELineNumber: Integer;
-#      EOffset: Integer;
-#   end;
-#   EPyIndentationError = class (EPySyntaxError);
-#   EPyTabError = class (EPyIndentationError);
-#   EPySystemError = class (EPyStandardError);
-#   EPySystemExit = class (EPyException);
-#   EPyTypeError = class (EPyStandardError);
-#   EPyUnboundLocalError = class (EPyNameError);
-#   EPyValueError = class (EPyStandardError);
-#   EPyUnicodeError = class (EPyValueError);
-#   UnicodeEncodeError = class (EPyUnicodeError);
-#   UnicodeDecodeError = class (EPyUnicodeError);
-#   UnicodeTranslateError = class (EPyUnicodeError);
-#   EPyZeroDivisionError = class (EPyArithmeticError);
-#   EPyStopIteration = class(EPyException);
-#   EPyWarning = class (EPyException);
-#   EPyUserWarning = class (EPyWarning);
-#   EPyDeprecationWarning = class (EPyWarning);
-#   PendingDeprecationWarning = class (EPyWarning);
-#   FutureWarning = class (EPyWarning);
-#   EPySyntaxWarning = class (EPyWarning);
-#   EPyOverflowWarning = class (EPyWarning);
-#   EPyRuntimeWarning = class (EPyWarning);
-#   EPyReferenceError = class (EPyStandardError);
-#
-
-var 
-  PyArg_Parse*: proc (args: PPyObject, format: cstring): int{.cdecl, varargs.} 
-  PyArg_ParseTuple*: proc (args: PPyObject, format: cstring, x1: Pointer = nil, 
-                           x2: Pointer = nil, x3: Pointer = nil): int{.cdecl, varargs.} 
-  Py_BuildValue*: proc (format: cstring): PPyObject{.cdecl, varargs.} 
-  PyCode_Addr2Line*: proc (co: PPyCodeObject, addrq: int): int{.cdecl.}
-  DLL_Py_GetBuildInfo*: proc (): cstring{.cdecl.}
-
-var
-  Py_DebugFlag*: PInt
-  Py_VerboseFlag*: PInt
-  Py_InteractiveFlag*: PInt
-  Py_OptimizeFlag*: PInt
-  Py_NoSiteFlag*: PInt
-  Py_UseClassExceptionsFlag*: PInt
-  Py_FrozenFlag*: PInt
-  Py_TabcheckFlag*: PInt
-  Py_UnicodeFlag*: PInt
-  Py_IgnoreEnvironmentFlag*: PInt
-  Py_DivisionWarningFlag*: PInt 
-  #_PySys_TraceFunc:    PPPyObject;
-  #_PySys_ProfileFunc: PPPPyObject;
-  PyImport_FrozenModules*: PP_frozen
-  Py_None*: PPyObject
-  Py_Ellipsis*: PPyObject
-  Py_False*: PPyIntObject
-  Py_True*: PPyIntObject
-  Py_NotImplemented*: PPyObject
-  PyExc_AttributeError*: PPPyObject
-  PyExc_EOFError*: PPPyObject
-  PyExc_IOError*: PPPyObject
-  PyExc_ImportError*: PPPyObject
-  PyExc_IndexError*: PPPyObject
-  PyExc_KeyError*: PPPyObject
-  PyExc_KeyboardInterrupt*: PPPyObject
-  PyExc_MemoryError*: PPPyObject
-  PyExc_NameError*: PPPyObject
-  PyExc_OverflowError*: PPPyObject
-  PyExc_RuntimeError*: PPPyObject
-  PyExc_SyntaxError*: PPPyObject
-  PyExc_SystemError*: PPPyObject
-  PyExc_SystemExit*: PPPyObject
-  PyExc_TypeError*: PPPyObject
-  PyExc_ValueError*: PPPyObject
-  PyExc_ZeroDivisionError*: PPPyObject
-  PyExc_ArithmeticError*: PPPyObject
-  PyExc_Exception*: PPPyObject
-  PyExc_FloatingPointError*: PPPyObject
-  PyExc_LookupError*: PPPyObject
-  PyExc_StandardError*: PPPyObject
-  PyExc_AssertionError*: PPPyObject
-  PyExc_EnvironmentError*: PPPyObject
-  PyExc_IndentationError*: PPPyObject
-  PyExc_MemoryErrorInst*: PPPyObject
-  PyExc_NotImplementedError*: PPPyObject
-  PyExc_OSError*: PPPyObject
-  PyExc_TabError*: PPPyObject
-  PyExc_UnboundLocalError*: PPPyObject
-  PyExc_UnicodeError*: PPPyObject
-  PyExc_Warning*: PPPyObject
-  PyExc_DeprecationWarning*: PPPyObject
-  PyExc_RuntimeWarning*: PPPyObject
-  PyExc_SyntaxWarning*: PPPyObject
-  PyExc_UserWarning*: PPPyObject
-  PyExc_OverflowWarning*: PPPyObject
-  PyExc_ReferenceError*: PPPyObject
-  PyExc_StopIteration*: PPPyObject
-  PyExc_FutureWarning*: PPPyObject
-  PyExc_PendingDeprecationWarning*: PPPyObject
-  PyExc_UnicodeDecodeError*: PPPyObject
-  PyExc_UnicodeEncodeError*: PPPyObject
-  PyExc_UnicodeTranslateError*: PPPyObject
-  PyType_Type*: PPyTypeObject
-  PyCFunction_Type*: PPyTypeObject
-  PyCObject_Type*: PPyTypeObject
-  PyClass_Type*: PPyTypeObject
-  PyCode_Type*: PPyTypeObject
-  PyComplex_Type*: PPyTypeObject
-  PyDict_Type*: PPyTypeObject
-  PyFile_Type*: PPyTypeObject
-  PyFloat_Type*: PPyTypeObject
-  PyFrame_Type*: PPyTypeObject
-  PyFunction_Type*: PPyTypeObject
-  PyInstance_Type*: PPyTypeObject
-  PyInt_Type*: PPyTypeObject
-  PyList_Type*: PPyTypeObject
-  PyLong_Type*: PPyTypeObject
-  PyMethod_Type*: PPyTypeObject
-  PyModule_Type*: PPyTypeObject
-  PyObject_Type*: PPyTypeObject
-  PyRange_Type*: PPyTypeObject
-  PySlice_Type*: PPyTypeObject
-  PyString_Type*: PPyTypeObject
-  PyTuple_Type*: PPyTypeObject
-  PyBaseObject_Type*: PPyTypeObject
-  PyBuffer_Type*: PPyTypeObject
-  PyCallIter_Type*: PPyTypeObject
-  PyCell_Type*: PPyTypeObject
-  PyClassMethod_Type*: PPyTypeObject
-  PyProperty_Type*: PPyTypeObject
-  PySeqIter_Type*: PPyTypeObject
-  PyStaticMethod_Type*: PPyTypeObject
-  PySuper_Type*: PPyTypeObject
-  PySymtableEntry_Type*: PPyTypeObject
-  PyTraceBack_Type*: PPyTypeObject
-  PyUnicode_Type*: PPyTypeObject
-  PyWrapperDescr_Type*: PPyTypeObject
-  PyBaseString_Type*: PPyTypeObject
-  PyBool_Type*: PPyTypeObject
-  PyEnum_Type*: PPyTypeObject
-
-  #PyArg_GetObject: proc(args: PPyObject; nargs, i: integer; p_a: PPPyObject): integer; cdecl;
-  #PyArg_GetLong: proc(args: PPyObject; nargs, i: integer; p_a: PLong): integer; cdecl;
-  #PyArg_GetShort: proc(args: PPyObject; nargs, i: integer; p_a: PShort): integer; cdecl;
-  #PyArg_GetFloat: proc(args: PPyObject; nargs, i: integer; p_a: PFloat): integer; cdecl;
-  #PyArg_GetString: proc(args: PPyObject; nargs, i: integer; p_a: PString): integer; cdecl;
-  #PyArgs_VaParse:  proc (args: PPyObject; format: PChar; 
-  #                          va_list: array of const): integer; cdecl;
-  # Does not work!
-  # Py_VaBuildValue: proc (format: PChar; va_list: array of const): PPyObject; cdecl;
-  #PyBuiltin_Init: proc; cdecl;
-proc PyComplex_FromCComplex*(c: TPy_complex): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyComplex_FromDoubles*(realv, imag: float64): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyComplex_RealAsDouble*(op: PPyObject): float64{.cdecl, importc, dynlib: dllname.}
-proc PyComplex_ImagAsDouble*(op: PPyObject): float64{.cdecl, importc, dynlib: dllname.}
-proc PyComplex_AsCComplex*(op: PPyObject): TPy_complex{.cdecl, importc, dynlib: dllname.}
-proc PyCFunction_GetFunction*(ob: PPyObject): Pointer{.cdecl, importc, dynlib: dllname.}
-proc PyCFunction_GetSelf*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyCallable_Check*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.}
-proc PyCObject_FromVoidPtr*(cobj, destruct: Pointer): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyCObject_AsVoidPtr*(ob: PPyObject): Pointer{.cdecl, importc, dynlib: dllname.}
-proc PyClass_New*(ob1, ob2, ob3: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyClass_IsSubclass*(ob1, ob2: PPyObject): int{.cdecl, importc, dynlib: dllname.}
-proc Py_InitModule4*(name: cstring, methods: PPyMethodDef, doc: cstring, 
-                         passthrough: PPyObject, Api_Version: int): PPyObject{.
-      cdecl, importc, dynlib: dllname.}
-proc PyErr_BadArgument*(): int{.cdecl, importc, dynlib: dllname.}
-proc PyErr_BadInternalCall*(){.cdecl, importc, dynlib: dllname.}
-proc PyErr_CheckSignals*(): int{.cdecl, importc, dynlib: dllname.}
-proc PyErr_Clear*(){.cdecl, importc, dynlib: dllname.}
-proc PyErr_Fetch*(errtype, errvalue, errtraceback: PPPyObject){.cdecl, importc, dynlib: dllname.}
-proc PyErr_NoMemory*(): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyErr_Occurred*(): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyErr_Print*(){.cdecl, importc, dynlib: dllname.}
-proc PyErr_Restore*(errtype, errvalue, errtraceback: PPyObject){.cdecl, importc, dynlib: dllname.}
-proc PyErr_SetFromErrno*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyErr_SetNone*(value: PPyObject){.cdecl, importc, dynlib: dllname.}
-proc PyErr_SetObject*(ob1, ob2: PPyObject){.cdecl, importc, dynlib: dllname.}
-proc PyErr_SetString*(ErrorObject: PPyObject, text: cstring){.cdecl, importc, dynlib: dllname.}
-proc PyImport_GetModuleDict*(): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyInt_FromLong*(x: int32): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc Py_Initialize*(){.cdecl, importc, dynlib: dllname.}
-proc Py_Exit*(RetVal: int){.cdecl, importc, dynlib: dllname.}
-proc PyEval_GetBuiltins*(): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyDict_GetItem*(mp, key: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyDict_SetItem*(mp, key, item: PPyObject): int{.cdecl, importc, dynlib: dllname.}
-proc PyDict_DelItem*(mp, key: PPyObject): int{.cdecl, importc, dynlib: dllname.}
-proc PyDict_Clear*(mp: PPyObject){.cdecl, importc, dynlib: dllname.}
-proc PyDict_Next*(mp: PPyObject, pos: PInt, key, value: PPPyObject): int{.
-      cdecl, importc, dynlib: dllname.}
-proc PyDict_Keys*(mp: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyDict_Values*(mp: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyDict_Items*(mp: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyDict_Size*(mp: PPyObject): int{.cdecl, importc, dynlib: dllname.}
-proc PyDict_DelItemString*(dp: PPyObject, key: cstring): int{.cdecl, importc, dynlib: dllname.}
-proc PyDict_New*(): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyDict_GetItemString*(dp: PPyObject, key: cstring): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyDict_SetItemString*(dp: PPyObject, key: cstring, item: PPyObject): int{.
-      cdecl, importc, dynlib: dllname.}
-proc PyDictProxy_New*(obj: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyModule_GetDict*(module: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyObject_Str*(v: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyRun_String*(str: cstring, start: int, globals: PPyObject, 
-                       locals: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyRun_SimpleString*(str: cstring): int{.cdecl, importc, dynlib: dllname.}
-proc PyString_AsString*(ob: PPyObject): cstring{.cdecl, importc, dynlib: dllname.}
-proc PyString_FromString*(str: cstring): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PySys_SetArgv*(argc: int, argv: cstringArray){.cdecl, importc, dynlib: dllname.} 
-  #+ means, Grzegorz or me has tested his non object version of this function
-  #+
-proc PyCFunction_New*(md: PPyMethodDef, ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyEval_CallObject*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyEval_CallObjectWithKeywords*(ob1, ob2, ob3: PPyObject): PPyObject{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PyEval_GetFrame*(): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyEval_GetGlobals*(): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyEval_GetLocals*(): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyEval_GetOwner*(): PPyObject {.cdecl, importc, dynlib: dllname.}
-proc PyEval_GetRestricted*(): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyEval_InitThreads*(){.cdecl, importc, dynlib: dllname.} #-
-proc PyEval_RestoreThread*(tstate: PPyThreadState){.cdecl, importc, dynlib: dllname.} #-
-proc PyEval_SaveThread*(): PPyThreadState{.cdecl, importc, dynlib: dllname.} #-
-proc PyFile_FromString*(pc1, pc2: cstring): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyFile_GetLine*(ob: PPyObject, i: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyFile_Name*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyFile_SetBufSize*(ob: PPyObject, i: int){.cdecl, importc, dynlib: dllname.} #-
-proc PyFile_SoftSpace*(ob: PPyObject, i: int): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyFile_WriteObject*(ob1, ob2: PPyObject, i: int): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyFile_WriteString*(s: cstring, ob: PPyObject){.cdecl, importc, dynlib: dllname.} #+
-proc PyFloat_AsDouble*(ob: PPyObject): float64{.cdecl, importc, dynlib: dllname.} #+
-proc PyFloat_FromDouble*(db: float64): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyFunction_GetCode*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyFunction_GetGlobals*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyFunction_New*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyImport_AddModule*(name: cstring): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyImport_Cleanup*(){.cdecl, importc, dynlib: dllname.} #-
-proc PyImport_GetMagicNumber*(): int32{.cdecl, importc, dynlib: dllname.} #+
-proc PyImport_ImportFrozenModule*(key: cstring): int{.cdecl, importc, dynlib: dllname.} #+
-proc PyImport_ImportModule*(name: cstring): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyImport_Import*(name: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-                                                               
-proc PyImport_Init*() {.cdecl, importc, dynlib: dllname.}
-proc PyImport_ReloadModule*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyInstance_New*(obClass, obArg, obKW: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyInt_AsLong*(ob: PPyObject): int32{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_Append*(ob1, ob2: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_AsTuple*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyList_GetItem*(ob: PPyObject, i: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_GetSlice*(ob: PPyObject, i1, i2: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_Insert*(dp: PPyObject, idx: int, item: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_New*(size: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_Reverse*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_SetItem*(dp: PPyObject, idx: int, item: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_SetSlice*(ob: PPyObject, i1, i2: int, ob2: PPyObject): int{.
-      cdecl, importc, dynlib: dllname.}                 #+
-proc PyList_Size*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_Sort*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyLong_AsDouble*(ob: PPyObject): float64{.cdecl, importc, dynlib: dllname.} #+
-proc PyLong_AsLong*(ob: PPyObject): int32{.cdecl, importc, dynlib: dllname.} #+
-proc PyLong_FromDouble*(db: float64): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyLong_FromLong*(L: int32): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyLong_FromString*(pc: cstring, ppc: var cstring, i: int): PPyObject{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PyLong_FromUnsignedLong*(val: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyLong_AsUnsignedLong*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyLong_FromUnicode*(ob: PPyObject, a, b: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyLong_FromLongLong*(val: Int64): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyLong_AsLongLong*(ob: PPyObject): Int64{.cdecl, importc, dynlib: dllname.} #-
-proc PyMapping_Check*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyMapping_GetItemString*(ob: PPyObject, key: cstring): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyMapping_HasKey*(ob, key: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyMapping_HasKeyString*(ob: PPyObject, key: cstring): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyMapping_Length*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyMapping_SetItemString*(ob: PPyObject, key: cstring, value: PPyObject): int{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PyMethod_Class*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyMethod_Function*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyMethod_New*(ob1, ob2, ob3: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyMethod_Self*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyModule_GetName*(ob: PPyObject): cstring{.cdecl, importc, dynlib: dllname.} #-
-proc PyModule_New*(key: cstring): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Absolute*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Add*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_And*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Check*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Coerce*(ob1, ob2: var PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Divide*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_FloorDivide*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_TrueDivide*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Divmod*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Float*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Int*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Invert*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Long*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Lshift*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Multiply*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Negative*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Or*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Positive*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Power*(ob1, ob2, ob3: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Remainder*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Rshift*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Subtract*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Xor*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyOS_InitInterrupts*(){.cdecl, importc, dynlib: dllname.} #-
-proc PyOS_InterruptOccurred*(): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_CallObject*(ob, args: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_Compare*(ob1, ob2: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GetAttr*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyObject_GetAttrString*(ob: PPyObject, c: cstring): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GetItem*(ob, key: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_DelItem*(ob, key: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_HasAttrString*(ob: PPyObject, key: cstring): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_Hash*(ob: PPyObject): int32{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_IsTrue*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_Length*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_Repr*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_SetAttr*(ob1, ob2, ob3: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_SetAttrString*(ob: PPyObject, key: cstring, value: PPyObject): int{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PyObject_SetItem*(ob1, ob2, ob3: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_Init*(ob: PPyObject, t: PPyTypeObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_InitVar*(ob: PPyObject, t: PPyTypeObject, size: int): PPyObject{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PyObject_New*(t: PPyTypeObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_NewVar*(t: PPyTypeObject, size: int): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyObject_Free*(ob: PPyObject){.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_IsInstance*(inst, cls: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_IsSubclass*(derived, cls: PPyObject): int{.cdecl, importc, dynlib: dllname.}
-proc PyObject_GenericGetAttr*(obj, name: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyObject_GenericSetAttr*(obj, name, value: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GC_Malloc*(size: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GC_New*(t: PPyTypeObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GC_NewVar*(t: PPyTypeObject, size: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GC_Resize*(t: PPyObject, newsize: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GC_Del*(ob: PPyObject){.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GC_Track*(ob: PPyObject){.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GC_UnTrack*(ob: PPyObject){.cdecl, importc, dynlib: dllname.} #-
-proc PyRange_New*(l1, l2, l3: int32, i: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_Check*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_Concat*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_Count*(ob1, ob2: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_GetItem*(ob: PPyObject, i: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_GetSlice*(ob: PPyObject, i1, i2: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_In*(ob1, ob2: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_Index*(ob1, ob2: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_Length*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_Repeat*(ob: PPyObject, count: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_SetItem*(ob: PPyObject, i: int, value: PPyObject): int{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PySequence_SetSlice*(ob: PPyObject, i1, i2: int, value: PPyObject): int{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PySequence_DelSlice*(ob: PPyObject, i1, i2: int): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_Tuple*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_Contains*(ob, value: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySlice_GetIndices*(ob: PPySliceObject, len: int, 
-                             start, stop, step: var int): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySlice_GetIndicesEx*(ob: PPySliceObject, len: int, 
-                               start, stop, step, slicelength: var int): int{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PySlice_New*(start, stop, step: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyString_Concat*(ob1: var PPyObject, ob2: PPyObject){.cdecl, importc, dynlib: dllname.} #-
-proc PyString_ConcatAndDel*(ob1: var PPyObject, ob2: PPyObject){.cdecl, importc, dynlib: dllname.} #-
-proc PyString_Format*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyString_FromStringAndSize*(s: cstring, i: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyString_Size*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyString_DecodeEscape*(s: cstring, length: int, errors: cstring, 
-                                unicode: int, recode_encoding: cstring): PPyObject{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PyString_Repr*(ob: PPyObject, smartquotes: int): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PySys_GetObject*(s: cstring): PPyObject{.cdecl, importc, dynlib: dllname.} 
-#-
-#PySys_Init:procedure; cdecl, importc, dynlib: dllname;
-#-
-proc PySys_SetObject*(s: cstring, ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySys_SetPath*(path: cstring){.cdecl, importc, dynlib: dllname.} #-
-#PyTraceBack_Fetch:function:PPyObject; cdecl, importc, dynlib: dllname;
-#-
-proc PyTraceBack_Here*(p: pointer): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyTraceBack_Print*(ob1, ob2: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-#PyTraceBack_Store:function (ob:PPyObject):integer; cdecl, importc, dynlib: dllname;
-#+
-proc PyTuple_GetItem*(ob: PPyObject, i: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyTuple_GetSlice*(ob: PPyObject, i1, i2: int): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyTuple_New*(size: int): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyTuple_SetItem*(ob: PPyObject, key: int, value: PPyObject): int{.cdecl, importc, dynlib: dllname.} #+
-proc PyTuple_Size*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #+
-proc PyType_IsSubtype*(a, b: PPyTypeObject): int{.cdecl, importc, dynlib: dllname.}
-proc PyType_GenericAlloc*(atype: PPyTypeObject, nitems: int): PPyObject{.
-      cdecl, importc, dynlib: dllname.}
-proc PyType_GenericNew*(atype: PPyTypeObject, args, kwds: PPyObject): PPyObject{.
-      cdecl, importc, dynlib: dllname.}
-proc PyType_Ready*(atype: PPyTypeObject): int{.cdecl, importc, dynlib: dllname.} #+
-proc PyUnicode_FromWideChar*(w: pointer, size: int): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyUnicode_AsWideChar*(unicode: PPyObject, w: pointer, size: int): int{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PyUnicode_FromOrdinal*(ordinal: int): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyWeakref_GetObject*(theRef: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyWeakref_NewProxy*(ob, callback: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyWeakref_NewRef*(ob, callback: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyWrapper_New*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyBool_FromLong*(ok: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc Py_AtExit*(prc: proc () {.cdecl.}): int{.cdecl, importc, dynlib: dllname.} #-
-#Py_Cleanup:procedure; cdecl, importc, dynlib: dllname;
-#-
-proc Py_CompileString*(s1, s2: cstring, i: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc Py_FatalError*(s: cstring){.cdecl, importc, dynlib: dllname.} #-
-proc Py_FindMethod*(md: PPyMethodDef, ob: PPyObject, key: cstring): PPyObject{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc Py_FindMethodInChain*(mc: PPyMethodChain, ob: PPyObject, key: cstring): PPyObject{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc Py_FlushLine*(){.cdecl, importc, dynlib: dllname.} #+
-proc Py_Finalize*(){.cdecl, importc, dynlib: dllname.} #-
-proc PyErr_ExceptionMatches*(exc: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyErr_GivenExceptionMatches*(raised_exc, exc: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyEval_EvalCode*(co: PPyCodeObject, globals, locals: PPyObject): PPyObject{.
-      cdecl, importc, dynlib: dllname.}                 #+
-proc Py_GetVersion*(): cstring{.cdecl, importc, dynlib: dllname.} #+
-proc Py_GetCopyright*(): cstring{.cdecl, importc, dynlib: dllname.} #+
-proc Py_GetExecPrefix*(): cstring{.cdecl, importc, dynlib: dllname.} #+
-proc Py_GetPath*(): cstring{.cdecl, importc, dynlib: dllname.} #+
-proc Py_GetPrefix*(): cstring{.cdecl, importc, dynlib: dllname.} #+
-proc Py_GetProgramName*(): cstring{.cdecl, importc, dynlib: dllname.} #-
-proc PyParser_SimpleParseString*(str: cstring, start: int): PNode{.cdecl, importc, dynlib: dllname.} #-
-proc PyNode_Free*(n: PNode){.cdecl, importc, dynlib: dllname.} #-
-proc PyErr_NewException*(name: cstring, base, dict: PPyObject): PPyObject{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc Py_Malloc*(size: int): Pointer {.cdecl, importc, dynlib: dllname.}
-proc PyMem_Malloc*(size: int): Pointer {.cdecl, importc, dynlib: dllname.}
-proc PyObject_CallMethod*(obj: PPyObject, theMethod, 
-                              format: cstring): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc Py_SetProgramName*(name: cstring){.cdecl, importc, dynlib: dllname.}
-proc Py_IsInitialized*(): int{.cdecl, importc, dynlib: dllname.}
-proc Py_GetProgramFullPath*(): cstring{.cdecl, importc, dynlib: dllname.}
-proc Py_NewInterpreter*(): PPyThreadState{.cdecl, importc, dynlib: dllname.}
-proc Py_EndInterpreter*(tstate: PPyThreadState){.cdecl, importc, dynlib: dllname.}
-proc PyEval_AcquireLock*(){.cdecl, importc, dynlib: dllname.}
-proc PyEval_ReleaseLock*(){.cdecl, importc, dynlib: dllname.}
-proc PyEval_AcquireThread*(tstate: PPyThreadState){.cdecl, importc, dynlib: dllname.}
-proc PyEval_ReleaseThread*(tstate: PPyThreadState){.cdecl, importc, dynlib: dllname.}
-proc PyInterpreterState_New*(): PPyInterpreterState{.cdecl, importc, dynlib: dllname.}
-proc PyInterpreterState_Clear*(interp: PPyInterpreterState){.cdecl, importc, dynlib: dllname.}
-proc PyInterpreterState_Delete*(interp: PPyInterpreterState){.cdecl, importc, dynlib: dllname.}
-proc PyThreadState_New*(interp: PPyInterpreterState): PPyThreadState{.cdecl, importc, dynlib: dllname.}
-proc PyThreadState_Clear*(tstate: PPyThreadState){.cdecl, importc, dynlib: dllname.}
-proc PyThreadState_Delete*(tstate: PPyThreadState){.cdecl, importc, dynlib: dllname.}
-proc PyThreadState_Get*(): PPyThreadState{.cdecl, importc, dynlib: dllname.}
-proc PyThreadState_Swap*(tstate: PPyThreadState): PPyThreadState{.cdecl, importc, dynlib: dllname.} 
-
-#Further exported Objects, may be implemented later
-#
-#    PyCode_New: Pointer;
-#    PyErr_SetInterrupt: Pointer;
-#    PyFile_AsFile: Pointer;
-#    PyFile_FromFile: Pointer;
-#    PyFloat_AsString: Pointer;
-#    PyFrame_BlockPop: Pointer;
-#    PyFrame_BlockSetup: Pointer;
-#    PyFrame_ExtendStack: Pointer;
-#    PyFrame_FastToLocals: Pointer;
-#    PyFrame_LocalsToFast: Pointer;
-#    PyFrame_New: Pointer;
-#    PyGrammar_AddAccelerators: Pointer;
-#    PyGrammar_FindDFA: Pointer;
-#    PyGrammar_LabelRepr: Pointer;
-#    PyInstance_DoBinOp: Pointer;
-#    PyInt_GetMax: Pointer;
-#    PyMarshal_Init: Pointer;
-#    PyMarshal_ReadLongFromFile: Pointer;
-#    PyMarshal_ReadObjectFromFile: Pointer;
-#    PyMarshal_ReadObjectFromString: Pointer;
-#    PyMarshal_WriteLongToFile: Pointer;
-#    PyMarshal_WriteObjectToFile: Pointer;
-#    PyMember_Get: Pointer;
-#    PyMember_Set: Pointer;
-#    PyNode_AddChild: Pointer;
-#    PyNode_Compile: Pointer;
-#    PyNode_New: Pointer;
-#    PyOS_GetLastModificationTime: Pointer;
-#    PyOS_Readline: Pointer;
-#    PyOS_strtol: Pointer;
-#    PyOS_strtoul: Pointer;
-#    PyObject_CallFunction: Pointer;
-#    PyObject_CallMethod: Pointer;
-#    PyObject_Print: Pointer;
-#    PyParser_AddToken: Pointer;
-#    PyParser_Delete: Pointer;
-#    PyParser_New: Pointer;
-#    PyParser_ParseFile: Pointer;
-#    PyParser_ParseString: Pointer;
-#    PyParser_SimpleParseFile: Pointer;
-#    PyRun_AnyFile: Pointer;
-#    PyRun_File: Pointer;
-#    PyRun_InteractiveLoop: Pointer;
-#    PyRun_InteractiveOne: Pointer;
-#    PyRun_SimpleFile: Pointer;
-#    PySys_GetFile: Pointer;
-#    PyToken_OneChar: Pointer;
-#    PyToken_TwoChars: Pointer;
-#    PyTokenizer_Free: Pointer;
-#    PyTokenizer_FromFile: Pointer;
-#    PyTokenizer_FromString: Pointer;
-#    PyTokenizer_Get: Pointer;
-#    Py_Main: Pointer;
-#    _PyObject_NewVar: Pointer;
-#    _PyParser_Grammar: Pointer;
-#    _PyParser_TokenNames: Pointer;
-#    _PyThread_Started: Pointer;
-#    _Py_c_diff: Pointer;
-#    _Py_c_neg: Pointer;
-#    _Py_c_pow: Pointer;
-#    _Py_c_prod: Pointer;
-#    _Py_c_quot: Pointer;
-#    _Py_c_sum: Pointer;
-#
-
-# This function handles all cardinals, pointer types (with no adjustment of pointers!)
-# (Extended) floats, which are handled as Python doubles and currencies, handled
-# as (normalized) Python doubles.
-proc PyImport_ExecCodeModule*(name: String, codeobject: PPyObject): PPyObject
-proc PyString_Check*(obj: PPyObject): bool
-proc PyString_CheckExact*(obj: PPyObject): bool
-proc PyFloat_Check*(obj: PPyObject): bool
-proc PyFloat_CheckExact*(obj: PPyObject): bool
-proc PyInt_Check*(obj: PPyObject): bool
-proc PyInt_CheckExact*(obj: PPyObject): bool
-proc PyLong_Check*(obj: PPyObject): bool
-proc PyLong_CheckExact*(obj: PPyObject): bool
-proc PyTuple_Check*(obj: PPyObject): bool
-proc PyTuple_CheckExact*(obj: PPyObject): bool
-proc PyInstance_Check*(obj: PPyObject): bool
-proc PyClass_Check*(obj: PPyObject): bool
-proc PyMethod_Check*(obj: PPyObject): bool
-proc PyList_Check*(obj: PPyObject): bool
-proc PyList_CheckExact*(obj: PPyObject): bool
-proc PyDict_Check*(obj: PPyObject): bool
-proc PyDict_CheckExact*(obj: PPyObject): bool
-proc PyModule_Check*(obj: PPyObject): bool
-proc PyModule_CheckExact*(obj: PPyObject): bool
-proc PySlice_Check*(obj: PPyObject): bool
-proc PyFunction_Check*(obj: PPyObject): bool
-proc PyUnicode_Check*(obj: PPyObject): bool
-proc PyUnicode_CheckExact*(obj: PPyObject): bool
-proc PyType_IS_GC*(t: PPyTypeObject): bool
-proc PyObject_IS_GC*(obj: PPyObject): bool
-proc PyBool_Check*(obj: PPyObject): bool
-proc PyBaseString_Check*(obj: PPyObject): bool
-proc PyEnum_Check*(obj: PPyObject): bool
-proc PyObject_TypeCheck*(obj: PPyObject, t: PPyTypeObject): bool
-proc Py_InitModule*(name: cstring, md: PPyMethodDef): PPyObject
-proc PyType_HasFeature*(AType: PPyTypeObject, AFlag: int): bool
-# implementation
-
-proc Py_INCREF*(op: PPyObject) {.inline.} = 
-  Inc(op.ob_refcnt)
-
-proc Py_DECREF*(op: PPyObject) {.inline.} = 
-  Dec(op.ob_refcnt)
-  if op.ob_refcnt == 0: 
-    op.ob_type.tp_dealloc(op)
-
-proc Py_XINCREF*(op: PPyObject) {.inline.} = 
-  if op != nil: Py_INCREF(op)
-  
-proc Py_XDECREF*(op: PPyObject) {.inline.} = 
-  if op != nil: Py_DECREF(op)
-  
-proc PyImport_ExecCodeModule(name: string, codeobject: PPyObject): PPyObject = 
-  var m, d, v, modules: PPyObject
-  m = PyImport_AddModule(cstring(name))
-  if m == nil: 
-    return nil
-  d = PyModule_GetDict(m)
-  if PyDict_GetItemString(d, "__builtins__") == nil: 
-    if PyDict_SetItemString(d, "__builtins__", PyEval_GetBuiltins()) != 0: 
-      return nil
-  if PyDict_SetItemString(d, "__file__", 
-                          PPyCodeObject(codeobject).co_filename) != 0: 
-    PyErr_Clear() # Not important enough to report
-  v = PyEval_EvalCode(PPyCodeObject(codeobject), d, d) # XXX owner ?
-  if v == nil: 
-    return nil
-  Py_XDECREF(v)
-  modules = PyImport_GetModuleDict()
-  if PyDict_GetItemString(modules, cstring(name)) == nil: 
-    PyErr_SetString(PyExc_ImportError[] , cstring(
-        "Loaded module " & name & "not found in sys.modules"))
-    return nil
-  Py_XINCREF(m)
-  Result = m
-
-proc PyString_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyString_Type)
-
-proc PyString_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj.ob_type == PyString_Type)
-
-proc PyFloat_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyFloat_Type)
-
-proc PyFloat_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj.ob_type == PyFloat_Type)
-
-proc PyInt_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyInt_Type)
-
-proc PyInt_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj.ob_type == PyInt_Type)
-
-proc PyLong_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyLong_Type)
-
-proc PyLong_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj.ob_type == PyLong_Type)
-
-proc PyTuple_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyTuple_Type)
-
-proc PyTuple_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj[].ob_type == PyTuple_Type)
-
-proc PyInstance_Check(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj[].ob_type == PyInstance_Type)
-
-proc PyClass_Check(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj[].ob_type == PyClass_Type)
-
-proc PyMethod_Check(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj[].ob_type == PyMethod_Type)
-
-proc PyList_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyList_Type)
-
-proc PyList_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj[].ob_type == PyList_Type)
-
-proc PyDict_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyDict_Type)
-
-proc PyDict_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj[].ob_type == PyDict_Type)
-
-proc PyModule_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyModule_Type)
-
-proc PyModule_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj[].ob_type == PyModule_Type)
-
-proc PySlice_Check(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj[].ob_type == PySlice_Type)
-
-proc PyFunction_Check(obj: PPyObject): bool = 
-  Result = (obj != nil) and
-      ((obj.ob_type == PyCFunction_Type) or
-      (obj.ob_type == PyFunction_Type))
-
-proc PyUnicode_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyUnicode_Type)
-
-proc PyUnicode_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj.ob_type == PyUnicode_Type)
-
-proc PyType_IS_GC(t: PPyTypeObject): bool = 
-  Result = PyType_HasFeature(t, Py_TPFLAGS_HAVE_GC)
-
-proc PyObject_IS_GC(obj: PPyObject): bool = 
-  Result = PyType_IS_GC(obj.ob_type) and
-      ((obj.ob_type.tp_is_gc == nil) or (obj.ob_type.tp_is_gc(obj) == 1))
-
-proc PyBool_Check(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj.ob_type == PyBool_Type)
-
-proc PyBaseString_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyBaseString_Type)
-
-proc PyEnum_Check(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj.ob_type == PyEnum_Type)
-
-proc PyObject_TypeCheck(obj: PPyObject, t: PPyTypeObject): bool = 
-  Result = (obj != nil) and (obj.ob_type == t)
-  if not Result and (obj != nil) and (t != nil): 
-    Result = PyType_IsSubtype(obj.ob_type, t) == 1
-  
-proc Py_InitModule(name: cstring, md: PPyMethodDef): PPyObject = 
-  result = Py_InitModule4(name, md, nil, nil, 1012)
-
-proc PyType_HasFeature(AType: PPyTypeObject, AFlag: int): bool = 
-  #(((t)->tp_flags & (f)) != 0)
-  Result = (AType.tp_flags and AFlag) != 0
-
-proc init(lib: TLibHandle) = 
-  Py_DebugFlag = cast[PInt](symAddr(lib, "Py_DebugFlag"))
-  Py_VerboseFlag = cast[PInt](symAddr(lib, "Py_VerboseFlag"))
-  Py_InteractiveFlag = cast[PInt](symAddr(lib, "Py_InteractiveFlag"))
-  Py_OptimizeFlag = cast[PInt](symAddr(lib, "Py_OptimizeFlag"))
-  Py_NoSiteFlag = cast[PInt](symAddr(lib, "Py_NoSiteFlag"))
-  Py_UseClassExceptionsFlag = cast[PInt](symAddr(lib, "Py_UseClassExceptionsFlag"))
-  Py_FrozenFlag = cast[PInt](symAddr(lib, "Py_FrozenFlag"))
-  Py_TabcheckFlag = cast[PInt](symAddr(lib, "Py_TabcheckFlag"))
-  Py_UnicodeFlag = cast[PInt](symAddr(lib, "Py_UnicodeFlag"))
-  Py_IgnoreEnvironmentFlag = cast[PInt](symAddr(lib, "Py_IgnoreEnvironmentFlag"))
-  Py_DivisionWarningFlag = cast[PInt](symAddr(lib, "Py_DivisionWarningFlag"))
-  Py_None = cast[PPyObject](symAddr(lib, "_Py_NoneStruct"))
-  Py_Ellipsis = cast[PPyObject](symAddr(lib, "_Py_EllipsisObject"))
-  Py_False = cast[PPyIntObject](symAddr(lib, "_Py_ZeroStruct"))
-  Py_True = cast[PPyIntObject](symAddr(lib, "_Py_TrueStruct"))
-  Py_NotImplemented = cast[PPyObject](symAddr(lib, "_Py_NotImplementedStruct"))
-  PyImport_FrozenModules = cast[PP_frozen](symAddr(lib, "PyImport_FrozenModules"))
-  PyExc_AttributeError = cast[PPPyObject](symAddr(lib, "PyExc_AttributeError"))
-  PyExc_EOFError = cast[PPPyObject](symAddr(lib, "PyExc_EOFError"))
-  PyExc_IOError = cast[PPPyObject](symAddr(lib, "PyExc_IOError"))
-  PyExc_ImportError = cast[PPPyObject](symAddr(lib, "PyExc_ImportError"))
-  PyExc_IndexError = cast[PPPyObject](symAddr(lib, "PyExc_IndexError"))
-  PyExc_KeyError = cast[PPPyObject](symAddr(lib, "PyExc_KeyError"))
-  PyExc_KeyboardInterrupt = cast[PPPyObject](symAddr(lib, "PyExc_KeyboardInterrupt"))
-  PyExc_MemoryError = cast[PPPyObject](symAddr(lib, "PyExc_MemoryError"))
-  PyExc_NameError = cast[PPPyObject](symAddr(lib, "PyExc_NameError"))
-  PyExc_OverflowError = cast[PPPyObject](symAddr(lib, "PyExc_OverflowError"))
-  PyExc_RuntimeError = cast[PPPyObject](symAddr(lib, "PyExc_RuntimeError"))
-  PyExc_SyntaxError = cast[PPPyObject](symAddr(lib, "PyExc_SyntaxError"))
-  PyExc_SystemError = cast[PPPyObject](symAddr(lib, "PyExc_SystemError"))
-  PyExc_SystemExit = cast[PPPyObject](symAddr(lib, "PyExc_SystemExit"))
-  PyExc_TypeError = cast[PPPyObject](symAddr(lib, "PyExc_TypeError"))
-  PyExc_ValueError = cast[PPPyObject](symAddr(lib, "PyExc_ValueError"))
-  PyExc_ZeroDivisionError = cast[PPPyObject](symAddr(lib, "PyExc_ZeroDivisionError"))
-  PyExc_ArithmeticError = cast[PPPyObject](symAddr(lib, "PyExc_ArithmeticError"))
-  PyExc_Exception = cast[PPPyObject](symAddr(lib, "PyExc_Exception"))
-  PyExc_FloatingPointError = cast[PPPyObject](symAddr(lib, "PyExc_FloatingPointError"))
-  PyExc_LookupError = cast[PPPyObject](symAddr(lib, "PyExc_LookupError"))
-  PyExc_StandardError = cast[PPPyObject](symAddr(lib, "PyExc_StandardError"))
-  PyExc_AssertionError = cast[PPPyObject](symAddr(lib, "PyExc_AssertionError"))
-  PyExc_EnvironmentError = cast[PPPyObject](symAddr(lib, "PyExc_EnvironmentError"))
-  PyExc_IndentationError = cast[PPPyObject](symAddr(lib, "PyExc_IndentationError"))
-  PyExc_MemoryErrorInst = cast[PPPyObject](symAddr(lib, "PyExc_MemoryErrorInst"))
-  PyExc_NotImplementedError = cast[PPPyObject](symAddr(lib, "PyExc_NotImplementedError"))
-  PyExc_OSError = cast[PPPyObject](symAddr(lib, "PyExc_OSError"))
-  PyExc_TabError = cast[PPPyObject](symAddr(lib, "PyExc_TabError"))
-  PyExc_UnboundLocalError = cast[PPPyObject](symAddr(lib, "PyExc_UnboundLocalError"))
-  PyExc_UnicodeError = cast[PPPyObject](symAddr(lib, "PyExc_UnicodeError"))
-  PyExc_Warning = cast[PPPyObject](symAddr(lib, "PyExc_Warning"))
-  PyExc_DeprecationWarning = cast[PPPyObject](symAddr(lib, "PyExc_DeprecationWarning"))
-  PyExc_RuntimeWarning = cast[PPPyObject](symAddr(lib, "PyExc_RuntimeWarning"))
-  PyExc_SyntaxWarning = cast[PPPyObject](symAddr(lib, "PyExc_SyntaxWarning"))
-  PyExc_UserWarning = cast[PPPyObject](symAddr(lib, "PyExc_UserWarning"))
-  PyExc_OverflowWarning = cast[PPPyObject](symAddr(lib, "PyExc_OverflowWarning"))
-  PyExc_ReferenceError = cast[PPPyObject](symAddr(lib, "PyExc_ReferenceError"))
-  PyExc_StopIteration = cast[PPPyObject](symAddr(lib, "PyExc_StopIteration"))
-  PyExc_FutureWarning = cast[PPPyObject](symAddr(lib, "PyExc_FutureWarning"))
-  PyExc_PendingDeprecationWarning = cast[PPPyObject](symAddr(lib, 
-      "PyExc_PendingDeprecationWarning"))
-  PyExc_UnicodeDecodeError = cast[PPPyObject](symAddr(lib, "PyExc_UnicodeDecodeError"))
-  PyExc_UnicodeEncodeError = cast[PPPyObject](symAddr(lib, "PyExc_UnicodeEncodeError"))
-  PyExc_UnicodeTranslateError = cast[PPPyObject](symAddr(lib, "PyExc_UnicodeTranslateError"))
-  PyType_Type = cast[PPyTypeObject](symAddr(lib, "PyType_Type"))
-  PyCFunction_Type = cast[PPyTypeObject](symAddr(lib, "PyCFunction_Type"))
-  PyCObject_Type = cast[PPyTypeObject](symAddr(lib, "PyCObject_Type"))
-  PyClass_Type = cast[PPyTypeObject](symAddr(lib, "PyClass_Type"))
-  PyCode_Type = cast[PPyTypeObject](symAddr(lib, "PyCode_Type"))
-  PyComplex_Type = cast[PPyTypeObject](symAddr(lib, "PyComplex_Type"))
-  PyDict_Type = cast[PPyTypeObject](symAddr(lib, "PyDict_Type"))
-  PyFile_Type = cast[PPyTypeObject](symAddr(lib, "PyFile_Type"))
-  PyFloat_Type = cast[PPyTypeObject](symAddr(lib, "PyFloat_Type"))
-  PyFrame_Type = cast[PPyTypeObject](symAddr(lib, "PyFrame_Type"))
-  PyFunction_Type = cast[PPyTypeObject](symAddr(lib, "PyFunction_Type"))
-  PyInstance_Type = cast[PPyTypeObject](symAddr(lib, "PyInstance_Type"))
-  PyInt_Type = cast[PPyTypeObject](symAddr(lib, "PyInt_Type"))
-  PyList_Type = cast[PPyTypeObject](symAddr(lib, "PyList_Type"))
-  PyLong_Type = cast[PPyTypeObject](symAddr(lib, "PyLong_Type"))
-  PyMethod_Type = cast[PPyTypeObject](symAddr(lib, "PyMethod_Type"))
-  PyModule_Type = cast[PPyTypeObject](symAddr(lib, "PyModule_Type"))
-  PyObject_Type = cast[PPyTypeObject](symAddr(lib, "PyObject_Type"))
-  PyRange_Type = cast[PPyTypeObject](symAddr(lib, "PyRange_Type"))
-  PySlice_Type = cast[PPyTypeObject](symAddr(lib, "PySlice_Type"))
-  PyString_Type = cast[PPyTypeObject](symAddr(lib, "PyString_Type"))
-  PyTuple_Type = cast[PPyTypeObject](symAddr(lib, "PyTuple_Type"))
-  PyUnicode_Type = cast[PPyTypeObject](symAddr(lib, "PyUnicode_Type"))
-  PyBaseObject_Type = cast[PPyTypeObject](symAddr(lib, "PyBaseObject_Type"))
-  PyBuffer_Type = cast[PPyTypeObject](symAddr(lib, "PyBuffer_Type"))
-  PyCallIter_Type = cast[PPyTypeObject](symAddr(lib, "PyCallIter_Type"))
-  PyCell_Type = cast[PPyTypeObject](symAddr(lib, "PyCell_Type"))
-  PyClassMethod_Type = cast[PPyTypeObject](symAddr(lib, "PyClassMethod_Type"))
-  PyProperty_Type = cast[PPyTypeObject](symAddr(lib, "PyProperty_Type"))
-  PySeqIter_Type = cast[PPyTypeObject](symAddr(lib, "PySeqIter_Type"))
-  PyStaticMethod_Type = cast[PPyTypeObject](symAddr(lib, "PyStaticMethod_Type"))
-  PySuper_Type = cast[PPyTypeObject](symAddr(lib, "PySuper_Type"))
-  PySymtableEntry_Type = cast[PPyTypeObject](symAddr(lib, "PySymtableEntry_Type"))
-  PyTraceBack_Type = cast[PPyTypeObject](symAddr(lib, "PyTraceBack_Type"))
-  PyWrapperDescr_Type = cast[PPyTypeObject](symAddr(lib, "PyWrapperDescr_Type"))
-  PyBaseString_Type = cast[PPyTypeObject](symAddr(lib, "PyBaseString_Type"))
-  PyBool_Type = cast[PPyTypeObject](symAddr(lib, "PyBool_Type"))
-  PyEnum_Type = cast[PPyTypeObject](symAddr(lib, "PyEnum_Type"))
-
-# Unfortunately we have to duplicate the loading mechanism here, because Nimrod
-# used to not support variables from dynamic libraries. Well designed API's
-# don't require this anyway. Python is an exception.
-
-var
-  lib: TLibHandle
-
-when defined(windows):
-  const
-    LibNames = ["python27.dll", "python26.dll", "python25.dll",
-      "python24.dll", "python23.dll", "python22.dll", "python21.dll",
-      "python20.dll", "python16.dll", "python15.dll"]
-elif defined(macosx):
-  const
-    LibNames = ["libpython2.7.dylib", "libpython2.6.dylib",
-      "libpython2.5.dylib", "libpython2.4.dylib", "libpython2.3.dylib", 
-      "libpython2.2.dylib", "libpython2.1.dylib", "libpython2.0.dylib",
-      "libpython1.6.dylib", "libpython1.5.dylib"]
-else:
-  const
-    LibNames = [
-      "libpython2.7.so" & dllver,
-      "libpython2.6.so" & dllver, 
-      "libpython2.5.so" & dllver, 
-      "libpython2.4.so" & dllver, 
-      "libpython2.3.so" & dllver, 
-      "libpython2.2.so" & dllver, 
-      "libpython2.1.so" & dllver, 
-      "libpython2.0.so" & dllver,
-      "libpython1.6.so" & dllver, 
-      "libpython1.5.so" & dllver]
-  
-for libName in items(libNames): 
-  lib = loadLib(libName)
-  if lib != nil: break
-
-if lib == nil: quit("could not load python library")
-init(lib)
-
diff --git a/lib/wrappers/tcl.nim b/lib/wrappers/tcl.nim
deleted file mode 100644
index 8cd715838..000000000
--- a/lib/wrappers/tcl.nim
+++ /dev/null
@@ -1,865 +0,0 @@
-#
-#
-#            Nimrod's Runtime Library
-#        (c) Copyright 2010 Andreas Rumpf
-#
-#    See the file "copying.txt", included in this
-#    distribution, for details about the copyright.
-#
-
-## This module is a wrapper for the TCL programming language.
-
-#
-#  tcl.h --
-# 
-#  This header file describes the externally-visible facilities of the Tcl
-#  interpreter.
-# 
-#  Translated to Pascal Copyright (c) 2002 by Max Artemev
-#  aka Bert Raccoon (bert@furry.ru, bert_raccoon@freemail.ru)
-# 
-# 
-#  Copyright (c) 1998-2000 by Scriptics Corporation.
-#  Copyright (c) 1994-1998 Sun Microsystems, Inc.
-#  Copyright (c) 1993-1996 Lucent Technologies.
-#  Copyright (c) 1987-1994 John Ousterhout, The Regents of the
-#                          University of California, Berkeley.
-# 
-#  ***********************************************************************
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-#  ***********************************************************************
-# 
-
-{.deadCodeElim: on.}
-
-when defined(WIN32): 
-  const 
-    dllName = "tcl(85|84|83|82|81|80).dll"
-elif defined(macosx): 
-  const 
-    dllName = "libtcl(8.5|8.4|8.3|8.2|8.1).dylib"
-else: 
-  const 
-    dllName = "libtcl(8.5|8.4|8.3|8.2|8.1).so(|.1|.0)"
-const 
-  TCL_DESTROYED* = 0xDEADDEAD
-  TCL_OK* = 0
-  TCL_ERROR* = 1
-  TCL_RETURN* = 2
-  TCL_BREAK* = 3
-  TCL_CONTINUE* = 4
-  RESULT_SIZE* = 200
-  MAX_ARGV* = 0x00007FFF
-  VERSION_MAJOR* = 0
-  VERSION_MINOR* = 0
-  NO_EVAL* = 0x00010000
-  EVAL_GLOBAL* = 0x00020000 # Flag values passed to variable-related proc
-  GLOBAL_ONLY* = 1
-  NAMESPACE_ONLY* = 2
-  APPEND_VALUE* = 4
-  LIST_ELEMENT* = 8
-  TRACE_READS* = 0x00000010
-  TRACE_WRITES* = 0x00000020
-  TRACE_UNSETS* = 0x00000040
-  TRACE_DESTROYED* = 0x00000080
-  INTERP_DESTROYED* = 0x00000100
-  LEAVE_ERR_MSG* = 0x00000200
-  PARSE_PART1* = 0x00000400 # Types for linked variables: *
-  LINK_INT* = 1
-  LINK_DOUBLE* = 2
-  LINK_BOOLEAN* = 3
-  LINK_STRING* = 4
-  LINK_READ_ONLY* = 0x00000080
-  SMALL_HASH_TABLE* = 4   # Hash Table *
-  STRING_KEYS* = 0
-  ONE_WORD_KEYS* = 1      # Const/enums Tcl_QueuePosition *
-                          
-  QUEUE_TAIL* = 0
-  QUEUE_HEAD* = 1
-  QUEUE_MARK* = 2         # Tcl_QueuePosition;
-                          # Event Flags
-  DONT_WAIT* = 1 shl 1
-  WINDOW_EVENTS* = 1 shl 2
-  FILE_EVENTS* = 1 shl 3
-  TIMER_EVENTS* = 1 shl 4
-  IDLE_EVENTS* = 1 shl 5  # WAS 0x10 ???? *
-  ALL_EVENTS* = not DONT_WAIT
-  VOLATILE* = 1
-  TCL_STATIC* = 0
-  DYNAMIC* = 3            # Channel
-  TCL_STDIN* = 1 shl 1
-  TCL_STDOUT* = 1 shl 2
-  TCL_STDERR* = 1 shl 3
-  ENFORCE_MODE* = 1 shl 4
-  READABLE* = 1 shl 1
-  WRITABLE* = 1 shl 2
-  EXCEPTION* = 1 shl 3    # POSIX *
-  EPERM* = 1 # Operation not permitted; only the owner of the file (or other
-             # resource) or processes with special privileges can perform the
-             # operation.
-             #
-  ENOENT* = 2 # No such file or directory.  This is a "file doesn't exist" error
-              # for ordinary files that are referenced in contexts where they are
-              # expected to already exist.
-              #
-  ESRCH* = 3                  # No process matches the specified process ID. *
-  EINTR* = 4 # Interrupted function call; an asynchronous signal occurred and
-             # prevented completion of the call.  When this happens, you should
-             # try the call again.
-             #
-  EIO* = 5                    # Input/output error; usually used for physical read or write errors. *
-  ENXIO* = 6 # No such device or address.  The system tried to use the device
-             # represented by a file you specified, and it couldn't find the
-             # device.  This can mean that the device file was installed
-             # incorrectly, or that the physical device is missing or not
-             # correctly attached to the computer.
-             #
-  E2BIG* = 7 # Argument list too long; used when the arguments passed to a new
-             # program being executed with one of the `exec' functions (*note
-             # Executing a File::.) occupy too much memory space.  This condition
-             # never arises in the GNU system.
-             #
-  ENOEXEC* = 8 # Invalid executable file format.  This condition is detected by the
-               # `exec' functions; see *Note Executing a File::.
-               #
-  EBADF* = 9 # Bad file descriptor; for example, I/O on a descriptor that has been
-             # closed or reading from a descriptor open only for writing (or vice
-             # versa).
-             #
-  ECHILD* = 10 # There are no child processes.  This error happens on operations
-               # that are supposed to manipulate child processes, when there aren't
-               # any processes to manipulate.
-               #
-  EDEADLK* = 11 # Deadlock avoided; allocating a system resource would have resulted
-                # in a deadlock situation.  The system does not guarantee that it
-                # will notice all such situations.  This error means you got lucky
-                # and the system noticed; it might just hang.  *Note File Locks::,
-                # for an example.
-                #
-  ENOMEM* = 12 # No memory available.  The system cannot allocate more virtual
-               # memory because its capacity is full.
-               #
-  EACCES* = 13 # Permission denied; the file permissions do not allow the attempted
-               # operation.
-               #
-  EFAULT* = 14 # Bad address; an invalid pointer was detected.  In the GNU system,
-               # this error never happens; you get a signal instead.
-               #
-  ENOTBLK* = 15 # A file that isn't a block special file was given in a situation
-                # that requires one.  For example, trying to mount an ordinary file
-                # as a file system in Unix gives this error.
-                #
-  EBUSY* = 16 # Resource busy; a system resource that can't be shared is already
-              # in use.  For example, if you try to delete a file that is the root
-              # of a currently mounted filesystem, you get this error.
-              #
-  EEXIST* = 17 # File exists; an existing file was specified in a context where it
-               # only makes sense to specify a new file.
-               #
-  EXDEV* = 18 # An attempt to make an improper link across file systems was
-              # detected.  This happens not only when you use `link' (*note Hard
-              # Links::.) but also when you rename a file with `rename' (*note
-              # Renaming Files::.).
-              #
-  ENODEV* = 19 # The wrong type of device was given to a function that expects a
-               # particular sort of device.
-               #
-  ENOTDIR* = 20 # A file that isn't a directory was specified when a directory is
-                # required.
-                #
-  EISDIR* = 21 # File is a directory; you cannot open a directory for writing, or
-               # create or remove hard links to it.
-               #
-  EINVAL* = 22 # Invalid argument.  This is used to indicate various kinds of
-               # problems with passing the wrong argument to a library function.
-               #
-  EMFILE* = 24 # The current process has too many files open and can't open any
-               # more.  Duplicate descriptors do count toward this limit.
-               #
-               # In BSD and GNU, the number of open files is controlled by a
-               # resource limit that can usually be increased.  If you get this
-               # error, you might want to increase the `RLIMIT_NOFILE' limit or
-               # make it unlimited; *note Limits on Resources::..
-               #
-  ENFILE* = 23 # There are too many distinct file openings in the entire system.
-               # Note that any number of linked channels count as just one file
-               # opening; see *Note Linked Channels::.  This error never occurs in
-               # the GNU system.
-               #
-  ENOTTY* = 25 # Inappropriate I/O control operation, such as trying to set terminal
-               # modes on an ordinary file.
-               #
-  ETXTBSY* = 26 # An attempt to execute a file that is currently open for writing, or
-                # write to a file that is currently being executed.  Often using a
-                # debugger to run a program is considered having it open for writing
-                # and will cause this error.  (The name stands for "text file
-                # busy".)  This is not an error in the GNU system; the text is
-                # copied as necessary.
-                #
-  EFBIG* = 27 # File too big; the size of a file would be larger than allowed by
-              # the system.
-              #
-  ENOSPC* = 28 # No space left on device; write operation on a file failed because
-               # the disk is full.
-               #
-  ESPIPE* = 29                # Invalid seek operation (such as on a pipe).  *
-  EROFS* = 30                 # An attempt was made to modify something on a read-only file system.  *
-  EMLINK* = 31 # Too many links; the link count of a single file would become too
-               # large.  `rename' can cause this error if the file being renamed
-               # already has as many links as it can take (*note Renaming Files::.).
-               #
-  EPIPE* = 32 # Broken pipe; there is no process reading from the other end of a
-              # pipe.  Every library function that returns this error code also
-              # generates a `SIGPIPE' signal; this signal terminates the program
-              # if not handled or blocked.  Thus, your program will never actually
-              # see `EPIPE' unless it has handled or blocked `SIGPIPE'.
-              #
-  EDOM* = 33 # Domain error; used by mathematical functions when an argument
-             # value does not fall into the domain over which the function is
-             # defined.
-             #
-  ERANGE* = 34 # Range error; used by mathematical functions when the result value
-               # is not representable because of overflow or underflow.
-               #
-  EAGAIN* = 35 # Resource temporarily unavailable; the call might work if you try
-               # again later.  The macro `EWOULDBLOCK' is another name for `EAGAIN';
-               # they are always the same in the GNU C library.
-               #
-  EWOULDBLOCK* = EAGAIN # In the GNU C library, this is another name for `EAGAIN' (above).
-                        # The values are always the same, on every operating system.
-                        # C libraries in many older Unix systems have `EWOULDBLOCK' as a
-                        # separate error code.
-                        #
-  EINPROGRESS* = 36 # An operation that cannot complete immediately was initiated on an
-                    # object that has non-blocking mode selected.  Some functions that
-                    # must always block (such as `connect'; *note Connecting::.) never
-                    # return `EAGAIN'.  Instead, they return `EINPROGRESS' to indicate
-                    # that the operation has begun and will take some time.  Attempts to
-                    # manipulate the object before the call completes return `EALREADY'.
-                    # You can use the `select' function to find out when the pending
-                    # operation has completed; *note Waiting for I/O::..
-                    #
-  EALREADY* = 37 # An operation is already in progress on an object that has
-                 # non-blocking mode selected.
-                 #
-  ENOTSOCK* = 38              # A file that isn't a socket was specified when a socket is required.  *
-  EDESTADDRREQ* = 39 # No default destination address was set for the socket.  You get
-                     # this error when you try to transmit data over a connectionless
-                     # socket, without first specifying a destination for the data with
-                     # `connect'.
-                     #
-  EMSGSIZE* = 40 # The size of a message sent on a socket was larger than the
-                 # supported maximum size.
-                 #
-  EPROTOTYPE* = 41 # The socket type does not support the requested communications
-                   # protocol.
-                   #
-  ENOPROTOOPT* = 42 # You specified a socket option that doesn't make sense for the
-                    # particular protocol being used by the socket.  *Note Socket
-                    # Options::.
-                    #
-  EPROTONOSUPPORT* = 43 # The socket domain does not support the requested communications
-                        # protocol (perhaps because the requested protocol is completely
-                        # invalid.) *Note Creating a Socket::.
-                        #
-  ESOCKTNOSUPPORT* = 44       # The socket type is not supported.  *
-  EOPNOTSUPP* = 45 # The operation you requested is not supported.  Some socket
-                   # functions don't make sense for all types of sockets, and others
-                   # may not be implemented for all communications protocols.  In the
-                   # GNU system, this error can happen for many calls when the object
-                   # does not support the particular operation; it is a generic
-                   # indication that the server knows nothing to do for that call.
-                   #
-  EPFNOSUPPORT* = 46 # The socket communications protocol family you requested is not
-                     # supported.
-                     #
-  EAFNOSUPPORT* = 47 # The address family specified for a socket is not supported; it is
-                     # inconsistent with the protocol being used on the socket.  *Note
-                     # Sockets::.
-                     #
-  EADDRINUSE* = 48 # The requested socket address is already in use.  *Note Socket
-                   # Addresses::.
-                   #
-  EADDRNOTAVAIL* = 49 # The requested socket address is not available; for example, you
-                      # tried to give a socket a name that doesn't match the local host
-                      # name.  *Note Socket Addresses::.
-                      #
-  ENETDOWN* = 50              # A socket operation failed because the network was down.  *
-  ENETUNREACH* = 51 # A socket operation failed because the subnet containing the remote
-                    # host was unreachable.
-                    #
-  ENETRESET* = 52             # A network connection was reset because the remote host crashed.  *
-  ECONNABORTED* = 53          # A network connection was aborted locally. *
-  ECONNRESET* = 54 # A network connection was closed for reasons outside the control of
-                   # the local host, such as by the remote machine rebooting or an
-                   # unrecoverable protocol violation.
-                   #
-  ENOBUFS* = 55 # The kernel's buffers for I/O operations are all in use.  In GNU,
-                # this error is always synonymous with `ENOMEM'; you may get one or
-                # the other from network operations.
-                #
-  EISCONN* = 56 # You tried to connect a socket that is already connected.  *Note
-                # Connecting::.
-                #
-  ENOTCONN* = 57 # The socket is not connected to anything.  You get this error when
-                 # you try to transmit data over a socket, without first specifying a
-                 # destination for the data.  For a connectionless socket (for
-                 # datagram protocols, such as UDP), you get `EDESTADDRREQ' instead.
-                 #
-  ESHUTDOWN* = 58             # The socket has already been shut down.  *
-  ETOOMANYREFS* = 59          # ???  *
-  ETIMEDOUT* = 60 # A socket operation with a specified timeout received no response
-                  # during the timeout period.
-                  #
-  ECONNREFUSED* = 61 # A remote host refused to allow the network connection (typically
-                     # because it is not running the requested service).
-                     #
-  ELOOP* = 62 # Too many levels of symbolic links were encountered in looking up a
-              # file name.  This often indicates a cycle of symbolic links.
-              #
-  ENAMETOOLONG* = 63 # Filename too long (longer than `PATH_MAX'; *note Limits for
-                     # Files::.) or host name too long (in `gethostname' or
-                     # `sethostname'; *note Host Identification::.).
-                     #
-  EHOSTDOWN* = 64             # The remote host for a requested network connection is down.  *
-  EHOSTUNREACH* = 65 # The remote host for a requested network connection is not
-                     # reachable.
-                     #
-  ENOTEMPTY* = 66 # Directory not empty, where an empty directory was expected.
-                  # Typically, this error occurs when you are trying to delete a
-                  # directory.
-                  #
-  EPROCLIM* = 67 # This means that the per-user limit on new process would be
-                 # exceeded by an attempted `fork'.  *Note Limits on Resources::, for
-                 # details on the `RLIMIT_NPROC' limit.
-                 #
-  EUSERS* = 68                # The file quota system is confused because there are too many users.  *
-  EDQUOT* = 69                # The user's disk quota was exceeded.  *
-  ESTALE* = 70 # Stale NFS file handle.  This indicates an internal confusion in
-               # the NFS system which is due to file system rearrangements on the
-               # server host.  Repairing this condition usually requires unmounting
-               # and remounting the NFS file system on the local host.
-               #
-  EREMOTE* = 71 # An attempt was made to NFS-mount a remote file system with a file
-                # name that already specifies an NFS-mounted file.  (This is an
-                # error on some operating systems, but we expect it to work properly
-                # on the GNU system, making this error code impossible.)
-                #
-  EBADRPC* = 72               # ???  *
-  ERPCMISMATCH* = 73          # ???  *
-  EPROGUNAVAIL* = 74          # ???  *
-  EPROGMISMATCH* = 75         # ???  *
-  EPROCUNAVAIL* = 76          # ???  *
-  ENOLCK* = 77 # No locks available.  This is used by the file locking facilities;
-               # see *Note File Locks::.  This error is never generated by the GNU
-               # system, but it can result from an operation to an NFS server
-               # running another operating system.
-               #
-  ENOSYS* = 78 # Function not implemented.  Some functions have commands or options
-               # defined that might not be supported in all implementations, and
-               # this is the kind of error you get if you request them and they are
-               # not supported.
-               #
-  EFTYPE* = 79 # Inappropriate file type or format.  The file was the wrong type
-               # for the operation, or a data file had the wrong format.
-               # On some systems `chmod' returns this error if you try to set the
-               # sticky bit on a non-directory file; *note Setting Permissions::..
-               #
-
-type 
-  TArgv* = cstringArray
-  TClientData* = pointer
-  TFreeProc* = proc (theBlock: pointer){.cdecl.}
-  PInterp* = ptr TInterp
-  TInterp*{.final.} = object  #  Event Definitions
-    result*: cstring # Do not access this directly. Use
-                     # Tcl_GetStringResult since result
-                     # may be pointing to an object
-    freeProc*: TFreeProc
-    errorLine*: int
-
-  TEventSetupProc* = proc (clientData: TClientData, flags: int){.cdecl.}
-  TEventCheckProc* = TEventSetupProc
-  PEvent* = ptr TEvent
-  TEventProc* = proc (evPtr: PEvent, flags: int): int{.cdecl.}
-  TEvent*{.final.} = object 
-    prc*: TEventProc
-    nextPtr*: PEvent
-    ClientData*: TObject      # ClientData is just pointer.*
-  
-  PTime* = ptr TTime
-  TTime*{.final.} = object 
-    sec*: int32               # Seconds. * 
-    usec*: int32              # Microseconds. * 
-  
-  TTimerToken* = pointer
-  PInteger* = ptr int
-  PHashTable* = ptr THashTable
-  PHashEntry* = ptr THashEntry
-  PPHashEntry* = ptr PHashEntry
-  THashEntry*{.final.} = object 
-    nextPtr*: PHashEntry
-    tablePtr*: PHashTable
-    bucketPtr*: PPHashEntry
-    clientData*: TClientData
-    key*: cstring
-
-  THashFindProc* = proc (tablePtr: PHashTable, key: cstring): PHashEntry{.
-      cdecl.}
-  THashCreateProc* = proc (tablePtr: PHashTable, key: cstring, 
-                              newPtr: PInteger): PHashEntry{.cdecl.}
-  THashTable*{.final.} = object 
-    buckets*: ppHashEntry
-    staticBuckets*: array[0..SMALL_HASH_TABLE - 1, PHashEntry]
-    numBuckets*: int
-    numEntries*: int
-    rebuildSize*: int
-    downShift*: int
-    mask*: int
-    keyType*: int
-    findProc*: THashFindProc
-    createProc*: THashCreateProc
-
-  PHashSearch* = ptr THashSearch
-  THashSearch*{.final.} = object 
-    tablePtr*: PHashTable
-    nextIndex*: int
-    nextEntryPtr*: PHashEntry
-
-  TAppInitProc* = proc (interp: pInterp): int{.cdecl.}
-  TPackageInitProc* = proc (interp: pInterp): int{.cdecl.}
-  TCmdProc* = proc (clientData: TClientData, interp: pInterp, argc: int, 
-                    argv: TArgv): int{.cdecl.}
-  TVarTraceProc* = proc (clientData: TClientData, interp: pInterp, 
-                         varName: cstring, elemName: cstring, flags: int): cstring{.
-      cdecl.}
-  TInterpDeleteProc* = proc (clientData: TClientData, interp: pInterp){.cdecl.}
-  TCmdDeleteProc* = proc (clientData: TClientData){.cdecl.}
-  TNamespaceDeleteProc* = proc (clientData: TClientData){.cdecl.}
-
-const 
-  DSTRING_STATIC_SIZE* = 200
-
-type 
-  PDString* = ptr TDString
-  TDString*{.final.} = object 
-    str*: cstring
-    len*: int
-    spaceAvl*: int
-    staticSpace*: array[0..DSTRING_STATIC_SIZE - 1, char]
-
-  PChannel* = ptr TChannel
-  TChannel*{.final.} = object 
-  TDriverBlockModeProc* = proc (instanceData: TClientData, mode: int): int{.
-      cdecl.}
-  TDriverCloseProc* = proc (instanceData: TClientData, interp: PInterp): int{.
-      cdecl.}
-  TDriverInputProc* = proc (instanceData: TClientData, buf: cstring, 
-                            toRead: int, errorCodePtr: PInteger): int{.cdecl.}
-  TDriverOutputProc* = proc (instanceData: TClientData, buf: cstring, 
-                             toWrite: int, errorCodePtr: PInteger): int{.cdecl.}
-  TDriverSeekProc* = proc (instanceData: TClientData, offset: int32, 
-                           mode: int, errorCodePtr: PInteger): int{.cdecl.}
-  TDriverSetOptionProc* = proc (instanceData: TClientData, interp: PInterp, 
-                                optionName: cstring, value: cstring): int{.cdecl.}
-  TDriverGetOptionProc* = proc (instanceData: TClientData, interp: pInterp, 
-                                optionName: cstring, dsPtr: PDString): int{.
-      cdecl.}
-  TDriverWatchProc* = proc (instanceData: TClientData, mask: int){.cdecl.}
-  TDriverGetHandleProc* = proc (instanceData: TClientData, direction: int, 
-                                handlePtr: var TClientData): int{.cdecl.}
-  PChannelType* = ptr TChannelType
-  TChannelType*{.final.} = object 
-    typeName*: cstring
-    blockModeProc*: TDriverBlockModeProc
-    closeProc*: TDriverCloseProc
-    inputProc*: TDriverInputProc
-    ouputProc*: TDriverOutputProc
-    seekProc*: TDriverSeekProc
-    setOptionProc*: TDriverSetOptionProc
-    getOptionProc*: TDriverGetOptionProc
-    watchProc*: TDriverWatchProc
-    getHandleProc*: TDriverGetHandleProc
-
-  TChannelProc* = proc (clientData: TClientData, mask: int){.cdecl.}
-  PObj* = ptr TObj
-  PPObj* = ptr PObj
-  TObj*{.final.} = object 
-    refCount*: int            # ...
-  
-  TObjCmdProc* = proc (clientData: TClientData, interp: PInterp, objc: int, 
-                       PPObj: PPObj): int{.cdecl.}
-  PNamespace* = ptr TNamespace
-  TNamespace*{.final.} = object 
-    name*: cstring
-    fullName*: cstring
-    clientData*: TClientData
-    deleteProc*: TNamespaceDeleteProc
-    parentPtr*: PNamespace
-
-  PCallFrame* = ptr TCallFrame
-  TCallFrame*{.final.} = object 
-    nsPtr*: PNamespace
-    dummy1*: int
-    dummy2*: int
-    dummy3*: cstring
-    dummy4*: cstring
-    dummy5*: cstring
-    dummy6*: int
-    dummy7*: cstring
-    dummy8*: cstring
-    dummy9*: int
-    dummy10*: cstring
-
-  PCmdInfo* = ptr TCmdInfo
-  TCmdInfo*{.final.} = object 
-    isNativeObjectProc*: int
-    objProc*: TObjCmdProc
-    objClientData*: TClientData
-    prc*: TCmdProc
-    clientData*: TClientData
-    deleteProc*: TCmdDeleteProc
-    deleteData*: TClientData
-    namespacePtr*: pNamespace
-
-  pCommand* = ptr TCommand
-  TCommand*{.final.} = object     #       hPtr            : pTcl_HashEntry;
-                                  #        nsPtr           : pTcl_Namespace;
-                                  #        refCount        : integer;
-                                  #        isCmdEpoch      : integer;
-                                  #        compileProc     : pointer;
-                                  #        objProc         : pointer;
-                                  #        objClientData   : Tcl_ClientData;
-                                  #        proc            : pointer;
-                                  #        clientData      : Tcl_ClientData;
-                                  #        deleteProc      : TTclCmdDeleteProc;
-                                  #        deleteData      : Tcl_ClientData;
-                                  #        deleted         : integer;
-                                  #        importRefPtr    : pointer;
-                                  #
-
-type 
-  TPanicProc* = proc (fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8: cstring){.
-      cdecl.}                 # 1/15/97 orig. Tcl style
-  TClientDataProc* = proc (clientData: TClientData){.cdecl.}
-  TIdleProc* = proc (clientData: TClientData){.cdecl.}
-  TTimerProc* = TIdleProc
-  TCreateCloseHandler* = proc (channel: pChannel, prc: TClientDataProc, 
-                               clientData: TClientData){.cdecl.}
-  TDeleteCloseHandler* = TCreateCloseHandler
-  TEventDeleteProc* = proc (evPtr: pEvent, clientData: TClientData): int{.
-      cdecl.}
-
-proc Alloc*(size: int): cstring{.cdecl, dynlib: dllName, 
-                                     importc: "Tcl_Alloc".}
-proc CreateInterp*(): pInterp{.cdecl, dynlib: dllName, 
-                                   importc: "Tcl_CreateInterp".}
-proc DeleteInterp*(interp: pInterp){.cdecl, dynlib: dllName, 
-    importc: "Tcl_DeleteInterp".}
-proc ResetResult*(interp: pInterp){.cdecl, dynlib: dllName, 
-                                        importc: "Tcl_ResetResult".}
-proc Eval*(interp: pInterp, script: cstring): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_Eval".}
-proc EvalFile*(interp: pInterp, filename: cstring): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_EvalFile".}
-proc AddErrorInfo*(interp: pInterp, message: cstring){.cdecl, 
-    dynlib: dllName, importc: "Tcl_AddErrorInfo".}
-proc BackgroundError*(interp: pInterp){.cdecl, dynlib: dllName, 
-    importc: "Tcl_BackgroundError".}
-proc CreateCommand*(interp: pInterp, name: cstring, cmdProc: TCmdProc, 
-                        clientData: TClientData, deleteProc: TCmdDeleteProc): pCommand{.
-    cdecl, dynlib: dllName, importc: "Tcl_CreateCommand".}
-proc DeleteCommand*(interp: pInterp, name: cstring): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_DeleteCommand".}
-proc CallWhenDeleted*(interp: pInterp, prc: TInterpDeleteProc, 
-                          clientData: TClientData){.cdecl, dynlib: dllName, 
-    importc: "Tcl_CallWhenDeleted".}
-proc DontCallWhenDeleted*(interp: pInterp, prc: TInterpDeleteProc, 
-                              clientData: TClientData){.cdecl, 
-    dynlib: dllName, importc: "Tcl_DontCallWhenDeleted".}
-proc CommandComplete*(cmd: cstring): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_CommandComplete".}
-proc LinkVar*(interp: pInterp, varName: cstring, varAddr: pointer, typ: int): int{.
-    cdecl, dynlib: dllName, importc: "Tcl_LinkVar".}
-proc UnlinkVar*(interp: pInterp, varName: cstring){.cdecl, dynlib: dllName, 
-    importc: "Tcl_UnlinkVar".}
-proc TraceVar*(interp: pInterp, varName: cstring, flags: int, 
-                   prc: TVarTraceProc, clientData: TClientData): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_TraceVar".}
-proc TraceVar2*(interp: pInterp, varName: cstring, elemName: cstring, 
-                    flags: int, prc: TVarTraceProc, clientData: TClientData): int{.
-    cdecl, dynlib: dllName, importc: "Tcl_TraceVar2".}
-proc UntraceVar*(interp: pInterp, varName: cstring, flags: int, 
-                     prc: TVarTraceProc, clientData: TClientData){.cdecl, 
-    dynlib: dllName, importc: "Tcl_UntraceVar".}
-proc UntraceVar2*(interp: pInterp, varName: cstring, elemName: cstring, 
-                      flags: int, prc: TVarTraceProc, clientData: TClientData){.
-    cdecl, dynlib: dllName, importc: "Tcl_UntraceVar2".}
-proc GetVar*(interp: pInterp, varName: cstring, flags: int): cstring{.cdecl, 
-    dynlib: dllName, importc: "Tcl_GetVar".}
-proc GetVar2*(interp: pInterp, varName: cstring, elemName: cstring, 
-                  flags: int): cstring{.cdecl, dynlib: dllName, 
-                                        importc: "Tcl_GetVar2".}
-proc SetVar*(interp: pInterp, varName: cstring, newValue: cstring, 
-                 flags: int): cstring{.cdecl, dynlib: dllName, 
-                                       importc: "Tcl_SetVar".}
-proc SetVar2*(interp: pInterp, varName: cstring, elemName: cstring, 
-                  newValue: cstring, flags: int): cstring{.cdecl, 
-    dynlib: dllName, importc: "Tcl_SetVar2".}
-proc UnsetVar*(interp: pInterp, varName: cstring, flags: int): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_UnsetVar".}
-proc UnsetVar2*(interp: pInterp, varName: cstring, elemName: cstring, 
-                    flags: int): int{.cdecl, dynlib: dllName, 
-                                      importc: "Tcl_UnsetVar2".}
-proc SetResult*(interp: pInterp, newValue: cstring, freeProc: TFreeProc){.
-    cdecl, dynlib: dllName, importc: "Tcl_SetResult".}
-proc FirstHashEntry*(hashTbl: pHashTable, searchInfo: var THashSearch): pHashEntry{.
-    cdecl, dynlib: dllName, importc: "Tcl_FirstHashEntry".}
-proc NextHashEntry*(searchInfo: var THashSearch): pHashEntry{.cdecl, 
-    dynlib: dllName, importc: "Tcl_NextHashEntry".}
-proc InitHashTable*(hashTbl: pHashTable, keyType: int){.cdecl, 
-    dynlib: dllName, importc: "Tcl_InitHashTable".}
-proc StringMatch*(str: cstring, pattern: cstring): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_StringMatch".}
-proc GetErrno*(): int{.cdecl, dynlib: dllName, importc: "Tcl_GetErrno".}
-proc SetErrno*(val: int){.cdecl, dynlib: dllName, importc: "Tcl_SetErrno".}
-proc SetPanicProc*(prc: TPanicProc){.cdecl, dynlib: dllName, 
-    importc: "Tcl_SetPanicProc".}
-proc PkgProvide*(interp: pInterp, name: cstring, version: cstring): int{.
-    cdecl, dynlib: dllName, importc: "Tcl_PkgProvide".}
-proc StaticPackage*(interp: pInterp, pkgName: cstring, 
-                        initProc: TPackageInitProc, 
-                        safeInitProc: TPackageInitProc){.cdecl, dynlib: dllName, 
-    importc: "Tcl_StaticPackage".}
-proc CreateEventSource*(setupProc: TEventSetupProc, 
-                            checkProc: TEventCheckProc, 
-                            clientData: TClientData){.cdecl, dynlib: dllName, 
-    importc: "Tcl_CreateEventSource".}
-proc DeleteEventSource*(setupProc: TEventSetupProc, 
-                            checkProc: TEventCheckProc, 
-                            clientData: TClientData){.cdecl, dynlib: dllName, 
-    importc: "Tcl_DeleteEventSource".}
-proc QueueEvent*(evPtr: pEvent, pos: int){.cdecl, dynlib: dllName, 
-    importc: "Tcl_QueueEvent".}
-proc SetMaxBlockTime*(timePtr: pTime){.cdecl, dynlib: dllName, 
-    importc: "Tcl_SetMaxBlockTime".}
-proc DeleteEvents*(prc: TEventDeleteProc, clientData: TClientData){.
-    cdecl, dynlib: dllName, importc: "Tcl_DeleteEvents".}
-proc DoOneEvent*(flags: int): int{.cdecl, dynlib: dllName, 
-                                       importc: "Tcl_DoOneEvent".}
-proc DoWhenIdle*(prc: TIdleProc, clientData: TClientData){.cdecl, 
-    dynlib: dllName, importc: "Tcl_DoWhenIdle".}
-proc CancelIdleCall*(prc: TIdleProc, clientData: TClientData){.cdecl, 
-    dynlib: dllName, importc: "Tcl_CancelIdleCall".}
-proc CreateTimerHandler*(milliseconds: int, prc: TTimerProc, 
-                             clientData: TClientData): TTimerToken{.cdecl, 
-    dynlib: dllName, importc: "Tcl_CreateTimerHandler".}
-proc DeleteTimerHandler*(token: TTimerToken){.cdecl, dynlib: dllName, 
-    importc: "Tcl_DeleteTimerHandler".}
-  #    procedure Tcl_CreateModalTimeout(milliseconds: integer; prc: TTclTimerProc; clientData: Tcl_ClientData); cdecl; external dllName;
-  #    procedure Tcl_DeleteModalTimeout(prc: TTclTimerProc; clientData: Tcl_ClientData); cdecl; external dllName;
-proc SplitList*(interp: pInterp, list: cstring, argcPtr: var int, 
-                    argvPtr: var TArgv): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_SplitList".}
-proc Merge*(argc: int, argv: TArgv): cstring{.cdecl, dynlib: dllName, 
-    importc: "Tcl_Merge".}
-proc Free*(p: cstring){.cdecl, dynlib: dllName, importc: "Tcl_Free".}
-proc Init*(interp: pInterp): int{.cdecl, dynlib: dllName, 
-                                      importc: "Tcl_Init".}
-  #    procedure Tcl_InterpDeleteProc(clientData: Tcl_ClientData; interp: pTcl_Interp); cdecl; external dllName;
-proc GetAssocData*(interp: pInterp, key: cstring, prc: var TInterpDeleteProc): TClientData{.
-    cdecl, dynlib: dllName, importc: "Tcl_GetAssocData".}
-proc DeleteAssocData*(interp: pInterp, key: cstring){.cdecl, 
-    dynlib: dllName, importc: "Tcl_DeleteAssocData".}
-proc SetAssocData*(interp: pInterp, key: cstring, prc: TInterpDeleteProc, 
-                       clientData: TClientData){.cdecl, dynlib: dllName, 
-    importc: "Tcl_SetAssocData".}
-proc IsSafe*(interp: pInterp): int{.cdecl, dynlib: dllName, 
-                                        importc: "Tcl_IsSafe".}
-proc MakeSafe*(interp: pInterp): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_MakeSafe".}
-proc CreateSlave*(interp: pInterp, slaveName: cstring, isSafe: int): pInterp{.
-    cdecl, dynlib: dllName, importc: "Tcl_CreateSlave".}
-proc GetSlave*(interp: pInterp, slaveName: cstring): pInterp{.cdecl, 
-    dynlib: dllName, importc: "Tcl_GetSlave".}
-proc GetMaster*(interp: pInterp): pInterp{.cdecl, dynlib: dllName, 
-    importc: "Tcl_GetMaster".}
-proc GetInterpPath*(askingInterp: pInterp, slaveInterp: pInterp): int{.
-    cdecl, dynlib: dllName, importc: "Tcl_GetInterpPath".}
-proc CreateAlias*(slaveInterp: pInterp, srcCmd: cstring, 
-                      targetInterp: pInterp, targetCmd: cstring, argc: int, 
-                      argv: TArgv): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_CreateAlias".}
-proc GetAlias*(interp: pInterp, srcCmd: cstring, targetInterp: var pInterp, 
-                   targetCmd: var cstring, argc: var int, argv: var TArgv): int{.
-    cdecl, dynlib: dllName, importc: "Tcl_GetAlias".}
-proc ExposeCommand*(interp: pInterp, hiddenCmdName: cstring, 
-                        cmdName: cstring): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_ExposeCommand".}
-proc HideCommand*(interp: pInterp, cmdName: cstring, hiddenCmdName: cstring): int{.
-    cdecl, dynlib: dllName, importc: "Tcl_HideCommand".}
-proc EventuallyFree*(clientData: TClientData, freeProc: TFreeProc){.
-    cdecl, dynlib: dllName, importc: "Tcl_EventuallyFree".}
-proc Preserve*(clientData: TClientData){.cdecl, dynlib: dllName, 
-    importc: "Tcl_Preserve".}
-proc Release*(clientData: TClientData){.cdecl, dynlib: dllName, 
-    importc: "Tcl_Release".}
-proc InterpDeleted*(interp: pInterp): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_InterpDeleted".}
-proc GetCommandInfo*(interp: pInterp, cmdName: cstring, 
-                         info: var TCmdInfo): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_GetCommandInfo".}
-proc SetCommandInfo*(interp: pInterp, cmdName: cstring, 
-                         info: var TCmdInfo): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_SetCommandInfo".}
-proc FindExecutable*(path: cstring){.cdecl, dynlib: dllName, 
-    importc: "Tcl_FindExecutable".}
-proc GetStringResult*(interp: pInterp): cstring{.cdecl, dynlib: dllName, 
-    importc: "Tcl_GetStringResult".}
-  #v1.0
-proc FindCommand*(interp: pInterp, cmdName: cstring, 
-                      contextNsPtr: pNamespace, flags: int): TCommand{.cdecl, 
-    dynlib: dllName, importc: "Tcl_FindCommand".}
-  #v1.0
-proc DeleteCommandFromToken*(interp: pInterp, cmd: pCommand): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_DeleteCommandFromToken".}
-proc CreateNamespace*(interp: pInterp, name: cstring, 
-                          clientData: TClientData, 
-                          deleteProc: TNamespaceDeleteProc): pNamespace{.cdecl, 
-    dynlib: dllName, importc: "Tcl_CreateNamespace".}
-  #v1.0
-proc DeleteNamespace*(namespacePtr: pNamespace){.cdecl, dynlib: dllName, 
-    importc: "Tcl_DeleteNamespace".}
-proc FindNamespace*(interp: pInterp, name: cstring, 
-                        contextNsPtr: pNamespace, flags: int): pNamespace{.
-    cdecl, dynlib: dllName, importc: "Tcl_FindNamespace".}
-proc Tcl_Export*(interp: pInterp, namespacePtr: pNamespace, pattern: cstring, 
-                 resetListFirst: int): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_Export".}
-proc Tcl_Import*(interp: pInterp, namespacePtr: pNamespace, pattern: cstring, 
-                 allowOverwrite: int): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_Import".}
-proc GetCurrentNamespace*(interp: pInterp): pNamespace{.cdecl, 
-    dynlib: dllName, importc: "Tcl_GetCurrentNamespace".}
-proc GetGlobalNamespace*(interp: pInterp): pNamespace{.cdecl, 
-    dynlib: dllName, importc: "Tcl_GetGlobalNamespace".}
-proc PushCallFrame*(interp: pInterp, callFramePtr: var TCallFrame, 
-                        namespacePtr: pNamespace, isProcCallFrame: int): int{.
-    cdecl, dynlib: dllName, importc: "Tcl_PushCallFrame".}
-proc PopCallFrame*(interp: pInterp){.cdecl, dynlib: dllName, 
-    importc: "Tcl_PopCallFrame".}
-proc VarEval*(interp: pInterp): int{.cdecl, varargs, dynlib: dllName, 
-    importc: "Tcl_VarEval".}
-  # For TkConsole.c *
-proc RecordAndEval*(interp: pInterp, cmd: cstring, flags: int): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_RecordAndEval".}
-proc GlobalEval*(interp: pInterp, command: cstring): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_GlobalEval".}
-proc DStringFree*(dsPtr: pDString){.cdecl, dynlib: dllName, 
-                                        importc: "Tcl_DStringFree".}
-proc DStringAppend*(dsPtr: pDString, str: cstring, length: int): cstring{.
-    cdecl, dynlib: dllName, importc: "Tcl_DStringAppend".}
-proc DStringAppendElement*(dsPtr: pDString, str: cstring): cstring{.cdecl, 
-    dynlib: dllName, importc: "Tcl_DStringAppendElement".}
-proc DStringInit*(dsPtr: pDString){.cdecl, dynlib: dllName, 
-                                        importc: "Tcl_DStringInit".}
-proc AppendResult*(interp: pInterp){.cdecl, varargs, dynlib: dllName, 
-    importc: "Tcl_AppendResult".}
-  # actually a "C" var array
-proc SetStdChannel*(channel: pChannel, typ: int){.cdecl, dynlib: dllName, 
-    importc: "Tcl_SetStdChannel".}
-proc SetChannelOption*(interp: pInterp, chan: pChannel, optionName: cstring, 
-                           newValue: cstring): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_SetChannelOption".}
-proc GetChannelOption*(interp: pInterp, chan: pChannel, optionName: cstring, 
-                           dsPtr: pDString): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_GetChannelOption".}
-proc CreateChannel*(typePtr: pChannelType, chanName: cstring, 
-                        instanceData: TClientData, mask: int): pChannel{.
-    cdecl, dynlib: dllName, importc: "Tcl_CreateChannel".}
-proc RegisterChannel*(interp: pInterp, channel: pChannel){.cdecl, 
-    dynlib: dllName, importc: "Tcl_RegisterChannel".}
-proc UnregisterChannel*(interp: pInterp, channel: pChannel): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_UnregisterChannel".}
-proc CreateChannelHandler*(chan: pChannel, mask: int, prc: TChannelProc, 
-                               clientData: TClientData){.cdecl, 
-    dynlib: dllName, importc: "Tcl_CreateChannelHandler".}
-proc GetChannel*(interp: pInterp, chanName: cstring, modePtr: pInteger): pChannel{.
-    cdecl, dynlib: dllName, importc: "Tcl_GetChannel".}
-proc GetStdChannel*(typ: int): pChannel{.cdecl, dynlib: dllName, 
-    importc: "Tcl_GetStdChannel".}
-proc Gets*(chan: pChannel, dsPtr: pDString): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_Gets".}
-proc Write*(chan: pChannel, s: cstring, slen: int): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_Write".}
-proc Flush*(chan: pChannel): int{.cdecl, dynlib: dllName, 
-                                      importc: "Tcl_Flush".}
-  #    TclWinLoadLibrary      = function(name: PChar): HMODULE; cdecl; external dllName;
-proc CreateExitHandler*(prc: TClientDataProc, clientData: TClientData){.
-    cdecl, dynlib: dllName, importc: "Tcl_CreateExitHandler".}
-proc DeleteExitHandler*(prc: TClientDataProc, clientData: TClientData){.
-    cdecl, dynlib: dllName, importc: "Tcl_DeleteExitHandler".}
-proc GetStringFromObj*(pObj: pObj, pLen: pInteger): cstring{.cdecl, 
-    dynlib: dllName, importc: "Tcl_GetStringFromObj".}
-proc CreateObjCommand*(interp: pInterp, name: cstring, cmdProc: TObjCmdProc, 
-                           clientData: TClientData, 
-                           deleteProc: TCmdDeleteProc): pCommand{.cdecl, 
-    dynlib: dllName, importc: "Tcl_CreateObjCommand".}
-proc NewStringObj*(bytes: cstring, length: int): pObj{.cdecl, 
-    dynlib: dllName, importc: "Tcl_NewStringObj".}
-  #    procedure TclFreeObj(pObj: pTcl_Obj); cdecl; external dllName;
-proc EvalObj*(interp: pInterp, pObj: pObj): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_EvalObj".}
-proc GlobalEvalObj*(interp: pInterp, pObj: pObj): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_GlobalEvalObj".}
-proc RegComp*(exp: cstring): pointer{.cdecl, dynlib: dllName, 
-    importc: "TclRegComp".}
-
-proc RegExec*(prog: pointer, str: cstring, start: cstring): int{.cdecl, 
-    dynlib: dllName, importc: "TclRegExec".}
-
-proc RegError*(msg: cstring){.cdecl, dynlib: dllName, importc: "TclRegError".}
-
-proc GetRegError*(): cstring{.cdecl, dynlib: dllName, 
-                              importc: "TclGetRegError".}
-
-proc RegExpRange*(prog: pointer, index: int, head: var cstring, 
-                      tail: var cstring){.cdecl, dynlib: dllName, 
-    importc: "Tcl_RegExpRange".}
-    
-proc GetCommandTable*(interp: pInterp): pHashTable = 
-  if interp != nil: 
-    result = cast[pHashTable](cast[int](interp) + sizeof(Interp) +
-        sizeof(pointer))
-
-proc CreateHashEntry*(tablePtr: pHashTable, key: cstring, 
-                      newPtr: pInteger): pHashEntry = 
-  result = cast[pHashTable](tablePtr).createProc(tablePtr, key, newPtr)
-
-proc FindHashEntry*(tablePtr: pHashTable, key: cstring): pHashEntry = 
-  result = cast[pHashTable](tablePtr).findProc(tablePtr, key)
-
-proc SetHashValue*(h: pHashEntry, clientData: TClientData) = 
-  h.clientData = clientData
-
-proc GetHashValue*(h: pHashEntry): TClientData = 
-  result = h.clientData
-
-proc IncrRefCount*(pObj: pObj) = 
-  inc(pObj.refCount)
-
-proc DecrRefCount*(pObj: pObj) = 
-  dec(pObj.refCount)
-  if pObj.refCount <= 0: 
-    dealloc(pObj)
-
-proc IsShared*(pObj: pObj): bool = 
-  return pObj.refCount > 1
-
-proc GetHashKey*(hashTbl: pHashTable, hashEntry: pHashEntry): cstring = 
-  if hashTbl == nil or hashEntry == nil: 
-    result = nil
-  else: 
-    result = hashEntry.key
diff --git a/lib/wrappers/x11/cursorfont.nim b/lib/wrappers/x11/cursorfont.nim
deleted file mode 100644
index b262ad7c1..000000000
--- a/lib/wrappers/x11/cursorfont.nim
+++ /dev/null
@@ -1,110 +0,0 @@
-# $Xorg: cursorfont.h,v 1.4 2001/02/09 02:03:39 xorgcvs Exp $ 
-#
-#
-#Copyright 1987, 1998  The Open Group
-#
-#Permission to use, copy, modify, distribute, and sell this software and its
-#documentation for any purpose is hereby granted without fee, provided that
-#the above copyright notice appear in all copies and that both that
-#copyright notice and this permission notice appear in supporting
-#documentation.
-#
-#The above copyright notice and this permission notice shall be included
-#in all copies or substantial portions of the Software.
-#
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-#OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-#MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-#IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-#OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-#ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-#OTHER DEALINGS IN THE SOFTWARE.
-#
-#Except as contained in this notice, the name of The Open Group shall
-#not be used in advertising or otherwise to promote the sale, use or
-#other dealings in this Software without prior written authorization
-#from The Open Group.
-#
-#
-
-const 
-  XC_num_glyphs* = 154
-  XC_X_cursor* = 0
-  XC_arrow* = 2
-  XC_based_arrow_down* = 4
-  XC_based_arrow_up* = 6
-  XC_boat* = 8
-  XC_bogosity* = 10
-  XC_bottom_left_corner* = 12
-  XC_bottom_right_corner* = 14
-  XC_bottom_side* = 16
-  XC_bottom_tee* = 18
-  XC_box_spiral* = 20
-  XC_center_ptr* = 22
-  XC_circle* = 24
-  XC_clock* = 26
-  XC_coffee_mug* = 28
-  XC_cross* = 30
-  XC_cross_reverse* = 32
-  XC_crosshair* = 34
-  XC_diamond_cross* = 36
-  XC_dot* = 38
-  XC_dotbox* = 40
-  XC_double_arrow* = 42
-  XC_draft_large* = 44
-  XC_draft_small* = 46
-  XC_draped_box* = 48
-  XC_exchange* = 50
-  XC_fleur* = 52
-  XC_gobbler* = 54
-  XC_gumby* = 56
-  XC_hand1* = 58
-  XC_hand2* = 60
-  XC_heart* = 62
-  XC_icon* = 64
-  XC_iron_cross* = 66
-  XC_left_ptr* = 68
-  XC_left_side* = 70
-  XC_left_tee* = 72
-  XC_leftbutton* = 74
-  XC_ll_angle* = 76
-  XC_lr_angle* = 78
-  XC_man* = 80
-  XC_middlebutton* = 82
-  XC_mouse* = 84
-  XC_pencil* = 86
-  XC_pirate* = 88
-  XC_plus* = 90
-  XC_question_arrow* = 92
-  XC_right_ptr* = 94
-  XC_right_side* = 96
-  XC_right_tee* = 98
-  XC_rightbutton* = 100
-  XC_rtl_logo* = 102
-  XC_sailboat* = 104
-  XC_sb_down_arrow* = 106
-  XC_sb_h_double_arrow* = 108
-  XC_sb_left_arrow* = 110
-  XC_sb_right_arrow* = 112
-  XC_sb_up_arrow* = 114
-  XC_sb_v_double_arrow* = 116
-  XC_shuttle* = 118
-  XC_sizing* = 120
-  XC_spider* = 122
-  XC_spraycan* = 124
-  XC_star* = 126
-  XC_target* = 128
-  XC_tcross* = 130
-  XC_top_left_arrow* = 132
-  XC_top_left_corner* = 134
-  XC_top_right_corner* = 136
-  XC_top_side* = 138
-  XC_top_tee* = 140
-  XC_trek* = 142
-  XC_ul_angle* = 144
-  XC_umbrella* = 146
-  XC_ur_angle* = 148
-  XC_watch* = 150
-  XC_xterm* = 152
-
-# implementation
diff --git a/lib/wrappers/x11/keysym.nim b/lib/wrappers/x11/keysym.nim
deleted file mode 100644
index c001ab622..000000000
--- a/lib/wrappers/x11/keysym.nim
+++ /dev/null
@@ -1,1926 +0,0 @@
-#
-#Converted from X11/keysym.h and X11/keysymdef.h
-#
-#Capital letter consts renamed from XK_... to XKc_...
-# (since Pascal isn't case-sensitive)
-#
-#i.e.
-#C      Pascal
-#XK_a   XK_a
-#XK_A   XKc_A
-#
-
-#* default keysyms *
-import x
-
-const 
-  XK_VoidSymbol*: TKeySym = 0x00FFFFFF # void symbol 
-
-when defined(XK_MISCELLANY) or true: 
-  const
-    #*
-    # * TTY Functions, cleverly chosen to map to ascii, for convenience of
-    # * programming, but could have been arbitrary (at the cost of lookup
-    # * tables in client code.
-    # *
-    XK_BackSpace*: TKeySym = 0x0000FF08  # back space, back char 
-    XK_Tab*: TKeySym = 0x0000FF09
-    XK_Linefeed*: TKeySym = 0x0000FF0A   # Linefeed, LF 
-    XK_Clear*: TKeySym = 0x0000FF0B
-    XK_Return*: TKeySym = 0x0000FF0D     # Return, enter 
-    XK_Pause*: TKeySym = 0x0000FF13      # Pause, hold 
-    XK_Scroll_Lock*: TKeySym = 0x0000FF14
-    XK_Sys_Req*: TKeySym = 0x0000FF15
-    XK_Escape*: TKeySym = 0x0000FF1B
-    XK_Delete*: TKeySym = 0x0000FFFF     # Delete, rubout \
-                                # International & multi-key character composition 
-    XK_Multi_key*: TKeySym = 0x0000FF20  # Multi-key character compose 
-    XK_Codeinput*: TKeySym = 0x0000FF37
-    XK_SingleCandidate*: TKeySym = 0x0000FF3C
-    XK_MultipleCandidate*: TKeySym = 0x0000FF3D
-    XK_PreviousCandidate*: TKeySym = 0x0000FF3E # Japanese keyboard support 
-    XK_Kanji*: TKeySym = 0x0000FF21      # Kanji, Kanji convert 
-    XK_Muhenkan*: TKeySym = 0x0000FF22   # Cancel Conversion 
-    XK_Henkan_Mode*: TKeySym = 0x0000FF23 # Start/Stop Conversion 
-    XK_Henkan*: TKeySym = 0x0000FF23     # Alias for Henkan_Mode 
-    XK_Romaji*: TKeySym = 0x0000FF24     # to Romaji 
-    XK_Hiragana*: TKeySym = 0x0000FF25   # to Hiragana 
-    XK_Katakana*: TKeySym = 0x0000FF26   # to Katakana 
-    XK_Hiragana_Katakana*: TKeySym = 0x0000FF27 # Hiragana/Katakana toggle 
-    XK_Zenkaku*: TKeySym = 0x0000FF28    # to Zenkaku 
-    XK_Hankaku*: TKeySym = 0x0000FF29    # to Hankaku 
-    XK_Zenkaku_Hankaku*: TKeySym = 0x0000FF2A # Zenkaku/Hankaku toggle 
-    XK_Touroku*: TKeySym = 0x0000FF2B    # Add to Dictionary 
-    XK_Massyo*: TKeySym = 0x0000FF2C     # Delete from Dictionary 
-    XK_Kana_Lock*: TKeySym = 0x0000FF2D  # Kana Lock 
-    XK_Kana_Shift*: TKeySym = 0x0000FF2E # Kana Shift 
-    XK_Eisu_Shift*: TKeySym = 0x0000FF2F # Alphanumeric Shift 
-    XK_Eisu_toggle*: TKeySym = 0x0000FF30 # Alphanumeric toggle 
-    XK_Kanji_Bangou*: TKeySym = 0x0000FF37 # Codeinput 
-    XK_Zen_Koho*: TKeySym = 0x0000FF3D   # Multiple/All Candidate(s) 
-    XK_Mae_Koho*: TKeySym = 0x0000FF3E   # Previous Candidate \
-                                # = $FF31 thru = $FF3F are under XK_KOREAN 
-                                # Cursor control & motion 
-    XK_Home*: TKeySym = 0x0000FF50
-    XK_Left*: TKeySym = 0x0000FF51       # Move left, left arrow 
-    XK_Up*: TKeySym = 0x0000FF52         # Move up, up arrow 
-    XK_Right*: TKeySym = 0x0000FF53      # Move right, right arrow 
-    XK_Down*: TKeySym = 0x0000FF54       # Move down, down arrow 
-    XK_Prior*: TKeySym = 0x0000FF55      # Prior, previous 
-    XK_Page_Up*: TKeySym = 0x0000FF55
-    XK_Next*: TKeySym = 0x0000FF56       # Next 
-    XK_Page_Down*: TKeySym = 0x0000FF56
-    XK_End*: TKeySym = 0x0000FF57        # EOL 
-    XK_Begin*: TKeySym = 0x0000FF58      # BOL \
-                                # Misc Functions 
-    XK_Select*: TKeySym = 0x0000FF60     # Select, mark 
-    XK_Print*: TKeySym = 0x0000FF61
-    XK_Execute*: TKeySym = 0x0000FF62    # Execute, run, do 
-    XK_Insert*: TKeySym = 0x0000FF63     # Insert, insert here 
-    XK_Undo*: TKeySym = 0x0000FF65       # Undo, oops 
-    XK_Redo*: TKeySym = 0x0000FF66       # redo, again 
-    XK_Menu*: TKeySym = 0x0000FF67
-    XK_Find*: TKeySym = 0x0000FF68       # Find, search 
-    XK_Cancel*: TKeySym = 0x0000FF69     # Cancel, stop, abort, exit 
-    XK_Help*: TKeySym = 0x0000FF6A       # Help 
-    XK_Break*: TKeySym = 0x0000FF6B
-    XK_Mode_switch*: TKeySym = 0x0000FF7E # Character set switch 
-    XK_script_switch*: TKeySym = 0x0000FF7E # Alias for mode_switch 
-    XK_Num_Lock*: TKeySym = 0x0000FF7F   # Keypad Functions, keypad numbers cleverly chosen to map to ascii 
-    XK_KP_Space*: TKeySym = 0x0000FF80   # space 
-    XK_KP_Tab*: TKeySym = 0x0000FF89
-    XK_KP_Enter*: TKeySym = 0x0000FF8D   # enter 
-    XK_KP_F1*: TKeySym = 0x0000FF91      # PF1, KP_A, ... 
-    XK_KP_F2*: TKeySym = 0x0000FF92
-    XK_KP_F3*: TKeySym = 0x0000FF93
-    XK_KP_F4*: TKeySym = 0x0000FF94
-    XK_KP_Home*: TKeySym = 0x0000FF95
-    XK_KP_Left*: TKeySym = 0x0000FF96
-    XK_KP_Up*: TKeySym = 0x0000FF97
-    XK_KP_Right*: TKeySym = 0x0000FF98
-    XK_KP_Down*: TKeySym = 0x0000FF99
-    XK_KP_Prior*: TKeySym = 0x0000FF9A
-    XK_KP_Page_Up*: TKeySym = 0x0000FF9A
-    XK_KP_Next*: TKeySym = 0x0000FF9B
-    XK_KP_Page_Down*: TKeySym = 0x0000FF9B
-    XK_KP_End*: TKeySym = 0x0000FF9C
-    XK_KP_Begin*: TKeySym = 0x0000FF9D
-    XK_KP_Insert*: TKeySym = 0x0000FF9E
-    XK_KP_Delete*: TKeySym = 0x0000FF9F
-    XK_KP_Equal*: TKeySym = 0x0000FFBD   # equals 
-    XK_KP_Multiply*: TKeySym = 0x0000FFAA
-    XK_KP_Add*: TKeySym = 0x0000FFAB
-    XK_KP_Separator*: TKeySym = 0x0000FFAC # separator, often comma 
-    XK_KP_Subtract*: TKeySym = 0x0000FFAD
-    XK_KP_Decimal*: TKeySym = 0x0000FFAE
-    XK_KP_Divide*: TKeySym = 0x0000FFAF
-    XK_KP_0*: TKeySym = 0x0000FFB0
-    XK_KP_1*: TKeySym = 0x0000FFB1
-    XK_KP_2*: TKeySym = 0x0000FFB2
-    XK_KP_3*: TKeySym = 0x0000FFB3
-    XK_KP_4*: TKeySym = 0x0000FFB4
-    XK_KP_5*: TKeySym = 0x0000FFB5
-    XK_KP_6*: TKeySym = 0x0000FFB6
-    XK_KP_7*: TKeySym = 0x0000FFB7
-    XK_KP_8*: TKeySym = 0x0000FFB8
-    XK_KP_9*: TKeySym = 0x0000FFB9 #*\
-                          # * Auxilliary Functions; note the duplicate definitions for left and right
-                          # * function keys;  Sun keyboards and a few other manufactures have such
-                          # * function key groups on the left and/or right sides of the keyboard.
-                          # * We've not found a keyboard with more than 35 function keys total.
-                          # *
-    XK_F1*: TKeySym = 0x0000FFBE
-    XK_F2*: TKeySym = 0x0000FFBF
-    XK_F3*: TKeySym = 0x0000FFC0
-    XK_F4*: TKeySym = 0x0000FFC1
-    XK_F5*: TKeySym = 0x0000FFC2
-    XK_F6*: TKeySym = 0x0000FFC3
-    XK_F7*: TKeySym = 0x0000FFC4
-    XK_F8*: TKeySym = 0x0000FFC5
-    XK_F9*: TKeySym = 0x0000FFC6
-    XK_F10*: TKeySym = 0x0000FFC7
-    XK_F11*: TKeySym = 0x0000FFC8
-    XK_L1*: TKeySym = 0x0000FFC8
-    XK_F12*: TKeySym = 0x0000FFC9
-    XK_L2*: TKeySym = 0x0000FFC9
-    XK_F13*: TKeySym = 0x0000FFCA
-    XK_L3*: TKeySym = 0x0000FFCA
-    XK_F14*: TKeySym = 0x0000FFCB
-    XK_L4*: TKeySym = 0x0000FFCB
-    XK_F15*: TKeySym = 0x0000FFCC
-    XK_L5*: TKeySym = 0x0000FFCC
-    XK_F16*: TKeySym = 0x0000FFCD
-    XK_L6*: TKeySym = 0x0000FFCD
-    XK_F17*: TKeySym = 0x0000FFCE
-    XK_L7*: TKeySym = 0x0000FFCE
-    XK_F18*: TKeySym = 0x0000FFCF
-    XK_L8*: TKeySym = 0x0000FFCF
-    XK_F19*: TKeySym = 0x0000FFD0
-    XK_L9*: TKeySym = 0x0000FFD0
-    XK_F20*: TKeySym = 0x0000FFD1
-    XK_L10*: TKeySym = 0x0000FFD1
-    XK_F21*: TKeySym = 0x0000FFD2
-    XK_R1*: TKeySym = 0x0000FFD2
-    XK_F22*: TKeySym = 0x0000FFD3
-    XK_R2*: TKeySym = 0x0000FFD3
-    XK_F23*: TKeySym = 0x0000FFD4
-    XK_R3*: TKeySym = 0x0000FFD4
-    XK_F24*: TKeySym = 0x0000FFD5
-    XK_R4*: TKeySym = 0x0000FFD5
-    XK_F25*: TKeySym = 0x0000FFD6
-    XK_R5*: TKeySym = 0x0000FFD6
-    XK_F26*: TKeySym = 0x0000FFD7
-    XK_R6*: TKeySym = 0x0000FFD7
-    XK_F27*: TKeySym = 0x0000FFD8
-    XK_R7*: TKeySym = 0x0000FFD8
-    XK_F28*: TKeySym = 0x0000FFD9
-    XK_R8*: TKeySym = 0x0000FFD9
-    XK_F29*: TKeySym = 0x0000FFDA
-    XK_R9*: TKeySym = 0x0000FFDA
-    XK_F30*: TKeySym = 0x0000FFDB
-    XK_R10*: TKeySym = 0x0000FFDB
-    XK_F31*: TKeySym = 0x0000FFDC
-    XK_R11*: TKeySym = 0x0000FFDC
-    XK_F32*: TKeySym = 0x0000FFDD
-    XK_R12*: TKeySym = 0x0000FFDD
-    XK_F33*: TKeySym = 0x0000FFDE
-    XK_R13*: TKeySym = 0x0000FFDE
-    XK_F34*: TKeySym = 0x0000FFDF
-    XK_R14*: TKeySym = 0x0000FFDF
-    XK_F35*: TKeySym = 0x0000FFE0
-    XK_R15*: TKeySym = 0x0000FFE0        # Modifiers 
-    XK_Shift_L*: TKeySym = 0x0000FFE1    # Left shift 
-    XK_Shift_R*: TKeySym = 0x0000FFE2    # Right shift 
-    XK_Control_L*: TKeySym = 0x0000FFE3  # Left control 
-    XK_Control_R*: TKeySym = 0x0000FFE4  # Right control 
-    XK_Caps_Lock*: TKeySym = 0x0000FFE5  # Caps lock 
-    XK_Shift_Lock*: TKeySym = 0x0000FFE6 # Shift lock 
-    XK_Meta_L*: TKeySym = 0x0000FFE7     # Left meta 
-    XK_Meta_R*: TKeySym = 0x0000FFE8     # Right meta 
-    XK_Alt_L*: TKeySym = 0x0000FFE9      # Left alt 
-    XK_Alt_R*: TKeySym = 0x0000FFEA      # Right alt 
-    XK_Super_L*: TKeySym = 0x0000FFEB    # Left super 
-    XK_Super_R*: TKeySym = 0x0000FFEC    # Right super 
-    XK_Hyper_L*: TKeySym = 0x0000FFED    # Left hyper 
-    XK_Hyper_R*: TKeySym = 0x0000FFEE    # Right hyper 
-# XK_MISCELLANY 
-#*
-# * ISO 9995 Function and Modifier Keys
-# * Byte 3 = = $FE
-# *
-
-when defined(XK_XKB_KEYS) or true: 
-  const
-    XK_ISO_Lock*: TKeySym = 0x0000FE01
-    XK_ISO_Level2_Latch*: TKeySym = 0x0000FE02
-    XK_ISO_Level3_Shift*: TKeySym = 0x0000FE03
-    XK_ISO_Level3_Latch*: TKeySym = 0x0000FE04
-    XK_ISO_Level3_Lock*: TKeySym = 0x0000FE05
-    XK_ISO_Group_Shift*: TKeySym = 0x0000FF7E # Alias for mode_switch 
-    XK_ISO_Group_Latch*: TKeySym = 0x0000FE06
-    XK_ISO_Group_Lock*: TKeySym = 0x0000FE07
-    XK_ISO_Next_Group*: TKeySym = 0x0000FE08
-    XK_ISO_Next_Group_Lock*: TKeySym = 0x0000FE09
-    XK_ISO_Prev_Group*: TKeySym = 0x0000FE0A
-    XK_ISO_Prev_Group_Lock*: TKeySym = 0x0000FE0B
-    XK_ISO_First_Group*: TKeySym = 0x0000FE0C
-    XK_ISO_First_Group_Lock*: TKeySym = 0x0000FE0D
-    XK_ISO_Last_Group*: TKeySym = 0x0000FE0E
-    XK_ISO_Last_Group_Lock*: TKeySym = 0x0000FE0F
-    XK_ISO_Left_Tab*: TKeySym = 0x0000FE20
-    XK_ISO_Move_Line_Up*: TKeySym = 0x0000FE21
-    XK_ISO_Move_Line_Down*: TKeySym = 0x0000FE22
-    XK_ISO_Partial_Line_Up*: TKeySym = 0x0000FE23
-    XK_ISO_Partial_Line_Down*: TKeySym = 0x0000FE24
-    XK_ISO_Partial_Space_Left*: TKeySym = 0x0000FE25
-    XK_ISO_Partial_Space_Right*: TKeySym = 0x0000FE26
-    XK_ISO_Set_Margin_Left*: TKeySym = 0x0000FE27
-    XK_ISO_Set_Margin_Right*: TKeySym = 0x0000FE28
-    XK_ISO_Release_Margin_Left*: TKeySym = 0x0000FE29
-    XK_ISO_Release_Margin_Right*: TKeySym = 0x0000FE2A
-    XK_ISO_Release_Both_Margins*: TKeySym = 0x0000FE2B
-    XK_ISO_Fast_Cursor_Left*: TKeySym = 0x0000FE2C
-    XK_ISO_Fast_Cursor_Right*: TKeySym = 0x0000FE2D
-    XK_ISO_Fast_Cursor_Up*: TKeySym = 0x0000FE2E
-    XK_ISO_Fast_Cursor_Down*: TKeySym = 0x0000FE2F
-    XK_ISO_Continuous_Underline*: TKeySym = 0x0000FE30
-    XK_ISO_Discontinuous_Underline*: TKeySym = 0x0000FE31
-    XK_ISO_Emphasize*: TKeySym = 0x0000FE32
-    XK_ISO_Center_Object*: TKeySym = 0x0000FE33
-    XK_ISO_Enter*: TKeySym = 0x0000FE34
-    XK_dead_grave*: TKeySym = 0x0000FE50
-    XK_dead_acute*: TKeySym = 0x0000FE51
-    XK_dead_circumflex*: TKeySym = 0x0000FE52
-    XK_dead_tilde*: TKeySym = 0x0000FE53
-    XK_dead_macron*: TKeySym = 0x0000FE54
-    XK_dead_breve*: TKeySym = 0x0000FE55
-    XK_dead_abovedot*: TKeySym = 0x0000FE56
-    XK_dead_diaeresis*: TKeySym = 0x0000FE57
-    XK_dead_abovering*: TKeySym = 0x0000FE58
-    XK_dead_doubleacute*: TKeySym = 0x0000FE59
-    XK_dead_caron*: TKeySym = 0x0000FE5A
-    XK_dead_cedilla*: TKeySym = 0x0000FE5B
-    XK_dead_ogonek*: TKeySym = 0x0000FE5C
-    XK_dead_iota*: TKeySym = 0x0000FE5D
-    XK_dead_voiced_sound*: TKeySym = 0x0000FE5E
-    XK_dead_semivoiced_sound*: TKeySym = 0x0000FE5F
-    XK_dead_belowdot*: TKeySym = 0x0000FE60
-    XK_dead_hook*: TKeySym = 0x0000FE61
-    XK_dead_horn*: TKeySym = 0x0000FE62
-    XK_First_Virtual_Screen*: TKeySym = 0x0000FED0
-    XK_Prev_Virtual_Screen*: TKeySym = 0x0000FED1
-    XK_Next_Virtual_Screen*: TKeySym = 0x0000FED2
-    XK_Last_Virtual_Screen*: TKeySym = 0x0000FED4
-    XK_Terminate_Server*: TKeySym = 0x0000FED5
-    XK_AccessX_Enable*: TKeySym = 0x0000FE70
-    XK_AccessX_Feedback_Enable*: TKeySym = 0x0000FE71
-    XK_RepeatKeys_Enable*: TKeySym = 0x0000FE72
-    XK_SlowKeys_Enable*: TKeySym = 0x0000FE73
-    XK_BounceKeys_Enable*: TKeySym = 0x0000FE74
-    XK_StickyKeys_Enable*: TKeySym = 0x0000FE75
-    XK_MouseKeys_Enable*: TKeySym = 0x0000FE76
-    XK_MouseKeys_Accel_Enable*: TKeySym = 0x0000FE77
-    XK_Overlay1_Enable*: TKeySym = 0x0000FE78
-    XK_Overlay2_Enable*: TKeySym = 0x0000FE79
-    XK_AudibleBell_Enable*: TKeySym = 0x0000FE7A
-    XK_Pointer_Left*: TKeySym = 0x0000FEE0
-    XK_Pointer_Right*: TKeySym = 0x0000FEE1
-    XK_Pointer_Up*: TKeySym = 0x0000FEE2
-    XK_Pointer_Down*: TKeySym = 0x0000FEE3
-    XK_Pointer_UpLeft*: TKeySym = 0x0000FEE4
-    XK_Pointer_UpRight*: TKeySym = 0x0000FEE5
-    XK_Pointer_DownLeft*: TKeySym = 0x0000FEE6
-    XK_Pointer_DownRight*: TKeySym = 0x0000FEE7
-    XK_Pointer_Button_Dflt*: TKeySym = 0x0000FEE8
-    XK_Pointer_Button1*: TKeySym = 0x0000FEE9
-    XK_Pointer_Button2*: TKeySym = 0x0000FEEA
-    XK_Pointer_Button3*: TKeySym = 0x0000FEEB
-    XK_Pointer_Button4*: TKeySym = 0x0000FEEC
-    XK_Pointer_Button5*: TKeySym = 0x0000FEED
-    XK_Pointer_DblClick_Dflt*: TKeySym = 0x0000FEEE
-    XK_Pointer_DblClick1*: TKeySym = 0x0000FEEF
-    XK_Pointer_DblClick2*: TKeySym = 0x0000FEF0
-    XK_Pointer_DblClick3*: TKeySym = 0x0000FEF1
-    XK_Pointer_DblClick4*: TKeySym = 0x0000FEF2
-    XK_Pointer_DblClick5*: TKeySym = 0x0000FEF3
-    XK_Pointer_Drag_Dflt*: TKeySym = 0x0000FEF4
-    XK_Pointer_Drag1*: TKeySym = 0x0000FEF5
-    XK_Pointer_Drag2*: TKeySym = 0x0000FEF6
-    XK_Pointer_Drag3*: TKeySym = 0x0000FEF7
-    XK_Pointer_Drag4*: TKeySym = 0x0000FEF8
-    XK_Pointer_Drag5*: TKeySym = 0x0000FEFD
-    XK_Pointer_EnableKeys*: TKeySym = 0x0000FEF9
-    XK_Pointer_Accelerate*: TKeySym = 0x0000FEFA
-    XK_Pointer_DfltBtnNext*: TKeySym = 0x0000FEFB
-    XK_Pointer_DfltBtnPrev*: TKeySym = 0x0000FEFC
-  #*
-  # * 3270 Terminal Keys
-  # * Byte 3 = = $FD
-  # *
-
-when defined(XK_3270) or true: 
-  const
-    XK_3270_Duplicate*: TKeySym = 0x0000FD01
-    XK_3270_FieldMark*: TKeySym = 0x0000FD02
-    XK_3270_Right2*: TKeySym = 0x0000FD03
-    XK_3270_Left2*: TKeySym = 0x0000FD04
-    XK_3270_BackTab*: TKeySym = 0x0000FD05
-    XK_3270_EraseEOF*: TKeySym = 0x0000FD06
-    XK_3270_EraseInput*: TKeySym = 0x0000FD07
-    XK_3270_Reset*: TKeySym = 0x0000FD08
-    XK_3270_Quit*: TKeySym = 0x0000FD09
-    XK_3270_PA1*: TKeySym = 0x0000FD0A
-    XK_3270_PA2*: TKeySym = 0x0000FD0B
-    XK_3270_PA3*: TKeySym = 0x0000FD0C
-    XK_3270_Test*: TKeySym = 0x0000FD0D
-    XK_3270_Attn*: TKeySym = 0x0000FD0E
-    XK_3270_CursorBlink*: TKeySym = 0x0000FD0F
-    XK_3270_AltCursor*: TKeySym = 0x0000FD10
-    XK_3270_KeyClick*: TKeySym = 0x0000FD11
-    XK_3270_Jump*: TKeySym = 0x0000FD12
-    XK_3270_Ident*: TKeySym = 0x0000FD13
-    XK_3270_Rule*: TKeySym = 0x0000FD14
-    XK_3270_Copy*: TKeySym = 0x0000FD15
-    XK_3270_Play*: TKeySym = 0x0000FD16
-    XK_3270_Setup*: TKeySym = 0x0000FD17
-    XK_3270_Record*: TKeySym = 0x0000FD18
-    XK_3270_ChangeScreen*: TKeySym = 0x0000FD19
-    XK_3270_DeleteWord*: TKeySym = 0x0000FD1A
-    XK_3270_ExSelect*: TKeySym = 0x0000FD1B
-    XK_3270_CursorSelect*: TKeySym = 0x0000FD1C
-    XK_3270_PrintScreen*: TKeySym = 0x0000FD1D
-    XK_3270_Enter*: TKeySym = 0x0000FD1E
-#*
-# *  Latin 1
-# *  Byte 3 = 0
-# *
-
-when defined(XK_LATIN1) or true: 
-  const
-    XK_space*: TKeySym = 0x00000020
-    XK_exclam*: TKeySym = 0x00000021
-    XK_quotedbl*: TKeySym = 0x00000022
-    XK_numbersign*: TKeySym = 0x00000023
-    XK_dollar*: TKeySym = 0x00000024
-    XK_percent*: TKeySym = 0x00000025
-    XK_ampersand*: TKeySym = 0x00000026
-    XK_apostrophe*: TKeySym = 0x00000027
-    XK_quoteright*: TKeySym = 0x00000027 # deprecated 
-    XK_parenleft*: TKeySym = 0x00000028
-    XK_parenright*: TKeySym = 0x00000029
-    XK_asterisk*: TKeySym = 0x0000002A
-    XK_plus*: TKeySym = 0x0000002B
-    XK_comma*: TKeySym = 0x0000002C
-    XK_minus*: TKeySym = 0x0000002D
-    XK_period*: TKeySym = 0x0000002E
-    XK_slash*: TKeySym = 0x0000002F
-    XK_0*: TKeySym = 0x00000030
-    XK_1*: TKeySym = 0x00000031
-    XK_2*: TKeySym = 0x00000032
-    XK_3*: TKeySym = 0x00000033
-    XK_4*: TKeySym = 0x00000034
-    XK_5*: TKeySym = 0x00000035
-    XK_6*: TKeySym = 0x00000036
-    XK_7*: TKeySym = 0x00000037
-    XK_8*: TKeySym = 0x00000038
-    XK_9*: TKeySym = 0x00000039
-    XK_colon*: TKeySym = 0x0000003A
-    XK_semicolon*: TKeySym = 0x0000003B
-    XK_less*: TKeySym = 0x0000003C
-    XK_equal*: TKeySym = 0x0000003D
-    XK_greater*: TKeySym = 0x0000003E
-    XK_question*: TKeySym = 0x0000003F
-    XK_at*: TKeySym = 0x00000040
-    XKc_A*: TKeySym = 0x00000041
-    XKc_B*: TKeySym = 0x00000042
-    XKc_C*: TKeySym = 0x00000043
-    XKc_D*: TKeySym = 0x00000044
-    XKc_E*: TKeySym = 0x00000045
-    XKc_F*: TKeySym = 0x00000046
-    XKc_G*: TKeySym = 0x00000047
-    XKc_H*: TKeySym = 0x00000048
-    XKc_I*: TKeySym = 0x00000049
-    XKc_J*: TKeySym = 0x0000004A
-    XKc_K*: TKeySym = 0x0000004B
-    XKc_L*: TKeySym = 0x0000004C
-    XKc_M*: TKeySym = 0x0000004D
-    XKc_N*: TKeySym = 0x0000004E
-    XKc_O*: TKeySym = 0x0000004F
-    XKc_P*: TKeySym = 0x00000050
-    XKc_Q*: TKeySym = 0x00000051
-    XKc_R*: TKeySym = 0x00000052
-    XKc_S*: TKeySym = 0x00000053
-    XKc_T*: TKeySym = 0x00000054
-    XKc_U*: TKeySym = 0x00000055
-    XKc_V*: TKeySym = 0x00000056
-    XKc_W*: TKeySym = 0x00000057
-    XKc_X*: TKeySym = 0x00000058
-    XKc_Y*: TKeySym = 0x00000059
-    XKc_Z*: TKeySym = 0x0000005A
-    XK_bracketleft*: TKeySym = 0x0000005B
-    XK_backslash*: TKeySym = 0x0000005C
-    XK_bracketright*: TKeySym = 0x0000005D
-    XK_asciicircum*: TKeySym = 0x0000005E
-    XK_underscore*: TKeySym = 0x0000005F
-    XK_grave*: TKeySym = 0x00000060
-    XK_quoteleft*: TKeySym = 0x00000060  # deprecated 
-    XK_a*: TKeySym = 0x00000061
-    XK_b*: TKeySym = 0x00000062
-    XK_c*: TKeySym = 0x00000063
-    XK_d*: TKeySym = 0x00000064
-    XK_e*: TKeySym = 0x00000065
-    XK_f*: TKeySym = 0x00000066
-    XK_g*: TKeySym = 0x00000067
-    XK_h*: TKeySym = 0x00000068
-    XK_i*: TKeySym = 0x00000069
-    XK_j*: TKeySym = 0x0000006A
-    XK_k*: TKeySym = 0x0000006B
-    XK_l*: TKeySym = 0x0000006C
-    XK_m*: TKeySym = 0x0000006D
-    XK_n*: TKeySym = 0x0000006E
-    XK_o*: TKeySym = 0x0000006F
-    XK_p*: TKeySym = 0x00000070
-    XK_q*: TKeySym = 0x00000071
-    XK_r*: TKeySym = 0x00000072
-    XK_s*: TKeySym = 0x00000073
-    XK_t*: TKeySym = 0x00000074
-    XK_u*: TKeySym = 0x00000075
-    XK_v*: TKeySym = 0x00000076
-    XK_w*: TKeySym = 0x00000077
-    XK_x*: TKeySym = 0x00000078
-    XK_y*: TKeySym = 0x00000079
-    XK_z*: TKeySym = 0x0000007A
-    XK_braceleft*: TKeySym = 0x0000007B
-    XK_bar*: TKeySym = 0x0000007C
-    XK_braceright*: TKeySym = 0x0000007D
-    XK_asciitilde*: TKeySym = 0x0000007E
-    XK_nobreakspace*: TKeySym = 0x000000A0
-    XK_exclamdown*: TKeySym = 0x000000A1
-    XK_cent*: TKeySym = 0x000000A2
-    XK_sterling*: TKeySym = 0x000000A3
-    XK_currency*: TKeySym = 0x000000A4
-    XK_yen*: TKeySym = 0x000000A5
-    XK_brokenbar*: TKeySym = 0x000000A6
-    XK_section*: TKeySym = 0x000000A7
-    XK_diaeresis*: TKeySym = 0x000000A8
-    XK_copyright*: TKeySym = 0x000000A9
-    XK_ordfeminine*: TKeySym = 0x000000AA
-    XK_guillemotleft*: TKeySym = 0x000000AB # left angle quotation mark 
-    XK_notsign*: TKeySym = 0x000000AC
-    XK_hyphen*: TKeySym = 0x000000AD
-    XK_registered*: TKeySym = 0x000000AE
-    XK_macron*: TKeySym = 0x000000AF
-    XK_degree*: TKeySym = 0x000000B0
-    XK_plusminus*: TKeySym = 0x000000B1
-    XK_twosuperior*: TKeySym = 0x000000B2
-    XK_threesuperior*: TKeySym = 0x000000B3
-    XK_acute*: TKeySym = 0x000000B4
-    XK_mu*: TKeySym = 0x000000B5
-    XK_paragraph*: TKeySym = 0x000000B6
-    XK_periodcentered*: TKeySym = 0x000000B7
-    XK_cedilla*: TKeySym = 0x000000B8
-    XK_onesuperior*: TKeySym = 0x000000B9
-    XK_masculine*: TKeySym = 0x000000BA
-    XK_guillemotright*: TKeySym = 0x000000BB # right angle quotation mark 
-    XK_onequarter*: TKeySym = 0x000000BC
-    XK_onehalf*: TKeySym = 0x000000BD
-    XK_threequarters*: TKeySym = 0x000000BE
-    XK_questiondown*: TKeySym = 0x000000BF
-    XKc_Agrave*: TKeySym = 0x000000C0
-    XKc_Aacute*: TKeySym = 0x000000C1
-    XKc_Acircumflex*: TKeySym = 0x000000C2
-    XKc_Atilde*: TKeySym = 0x000000C3
-    XKc_Adiaeresis*: TKeySym = 0x000000C4
-    XKc_Aring*: TKeySym = 0x000000C5
-    XKc_AE*: TKeySym = 0x000000C6
-    XKc_Ccedilla*: TKeySym = 0x000000C7
-    XKc_Egrave*: TKeySym = 0x000000C8
-    XKc_Eacute*: TKeySym = 0x000000C9
-    XKc_Ecircumflex*: TKeySym = 0x000000CA
-    XKc_Ediaeresis*: TKeySym = 0x000000CB
-    XKc_Igrave*: TKeySym = 0x000000CC
-    XKc_Iacute*: TKeySym = 0x000000CD
-    XKc_Icircumflex*: TKeySym = 0x000000CE
-    XKc_Idiaeresis*: TKeySym = 0x000000CF
-    XKc_ETH*: TKeySym = 0x000000D0
-    XKc_Ntilde*: TKeySym = 0x000000D1
-    XKc_Ograve*: TKeySym = 0x000000D2
-    XKc_Oacute*: TKeySym = 0x000000D3
-    XKc_Ocircumflex*: TKeySym = 0x000000D4
-    XKc_Otilde*: TKeySym = 0x000000D5
-    XKc_Odiaeresis*: TKeySym = 0x000000D6
-    XK_multiply*: TKeySym = 0x000000D7
-    XKc_Ooblique*: TKeySym = 0x000000D8
-    XKc_Oslash*: TKeySym = XKc_Ooblique
-    XKc_Ugrave*: TKeySym = 0x000000D9
-    XKc_Uacute*: TKeySym = 0x000000DA
-    XKc_Ucircumflex*: TKeySym = 0x000000DB
-    XKc_Udiaeresis*: TKeySym = 0x000000DC
-    XKc_Yacute*: TKeySym = 0x000000DD
-    XKc_THORN*: TKeySym = 0x000000DE
-    XK_ssharp*: TKeySym = 0x000000DF
-    XK_agrave*: TKeySym = 0x000000E0
-    XK_aacute*: TKeySym = 0x000000E1
-    XK_acircumflex*: TKeySym = 0x000000E2
-    XK_atilde*: TKeySym = 0x000000E3
-    XK_adiaeresis*: TKeySym = 0x000000E4
-    XK_aring*: TKeySym = 0x000000E5
-    XK_ae*: TKeySym = 0x000000E6
-    XK_ccedilla*: TKeySym = 0x000000E7
-    XK_egrave*: TKeySym = 0x000000E8
-    XK_eacute*: TKeySym = 0x000000E9
-    XK_ecircumflex*: TKeySym = 0x000000EA
-    XK_ediaeresis*: TKeySym = 0x000000EB
-    XK_igrave*: TKeySym = 0x000000EC
-    XK_iacute*: TKeySym = 0x000000ED
-    XK_icircumflex*: TKeySym = 0x000000EE
-    XK_idiaeresis*: TKeySym = 0x000000EF
-    XK_eth*: TKeySym = 0x000000F0
-    XK_ntilde*: TKeySym = 0x000000F1
-    XK_ograve*: TKeySym = 0x000000F2
-    XK_oacute*: TKeySym = 0x000000F3
-    XK_ocircumflex*: TKeySym = 0x000000F4
-    XK_otilde*: TKeySym = 0x000000F5
-    XK_odiaeresis*: TKeySym = 0x000000F6
-    XK_division*: TKeySym = 0x000000F7
-    XK_oslash*: TKeySym = 0x000000F8
-    XK_ooblique*: TKeySym = XK_oslash
-    XK_ugrave*: TKeySym = 0x000000F9
-    XK_uacute*: TKeySym = 0x000000FA
-    XK_ucircumflex*: TKeySym = 0x000000FB
-    XK_udiaeresis*: TKeySym = 0x000000FC
-    XK_yacute*: TKeySym = 0x000000FD
-    XK_thorn*: TKeySym = 0x000000FE
-    XK_ydiaeresis*: TKeySym = 0x000000FF
-# XK_LATIN1 
-#*
-# *   Latin 2
-# *   Byte 3 = 1
-# *
-
-when defined(XK_LATIN2) or true: 
-  const
-    XKc_Aogonek*: TKeySym = 0x000001A1
-    XK_breve*: TKeySym = 0x000001A2
-    XKc_Lstroke*: TKeySym = 0x000001A3
-    XKc_Lcaron*: TKeySym = 0x000001A5
-    XKc_Sacute*: TKeySym = 0x000001A6
-    XKc_Scaron*: TKeySym = 0x000001A9
-    XKc_Scedilla*: TKeySym = 0x000001AA
-    XKc_Tcaron*: TKeySym = 0x000001AB
-    XKc_Zacute*: TKeySym = 0x000001AC
-    XKc_Zcaron*: TKeySym = 0x000001AE
-    XKc_Zabovedot*: TKeySym = 0x000001AF
-    XK_aogonek*: TKeySym = 0x000001B1
-    XK_ogonek*: TKeySym = 0x000001B2
-    XK_lstroke*: TKeySym = 0x000001B3
-    XK_lcaron*: TKeySym = 0x000001B5
-    XK_sacute*: TKeySym = 0x000001B6
-    XK_caron*: TKeySym = 0x000001B7
-    XK_scaron*: TKeySym = 0x000001B9
-    XK_scedilla*: TKeySym = 0x000001BA
-    XK_tcaron*: TKeySym = 0x000001BB
-    XK_zacute*: TKeySym = 0x000001BC
-    XK_doubleacute*: TKeySym = 0x000001BD
-    XK_zcaron*: TKeySym = 0x000001BE
-    XK_zabovedot*: TKeySym = 0x000001BF
-    XKc_Racute*: TKeySym = 0x000001C0
-    XKc_Abreve*: TKeySym = 0x000001C3
-    XKc_Lacute*: TKeySym = 0x000001C5
-    XKc_Cacute*: TKeySym = 0x000001C6
-    XKc_Ccaron*: TKeySym = 0x000001C8
-    XKc_Eogonek*: TKeySym = 0x000001CA
-    XKc_Ecaron*: TKeySym = 0x000001CC
-    XKc_Dcaron*: TKeySym = 0x000001CF
-    XKc_Dstroke*: TKeySym = 0x000001D0
-    XKc_Nacute*: TKeySym = 0x000001D1
-    XKc_Ncaron*: TKeySym = 0x000001D2
-    XKc_Odoubleacute*: TKeySym = 0x000001D5
-    XKc_Rcaron*: TKeySym = 0x000001D8
-    XKc_Uring*: TKeySym = 0x000001D9
-    XKc_Udoubleacute*: TKeySym = 0x000001DB
-    XKc_Tcedilla*: TKeySym = 0x000001DE
-    XK_racute*: TKeySym = 0x000001E0
-    XK_abreve*: TKeySym = 0x000001E3
-    XK_lacute*: TKeySym = 0x000001E5
-    XK_cacute*: TKeySym = 0x000001E6
-    XK_ccaron*: TKeySym = 0x000001E8
-    XK_eogonek*: TKeySym = 0x000001EA
-    XK_ecaron*: TKeySym = 0x000001EC
-    XK_dcaron*: TKeySym = 0x000001EF
-    XK_dstroke*: TKeySym = 0x000001F0
-    XK_nacute*: TKeySym = 0x000001F1
-    XK_ncaron*: TKeySym = 0x000001F2
-    XK_odoubleacute*: TKeySym = 0x000001F5
-    XK_udoubleacute*: TKeySym = 0x000001FB
-    XK_rcaron*: TKeySym = 0x000001F8
-    XK_uring*: TKeySym = 0x000001F9
-    XK_tcedilla*: TKeySym = 0x000001FE
-    XK_abovedot*: TKeySym = 0x000001FF
-# XK_LATIN2 
-#*
-# *   Latin 3
-# *   Byte 3 = 2
-# *
-
-when defined(XK_LATIN3) or true: 
-  const
-    XKc_Hstroke*: TKeySym = 0x000002A1
-    XKc_Hcircumflex*: TKeySym = 0x000002A6
-    XKc_Iabovedot*: TKeySym = 0x000002A9
-    XKc_Gbreve*: TKeySym = 0x000002AB
-    XKc_Jcircumflex*: TKeySym = 0x000002AC
-    XK_hstroke*: TKeySym = 0x000002B1
-    XK_hcircumflex*: TKeySym = 0x000002B6
-    XK_idotless*: TKeySym = 0x000002B9
-    XK_gbreve*: TKeySym = 0x000002BB
-    XK_jcircumflex*: TKeySym = 0x000002BC
-    XKc_Cabovedot*: TKeySym = 0x000002C5
-    XKc_Ccircumflex*: TKeySym = 0x000002C6
-    XKc_Gabovedot*: TKeySym = 0x000002D5
-    XKc_Gcircumflex*: TKeySym = 0x000002D8
-    XKc_Ubreve*: TKeySym = 0x000002DD
-    XKc_Scircumflex*: TKeySym = 0x000002DE
-    XK_cabovedot*: TKeySym = 0x000002E5
-    XK_ccircumflex*: TKeySym = 0x000002E6
-    XK_gabovedot*: TKeySym = 0x000002F5
-    XK_gcircumflex*: TKeySym = 0x000002F8
-    XK_ubreve*: TKeySym = 0x000002FD
-    XK_scircumflex*: TKeySym = 0x000002FE
-# XK_LATIN3 
-#*
-# *   Latin 4
-# *   Byte 3 = 3
-# *
-
-when defined(XK_LATIN4) or true: 
-  const
-    XK_kra*: TKeySym = 0x000003A2
-    XK_kappa*: TKeySym = 0x000003A2      # deprecated 
-    XKc_Rcedilla*: TKeySym = 0x000003A3
-    XKc_Itilde*: TKeySym = 0x000003A5
-    XKc_Lcedilla*: TKeySym = 0x000003A6
-    XKc_Emacron*: TKeySym = 0x000003AA
-    XKc_Gcedilla*: TKeySym = 0x000003AB
-    XKc_Tslash*: TKeySym = 0x000003AC
-    XK_rcedilla*: TKeySym = 0x000003B3
-    XK_itilde*: TKeySym = 0x000003B5
-    XK_lcedilla*: TKeySym = 0x000003B6
-    XK_emacron*: TKeySym = 0x000003BA
-    XK_gcedilla*: TKeySym = 0x000003BB
-    XK_tslash*: TKeySym = 0x000003BC
-    XKc_ENG*: TKeySym = 0x000003BD
-    XK_eng*: TKeySym = 0x000003BF
-    XKc_Amacron*: TKeySym = 0x000003C0
-    XKc_Iogonek*: TKeySym = 0x000003C7
-    XKc_Eabovedot*: TKeySym = 0x000003CC
-    XKc_Imacron*: TKeySym = 0x000003CF
-    XKc_Ncedilla*: TKeySym = 0x000003D1
-    XKc_Omacron*: TKeySym = 0x000003D2
-    XKc_Kcedilla*: TKeySym = 0x000003D3
-    XKc_Uogonek*: TKeySym = 0x000003D9
-    XKc_Utilde*: TKeySym = 0x000003DD
-    XKc_Umacron*: TKeySym = 0x000003DE
-    XK_amacron*: TKeySym = 0x000003E0
-    XK_iogonek*: TKeySym = 0x000003E7
-    XK_eabovedot*: TKeySym = 0x000003EC
-    XK_imacron*: TKeySym = 0x000003EF
-    XK_ncedilla*: TKeySym = 0x000003F1
-    XK_omacron*: TKeySym = 0x000003F2
-    XK_kcedilla*: TKeySym = 0x000003F3
-    XK_uogonek*: TKeySym = 0x000003F9
-    XK_utilde*: TKeySym = 0x000003FD
-    XK_umacron*: TKeySym = 0x000003FE
-# XK_LATIN4 
-#*
-# * Latin-8
-# * Byte 3 = 18
-# *
-
-when defined(XK_LATIN8) or true: 
-  const
-    XKc_Babovedot*: TKeySym = 0x000012A1
-    XK_babovedot*: TKeySym = 0x000012A2
-    XKc_Dabovedot*: TKeySym = 0x000012A6
-    XKc_Wgrave*: TKeySym = 0x000012A8
-    XKc_Wacute*: TKeySym = 0x000012AA
-    XK_dabovedot*: TKeySym = 0x000012AB
-    XKc_Ygrave*: TKeySym = 0x000012AC
-    XKc_Fabovedot*: TKeySym = 0x000012B0
-    XK_fabovedot*: TKeySym = 0x000012B1
-    XKc_Mabovedot*: TKeySym = 0x000012B4
-    XK_mabovedot*: TKeySym = 0x000012B5
-    XKc_Pabovedot*: TKeySym = 0x000012B7
-    XK_wgrave*: TKeySym = 0x000012B8
-    XK_pabovedot*: TKeySym = 0x000012B9
-    XK_wacute*: TKeySym = 0x000012BA
-    XKc_Sabovedot*: TKeySym = 0x000012BB
-    XK_ygrave*: TKeySym = 0x000012BC
-    XKc_Wdiaeresis*: TKeySym = 0x000012BD
-    XK_wdiaeresis*: TKeySym = 0x000012BE
-    XK_sabovedot*: TKeySym = 0x000012BF
-    XKc_Wcircumflex*: TKeySym = 0x000012D0
-    XKc_Tabovedot*: TKeySym = 0x000012D7
-    XKc_Ycircumflex*: TKeySym = 0x000012DE
-    XK_wcircumflex*: TKeySym = 0x000012F0
-    XK_tabovedot*: TKeySym = 0x000012F7
-    XK_ycircumflex*: TKeySym = 0x000012FE
-# XK_LATIN8 
-#*
-# * Latin-9 (a.k.a. Latin-0)
-# * Byte 3 = 19
-# *
-
-when defined(XK_LATIN9) or true: 
-  const
-    XKc_OE*: TKeySym = 0x000013BC
-    XK_oe*: TKeySym = 0x000013BD
-    XKc_Ydiaeresis*: TKeySym = 0x000013BE
-# XK_LATIN9 
-#*
-# * Katakana
-# * Byte 3 = 4
-# *
-
-when defined(XK_KATAKANA) or true: 
-  const
-    XK_overline*: TKeySym = 0x0000047E
-    XK_kana_fullstop*: TKeySym = 0x000004A1
-    XK_kana_openingbracket*: TKeySym = 0x000004A2
-    XK_kana_closingbracket*: TKeySym = 0x000004A3
-    XK_kana_comma*: TKeySym = 0x000004A4
-    XK_kana_conjunctive*: TKeySym = 0x000004A5
-    XK_kana_middledot*: TKeySym = 0x000004A5 # deprecated 
-    XKc_kana_WO*: TKeySym = 0x000004A6
-    XK_kana_a*: TKeySym = 0x000004A7
-    XK_kana_i*: TKeySym = 0x000004A8
-    XK_kana_u*: TKeySym = 0x000004A9
-    XK_kana_e*: TKeySym = 0x000004AA
-    XK_kana_o*: TKeySym = 0x000004AB
-    XK_kana_ya*: TKeySym = 0x000004AC
-    XK_kana_yu*: TKeySym = 0x000004AD
-    XK_kana_yo*: TKeySym = 0x000004AE
-    XK_kana_tsu*: TKeySym = 0x000004AF
-    XK_kana_tu*: TKeySym = 0x000004AF    # deprecated 
-    XK_prolongedsound*: TKeySym = 0x000004B0
-    XKc_kana_A*: TKeySym = 0x000004B1
-    XKc_kana_I*: TKeySym = 0x000004B2
-    XKc_kana_U*: TKeySym = 0x000004B3
-    XKc_kana_E*: TKeySym = 0x000004B4
-    XKc_kana_O*: TKeySym = 0x000004B5
-    XKc_kana_KA*: TKeySym = 0x000004B6
-    XKc_kana_KI*: TKeySym = 0x000004B7
-    XKc_kana_KU*: TKeySym = 0x000004B8
-    XKc_kana_KE*: TKeySym = 0x000004B9
-    XKc_kana_KO*: TKeySym = 0x000004BA
-    XKc_kana_SA*: TKeySym = 0x000004BB
-    XKc_kana_SHI*: TKeySym = 0x000004BC
-    XKc_kana_SU*: TKeySym = 0x000004BD
-    XKc_kana_SE*: TKeySym = 0x000004BE
-    XKc_kana_SO*: TKeySym = 0x000004BF
-    XKc_kana_TA*: TKeySym = 0x000004C0
-    XKc_kana_CHI*: TKeySym = 0x000004C1
-    XKc_kana_TI*: TKeySym = 0x000004C1   # deprecated 
-    XKc_kana_TSU*: TKeySym = 0x000004C2
-    XKc_kana_TU*: TKeySym = 0x000004C2   # deprecated 
-    XKc_kana_TE*: TKeySym = 0x000004C3
-    XKc_kana_TO*: TKeySym = 0x000004C4
-    XKc_kana_NA*: TKeySym = 0x000004C5
-    XKc_kana_NI*: TKeySym = 0x000004C6
-    XKc_kana_NU*: TKeySym = 0x000004C7
-    XKc_kana_NE*: TKeySym = 0x000004C8
-    XKc_kana_NO*: TKeySym = 0x000004C9
-    XKc_kana_HA*: TKeySym = 0x000004CA
-    XKc_kana_HI*: TKeySym = 0x000004CB
-    XKc_kana_FU*: TKeySym = 0x000004CC
-    XKc_kana_HU*: TKeySym = 0x000004CC   # deprecated 
-    XKc_kana_HE*: TKeySym = 0x000004CD
-    XKc_kana_HO*: TKeySym = 0x000004CE
-    XKc_kana_MA*: TKeySym = 0x000004CF
-    XKc_kana_MI*: TKeySym = 0x000004D0
-    XKc_kana_MU*: TKeySym = 0x000004D1
-    XKc_kana_ME*: TKeySym = 0x000004D2
-    XKc_kana_MO*: TKeySym = 0x000004D3
-    XKc_kana_YA*: TKeySym = 0x000004D4
-    XKc_kana_YU*: TKeySym = 0x000004D5
-    XKc_kana_YO*: TKeySym = 0x000004D6
-    XKc_kana_RA*: TKeySym = 0x000004D7
-    XKc_kana_RI*: TKeySym = 0x000004D8
-    XKc_kana_RU*: TKeySym = 0x000004D9
-    XKc_kana_RE*: TKeySym = 0x000004DA
-    XKc_kana_RO*: TKeySym = 0x000004DB
-    XKc_kana_WA*: TKeySym = 0x000004DC
-    XKc_kana_N*: TKeySym = 0x000004DD
-    XK_voicedsound*: TKeySym = 0x000004DE
-    XK_semivoicedsound*: TKeySym = 0x000004DF
-    XK_kana_switch*: TKeySym = 0x0000FF7E # Alias for mode_switch 
-# XK_KATAKANA 
-#*
-# *  Arabic
-# *  Byte 3 = 5
-# *
-
-when defined(XK_ARABIC) or true: 
-  const
-    XK_Farsi_0*: TKeySym = 0x00000590
-    XK_Farsi_1*: TKeySym = 0x00000591
-    XK_Farsi_2*: TKeySym = 0x00000592
-    XK_Farsi_3*: TKeySym = 0x00000593
-    XK_Farsi_4*: TKeySym = 0x00000594
-    XK_Farsi_5*: TKeySym = 0x00000595
-    XK_Farsi_6*: TKeySym = 0x00000596
-    XK_Farsi_7*: TKeySym = 0x00000597
-    XK_Farsi_8*: TKeySym = 0x00000598
-    XK_Farsi_9*: TKeySym = 0x00000599
-    XK_Arabic_percent*: TKeySym = 0x000005A5
-    XK_Arabic_superscript_alef*: TKeySym = 0x000005A6
-    XK_Arabic_tteh*: TKeySym = 0x000005A7
-    XK_Arabic_peh*: TKeySym = 0x000005A8
-    XK_Arabic_tcheh*: TKeySym = 0x000005A9
-    XK_Arabic_ddal*: TKeySym = 0x000005AA
-    XK_Arabic_rreh*: TKeySym = 0x000005AB
-    XK_Arabic_comma*: TKeySym = 0x000005AC
-    XK_Arabic_fullstop*: TKeySym = 0x000005AE
-    XK_Arabic_0*: TKeySym = 0x000005B0
-    XK_Arabic_1*: TKeySym = 0x000005B1
-    XK_Arabic_2*: TKeySym = 0x000005B2
-    XK_Arabic_3*: TKeySym = 0x000005B3
-    XK_Arabic_4*: TKeySym = 0x000005B4
-    XK_Arabic_5*: TKeySym = 0x000005B5
-    XK_Arabic_6*: TKeySym = 0x000005B6
-    XK_Arabic_7*: TKeySym = 0x000005B7
-    XK_Arabic_8*: TKeySym = 0x000005B8
-    XK_Arabic_9*: TKeySym = 0x000005B9
-    XK_Arabic_semicolon*: TKeySym = 0x000005BB
-    XK_Arabic_question_mark*: TKeySym = 0x000005BF
-    XK_Arabic_hamza*: TKeySym = 0x000005C1
-    XK_Arabic_maddaonalef*: TKeySym = 0x000005C2
-    XK_Arabic_hamzaonalef*: TKeySym = 0x000005C3
-    XK_Arabic_hamzaonwaw*: TKeySym = 0x000005C4
-    XK_Arabic_hamzaunderalef*: TKeySym = 0x000005C5
-    XK_Arabic_hamzaonyeh*: TKeySym = 0x000005C6
-    XK_Arabic_alef*: TKeySym = 0x000005C7
-    XK_Arabic_beh*: TKeySym = 0x000005C8
-    XK_Arabic_tehmarbuta*: TKeySym = 0x000005C9
-    XK_Arabic_teh*: TKeySym = 0x000005CA
-    XK_Arabic_theh*: TKeySym = 0x000005CB
-    XK_Arabic_jeem*: TKeySym = 0x000005CC
-    XK_Arabic_hah*: TKeySym = 0x000005CD
-    XK_Arabic_khah*: TKeySym = 0x000005CE
-    XK_Arabic_dal*: TKeySym = 0x000005CF
-    XK_Arabic_thal*: TKeySym = 0x000005D0
-    XK_Arabic_ra*: TKeySym = 0x000005D1
-    XK_Arabic_zain*: TKeySym = 0x000005D2
-    XK_Arabic_seen*: TKeySym = 0x000005D3
-    XK_Arabic_sheen*: TKeySym = 0x000005D4
-    XK_Arabic_sad*: TKeySym = 0x000005D5
-    XK_Arabic_dad*: TKeySym = 0x000005D6
-    XK_Arabic_tah*: TKeySym = 0x000005D7
-    XK_Arabic_zah*: TKeySym = 0x000005D8
-    XK_Arabic_ain*: TKeySym = 0x000005D9
-    XK_Arabic_ghain*: TKeySym = 0x000005DA
-    XK_Arabic_tatweel*: TKeySym = 0x000005E0
-    XK_Arabic_feh*: TKeySym = 0x000005E1
-    XK_Arabic_qaf*: TKeySym = 0x000005E2
-    XK_Arabic_kaf*: TKeySym = 0x000005E3
-    XK_Arabic_lam*: TKeySym = 0x000005E4
-    XK_Arabic_meem*: TKeySym = 0x000005E5
-    XK_Arabic_noon*: TKeySym = 0x000005E6
-    XK_Arabic_ha*: TKeySym = 0x000005E7
-    XK_Arabic_heh*: TKeySym = 0x000005E7 # deprecated 
-    XK_Arabic_waw*: TKeySym = 0x000005E8
-    XK_Arabic_alefmaksura*: TKeySym = 0x000005E9
-    XK_Arabic_yeh*: TKeySym = 0x000005EA
-    XK_Arabic_fathatan*: TKeySym = 0x000005EB
-    XK_Arabic_dammatan*: TKeySym = 0x000005EC
-    XK_Arabic_kasratan*: TKeySym = 0x000005ED
-    XK_Arabic_fatha*: TKeySym = 0x000005EE
-    XK_Arabic_damma*: TKeySym = 0x000005EF
-    XK_Arabic_kasra*: TKeySym = 0x000005F0
-    XK_Arabic_shadda*: TKeySym = 0x000005F1
-    XK_Arabic_sukun*: TKeySym = 0x000005F2
-    XK_Arabic_madda_above*: TKeySym = 0x000005F3
-    XK_Arabic_hamza_above*: TKeySym = 0x000005F4
-    XK_Arabic_hamza_below*: TKeySym = 0x000005F5
-    XK_Arabic_jeh*: TKeySym = 0x000005F6
-    XK_Arabic_veh*: TKeySym = 0x000005F7
-    XK_Arabic_keheh*: TKeySym = 0x000005F8
-    XK_Arabic_gaf*: TKeySym = 0x000005F9
-    XK_Arabic_noon_ghunna*: TKeySym = 0x000005FA
-    XK_Arabic_heh_doachashmee*: TKeySym = 0x000005FB
-    XK_Farsi_yeh*: TKeySym = 0x000005FC
-    XK_Arabic_farsi_yeh*: TKeySym = XK_Farsi_yeh
-    XK_Arabic_yeh_baree*: TKeySym = 0x000005FD
-    XK_Arabic_heh_goal*: TKeySym = 0x000005FE
-    XK_Arabic_switch*: TKeySym = 0x0000FF7E # Alias for mode_switch 
-# XK_ARABIC 
-#*
-# * Cyrillic
-# * Byte 3 = 6
-# *
-
-when defined(XK_CYRILLIC) or true: 
-  const
-    XKc_Cyrillic_GHE_bar*: TKeySym = 0x00000680
-    XK_Cyrillic_ghe_bar*: TKeySym = 0x00000690
-    XKc_Cyrillic_ZHE_descender*: TKeySym = 0x00000681
-    XK_Cyrillic_zhe_descender*: TKeySym = 0x00000691
-    XKc_Cyrillic_KA_descender*: TKeySym = 0x00000682
-    XK_Cyrillic_ka_descender*: TKeySym = 0x00000692
-    XKc_Cyrillic_KA_vertstroke*: TKeySym = 0x00000683
-    XK_Cyrillic_ka_vertstroke*: TKeySym = 0x00000693
-    XKc_Cyrillic_EN_descender*: TKeySym = 0x00000684
-    XK_Cyrillic_en_descender*: TKeySym = 0x00000694
-    XKc_Cyrillic_U_straight*: TKeySym = 0x00000685
-    XK_Cyrillic_u_straight*: TKeySym = 0x00000695
-    XKc_Cyrillic_U_straight_bar*: TKeySym = 0x00000686
-    XK_Cyrillic_u_straight_bar*: TKeySym = 0x00000696
-    XKc_Cyrillic_HA_descender*: TKeySym = 0x00000687
-    XK_Cyrillic_ha_descender*: TKeySym = 0x00000697
-    XKc_Cyrillic_CHE_descender*: TKeySym = 0x00000688
-    XK_Cyrillic_che_descender*: TKeySym = 0x00000698
-    XKc_Cyrillic_CHE_vertstroke*: TKeySym = 0x00000689
-    XK_Cyrillic_che_vertstroke*: TKeySym = 0x00000699
-    XKc_Cyrillic_SHHA*: TKeySym = 0x0000068A
-    XK_Cyrillic_shha*: TKeySym = 0x0000069A
-    XKc_Cyrillic_SCHWA*: TKeySym = 0x0000068C
-    XK_Cyrillic_schwa*: TKeySym = 0x0000069C
-    XKc_Cyrillic_I_macron*: TKeySym = 0x0000068D
-    XK_Cyrillic_i_macron*: TKeySym = 0x0000069D
-    XKc_Cyrillic_O_bar*: TKeySym = 0x0000068E
-    XK_Cyrillic_o_bar*: TKeySym = 0x0000069E
-    XKc_Cyrillic_U_macron*: TKeySym = 0x0000068F
-    XK_Cyrillic_u_macron*: TKeySym = 0x0000069F
-    XK_Serbian_dje*: TKeySym = 0x000006A1
-    XK_Macedonia_gje*: TKeySym = 0x000006A2
-    XK_Cyrillic_io*: TKeySym = 0x000006A3
-    XK_Ukrainian_ie*: TKeySym = 0x000006A4
-    XK_Ukranian_je*: TKeySym = 0x000006A4 # deprecated 
-    XK_Macedonia_dse*: TKeySym = 0x000006A5
-    XK_Ukrainian_i*: TKeySym = 0x000006A6
-    XK_Ukranian_i*: TKeySym = 0x000006A6 # deprecated 
-    XK_Ukrainian_yi*: TKeySym = 0x000006A7
-    XK_Ukranian_yi*: TKeySym = 0x000006A7 # deprecated 
-    XK_Cyrillic_je*: TKeySym = 0x000006A8
-    XK_Serbian_je*: TKeySym = 0x000006A8 # deprecated 
-    XK_Cyrillic_lje*: TKeySym = 0x000006A9
-    XK_Serbian_lje*: TKeySym = 0x000006A9 # deprecated 
-    XK_Cyrillic_nje*: TKeySym = 0x000006AA
-    XK_Serbian_nje*: TKeySym = 0x000006AA # deprecated 
-    XK_Serbian_tshe*: TKeySym = 0x000006AB
-    XK_Macedonia_kje*: TKeySym = 0x000006AC
-    XK_Ukrainian_ghe_with_upturn*: TKeySym = 0x000006AD
-    XK_Byelorussian_shortu*: TKeySym = 0x000006AE
-    XK_Cyrillic_dzhe*: TKeySym = 0x000006AF
-    XK_Serbian_dze*: TKeySym = 0x000006AF # deprecated 
-    XK_numerosign*: TKeySym = 0x000006B0
-    XKc_Serbian_DJE*: TKeySym = 0x000006B1
-    XKc_Macedonia_GJE*: TKeySym = 0x000006B2
-    XKc_Cyrillic_IO*: TKeySym = 0x000006B3
-    XKc_Ukrainian_IE*: TKeySym = 0x000006B4
-    XKc_Ukranian_JE*: TKeySym = 0x000006B4 # deprecated 
-    XKc_Macedonia_DSE*: TKeySym = 0x000006B5
-    XKc_Ukrainian_I*: TKeySym = 0x000006B6
-    XKc_Ukranian_I*: TKeySym = 0x000006B6 # deprecated 
-    XKc_Ukrainian_YI*: TKeySym = 0x000006B7
-    XKc_Ukranian_YI*: TKeySym = 0x000006B7 # deprecated 
-    XKc_Cyrillic_JE*: TKeySym = 0x000006B8
-    XKc_Serbian_JE*: TKeySym = 0x000006B8 # deprecated 
-    XKc_Cyrillic_LJE*: TKeySym = 0x000006B9
-    XKc_Serbian_LJE*: TKeySym = 0x000006B9 # deprecated 
-    XKc_Cyrillic_NJE*: TKeySym = 0x000006BA
-    XKc_Serbian_NJE*: TKeySym = 0x000006BA # deprecated 
-    XKc_Serbian_TSHE*: TKeySym = 0x000006BB
-    XKc_Macedonia_KJE*: TKeySym = 0x000006BC
-    XKc_Ukrainian_GHE_WITH_UPTURN*: TKeySym = 0x000006BD
-    XKc_Byelorussian_SHORTU*: TKeySym = 0x000006BE
-    XKc_Cyrillic_DZHE*: TKeySym = 0x000006BF
-    XKc_Serbian_DZE*: TKeySym = 0x000006BF # deprecated 
-    XK_Cyrillic_yu*: TKeySym = 0x000006C0
-    XK_Cyrillic_a*: TKeySym = 0x000006C1
-    XK_Cyrillic_be*: TKeySym = 0x000006C2
-    XK_Cyrillic_tse*: TKeySym = 0x000006C3
-    XK_Cyrillic_de*: TKeySym = 0x000006C4
-    XK_Cyrillic_ie*: TKeySym = 0x000006C5
-    XK_Cyrillic_ef*: TKeySym = 0x000006C6
-    XK_Cyrillic_ghe*: TKeySym = 0x000006C7
-    XK_Cyrillic_ha*: TKeySym = 0x000006C8
-    XK_Cyrillic_i*: TKeySym = 0x000006C9
-    XK_Cyrillic_shorti*: TKeySym = 0x000006CA
-    XK_Cyrillic_ka*: TKeySym = 0x000006CB
-    XK_Cyrillic_el*: TKeySym = 0x000006CC
-    XK_Cyrillic_em*: TKeySym = 0x000006CD
-    XK_Cyrillic_en*: TKeySym = 0x000006CE
-    XK_Cyrillic_o*: TKeySym = 0x000006CF
-    XK_Cyrillic_pe*: TKeySym = 0x000006D0
-    XK_Cyrillic_ya*: TKeySym = 0x000006D1
-    XK_Cyrillic_er*: TKeySym = 0x000006D2
-    XK_Cyrillic_es*: TKeySym = 0x000006D3
-    XK_Cyrillic_te*: TKeySym = 0x000006D4
-    XK_Cyrillic_u*: TKeySym = 0x000006D5
-    XK_Cyrillic_zhe*: TKeySym = 0x000006D6
-    XK_Cyrillic_ve*: TKeySym = 0x000006D7
-    XK_Cyrillic_softsign*: TKeySym = 0x000006D8
-    XK_Cyrillic_yeru*: TKeySym = 0x000006D9
-    XK_Cyrillic_ze*: TKeySym = 0x000006DA
-    XK_Cyrillic_sha*: TKeySym = 0x000006DB
-    XK_Cyrillic_e*: TKeySym = 0x000006DC
-    XK_Cyrillic_shcha*: TKeySym = 0x000006DD
-    XK_Cyrillic_che*: TKeySym = 0x000006DE
-    XK_Cyrillic_hardsign*: TKeySym = 0x000006DF
-    XKc_Cyrillic_YU*: TKeySym = 0x000006E0
-    XKc_Cyrillic_A*: TKeySym = 0x000006E1
-    XKc_Cyrillic_BE*: TKeySym = 0x000006E2
-    XKc_Cyrillic_TSE*: TKeySym = 0x000006E3
-    XKc_Cyrillic_DE*: TKeySym = 0x000006E4
-    XKc_Cyrillic_IE*: TKeySym = 0x000006E5
-    XKc_Cyrillic_EF*: TKeySym = 0x000006E6
-    XKc_Cyrillic_GHE*: TKeySym = 0x000006E7
-    XKc_Cyrillic_HA*: TKeySym = 0x000006E8
-    XKc_Cyrillic_I*: TKeySym = 0x000006E9
-    XKc_Cyrillic_SHORTI*: TKeySym = 0x000006EA
-    XKc_Cyrillic_KA*: TKeySym = 0x000006EB
-    XKc_Cyrillic_EL*: TKeySym = 0x000006EC
-    XKc_Cyrillic_EM*: TKeySym = 0x000006ED
-    XKc_Cyrillic_EN*: TKeySym = 0x000006EE
-    XKc_Cyrillic_O*: TKeySym = 0x000006EF
-    XKc_Cyrillic_PE*: TKeySym = 0x000006F0
-    XKc_Cyrillic_YA*: TKeySym = 0x000006F1
-    XKc_Cyrillic_ER*: TKeySym = 0x000006F2
-    XKc_Cyrillic_ES*: TKeySym = 0x000006F3
-    XKc_Cyrillic_TE*: TKeySym = 0x000006F4
-    XKc_Cyrillic_U*: TKeySym = 0x000006F5
-    XKc_Cyrillic_ZHE*: TKeySym = 0x000006F6
-    XKc_Cyrillic_VE*: TKeySym = 0x000006F7
-    XKc_Cyrillic_SOFTSIGN*: TKeySym = 0x000006F8
-    XKc_Cyrillic_YERU*: TKeySym = 0x000006F9
-    XKc_Cyrillic_ZE*: TKeySym = 0x000006FA
-    XKc_Cyrillic_SHA*: TKeySym = 0x000006FB
-    XKc_Cyrillic_E*: TKeySym = 0x000006FC
-    XKc_Cyrillic_SHCHA*: TKeySym = 0x000006FD
-    XKc_Cyrillic_CHE*: TKeySym = 0x000006FE
-    XKc_Cyrillic_HARDSIGN*: TKeySym = 0x000006FF
-# XK_CYRILLIC 
-#*
-# * Greek
-# * Byte 3 = 7
-# *
-
-when defined(XK_GREEK) or true: 
-  const
-    XKc_Greek_ALPHAaccent*: TKeySym = 0x000007A1
-    XKc_Greek_EPSILONaccent*: TKeySym = 0x000007A2
-    XKc_Greek_ETAaccent*: TKeySym = 0x000007A3
-    XKc_Greek_IOTAaccent*: TKeySym = 0x000007A4
-    XKc_Greek_IOTAdieresis*: TKeySym = 0x000007A5
-    XKc_Greek_IOTAdiaeresis*: TKeySym = XKc_Greek_IOTAdieresis # old typo 
-    XKc_Greek_OMICRONaccent*: TKeySym = 0x000007A7
-    XKc_Greek_UPSILONaccent*: TKeySym = 0x000007A8
-    XKc_Greek_UPSILONdieresis*: TKeySym = 0x000007A9
-    XKc_Greek_OMEGAaccent*: TKeySym = 0x000007AB
-    XK_Greek_accentdieresis*: TKeySym = 0x000007AE
-    XK_Greek_horizbar*: TKeySym = 0x000007AF
-    XK_Greek_alphaaccent*: TKeySym = 0x000007B1
-    XK_Greek_epsilonaccent*: TKeySym = 0x000007B2
-    XK_Greek_etaaccent*: TKeySym = 0x000007B3
-    XK_Greek_iotaaccent*: TKeySym = 0x000007B4
-    XK_Greek_iotadieresis*: TKeySym = 0x000007B5
-    XK_Greek_iotaaccentdieresis*: TKeySym = 0x000007B6
-    XK_Greek_omicronaccent*: TKeySym = 0x000007B7
-    XK_Greek_upsilonaccent*: TKeySym = 0x000007B8
-    XK_Greek_upsilondieresis*: TKeySym = 0x000007B9
-    XK_Greek_upsilonaccentdieresis*: TKeySym = 0x000007BA
-    XK_Greek_omegaaccent*: TKeySym = 0x000007BB
-    XKc_Greek_ALPHA*: TKeySym = 0x000007C1
-    XKc_Greek_BETA*: TKeySym = 0x000007C2
-    XKc_Greek_GAMMA*: TKeySym = 0x000007C3
-    XKc_Greek_DELTA*: TKeySym = 0x000007C4
-    XKc_Greek_EPSILON*: TKeySym = 0x000007C5
-    XKc_Greek_ZETA*: TKeySym = 0x000007C6
-    XKc_Greek_ETA*: TKeySym = 0x000007C7
-    XKc_Greek_THETA*: TKeySym = 0x000007C8
-    XKc_Greek_IOTA*: TKeySym = 0x000007C9
-    XKc_Greek_KAPPA*: TKeySym = 0x000007CA
-    XKc_Greek_LAMDA*: TKeySym = 0x000007CB
-    XKc_Greek_LAMBDA*: TKeySym = 0x000007CB
-    XKc_Greek_MU*: TKeySym = 0x000007CC
-    XKc_Greek_NU*: TKeySym = 0x000007CD
-    XKc_Greek_XI*: TKeySym = 0x000007CE
-    XKc_Greek_OMICRON*: TKeySym = 0x000007CF
-    XKc_Greek_PI*: TKeySym = 0x000007D0
-    XKc_Greek_RHO*: TKeySym = 0x000007D1
-    XKc_Greek_SIGMA*: TKeySym = 0x000007D2
-    XKc_Greek_TAU*: TKeySym = 0x000007D4
-    XKc_Greek_UPSILON*: TKeySym = 0x000007D5
-    XKc_Greek_PHI*: TKeySym = 0x000007D6
-    XKc_Greek_CHI*: TKeySym = 0x000007D7
-    XKc_Greek_PSI*: TKeySym = 0x000007D8
-    XKc_Greek_OMEGA*: TKeySym = 0x000007D9
-    XK_Greek_alpha*: TKeySym = 0x000007E1
-    XK_Greek_beta*: TKeySym = 0x000007E2
-    XK_Greek_gamma*: TKeySym = 0x000007E3
-    XK_Greek_delta*: TKeySym = 0x000007E4
-    XK_Greek_epsilon*: TKeySym = 0x000007E5
-    XK_Greek_zeta*: TKeySym = 0x000007E6
-    XK_Greek_eta*: TKeySym = 0x000007E7
-    XK_Greek_theta*: TKeySym = 0x000007E8
-    XK_Greek_iota*: TKeySym = 0x000007E9
-    XK_Greek_kappa*: TKeySym = 0x000007EA
-    XK_Greek_lamda*: TKeySym = 0x000007EB
-    XK_Greek_lambda*: TKeySym = 0x000007EB
-    XK_Greek_mu*: TKeySym = 0x000007EC
-    XK_Greek_nu*: TKeySym = 0x000007ED
-    XK_Greek_xi*: TKeySym = 0x000007EE
-    XK_Greek_omicron*: TKeySym = 0x000007EF
-    XK_Greek_pi*: TKeySym = 0x000007F0
-    XK_Greek_rho*: TKeySym = 0x000007F1
-    XK_Greek_sigma*: TKeySym = 0x000007F2
-    XK_Greek_finalsmallsigma*: TKeySym = 0x000007F3
-    XK_Greek_tau*: TKeySym = 0x000007F4
-    XK_Greek_upsilon*: TKeySym = 0x000007F5
-    XK_Greek_phi*: TKeySym = 0x000007F6
-    XK_Greek_chi*: TKeySym = 0x000007F7
-    XK_Greek_psi*: TKeySym = 0x000007F8
-    XK_Greek_omega*: TKeySym = 0x000007F9
-    XK_Greek_switch*: TKeySym = 0x0000FF7E # Alias for mode_switch 
-# XK_GREEK 
-#*
-# * Technical
-# * Byte 3 = 8
-# *
-
-when defined(XK_TECHNICAL) or true: 
-  const
-    XK_leftradical*: TKeySym = 0x000008A1
-    XK_topleftradical*: TKeySym = 0x000008A2
-    XK_horizconnector*: TKeySym = 0x000008A3
-    XK_topintegral*: TKeySym = 0x000008A4
-    XK_botintegral*: TKeySym = 0x000008A5
-    XK_vertconnector*: TKeySym = 0x000008A6
-    XK_topleftsqbracket*: TKeySym = 0x000008A7
-    XK_botleftsqbracket*: TKeySym = 0x000008A8
-    XK_toprightsqbracket*: TKeySym = 0x000008A9
-    XK_botrightsqbracket*: TKeySym = 0x000008AA
-    XK_topleftparens*: TKeySym = 0x000008AB
-    XK_botleftparens*: TKeySym = 0x000008AC
-    XK_toprightparens*: TKeySym = 0x000008AD
-    XK_botrightparens*: TKeySym = 0x000008AE
-    XK_leftmiddlecurlybrace*: TKeySym = 0x000008AF
-    XK_rightmiddlecurlybrace*: TKeySym = 0x000008B0
-    XK_topleftsummation*: TKeySym = 0x000008B1
-    XK_botleftsummation*: TKeySym = 0x000008B2
-    XK_topvertsummationconnector*: TKeySym = 0x000008B3
-    XK_botvertsummationconnector*: TKeySym = 0x000008B4
-    XK_toprightsummation*: TKeySym = 0x000008B5
-    XK_botrightsummation*: TKeySym = 0x000008B6
-    XK_rightmiddlesummation*: TKeySym = 0x000008B7
-    XK_lessthanequal*: TKeySym = 0x000008BC
-    XK_notequal*: TKeySym = 0x000008BD
-    XK_greaterthanequal*: TKeySym = 0x000008BE
-    XK_integral*: TKeySym = 0x000008BF
-    XK_therefore*: TKeySym = 0x000008C0
-    XK_variation*: TKeySym = 0x000008C1
-    XK_infinity*: TKeySym = 0x000008C2
-    XK_nabla*: TKeySym = 0x000008C5
-    XK_approximate*: TKeySym = 0x000008C8
-    XK_similarequal*: TKeySym = 0x000008C9
-    XK_ifonlyif*: TKeySym = 0x000008CD
-    XK_implies*: TKeySym = 0x000008CE
-    XK_identical*: TKeySym = 0x000008CF
-    XK_radical*: TKeySym = 0x000008D6
-    XK_includedin*: TKeySym = 0x000008DA
-    XK_includes*: TKeySym = 0x000008DB
-    XK_intersection*: TKeySym = 0x000008DC
-    XK_union*: TKeySym = 0x000008DD
-    XK_logicaland*: TKeySym = 0x000008DE
-    XK_logicalor*: TKeySym = 0x000008DF
-    XK_partialderivative*: TKeySym = 0x000008EF
-    XK_function*: TKeySym = 0x000008F6
-    XK_leftarrow*: TKeySym = 0x000008FB
-    XK_uparrow*: TKeySym = 0x000008FC
-    XK_rightarrow*: TKeySym = 0x000008FD
-    XK_downarrow*: TKeySym = 0x000008FE
-# XK_TECHNICAL 
-#*
-# *  Special
-# *  Byte 3 = 9
-# *
-
-when defined(XK_SPECIAL): 
-  const
-    XK_blank*: TKeySym = 0x000009DF
-    XK_soliddiamond*: TKeySym = 0x000009E0
-    XK_checkerboard*: TKeySym = 0x000009E1
-    XK_ht*: TKeySym = 0x000009E2
-    XK_ff*: TKeySym = 0x000009E3
-    XK_cr*: TKeySym = 0x000009E4
-    XK_lf*: TKeySym = 0x000009E5
-    XK_nl*: TKeySym = 0x000009E8
-    XK_vt*: TKeySym = 0x000009E9
-    XK_lowrightcorner*: TKeySym = 0x000009EA
-    XK_uprightcorner*: TKeySym = 0x000009EB
-    XK_upleftcorner*: TKeySym = 0x000009EC
-    XK_lowleftcorner*: TKeySym = 0x000009ED
-    XK_crossinglines*: TKeySym = 0x000009EE
-    XK_horizlinescan1*: TKeySym = 0x000009EF
-    XK_horizlinescan3*: TKeySym = 0x000009F0
-    XK_horizlinescan5*: TKeySym = 0x000009F1
-    XK_horizlinescan7*: TKeySym = 0x000009F2
-    XK_horizlinescan9*: TKeySym = 0x000009F3
-    XK_leftt*: TKeySym = 0x000009F4
-    XK_rightt*: TKeySym = 0x000009F5
-    XK_bott*: TKeySym = 0x000009F6
-    XK_topt*: TKeySym = 0x000009F7
-    XK_vertbar*: TKeySym = 0x000009F8
-# XK_SPECIAL 
-#*
-# *  Publishing
-# *  Byte 3 = a
-# *
-
-when defined(XK_PUBLISHING) or true: 
-  const
-    XK_emspace*: TKeySym = 0x00000AA1
-    XK_enspace*: TKeySym = 0x00000AA2
-    XK_em3space*: TKeySym = 0x00000AA3
-    XK_em4space*: TKeySym = 0x00000AA4
-    XK_digitspace*: TKeySym = 0x00000AA5
-    XK_punctspace*: TKeySym = 0x00000AA6
-    XK_thinspace*: TKeySym = 0x00000AA7
-    XK_hairspace*: TKeySym = 0x00000AA8
-    XK_emdash*: TKeySym = 0x00000AA9
-    XK_endash*: TKeySym = 0x00000AAA
-    XK_signifblank*: TKeySym = 0x00000AAC
-    XK_ellipsis*: TKeySym = 0x00000AAE
-    XK_doubbaselinedot*: TKeySym = 0x00000AAF
-    XK_onethird*: TKeySym = 0x00000AB0
-    XK_twothirds*: TKeySym = 0x00000AB1
-    XK_onefifth*: TKeySym = 0x00000AB2
-    XK_twofifths*: TKeySym = 0x00000AB3
-    XK_threefifths*: TKeySym = 0x00000AB4
-    XK_fourfifths*: TKeySym = 0x00000AB5
-    XK_onesixth*: TKeySym = 0x00000AB6
-    XK_fivesixths*: TKeySym = 0x00000AB7
-    XK_careof*: TKeySym = 0x00000AB8
-    XK_figdash*: TKeySym = 0x00000ABB
-    XK_leftanglebracket*: TKeySym = 0x00000ABC
-    XK_decimalpoint*: TKeySym = 0x00000ABD
-    XK_rightanglebracket*: TKeySym = 0x00000ABE
-    XK_marker*: TKeySym = 0x00000ABF
-    XK_oneeighth*: TKeySym = 0x00000AC3
-    XK_threeeighths*: TKeySym = 0x00000AC4
-    XK_fiveeighths*: TKeySym = 0x00000AC5
-    XK_seveneighths*: TKeySym = 0x00000AC6
-    XK_trademark*: TKeySym = 0x00000AC9
-    XK_signaturemark*: TKeySym = 0x00000ACA
-    XK_trademarkincircle*: TKeySym = 0x00000ACB
-    XK_leftopentriangle*: TKeySym = 0x00000ACC
-    XK_rightopentriangle*: TKeySym = 0x00000ACD
-    XK_emopencircle*: TKeySym = 0x00000ACE
-    XK_emopenrectangle*: TKeySym = 0x00000ACF
-    XK_leftsinglequotemark*: TKeySym = 0x00000AD0
-    XK_rightsinglequotemark*: TKeySym = 0x00000AD1
-    XK_leftdoublequotemark*: TKeySym = 0x00000AD2
-    XK_rightdoublequotemark*: TKeySym = 0x00000AD3
-    XK_prescription*: TKeySym = 0x00000AD4
-    XK_minutes*: TKeySym = 0x00000AD6
-    XK_seconds*: TKeySym = 0x00000AD7
-    XK_latincross*: TKeySym = 0x00000AD9
-    XK_hexagram*: TKeySym = 0x00000ADA
-    XK_filledrectbullet*: TKeySym = 0x00000ADB
-    XK_filledlefttribullet*: TKeySym = 0x00000ADC
-    XK_filledrighttribullet*: TKeySym = 0x00000ADD
-    XK_emfilledcircle*: TKeySym = 0x00000ADE
-    XK_emfilledrect*: TKeySym = 0x00000ADF
-    XK_enopencircbullet*: TKeySym = 0x00000AE0
-    XK_enopensquarebullet*: TKeySym = 0x00000AE1
-    XK_openrectbullet*: TKeySym = 0x00000AE2
-    XK_opentribulletup*: TKeySym = 0x00000AE3
-    XK_opentribulletdown*: TKeySym = 0x00000AE4
-    XK_openstar*: TKeySym = 0x00000AE5
-    XK_enfilledcircbullet*: TKeySym = 0x00000AE6
-    XK_enfilledsqbullet*: TKeySym = 0x00000AE7
-    XK_filledtribulletup*: TKeySym = 0x00000AE8
-    XK_filledtribulletdown*: TKeySym = 0x00000AE9
-    XK_leftpointer*: TKeySym = 0x00000AEA
-    XK_rightpointer*: TKeySym = 0x00000AEB
-    XK_club*: TKeySym = 0x00000AEC
-    XK_diamond*: TKeySym = 0x00000AED
-    XK_heart*: TKeySym = 0x00000AEE
-    XK_maltesecross*: TKeySym = 0x00000AF0
-    XK_dagger*: TKeySym = 0x00000AF1
-    XK_doubledagger*: TKeySym = 0x00000AF2
-    XK_checkmark*: TKeySym = 0x00000AF3
-    XK_ballotcross*: TKeySym = 0x00000AF4
-    XK_musicalsharp*: TKeySym = 0x00000AF5
-    XK_musicalflat*: TKeySym = 0x00000AF6
-    XK_malesymbol*: TKeySym = 0x00000AF7
-    XK_femalesymbol*: TKeySym = 0x00000AF8
-    XK_telephone*: TKeySym = 0x00000AF9
-    XK_telephonerecorder*: TKeySym = 0x00000AFA
-    XK_phonographcopyright*: TKeySym = 0x00000AFB
-    XK_caret*: TKeySym = 0x00000AFC
-    XK_singlelowquotemark*: TKeySym = 0x00000AFD
-    XK_doublelowquotemark*: TKeySym = 0x00000AFE
-    XK_cursor*: TKeySym = 0x00000AFF
-# XK_PUBLISHING 
-#*
-# *  APL
-# *  Byte 3 = b
-# *
-
-when defined(XK_APL) or true: 
-  const
-    XK_leftcaret*: TKeySym = 0x00000BA3
-    XK_rightcaret*: TKeySym = 0x00000BA6
-    XK_downcaret*: TKeySym = 0x00000BA8
-    XK_upcaret*: TKeySym = 0x00000BA9
-    XK_overbar*: TKeySym = 0x00000BC0
-    XK_downtack*: TKeySym = 0x00000BC2
-    XK_upshoe*: TKeySym = 0x00000BC3
-    XK_downstile*: TKeySym = 0x00000BC4
-    XK_underbar*: TKeySym = 0x00000BC6
-    XK_jot*: TKeySym = 0x00000BCA
-    XK_quad*: TKeySym = 0x00000BCC
-    XK_uptack*: TKeySym = 0x00000BCE
-    XK_circle*: TKeySym = 0x00000BCF
-    XK_upstile*: TKeySym = 0x00000BD3
-    XK_downshoe*: TKeySym = 0x00000BD6
-    XK_rightshoe*: TKeySym = 0x00000BD8
-    XK_leftshoe*: TKeySym = 0x00000BDA
-    XK_lefttack*: TKeySym = 0x00000BDC
-    XK_righttack*: TKeySym = 0x00000BFC
-# XK_APL 
-#*
-# * Hebrew
-# * Byte 3 = c
-# *
-
-when defined(XK_HEBREW) or true: 
-  const
-    XK_hebrew_doublelowline*: TKeySym = 0x00000CDF
-    XK_hebrew_aleph*: TKeySym = 0x00000CE0
-    XK_hebrew_bet*: TKeySym = 0x00000CE1
-    XK_hebrew_beth*: TKeySym = 0x00000CE1 # deprecated 
-    XK_hebrew_gimel*: TKeySym = 0x00000CE2
-    XK_hebrew_gimmel*: TKeySym = 0x00000CE2 # deprecated 
-    XK_hebrew_dalet*: TKeySym = 0x00000CE3
-    XK_hebrew_daleth*: TKeySym = 0x00000CE3 # deprecated 
-    XK_hebrew_he*: TKeySym = 0x00000CE4
-    XK_hebrew_waw*: TKeySym = 0x00000CE5
-    XK_hebrew_zain*: TKeySym = 0x00000CE6
-    XK_hebrew_zayin*: TKeySym = 0x00000CE6 # deprecated 
-    XK_hebrew_chet*: TKeySym = 0x00000CE7
-    XK_hebrew_het*: TKeySym = 0x00000CE7 # deprecated 
-    XK_hebrew_tet*: TKeySym = 0x00000CE8
-    XK_hebrew_teth*: TKeySym = 0x00000CE8 # deprecated 
-    XK_hebrew_yod*: TKeySym = 0x00000CE9
-    XK_hebrew_finalkaph*: TKeySym = 0x00000CEA
-    XK_hebrew_kaph*: TKeySym = 0x00000CEB
-    XK_hebrew_lamed*: TKeySym = 0x00000CEC
-    XK_hebrew_finalmem*: TKeySym = 0x00000CED
-    XK_hebrew_mem*: TKeySym = 0x00000CEE
-    XK_hebrew_finalnun*: TKeySym = 0x00000CEF
-    XK_hebrew_nun*: TKeySym = 0x00000CF0
-    XK_hebrew_samech*: TKeySym = 0x00000CF1
-    XK_hebrew_samekh*: TKeySym = 0x00000CF1 # deprecated 
-    XK_hebrew_ayin*: TKeySym = 0x00000CF2
-    XK_hebrew_finalpe*: TKeySym = 0x00000CF3
-    XK_hebrew_pe*: TKeySym = 0x00000CF4
-    XK_hebrew_finalzade*: TKeySym = 0x00000CF5
-    XK_hebrew_finalzadi*: TKeySym = 0x00000CF5 # deprecated 
-    XK_hebrew_zade*: TKeySym = 0x00000CF6
-    XK_hebrew_zadi*: TKeySym = 0x00000CF6 # deprecated 
-    XK_hebrew_qoph*: TKeySym = 0x00000CF7
-    XK_hebrew_kuf*: TKeySym = 0x00000CF7 # deprecated 
-    XK_hebrew_resh*: TKeySym = 0x00000CF8
-    XK_hebrew_shin*: TKeySym = 0x00000CF9
-    XK_hebrew_taw*: TKeySym = 0x00000CFA
-    XK_hebrew_taf*: TKeySym = 0x00000CFA # deprecated 
-    XK_Hebrew_switch*: TKeySym = 0x0000FF7E # Alias for mode_switch 
-# XK_HEBREW 
-#*
-# * Thai
-# * Byte 3 = d
-# *
-
-when defined(XK_THAI) or true: 
-  const
-    XK_Thai_kokai*: TKeySym = 0x00000DA1
-    XK_Thai_khokhai*: TKeySym = 0x00000DA2
-    XK_Thai_khokhuat*: TKeySym = 0x00000DA3
-    XK_Thai_khokhwai*: TKeySym = 0x00000DA4
-    XK_Thai_khokhon*: TKeySym = 0x00000DA5
-    XK_Thai_khorakhang*: TKeySym = 0x00000DA6
-    XK_Thai_ngongu*: TKeySym = 0x00000DA7
-    XK_Thai_chochan*: TKeySym = 0x00000DA8
-    XK_Thai_choching*: TKeySym = 0x00000DA9
-    XK_Thai_chochang*: TKeySym = 0x00000DAA
-    XK_Thai_soso*: TKeySym = 0x00000DAB
-    XK_Thai_chochoe*: TKeySym = 0x00000DAC
-    XK_Thai_yoying*: TKeySym = 0x00000DAD
-    XK_Thai_dochada*: TKeySym = 0x00000DAE
-    XK_Thai_topatak*: TKeySym = 0x00000DAF
-    XK_Thai_thothan*: TKeySym = 0x00000DB0
-    XK_Thai_thonangmontho*: TKeySym = 0x00000DB1
-    XK_Thai_thophuthao*: TKeySym = 0x00000DB2
-    XK_Thai_nonen*: TKeySym = 0x00000DB3
-    XK_Thai_dodek*: TKeySym = 0x00000DB4
-    XK_Thai_totao*: TKeySym = 0x00000DB5
-    XK_Thai_thothung*: TKeySym = 0x00000DB6
-    XK_Thai_thothahan*: TKeySym = 0x00000DB7
-    XK_Thai_thothong*: TKeySym = 0x00000DB8
-    XK_Thai_nonu*: TKeySym = 0x00000DB9
-    XK_Thai_bobaimai*: TKeySym = 0x00000DBA
-    XK_Thai_popla*: TKeySym = 0x00000DBB
-    XK_Thai_phophung*: TKeySym = 0x00000DBC
-    XK_Thai_fofa*: TKeySym = 0x00000DBD
-    XK_Thai_phophan*: TKeySym = 0x00000DBE
-    XK_Thai_fofan*: TKeySym = 0x00000DBF
-    XK_Thai_phosamphao*: TKeySym = 0x00000DC0
-    XK_Thai_moma*: TKeySym = 0x00000DC1
-    XK_Thai_yoyak*: TKeySym = 0x00000DC2
-    XK_Thai_rorua*: TKeySym = 0x00000DC3
-    XK_Thai_ru*: TKeySym = 0x00000DC4
-    XK_Thai_loling*: TKeySym = 0x00000DC5
-    XK_Thai_lu*: TKeySym = 0x00000DC6
-    XK_Thai_wowaen*: TKeySym = 0x00000DC7
-    XK_Thai_sosala*: TKeySym = 0x00000DC8
-    XK_Thai_sorusi*: TKeySym = 0x00000DC9
-    XK_Thai_sosua*: TKeySym = 0x00000DCA
-    XK_Thai_hohip*: TKeySym = 0x00000DCB
-    XK_Thai_lochula*: TKeySym = 0x00000DCC
-    XK_Thai_oang*: TKeySym = 0x00000DCD
-    XK_Thai_honokhuk*: TKeySym = 0x00000DCE
-    XK_Thai_paiyannoi*: TKeySym = 0x00000DCF
-    XK_Thai_saraa*: TKeySym = 0x00000DD0
-    XK_Thai_maihanakat*: TKeySym = 0x00000DD1
-    XK_Thai_saraaa*: TKeySym = 0x00000DD2
-    XK_Thai_saraam*: TKeySym = 0x00000DD3
-    XK_Thai_sarai*: TKeySym = 0x00000DD4
-    XK_Thai_saraii*: TKeySym = 0x00000DD5
-    XK_Thai_saraue*: TKeySym = 0x00000DD6
-    XK_Thai_sarauee*: TKeySym = 0x00000DD7
-    XK_Thai_sarau*: TKeySym = 0x00000DD8
-    XK_Thai_sarauu*: TKeySym = 0x00000DD9
-    XK_Thai_phinthu*: TKeySym = 0x00000DDA
-    XK_Thai_maihanakat_maitho*: TKeySym = 0x00000DDE
-    XK_Thai_baht*: TKeySym = 0x00000DDF
-    XK_Thai_sarae*: TKeySym = 0x00000DE0
-    XK_Thai_saraae*: TKeySym = 0x00000DE1
-    XK_Thai_sarao*: TKeySym = 0x00000DE2
-    XK_Thai_saraaimaimuan*: TKeySym = 0x00000DE3
-    XK_Thai_saraaimaimalai*: TKeySym = 0x00000DE4
-    XK_Thai_lakkhangyao*: TKeySym = 0x00000DE5
-    XK_Thai_maiyamok*: TKeySym = 0x00000DE6
-    XK_Thai_maitaikhu*: TKeySym = 0x00000DE7
-    XK_Thai_maiek*: TKeySym = 0x00000DE8
-    XK_Thai_maitho*: TKeySym = 0x00000DE9
-    XK_Thai_maitri*: TKeySym = 0x00000DEA
-    XK_Thai_maichattawa*: TKeySym = 0x00000DEB
-    XK_Thai_thanthakhat*: TKeySym = 0x00000DEC
-    XK_Thai_nikhahit*: TKeySym = 0x00000DED
-    XK_Thai_leksun*: TKeySym = 0x00000DF0
-    XK_Thai_leknung*: TKeySym = 0x00000DF1
-    XK_Thai_leksong*: TKeySym = 0x00000DF2
-    XK_Thai_leksam*: TKeySym = 0x00000DF3
-    XK_Thai_leksi*: TKeySym = 0x00000DF4
-    XK_Thai_lekha*: TKeySym = 0x00000DF5
-    XK_Thai_lekhok*: TKeySym = 0x00000DF6
-    XK_Thai_lekchet*: TKeySym = 0x00000DF7
-    XK_Thai_lekpaet*: TKeySym = 0x00000DF8
-    XK_Thai_lekkao*: TKeySym = 0x00000DF9
-# XK_THAI 
-#*
-# *   Korean
-# *   Byte 3 = e
-# *
-
-when defined(XK_KOREAN) or true: 
-  const
-    XK_Hangul*: TKeySym = 0x0000FF31     # Hangul start/stop(toggle) 
-    XK_Hangul_Start*: TKeySym = 0x0000FF32 # Hangul start 
-    XK_Hangul_End*: TKeySym = 0x0000FF33 # Hangul end, English start 
-    XK_Hangul_Hanja*: TKeySym = 0x0000FF34 # Start Hangul->Hanja Conversion 
-    XK_Hangul_Jamo*: TKeySym = 0x0000FF35 # Hangul Jamo mode 
-    XK_Hangul_Romaja*: TKeySym = 0x0000FF36 # Hangul Romaja mode 
-    XK_Hangul_Codeinput*: TKeySym = 0x0000FF37 # Hangul code input mode 
-    XK_Hangul_Jeonja*: TKeySym = 0x0000FF38 # Jeonja mode 
-    XK_Hangul_Banja*: TKeySym = 0x0000FF39 # Banja mode 
-    XK_Hangul_PreHanja*: TKeySym = 0x0000FF3A # Pre Hanja conversion 
-    XK_Hangul_PostHanja*: TKeySym = 0x0000FF3B # Post Hanja conversion 
-    XK_Hangul_SingleCandidate*: TKeySym = 0x0000FF3C # Single candidate 
-    XK_Hangul_MultipleCandidate*: TKeySym = 0x0000FF3D # Multiple candidate 
-    XK_Hangul_PreviousCandidate*: TKeySym = 0x0000FF3E # Previous candidate 
-    XK_Hangul_Special*: TKeySym = 0x0000FF3F # Special symbols 
-    XK_Hangul_switch*: TKeySym = 0x0000FF7E # Alias for mode_switch \
-                                   # Hangul Consonant Characters 
-    XK_Hangul_Kiyeog*: TKeySym = 0x00000EA1
-    XK_Hangul_SsangKiyeog*: TKeySym = 0x00000EA2
-    XK_Hangul_KiyeogSios*: TKeySym = 0x00000EA3
-    XK_Hangul_Nieun*: TKeySym = 0x00000EA4
-    XK_Hangul_NieunJieuj*: TKeySym = 0x00000EA5
-    XK_Hangul_NieunHieuh*: TKeySym = 0x00000EA6
-    XK_Hangul_Dikeud*: TKeySym = 0x00000EA7
-    XK_Hangul_SsangDikeud*: TKeySym = 0x00000EA8
-    XK_Hangul_Rieul*: TKeySym = 0x00000EA9
-    XK_Hangul_RieulKiyeog*: TKeySym = 0x00000EAA
-    XK_Hangul_RieulMieum*: TKeySym = 0x00000EAB
-    XK_Hangul_RieulPieub*: TKeySym = 0x00000EAC
-    XK_Hangul_RieulSios*: TKeySym = 0x00000EAD
-    XK_Hangul_RieulTieut*: TKeySym = 0x00000EAE
-    XK_Hangul_RieulPhieuf*: TKeySym = 0x00000EAF
-    XK_Hangul_RieulHieuh*: TKeySym = 0x00000EB0
-    XK_Hangul_Mieum*: TKeySym = 0x00000EB1
-    XK_Hangul_Pieub*: TKeySym = 0x00000EB2
-    XK_Hangul_SsangPieub*: TKeySym = 0x00000EB3
-    XK_Hangul_PieubSios*: TKeySym = 0x00000EB4
-    XK_Hangul_Sios*: TKeySym = 0x00000EB5
-    XK_Hangul_SsangSios*: TKeySym = 0x00000EB6
-    XK_Hangul_Ieung*: TKeySym = 0x00000EB7
-    XK_Hangul_Jieuj*: TKeySym = 0x00000EB8
-    XK_Hangul_SsangJieuj*: TKeySym = 0x00000EB9
-    XK_Hangul_Cieuc*: TKeySym = 0x00000EBA
-    XK_Hangul_Khieuq*: TKeySym = 0x00000EBB
-    XK_Hangul_Tieut*: TKeySym = 0x00000EBC
-    XK_Hangul_Phieuf*: TKeySym = 0x00000EBD
-    XK_Hangul_Hieuh*: TKeySym = 0x00000EBE # Hangul Vowel Characters 
-    XK_Hangul_A*: TKeySym = 0x00000EBF
-    XK_Hangul_AE*: TKeySym = 0x00000EC0
-    XK_Hangul_YA*: TKeySym = 0x00000EC1
-    XK_Hangul_YAE*: TKeySym = 0x00000EC2
-    XK_Hangul_EO*: TKeySym = 0x00000EC3
-    XK_Hangul_E*: TKeySym = 0x00000EC4
-    XK_Hangul_YEO*: TKeySym = 0x00000EC5
-    XK_Hangul_YE*: TKeySym = 0x00000EC6
-    XK_Hangul_O*: TKeySym = 0x00000EC7
-    XK_Hangul_WA*: TKeySym = 0x00000EC8
-    XK_Hangul_WAE*: TKeySym = 0x00000EC9
-    XK_Hangul_OE*: TKeySym = 0x00000ECA
-    XK_Hangul_YO*: TKeySym = 0x00000ECB
-    XK_Hangul_U*: TKeySym = 0x00000ECC
-    XK_Hangul_WEO*: TKeySym = 0x00000ECD
-    XK_Hangul_WE*: TKeySym = 0x00000ECE
-    XK_Hangul_WI*: TKeySym = 0x00000ECF
-    XK_Hangul_YU*: TKeySym = 0x00000ED0
-    XK_Hangul_EU*: TKeySym = 0x00000ED1
-    XK_Hangul_YI*: TKeySym = 0x00000ED2
-    XK_Hangul_I*: TKeySym = 0x00000ED3   # Hangul syllable-final (JongSeong) Characters 
-    XK_Hangul_J_Kiyeog*: TKeySym = 0x00000ED4
-    XK_Hangul_J_SsangKiyeog*: TKeySym = 0x00000ED5
-    XK_Hangul_J_KiyeogSios*: TKeySym = 0x00000ED6
-    XK_Hangul_J_Nieun*: TKeySym = 0x00000ED7
-    XK_Hangul_J_NieunJieuj*: TKeySym = 0x00000ED8
-    XK_Hangul_J_NieunHieuh*: TKeySym = 0x00000ED9
-    XK_Hangul_J_Dikeud*: TKeySym = 0x00000EDA
-    XK_Hangul_J_Rieul*: TKeySym = 0x00000EDB
-    XK_Hangul_J_RieulKiyeog*: TKeySym = 0x00000EDC
-    XK_Hangul_J_RieulMieum*: TKeySym = 0x00000EDD
-    XK_Hangul_J_RieulPieub*: TKeySym = 0x00000EDE
-    XK_Hangul_J_RieulSios*: TKeySym = 0x00000EDF
-    XK_Hangul_J_RieulTieut*: TKeySym = 0x00000EE0
-    XK_Hangul_J_RieulPhieuf*: TKeySym = 0x00000EE1
-    XK_Hangul_J_RieulHieuh*: TKeySym = 0x00000EE2
-    XK_Hangul_J_Mieum*: TKeySym = 0x00000EE3
-    XK_Hangul_J_Pieub*: TKeySym = 0x00000EE4
-    XK_Hangul_J_PieubSios*: TKeySym = 0x00000EE5
-    XK_Hangul_J_Sios*: TKeySym = 0x00000EE6
-    XK_Hangul_J_SsangSios*: TKeySym = 0x00000EE7
-    XK_Hangul_J_Ieung*: TKeySym = 0x00000EE8
-    XK_Hangul_J_Jieuj*: TKeySym = 0x00000EE9
-    XK_Hangul_J_Cieuc*: TKeySym = 0x00000EEA
-    XK_Hangul_J_Khieuq*: TKeySym = 0x00000EEB
-    XK_Hangul_J_Tieut*: TKeySym = 0x00000EEC
-    XK_Hangul_J_Phieuf*: TKeySym = 0x00000EED
-    XK_Hangul_J_Hieuh*: TKeySym = 0x00000EEE # Ancient Hangul Consonant Characters 
-    XK_Hangul_RieulYeorinHieuh*: TKeySym = 0x00000EEF
-    XK_Hangul_SunkyeongeumMieum*: TKeySym = 0x00000EF0
-    XK_Hangul_SunkyeongeumPieub*: TKeySym = 0x00000EF1
-    XK_Hangul_PanSios*: TKeySym = 0x00000EF2
-    XK_Hangul_KkogjiDalrinIeung*: TKeySym = 0x00000EF3
-    XK_Hangul_SunkyeongeumPhieuf*: TKeySym = 0x00000EF4
-    XK_Hangul_YeorinHieuh*: TKeySym = 0x00000EF5 # Ancient Hangul Vowel Characters 
-    XK_Hangul_AraeA*: TKeySym = 0x00000EF6
-    XK_Hangul_AraeAE*: TKeySym = 0x00000EF7 # Ancient Hangul syllable-final (JongSeong) Characters 
-    XK_Hangul_J_PanSios*: TKeySym = 0x00000EF8
-    XK_Hangul_J_KkogjiDalrinIeung*: TKeySym = 0x00000EF9
-    XK_Hangul_J_YeorinHieuh*: TKeySym = 0x00000EFA # Korean currency symbol 
-    XK_Korean_Won*: TKeySym = 0x00000EFF
-# XK_KOREAN 
-#*
-# *   Armenian
-# *   Byte 3 = = $14
-# *
-
-when defined(XK_ARMENIAN) or true: 
-  const
-    XK_Armenian_eternity*: TKeySym = 0x000014A1
-    XK_Armenian_ligature_ew*: TKeySym = 0x000014A2
-    XK_Armenian_full_stop*: TKeySym = 0x000014A3
-    XK_Armenian_verjaket*: TKeySym = 0x000014A3
-    XK_Armenian_parenright*: TKeySym = 0x000014A4
-    XK_Armenian_parenleft*: TKeySym = 0x000014A5
-    XK_Armenian_guillemotright*: TKeySym = 0x000014A6
-    XK_Armenian_guillemotleft*: TKeySym = 0x000014A7
-    XK_Armenian_em_dash*: TKeySym = 0x000014A8
-    XK_Armenian_dot*: TKeySym = 0x000014A9
-    XK_Armenian_mijaket*: TKeySym = 0x000014A9
-    XK_Armenian_separation_mark*: TKeySym = 0x000014AA
-    XK_Armenian_but*: TKeySym = 0x000014AA
-    XK_Armenian_comma*: TKeySym = 0x000014AB
-    XK_Armenian_en_dash*: TKeySym = 0x000014AC
-    XK_Armenian_hyphen*: TKeySym = 0x000014AD
-    XK_Armenian_yentamna*: TKeySym = 0x000014AD
-    XK_Armenian_ellipsis*: TKeySym = 0x000014AE
-    XK_Armenian_exclam*: TKeySym = 0x000014AF
-    XK_Armenian_amanak*: TKeySym = 0x000014AF
-    XK_Armenian_accent*: TKeySym = 0x000014B0
-    XK_Armenian_shesht*: TKeySym = 0x000014B0
-    XK_Armenian_question*: TKeySym = 0x000014B1
-    XK_Armenian_paruyk*: TKeySym = 0x000014B1
-    XKc_Armenian_AYB*: TKeySym = 0x000014B2
-    XK_Armenian_ayb*: TKeySym = 0x000014B3
-    XKc_Armenian_BEN*: TKeySym = 0x000014B4
-    XK_Armenian_ben*: TKeySym = 0x000014B5
-    XKc_Armenian_GIM*: TKeySym = 0x000014B6
-    XK_Armenian_gim*: TKeySym = 0x000014B7
-    XKc_Armenian_DA*: TKeySym = 0x000014B8
-    XK_Armenian_da*: TKeySym = 0x000014B9
-    XKc_Armenian_YECH*: TKeySym = 0x000014BA
-    XK_Armenian_yech*: TKeySym = 0x000014BB
-    XKc_Armenian_ZA*: TKeySym = 0x000014BC
-    XK_Armenian_za*: TKeySym = 0x000014BD
-    XKc_Armenian_E*: TKeySym = 0x000014BE
-    XK_Armenian_e*: TKeySym = 0x000014BF
-    XKc_Armenian_AT*: TKeySym = 0x000014C0
-    XK_Armenian_at*: TKeySym = 0x000014C1
-    XKc_Armenian_TO*: TKeySym = 0x000014C2
-    XK_Armenian_to*: TKeySym = 0x000014C3
-    XKc_Armenian_ZHE*: TKeySym = 0x000014C4
-    XK_Armenian_zhe*: TKeySym = 0x000014C5
-    XKc_Armenian_INI*: TKeySym = 0x000014C6
-    XK_Armenian_ini*: TKeySym = 0x000014C7
-    XKc_Armenian_LYUN*: TKeySym = 0x000014C8
-    XK_Armenian_lyun*: TKeySym = 0x000014C9
-    XKc_Armenian_KHE*: TKeySym = 0x000014CA
-    XK_Armenian_khe*: TKeySym = 0x000014CB
-    XKc_Armenian_TSA*: TKeySym = 0x000014CC
-    XK_Armenian_tsa*: TKeySym = 0x000014CD
-    XKc_Armenian_KEN*: TKeySym = 0x000014CE
-    XK_Armenian_ken*: TKeySym = 0x000014CF
-    XKc_Armenian_HO*: TKeySym = 0x000014D0
-    XK_Armenian_ho*: TKeySym = 0x000014D1
-    XKc_Armenian_DZA*: TKeySym = 0x000014D2
-    XK_Armenian_dza*: TKeySym = 0x000014D3
-    XKc_Armenian_GHAT*: TKeySym = 0x000014D4
-    XK_Armenian_ghat*: TKeySym = 0x000014D5
-    XKc_Armenian_TCHE*: TKeySym = 0x000014D6
-    XK_Armenian_tche*: TKeySym = 0x000014D7
-    XKc_Armenian_MEN*: TKeySym = 0x000014D8
-    XK_Armenian_men*: TKeySym = 0x000014D9
-    XKc_Armenian_HI*: TKeySym = 0x000014DA
-    XK_Armenian_hi*: TKeySym = 0x000014DB
-    XKc_Armenian_NU*: TKeySym = 0x000014DC
-    XK_Armenian_nu*: TKeySym = 0x000014DD
-    XKc_Armenian_SHA*: TKeySym = 0x000014DE
-    XK_Armenian_sha*: TKeySym = 0x000014DF
-    XKc_Armenian_VO*: TKeySym = 0x000014E0
-    XK_Armenian_vo*: TKeySym = 0x000014E1
-    XKc_Armenian_CHA*: TKeySym = 0x000014E2
-    XK_Armenian_cha*: TKeySym = 0x000014E3
-    XKc_Armenian_PE*: TKeySym = 0x000014E4
-    XK_Armenian_pe*: TKeySym = 0x000014E5
-    XKc_Armenian_JE*: TKeySym = 0x000014E6
-    XK_Armenian_je*: TKeySym = 0x000014E7
-    XKc_Armenian_RA*: TKeySym = 0x000014E8
-    XK_Armenian_ra*: TKeySym = 0x000014E9
-    XKc_Armenian_SE*: TKeySym = 0x000014EA
-    XK_Armenian_se*: TKeySym = 0x000014EB
-    XKc_Armenian_VEV*: TKeySym = 0x000014EC
-    XK_Armenian_vev*: TKeySym = 0x000014ED
-    XKc_Armenian_TYUN*: TKeySym = 0x000014EE
-    XK_Armenian_tyun*: TKeySym = 0x000014EF
-    XKc_Armenian_RE*: TKeySym = 0x000014F0
-    XK_Armenian_re*: TKeySym = 0x000014F1
-    XKc_Armenian_TSO*: TKeySym = 0x000014F2
-    XK_Armenian_tso*: TKeySym = 0x000014F3
-    XKc_Armenian_VYUN*: TKeySym = 0x000014F4
-    XK_Armenian_vyun*: TKeySym = 0x000014F5
-    XKc_Armenian_PYUR*: TKeySym = 0x000014F6
-    XK_Armenian_pyur*: TKeySym = 0x000014F7
-    XKc_Armenian_KE*: TKeySym = 0x000014F8
-    XK_Armenian_ke*: TKeySym = 0x000014F9
-    XKc_Armenian_O*: TKeySym = 0x000014FA
-    XK_Armenian_o*: TKeySym = 0x000014FB
-    XKc_Armenian_FE*: TKeySym = 0x000014FC
-    XK_Armenian_fe*: TKeySym = 0x000014FD
-    XK_Armenian_apostrophe*: TKeySym = 0x000014FE
-    XK_Armenian_section_sign*: TKeySym = 0x000014FF
-# XK_ARMENIAN 
-#*
-# *   Georgian
-# *   Byte 3 = = $15
-# *
-
-when defined(XK_GEORGIAN) or true: 
-  const
-    XK_Georgian_an*: TKeySym = 0x000015D0
-    XK_Georgian_ban*: TKeySym = 0x000015D1
-    XK_Georgian_gan*: TKeySym = 0x000015D2
-    XK_Georgian_don*: TKeySym = 0x000015D3
-    XK_Georgian_en*: TKeySym = 0x000015D4
-    XK_Georgian_vin*: TKeySym = 0x000015D5
-    XK_Georgian_zen*: TKeySym = 0x000015D6
-    XK_Georgian_tan*: TKeySym = 0x000015D7
-    XK_Georgian_in*: TKeySym = 0x000015D8
-    XK_Georgian_kan*: TKeySym = 0x000015D9
-    XK_Georgian_las*: TKeySym = 0x000015DA
-    XK_Georgian_man*: TKeySym = 0x000015DB
-    XK_Georgian_nar*: TKeySym = 0x000015DC
-    XK_Georgian_on*: TKeySym = 0x000015DD
-    XK_Georgian_par*: TKeySym = 0x000015DE
-    XK_Georgian_zhar*: TKeySym = 0x000015DF
-    XK_Georgian_rae*: TKeySym = 0x000015E0
-    XK_Georgian_san*: TKeySym = 0x000015E1
-    XK_Georgian_tar*: TKeySym = 0x000015E2
-    XK_Georgian_un*: TKeySym = 0x000015E3
-    XK_Georgian_phar*: TKeySym = 0x000015E4
-    XK_Georgian_khar*: TKeySym = 0x000015E5
-    XK_Georgian_ghan*: TKeySym = 0x000015E6
-    XK_Georgian_qar*: TKeySym = 0x000015E7
-    XK_Georgian_shin*: TKeySym = 0x000015E8
-    XK_Georgian_chin*: TKeySym = 0x000015E9
-    XK_Georgian_can*: TKeySym = 0x000015EA
-    XK_Georgian_jil*: TKeySym = 0x000015EB
-    XK_Georgian_cil*: TKeySym = 0x000015EC
-    XK_Georgian_char*: TKeySym = 0x000015ED
-    XK_Georgian_xan*: TKeySym = 0x000015EE
-    XK_Georgian_jhan*: TKeySym = 0x000015EF
-    XK_Georgian_hae*: TKeySym = 0x000015F0
-    XK_Georgian_he*: TKeySym = 0x000015F1
-    XK_Georgian_hie*: TKeySym = 0x000015F2
-    XK_Georgian_we*: TKeySym = 0x000015F3
-    XK_Georgian_har*: TKeySym = 0x000015F4
-    XK_Georgian_hoe*: TKeySym = 0x000015F5
-    XK_Georgian_fi*: TKeySym = 0x000015F6
-# XK_GEORGIAN 
-#*
-# * Azeri (and other Turkic or Caucasian languages of ex-USSR)
-# * Byte 3 = = $16
-# *
-
-when defined(XK_CAUCASUS) or true: 
-  # latin 
-  const
-    XKc_Ccedillaabovedot*: TKeySym = 0x000016A2
-    XKc_Xabovedot*: TKeySym = 0x000016A3
-    XKc_Qabovedot*: TKeySym = 0x000016A5
-    XKc_Ibreve*: TKeySym = 0x000016A6
-    XKc_IE*: TKeySym = 0x000016A7
-    XKc_UO*: TKeySym = 0x000016A8
-    XKc_Zstroke*: TKeySym = 0x000016A9
-    XKc_Gcaron*: TKeySym = 0x000016AA
-    XKc_Obarred*: TKeySym = 0x000016AF
-    XK_ccedillaabovedot*: TKeySym = 0x000016B2
-    XK_xabovedot*: TKeySym = 0x000016B3
-    XKc_Ocaron*: TKeySym = 0x000016B4
-    XK_qabovedot*: TKeySym = 0x000016B5
-    XK_ibreve*: TKeySym = 0x000016B6
-    XK_ie*: TKeySym = 0x000016B7
-    XK_uo*: TKeySym = 0x000016B8
-    XK_zstroke*: TKeySym = 0x000016B9
-    XK_gcaron*: TKeySym = 0x000016BA
-    XK_ocaron*: TKeySym = 0x000016BD
-    XK_obarred*: TKeySym = 0x000016BF
-    XKc_SCHWA*: TKeySym = 0x000016C6
-    XK_schwa*: TKeySym = 0x000016F6 # those are not really Caucasus, but I put them here for now\ 
-                           # For Inupiak 
-    XKc_Lbelowdot*: TKeySym = 0x000016D1
-    XKc_Lstrokebelowdot*: TKeySym = 0x000016D2
-    XK_lbelowdot*: TKeySym = 0x000016E1
-    XK_lstrokebelowdot*: TKeySym = 0x000016E2 # For Guarani 
-    XKc_Gtilde*: TKeySym = 0x000016D3
-    XK_gtilde*: TKeySym = 0x000016E3
-# XK_CAUCASUS 
-#*
-# *   Vietnamese
-# *   Byte 3 = = $1e
-# *
-
-when defined(XK_VIETNAMESE) or true:
-  const 
-    XKc_Abelowdot*: TKeySym = 0x00001EA0
-    XK_abelowdot*: TKeySym = 0x00001EA1
-    XKc_Ahook*: TKeySym = 0x00001EA2
-    XK_ahook*: TKeySym = 0x00001EA3
-    XKc_Acircumflexacute*: TKeySym = 0x00001EA4
-    XK_acircumflexacute*: TKeySym = 0x00001EA5
-    XKc_Acircumflexgrave*: TKeySym = 0x00001EA6
-    XK_acircumflexgrave*: TKeySym = 0x00001EA7
-    XKc_Acircumflexhook*: TKeySym = 0x00001EA8
-    XK_acircumflexhook*: TKeySym = 0x00001EA9
-    XKc_Acircumflextilde*: TKeySym = 0x00001EAA
-    XK_acircumflextilde*: TKeySym = 0x00001EAB
-    XKc_Acircumflexbelowdot*: TKeySym = 0x00001EAC
-    XK_acircumflexbelowdot*: TKeySym = 0x00001EAD
-    XKc_Abreveacute*: TKeySym = 0x00001EAE
-    XK_abreveacute*: TKeySym = 0x00001EAF
-    XKc_Abrevegrave*: TKeySym = 0x00001EB0
-    XK_abrevegrave*: TKeySym = 0x00001EB1
-    XKc_Abrevehook*: TKeySym = 0x00001EB2
-    XK_abrevehook*: TKeySym = 0x00001EB3
-    XKc_Abrevetilde*: TKeySym = 0x00001EB4
-    XK_abrevetilde*: TKeySym = 0x00001EB5
-    XKc_Abrevebelowdot*: TKeySym = 0x00001EB6
-    XK_abrevebelowdot*: TKeySym = 0x00001EB7
-    XKc_Ebelowdot*: TKeySym = 0x00001EB8
-    XK_ebelowdot*: TKeySym = 0x00001EB9
-    XKc_Ehook*: TKeySym = 0x00001EBA
-    XK_ehook*: TKeySym = 0x00001EBB
-    XKc_Etilde*: TKeySym = 0x00001EBC
-    XK_etilde*: TKeySym = 0x00001EBD
-    XKc_Ecircumflexacute*: TKeySym = 0x00001EBE
-    XK_ecircumflexacute*: TKeySym = 0x00001EBF
-    XKc_Ecircumflexgrave*: TKeySym = 0x00001EC0
-    XK_ecircumflexgrave*: TKeySym = 0x00001EC1
-    XKc_Ecircumflexhook*: TKeySym = 0x00001EC2
-    XK_ecircumflexhook*: TKeySym = 0x00001EC3
-    XKc_Ecircumflextilde*: TKeySym = 0x00001EC4
-    XK_ecircumflextilde*: TKeySym = 0x00001EC5
-    XKc_Ecircumflexbelowdot*: TKeySym = 0x00001EC6
-    XK_ecircumflexbelowdot*: TKeySym = 0x00001EC7
-    XKc_Ihook*: TKeySym = 0x00001EC8
-    XK_ihook*: TKeySym = 0x00001EC9
-    XKc_Ibelowdot*: TKeySym = 0x00001ECA
-    XK_ibelowdot*: TKeySym = 0x00001ECB
-    XKc_Obelowdot*: TKeySym = 0x00001ECC
-    XK_obelowdot*: TKeySym = 0x00001ECD
-    XKc_Ohook*: TKeySym = 0x00001ECE
-    XK_ohook*: TKeySym = 0x00001ECF
-    XKc_Ocircumflexacute*: TKeySym = 0x00001ED0
-    XK_ocircumflexacute*: TKeySym = 0x00001ED1
-    XKc_Ocircumflexgrave*: TKeySym = 0x00001ED2
-    XK_ocircumflexgrave*: TKeySym = 0x00001ED3
-    XKc_Ocircumflexhook*: TKeySym = 0x00001ED4
-    XK_ocircumflexhook*: TKeySym = 0x00001ED5
-    XKc_Ocircumflextilde*: TKeySym = 0x00001ED6
-    XK_ocircumflextilde*: TKeySym = 0x00001ED7
-    XKc_Ocircumflexbelowdot*: TKeySym = 0x00001ED8
-    XK_ocircumflexbelowdot*: TKeySym = 0x00001ED9
-    XKc_Ohornacute*: TKeySym = 0x00001EDA
-    XK_ohornacute*: TKeySym = 0x00001EDB
-    XKc_Ohorngrave*: TKeySym = 0x00001EDC
-    XK_ohorngrave*: TKeySym = 0x00001EDD
-    XKc_Ohornhook*: TKeySym = 0x00001EDE
-    XK_ohornhook*: TKeySym = 0x00001EDF
-    XKc_Ohorntilde*: TKeySym = 0x00001EE0
-    XK_ohorntilde*: TKeySym = 0x00001EE1
-    XKc_Ohornbelowdot*: TKeySym = 0x00001EE2
-    XK_ohornbelowdot*: TKeySym = 0x00001EE3
-    XKc_Ubelowdot*: TKeySym = 0x00001EE4
-    XK_ubelowdot*: TKeySym = 0x00001EE5
-    XKc_Uhook*: TKeySym = 0x00001EE6
-    XK_uhook*: TKeySym = 0x00001EE7
-    XKc_Uhornacute*: TKeySym = 0x00001EE8
-    XK_uhornacute*: TKeySym = 0x00001EE9
-    XKc_Uhorngrave*: TKeySym = 0x00001EEA
-    XK_uhorngrave*: TKeySym = 0x00001EEB
-    XKc_Uhornhook*: TKeySym = 0x00001EEC
-    XK_uhornhook*: TKeySym = 0x00001EED
-    XKc_Uhorntilde*: TKeySym = 0x00001EEE
-    XK_uhorntilde*: TKeySym = 0x00001EEF
-    XKc_Uhornbelowdot*: TKeySym = 0x00001EF0
-    XK_uhornbelowdot*: TKeySym = 0x00001EF1
-    XKc_Ybelowdot*: TKeySym = 0x00001EF4
-    XK_ybelowdot*: TKeySym = 0x00001EF5
-    XKc_Yhook*: TKeySym = 0x00001EF6
-    XK_yhook*: TKeySym = 0x00001EF7
-    XKc_Ytilde*: TKeySym = 0x00001EF8
-    XK_ytilde*: TKeySym = 0x00001EF9
-    XKc_Ohorn*: TKeySym = 0x00001EFA     # U+01a0 
-    XK_ohorn*: TKeySym = 0x00001EFB      # U+01a1 
-    XKc_Uhorn*: TKeySym = 0x00001EFC     # U+01af 
-    XK_uhorn*: TKeySym = 0x00001EFD      # U+01b0 
-    XK_combining_tilde*: TKeySym = 0x00001E9F # U+0303 
-    XK_combining_grave*: TKeySym = 0x00001EF2 # U+0300 
-    XK_combining_acute*: TKeySym = 0x00001EF3 # U+0301 
-    XK_combining_hook*: TKeySym = 0x00001EFE # U+0309 
-    XK_combining_belowdot*: TKeySym = 0x00001EFF # U+0323 
-# XK_VIETNAMESE 
-
-when defined(XK_CURRENCY) or true: 
-  const
-    XK_EcuSign*: TKeySym = 0x000020A0
-    XK_ColonSign*: TKeySym = 0x000020A1
-    XK_CruzeiroSign*: TKeySym = 0x000020A2
-    XK_FFrancSign*: TKeySym = 0x000020A3
-    XK_LiraSign*: TKeySym = 0x000020A4
-    XK_MillSign*: TKeySym = 0x000020A5
-    XK_NairaSign*: TKeySym = 0x000020A6
-    XK_PesetaSign*: TKeySym = 0x000020A7
-    XK_RupeeSign*: TKeySym = 0x000020A8
-    XK_WonSign*: TKeySym = 0x000020A9
-    XK_NewSheqelSign*: TKeySym = 0x000020AA
-    XK_DongSign*: TKeySym = 0x000020AB
-    XK_EuroSign*: TKeySym = 0x000020AC
-# implementation
diff --git a/lib/wrappers/x11/x.nim b/lib/wrappers/x11/x.nim
deleted file mode 100644
index 2eefe311f..000000000
--- a/lib/wrappers/x11/x.nim
+++ /dev/null
@@ -1,401 +0,0 @@
-
-#
-#  Automatically converted by H2Pas 0.99.15 from x.h
-#  The following command line parameters were used:
-#    -p
-#    -T
-#    -S
-#    -d
-#    -c
-#    x.h
-#
-# Pointers to basic pascal types, inserted by h2pas conversion program.
-import unsigned
-
-const 
-  X_PROTOCOL* = 11
-  X_PROTOCOL_REVISION* = 0
-
-type
-  PXID* = ptr TXID
-  TXID* = culong
-  PMask* = ptr TMask
-  TMask* = culong
-  PPAtom* = ptr PAtom
-  PAtom* = ptr TAtom
-  TAtom* = culong
-  PVisualID* = ptr TVisualID
-  TVisualID* = culong
-  PTime* = ptr TTime
-  TTime* = culong
-  PPWindow* = ptr PWindow
-  PWindow* = ptr TWindow
-  TWindow* = TXID
-  PDrawable* = ptr TDrawable
-  TDrawable* = TXID
-  PFont* = ptr TFont
-  TFont* = TXID
-  PPixmap* = ptr TPixmap
-  TPixmap* = TXID
-  PCursor* = ptr TCursor
-  TCursor* = TXID
-  PColormap* = ptr TColormap
-  TColormap* = TXID
-  PGContext* = ptr TGContext
-  TGContext* = TXID
-  PKeySym* = ptr TKeySym
-  TKeySym* = TXID
-  PKeyCode* = ptr TKeyCode
-  TKeyCode* = cuchar
-
-proc `==`*(a, b: TAtom): bool =
-    return unsigned.`==`(a,b)
-
-const 
-  None* = 0
-  ParentRelative* = 1
-  CopyFromParent* = 0
-  PointerWindow* = 0
-  InputFocus* = 1
-  PointerRoot* = 1
-  AnyPropertyType* = 0
-  AnyKey* = 0
-  AnyButton* = 0
-  AllTemporary* = 0
-  CurrentTime* = 0
-  NoSymbol* = 0
-  NoEventMask* = 0
-  KeyPressMask* = 1 shl 0
-  KeyReleaseMask* = 1 shl 1
-  ButtonPressMask* = 1 shl 2
-  ButtonReleaseMask* = 1 shl 3
-  EnterWindowMask* = 1 shl 4
-  LeaveWindowMask* = 1 shl 5
-  PointerMotionMask* = 1 shl 6
-  PointerMotionHintMask* = 1 shl 7
-  Button1MotionMask* = 1 shl 8
-  Button2MotionMask* = 1 shl 9
-  Button3MotionMask* = 1 shl 10
-  Button4MotionMask* = 1 shl 11
-  Button5MotionMask* = 1 shl 12
-  ButtonMotionMask* = 1 shl 13
-  KeymapStateMask* = 1 shl 14
-  ExposureMask* = 1 shl 15
-  VisibilityChangeMask* = 1 shl 16
-  StructureNotifyMask* = 1 shl 17
-  ResizeRedirectMask* = 1 shl 18
-  SubstructureNotifyMask* = 1 shl 19
-  SubstructureRedirectMask* = 1 shl 20
-  FocusChangeMask* = 1 shl 21
-  PropertyChangeMask* = 1 shl 22
-  ColormapChangeMask* = 1 shl 23
-  OwnerGrabButtonMask* = 1 shl 24
-  KeyPress* = 2
-  KeyRelease* = 3
-  ButtonPress* = 4
-  ButtonRelease* = 5
-  MotionNotify* = 6
-  EnterNotify* = 7
-  LeaveNotify* = 8
-  FocusIn* = 9
-  FocusOut* = 10
-  KeymapNotify* = 11
-  Expose* = 12
-  GraphicsExpose* = 13
-  NoExpose* = 14
-  VisibilityNotify* = 15
-  CreateNotify* = 16
-  DestroyNotify* = 17
-  UnmapNotify* = 18
-  MapNotify* = 19
-  MapRequest* = 20
-  ReparentNotify* = 21
-  ConfigureNotify* = 22
-  ConfigureRequest* = 23
-  GravityNotify* = 24
-  ResizeRequest* = 25
-  CirculateNotify* = 26
-  CirculateRequest* = 27
-  PropertyNotify* = 28
-  SelectionClear* = 29
-  SelectionRequest* = 30
-  SelectionNotify* = 31
-  ColormapNotify* = 32
-  ClientMessage* = 33
-  MappingNotify* = 34
-  LASTEvent* = 35
-  ShiftMask* = 1 shl 0
-  LockMask* = 1 shl 1
-  ControlMask* = 1 shl 2
-  Mod1Mask* = 1 shl 3
-  Mod2Mask* = 1 shl 4
-  Mod3Mask* = 1 shl 5
-  Mod4Mask* = 1 shl 6
-  Mod5Mask* = 1 shl 7
-  ShiftMapIndex* = 0
-  LockMapIndex* = 1
-  ControlMapIndex* = 2
-  Mod1MapIndex* = 3
-  Mod2MapIndex* = 4
-  Mod3MapIndex* = 5
-  Mod4MapIndex* = 6
-  Mod5MapIndex* = 7
-  Button1Mask* = 1 shl 8
-  Button2Mask* = 1 shl 9
-  Button3Mask* = 1 shl 10
-  Button4Mask* = 1 shl 11
-  Button5Mask* = 1 shl 12
-  AnyModifier* = 1 shl 15
-  Button1* = 1
-  Button2* = 2
-  Button3* = 3
-  Button4* = 4
-  Button5* = 5
-  NotifyNormal* = 0
-  NotifyGrab* = 1
-  NotifyUngrab* = 2
-  NotifyWhileGrabbed* = 3
-  NotifyHint* = 1
-  NotifyAncestor* = 0
-  NotifyVirtual* = 1
-  NotifyInferior* = 2
-  NotifyNonlinear* = 3
-  NotifyNonlinearVirtual* = 4
-  NotifyPointer* = 5
-  NotifyPointerRoot* = 6
-  NotifyDetailNone* = 7
-  VisibilityUnobscured* = 0
-  VisibilityPartiallyObscured* = 1
-  VisibilityFullyObscured* = 2
-  PlaceOnTop* = 0
-  PlaceOnBottom* = 1
-  FamilyInternet* = 0
-  FamilyDECnet* = 1
-  FamilyChaos* = 2
-  FamilyInternet6* = 6
-  FamilyServerInterpreted* = 5
-  PropertyNewValue* = 0
-  PropertyDelete* = 1
-  ColormapUninstalled* = 0
-  ColormapInstalled* = 1
-  GrabModeSync* = 0
-  GrabModeAsync* = 1
-  GrabSuccess* = 0
-  AlreadyGrabbed* = 1
-  GrabInvalidTime* = 2
-  GrabNotViewable* = 3
-  GrabFrozen* = 4
-  AsyncPointer* = 0
-  SyncPointer* = 1
-  ReplayPointer* = 2
-  AsyncKeyboard* = 3
-  SyncKeyboard* = 4
-  ReplayKeyboard* = 5
-  AsyncBoth* = 6
-  SyncBoth* = 7
-  RevertToNone* = None
-  RevertToPointerRoot* = PointerRoot
-  RevertToParent* = 2
-  Success* = 0
-  BadRequest* = 1
-  BadValue* = 2
-  BadWindow* = 3
-  BadPixmap* = 4
-  BadAtom* = 5
-  BadCursor* = 6
-  BadFont* = 7
-  BadMatch* = 8
-  BadDrawable* = 9
-  BadAccess* = 10
-  BadAlloc* = 11
-  BadColor* = 12
-  BadGC* = 13
-  BadIDChoice* = 14
-  BadName* = 15
-  BadLength* = 16
-  BadImplementation* = 17
-  FirstExtensionError* = 128
-  LastExtensionError* = 255
-  InputOutput* = 1
-  InputOnly* = 2
-  CWBackPixmap* = 1 shl 0
-  CWBackPixel* = 1 shl 1
-  CWBorderPixmap* = 1 shl 2
-  CWBorderPixel* = 1 shl 3
-  CWBitGravity* = 1 shl 4
-  CWWinGravity* = 1 shl 5
-  CWBackingStore* = 1 shl 6
-  CWBackingPlanes* = 1 shl 7
-  CWBackingPixel* = 1 shl 8
-  CWOverrideRedirect* = 1 shl 9
-  CWSaveUnder* = 1 shl 10
-  CWEventMask* = 1 shl 11
-  CWDontPropagate* = 1 shl 12
-  CWColormap* = 1 shl 13
-  CWCursor* = 1 shl 14
-  CWX* = 1 shl 0
-  CWY* = 1 shl 1
-  CWWidth* = 1 shl 2
-  CWHeight* = 1 shl 3
-  CWBorderWidth* = 1 shl 4
-  CWSibling* = 1 shl 5
-  CWStackMode* = 1 shl 6
-  ForgetGravity* = 0
-  NorthWestGravity* = 1
-  NorthGravity* = 2
-  NorthEastGravity* = 3
-  WestGravity* = 4
-  CenterGravity* = 5
-  EastGravity* = 6
-  SouthWestGravity* = 7
-  SouthGravity* = 8
-  SouthEastGravity* = 9
-  StaticGravity* = 10
-  UnmapGravity* = 0
-  NotUseful* = 0
-  WhenMapped* = 1
-  Always* = 2
-  IsUnmapped* = 0
-  IsUnviewable* = 1
-  IsViewable* = 2
-  SetModeInsert* = 0
-  SetModeDelete* = 1
-  DestroyAll* = 0
-  RetainPermanent* = 1
-  RetainTemporary* = 2
-  Above* = 0
-  Below* = 1
-  TopIf* = 2
-  BottomIf* = 3
-  Opposite* = 4
-  RaiseLowest* = 0
-  LowerHighest* = 1
-  PropModeReplace* = 0
-  PropModePrepend* = 1
-  PropModeAppend* = 2
-  GXclear* = 0x00000000
-  GXand* = 0x00000001
-  GXandReverse* = 0x00000002
-  GXcopy* = 0x00000003
-  GXandInverted* = 0x00000004
-  GXnoop* = 0x00000005
-  GXxor* = 0x00000006
-  GXor* = 0x00000007
-  GXnor* = 0x00000008
-  GXequiv* = 0x00000009
-  GXinvert* = 0x0000000A
-  GXorReverse* = 0x0000000B
-  GXcopyInverted* = 0x0000000C
-  GXorInverted* = 0x0000000D
-  GXnand* = 0x0000000E
-  GXset* = 0x0000000F
-  LineSolid* = 0
-  LineOnOffDash* = 1
-  LineDoubleDash* = 2
-  CapNotLast* = 0
-  CapButt* = 1
-  CapRound* = 2
-  CapProjecting* = 3
-  JoinMiter* = 0
-  JoinRound* = 1
-  JoinBevel* = 2
-  FillSolid* = 0
-  FillTiled* = 1
-  FillStippled* = 2
-  FillOpaqueStippled* = 3
-  EvenOddRule* = 0
-  WindingRule* = 1
-  ClipByChildren* = 0
-  IncludeInferiors* = 1
-  Unsorted* = 0
-  YSorted* = 1
-  YXSorted* = 2
-  YXBanded* = 3
-  CoordModeOrigin* = 0
-  CoordModePrevious* = 1
-  Complex* = 0
-  Nonconvex* = 1
-  Convex* = 2
-  ArcChord* = 0
-  ArcPieSlice* = 1
-  GCFunction* = 1 shl 0
-  GCPlaneMask* = 1 shl 1
-  GCForeground* = 1 shl 2
-  GCBackground* = 1 shl 3
-  GCLineWidth* = 1 shl 4
-  GCLineStyle* = 1 shl 5
-  GCCapStyle* = 1 shl 6
-  GCJoinStyle* = 1 shl 7
-  GCFillStyle* = 1 shl 8
-  GCFillRule* = 1 shl 9
-  GCTile* = 1 shl 10
-  GCStipple* = 1 shl 11
-  GCTileStipXOrigin* = 1 shl 12
-  GCTileStipYOrigin* = 1 shl 13
-  GCFont* = 1 shl 14
-  GCSubwindowMode* = 1 shl 15
-  GCGraphicsExposures* = 1 shl 16
-  GCClipXOrigin* = 1 shl 17
-  GCClipYOrigin* = 1 shl 18
-  GCClipMask* = 1 shl 19
-  GCDashOffset* = 1 shl 20
-  GCDashList* = 1 shl 21
-  GCArcMode* = 1 shl 22
-  GCLastBit* = 22
-  FontLeftToRight* = 0
-  FontRightToLeft* = 1
-  FontChange* = 255
-  XYBitmap* = 0
-  XYPixmap* = 1
-  ZPixmap* = 2
-  AllocNone* = 0
-  AllocAll* = 1
-  DoRed* = 1 shl 0
-  DoGreen* = 1 shl 1
-  DoBlue* = 1 shl 2
-  CursorShape* = 0
-  TileShape* = 1
-  StippleShape* = 2
-  AutoRepeatModeOff* = 0
-  AutoRepeatModeOn* = 1
-  AutoRepeatModeDefault* = 2
-  LedModeOff* = 0
-  LedModeOn* = 1
-  KBKeyClickPercent* = 1 shl 0
-  KBBellPercent* = 1 shl 1
-  KBBellPitch* = 1 shl 2
-  KBBellDuration* = 1 shl 3
-  KBLed* = 1 shl 4
-  KBLedMode* = 1 shl 5
-  KBKey* = 1 shl 6
-  KBAutoRepeatMode* = 1 shl 7
-  MappingSuccess* = 0
-  MappingBusy* = 1
-  MappingFailed* = 2
-  MappingModifier* = 0
-  MappingKeyboard* = 1
-  MappingPointer* = 2
-  DontPreferBlanking* = 0
-  PreferBlanking* = 1
-  DefaultBlanking* = 2
-  DisableScreenSaver* = 0
-  DisableScreenInterval* = 0
-  DontAllowExposures* = 0
-  AllowExposures* = 1
-  DefaultExposures* = 2
-  ScreenSaverReset* = 0
-  ScreenSaverActive* = 1
-  HostInsert* = 0
-  HostDelete* = 1
-  EnableAccess* = 1
-  DisableAccess* = 0
-  StaticGray* = 0
-  GrayScale* = 1
-  StaticColor* = 2
-  PseudoColor* = 3
-  TrueColor* = 4
-  DirectColor* = 5
-  LSBFirst* = 0
-  MSBFirst* = 1
-
-# implementation
diff --git a/lib/wrappers/x11/x11pragma.nim b/lib/wrappers/x11/x11pragma.nim
deleted file mode 100644
index bc88fb004..000000000
--- a/lib/wrappers/x11/x11pragma.nim
+++ /dev/null
@@ -1,20 +0,0 @@
-# included from xlib bindings
-
-
-when defined(use_pkg_config) or defined(use_pkg_config_static):
-    {.pragma: libx11, cdecl, importc.}
-    {.pragma: libx11c, cdecl.}
-    when defined(use_pkg_config_static):
-        {.passl: gorge("pkg-config x11 --static --libs").}
-    else:
-        {.passl: gorge("pkg-config x11 --libs").}
-else:
-    when defined(macosx):
-        const 
-          libX11* = "libX11.dylib"
-    else:
-        const 
-          libX11* = "libX11.so"
-
-    {.pragma: libx11, cdecl, dynlib: libX11, importc.}
-    {.pragma: libx11c, cdecl, dynlib: libX11.}
diff --git a/lib/wrappers/x11/xatom.nim b/lib/wrappers/x11/xatom.nim
deleted file mode 100644
index b2e1dca91..000000000
--- a/lib/wrappers/x11/xatom.nim
+++ /dev/null
@@ -1,81 +0,0 @@
-#
-# THIS IS A GENERATED FILE
-#
-# Do not change!  Changing this file implies a protocol change!
-#
-
-import  
-  X
-
-const 
-  XA_PRIMARY* = TAtom(1)
-  XA_SECONDARY* = TAtom(2)
-  XA_ARC* = TAtom(3)
-  XA_ATOM* = TAtom(4)
-  XA_BITMAP* = TAtom(5)
-  XA_CARDINAL* = TAtom(6)
-  XA_COLORMAP* = TAtom(7)
-  XA_CURSOR* = TAtom(8)
-  XA_CUT_BUFFER0* = TAtom(9)
-  XA_CUT_BUFFER1* = TAtom(10)
-  XA_CUT_BUFFER2* = TAtom(11)
-  XA_CUT_BUFFER3* = TAtom(12)
-  XA_CUT_BUFFER4* = TAtom(13)
-  XA_CUT_BUFFER5* = TAtom(14)
-  XA_CUT_BUFFER6* = TAtom(15)
-  XA_CUT_BUFFER7* = TAtom(16)
-  XA_DRAWABLE* = TAtom(17)
-  XA_FONT* = TAtom(18)
-  XA_INTEGER* = TAtom(19)
-  XA_PIXMAP* = TAtom(20)
-  XA_POINT* = TAtom(21)
-  XA_RECTANGLE* = TAtom(22)
-  XA_RESOURCE_MANAGER* = TAtom(23)
-  XA_RGB_COLOR_MAP* = TAtom(24)
-  XA_RGB_BEST_MAP* = TAtom(25)
-  XA_RGB_BLUE_MAP* = TAtom(26)
-  XA_RGB_DEFAULT_MAP* = TAtom(27)
-  XA_RGB_GRAY_MAP* = TAtom(28)
-  XA_RGB_GREEN_MAP* = TAtom(29)
-  XA_RGB_RED_MAP* = TAtom(30)
-  XA_STRING* = TAtom(31)
-  XA_VISUALID* = TAtom(32)
-  XA_WINDOW* = TAtom(33)
-  XA_WM_COMMAND* = TAtom(34)
-  XA_WM_HINTS* = TAtom(35)
-  XA_WM_CLIENT_MACHINE* = TAtom(36)
-  XA_WM_ICON_NAME* = TAtom(37)
-  XA_WM_ICON_SIZE* = TAtom(38)
-  XA_WM_NAME* = TAtom(39)
-  XA_WM_NORMAL_HINTS* = TAtom(40)
-  XA_WM_SIZE_HINTS* = TAtom(41)
-  XA_WM_ZOOM_HINTS* = TAtom(42)
-  XA_MIN_SPACE* = TAtom(43)
-  XA_NORM_SPACE* = TAtom(44)
-  XA_MAX_SPACE* = TAtom(45)
-  XA_END_SPACE* = TAtom(46)
-  XA_SUPERSCRIPT_X* = TAtom(47)
-  XA_SUPERSCRIPT_Y* = TAtom(48)
-  XA_SUBSCRIPT_X* = TAtom(49)
-  XA_SUBSCRIPT_Y* = TAtom(50)
-  XA_UNDERLINE_POSITION* = TAtom(51)
-  XA_UNDERLINE_THICKNESS* = TAtom(52)
-  XA_STRIKEOUT_ASCENT* = TAtom(53)
-  XA_STRIKEOUT_DESCENT* = TAtom(54)
-  XA_ITALIC_ANGLE* = TAtom(55)
-  XA_X_HEIGHT* = TAtom(56)
-  XA_QUAD_WIDTH* = TAtom(57)
-  XA_WEIGHT* = TAtom(58)
-  XA_POINT_SIZE* = TAtom(59)
-  XA_RESOLUTION* = TAtom(60)
-  XA_COPYRIGHT* = TAtom(61)
-  XA_NOTICE* = TAtom(62)
-  XA_FONT_NAME* = TAtom(63)
-  XA_FAMILY_NAME* = TAtom(64)
-  XA_FULL_NAME* = TAtom(65)
-  XA_CAP_HEIGHT* = TAtom(66)
-  XA_WM_CLASS* = TAtom(67)
-  XA_WM_TRANSIENT_FOR* = TAtom(68)
-  XA_LAST_PREDEFINED* = TAtom(68)
-
-# implementation
diff --git a/lib/wrappers/x11/xcms.nim b/lib/wrappers/x11/xcms.nim
deleted file mode 100644
index 57aad6ae0..000000000
--- a/lib/wrappers/x11/xcms.nim
+++ /dev/null
@@ -1,396 +0,0 @@
-
-import 
-  x, xlib
-
-#const 
-#  libX11* = "X11" 
-
-#
-#  Automatically converted by H2Pas 0.99.15 from xcms.h
-#  The following command line parameters were used:
-#    -p
-#    -T
-#    -S
-#    -d
-#    -c
-#    xcms.h
-#
-
-const 
-  XcmsFailure* = 0
-  XcmsSuccess* = 1
-  XcmsSuccessWithCompression* = 2
-
-type 
-  PXcmsColorFormat* = ptr TXcmsColorFormat
-  TXcmsColorFormat* = int32
-
-proc XcmsUndefinedFormat*(): TXcmsColorFormat
-proc XcmsCIEXYZFormat*(): TXcmsColorFormat
-proc XcmsCIEuvYFormat*(): TXcmsColorFormat
-proc XcmsCIExyYFormat*(): TXcmsColorFormat
-proc XcmsCIELabFormat*(): TXcmsColorFormat
-proc XcmsCIELuvFormat*(): TXcmsColorFormat
-proc XcmsTekHVCFormat*(): TXcmsColorFormat
-proc XcmsRGBFormat*(): TXcmsColorFormat
-proc XcmsRGBiFormat*(): TXcmsColorFormat
-const 
-  XcmsInitNone* = 0x00000000
-  XcmsInitSuccess* = 0x00000001
-  XcmsInitFailure* = 0x000000FF
-
-when defined(MACROS): 
-  proc DisplayOfCCC*(ccc: int32): int32
-  proc ScreenNumberOfCCC*(ccc: int32): int32
-  proc VisualOfCCC*(ccc: int32): int32
-  proc ClientWhitePointOfCCC*(ccc: int32): int32
-  proc ScreenWhitePointOfCCC*(ccc: int32): int32
-  proc FunctionSetOfCCC*(ccc: int32): int32
-type 
-  PXcmsFloat* = ptr TXcmsFloat
-  TXcmsFloat* = float64
-  PXcmsRGB* = ptr TXcmsRGB
-  TXcmsRGB*{.final.} = object 
-    red*: int16
-    green*: int16
-    blue*: int16
-
-  PXcmsRGBi* = ptr TXcmsRGBi
-  TXcmsRGBi*{.final.} = object 
-    red*: TXcmsFloat
-    green*: TXcmsFloat
-    blue*: TXcmsFloat
-
-  PXcmsCIEXYZ* = ptr TXcmsCIEXYZ
-  TXcmsCIEXYZ*{.final.} = object 
-    X*: TXcmsFloat
-    Y*: TXcmsFloat
-    Z*: TXcmsFloat
-
-  PXcmsCIEuvY* = ptr TXcmsCIEuvY
-  TXcmsCIEuvY*{.final.} = object 
-    u_prime*: TXcmsFloat
-    v_prime*: TXcmsFloat
-    Y*: TXcmsFloat
-
-  PXcmsCIExyY* = ptr TXcmsCIExyY
-  TXcmsCIExyY*{.final.} = object 
-    x*: TXcmsFloat
-    y*: TXcmsFloat
-    theY*: TXcmsFloat
-
-  PXcmsCIELab* = ptr TXcmsCIELab
-  TXcmsCIELab*{.final.} = object 
-    L_star*: TXcmsFloat
-    a_star*: TXcmsFloat
-    b_star*: TXcmsFloat
-
-  PXcmsCIELuv* = ptr TXcmsCIELuv
-  TXcmsCIELuv*{.final.} = object 
-    L_star*: TXcmsFloat
-    u_star*: TXcmsFloat
-    v_star*: TXcmsFloat
-
-  PXcmsTekHVC* = ptr TXcmsTekHVC
-  TXcmsTekHVC*{.final.} = object 
-    H*: TXcmsFloat
-    V*: TXcmsFloat
-    C*: TXcmsFloat
-
-  PXcmsPad* = ptr TXcmsPad
-  TXcmsPad*{.final.} = object 
-    pad0*: TXcmsFloat
-    pad1*: TXcmsFloat
-    pad2*: TXcmsFloat
-    pad3*: TXcmsFloat
-
-  PXcmsColor* = ptr TXcmsColor
-  TXcmsColor*{.final.} = object  # spec : record
-                                 #            case longint of
-                                 #               0 : ( RGB : TXcmsRGB );
-                                 #               1 : ( RGBi : TXcmsRGBi );
-                                 #               2 : ( CIEXYZ : TXcmsCIEXYZ );
-                                 #               3 : ( CIEuvY : TXcmsCIEuvY );
-                                 #               4 : ( CIExyY : TXcmsCIExyY );
-                                 #               5 : ( CIELab : TXcmsCIELab );
-                                 #               6 : ( CIELuv : TXcmsCIELuv );
-                                 #               7 : ( TekHVC : TXcmsTekHVC );
-                                 #               8 : ( Pad : TXcmsPad ); 
-                                 #            end; 
-    pad*: TXcmsPad
-    pixel*: int32
-    format*: TXcmsColorFormat
-
-  PXcmsPerScrnInfo* = ptr TXcmsPerScrnInfo
-  TXcmsPerScrnInfo*{.final.} = object 
-    screenWhitePt*: TXcmsColor
-    functionSet*: TXPointer
-    screenData*: TXPointer
-    state*: int8
-    pad*: array[0..2, char]
-
-  PXcmsCCC* = ptr TXcmsCCC
-  TXcmsCompressionProc* = proc (para1: PXcmsCCC, para2: PXcmsColor, 
-                                para3: int32, para4: int32, para5: PBool): TStatus{.
-      cdecl.}
-  TXcmsWhiteAdjustProc* = proc (para1: PXcmsCCC, para2: PXcmsColor, 
-                                para3: PXcmsColor, para4: TXcmsColorFormat, 
-                                para5: PXcmsColor, para6: int32, para7: PBool): TStatus{.
-      cdecl.}
-  TXcmsCCC*{.final.} = object 
-    dpy*: PDisplay
-    screenNumber*: int32
-    visual*: PVisual
-    clientWhitePt*: TXcmsColor
-    gamutCompProc*: TXcmsCompressionProc
-    gamutCompClientData*: TXPointer
-    whitePtAdjProc*: TXcmsWhiteAdjustProc
-    whitePtAdjClientData*: TXPointer
-    pPerScrnInfo*: PXcmsPerScrnInfo
-
-  TXcmsCCCRec* = TXcmsCCC
-  PXcmsCCCRec* = ptr TXcmsCCCRec
-  TXcmsScreenInitProc* = proc (para1: PDisplay, para2: int32, 
-                               para3: PXcmsPerScrnInfo): TStatus{.cdecl.}
-  TXcmsScreenFreeProc* = proc (para1: TXPointer){.cdecl.}
-  TXcmsConversionProc* = proc (){.cdecl.}
-  PXcmsFuncListPtr* = ptr TXcmsFuncListPtr
-  TXcmsFuncListPtr* = TXcmsConversionProc
-  TXcmsParseStringProc* = proc (para1: cstring, para2: PXcmsColor): int32{.cdecl.}
-  PXcmsColorSpace* = ptr TXcmsColorSpace
-  TXcmsColorSpace*{.final.} = object 
-    prefix*: cstring
-    id*: TXcmsColorFormat
-    parseString*: TXcmsParseStringProc
-    to_CIEXYZ*: TXcmsFuncListPtr
-    from_CIEXYZ*: TXcmsFuncListPtr
-    inverse_flag*: int32
-
-  PXcmsFunctionSet* = ptr TXcmsFunctionSet
-  TXcmsFunctionSet*{.final.} = object  # error
-                                       #extern Status XcmsAddColorSpace (
-                                       #in declaration at line 323 
-    DDColorSpaces*: ptr PXcmsColorSpace
-    screenInitProc*: TXcmsScreenInitProc
-    screenFreeProc*: TXcmsScreenFreeProc
-
-
-proc XcmsAddFunctionSet*(para1: PXcmsFunctionSet): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsAllocColor*(para1: PDisplay, para2: TColormap, para3: PXcmsColor, 
-                     para4: TXcmsColorFormat): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsAllocNamedColor*(para1: PDisplay, para2: TColormap, para3: cstring, 
-                          para4: PXcmsColor, para5: PXcmsColor, 
-                          para6: TXcmsColorFormat): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCCCOfColormap*(para1: PDisplay, para2: TColormap): TXcmsCCC{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCIELabClipab*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                       para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCIELabClipL*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                      para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCIELabClipLab*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                        para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCIELabQueryMaxC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsCIELabQueryMaxL*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsCIELabQueryMaxLC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsCIELabQueryMinL*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsCIELabToCIEXYZ*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIELabWhiteShiftColors*(para1: TXcmsCCC, para2: PXcmsColor, 
-                                 para3: PXcmsColor, para4: TXcmsColorFormat, 
-                                 para5: PXcmsColor, para6: int32, para7: PBool): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsCIELuvClipL*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                      para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCIELuvClipLuv*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                        para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCIELuvClipuv*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                       para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCIELuvQueryMaxC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsCIELuvQueryMaxL*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsCIELuvQueryMaxLC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsCIELuvQueryMinL*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsCIELuvToCIEuvY*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIELuvWhiteShiftColors*(para1: TXcmsCCC, para2: PXcmsColor, 
-                                 para3: PXcmsColor, para4: TXcmsColorFormat, 
-                                 para5: PXcmsColor, para6: int32, para7: PBool): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsCIEXYZToCIELab*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIEXYZToCIEuvY*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIEXYZToCIExyY*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIEXYZToRGBi*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                       para4: PBool): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIEuvYToCIELuv*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIEuvYToCIEXYZ*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIEuvYToTekHVC*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIExyYToCIEXYZ*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsClientWhitePointOfCCC*(para1: TXcmsCCC): PXcmsColor{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsConvertColors*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                        para4: TXcmsColorFormat, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCreateCCC*(para1: PDisplay, para2: int32, para3: PVisual, 
-                    para4: PXcmsColor, para5: TXcmsCompressionProc, 
-                    para6: TXPointer, para7: TXcmsWhiteAdjustProc, 
-                    para8: TXPointer): TXcmsCCC{.cdecl, dynlib: libX11, importc.}
-proc XcmsDefaultCCC*(para1: PDisplay, para2: int32): TXcmsCCC{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsDisplayOfCCC*(para1: TXcmsCCC): PDisplay{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsFormatOfPrefix*(para1: cstring): TXcmsColorFormat{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsFreeCCC*(para1: TXcmsCCC){.cdecl, dynlib: libX11, importc.}
-proc XcmsLookupColor*(para1: PDisplay, para2: TColormap, para3: cstring, 
-                      para4: PXcmsColor, para5: PXcmsColor, 
-                      para6: TXcmsColorFormat): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsPrefixOfFormat*(para1: TXcmsColorFormat): cstring{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsQueryBlack*(para1: TXcmsCCC, para2: TXcmsColorFormat, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsQueryBlue*(para1: TXcmsCCC, para2: TXcmsColorFormat, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsQueryColor*(para1: PDisplay, para2: TColormap, para3: PXcmsColor, 
-                     para4: TXcmsColorFormat): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsQueryColors*(para1: PDisplay, para2: TColormap, para3: PXcmsColor, 
-                      para4: int32, para5: TXcmsColorFormat): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsQueryGreen*(para1: TXcmsCCC, para2: TXcmsColorFormat, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsQueryRed*(para1: TXcmsCCC, para2: TXcmsColorFormat, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsQueryWhite*(para1: TXcmsCCC, para2: TXcmsColorFormat, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsRGBiToCIEXYZ*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                       para4: PBool): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsRGBiToRGB*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                    para4: PBool): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsRGBToRGBi*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                    para4: PBool): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsScreenNumberOfCCC*(para1: TXcmsCCC): int32{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsScreenWhitePointOfCCC*(para1: TXcmsCCC): PXcmsColor{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsSetCCCOfColormap*(para1: PDisplay, para2: TColormap, para3: TXcmsCCC): TXcmsCCC{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsSetCompressionProc*(para1: TXcmsCCC, para2: TXcmsCompressionProc, 
-                             para3: TXPointer): TXcmsCompressionProc{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsSetWhiteAdjustProc*(para1: TXcmsCCC, para2: TXcmsWhiteAdjustProc, 
-                             para3: TXPointer): TXcmsWhiteAdjustProc{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsSetWhitePoint*(para1: TXcmsCCC, para2: PXcmsColor): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsStoreColor*(para1: PDisplay, para2: TColormap, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsStoreColors*(para1: PDisplay, para2: TColormap, para3: PXcmsColor, 
-                      para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsTekHVCClipC*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                      para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsTekHVCClipV*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                      para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsTekHVCClipVC*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                       para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsTekHVCQueryMaxC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsTekHVCQueryMaxV*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsTekHVCQueryMaxVC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsTekHVCQueryMaxVSamples*(para1: TXcmsCCC, para2: TXcmsFloat, 
-                                 para3: PXcmsColor, para4: int32): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsTekHVCQueryMinV*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsTekHVCToCIEuvY*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsTekHVCWhiteShiftColors*(para1: TXcmsCCC, para2: PXcmsColor, 
-                                 para3: PXcmsColor, para4: TXcmsColorFormat, 
-                                 para5: PXcmsColor, para6: int32, para7: PBool): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsVisualOfCCC*(para1: TXcmsCCC): PVisual{.cdecl, dynlib: libX11, importc.}
-# implementation
-
-proc XcmsUndefinedFormat(): TXcmsColorFormat = 
-  result = 0x00000000'i32
-
-proc XcmsCIEXYZFormat(): TXcmsColorFormat = 
-  result = 0x00000001'i32
-
-proc XcmsCIEuvYFormat(): TXcmsColorFormat = 
-  result = 0x00000002'i32
-
-proc XcmsCIExyYFormat(): TXcmsColorFormat = 
-  result = 0x00000003'i32
-
-proc XcmsCIELabFormat(): TXcmsColorFormat = 
-  result = 0x00000004'i32
-
-proc XcmsCIELuvFormat(): TXcmsColorFormat = 
-  result = 0x00000005'i32
-
-proc XcmsTekHVCFormat(): TXcmsColorFormat = 
-  result = 0x00000006'i32
-
-proc XcmsRGBFormat(): TXcmsColorFormat = 
-  result = 0x80000000'i32
-
-proc XcmsRGBiFormat(): TXcmsColorFormat = 
-  result = 0x80000001'i32
-
-when defined(MACROS): 
-  proc DisplayOfCCC(ccc: int32): int32 = 
-    result = ccc.dpy
-
-  proc ScreenNumberOfCCC(ccc: int32): int32 = 
-    result = ccc.screenNumber
-
-  proc VisualOfCCC(ccc: int32): int32 = 
-    result = ccc.visual
-
-  proc ClientWhitePointOfCCC(ccc: int32): int32 = 
-    result = addr(ccc.clientWhitePt)
-
-  proc ScreenWhitePointOfCCC(ccc: int32): int32 = 
-    result = addr(ccc.pPerScrnInfo.screenWhitePt)
-
-  proc FunctionSetOfCCC(ccc: int32): int32 = 
-    result = ccc.pPerScrnInfo.functionSet
diff --git a/lib/wrappers/x11/xf86dga.nim b/lib/wrappers/x11/xf86dga.nim
deleted file mode 100644
index 376f11861..000000000
--- a/lib/wrappers/x11/xf86dga.nim
+++ /dev/null
@@ -1,235 +0,0 @@
-#
-#   Copyright (c) 1999  XFree86 Inc
-#
-# $XFree86: xc/include/extensions/xf86dga.h,v 3.20 1999/10/13 04:20:48 dawes Exp $ 
-
-import 
-  x, xlib
-
-const 
-  libXxf86dga* = "libXxf86dga.so"
-
-#type 
-#  cfloat* = float32
-
-# $XFree86: xc/include/extensions/xf86dga1.h,v 1.2 1999/04/17 07:05:41 dawes Exp $ 
-#
-#
-#Copyright (c) 1995  Jon Tombs
-#Copyright (c) 1995  XFree86 Inc
-#
-#
-#************************************************************************
-#
-#   THIS IS THE OLD DGA API AND IS OBSOLETE.  PLEASE DO NOT USE IT ANYMORE
-#
-#************************************************************************
-
-type 
-  PPcchar* = ptr ptr cstring
-
-const 
-  X_XF86DGAQueryVersion* = 0
-  X_XF86DGAGetVideoLL* = 1
-  X_XF86DGADirectVideo* = 2
-  X_XF86DGAGetViewPortSize* = 3
-  X_XF86DGASetViewPort* = 4
-  X_XF86DGAGetVidPage* = 5
-  X_XF86DGASetVidPage* = 6
-  X_XF86DGAInstallColormap* = 7
-  X_XF86DGAQueryDirectVideo* = 8
-  X_XF86DGAViewPortChanged* = 9
-  XF86DGADirectPresent* = 0x00000001
-  XF86DGADirectGraphics* = 0x00000002
-  XF86DGADirectMouse* = 0x00000004
-  XF86DGADirectKeyb* = 0x00000008
-  XF86DGAHasColormap* = 0x00000100
-  XF86DGADirectColormap* = 0x00000200
-
-proc XF86DGAQueryVersion*(dpy: PDisplay, majorVersion: Pcint, 
-                          minorVersion: Pcint): TBool{.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XF86DGAQueryExtension*(dpy: PDisplay, event_base: Pcint, error_base: Pcint): TBool{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGAGetVideoLL*(dpy: PDisplay, screen: cint, base_addr: Pcint, 
-                        width: Pcint, bank_size: Pcint, ram_size: Pcint): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGAGetVideo*(dpy: PDisplay, screen: cint, base_addr: PPcchar, 
-                      width: Pcint, bank_size: Pcint, ram_size: Pcint): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGADirectVideo*(dpy: PDisplay, screen: cint, enable: cint): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGADirectVideoLL*(dpy: PDisplay, screen: cint, enable: cint): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGAGetViewPortSize*(dpy: PDisplay, screen: cint, width: Pcint, 
-                             height: Pcint): TStatus{.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XF86DGASetViewPort*(dpy: PDisplay, screen: cint, x: cint, y: cint): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGAGetVidPage*(dpy: PDisplay, screen: cint, vid_page: Pcint): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGASetVidPage*(dpy: PDisplay, screen: cint, vid_page: cint): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGAInstallColormap*(dpy: PDisplay, screen: cint, Colormap: TColormap): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGAForkApp*(screen: cint): cint{.CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGAQueryDirectVideo*(dpy: PDisplay, screen: cint, flags: Pcint): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGAViewPortChanged*(dpy: PDisplay, screen: cint, n: cint): TBool{.
-    CDecl, dynlib: libXxf86dga, importc.}
-const 
-  X_XDGAQueryVersion* = 0     # 1 through 9 are in xf86dga1.pp 
-                              # 10 and 11 are reserved to avoid conflicts with rogue DGA extensions 
-  X_XDGAQueryModes* = 12
-  X_XDGASetMode* = 13
-  X_XDGASetViewport* = 14
-  X_XDGAInstallColormap* = 15
-  X_XDGASelectInput* = 16
-  X_XDGAFillRectangle* = 17
-  X_XDGACopyArea* = 18
-  X_XDGACopyTransparentArea* = 19
-  X_XDGAGetViewportStatus* = 20
-  X_XDGASync* = 21
-  X_XDGAOpenFramebuffer* = 22
-  X_XDGACloseFramebuffer* = 23
-  X_XDGASetClientVersion* = 24
-  X_XDGAChangePixmapMode* = 25
-  X_XDGACreateColormap* = 26
-  XDGAConcurrentAccess* = 0x00000001
-  XDGASolidFillRect* = 0x00000002
-  XDGABlitRect* = 0x00000004
-  XDGABlitTransRect* = 0x00000008
-  XDGAPixmap* = 0x00000010
-  XDGAInterlaced* = 0x00010000
-  XDGADoublescan* = 0x00020000
-  XDGAFlipImmediate* = 0x00000001
-  XDGAFlipRetrace* = 0x00000002
-  XDGANeedRoot* = 0x00000001
-  XF86DGANumberEvents* = 7
-  XDGAPixmapModeLarge* = 0
-  XDGAPixmapModeSmall* = 1
-  XF86DGAClientNotLocal* = 0
-  XF86DGANoDirectVideoMode* = 1
-  XF86DGAScreenNotActive* = 2
-  XF86DGADirectNotActivated* = 3
-  XF86DGAOperationNotSupported* = 4
-  XF86DGANumberErrors* = (XF86DGAOperationNotSupported + 1)
-
-type 
-  PXDGAMode* = ptr TXDGAMode
-  TXDGAMode*{.final.} = object 
-    num*: cint                # A unique identifier for the mode (num > 0) 
-    name*: cstring            # name of mode given in the XF86Config 
-    verticalRefresh*: cfloat
-    flags*: cint              # DGA_CONCURRENT_ACCESS, etc... 
-    imageWidth*: cint         # linear accessible portion (pixels) 
-    imageHeight*: cint
-    pixmapWidth*: cint        # Xlib accessible portion (pixels) 
-    pixmapHeight*: cint       # both fields ignored if no concurrent access 
-    bytesPerScanline*: cint
-    byteOrder*: cint          # MSBFirst, LSBFirst 
-    depth*: cint
-    bitsPerPixel*: cint
-    redMask*: culong
-    greenMask*: culong
-    blueMask*: culong
-    visualClass*: cshort
-    viewportWidth*: cint
-    viewportHeight*: cint
-    xViewportStep*: cint      # viewport position granularity 
-    yViewportStep*: cint
-    maxViewportX*: cint       # max viewport origin 
-    maxViewportY*: cint
-    viewportFlags*: cint      # types of page flipping possible 
-    reserved1*: cint
-    reserved2*: cint
-
-  PXDGADevice* = ptr TXDGADevice
-  TXDGADevice*{.final.} = object 
-    mode*: TXDGAMode
-    data*: Pcuchar
-    pixmap*: TPixmap
-
-  PXDGAButtonEvent* = ptr TXDGAButtonEvent
-  TXDGAButtonEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    display*: PDisplay
-    screen*: cint
-    time*: TTime
-    state*: cuint
-    button*: cuint
-
-  PXDGAKeyEvent* = ptr TXDGAKeyEvent
-  TXDGAKeyEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    display*: PDisplay
-    screen*: cint
-    time*: TTime
-    state*: cuint
-    keycode*: cuint
-
-  PXDGAMotionEvent* = ptr TXDGAMotionEvent
-  TXDGAMotionEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    display*: PDisplay
-    screen*: cint
-    time*: TTime
-    state*: cuint
-    dx*: cint
-    dy*: cint
-
-  PXDGAEvent* = ptr TXDGAEvent
-  TXDGAEvent*{.final.} = object 
-    pad*: array[0..23, clong] # sorry you have to cast if you want access
-                              #Case LongInt Of
-                              #      0 : (_type : cint);
-                              #      1 : (xbutton : TXDGAButtonEvent);
-                              #      2 : (xkey : TXDGAKeyEvent);
-                              #      3 : (xmotion : TXDGAMotionEvent);
-                              #      4 : (pad : Array[0..23] Of clong);
-  
-
-proc XDGAQueryExtension*(dpy: PDisplay, eventBase: Pcint, erroBase: Pcint): TBool{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XDGAQueryVersion*(dpy: PDisplay, majorVersion: Pcint, minorVersion: Pcint): TBool{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XDGAQueryModes*(dpy: PDisplay, screen: cint, num: Pcint): PXDGAMode{.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGASetMode*(dpy: PDisplay, screen: cint, mode: cint): PXDGADevice{.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGAOpenFramebuffer*(dpy: PDisplay, screen: cint): TBool{.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGACloseFramebuffer*(dpy: PDisplay, screen: cint){.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGASetViewport*(dpy: PDisplay, screen: cint, x: cint, y: cint, flags: cint){.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XDGAInstallColormap*(dpy: PDisplay, screen: cint, cmap: TColormap){.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGACreateColormap*(dpy: PDisplay, screen: cint, device: PXDGADevice, 
-                         alloc: cint): TColormap{.CDecl, dynlib: libXxf86dga, 
-    importc.}
-proc XDGASelectInput*(dpy: PDisplay, screen: cint, event_mask: clong){.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGAFillRectangle*(dpy: PDisplay, screen: cint, x: cint, y: cint, 
-                        width: cuint, height: cuint, color: culong){.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGACopyArea*(dpy: PDisplay, screen: cint, srcx: cint, srcy: cint, 
-                   width: cuint, height: cuint, dstx: cint, dsty: cint){.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGACopyTransparentArea*(dpy: PDisplay, screen: cint, srcx: cint, 
-                              srcy: cint, width: cuint, height: cuint, 
-                              dstx: cint, dsty: cint, key: culong){.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGAGetViewportStatus*(dpy: PDisplay, screen: cint): cint{.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGASync*(dpy: PDisplay, screen: cint){.CDecl, dynlib: libXxf86dga, importc.}
-proc XDGASetClientVersion*(dpy: PDisplay): TBool{.CDecl, dynlib: libXxf86dga, 
-    importc.}
-proc XDGAChangePixmapMode*(dpy: PDisplay, screen: cint, x: Pcint, y: Pcint, 
-                           mode: cint){.CDecl, dynlib: libXxf86dga, importc.}
-proc XDGAKeyEventToXKeyEvent*(dk: PXDGAKeyEvent, xk: PXKeyEvent){.CDecl, 
-    dynlib: libXxf86dga, importc.}
-# implementation
diff --git a/lib/wrappers/x11/xf86vmode.nim b/lib/wrappers/x11/xf86vmode.nim
deleted file mode 100644
index 18a922cab..000000000
--- a/lib/wrappers/x11/xf86vmode.nim
+++ /dev/null
@@ -1,229 +0,0 @@
-# $XFree86: xc/include/extensions/xf86vmode.h,v 3.30 2001/05/07 20:09:50 mvojkovi Exp $ 
-#
-#
-#Copyright 1995  Kaleb S. KEITHLEY
-#
-#Permission is hereby granted, free of charge, to any person obtaining
-#a copy of this software and associated documentation files (the
-#"Software"), to deal in the Software without restriction, including
-#without limitation the rights to use, copy, modify, merge, publish,
-#distribute, sublicense, and/or sell copies of the Software, and to
-#permit persons to whom the Software is furnished to do so, subject to
-#the following conditions:
-#
-#The above copyright notice and this permission notice shall be
-#included in all copies or substantial portions of the Software.
-#
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-#EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-#MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-#IN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES 
-#OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-#ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-#OTHER DEALINGS IN THE SOFTWARE.
-#
-#Except as contained in this notice, the name of Kaleb S. KEITHLEY 
-#shall not be used in advertising or otherwise to promote the sale, use 
-#or other dealings in this Software without prior written authorization
-#from Kaleb S. KEITHLEY
-#
-#
-# $Xorg: xf86vmode.h,v 1.3 2000/08/18 04:05:46 coskrey Exp $ 
-# THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION 
-
-import 
-  x, xlib
-
-const 
-  libXxf86vm* = "libXxf86vm.so"
-
-type 
-  PINT32* = ptr int32
-
-const 
-  X_XF86VidModeQueryVersion* = 0
-  X_XF86VidModeGetModeLine* = 1
-  X_XF86VidModeModModeLine* = 2
-  X_XF86VidModeSwitchMode* = 3
-  X_XF86VidModeGetMonitor* = 4
-  X_XF86VidModeLockModeSwitch* = 5
-  X_XF86VidModeGetAllModeLines* = 6
-  X_XF86VidModeAddModeLine* = 7
-  X_XF86VidModeDeleteModeLine* = 8
-  X_XF86VidModeValidateModeLine* = 9
-  X_XF86VidModeSwitchToMode* = 10
-  X_XF86VidModeGetViewPort* = 11
-  X_XF86VidModeSetViewPort* = 12 # new for version 2.x of this extension 
-  X_XF86VidModeGetDotClocks* = 13
-  X_XF86VidModeSetClientVersion* = 14
-  X_XF86VidModeSetGamma* = 15
-  X_XF86VidModeGetGamma* = 16
-  X_XF86VidModeGetGammaRamp* = 17
-  X_XF86VidModeSetGammaRamp* = 18
-  X_XF86VidModeGetGammaRampSize* = 19
-  X_XF86VidModeGetPermissions* = 20
-  CLKFLAG_PROGRAMABLE* = 1
-
-when defined(XF86VIDMODE_EVENTS): 
-  const 
-    XF86VidModeNotify* = 0
-    XF86VidModeNumberEvents* = (XF86VidModeNotify + 1)
-    XF86VidModeNotifyMask* = 0x00000001
-    XF86VidModeNonEvent* = 0
-    XF86VidModeModeChange* = 1
-else: 
-  const 
-    XF86VidModeNumberEvents* = 0
-const 
-  XF86VidModeBadClock* = 0
-  XF86VidModeBadHTimings* = 1
-  XF86VidModeBadVTimings* = 2
-  XF86VidModeModeUnsuitable* = 3
-  XF86VidModeExtensionDisabled* = 4
-  XF86VidModeClientNotLocal* = 5
-  XF86VidModeZoomLocked* = 6
-  XF86VidModeNumberErrors* = (XF86VidModeZoomLocked + 1)
-  XF86VM_READ_PERMISSION* = 1
-  XF86VM_WRITE_PERMISSION* = 2
-
-type 
-  PXF86VidModeModeLine* = ptr TXF86VidModeModeLine
-  TXF86VidModeModeLine*{.final.} = object 
-    hdisplay*: cushort
-    hsyncstart*: cushort
-    hsyncend*: cushort
-    htotal*: cushort
-    hskew*: cushort
-    vdisplay*: cushort
-    vsyncstart*: cushort
-    vsyncend*: cushort
-    vtotal*: cushort
-    flags*: cuint
-    privsize*: cint
-    c_private*: PINT32
-
-  PPPXF86VidModeModeInfo* = ptr PPXF86VidModeModeInfo
-  PPXF86VidModeModeInfo* = ptr PXF86VidModeModeInfo
-  PXF86VidModeModeInfo* = ptr TXF86VidModeModeInfo
-  TXF86VidModeModeInfo*{.final.} = object 
-    dotclock*: cuint
-    hdisplay*: cushort
-    hsyncstart*: cushort
-    hsyncend*: cushort
-    htotal*: cushort
-    hskew*: cushort
-    vdisplay*: cushort
-    vsyncstart*: cushort
-    vsyncend*: cushort
-    vtotal*: cushort
-    flags*: cuint
-    privsize*: cint
-    c_private*: PINT32
-
-  PXF86VidModeSyncRange* = ptr TXF86VidModeSyncRange
-  TXF86VidModeSyncRange*{.final.} = object 
-    hi*: cfloat
-    lo*: cfloat
-
-  PXF86VidModeMonitor* = ptr TXF86VidModeMonitor
-  TXF86VidModeMonitor*{.final.} = object 
-    vendor*: cstring
-    model*: cstring
-    EMPTY*: cfloat
-    nhsync*: cuchar
-    hsync*: PXF86VidModeSyncRange
-    nvsync*: cuchar
-    vsync*: PXF86VidModeSyncRange
-
-  PXF86VidModeNotifyEvent* = ptr TXF86VidModeNotifyEvent
-  TXF86VidModeNotifyEvent*{.final.} = object 
-    theType*: cint            # of event 
-    serial*: culong           # # of last request processed by server 
-    send_event*: TBool        # true if this came from a SendEvent req 
-    display*: PDisplay        # Display the event was read from 
-    root*: TWindow            # root window of event screen 
-    state*: cint              # What happened 
-    kind*: cint               # What happened 
-    forced*: TBool            # extents of new region 
-    time*: TTime              # event timestamp 
-  
-  PXF86VidModeGamma* = ptr TXF86VidModeGamma
-  TXF86VidModeGamma*{.final.} = object 
-    red*: cfloat              # Red Gamma value 
-    green*: cfloat            # Green Gamma value 
-    blue*: cfloat             # Blue Gamma value 
-  
-
-when defined(MACROS): 
-  proc XF86VidModeSelectNextMode*(disp: PDisplay, scr: cint): TBool
-  proc XF86VidModeSelectPrevMode*(disp: PDisplay, scr: cint): TBool
-proc XF86VidModeQueryVersion*(dpy: PDisplay, majorVersion: Pcint, 
-                              minorVersion: Pcint): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeQueryExtension*(dpy: PDisplay, event_base: Pcint, 
-                                error_base: Pcint): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeSetClientVersion*(dpy: PDisplay): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetModeLine*(dpy: PDisplay, screen: cint, dotclock: Pcint, 
-                             modeline: PXF86VidModeModeLine): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetAllModeLines*(dpy: PDisplay, screen: cint, modecount: Pcint, 
-                                 modelinesPtr: PPPXF86VidModeModeInfo): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeAddModeLine*(dpy: PDisplay, screen: cint, 
-                             new_modeline: PXF86VidModeModeInfo, 
-                             after_modeline: PXF86VidModeModeInfo): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeDeleteModeLine*(dpy: PDisplay, screen: cint, 
-                                modeline: PXF86VidModeModeInfo): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeModModeLine*(dpy: PDisplay, screen: cint, 
-                             modeline: PXF86VidModeModeLine): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeValidateModeLine*(dpy: PDisplay, screen: cint, 
-                                  modeline: PXF86VidModeModeInfo): TStatus{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeSwitchMode*(dpy: PDisplay, screen: cint, zoom: cint): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeSwitchToMode*(dpy: PDisplay, screen: cint, 
-                              modeline: PXF86VidModeModeInfo): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeLockModeSwitch*(dpy: PDisplay, screen: cint, lock: cint): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetMonitor*(dpy: PDisplay, screen: cint, 
-                            monitor: PXF86VidModeMonitor): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetViewPort*(dpy: PDisplay, screen: cint, x_return: Pcint, 
-                             y_return: Pcint): TBool{.CDecl, dynlib: libXxf86vm, 
-    importc.}
-proc XF86VidModeSetViewPort*(dpy: PDisplay, screen: cint, x: cint, y: cint): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetDotClocks*(dpy: PDisplay, screen: cint, flags_return: Pcint, 
-                              number_of_clocks_return: Pcint, 
-                              max_dot_clock_return: Pcint, clocks_return: PPcint): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetGamma*(dpy: PDisplay, screen: cint, Gamma: PXF86VidModeGamma): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeSetGamma*(dpy: PDisplay, screen: cint, Gamma: PXF86VidModeGamma): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeSetGammaRamp*(dpy: PDisplay, screen: cint, size: cint, 
-                              red_array: Pcushort, green_array: Pcushort, 
-                              blue_array: Pcushort): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetGammaRamp*(dpy: PDisplay, screen: cint, size: cint, 
-                              red_array: Pcushort, green_array: Pcushort, 
-                              blue_array: Pcushort): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetGammaRampSize*(dpy: PDisplay, screen: cint, size: Pcint): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetPermissions*(dpy: PDisplay, screen: cint, permissions: Pcint): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-# implementation
-
-when defined(MACROS): 
-  proc XF86VidModeSelectNextMode(disp: PDisplay, scr: cint): TBool = 
-    XF86VidModeSelectNextMode = XF86VidModeSwitchMode(disp, scr, 1)
-
-  proc XF86VidModeSelectPrevMode(disp: PDisplay, scr: cint): TBool = 
-    XF86VidModeSelectPrevMode = XF86VidModeSwitchMode(disp, scr, - 1)
diff --git a/lib/wrappers/x11/xi.nim b/lib/wrappers/x11/xi.nim
deleted file mode 100644
index d1b9f7846..000000000
--- a/lib/wrappers/x11/xi.nim
+++ /dev/null
@@ -1,307 +0,0 @@
-#
-# $Xorg: XI.h,v 1.4 2001/02/09 02:03:23 xorgcvs Exp $
-#
-#************************************************************
-#
-#Copyright 1989, 1998  The Open Group
-#
-#Permission to use, copy, modify, distribute, and sell this software and its
-#documentation for any purpose is hereby granted without fee, provided that
-#the above copyright notice appear in all copies and that both that
-#copyright notice and this permission notice appear in supporting
-#documentation.
-#
-#The above copyright notice and this permission notice shall be included in
-#all copies or substantial portions of the Software.
-#
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-#OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-#AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-#CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-#Except as contained in this notice, the name of The Open Group shall not be
-#used in advertising or otherwise to promote the sale, use or other dealings
-#in this Software without prior written authorization from The Open Group.
-#
-#Copyright 1989 by Hewlett-Packard Company, Palo Alto, California.
-#
-#                        All Rights Reserved
-#
-#Permission to use, copy, modify, and distribute this software and its
-#documentation for any purpose and without fee is hereby granted,
-#provided that the above copyright notice appear in all copies and that
-#both that copyright notice and this permission notice appear in
-#supporting documentation, and that the name of Hewlett-Packard not be
-#used in advertising or publicity pertaining to distribution of the
-#software without specific, written prior permission.
-#
-#HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-#ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-#HEWLETT-PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-#ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-#WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-#ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-#SOFTWARE.
-#
-#********************************************************/
-# $XFree86: xc/include/extensions/XI.h,v 1.5 2001/12/14 19:53:28 dawes Exp $
-#
-# Definitions used by the server, library and client
-#
-#        Pascal Convertion was made by Ido Kannner - kanerido@actcom.net.il
-#
-#Histroy:
-#        2004/10/15 - Fixed a bug of accessing second based records by removing "paced record" and chnaged it to
-#                     "reocrd" only.
-#        2004/10/07 - Removed the "uses X;" line. The unit does not need it.
-#        2004/10/03 - Conversion from C header to Pascal unit.
-#
-
-const 
-  sz_xGetExtensionVersionReq* = 8
-  sz_xGetExtensionVersionReply* = 32
-  sz_xListInputDevicesReq* = 4
-  sz_xListInputDevicesReply* = 32
-  sz_xOpenDeviceReq* = 8
-  sz_xOpenDeviceReply* = 32
-  sz_xCloseDeviceReq* = 8
-  sz_xSetDeviceModeReq* = 8
-  sz_xSetDeviceModeReply* = 32
-  sz_xSelectExtensionEventReq* = 12
-  sz_xGetSelectedExtensionEventsReq* = 8
-  sz_xGetSelectedExtensionEventsReply* = 32
-  sz_xChangeDeviceDontPropagateListReq* = 12
-  sz_xGetDeviceDontPropagateListReq* = 8
-  sz_xGetDeviceDontPropagateListReply* = 32
-  sz_xGetDeviceMotionEventsReq* = 16
-  sz_xGetDeviceMotionEventsReply* = 32
-  sz_xChangeKeyboardDeviceReq* = 8
-  sz_xChangeKeyboardDeviceReply* = 32
-  sz_xChangePointerDeviceReq* = 8
-  sz_xChangePointerDeviceReply* = 32
-  sz_xGrabDeviceReq* = 20
-  sz_xGrabDeviceReply* = 32
-  sz_xUngrabDeviceReq* = 12
-  sz_xGrabDeviceKeyReq* = 20
-  sz_xGrabDeviceKeyReply* = 32
-  sz_xUngrabDeviceKeyReq* = 16
-  sz_xGrabDeviceButtonReq* = 20
-  sz_xGrabDeviceButtonReply* = 32
-  sz_xUngrabDeviceButtonReq* = 16
-  sz_xAllowDeviceEventsReq* = 12
-  sz_xGetDeviceFocusReq* = 8
-  sz_xGetDeviceFocusReply* = 32
-  sz_xSetDeviceFocusReq* = 16
-  sz_xGetFeedbackControlReq* = 8
-  sz_xGetFeedbackControlReply* = 32
-  sz_xChangeFeedbackControlReq* = 12
-  sz_xGetDeviceKeyMappingReq* = 8
-  sz_xGetDeviceKeyMappingReply* = 32
-  sz_xChangeDeviceKeyMappingReq* = 8
-  sz_xGetDeviceModifierMappingReq* = 8
-  sz_xSetDeviceModifierMappingReq* = 8
-  sz_xSetDeviceModifierMappingReply* = 32
-  sz_xGetDeviceButtonMappingReq* = 8
-  sz_xGetDeviceButtonMappingReply* = 32
-  sz_xSetDeviceButtonMappingReq* = 8
-  sz_xSetDeviceButtonMappingReply* = 32
-  sz_xQueryDeviceStateReq* = 8
-  sz_xQueryDeviceStateReply* = 32
-  sz_xSendExtensionEventReq* = 16
-  sz_xDeviceBellReq* = 8
-  sz_xSetDeviceValuatorsReq* = 8
-  sz_xSetDeviceValuatorsReply* = 32
-  sz_xGetDeviceControlReq* = 8
-  sz_xGetDeviceControlReply* = 32
-  sz_xChangeDeviceControlReq* = 8
-  sz_xChangeDeviceControlReply* = 32
-
-const 
-  INAME* = "XInputExtension"
-
-const 
-  XI_KEYBOARD* = "KEYBOARD"
-  XI_MOUSE* = "MOUSE"
-  XI_TABLET* = "TABLET"
-  XI_TOUCHSCREEN* = "TOUCHSCREEN"
-  XI_TOUCHPAD* = "TOUCHPAD"
-  XI_BARCODE* = "BARCODE"
-  XI_BUTTONBOX* = "BUTTONBOX"
-  XI_KNOB_BOX* = "KNOB_BOX"
-  XI_ONE_KNOB* = "ONE_KNOB"
-  XI_NINE_KNOB* = "NINE_KNOB"
-  XI_TRACKBALL* = "TRACKBALL"
-  XI_QUADRATURE* = "QUADRATURE"
-  XI_ID_MODULE* = "ID_MODULE"
-  XI_SPACEBALL* = "SPACEBALL"
-  XI_DATAGLOVE* = "DATAGLOVE"
-  XI_EYETRACKER* = "EYETRACKER"
-  XI_CURSORKEYS* = "CURSORKEYS"
-  XI_FOOTMOUSE* = "FOOTMOUSE"
-
-const 
-  Dont_Check* = 0
-  XInput_Initial_Release* = 1
-  XInput_Add_XDeviceBell* = 2
-  XInput_Add_XSetDeviceValuators* = 3
-  XInput_Add_XChangeDeviceControl* = 4
-
-const 
-  XI_Absent* = 0
-  XI_Present* = 1
-
-const 
-  XI_Initial_Release_Major* = 1
-  XI_Initial_Release_Minor* = 0
-
-const 
-  XI_Add_XDeviceBell_Major* = 1
-  XI_Add_XDeviceBell_Minor* = 1
-
-const 
-  XI_Add_XSetDeviceValuators_Major* = 1
-  XI_Add_XSetDeviceValuators_Minor* = 2
-
-const 
-  XI_Add_XChangeDeviceControl_Major* = 1
-  XI_Add_XChangeDeviceControl_Minor* = 3
-
-const 
-  DEVICE_RESOLUTION* = 1
-
-const 
-  NoSuchExtension* = 1
-
-const 
-  COUNT* = 0
-  CREATE* = 1
-
-const 
-  NewPointer* = 0
-  NewKeyboard* = 1
-
-const 
-  XPOINTER* = 0
-  XKEYBOARD* = 1
-
-const 
-  UseXKeyboard* = 0x000000FF
-
-const 
-  IsXPointer* = 0
-  IsXKeyboard* = 1
-  IsXExtensionDevice* = 2
-
-const 
-  AsyncThisDevice* = 0
-  SyncThisDevice* = 1
-  ReplayThisDevice* = 2
-  AsyncOtherDevices* = 3
-  AsyncAll* = 4
-  SyncAll* = 5
-
-const 
-  FollowKeyboard* = 3
-  RevertToFollowKeyboard* = 3
-
-const 
-  DvAccelNum* = int(1) shl 0
-  DvAccelDenom* = int(1) shl 1
-  DvThreshold* = int(1) shl 2
-
-const 
-  DvKeyClickPercent* = int(1) shl 0
-  DvPercent* = int(1) shl 1
-  DvPitch* = int(1) shl 2
-  DvDuration* = int(1) shl 3
-  DvLed* = int(1) shl 4
-  DvLedMode* = int(1) shl 5
-  DvKey* = int(1) shl 6
-  DvAutoRepeatMode* = 1 shl 7
-
-const 
-  DvString* = int(1) shl 0
-
-const 
-  DvInteger* = int(1) shl 0
-
-const 
-  DeviceMode* = int(1) shl 0
-  Relative* = 0
-  Absolute* = 1               # Merged from Metrolink tree for XINPUT stuff 
-  TS_Raw* = 57
-  TS_Scaled* = 58
-  SendCoreEvents* = 59
-  DontSendCoreEvents* = 60    # End of merged section 
-
-const 
-  ProximityState* = int(1) shl 1
-  InProximity* = int(0) shl 1
-  OutOfProximity* = int(1) shl 1
-
-const 
-  AddToList* = 0
-  DeleteFromList* = 1
-
-const 
-  KeyClass* = 0
-  ButtonClass* = 1
-  ValuatorClass* = 2
-  FeedbackClass* = 3
-  ProximityClass* = 4
-  FocusClass* = 5
-  OtherClass* = 6
-
-const 
-  KbdFeedbackClass* = 0
-  PtrFeedbackClass* = 1
-  StringFeedbackClass* = 2
-  IntegerFeedbackClass* = 3
-  LedFeedbackClass* = 4
-  BellFeedbackClass* = 5
-
-const 
-  devicePointerMotionHint* = 0
-  deviceButton1Motion* = 1
-  deviceButton2Motion* = 2
-  deviceButton3Motion* = 3
-  deviceButton4Motion* = 4
-  deviceButton5Motion* = 5
-  deviceButtonMotion* = 6
-  deviceButtonGrab* = 7
-  deviceOwnerGrabButton* = 8
-  noExtensionEvent* = 9
-
-const 
-  XI_BadDevice* = 0
-  XI_BadEvent* = 1
-  XI_BadMode* = 2
-  XI_DeviceBusy* = 3
-  XI_BadClass* = 4 # Make XEventClass be a CARD32 for 64 bit servers.  Don't affect client
-                   #  definition of XEventClass since that would be a library interface change.
-                   #  See the top of X.h for more _XSERVER64 magic.
-                   #
-
-when defined(XSERVER64): 
-  type 
-    XEventClass* = CARD32
-else: 
-  type 
-    XEventClass* = int32
-#******************************************************************
-# *
-# * Extension version structure.
-# *
-# 
-
-type 
-  PXExtensionVersion* = ptr TXExtensionVersion
-  TXExtensionVersion*{.final.} = object 
-    present*: int16
-    major_version*: int16
-    minor_version*: int16
-
-
-# implementation
diff --git a/lib/wrappers/x11/xinerama.nim b/lib/wrappers/x11/xinerama.nim
deleted file mode 100644
index 96f5d7da3..000000000
--- a/lib/wrappers/x11/xinerama.nim
+++ /dev/null
@@ -1,25 +0,0 @@
-# Converted from X11/Xinerama.h 
-import                        
-  xlib
-
-const
-  xineramaLib = "libXinerama.so"
-
-type 
-  PXineramaScreenInfo* = ptr TXineramaScreenInfo
-  TXineramaScreenInfo*{.final.} = object 
-    screen_number*: cint
-    x_org*: int16
-    y_org*: int16
-    width*: int16
-    height*: int16
-
-
-proc XineramaQueryExtension*(dpy: PDisplay, event_base: Pcint, error_base: Pcint): TBool{.
-    cdecl, dynlib: xineramaLib, importc.}
-proc XineramaQueryVersion*(dpy: PDisplay, major: Pcint, minor: Pcint): TStatus{.
-    cdecl, dynlib: xineramaLib, importc.}
-proc XineramaIsActive*(dpy: PDisplay): TBool{.cdecl, dynlib: xineramaLib, importc.}
-proc XineramaQueryScreens*(dpy: PDisplay, number: Pcint): PXineramaScreenInfo{.
-    cdecl, dynlib: xineramaLib, importc.}
-
diff --git a/lib/wrappers/x11/xkb.nim b/lib/wrappers/x11/xkb.nim
deleted file mode 100644
index 86296430a..000000000
--- a/lib/wrappers/x11/xkb.nim
+++ /dev/null
@@ -1,2387 +0,0 @@
-#
-# $Xorg: XKB.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $
-#************************************************************
-# $Xorg: XKBstr.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $
-#************************************************************
-# $Xorg: XKBgeom.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $
-#************************************************************
-#
-#Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-#
-#Permission to use, copy, modify, and distribute this
-#software and its documentation for any purpose and without
-#fee is hereby granted, provided that the above copyright
-#notice appear in all copies and that both that copyright
-#notice and this permission notice appear in supporting
-#documentation, and that the name of Silicon Graphics not be
-#used in advertising or publicity pertaining to distribution
-#of the software without specific prior written permission.
-#Silicon Graphics makes no representation about the suitability
-#of this software for any purpose. It is provided "as is"
-#without any express or implied warranty.
-#
-#SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-#SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-#AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-#GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-#DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-#OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
-#THE USE OR PERFORMANCE OF THIS SOFTWARE.
-#
-#********************************************************
-# $XFree86: xc/include/extensions/XKB.h,v 1.5 2002/11/20 04:49:01 dawes Exp $
-# $XFree86: xc/include/extensions/XKBgeom.h,v 3.9 2002/09/18 17:11:40 tsi Exp $
-#
-# Pascal Convertion was made by Ido Kannner - kanerido@actcom.net.il
-#
-#Thanks:
-#         I want to thanks to oliebol for putting up with all of the problems that was found
-#         while translating this code. ;)
-#
-#         I want to thanks #fpc channel in freenode irc, for helping me, and to put up with my
-#         wierd questions ;)
-#
-#         Thanks for mmc in #xlib on freenode irc And so for the channel itself for the helping me to
-#         understanding some of the problems I had converting this headers and pointing me to resources
-#         that helped translating this headers.
-#
-# Ido
-#
-#History:
-#        2004/10/15           - Fixed a bug of accessing second based records by removing "paced record" and
-#                               chnaged it to "reocrd" only.
-#        2004/10/04 - 06      - Convertion from the c header of XKBgeom.h.
-#        2004/10/03           - Removed the XKBstr_UNIT compiler decleration. Afther the joined files,
-#                                                                                     There is no need for it anymore.
-#                                                                             - There is a need to define (for now) XKBgeom (compiler define) in order
-#                                                                               to use the code of it. At this moment, I did not yet converted it to Pascal.
-#
-#        2004/09/17 - 10/04   - Convertion from the c header of XKBstr.
-#
-#        2004/10/03           - Joined xkbstr.pas into xkb.pas because of the circular calls problems.
-#                             - Added the history of xkbstr.pas above this addition.
-#
-#        2004/09/17           - Fixed a wrong convertion number of XkbPerKeyBitArraySize, insted
-#                               of float, it's now converted into integer (as it should have been).
-#
-#        2004/09/15 - 16      - Convertion from the c header of XKB.h.
-#
-
-import 
-  X, Xlib
-
-include "x11pragma.nim"
-
-proc XkbCharToInt*(v: int8): int16
-proc XkbIntTo2Chars*(i: int16, h, L: var int8)
-proc Xkb2CharsToInt*(h, L: int8): int16
-  #
-  #          Common data structures and access macros
-  #        
-type
-  PWord* = ptr array[0..64_000, int16]
-  PByte* = ptr byte
-  PXkbStatePtr* = ptr TXkbStateRec
-  TXkbStateRec*{.final.} = object 
-    group*: int8
-    locked_group*: int8
-    base_group*: int16
-    latched_group*: int16
-    mods*: int8
-    base_mods*: int8
-    latched_mods*: int8
-    locked_mods*: int8
-    compat_state*: int8
-    grab_mods*: int8
-    compat_grab_mods*: int8
-    lookup_mods*: int8
-    compat_lookup_mods*: int8
-    ptr_buttons*: int16
-
-
-proc XkbModLocks*(s: PXkbStatePtr): int8
-proc XkbStateMods*(s: PXkbStatePtr): int16
-proc XkbGroupLock*(s: PXkbStatePtr): int8
-proc XkbStateGroup*(s: PXkbStatePtr): int16
-proc XkbStateFieldFromRec*(s: PXkbStatePtr): int
-proc XkbGrabStateFromRec*(s: PXkbStatePtr): int
-type 
-  PXkbModsPtr* = ptr TXkbModsRec
-  TXkbModsRec*{.final.} = object 
-    mask*: int8               # effective mods
-    real_mods*: int8
-    vmods*: int16
-
-
-type 
-  PXkbKTMapEntryPtr* = ptr TXkbKTMapEntryRec
-  TXkbKTMapEntryRec*{.final.} = object 
-    active*: bool
-    level*: int8
-    mods*: TXkbModsRec
-
-
-type 
-  PXkbKeyTypePtr* = ptr TXkbKeyTypeRec
-  TXkbKeyTypeRec*{.final.} = object 
-    mods*: TXkbModsRec
-    num_levels*: int8
-    map_count*: int8
-    map*: PXkbKTMapEntryPtr
-    preserve*: PXkbModsPtr
-    name*: TAtom
-    level_names*: TAtom
-
-
-proc XkbNumGroups*(g: int16): int16
-proc XkbOutOfRangeGroupInfo*(g: int16): int16
-proc XkbOutOfRangeGroupAction*(g: int16): int16
-proc XkbOutOfRangeGroupNumber*(g: int16): int16
-proc XkbSetGroupInfo*(g, w, n: int16): int16
-proc XkbSetNumGroups*(g, n: int16): int16
-  #
-  #          Structures and access macros used primarily by the server
-  #        
-type 
-  PXkbBehavior* = ptr TXkbBehavior
-  TXkbBehavior*{.final.} = object 
-    theType*: int8
-    data*: int8
-
-
-type 
-  PXkbModAction* = ptr TXkbModAction
-  TXkbModAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    mask*: int8
-    real_mods*: int8
-    vmods1*: int8
-    vmods2*: int8
-
-
-proc XkbModActionVMods*(a: PXkbModAction): int16
-proc XkbSetModActionVMods*(a: PXkbModAction, v: int8)
-type 
-  PXkbGroupAction* = ptr TXkbGroupAction
-  TXkbGroupAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    group_XXX*: int8
-
-
-proc XkbSAGroup*(a: PXkbGroupAction): int8
-proc XkbSASetGroupProc*(a: PXkbGroupAction, g: int8)
-type 
-  PXkbISOAction* = ptr TXkbISOAction
-  TXkbISOAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    mask*: int8
-    real_mods*: int8
-    group_XXX*: int8
-    affect*: int8
-    vmods1*: int8
-    vmods2*: int8
-
-
-type 
-  PXkbPtrAction* = ptr TXkbPtrAction
-  TXkbPtrAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    high_XXX*: int8
-    low_XXX*: int8
-    high_YYY*: int8
-    low_YYY*: int8
-
-
-proc XkbPtrActionX*(a: PXkbPtrAction): int16
-proc XkbPtrActionY*(a: PXkbPtrAction): int16
-proc XkbSetPtrActionX*(a: PXkbPtrAction, x: int8)
-proc XkbSetPtrActionY*(a: PXkbPtrAction, y: int8)
-type 
-  PXkbPtrBtnAction* = ptr TXkbPtrBtnAction
-  TXkbPtrBtnAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    count*: int8
-    button*: int8
-
-
-type 
-  PXkbPtrDfltAction* = ptr TXkbPtrDfltAction
-  TXkbPtrDfltAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    affect*: int8
-    valueXXX*: int8
-
-
-proc XkbSAPtrDfltValue*(a: PXkbPtrDfltAction): int8
-proc XkbSASetPtrDfltValue*(a: PXkbPtrDfltAction, c: pointer)
-type 
-  PXkbSwitchScreenAction* = ptr TXkbSwitchScreenAction
-  TXkbSwitchScreenAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    screenXXX*: int8
-
-
-proc XkbSAScreen*(a: PXkbSwitchScreenAction): int8
-proc XkbSASetScreen*(a: PXkbSwitchScreenAction, s: pointer)
-type 
-  PXkbCtrlsAction* = ptr TXkbCtrlsAction
-  TXkbCtrlsAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    ctrls3*: int8
-    ctrls2*: int8
-    ctrls1*: int8
-    ctrls0*: int8
-
-
-proc XkbActionSetCtrls*(a: PXkbCtrlsAction, c: int8)
-proc XkbActionCtrls*(a: PXkbCtrlsAction): int16
-type 
-  PXkbMessageAction* = ptr TXkbMessageAction
-  TXkbMessageAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    message*: array[0..5, char]
-
-
-type 
-  PXkbRedirectKeyAction* = ptr TXkbRedirectKeyAction
-  TXkbRedirectKeyAction*{.final.} = object 
-    theType*: int8
-    new_key*: int8
-    mods_mask*: int8
-    mods*: int8
-    vmods_mask0*: int8
-    vmods_mask1*: int8
-    vmods0*: int8
-    vmods1*: int8
-
-
-proc XkbSARedirectVMods*(a: PXkbRedirectKeyAction): int16
-proc XkbSARedirectSetVMods*(a: PXkbRedirectKeyAction, m: int8)
-proc XkbSARedirectVModsMask*(a: PXkbRedirectKeyAction): int16
-proc XkbSARedirectSetVModsMask*(a: PXkbRedirectKeyAction, m: int8)
-type 
-  PXkbDeviceBtnAction* = ptr TXkbDeviceBtnAction
-  TXkbDeviceBtnAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    count*: int8
-    button*: int8
-    device*: int8
-
-
-type 
-  PXkbDeviceValuatorAction* = ptr TXkbDeviceValuatorAction
-  TXkbDeviceValuatorAction*{.final.} = object  #
-                                               #      Macros to classify key actions
-                                               #                
-    theType*: int8
-    device*: int8
-    v1_what*: int8
-    v1_ndx*: int8
-    v1_value*: int8
-    v2_what*: int8
-    v2_ndx*: int8
-    v2_value*: int8
-
-
-const 
-  XkbAnyActionDataSize* = 7
-
-type 
-  PXkbAnyAction* = ptr TXkbAnyAction
-  TXkbAnyAction*{.final.} = object 
-    theType*: int8
-    data*: array[0..XkbAnyActionDataSize - 1, int8]
-
-
-proc XkbIsModAction*(a: PXkbAnyAction): bool
-proc XkbIsGroupAction*(a: PXkbAnyAction): bool
-proc XkbIsPtrAction*(a: PXkbAnyAction): bool
-type 
-  PXkbAction* = ptr TXkbAction
-  TXkbAction*{.final.} = object  #
-                                 #      XKB request codes, used in:
-                                 #      -  xkbReqType field of all requests
-                                 #      -  requestMinor field of some events
-                                 #                
-    any*: TXkbAnyAction
-    mods*: TXkbModAction
-    group*: TXkbGroupAction
-    iso*: TXkbISOAction
-    thePtr*: TXkbPtrAction
-    btn*: TXkbPtrBtnAction
-    dflt*: TXkbPtrDfltAction
-    screen*: TXkbSwitchScreenAction
-    ctrls*: TXkbCtrlsAction
-    msg*: TXkbMessageAction
-    redirect*: TXkbRedirectKeyAction
-    devbtn*: TXkbDeviceBtnAction
-    devval*: TXkbDeviceValuatorAction
-    theType*: int8
-
-
-const 
-  X_kbUseExtension* = 0
-  X_kbSelectEvents* = 1
-  X_kbBell* = 3
-  X_kbGetState* = 4
-  X_kbLatchLockState* = 5
-  X_kbGetControls* = 6
-  X_kbSetControls* = 7
-  X_kbGetMap* = 8
-  X_kbSetMap* = 9
-  X_kbGetCompatMap* = 10
-  X_kbSetCompatMap* = 11
-  X_kbGetIndicatorState* = 12
-  X_kbGetIndicatorMap* = 13
-  X_kbSetIndicatorMap* = 14
-  X_kbGetNamedIndicator* = 15
-  X_kbSetNamedIndicator* = 16
-  X_kbGetNames* = 17
-  X_kbSetNames* = 18
-  X_kbGetGeometry* = 19
-  X_kbSetGeometry* = 20
-  X_kbPerClientFlags* = 21
-  X_kbListComponents* = 22
-  X_kbGetKbdByName* = 23
-  X_kbGetDeviceInfo* = 24
-  X_kbSetDeviceInfo* = 25
-  X_kbSetDebuggingFlags* = 101 #
-                               #      In the X sense, XKB reports only one event.
-                               #      The type field of all XKB events is XkbEventCode
-                               #                
-
-const 
-  XkbEventCode* = 0
-  XkbNumberEvents* = XkbEventCode + 1 #
-                                      #      XKB has a minor event code so it can use one X event code for
-                                      #      multiple purposes.
-                                      #       - reported in the xkbType field of all XKB events.
-                                      #       - XkbSelectEventDetails: Indicates the event for which event details
-                                      #         are being changed
-                                      #                
-
-const 
-  XkbNewKeyboardNotify* = 0
-  XkbMapNotify* = 1
-  XkbStateNotify* = 2
-  XkbControlsNotify* = 3
-  XkbIndicatorStateNotify* = 4
-  XkbIndicatorMapNotify* = 5
-  XkbNamesNotify* = 6
-  XkbCompatMapNotify* = 7
-  XkbBellNotify* = 8
-  XkbActionMessage* = 9
-  XkbAccessXNotify* = 10
-  XkbExtensionDeviceNotify* = 11 #
-                                 #      Event Mask:
-                                 #       - XkbSelectEvents:  Specifies event interest.
-                                 #    
-
-const 
-  XkbNewKeyboardNotifyMask* = int(1) shl 0
-  XkbMapNotifyMask* = int(1) shl 1
-  XkbStateNotifyMask* = int(1) shl 2
-  XkbControlsNotifyMask* = int(1) shl 3
-  XkbIndicatorStateNotifyMask* = int(1) shl 4
-  XkbIndicatorMapNotifyMask* = int(1) shl 5
-  XkbNamesNotifyMask* = int(1) shl 6
-  XkbCompatMapNotifyMask* = int(1) shl 7
-  XkbBellNotifyMask* = int(1) shl 8
-  XkbActionMessageMask* = int(1) shl 9
-  XkbAccessXNotifyMask* = int(1) shl 10
-  XkbExtensionDeviceNotifyMask* = int(1) shl 11
-  XkbAllEventsMask* = 0x00000FFF #
-                                 #      NewKeyboardNotify event details:
-                                 #    
-
-const 
-  XkbNKN_KeycodesMask* = int(1) shl 0
-  XkbNKN_GeometryMask* = int(1) shl 1
-  XkbNKN_DeviceIDMask* = int(1) shl 2
-  XkbAllNewKeyboardEventsMask* = 0x00000007 #
-                                            #      AccessXNotify event types:
-                                            #       - The 'what' field of AccessXNotify events reports the
-                                            #         reason that the event was generated.
-                                            #                
-
-const 
-  XkbAXN_SKPress* = 0
-  XkbAXN_SKAccept* = 1
-  XkbAXN_SKReject* = 2
-  XkbAXN_SKRelease* = 3
-  XkbAXN_BKAccept* = 4
-  XkbAXN_BKReject* = 5
-  XkbAXN_AXKWarning* = 6 #
-                         #      AccessXNotify details:
-                         #      - Used as an event detail mask to limit the conditions under which
-                         #        AccessXNotify events are reported
-                         #                
-
-const 
-  XkbAXN_SKPressMask* = int(1) shl 0
-  XkbAXN_SKAcceptMask* = int(1) shl 1
-  XkbAXN_SKRejectMask* = int(1) shl 2
-  XkbAXN_SKReleaseMask* = int(1) shl 3
-  XkbAXN_BKAcceptMask* = int(1) shl 4
-  XkbAXN_BKRejectMask* = int(1) shl 5
-  XkbAXN_AXKWarningMask* = int(1) shl 6
-  XkbAllAccessXEventsMask* = 0x0000000F #
-                                        #      State detail mask:
-                                        #       - The 'changed' field of StateNotify events reports which of
-                                        #         the keyboard state components have changed.
-                                        #       - Used as an event detail mask to limit the conditions under
-                                        #         which StateNotify events are reported.
-                                        #                
-
-const 
-  XkbModifierStateMask* = int(1) shl 0
-  XkbModifierBaseMask* = int(1) shl 1
-  XkbModifierLatchMask* = int(1) shl 2
-  XkbModifierLockMask* = int(1) shl 3
-  XkbGroupStateMask* = int(1) shl 4
-  XkbGroupBaseMask* = int(1) shl 5
-  XkbGroupLatchMask* = int(1) shl 6
-  XkbGroupLockMask* = int(1) shl 7
-  XkbCompatStateMask* = int(1) shl 8
-  XkbGrabModsMask* = int(1) shl 9
-  XkbCompatGrabModsMask* = int(1) shl 10
-  XkbLookupModsMask* = int(1) shl 11
-  XkbCompatLookupModsMask* = int(1) shl 12
-  XkbPointerButtonMask* = int(1) shl 13
-  XkbAllStateComponentsMask* = 0x00003FFF #
-                                          #      Controls detail masks:
-                                          #       The controls specified in XkbAllControlsMask:
-                                          #       - The 'changed' field of ControlsNotify events reports which of
-                                          #         the keyboard controls have changed.
-                                          #       - The 'changeControls' field of the SetControls request specifies
-                                          #         the controls for which values are to be changed.
-                                          #       - Used as an event detail mask to limit the conditions under
-                                          #         which ControlsNotify events are reported.
-                                          #
-                                          #       The controls specified in the XkbAllBooleanCtrlsMask:
-                                          #       - The 'enabledControls' field of ControlsNotify events reports the
-                                          #         current status of the boolean controls.
-                                          #       - The 'enabledControlsChanges' field of ControlsNotify events reports
-                                          #         any boolean controls that have been turned on or off.
-                                          #       - The 'affectEnabledControls' and 'enabledControls' fields of the
-                                          #         kbSetControls request change the set of enabled controls.
-                                          #       - The 'accessXTimeoutMask' and 'accessXTimeoutValues' fields of
-                                          #         an XkbControlsRec specify the controls to be changed if the keyboard
-                                          #         times out and the values to which they should be changed.
-                                          #       - The 'autoCtrls' and 'autoCtrlsValues' fields of the PerClientFlags
-                                          #         request specifies the specify the controls to be reset when the
-                                          #         client exits and the values to which they should be reset.
-                                          #       - The 'ctrls' field of an indicator map specifies the controls
-                                          #         that drive the indicator.
-                                          #       - Specifies the boolean controls affected by the SetControls and
-                                          #         LockControls key actions.
-                                          #                
-
-const 
-  XkbRepeatKeysMask* = int(1) shl 0
-  XkbSlowKeysMask* = int(1) shl 1
-  XkbBounceKeysMask* = int(1) shl 2
-  XkbStickyKeysMask* = int(1) shl 3
-  XkbMouseKeysMask* = int(1) shl 4
-  XkbMouseKeysAccelMask* = int(1) shl 5
-  XkbAccessXKeysMask* = int(1) shl 6
-  XkbAccessXTimeoutMask* = int(1) shl 7
-  XkbAccessXFeedbackMask* = int(1) shl 8
-  XkbAudibleBellMask* = int(1) shl 9
-  XkbOverlay1Mask* = int(1) shl 10
-  XkbOverlay2Mask* = int(1) shl 11
-  XkbIgnoreGroupLockMask* = int(1) shl 12
-  XkbGroupsWrapMask* = int(1) shl 27
-  XkbInternalModsMask* = int(1) shl 28
-  XkbIgnoreLockModsMask* = int(1) shl 29
-  XkbPerKeyRepeatMask* = int(1) shl 30
-  XkbControlsEnabledMask* = int(1) shl 31
-  XkbAccessXOptionsMask* = XkbStickyKeysMask or XkbAccessXFeedbackMask
-  XkbAllBooleanCtrlsMask* = 0x00001FFF
-  XkbAllControlsMask* = 0xF8001FFF #
-                                   #      Compatibility Map Compontents:
-                                   #       - Specifies the components to be allocated in XkbAllocCompatMap.
-                                   #                
-
-const 
-  XkbSymInterpMask* = 1 shl 0
-  XkbGroupCompatMask* = 1 shl 1
-  XkbAllCompatMask* = 0x00000003 #
-                                 #      Assorted constants and limits.
-                                 #                
-
-const 
-  XkbAllIndicatorsMask* = 0xFFFFFFFF #
-                                     #      Map components masks:
-                                     #      Those in AllMapComponentsMask:
-                                     #       - Specifies the individual fields to be loaded or changed for the
-                                     #         GetMap and SetMap requests.
-                                     #      Those in ClientInfoMask:
-                                     #       - Specifies the components to be allocated by XkbAllocClientMap.
-                                     #      Those in ServerInfoMask:
-                                     #       - Specifies the components to be allocated by XkbAllocServerMap.
-                                     #                
-
-const 
-  XkbKeyTypesMask* = 1 shl 0
-  XkbKeySymsMask* = 1 shl 1
-  XkbModifierMapMask* = 1 shl 2
-  XkbExplicitComponentsMask* = 1 shl 3
-  XkbKeyActionsMask* = 1 shl 4
-  XkbKeyBehaviorsMask* = 1 shl 5
-  XkbVirtualModsMask* = 1 shl 6
-  XkbVirtualModMapMask* = 1 shl 7
-  XkbAllClientInfoMask* = XkbKeyTypesMask or XkbKeySymsMask or
-      XkbModifierMapMask
-  XkbAllServerInfoMask* = XkbExplicitComponentsMask or XkbKeyActionsMask or
-      XkbKeyBehaviorsMask or XkbVirtualModsMask or XkbVirtualModMapMask
-  XkbAllMapComponentsMask* = XkbAllClientInfoMask or XkbAllServerInfoMask #
-                                                                          #      Names component mask:
-                                                                          #       - Specifies the names to be loaded or changed for the GetNames and
-                                                                          #         SetNames requests.
-                                                                          #       - Specifies the names that have changed in a NamesNotify event.
-                                                                          #       - Specifies the names components to be allocated by XkbAllocNames.
-                                                                          #                
-
-const 
-  XkbKeycodesNameMask* = 1 shl 0
-  XkbGeometryNameMask* = 1 shl 1
-  XkbSymbolsNameMask* = 1 shl 2
-  XkbPhysSymbolsNameMask* = 1 shl 3
-  XkbTypesNameMask* = 1 shl 4
-  XkbCompatNameMask* = 1 shl 5
-  XkbKeyTypeNamesMask* = 1 shl 6
-  XkbKTLevelNamesMask* = 1 shl 7
-  XkbIndicatorNamesMask* = 1 shl 8
-  XkbKeyNamesMask* = 1 shl 9
-  XkbKeyAliasesMask* = 1 shl 10
-  XkbVirtualModNamesMask* = 1 shl 11
-  XkbGroupNamesMask* = 1 shl 12
-  XkbRGNamesMask* = 1 shl 13
-  XkbComponentNamesMask* = 0x0000003F
-  XkbAllNamesMask* = 0x00003FFF #
-                                #      Miscellaneous event details:
-                                #      - event detail masks for assorted events that don't reall
-                                #        have any details.
-                                #                
-
-const 
-  XkbAllStateEventsMask* = XkbAllStateComponentsMask
-  XkbAllMapEventsMask* = XkbAllMapComponentsMask
-  XkbAllControlEventsMask* = XkbAllControlsMask
-  XkbAllIndicatorEventsMask* = XkbAllIndicatorsMask
-  XkbAllNameEventsMask* = XkbAllNamesMask
-  XkbAllCompatMapEventsMask* = XkbAllCompatMask
-  XkbAllBellEventsMask* = int(1) shl 0
-  XkbAllActionMessagesMask* = int(1) shl 0 #
-                                           #      XKB reports one error:  BadKeyboard
-                                           #      A further reason for the error is encoded into to most significant
-                                           #      byte of the resourceID for the error:
-                                           #         XkbErr_BadDevice - the device in question was not found
-                                           #         XkbErr_BadClass  - the device was found but it doesn't belong to
-                                           #                            the appropriate class.
-                                           #         XkbErr_BadId     - the device was found and belongs to the right
-                                           #                            class, but not feedback with a matching id was
-                                           #                            found.
-                                           #      The low byte of the resourceID for this error contains the device
-                                           #      id, class specifier or feedback id that failed.
-                                           #                
-
-const 
-  XkbKeyboard* = 0
-  XkbNumberErrors* = 1
-  XkbErr_BadDevice* = 0x000000FF
-  XkbErr_BadClass* = 0x000000FE
-  XkbErr_BadId* = 0x000000FD #
-                             #      Keyboard Components Mask:
-                             #      - Specifies the components that follow a GetKeyboardByNameReply
-                             #                
-
-const 
-  XkbClientMapMask* = int(1) shl 0
-  XkbServerMapMask* = int(1) shl 1
-  XkbCompatMapMask* = int(1) shl 2
-  XkbIndicatorMapMask* = int(1) shl 3
-  XkbNamesMask* = int(1) shl 4
-  XkbGeometryMask* = int(1) shl 5
-  XkbControlsMask* = int(1) shl 6
-  XkbAllComponentsMask* = 0x0000007F #
-                                     #      AccessX Options Mask
-                                     #       - The 'accessXOptions' field of an XkbControlsRec specifies the
-                                     #         AccessX options that are currently in effect.
-                                     #       - The 'accessXTimeoutOptionsMask' and 'accessXTimeoutOptionsValues'
-                                     #         fields of an XkbControlsRec specify the Access X options to be
-                                     #         changed if the keyboard times out and the values to which they
-                                     #         should be changed.
-                                     #                
-
-const 
-  XkbAX_SKPressFBMask* = int(1) shl 0
-  XkbAX_SKAcceptFBMask* = int(1) shl 1
-  XkbAX_FeatureFBMask* = int(1) shl 2
-  XkbAX_SlowWarnFBMask* = int(1) shl 3
-  XkbAX_IndicatorFBMask* = int(1) shl 4
-  XkbAX_StickyKeysFBMask* = int(1) shl 5
-  XkbAX_TwoKeysMask* = int(1) shl 6
-  XkbAX_LatchToLockMask* = int(1) shl 7
-  XkbAX_SKReleaseFBMask* = int(1) shl 8
-  XkbAX_SKRejectFBMask* = int(1) shl 9
-  XkbAX_BKRejectFBMask* = int(1) shl 10
-  XkbAX_DumbBellFBMask* = int(1) shl 11
-  XkbAX_FBOptionsMask* = 0x00000F3F
-  XkbAX_SKOptionsMask* = 0x000000C0
-  XkbAX_AllOptionsMask* = 0x00000FFF #
-                                     #      XkbUseCoreKbd is used to specify the core keyboard without having
-                                     #                        to look up its X input extension identifier.
-                                     #      XkbUseCorePtr is used to specify the core pointer without having
-                                     #                        to look up its X input extension identifier.
-                                     #      XkbDfltXIClass is used to specify "don't care" any place that the
-                                     #                        XKB protocol is looking for an X Input Extension
-                                     #                        device class.
-                                     #      XkbDfltXIId is used to specify "don't care" any place that the
-                                     #                        XKB protocol is looking for an X Input Extension
-                                     #                        feedback identifier.
-                                     #      XkbAllXIClasses is used to get information about all device indicators,
-                                     #                        whether they're part of the indicator feedback class
-                                     #                        or the keyboard feedback class.
-                                     #      XkbAllXIIds is used to get information about all device indicator
-                                     #                        feedbacks without having to list them.
-                                     #      XkbXINone is used to indicate that no class or id has been specified.
-                                     #      XkbLegalXILedClass(c)  True if 'c' specifies a legal class with LEDs
-                                     #      XkbLegalXIBellClass(c) True if 'c' specifies a legal class with bells
-                                     #      XkbExplicitXIDevice(d) True if 'd' explicitly specifies a device
-                                     #      XkbExplicitXIClass(c)  True if 'c' explicitly specifies a device class
-                                     #      XkbExplicitXIId(c)     True if 'i' explicitly specifies a device id
-                                     #      XkbSingleXIClass(c)    True if 'c' specifies exactly one device class,
-                                     #                             including the default.
-                                     #      XkbSingleXIId(i)       True if 'i' specifies exactly one device
-                                     #                              identifier, including the default.
-                                     #                
-
-const 
-  XkbUseCoreKbd* = 0x00000100
-  XkbUseCorePtr* = 0x00000200
-  XkbDfltXIClass* = 0x00000300
-  XkbDfltXIId* = 0x00000400
-  XkbAllXIClasses* = 0x00000500
-  XkbAllXIIds* = 0x00000600
-  XkbXINone* = 0x0000FF00
-
-proc XkbLegalXILedClass*(c: int): bool
-proc XkbLegalXIBellClass*(c: int): bool
-proc XkbExplicitXIDevice*(c: int): bool
-proc XkbExplicitXIClass*(c: int): bool
-proc XkbExplicitXIId*(c: int): bool
-proc XkbSingleXIClass*(c: int): bool
-proc XkbSingleXIId*(c: int): bool
-const 
-  XkbNoModifier* = 0x000000FF
-  XkbNoShiftLevel* = 0x000000FF
-  XkbNoShape* = 0x000000FF
-  XkbNoIndicator* = 0x000000FF
-  XkbNoModifierMask* = 0
-  XkbAllModifiersMask* = 0x000000FF
-  XkbAllVirtualModsMask* = 0x0000FFFF
-  XkbNumKbdGroups* = 4
-  XkbMaxKbdGroup* = XkbNumKbdGroups - 1
-  XkbMaxMouseKeysBtn* = 4 #
-                          #      Group Index and Mask:
-                          #       - Indices into the kt_index array of a key type.
-                          #       - Mask specifies types to be changed for XkbChangeTypesOfKey
-                          #    
-
-const 
-  XkbGroup1Index* = 0
-  XkbGroup2Index* = 1
-  XkbGroup3Index* = 2
-  XkbGroup4Index* = 3
-  XkbAnyGroup* = 254
-  XkbAllGroups* = 255
-  XkbGroup1Mask* = 1 shl 0
-  XkbGroup2Mask* = 1 shl 1
-  XkbGroup3Mask* = 1 shl 2
-  XkbGroup4Mask* = 1 shl 3
-  XkbAnyGroupMask* = 1 shl 7
-  XkbAllGroupsMask* = 0x0000000F #
-                                 #      BuildCoreState: Given a keyboard group and a modifier state,
-                                 #                      construct the value to be reported an event.
-                                 #      GroupForCoreState:  Given the state reported in an event,
-                                 #                      determine the keyboard group.
-                                 #      IsLegalGroup:   Returns TRUE if 'g' is a valid group index.
-                                 #                
-
-proc XkbBuildCoreState*(m, g: int): int
-proc XkbGroupForCoreState*(s: int): int
-proc XkbIsLegalGroup*(g: int): bool
-  #
-  #      GroupsWrap values:
-  #       - The 'groupsWrap' field of an XkbControlsRec specifies the
-  #         treatment of out of range groups.
-  #       - Bits 6 and 7 of the group info field of a key symbol map
-  #         specify the interpretation of out of range groups for the
-  #         corresponding key.
-  #                
-const 
-  XkbWrapIntoRange* = 0x00000000
-  XkbClampIntoRange* = 0x00000040
-  XkbRedirectIntoRange* = 0x00000080 #
-                                     #      Action flags:  Reported in the 'flags' field of most key actions.
-                                     #      Interpretation depends on the type of the action; not all actions
-                                     #      accept all flags.
-                                     #
-                                     #      Option                    Used for Actions
-                                     #      ------                    ----------------
-                                     #      ClearLocks                SetMods, LatchMods, SetGroup, LatchGroup
-                                     #      LatchToLock               SetMods, LatchMods, SetGroup, LatchGroup
-                                     #      LockNoLock                LockMods, ISOLock, LockPtrBtn, LockDeviceBtn
-                                     #      LockNoUnlock              LockMods, ISOLock, LockPtrBtn, LockDeviceBtn
-                                     #      UseModMapMods             SetMods, LatchMods, LockMods, ISOLock
-                                     #      GroupAbsolute             SetGroup, LatchGroup, LockGroup, ISOLock
-                                     #      UseDfltButton             PtrBtn, LockPtrBtn
-                                     #      NoAcceleration            MovePtr
-                                     #      MoveAbsoluteX             MovePtr
-                                     #      MoveAbsoluteY             MovePtr
-                                     #      ISODfltIsGroup            ISOLock
-                                     #      ISONoAffectMods           ISOLock
-                                     #      ISONoAffectGroup          ISOLock
-                                     #      ISONoAffectPtr            ISOLock
-                                     #      ISONoAffectCtrls          ISOLock
-                                     #      MessageOnPress            ActionMessage
-                                     #      MessageOnRelease          ActionMessage
-                                     #      MessageGenKeyEvent        ActionMessage
-                                     #      AffectDfltBtn             SetPtrDflt
-                                     #      DfltBtnAbsolute           SetPtrDflt
-                                     #      SwitchApplication SwitchScreen
-                                     #      SwitchAbsolute            SwitchScreen
-                                     #                
-
-const 
-  XkbSA_ClearLocks* = int(1) shl 0
-  XkbSA_LatchToLock* = int(1) shl 1
-  XkbSA_LockNoLock* = int(1) shl 0
-  XkbSA_LockNoUnlock* = int(1) shl 1
-  XkbSA_UseModMapMods* = int(1) shl 2
-  XkbSA_GroupAbsolute* = int(1) shl 2
-  XkbSA_UseDfltButton* = 0
-  XkbSA_NoAcceleration* = int(1) shl 0
-  XkbSA_MoveAbsoluteX* = int(1) shl 1
-  XkbSA_MoveAbsoluteY* = int(1) shl 2
-  XkbSA_ISODfltIsGroup* = int(1) shl 7
-  XkbSA_ISONoAffectMods* = int(1) shl 6
-  XkbSA_ISONoAffectGroup* = int(1) shl 5
-  XkbSA_ISONoAffectPtr* = int(1) shl 4
-  XkbSA_ISONoAffectCtrls* = int(1) shl 3
-  XkbSA_ISOAffectMask* = 0x00000078
-  XkbSA_MessageOnPress* = int(1) shl 0
-  XkbSA_MessageOnRelease* = int(1) shl 1
-  XkbSA_MessageGenKeyEvent* = int(1) shl 2
-  XkbSA_AffectDfltBtn* = 1
-  XkbSA_DfltBtnAbsolute* = int(1) shl 2
-  XkbSA_SwitchApplication* = int(1) shl 0
-  XkbSA_SwitchAbsolute* = int(1) shl 2 #
-                                       #      The following values apply to the SA_DeviceValuator
-                                       #      action only.  Valuator operations specify the action
-                                       #      to be taken.   Values specified in the action are
-                                       #      multiplied by 2^scale before they are applied.
-                                       #                
-
-const 
-  XkbSA_IgnoreVal* = 0x00000000
-  XkbSA_SetValMin* = 0x00000010
-  XkbSA_SetValCenter* = 0x00000020
-  XkbSA_SetValMax* = 0x00000030
-  XkbSA_SetValRelative* = 0x00000040
-  XkbSA_SetValAbsolute* = 0x00000050
-  XkbSA_ValOpMask* = 0x00000070
-  XkbSA_ValScaleMask* = 0x00000007
-
-proc XkbSA_ValOp*(a: int): int
-proc XkbSA_ValScale*(a: int): int
-  #
-  #      Action types: specifies the type of a key action.  Reported in the
-  #      type field of all key actions.
-  #                
-const 
-  XkbSA_NoAction* = 0x00000000
-  XkbSA_SetMods* = 0x00000001
-  XkbSA_LatchMods* = 0x00000002
-  XkbSA_LockMods* = 0x00000003
-  XkbSA_SetGroup* = 0x00000004
-  XkbSA_LatchGroup* = 0x00000005
-  XkbSA_LockGroup* = 0x00000006
-  XkbSA_MovePtr* = 0x00000007
-  XkbSA_PtrBtn* = 0x00000008
-  XkbSA_LockPtrBtn* = 0x00000009
-  XkbSA_SetPtrDflt* = 0x0000000A
-  XkbSA_ISOLock* = 0x0000000B
-  XkbSA_Terminate* = 0x0000000C
-  XkbSA_SwitchScreen* = 0x0000000D
-  XkbSA_SetControls* = 0x0000000E
-  XkbSA_LockControls* = 0x0000000F
-  XkbSA_ActionMessage* = 0x00000010
-  XkbSA_RedirectKey* = 0x00000011
-  XkbSA_DeviceBtn* = 0x00000012
-  XkbSA_LockDeviceBtn* = 0x00000013
-  XkbSA_DeviceValuator* = 0x00000014
-  XkbSA_LastAction* = XkbSA_DeviceValuator
-  XkbSA_NumActions* = XkbSA_LastAction + 1
-
-const 
-  XkbSA_XFree86Private* = 0x00000086
-#
-#      Specifies the key actions that clear latched groups or modifiers.
-#                
-
-const  ##define        XkbSA_BreakLatch \
-       #        ((1<<XkbSA_NoAction)|(1<<XkbSA_PtrBtn)|(1<<XkbSA_LockPtrBtn)|\
-       #        (1<<XkbSA_Terminate)|(1<<XkbSA_SwitchScreen)|(1<<XkbSA_SetControls)|\
-       #        (1<<XkbSA_LockControls)|(1<<XkbSA_ActionMessage)|\
-       #        (1<<XkbSA_RedirectKey)|(1<<XkbSA_DeviceBtn)|(1<<XkbSA_LockDeviceBtn))
-       #
-  XkbSA_BreakLatch* = (1 shl XkbSA_PtrBtn) or (1 shl XkbSA_LockPtrBtn) or
-      (1 shl XkbSA_Terminate) or (1 shl XkbSA_SwitchScreen) or
-      (1 shl XkbSA_SetControls) or (1 shl XkbSA_LockControls) or
-      (1 shl XkbSA_ActionMessage) or (1 shl XkbSA_RedirectKey) or
-      (1 shl XkbSA_DeviceBtn) or (1 shl XkbSA_LockDeviceBtn) #
-                                                             #      Key Behavior Qualifier:
-                                                             #         KB_Permanent indicates that the behavior describes an unalterable
-                                                             #         characteristic of the keyboard, not an XKB software-simulation of
-                                                             #         the listed behavior.
-                                                             #      Key Behavior Types:
-                                                             #         Specifies the behavior of the underlying key.
-                                                             #                
-
-const 
-  XkbKB_Permanent* = 0x00000080
-  XkbKB_OpMask* = 0x0000007F
-  XkbKB_Default* = 0x00000000
-  XkbKB_Lock* = 0x00000001
-  XkbKB_RadioGroup* = 0x00000002
-  XkbKB_Overlay1* = 0x00000003
-  XkbKB_Overlay2* = 0x00000004
-  XkbKB_RGAllowNone* = 0x00000080 #
-                                  #      Various macros which describe the range of legal keycodes.
-                                  #                
-
-const 
-  XkbMinLegalKeyCode* = 8
-  XkbMaxLegalKeyCode* = 255
-  XkbMaxKeyCount* = XkbMaxLegalKeyCode - XkbMinLegalKeyCode + 1
-  XkbPerKeyBitArraySize* = (XkbMaxLegalKeyCode + 1) div 8
-
-proc XkbIsLegalKeycode*(k: int): bool
-type 
-  PXkbControlsPtr* = ptr TXkbControlsRec
-  TXkbControlsRec*{.final.} = object 
-    mk_dflt_btn*: int8
-    num_groups*: int8
-    groups_wrap*: int8
-    internal*: TXkbModsRec
-    ignore_lock*: TXkbModsRec
-    enabled_ctrls*: int16
-    repeat_delay*: int16
-    repeat_interval*: int16
-    slow_keys_delay*: int16
-    debounce_delay*: int16
-    mk_delay*: int16
-    mk_interval*: int16
-    mk_time_to_max*: int16
-    mk_max_speed*: int16
-    mk_curve*: int16
-    ax_options*: int16
-    ax_timeout*: int16
-    axt_opts_mask*: int16
-    axt_opts_values*: int16
-    axt_ctrls_mask*: int16
-    axt_ctrls_values*: int16
-    per_key_repeat*: array[0..XkbPerKeyBitArraySize - 1, int8]
-
-
-proc XkbAX_AnyFeedback*(c: PXkbControlsPtr): int16
-proc XkbAX_NeedOption*(c: PXkbControlsPtr, w: int16): int16
-proc XkbAX_NeedFeedback*(c: PXkbControlsPtr, w: int16): bool
-  #
-  #      Assorted constants and limits.
-  #                
-const 
-  XkbNumModifiers* = 8
-  XkbNumVirtualMods* = 16
-  XkbNumIndicators* = 32
-  XkbMaxRadioGroups* = 32
-  XkbAllRadioGroupsMask* = 0xFFFFFFFF
-  XkbMaxShiftLevel* = 63
-  XkbMaxSymsPerKey* = XkbMaxShiftLevel * XkbNumKbdGroups
-  XkbRGMaxMembers* = 12
-  XkbActionMessageLength* = 6
-  XkbKeyNameLength* = 4
-  XkbMaxRedirectCount* = 8
-  XkbGeomPtsPerMM* = 10
-  XkbGeomMaxColors* = 32
-  XkbGeomMaxLabelColors* = 3
-  XkbGeomMaxPriority* = 255
-
-type 
-  PXkbServerMapPtr* = ptr TXkbServerMapRec
-  TXkbServerMapRec*{.final.} = object 
-    num_acts*: int16
-    size_acts*: int16
-    acts*: ptr array[0..0xfff, TXkbAction]
-    behaviors*: PXkbBehavior
-    key_acts*: PWord
-    explicit*: PByte
-    vmods*: array[0..XkbNumVirtualMods - 1, int8]
-    vmodmap*: PWord
-
-
-proc XkbSMKeyActionsPtr*(m: PXkbServerMapPtr, k: int16): PXkbAction
-  #
-  #          Structures and access macros used primarily by clients
-  #        
-type 
-  PXkbSymMapPtr* = ptr TXkbSymMapRec
-  TXkbSymMapRec*{.final.} = object 
-    kt_index*: array[0..XkbNumKbdGroups - 1, int8]
-    group_info*: int8
-    width*: int8
-    offset*: int8
-
-
-type 
-  PXkbClientMapPtr* = ptr TXkbClientMapRec
-  TXkbClientMapRec*{.final.} = object 
-    size_types*: int8
-    num_types*: int8
-    types*: ptr array[0..0xffff, TXkbKeyTypeRec]
-    size_syms*: int16
-    num_syms*: int16
-    syms*: ptr array[0..0xffff, TKeySym]
-    key_sym_map*: ptr array[0..0xffff, TXkbSymMapRec]
-    modmap*: PByte
-
-
-proc XkbCMKeyGroupInfo*(m: PXkbClientMapPtr, k: int16): int8
-proc XkbCMKeyNumGroups*(m: PXkbClientMapPtr, k: int16): int8
-proc XkbCMKeyGroupWidth*(m: PXkbClientMapPtr, k: int16, g: int8): int8
-proc XkbCMKeyGroupsWidth*(m: PXkbClientMapPtr, k: int16): int8
-proc XkbCMKeyTypeIndex*(m: PXkbClientMapPtr, k: int16, g: int8): int8
-proc XkbCMKeyType*(m: PXkbClientMapPtr, k: int16, g: int8): PXkbKeyTypePtr
-proc XkbCMKeyNumSyms*(m: PXkbClientMapPtr, k: int16): int16
-proc XkbCMKeySymsOffset*(m: PXkbClientMapPtr, k: int16): int8
-  #
-  #          Compatibility structures and access macros
-  #        
-type 
-  PXkbSymInterpretPtr* = ptr TXkbSymInterpretRec
-  TXkbSymInterpretRec*{.final.} = object 
-    sym*: TKeySym
-    flags*: int8
-    match*: int8
-    mods*: int8
-    virtual_mod*: int8
-    act*: TXkbAnyAction
-
-
-type 
-  PXkbCompatMapPtr* = ptr TXkbCompatMapRec
-  TXkbCompatMapRec*{.final.} = object 
-    sym_interpret*: PXkbSymInterpretPtr
-    groups*: array[0..XkbNumKbdGroups - 1, TXkbModsRec]
-    num_si*: int16
-    size_si*: int16
-
-
-type 
-  PXkbIndicatorMapPtr* = ptr TXkbIndicatorMapRec
-  TXkbIndicatorMapRec*{.final.} = object 
-    flags*: int8
-    which_groups*: int8
-    groups*: int8
-    which_mods*: int8
-    mods*: TXkbModsRec
-    ctrls*: int16
-
-
-proc XkbIM_IsAuto*(i: PXkbIndicatorMapPtr): bool
-proc XkbIM_InUse*(i: PXkbIndicatorMapPtr): bool
-type 
-  PXkbIndicatorPtr* = ptr TXkbIndicatorRec
-  TXkbIndicatorRec*{.final.} = object 
-    phys_indicators*: int32
-    maps*: array[0..XkbNumIndicators - 1, TXkbIndicatorMapRec]
-
-
-type 
-  PXkbKeyNamePtr* = ptr TXkbKeyNameRec
-  TXkbKeyNameRec*{.final.} = object 
-    name*: array[0..XkbKeyNameLength - 1, Char]
-
-
-type 
-  PXkbKeyAliasPtr* = ptr TXkbKeyAliasRec
-  TXkbKeyAliasRec*{.final.} = object  #
-                                      #          Names for everything
-                                      #        
-    float*: array[0..XkbKeyNameLength - 1, Char]
-    alias*: array[0..XkbKeyNameLength - 1, Char]
-
-
-type 
-  PXkbNamesPtr* = ptr TXkbNamesRec
-  TXkbNamesRec*{.final.} = object  #
-                                   #      Key Type index and mask for the four standard key types.
-                                   #                
-    keycodes*: TAtom
-    geometry*: TAtom
-    symbols*: TAtom
-    types*: TAtom
-    compat*: TAtom
-    vmods*: array[0..XkbNumVirtualMods - 1, TAtom]
-    indicators*: array[0..XkbNumIndicators - 1, TAtom]
-    groups*: array[0..XkbNumKbdGroups - 1, TAtom]
-    keys*: PXkbKeyNamePtr
-    key_aliases*: PXkbKeyAliasPtr
-    radio_groups*: PAtom
-    phys_symbols*: TAtom
-    num_keys*: int8
-    num_key_aliases*: int8
-    num_rg*: int16
-
-
-const 
-  XkbOneLevelIndex* = 0
-  XkbTwoLevelIndex* = 1
-  XkbAlphabeticIndex* = 2
-  XkbKeypadIndex* = 3
-  XkbLastRequiredType* = XkbKeypadIndex
-  XkbNumRequiredTypes* = XkbLastRequiredType + 1
-  XkbMaxKeyTypes* = 255
-  XkbOneLevelMask* = 1 shl 0
-  XkbTwoLevelMask* = 1 shl 1
-  XkbAlphabeticMask* = 1 shl 2
-  XkbKeypadMask* = 1 shl 3
-  XkbAllRequiredTypes* = 0x0000000F
-
-proc XkbShiftLevel*(n: int8): int8
-proc XkbShiftLevelMask*(n: int8): int8
-  #
-  #      Extension name and version information
-  #                
-const 
-  XkbName* = "XKEYBOARD"
-  XkbMajorVersion* = 1
-  XkbMinorVersion* = 0 #
-                       #      Explicit map components:
-                       #       - Used in the 'explicit' field of an XkbServerMap.  Specifies
-                       #         the keyboard components that should _not_ be updated automatically
-                       #         in response to core protocol keyboard mapping requests.
-                       #                
-
-const 
-  XkbExplicitKeyTypesMask* = 0x0000000F
-  XkbExplicitKeyType1Mask* = 1 shl 0
-  XkbExplicitKeyType2Mask* = 1 shl 1
-  XkbExplicitKeyType3Mask* = 1 shl 2
-  XkbExplicitKeyType4Mask* = 1 shl 3
-  XkbExplicitInterpretMask* = 1 shl 4
-  XkbExplicitAutoRepeatMask* = 1 shl 5
-  XkbExplicitBehaviorMask* = 1 shl 6
-  XkbExplicitVModMapMask* = 1 shl 7
-  XkbAllExplicitMask* = 0x000000FF #
-                                   #      Symbol interpretations flags:
-                                   #       - Used in the flags field of a symbol interpretation
-                                   #                
-
-const 
-  XkbSI_AutoRepeat* = 1 shl 0
-  XkbSI_LockingKey* = 1 shl 1 #
-                              #      Symbol interpretations match specification:
-                              #       - Used in the match field of a symbol interpretation to specify
-                              #         the conditions under which an interpretation is used.
-                              #                
-
-const 
-  XkbSI_LevelOneOnly* = 0x00000080
-  XkbSI_OpMask* = 0x0000007F
-  XkbSI_NoneOf* = 0
-  XkbSI_AnyOfOrNone* = 1
-  XkbSI_AnyOf* = 2
-  XkbSI_AllOf* = 3
-  XkbSI_Exactly* = 4 #
-                     #      Indicator map flags:
-                     #       - Used in the flags field of an indicator map to indicate the
-                     #         conditions under which and indicator can be changed and the
-                     #         effects of changing the indicator.
-                     #                
-
-const 
-  XkbIM_NoExplicit* = int(1) shl 7
-  XkbIM_NoAutomatic* = int(1) shl 6
-  XkbIM_LEDDrivesKB* = int(1) shl 5 #
-                                    #      Indicator map component specifications:
-                                    #       - Used by the 'which_groups' and 'which_mods' fields of an indicator
-                                    #         map to specify which keyboard components should be used to drive
-                                    #         the indicator.
-                                    #                
-
-const 
-  XkbIM_UseBase* = int(1) shl 0
-  XkbIM_UseLatched* = int(1) shl 1
-  XkbIM_UseLocked* = int(1) shl 2
-  XkbIM_UseEffective* = int(1) shl 3
-  XkbIM_UseCompat* = int(1) shl 4
-  XkbIM_UseNone* = 0
-  XkbIM_UseAnyGroup* = XkbIM_UseBase or XkbIM_UseLatched or XkbIM_UseLocked or
-      XkbIM_UseEffective
-  XkbIM_UseAnyMods* = XkbIM_UseAnyGroup or XkbIM_UseCompat #
-                                                           #      GetByName components:
-                                                           #       - Specifies desired or necessary components to GetKbdByName request.
-                                                           #       - Reports the components that were found in a GetKbdByNameReply
-                                                           #                
-
-const 
-  XkbGBN_TypesMask* = int(1) shl 0
-  XkbGBN_CompatMapMask* = int(1) shl 1
-  XkbGBN_ClientSymbolsMask* = int(1) shl 2
-  XkbGBN_ServerSymbolsMask* = int(1) shl 3
-  XkbGBN_SymbolsMask* = XkbGBN_ClientSymbolsMask or XkbGBN_ServerSymbolsMask
-  XkbGBN_IndicatorMapMask* = int(1) shl 4
-  XkbGBN_KeyNamesMask* = int(1) shl 5
-  XkbGBN_GeometryMask* = int(1) shl 6
-  XkbGBN_OtherNamesMask* = int(1) shl 7
-  XkbGBN_AllComponentsMask* = 0x000000FF #
-                                         #       ListComponents flags
-                                         #                        
-
-const 
-  XkbLC_Hidden* = int(1) shl 0
-  XkbLC_Default* = int(1) shl 1
-  XkbLC_Partial* = int(1) shl 2
-  XkbLC_AlphanumericKeys* = int(1) shl 8
-  XkbLC_ModifierKeys* = int(1) shl 9
-  XkbLC_KeypadKeys* = int(1) shl 10
-  XkbLC_FunctionKeys* = int(1) shl 11
-  XkbLC_AlternateGroup* = int(1) shl 12 #
-                                        #      X Input Extension Interactions
-                                        #      - Specifies the possible interactions between XKB and the X input
-                                        #        extension
-                                        #      - Used to request (XkbGetDeviceInfo) or change (XKbSetDeviceInfo)
-                                        #        XKB information about an extension device.
-                                        #      - Reports the list of supported optional features in the reply to
-                                        #        XkbGetDeviceInfo or in an XkbExtensionDeviceNotify event.
-                                        #      XkbXI_UnsupportedFeature is reported in XkbExtensionDeviceNotify
-                                        #      events to indicate an attempt to use an unsupported feature.
-                                        #                
-
-const 
-  XkbXI_KeyboardsMask* = int(1) shl 0
-  XkbXI_ButtonActionsMask* = int(1) shl 1
-  XkbXI_IndicatorNamesMask* = int(1) shl 2
-  XkbXI_IndicatorMapsMask* = int(1) shl 3
-  XkbXI_IndicatorStateMask* = int(1) shl 4
-  XkbXI_UnsupportedFeatureMask* = int(1) shl 15
-  XkbXI_AllFeaturesMask* = 0x0000001F
-  XkbXI_AllDeviceFeaturesMask* = 0x0000001E
-  XkbXI_IndicatorsMask* = 0x0000001C
-  XkbAllExtensionDeviceEventsMask* = 0x0000801F #
-                                                #      Per-Client Flags:
-                                                #       - Specifies flags to be changed by the PerClientFlags request.
-                                                #                
-
-const 
-  XkbPCF_DetectableAutoRepeatMask* = int(1) shl 0
-  XkbPCF_GrabsUseXKBStateMask* = int(1) shl 1
-  XkbPCF_AutoResetControlsMask* = int(1) shl 2
-  XkbPCF_LookupStateWhenGrabbed* = int(1) shl 3
-  XkbPCF_SendEventUsesXKBState* = int(1) shl 4
-  XkbPCF_AllFlagsMask* = 0x0000001F #
-                                    #      Debugging flags and controls
-                                    #                
-
-const 
-  XkbDF_DisableLocks* = 1 shl 0
-
-type 
-  PXkbPropertyPtr* = ptr TXkbPropertyRec
-  TXkbPropertyRec*{.final.} = object 
-    name*: cstring
-    value*: cstring
-
-
-type 
-  PXkbColorPtr* = ptr TXkbColorRec
-  TXkbColorRec*{.final.} = object 
-    pixel*: int16
-    spec*: cstring
-
-
-type 
-  PXkbPointPtr* = ptr TXkbPointRec
-  TXkbPointRec*{.final.} = object 
-    x*: int16
-    y*: int16
-
-
-type 
-  PXkbBoundsPtr* = ptr TXkbBoundsRec
-  TXkbBoundsRec*{.final.} = object 
-    x1*: int16
-    y1*: int16
-    x2*: int16
-    y2*: int16
-
-
-proc XkbBoundsWidth*(b: PXkbBoundsPtr): int16
-proc XkbBoundsHeight*(b: PXkbBoundsPtr): int16
-type 
-  PXkbOutlinePtr* = ptr TXkbOutlineRec
-  TXkbOutlineRec*{.final.} = object 
-    num_points*: int16
-    sz_points*: int16
-    corner_radius*: int16
-    points*: PXkbPointPtr
-
-
-type 
-  PXkbShapePtr* = ptr TXkbShapeRec
-  TXkbShapeRec*{.final.} = object 
-    name*: TAtom
-    num_outlines*: int16
-    sz_outlines*: int16
-    outlines*: ptr array [0..0xffff, TXkbOutlineRec]
-    approx*: ptr array[0..0xffff, TXkbOutlineRec]
-    primary*: ptr array[0..0xffff, TXkbOutlineRec]
-    bounds*: TXkbBoundsRec
-
-
-proc XkbOutlineIndex*(s: PXkbShapePtr, o: PXkbOutlinePtr): int32
-type 
-  PXkbShapeDoodadPtr* = ptr TXkbShapeDoodadRec
-  TXkbShapeDoodadRec*{.final.} = object 
-    name*: TAtom
-    theType*: int8
-    priority*: int8
-    top*: int16
-    left*: int16
-    angle*: int16
-    color_ndx*: int16
-    shape_ndx*: int16
-
-
-type 
-  PXkbTextDoodadPtr* = ptr TXkbTextDoodadRec
-  TXkbTextDoodadRec*{.final.} = object 
-    name*: TAtom
-    theType*: int8
-    priority*: int8
-    top*: int16
-    left*: int16
-    angle*: int16
-    width*: int16
-    height*: int16
-    color_ndx*: int16
-    text*: cstring
-    font*: cstring
-
-
-type 
-  PXkbIndicatorDoodadPtr* = ptr TXkbIndicatorDoodadRec
-  TXkbIndicatorDoodadRec*{.final.} = object 
-    name*: TAtom
-    theType*: int8
-    priority*: int8
-    top*: int16
-    left*: int16
-    angle*: int16
-    shape_ndx*: int16
-    on_color_ndx*: int16
-    off_color_ndx*: int16
-
-
-type 
-  PXkbLogoDoodadPtr* = ptr TXkbLogoDoodadRec
-  TXkbLogoDoodadRec*{.final.} = object 
-    name*: TAtom
-    theType*: int8
-    priority*: int8
-    top*: int16
-    left*: int16
-    angle*: int16
-    color_ndx*: int16
-    shape_ndx*: int16
-    logo_name*: cstring
-
-
-type 
-  PXkbAnyDoodadPtr* = ptr TXkbAnyDoodadRec
-  TXkbAnyDoodadRec*{.final.} = object 
-    name*: TAtom
-    theType*: int8
-    priority*: int8
-    top*: int16
-    left*: int16
-    angle*: int16
-
-
-type 
-  PXkbDoodadPtr* = ptr TXkbDoodadRec
-  TXkbDoodadRec*{.final.} = object 
-    any*: TXkbAnyDoodadRec
-    shape*: TXkbShapeDoodadRec
-    text*: TXkbTextDoodadRec
-    indicator*: TXkbIndicatorDoodadRec
-    logo*: TXkbLogoDoodadRec
-
-
-const 
-  XkbUnknownDoodad* = 0
-  XkbOutlineDoodad* = 1
-  XkbSolidDoodad* = 2
-  XkbTextDoodad* = 3
-  XkbIndicatorDoodad* = 4
-  XkbLogoDoodad* = 5
-
-type 
-  PXkbKeyPtr* = ptr TXkbKeyRec
-  TXkbKeyRec*{.final.} = object 
-    name*: TXkbKeyNameRec
-    gap*: int16
-    shape_ndx*: int8
-    color_ndx*: int8
-
-
-type 
-  PXkbRowPtr* = ptr TXkbRowRec
-  TXkbRowRec*{.final.} = object 
-    top*: int16
-    left*: int16
-    num_keys*: int16
-    sz_keys*: int16
-    vertical*: int16
-    Keys*: PXkbKeyPtr
-    bounds*: TXkbBoundsRec
-
-
-type 
-  PXkbOverlayPtr* = ptr TXkbOverlayRec #forward for TXkbSectionRec use.
-                                       #Do not add more "type"
-  PXkbSectionPtr* = ptr TXkbSectionRec
-  TXkbSectionRec*{.final.} = object  #Do not add more "type"
-    name*: TAtom
-    priority*: int8
-    top*: int16
-    left*: int16
-    width*: int16
-    height*: int16
-    angle*: int16
-    num_rows*: int16
-    num_doodads*: int16
-    num_overlays*: int16
-    rows*: PXkbRowPtr
-    doodads*: PXkbDoodadPtr
-    bounds*: TXkbBoundsRec
-    overlays*: PXkbOverlayPtr
-
-  PXkbOverlayKeyPtr* = ptr TXkbOverlayKeyRec
-  TXkbOverlayKeyRec*{.final.} = object  #Do not add more "type"
-    over*: TXkbKeyNameRec
-    under*: TXkbKeyNameRec
-
-  PXkbOverlayRowPtr* = ptr TXkbOverlayRowRec
-  TXkbOverlayRowRec*{.final.} = object  #Do not add more "type"
-    row_under*: int16
-    num_keys*: int16
-    sz_keys*: int16
-    keys*: PXkbOverlayKeyPtr
-
-  TXkbOverlayRec*{.final.} = object 
-    name*: TAtom
-    section_under*: PXkbSectionPtr
-    num_rows*: int16
-    sz_rows*: int16
-    rows*: PXkbOverlayRowPtr
-    bounds*: PXkbBoundsPtr
-
-
-type 
-  PXkbGeometryRec* = ptr TXkbGeometryRec
-  PXkbGeometryPtr* = PXkbGeometryRec
-  TXkbGeometryRec*{.final.} = object 
-    name*: TAtom
-    width_mm*: int16
-    height_mm*: int16
-    label_font*: cstring
-    label_color*: PXkbColorPtr
-    base_color*: PXkbColorPtr
-    sz_properties*: int16
-    sz_colors*: int16
-    sz_shapes*: int16
-    sz_sections*: int16
-    sz_doodads*: int16
-    sz_key_aliases*: int16
-    num_properties*: int16
-    num_colors*: int16
-    num_shapes*: int16
-    num_sections*: int16
-    num_doodads*: int16
-    num_key_aliases*: int16
-    properties*: ptr array[0..0xffff, TXkbPropertyRec]
-    colors*: ptr array[0..0xffff, TXkbColorRec]
-    shapes*: ptr array[0..0xffff, TXkbShapeRec]
-    sections*: ptr array[0..0xffff, TXkbSectionRec]
-    key_aliases*: ptr array[0..0xffff, TXkbKeyAliasRec]
-
-
-const 
-  XkbGeomPropertiesMask* = 1 shl 0
-  XkbGeomColorsMask* = 1 shl 1
-  XkbGeomShapesMask* = 1 shl 2
-  XkbGeomSectionsMask* = 1 shl 3
-  XkbGeomDoodadsMask* = 1 shl 4
-  XkbGeomKeyAliasesMask* = 1 shl 5
-  XkbGeomAllMask* = 0x0000003F
-
-type 
-  PXkbGeometrySizesPtr* = ptr TXkbGeometrySizesRec
-  TXkbGeometrySizesRec*{.final.} = object  #
-                                           #          Tie it all together into one big keyboard description
-                                           #        
-    which*: int16
-    num_properties*: int16
-    num_colors*: int16
-    num_shapes*: int16
-    num_sections*: int16
-    num_doodads*: int16
-    num_key_aliases*: int16
-
-
-type 
-  PXkbDescPtr* = ptr TXkbDescRec
-  TXkbDescRec*{.final.} = object 
-    dpy*: PDisplay
-    flags*: int16
-    device_spec*: int16
-    min_key_code*: TKeyCode
-    max_key_code*: TKeyCode
-    ctrls*: PXkbControlsPtr
-    server*: PXkbServerMapPtr
-    map*: PXkbClientMapPtr
-    indicators*: PXkbIndicatorPtr
-    names*: PXkbNamesPtr
-    compat*: PXkbCompatMapPtr
-    geom*: PXkbGeometryPtr
-
-
-proc XkbKeyKeyTypeIndex*(d: PXkbDescPtr, k: int16, g: int8): int8
-proc XkbKeyKeyType*(d: PXkbDescPtr, k: int16, g: int8): PXkbKeyTypePtr
-proc XkbKeyGroupWidth*(d: PXkbDescPtr, k: int16, g: int8): int8
-proc XkbKeyGroupsWidth*(d: PXkbDescPtr, k: int16): int8
-proc XkbKeyGroupInfo*(d: PXkbDescPtr, k: int16): int8
-proc XkbKeyNumGroups*(d: PXkbDescPtr, k: int16): int8
-proc XkbKeyNumSyms*(d: PXkbDescPtr, k: int16): int16
-proc XkbKeySym*(d: PXkbDescPtr, k: int16, n: int16): TKeySym
-proc XkbKeySymEntry*(d: PXkbDescPtr, k: int16, sl: int16, g: int8): TKeySym
-proc XkbKeyAction*(d: PXkbDescPtr, k: int16, n: int16): PXkbAction
-proc XkbKeyActionEntry*(d: PXkbDescPtr, k: int16, sl: int16, g: int8): int8
-proc XkbKeyHasActions*(d: PXkbDescPtr, k: int16): bool
-proc XkbKeyNumActions*(d: PXkbDescPtr, k: int16): int16
-proc XkbKeyActionsPtr*(d: PXkbDescPtr, k: int16): PXkbAction
-proc XkbKeycodeInRange*(d: PXkbDescPtr, k: int16): bool
-proc XkbNumKeys*(d: PXkbDescPtr): int8
-  #
-  #          The following structures can be used to track changes
-  #          to a keyboard device
-  #        
-type 
-  PXkbMapChangesPtr* = ptr TXkbMapChangesRec
-  TXkbMapChangesRec*{.final.} = object 
-    changed*: int16
-    min_key_code*: TKeyCode
-    max_key_code*: TKeyCode
-    first_type*: int8
-    num_types*: int8
-    first_key_sym*: TKeyCode
-    num_key_syms*: int8
-    first_key_act*: TKeyCode
-    num_key_acts*: int8
-    first_key_behavior*: TKeyCode
-    num_key_behaviors*: int8
-    first_key_explicit*: TKeyCode
-    num_key_explicit*: int8
-    first_modmap_key*: TKeyCode
-    num_modmap_keys*: int8
-    first_vmodmap_key*: TKeyCode
-    num_vmodmap_keys*: int8
-    pad*: int8
-    vmods*: int16
-
-
-type 
-  PXkbControlsChangesPtr* = ptr TXkbControlsChangesRec
-  TXkbControlsChangesRec*{.final.} = object 
-    changed_ctrls*: int16
-    enabled_ctrls_changes*: int16
-    num_groups_changed*: bool
-
-
-type 
-  PXkbIndicatorChangesPtr* = ptr TXkbIndicatorChangesRec
-  TXkbIndicatorChangesRec*{.final.} = object 
-    state_changes*: int16
-    map_changes*: int16
-
-
-type 
-  PXkbNameChangesPtr* = ptr TXkbNameChangesRec
-  TXkbNameChangesRec*{.final.} = object 
-    changed*: int16
-    first_type*: int8
-    num_types*: int8
-    first_lvl*: int8
-    num_lvls*: int8
-    num_aliases*: int8
-    num_rg*: int8
-    first_key*: int8
-    num_keys*: int8
-    changed_vmods*: int16
-    changed_indicators*: int32
-    changed_groups*: int8
-
-
-type 
-  PXkbCompatChangesPtr* = ptr TXkbCompatChangesRec
-  TXkbCompatChangesRec*{.final.} = object 
-    changed_groups*: int8
-    first_si*: int16
-    num_si*: int16
-
-
-type 
-  PXkbChangesPtr* = ptr TXkbChangesRec
-  TXkbChangesRec*{.final.} = object  #
-                                     #          These data structures are used to construct a keymap from
-                                     #          a set of components or to list components in the server
-                                     #          database.
-                                     #        
-    device_spec*: int16
-    state_changes*: int16
-    map*: TXkbMapChangesRec
-    ctrls*: TXkbControlsChangesRec
-    indicators*: TXkbIndicatorChangesRec
-    names*: TXkbNameChangesRec
-    compat*: TXkbCompatChangesRec
-
-
-type 
-  PXkbComponentNamesPtr* = ptr TXkbComponentNamesRec
-  TXkbComponentNamesRec*{.final.} = object 
-    keymap*: ptr int16
-    keycodes*: ptr int16
-    types*: ptr int16
-    compat*: ptr int16
-    symbols*: ptr int16
-    geometry*: ptr int16
-
-
-type 
-  PXkbComponentNamePtr* = ptr TXkbComponentNameRec
-  TXkbComponentNameRec*{.final.} = object 
-    flags*: int16
-    name*: cstring
-
-
-type 
-  PXkbComponentListPtr* = ptr TXkbComponentListRec
-  TXkbComponentListRec*{.final.} = object  #
-                                           #          The following data structures describe and track changes to a
-                                           #          non-keyboard extension device
-                                           #        
-    num_keymaps*: int16
-    num_keycodes*: int16
-    num_types*: int16
-    num_compat*: int16
-    num_symbols*: int16
-    num_geometry*: int16
-    keymaps*: PXkbComponentNamePtr
-    keycodes*: PXkbComponentNamePtr
-    types*: PXkbComponentNamePtr
-    compat*: PXkbComponentNamePtr
-    symbols*: PXkbComponentNamePtr
-    geometry*: PXkbComponentNamePtr
-
-
-type 
-  PXkbDeviceLedInfoPtr* = ptr TXkbDeviceLedInfoRec
-  TXkbDeviceLedInfoRec*{.final.} = object 
-    led_class*: int16
-    led_id*: int16
-    phys_indicators*: int16
-    maps_present*: int16
-    names_present*: int16
-    state*: int16
-    names*: array[0..XkbNumIndicators - 1, TAtom]
-    maps*: array[0..XkbNumIndicators - 1, TXkbIndicatorMapRec]
-
-
-type 
-  PXkbDeviceInfoPtr* = ptr TXkbDeviceInfoRec
-  TXkbDeviceInfoRec*{.final.} = object 
-    name*: cstring
-    theType*: TAtom
-    device_spec*: int16
-    has_own_state*: bool
-    supported*: int16
-    unsupported*: int16
-    num_btns*: int16
-    btn_acts*: PXkbAction
-    sz_leds*: int16
-    num_leds*: int16
-    dflt_kbd_fb*: int16
-    dflt_led_fb*: int16
-    leds*: PXkbDeviceLedInfoPtr
-
-
-proc XkbXI_DevHasBtnActs*(d: PXkbDeviceInfoPtr): bool
-proc XkbXI_LegalDevBtn*(d: PXkbDeviceInfoPtr, b: int16): bool
-proc XkbXI_DevHasLeds*(d: PXkbDeviceInfoPtr): bool
-type 
-  PXkbDeviceLedChangesPtr* = ptr TXkbDeviceLedChangesRec
-  TXkbDeviceLedChangesRec*{.final.} = object 
-    led_class*: int16
-    led_id*: int16
-    defined*: int16           #names or maps changed
-    next*: PXkbDeviceLedChangesPtr
-
-
-type 
-  PXkbDeviceChangesPtr* = ptr TXkbDeviceChangesRec
-  TXkbDeviceChangesRec*{.final.} = object 
-    changed*: int16
-    first_btn*: int16
-    num_btns*: int16
-    leds*: TXkbDeviceLedChangesRec
-
-
-proc XkbShapeDoodadColor*(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr): PXkbColorPtr
-proc XkbShapeDoodadShape*(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr): PXkbShapePtr
-proc XkbSetShapeDoodadColor*(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr, 
-                             c: PXkbColorPtr)
-proc XkbSetShapeDoodadShape*(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr, 
-                             s: PXkbShapePtr)
-proc XkbTextDoodadColor*(g: PXkbGeometryPtr, d: PXkbTextDoodadPtr): PXkbColorPtr
-proc XkbSetTextDoodadColor*(g: PXkbGeometryPtr, d: PXkbTextDoodadPtr, 
-                            c: PXkbColorPtr)
-proc XkbIndicatorDoodadShape*(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbShapeDoodadPtr
-proc XkbIndicatorDoodadOnColor*(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbColorPtr
-proc XkbIndicatorDoodadOffColor*(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbColorPtr
-proc XkbSetIndicatorDoodadOnColor*(g: PXkbGeometryPtr, 
-                                   d: PXkbIndicatorDoodadPtr, c: PXkbColorPtr)
-proc XkbSetIndicatorDoodadOffColor*(g: PXkbGeometryPtr, 
-                                    d: PXkbIndicatorDoodadPtr, c: PXkbColorPtr)
-proc XkbSetIndicatorDoodadShape*(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr, 
-                                 s: PXkbShapeDoodadPtr)
-proc XkbLogoDoodadColor*(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr): PXkbColorPtr
-proc XkbLogoDoodadShape*(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr): PXkbShapeDoodadPtr
-proc XkbSetLogoDoodadColor*(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr, 
-                            c: PXkbColorPtr)
-proc XkbSetLogoDoodadShape*(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr, 
-                            s: PXkbShapeDoodadPtr)
-proc XkbKeyShape*(g: PXkbGeometryPtr, k: PXkbKeyPtr): PXkbShapeDoodadPtr
-proc XkbKeyColor*(g: PXkbGeometryPtr, k: PXkbKeyPtr): PXkbColorPtr
-proc XkbSetKeyShape*(g: PXkbGeometryPtr, k: PXkbKeyPtr, s: PXkbShapeDoodadPtr)
-proc XkbSetKeyColor*(g: PXkbGeometryPtr, k: PXkbKeyPtr, c: PXkbColorPtr)
-proc XkbGeomColorIndex*(g: PXkbGeometryPtr, c: PXkbColorPtr): int32
-proc XkbAddGeomProperty*(geom: PXkbGeometryPtr, name: cstring, value: cstring): PXkbPropertyPtr{.
-    libx11c, importc: "XkbAddGeomProperty".}
-proc XkbAddGeomKeyAlias*(geom: PXkbGeometryPtr, alias: cstring, float: cstring): PXkbKeyAliasPtr{.
-    libx11c, importc: "XkbAddGeomKeyAlias".}
-proc XkbAddGeomColor*(geom: PXkbGeometryPtr, spec: cstring, pixel: int16): PXkbColorPtr{.
-    libx11c, importc: "XkbAddGeomColor".}
-proc XkbAddGeomOutline*(shape: PXkbShapePtr, sz_points: int16): PXkbOutlinePtr{.
-    libx11c, importc: "XkbAddGeomOutline".}
-proc XkbAddGeomShape*(geom: PXkbGeometryPtr, name: TAtom, sz_outlines: int16): PXkbShapePtr{.
-    libx11c, importc: "XkbAddGeomShape".}
-proc XkbAddGeomKey*(row: PXkbRowPtr): PXkbKeyPtr{.libx11c, 
-    importc: "XkbAddGeomKey".}
-proc XkbAddGeomRow*(section: PXkbSectionPtr, sz_keys: int16): PXkbRowPtr{.libx11c, importc: "XkbAddGeomRow".}
-proc XkbAddGeomSection*(geom: PXkbGeometryPtr, name: TAtom, sz_rows: int16, 
-                        sz_doodads: int16, sz_overlays: int16): PXkbSectionPtr{.
-    libx11c, importc: "XkbAddGeomSection".}
-proc XkbAddGeomOverlay*(section: PXkbSectionPtr, name: TAtom, sz_rows: int16): PXkbOverlayPtr{.
-    libx11c, importc: "XkbAddGeomOverlay".}
-proc XkbAddGeomOverlayRow*(overlay: PXkbOverlayPtr, row_under: int16, 
-                           sz_keys: int16): PXkbOverlayRowPtr{.libx11c, importc: "XkbAddGeomOverlayRow".}
-proc XkbAddGeomOverlayKey*(overlay: PXkbOverlayPtr, row: PXkbOverlayRowPtr, 
-                           over: cstring, under: cstring): PXkbOverlayKeyPtr{.
-    libx11c, importc: "XkbAddGeomOverlayKey".}
-proc XkbAddGeomDoodad*(geom: PXkbGeometryPtr, section: PXkbSectionPtr, 
-                       name: TAtom): PXkbDoodadPtr{.libx11c, 
-    importc: "XkbAddGeomDoodad".}
-proc XkbFreeGeomKeyAliases*(geom: PXkbGeometryPtr, first: int16, count: int16, 
-                            freeAll: bool){.libx11c, 
-    importc: "XkbFreeGeomKeyAliases".}
-proc XkbFreeGeomColors*(geom: PXkbGeometryPtr, first: int16, count: int16, 
-                        freeAll: bool){.libx11c, 
-                                        importc: "XkbFreeGeomColors".}
-proc XkbFreeGeomDoodads*(doodads: PXkbDoodadPtr, nDoodads: int16, freeAll: bool){.
-    libx11c, importc: "XkbFreeGeomDoodads".}
-proc XkbFreeGeomProperties*(geom: PXkbGeometryPtr, first: int16, count: int16, 
-                            freeAll: bool){.libx11c, 
-    importc: "XkbFreeGeomProperties".}
-proc XkbFreeGeomOverlayKeys*(row: PXkbOverlayRowPtr, first: int16, count: int16, 
-                             freeAll: bool){.libx11c, 
-    importc: "XkbFreeGeomOverlayKeys".}
-proc XkbFreeGeomOverlayRows*(overlay: PXkbOverlayPtr, first: int16, 
-                             count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomOverlayRows".}
-proc XkbFreeGeomOverlays*(section: PXkbSectionPtr, first: int16, count: int16, 
-                          freeAll: bool){.libx11c, 
-    importc: "XkbFreeGeomOverlays".}
-proc XkbFreeGeomKeys*(row: PXkbRowPtr, first: int16, count: int16, freeAll: bool){.
-    libx11c, importc: "XkbFreeGeomKeys".}
-proc XkbFreeGeomRows*(section: PXkbSectionPtr, first: int16, count: int16, 
-                      freeAll: bool){.libx11c, 
-                                      importc: "XkbFreeGeomRows".}
-proc XkbFreeGeomSections*(geom: PXkbGeometryPtr, first: int16, count: int16, 
-                          freeAll: bool){.libx11c, 
-    importc: "XkbFreeGeomSections".}
-proc XkbFreeGeomPoints*(outline: PXkbOutlinePtr, first: int16, count: int16, 
-                        freeAll: bool){.libx11c, 
-                                        importc: "XkbFreeGeomPoints".}
-proc XkbFreeGeomOutlines*(shape: PXkbShapePtr, first: int16, count: int16, 
-                          freeAll: bool){.libx11c, 
-    importc: "XkbFreeGeomOutlines".}
-proc XkbFreeGeomShapes*(geom: PXkbGeometryPtr, first: int16, count: int16, 
-                        freeAll: bool){.libx11c, 
-                                        importc: "XkbFreeGeomShapes".}
-proc XkbFreeGeometry*(geom: PXkbGeometryPtr, which: int16, freeMap: bool){.
-    libx11c, importc: "XkbFreeGeometry".}
-proc XkbAllocGeomProps*(geom: PXkbGeometryPtr, nProps: int16): TStatus{.libx11c, importc: "XkbAllocGeomProps".}
-proc XkbAllocGeomKeyAliases*(geom: PXkbGeometryPtr, nAliases: int16): TStatus{.
-    libx11c, importc: "XkbAllocGeomKeyAliases".}
-proc XkbAllocGeomColors*(geom: PXkbGeometryPtr, nColors: int16): TStatus{.libx11c, importc: "XkbAllocGeomColors".}
-proc XkbAllocGeomShapes*(geom: PXkbGeometryPtr, nShapes: int16): TStatus{.libx11c, importc: "XkbAllocGeomShapes".}
-proc XkbAllocGeomSections*(geom: PXkbGeometryPtr, nSections: int16): TStatus{.
-    libx11c, importc: "XkbAllocGeomSections".}
-proc XkbAllocGeomOverlays*(section: PXkbSectionPtr, num_needed: int16): TStatus{.
-    libx11c, importc: "XkbAllocGeomOverlays".}
-proc XkbAllocGeomOverlayRows*(overlay: PXkbOverlayPtr, num_needed: int16): TStatus{.
-    libx11c, importc: "XkbAllocGeomOverlayRows".}
-proc XkbAllocGeomOverlayKeys*(row: PXkbOverlayRowPtr, num_needed: int16): TStatus{.
-    libx11c, importc: "XkbAllocGeomOverlayKeys".}
-proc XkbAllocGeomDoodads*(geom: PXkbGeometryPtr, nDoodads: int16): TStatus{.
-    libx11c, importc: "XkbAllocGeomDoodads".}
-proc XkbAllocGeomSectionDoodads*(section: PXkbSectionPtr, nDoodads: int16): TStatus{.
-    libx11c, importc: "XkbAllocGeomSectionDoodads".}
-proc XkbAllocGeomOutlines*(shape: PXkbShapePtr, nOL: int16): TStatus{.libx11c, importc: "XkbAllocGeomOutlines".}
-proc XkbAllocGeomRows*(section: PXkbSectionPtr, nRows: int16): TStatus{.libx11c, importc: "XkbAllocGeomRows".}
-proc XkbAllocGeomPoints*(ol: PXkbOutlinePtr, nPts: int16): TStatus{.libx11c, importc: "XkbAllocGeomPoints".}
-proc XkbAllocGeomKeys*(row: PXkbRowPtr, nKeys: int16): TStatus{.libx11c, importc: "XkbAllocGeomKeys".}
-proc XkbAllocGeometry*(xkb: PXkbDescPtr, sizes: PXkbGeometrySizesPtr): TStatus{.
-    libx11c, importc: "XkbAllocGeometry".}
-proc XkbSetGeometryProc*(dpy: PDisplay, deviceSpec: int16, geom: PXkbGeometryPtr): TStatus{.
-    libx11c, importc: "XkbSetGeometry".}
-proc XkbComputeShapeTop*(shape: PXkbShapePtr, bounds: PXkbBoundsPtr): bool{.
-    libx11c, importc: "XkbComputeShapeTop".}
-proc XkbComputeShapeBounds*(shape: PXkbShapePtr): bool{.libx11c, 
-    importc: "XkbComputeShapeBounds".}
-proc XkbComputeRowBounds*(geom: PXkbGeometryPtr, section: PXkbSectionPtr, 
-                          row: PXkbRowPtr): bool{.libx11c, 
-    importc: "XkbComputeRowBounds".}
-proc XkbComputeSectionBounds*(geom: PXkbGeometryPtr, section: PXkbSectionPtr): bool{.
-    libx11c, importc: "XkbComputeSectionBounds".}
-proc XkbFindOverlayForKey*(geom: PXkbGeometryPtr, wanted: PXkbSectionPtr, 
-                           under: cstring): cstring{.libx11c, 
-    importc: "XkbFindOverlayForKey".}
-proc XkbGetGeometryProc*(dpy: PDisplay, xkb: PXkbDescPtr): TStatus{.libx11c, importc: "XkbGetGeometry".}
-proc XkbGetNamedGeometry*(dpy: PDisplay, xkb: PXkbDescPtr, name: TAtom): TStatus{.
-    libx11c, importc: "XkbGetNamedGeometry".}
-when defined(XKB_IN_SERVER): 
-  proc SrvXkbAddGeomKeyAlias*(geom: PXkbGeometryPtr, alias: cstring, 
-                              float: cstring): PXkbKeyAliasPtr{.libx11c, importc: "XkbAddGeomKeyAlias".}
-  proc SrvXkbAddGeomColor*(geom: PXkbGeometryPtr, spec: cstring, pixel: int16): PXkbColorPtr{.
-      libx11c, importc: "XkbAddGeomColor".}
-  proc SrvXkbAddGeomDoodad*(geom: PXkbGeometryPtr, section: PXkbSectionPtr, 
-                            name: TAtom): PXkbDoodadPtr{.libx11c, 
-      importc: "XkbAddGeomDoodad".}
-  proc SrvXkbAddGeomKey*(geom: PXkbGeometryPtr, alias: cstring, float: cstring): PXkbKeyAliasPtr{.
-      libx11c, importc: "XkbAddGeomKeyAlias".}
-  proc SrvXkbAddGeomOutline*(shape: PXkbShapePtr, sz_points: int16): PXkbOutlinePtr{.
-      libx11c, importc: "XkbAddGeomOutline".}
-  proc SrvXkbAddGeomOverlay*(overlay: PXkbOverlayPtr, row: PXkbOverlayRowPtr, 
-                             over: cstring, under: cstring): PXkbOverlayKeyPtr{.
-      libx11c, importc: "XkbAddGeomOverlayKey".}
-  proc SrvXkbAddGeomOverlayRow*(overlay: PXkbOverlayPtr, row_under: int16, 
-                                sz_keys: int16): PXkbOverlayRowPtr{.libx11c, importc: "XkbAddGeomOverlayRow".}
-  proc SrvXkbAddGeomOverlayKey*(overlay: PXkbOverlayPtr, row: PXkbOverlayRowPtr, 
-                                over: cstring, under: cstring): PXkbOverlayKeyPtr{.
-      libx11c, importc: "XkbAddGeomOverlayKey".}
-  proc SrvXkbAddGeomProperty*(geom: PXkbGeometryPtr, name: cstring, 
-                              value: cstring): PXkbPropertyPtr{.libx11c, importc: "XkbAddGeomProperty".}
-  proc SrvXkbAddGeomRow*(section: PXkbSectionPtr, sz_keys: int16): PXkbRowPtr{.
-      libx11c, importc: "XkbAddGeomRow".}
-  proc SrvXkbAddGeomSection*(geom: PXkbGeometryPtr, name: TAtom, sz_rows: int16, 
-                             sz_doodads: int16, sz_overlays: int16): PXkbSectionPtr{.
-      libx11c, importc: "XkbAddGeomSection".}
-  proc SrvXkbAddGeomShape*(geom: PXkbGeometryPtr, name: TAtom, 
-                           sz_outlines: int16): PXkbShapePtr{.libx11c, importc: "XkbAddGeomShape".}
-  proc SrvXkbAllocGeomKeyAliases*(geom: PXkbGeometryPtr, nAliases: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomKeyAliases".}
-  proc SrvXkbAllocGeomColors*(geom: PXkbGeometryPtr, nColors: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomColors".}
-  proc SrvXkbAllocGeomDoodads*(geom: PXkbGeometryPtr, nDoodads: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomDoodads".}
-  proc SrvXkbAllocGeomKeys*(row: PXkbRowPtr, nKeys: int16): TStatus{.libx11c, importc: "XkbAllocGeomKeys".}
-  proc SrvXkbAllocGeomOutlines*(shape: PXkbShapePtr, nOL: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomOutlines".}
-  proc SrvXkbAllocGeomPoints*(ol: PXkbOutlinePtr, nPts: int16): TStatus{.libx11c, importc: "XkbAllocGeomPoints".}
-  proc SrvXkbAllocGeomProps*(geom: PXkbGeometryPtr, nProps: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomProps".}
-  proc SrvXkbAllocGeomRows*(section: PXkbSectionPtr, nRows: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomRows".}
-  proc SrvXkbAllocGeomSectionDoodads*(section: PXkbSectionPtr, nDoodads: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomSectionDoodads".}
-  proc SrvXkbAllocGeomSections*(geom: PXkbGeometryPtr, nSections: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomSections".}
-  proc SrvXkbAllocGeomOverlays*(section: PXkbSectionPtr, num_needed: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomOverlays".}
-  proc SrvXkbAllocGeomOverlayRows*(overlay: PXkbOverlayPtr, num_needed: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomOverlayRows".}
-  proc SrvXkbAllocGeomOverlayKeys*(row: PXkbOverlayRowPtr, num_needed: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomOverlayKeys".}
-  proc SrvXkbAllocGeomShapes*(geom: PXkbGeometryPtr, nShapes: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomShapes".}
-  proc SrvXkbAllocGeometry*(xkb: PXkbDescPtr, sizes: PXkbGeometrySizesPtr): TStatus{.
-      libx11c, importc: "XkbAllocGeometry".}
-  proc SrvXkbFreeGeomKeyAliases*(geom: PXkbGeometryPtr, first: int16, 
-                                 count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomKeyAliases".}
-  proc SrvXkbFreeGeomColors*(geom: PXkbGeometryPtr, first: int16, count: int16, 
-                             freeAll: bool){.libx11c, 
-      importc: "XkbFreeGeomColors".}
-  proc SrvXkbFreeGeomDoodads*(doodads: PXkbDoodadPtr, nDoodads: int16, 
-                              freeAll: bool){.libx11c, 
-      importc: "XkbFreeGeomDoodads".}
-  proc SrvXkbFreeGeomProperties*(geom: PXkbGeometryPtr, first: int16, 
-                                 count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomProperties".}
-  proc SrvXkbFreeGeomOverlayKeys*(row: PXkbOverlayRowPtr, first: int16, 
-                                  count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomOverlayKeys".}
-  proc SrvXkbFreeGeomOverlayRows*(overlay: PXkbOverlayPtr, first: int16, 
-                                  count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomOverlayRows".}
-  proc SrvXkbFreeGeomOverlays*(section: PXkbSectionPtr, first: int16, 
-                               count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomOverlays".}
-  proc SrvXkbFreeGeomKeys*(row: PXkbRowPtr, first: int16, count: int16, 
-                           freeAll: bool){.libx11c, 
-      importc: "XkbFreeGeomKeys".}
-  proc SrvXkbFreeGeomRows*(section: PXkbSectionPtr, first: int16, count: int16, 
-                           freeAll: bool){.libx11c, 
-      importc: "XkbFreeGeomRows".}
-  proc SrvXkbFreeGeomSections*(geom: PXkbGeometryPtr, first: int16, 
-                               count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomSections".}
-  proc SrvXkbFreeGeomPoints*(outline: PXkbOutlinePtr, first: int16, 
-                             count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomPoints".}
-  proc SrvXkbFreeGeomOutlines*(shape: PXkbShapePtr, first: int16, count: int16, 
-                               freeAll: bool){.libx11c, 
-      importc: "XkbFreeGeomOutlines".}
-  proc SrvXkbFreeGeomShapes*(geom: PXkbGeometryPtr, first: int16, count: int16, 
-                             freeAll: bool){.libx11c, 
-      importc: "XkbFreeGeomShapes".}
-  proc SrvXkbFreeGeometry*(geom: PXkbGeometryPtr, which: int16, freeMap: bool){.
-      libx11c, importc: "XkbFreeGeometry".}
-# implementation
-
-import                        #************************************ xkb ************************************
-  xi
-
-proc XkbLegalXILedClass(c: int): bool = 
-  ##define XkbLegalXILedClass(c) (((c)==KbdFeedbackClass)||((c)==LedFeedbackClass)||
-  #                                ((c)==XkbDfltXIClass)||((c)==XkbAllXIClasses))
-  Result = (c == KbdFeedbackClass) or (c == LedFeedbackClass) or
-      (c == XkbDfltXIClass) or (c == XkbAllXIClasses)
-
-proc XkbLegalXIBellClass(c: int): bool = 
-  ##define XkbLegalXIBellClass(c) (((c)==KbdFeedbackClass)||((c)==BellFeedbackClass)||
-  #                                 ((c)==XkbDfltXIClass)||((c)==XkbAllXIClasses))
-  Result = (c == KbdFeedbackClass) or (c == BellFeedbackClass) or
-      (c == XkbDfltXIClass) or (c == XkbAllXIClasses)
-
-proc XkbExplicitXIDevice(c: int): bool = 
-  ##define XkbExplicitXIDevice(c) (((c)&(~0xff))==0)
-  Result = (c and (not 0x000000FF)) == 0
-
-proc XkbExplicitXIClass(c: int): bool = 
-  ##define XkbExplicitXIClass(c) (((c)&(~0xff))==0)
-  Result = (c and (not 0x000000FF)) == 0
-
-proc XkbExplicitXIId(c: int): bool = 
-  ##define XkbExplicitXIId(c) (((c)&(~0xff))==0)
-  Result = (c and (not 0x000000FF)) == 0
-
-proc XkbSingleXIClass(c: int): bool = 
-  ##define XkbSingleXIClass(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIClass))
-  Result = ((c and (not 0x000000FF)) == 0) or (c == XkbDfltXIClass)
-
-proc XkbSingleXIId(c: int): bool = 
-  ##define XkbSingleXIId(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIId))
-  Result = ((c and (not 0x000000FF)) == 0) or (c == XkbDfltXIId)
-
-proc XkbBuildCoreState(m, g: int): int = 
-  ##define XkbBuildCoreState(m,g) ((((g)&0x3)<<13)|((m)&0xff))
-  Result = ((g and 0x00000003) shl 13) or (m and 0x000000FF)
-
-proc XkbGroupForCoreState(s: int): int = 
-  ##define XkbGroupForCoreState(s) (((s)>>13)&0x3)
-  Result = (s shr 13) and 0x00000003
-
-proc XkbIsLegalGroup(g: int): bool = 
-  ##define XkbIsLegalGroup(g) (((g)>=0)&&((g)<XkbNumKbdGroups))
-  Result = (g >= 0) and (g < XkbNumKbdGroups)
-
-proc XkbSA_ValOp(a: int): int = 
-  ##define XkbSA_ValOp(a) ((a)&XkbSA_ValOpMask)
-  Result = a and XkbSA_ValOpMask
-
-proc XkbSA_ValScale(a: int): int = 
-  ##define XkbSA_ValScale(a) ((a)&XkbSA_ValScaleMask)
-  Result = a and XkbSA_ValScaleMask
-
-proc XkbIsModAction(a: PXkbAnyAction): bool = 
-  ##define XkbIsModAction(a) (((a)->type>=Xkb_SASetMods)&&((a)->type<=XkbSA_LockMods))
-  Result = (ze(a.theType) >= XkbSA_SetMods) and (ze(a.theType) <= XkbSA_LockMods)
-
-proc XkbIsGroupAction(a: PXkbAnyAction): bool = 
-  ##define XkbIsGroupAction(a) (((a)->type>=XkbSA_SetGroup)&&((a)->type<=XkbSA_LockGroup))
-  Result = (ze(a.theType) >= XkbSA_SetGroup) or (ze(a.theType) <= XkbSA_LockGroup)
-
-proc XkbIsPtrAction(a: PXkbAnyAction): bool = 
-  ##define XkbIsPtrAction(a) (((a)->type>=XkbSA_MovePtr)&&((a)->type<=XkbSA_SetPtrDflt))
-  Result = (ze(a.theType) >= XkbSA_MovePtr) and
-      (ze(a.theType) <= XkbSA_SetPtrDflt)
-
-proc XkbIsLegalKeycode(k: int): bool = 
-  ##define        XkbIsLegalKeycode(k)    (((k)>=XkbMinLegalKeyCode)&&((k)<=XkbMaxLegalKeyCode))
-  Result = (k >= XkbMinLegalKeyCode) and (k <= XkbMaxLegalKeyCode)
-
-proc XkbShiftLevel(n: int8): int8 = 
-  ##define XkbShiftLevel(n) ((n)-1)
-  Result = n - 1'i8
-
-proc XkbShiftLevelMask(n: int8): int8 = 
-  ##define XkbShiftLevelMask(n) (1<<((n)-1))
-  Result = 1'i8 shl (n - 1'i8)
-
-proc XkbCharToInt(v: int8): int16 = 
-  ##define XkbCharToInt(v) ((v)&0x80?(int)((v)|(~0xff)):(int)((v)&0x7f))
-  if ((v and 0x80'i8) != 0'i8): Result = v or (not 0xFF'i16)
-  else: Result = int16(v and 0x7F'i8)
-  
-proc XkbIntTo2Chars(i: int16, h, L: var int8) = 
-  ##define XkbIntTo2Chars(i,h,l) (((h)=((i>>8)&0xff)),((l)=((i)&0xff)))
-  h = toU8((i shr 8'i16) and 0x00FF'i16)
-  L = toU8(i and 0xFF'i16)
-
-proc Xkb2CharsToInt(h, L: int8): int16 = 
-  when defined(cpu64): 
-    ##define Xkb2CharsToInt(h,l) ((h)&0x80?(int)(((h)<<8)|(l)|(~0xffff)): (int)(((h)<<8)|(l)&0x7fff))
-    if (h and 0x80'i8) != 0'i8: 
-      Result = toU16((ze(h) shl 8) or ze(L) or not 0x0000FFFF)
-    else: 
-      Result = toU16((ze(h) shl 8) or ze(L) and 0x00007FFF)
-  else: 
-    ##define Xkb2CharsToInt(h,l) ((short)(((h)<<8)|(l)))
-    Result = toU16(ze(h) shl 8 or ze(L))
-
-proc XkbModLocks(s: PXkbStatePtr): int8 = 
-  ##define XkbModLocks(s) ((s)->locked_mods)
-  Result = s.locked_mods
-
-proc XkbStateMods(s: PXkbStatePtr): int16 = 
-  ##define XkbStateMods(s) ((s)->base_mods|(s)->latched_mods|XkbModLocks(s))
-  Result = s.base_mods or s.latched_mods or XkbModLocks(s)
-
-proc XkbGroupLock(s: PXkbStatePtr): int8 = 
-  ##define XkbGroupLock(s) ((s)->locked_group)
-  Result = s.locked_group
-
-proc XkbStateGroup(s: PXkbStatePtr): int16 = 
-  ##define XkbStateGroup(s) ((s)->base_group+(s)->latched_group+XkbGroupLock(s))
-  Result = S.base_group + (s.latched_group) + XkbGroupLock(s)
-
-proc XkbStateFieldFromRec(s: PXkbStatePtr): int = 
-  ##define XkbStateFieldFromRec(s) XkbBuildCoreState((s)->lookup_mods,(s)->group)
-  Result = XkbBuildCoreState(s.lookup_mods, s.group)
-
-proc XkbGrabStateFromRec(s: PXkbStatePtr): int = 
-  ##define XkbGrabStateFromRec(s) XkbBuildCoreState((s)->grab_mods,(s)->group)
-  Result = XkbBuildCoreState(s.grab_mods, s.group)
-
-proc XkbNumGroups(g: int16): int16 = 
-  ##define XkbNumGroups(g) ((g)&0x0f)
-  Result = g and 0x0000000F'i16
-
-proc XkbOutOfRangeGroupInfo(g: int16): int16 = 
-  ##define XkbOutOfRangeGroupInfo(g) ((g)&0xf0)
-  Result = g and 0x000000F0'i16
-
-proc XkbOutOfRangeGroupAction(g: int16): int16 = 
-  ##define XkbOutOfRangeGroupAction(g) ((g)&0xc0)
-  Result = g and 0x000000C0'i16
-
-proc XkbOutOfRangeGroupNumber(g: int16): int16 = 
-  ##define XkbOutOfRangeGroupNumber(g) (((g)&0x30)>>4)
-  Result = (g and 0x00000030'i16) shr 4'i16
-
-proc XkbSetGroupInfo(g, w, n: int16): int16 = 
-  ##define XkbSetGroupInfo(g,w,n) (((w)&0xc0)|(((n)&3)<<4)|((g)&0x0f))
-  Result = (w and 0x000000C0'i16) or 
-    ((n and 3'i16) shl 4'i16) or (g and 0x0000000F'i16)
-
-proc XkbSetNumGroups(g, n: int16): int16 = 
-  ##define XkbSetNumGroups(g,n) (((g)&0xf0)|((n)&0x0f))
-  Result = (g and 0x000000F0'i16) or (n and 0x0000000F'i16)
-
-proc XkbModActionVMods(a: PXkbModAction): int16 = 
-  ##define XkbModActionVMods(a) ((short)(((a)->vmods1<<8)|((a)->vmods2)))
-  Result = toU16((ze(a.vmods1) shl 8) or ze(a.vmods2))
-
-proc XkbSetModActionVMods(a: PXkbModAction, v: int8) = 
-  ##define XkbSetModActionVMods(a,v) (((a)->vmods1=(((v)>>8)&0xff)),(a)->vmods2=((v)&0xff))
-  a.vmods1 = toU8((ze(v) shr 8) and 0x000000FF)
-  a.vmods2 = toU8(ze(v) and 0x000000FF)
-
-proc XkbSAGroup(a: PXkbGroupAction): int8 = 
-  ##define XkbSAGroup(a) (XkbCharToInt((a)->group_XXX))
-  Result = int8(XkbCharToInt(a.group_XXX))
-
-proc XkbSASetGroupProc(a: PXkbGroupAction, g: int8) = 
-  ##define XkbSASetGroup(a,g) ((a)->group_XXX=(g))
-  a.group_XXX = g
-
-proc XkbPtrActionX(a: PXkbPtrAction): int16 = 
-  ##define XkbPtrActionX(a) (Xkb2CharsToInt((a)->high_XXX,(a)->low_XXX))
-  Result = int16(Xkb2CharsToInt(a.high_XXX, a.low_XXX))
-
-proc XkbPtrActionY(a: PXkbPtrAction): int16 = 
-  ##define XkbPtrActionY(a) (Xkb2CharsToInt((a)->high_YYY,(a)->low_YYY))
-  Result = int16(Xkb2CharsToInt(a.high_YYY, a.low_YYY))
-
-proc XkbSetPtrActionX(a: PXkbPtrAction, x: int8) = 
-  ##define XkbSetPtrActionX(a,x) (XkbIntTo2Chars(x,(a)->high_XXX,(a)->low_XXX))
-  XkbIntTo2Chars(x, a.high_XXX, a.low_XXX)
-
-proc XkbSetPtrActionY(a: PXkbPtrAction, y: int8) = 
-  ##define XkbSetPtrActionY(a,y) (XkbIntTo2Chars(y,(a)->high_YYY,(a)->low_YYY))
-  XkbIntTo2Chars(y, a.high_YYY, a.low_YYY)
-
-proc XkbSAPtrDfltValue(a: PXkbPtrDfltAction): int8 = 
-  ##define XkbSAPtrDfltValue(a) (XkbCharToInt((a)->valueXXX))
-  Result = int8(XkbCharToInt(a.valueXXX))
-
-proc XkbSASetPtrDfltValue(a: PXkbPtrDfltAction, c: pointer) = 
-  ##define XkbSASetPtrDfltValue(a,c) ((a)->valueXXX= ((c)&0xff))
-  a.valueXXX = toU8(cast[int](c))
-
-proc XkbSAScreen(a: PXkbSwitchScreenAction): int8 = 
-  ##define XkbSAScreen(a) (XkbCharToInt((a)->screenXXX))
-  Result = toU8(XkbCharToInt(a.screenXXX))
-
-proc XkbSASetScreen(a: PXkbSwitchScreenAction, s: pointer) = 
-  ##define XkbSASetScreen(a,s) ((a)->screenXXX= ((s)&0xff))
-  a.screenXXX = toU8(cast[int](s))
-
-proc XkbActionSetCtrls(a: PXkbCtrlsAction, c: int8) = 
-  ##define XkbActionSetCtrls(a,c) (((a)->ctrls3=(((c)>>24)&0xff)),((a)->ctrls2=(((c)>>16)&0xff)),
-  #                                 ((a)->ctrls1=(((c)>>8)&0xff)),((a)->ctrls0=((c)&0xff)))        
-  a.ctrls3 = toU8((ze(c) shr 24) and 0x000000FF)
-  a.ctrls2 = toU8((ze(c) shr 16) and 0x000000FF)
-  a.ctrls1 = toU8((ze(c) shr 8) and 0x000000FF)
-  a.ctrls0 = toU8(ze(c) and 0x000000FF)
-
-proc XkbActionCtrls(a: PXkbCtrlsAction): int16 = 
-  ##define XkbActionCtrls(a) ((((unsigned int)(a)->ctrls3)<<24)|(((unsigned int)(a)->ctrls2)<<16)|
-  #                            (((unsigned int)(a)->ctrls1)<<8)|((unsigned int)((a)->ctrls0)))      
-  Result = toU16((ze(a.ctrls3) shl 24) or (ze(a.ctrls2) shl 16) or 
-     (ze(a.ctrls1) shl 8) or ze(a.ctrls0))
-
-proc XkbSARedirectVMods(a: PXkbRedirectKeyAction): int16 = 
-  ##define XkbSARedirectVMods(a) ((((unsigned int)(a)->vmods1)<<8)|((unsigned int)(a)->vmods0))
-  Result = toU16((ze(a.vmods1) shl 8) or ze(a.vmods0))
-
-proc XkbSARedirectSetVMods(a: PXkbRedirectKeyAction, m: int8) = 
-  ##define XkbSARedirectSetVMods(a,m) (((a)->vmods_mask1=(((m)>>8)&0xff)),((a)->vmods_mask0=((m)&0xff)))
-  a.vmods_mask1 = toU8((ze(m) shr 8) and 0x000000FF)
-  a.vmods_mask0 = toU8(ze(m) or 0x000000FF)
-
-proc XkbSARedirectVModsMask(a: PXkbRedirectKeyAction): int16 = 
-  ##define XkbSARedirectVModsMask(a) ((((unsigned int)(a)->vmods_mask1)<<8)|
-  #                                     ((unsigned int)(a)->vmods_mask0))
-  Result = toU16((ze(a.vmods_mask1) shl 8) or ze(a.vmods_mask0))
-
-proc XkbSARedirectSetVModsMask(a: PXkbRedirectKeyAction, m: int8) = 
-  ##define XkbSARedirectSetVModsMask(a,m) (((a)->vmods_mask1=(((m)>>8)&0xff)),((a)->vmods_mask0=((m)&0xff)))
-  a.vmods_mask1 = toU8(ze(m) shr 8 and 0x000000FF)
-  a.vmods_mask0 = toU8(ze(m) and 0x000000FF)
-
-proc XkbAX_AnyFeedback(c: PXkbControlsPtr): int16 = 
-  ##define XkbAX_AnyFeedback(c) ((c)->enabled_ctrls&XkbAccessXFeedbackMask)
-  Result = toU16(ze(c.enabled_ctrls) and XkbAccessXFeedbackMask)
-
-proc XkbAX_NeedOption(c: PXkbControlsPtr, w: int16): int16 = 
-  ##define XkbAX_NeedOption(c,w) ((c)->ax_options&(w))
-  Result = toU16(ze(c.ax_options) and ze(w))
-
-proc XkbAX_NeedFeedback(c: PXkbControlsPtr, w: int16): bool = 
-  ##define XkbAX_NeedFeedback(c,w) (XkbAX_AnyFeedback(c)&&XkbAX_NeedOption(c,w))
-  Result = (XkbAX_AnyFeedback(c) > 0'i16) and (XkbAX_NeedOption(c, w) > 0'i16)
-
-proc XkbSMKeyActionsPtr(m: PXkbServerMapPtr, k: int16): PXkbAction = 
-  ##define XkbSMKeyActionsPtr(m,k) (&(m)->acts[(m)->key_acts[k]])
-  Result = addr(m.acts[ze(m.key_acts[ze(k)])])
-
-proc XkbCMKeyGroupInfo(m: PXkbClientMapPtr, k: int16): int8 = 
-  ##define XkbCMKeyGroupInfo(m,k) ((m)->key_sym_map[k].group_info)
-  Result = m.key_sym_map[ze(k)].group_info
-
-proc XkbCMKeyNumGroups(m: PXkbClientMapPtr, k: int16): int8 = 
-  ##define XkbCMKeyNumGroups(m,k) (XkbNumGroups((m)->key_sym_map[k].group_info))
-  Result = toU8(XkbNumGroups(m.key_sym_map[ze(k)].group_info))
-
-proc XkbCMKeyGroupWidth(m: PXkbClientMapPtr, k: int16, g: int8): int8 = 
-  ##define XkbCMKeyGroupWidth(m,k,g) (XkbCMKeyType(m,k,g)->num_levels)
-  Result = XkbCMKeyType(m, k, g).num_levels
-
-proc XkbCMKeyGroupsWidth(m: PXkbClientMapPtr, K: int16): int8 = 
-  ##define XkbCMKeyGroupsWidth(m,k) ((m)->key_sym_map[k].width)
-  Result = m.key_sym_map[ze(k)].width
-
-proc XkbCMKeyTypeIndex(m: PXkbClientMapPtr, k: int16, g: int8): int8 = 
-  ##define XkbCMKeyTypeIndex(m,k,g) ((m)->key_sym_map[k].kt_index[g&0x3])
-  Result = m.key_sym_map[ze(k)].kt_index[ze(g) and 0x00000003]
-
-proc XkbCMKeyType(m: PXkbClientMapPtr, k: int16, g: int8): PXkbKeyTypePtr = 
-  ##define XkbCMKeyType(m,k,g) (&(m)->types[XkbCMKeyTypeIndex(m,k,g)])
-  Result = addr(m.types[ze(XkbCMKeyTypeIndex(m, k, g))])
-
-proc XkbCMKeyNumSyms(m: PXkbClientMapPtr, k: int16): int16 = 
-  ##define XkbCMKeyNumSyms(m,k) (XkbCMKeyGroupsWidth(m,k)*XkbCMKeyNumGroups(m,k))
-  Result = toU16(ze(XkbCMKeyGroupsWidth(m, k)) or ze(XkbCMKeyNumGroups(m, k)))
-
-proc XkbCMKeySymsOffset(m: PXkbClientMapPtr, k: int16): int8 = 
-  ##define XkbCMKeySymsOffset(m,k) ((m)->key_sym_map[k].offset)
-  Result = m.key_sym_map[ze(k)].offset
-
-proc XkbCMKeySymsPtr*(m: PXkbClientMapPtr, k: int16): PKeySym = 
-  ##define XkbCMKeySymsPtr(m,k) (&(m)->syms[XkbCMKeySymsOffset(m,k)])
-  Result = addr(m.syms[ze(XkbCMKeySymsOffset(m, k))])
-
-proc XkbIM_IsAuto(i: PXkbIndicatorMapPtr): bool = 
-  ##define XkbIM_IsAuto(i) ((((i)->flags&XkbIM_NoAutomatic)==0)&&(((i)->which_groups&&(i)->groups)||
-  #                           ((i)->which_mods&&(i)->mods.mask)||  ((i)->ctrls)))
-  Result = ((ze(i.flags) and XkbIM_NoAutomatic) == 0) and
-      (((i.which_groups > 0'i8) and (i.groups > 0'i8)) or
-      ((i.which_mods > 0'i8) and (i.mods.mask > 0'i8)) or (i.ctrls > 0'i8))
-
-proc XkbIM_InUse(i: PXkbIndicatorMapPtr): bool = 
-  ##define XkbIM_InUse(i) (((i)->flags)||((i)->which_groups)||((i)->which_mods)||((i)->ctrls)) 
-  Result = (i.flags > 0'i8) or (i.which_groups > 0'i8) or (i.which_mods > 0'i8) or
-      (i.ctrls > 0'i8)
-
-proc XkbKeyKeyTypeIndex(d: PXkbDescPtr, k: int16, g: int8): int8 = 
-  ##define XkbKeyKeyTypeIndex(d,k,g)      (XkbCMKeyTypeIndex((d)->map,k,g))
-  Result = XkbCMKeyTypeIndex(d.map, k, g)
-
-proc XkbKeyKeyType(d: PXkbDescPtr, k: int16, g: int8): PXkbKeyTypePtr = 
-  ##define XkbKeyKeyType(d,k,g) (XkbCMKeyType((d)->map,k,g))
-  Result = XkbCMKeyType(d.map, k, g)
-
-proc XkbKeyGroupWidth(d: PXkbDescPtr, k: int16, g: int8): int8 = 
-  ##define XkbKeyGroupWidth(d,k,g) (XkbCMKeyGroupWidth((d)->map,k,g))
-  Result = XkbCMKeyGroupWidth(d.map, k, g)
-
-proc XkbKeyGroupsWidth(d: PXkbDescPtr, k: int16): int8 = 
-  ##define XkbKeyGroupsWidth(d,k) (XkbCMKeyGroupsWidth((d)->map,k))
-  Result = XkbCMKeyGroupsWidth(d.map, k)
-
-proc XkbKeyGroupInfo(d: PXkbDescPtr, k: int16): int8 = 
-  ##define XkbKeyGroupInfo(d,k) (XkbCMKeyGroupInfo((d)->map,(k)))
-  Result = XkbCMKeyGroupInfo(d.map, k)
-
-proc XkbKeyNumGroups(d: PXkbDescPtr, k: int16): int8 = 
-  ##define XkbKeyNumGroups(d,k) (XkbCMKeyNumGroups((d)->map,(k)))
-  Result = XkbCMKeyNumGroups(d.map, k)
-
-proc XkbKeyNumSyms(d: PXkbDescPtr, k: int16): int16 = 
-  ##define XkbKeyNumSyms(d,k) (XkbCMKeyNumSyms((d)->map,(k)))
-  Result = XkbCMKeyNumSyms(d.map, k)
-
-proc XkbKeySymsPtr*(d: PXkbDescPtr, k: int16): PKeySym = 
-  ##define XkbKeySymsPtr(d,k) (XkbCMKeySymsPtr((d)->map,(k)))
-  Result = XkbCMKeySymsPtr(d.map, k)
-
-proc XkbKeySym(d: PXkbDescPtr, k: int16, n: int16): TKeySym = 
-  ##define XkbKeySym(d,k,n) (XkbKeySymsPtr(d,k)[n])
-  Result = cast[ptr array[0..0xffff, TKeySym]](XkbKeySymsPtr(d, k))[ze(n)] # XXX: this seems strange!
-
-proc XkbKeySymEntry(d: PXkbDescPtr, k: int16, sl: int16, g: int8): TKeySym = 
-  ##define XkbKeySymEntry(d,k,sl,g) (XkbKeySym(d,k,((XkbKeyGroupsWidth(d,k)*(g))+(sl))))
-  Result = XkbKeySym(d, k, toU16(ze(XkbKeyGroupsWidth(d, k)) * ze(g) + ze(sl)))
-
-proc XkbKeyAction(d: PXkbDescPtr, k: int16, n: int16): PXkbAction = 
-  ##define XkbKeyAction(d,k,n) (XkbKeyHasActions(d,k)?&XkbKeyActionsPtr(d,k)[n]:NULL)
-  #if (XkbKeyHasActions(d, k)): 
-  #  Result = XkbKeyActionsPtr(d, k)[ze(n)] #Buggy !!!
-  assert(false)
-  result = nil
-  
-proc XkbKeyActionEntry(d: PXkbDescPtr, k: int16, sl: int16, g: int8): int8 = 
-  ##define XkbKeyActionEntry(d,k,sl,g) (XkbKeyHasActions(d,k) ?
-  #                                      XkbKeyAction(d, k, ((XkbKeyGroupsWidth(d, k) * (g))+(sl))):NULL)
-  if XkbKeyHasActions(d, k): 
-    Result = XkbKeyGroupsWidth(d, k) *% g +% toU8(sl)
-  else: 
-    Result = 0'i8
-  
-proc XkbKeyHasActions(d: PXkbDescPtr, k: int16): bool = 
-  ##define XkbKeyHasActions(d,k) ((d)->server->key_acts[k]!=0)
-  Result = d.server.key_acts[ze(k)] != 0'i16
-
-proc XkbKeyNumActions(d: PXkbDescPtr, k: int16): int16 = 
-  ##define XkbKeyNumActions(d,k) (XkbKeyHasActions(d,k)?XkbKeyNumSyms(d,k):1)
-  if (XkbKeyHasActions(d, k)): Result = XkbKeyNumSyms(d, k)
-  else: Result = 1'i16
-  
-proc XkbKeyActionsPtr(d: PXkbDescPtr, k: int16): PXkbAction = 
-  ##define XkbKeyActionsPtr(d,k) (XkbSMKeyActionsPtr((d)->server,k))
-  Result = XkbSMKeyActionsPtr(d.server, k)
-
-proc XkbKeycodeInRange(d: PXkbDescPtr, k: int16): bool = 
-  ##define XkbKeycodeInRange(d,k) (((k)>=(d)->min_key_code)&& ((k)<=(d)->max_key_code))
-  Result = (char(toU8(k)) >= d.min_key_code) and (char(toU8(k)) <= d.max_key_code)
-
-proc XkbNumKeys(d: PXkbDescPtr): int8 = 
-  ##define XkbNumKeys(d) ((d)->max_key_code-(d)->min_key_code+1)
-  Result = toU8(ord(d.max_key_code) - ord(d.min_key_code) + 1)
-
-proc XkbXI_DevHasBtnActs(d: PXkbDeviceInfoPtr): bool = 
-  ##define XkbXI_DevHasBtnActs(d) (((d)->num_btns>0)&&((d)->btn_acts!=NULL))
-  Result = (d.num_btns > 0'i16) and (not (d.btn_acts == nil))
-
-proc XkbXI_LegalDevBtn(d: PXkbDeviceInfoPtr, b: int16): bool = 
-  ##define XkbXI_LegalDevBtn(d,b) (XkbXI_DevHasBtnActs(d)&&((b)<(d)->num_btns))
-  Result = XkbXI_DevHasBtnActs(d) and (b <% d.num_btns)
-
-proc XkbXI_DevHasLeds(d: PXkbDeviceInfoPtr): bool = 
-  ##define XkbXI_DevHasLeds(d) (((d)->num_leds>0)&&((d)->leds!=NULL))
-  Result = (d.num_leds > 0'i16) and (not (d.leds == nil))
-
-proc XkbBoundsWidth(b: PXkbBoundsPtr): int16 = 
-  ##define XkbBoundsWidth(b) (((b)->x2)-((b)->x1))
-  Result = (b.x2) - b.x1
-
-proc XkbBoundsHeight(b: PXkbBoundsPtr): int16 = 
-  ##define XkbBoundsHeight(b) (((b)->y2)-((b)->y1))
-  Result = (b.y2) - b.y1
-
-proc XkbOutlineIndex(s: PXkbShapePtr, o: PXkbOutlinePtr): int32 = 
-  ##define XkbOutlineIndex(s,o) ((int)((o)-&(s)->outlines[0]))
-  Result = int32((cast[TAddress](o) - cast[TAddress](addr(s.outlines[0]))) div sizeof(PXkbOutlinePtr))
-
-proc XkbShapeDoodadColor(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr): PXkbColorPtr = 
-  ##define XkbShapeDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
-  Result = addr((g.colors[ze(d.color_ndx)]))
-
-proc XkbShapeDoodadShape(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr): PXkbShapePtr = 
-  ##define XkbShapeDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
-  Result = addr(g.shapes[ze(d.shape_ndx)])
-
-proc XkbSetShapeDoodadColor(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr, 
-                            c: PXkbColorPtr) = 
-  ##define XkbSetShapeDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
-  d.color_ndx = toU16((cast[TAddress](c) - cast[TAddress](addr(g.colors[0]))) div sizeof(TXkbColorRec))
-
-proc XkbSetShapeDoodadShape(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr, 
-                            s: PXkbShapePtr) = 
-  ##define XkbSetShapeDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
-  d.shape_ndx = toU16((cast[TAddress](s) - cast[TAddress](addr(g.shapes[0]))) div sizeof(TXkbShapeRec))
-
-proc XkbTextDoodadColor(g: PXkbGeometryPtr, d: PXkbTextDoodadPtr): PXkbColorPtr = 
-  ##define XkbTextDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
-  Result = addr(g.colors[ze(d.color_ndx)])
-
-proc XkbSetTextDoodadColor(g: PXkbGeometryPtr, d: PXkbTextDoodadPtr, 
-                           c: PXkbColorPtr) = 
-  ##define XkbSetTextDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
-  d.color_ndx = toU16((cast[TAddress](c) - cast[TAddress](addr(g.colors[0]))) div sizeof(TXkbColorRec))
-
-proc XkbIndicatorDoodadShape(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbShapeDoodadPtr = 
-  ##define XkbIndicatorDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
-  Result = cast[PXkbShapeDoodadPtr](addr(g.shapes[ze(d.shape_ndx)]))
-
-proc XkbIndicatorDoodadOnColor(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbColorPtr = 
-  ##define XkbIndicatorDoodadOnColor(g,d) (&(g)->colors[(d)->on_color_ndx])
-  Result = addr(g.colors[ze(d.on_color_ndx)])
-
-proc XkbIndicatorDoodadOffColor(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbColorPtr = 
-  ##define XkbIndicatorDoodadOffColor(g,d) (&(g)->colors[(d)->off_color_ndx])
-  Result = addr(g.colors[ze(d.off_color_ndx)])
-
-proc XkbSetIndicatorDoodadOnColor(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr, 
-                                  c: PXkbColorPtr) = 
-  ##define XkbSetIndicatorDoodadOnColor(g,d,c) ((d)->on_color_ndx= (c)-&(g)->colors[0])
-  d.on_color_ndx = toU16((cast[TAddress](c) - cast[TAddress](addr(g.colors[0]))) div sizeof(TXkbColorRec))
-
-proc XkbSetIndicatorDoodadOffColor(g: PXkbGeometryPtr, 
-                                   d: PXkbIndicatorDoodadPtr, c: PXkbColorPtr) = 
-  ##define        XkbSetIndicatorDoodadOffColor(g,d,c) ((d)->off_color_ndx= (c)-&(g)->colors[0])
-  d.off_color_ndx = toU16((cast[TAddress](c) - cast[TAddress](addr(g.colors[0]))) div sizeof(TxkbColorRec))
-
-proc XkbSetIndicatorDoodadShape(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr, 
-                                s: PXkbShapeDoodadPtr) = 
-  ##define XkbSetIndicatorDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
-  d.shape_ndx = toU16((cast[TAddress](s) - (cast[TAddress](addr(g.shapes[0])))) div sizeof(TXkbShapeRec))
-
-proc XkbLogoDoodadColor(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr): PXkbColorPtr = 
-  ##define XkbLogoDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
-  Result = addr(g.colors[ze(d.color_ndx)])
-
-proc XkbLogoDoodadShape(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr): PXkbShapeDoodadPtr = 
-  ##define XkbLogoDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
-  Result = cast[PXkbShapeDoodadPtr](addr(g.shapes[ze(d.shape_ndx)]))
-
-proc XkbSetLogoDoodadColor(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr, 
-                           c: PXkbColorPtr) = 
-  ##define XkbSetLogoDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
-  d.color_ndx = toU16((cast[TAddress](c) - cast[TAddress](addr(g.colors[0]))) div sizeof(TXkbColorRec))
-
-proc XkbSetLogoDoodadShape(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr, 
-                           s: PXkbShapeDoodadPtr) = 
-  ##define XkbSetLogoDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
-  d.shape_ndx = toU16((cast[TAddress](s) - cast[TAddress](addr(g.shapes[0]))) div sizeof(TXkbShapeRec))
-
-proc XkbKeyShape(g: PXkbGeometryPtr, k: PXkbKeyPtr): PXkbShapeDoodadPtr = 
-  ##define XkbKeyShape(g,k) (&(g)->shapes[(k)->shape_ndx])
-  Result = cast[PXkbShapeDoodadPtr](addr(g.shapes[ze(k.shape_ndx)]))
-
-proc XkbKeyColor(g: PXkbGeometryPtr, k: PXkbKeyPtr): PXkbColorPtr = 
-  ##define XkbKeyColor(g,k) (&(g)->colors[(k)->color_ndx])
-  Result = addr(g.colors[ze(k.color_ndx)])
-
-proc XkbSetKeyShape(g: PXkbGeometryPtr, k: PXkbKeyPtr, s: PXkbShapeDoodadPtr) = 
-  ##define XkbSetKeyShape(g,k,s) ((k)->shape_ndx= (s)-&(g)->shapes[0])
-  k.shape_ndx = toU8((cast[TAddress](s) - cast[TAddress](addr(g.shapes[0]))) div sizeof(TXkbShapeRec))
-
-proc XkbSetKeyColor(g: PXkbGeometryPtr, k: PXkbKeyPtr, c: PXkbColorPtr) = 
-  ##define XkbSetKeyColor(g,k,c) ((k)->color_ndx= (c)-&(g)->colors[0])
-  k.color_ndx = toU8((cast[TAddress](c) - cast[TAddress](addr(g.colors[0]))) div sizeof(TxkbColorRec))
-
-proc XkbGeomColorIndex(g: PXkbGeometryPtr, c: PXkbColorPtr): int32 = 
-  ##define XkbGeomColorIndex(g,c) ((int)((c)-&(g)->colors[0]))
-  Result = toU16((cast[TAddress](c) - (cast[TAddress](addr(g.colors[0])))) div sizeof(TxkbColorRec))
diff --git a/lib/wrappers/x11/xkblib.nim b/lib/wrappers/x11/xkblib.nim
deleted file mode 100644
index 1b450f289..000000000
--- a/lib/wrappers/x11/xkblib.nim
+++ /dev/null
@@ -1,661 +0,0 @@
-# $Xorg: XKBlib.h,v 1.6 2000/08/17 19:45:03 cpqbld Exp $
-#************************************************************
-#Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-#
-#Permission to use, copy, modify, and distribute this
-#software and its documentation for any purpose and without
-#fee is hereby granted, provided that the above copyright
-#notice appear in all copies and that both that copyright
-#notice and this permission notice appear in supporting
-#documentation, and that the name of Silicon Graphics not be
-#used in advertising or publicity pertaining to distribution
-#of the software without specific prior written permission.
-#Silicon Graphics makes no representation about the suitability
-#of this software for any purpose. It is provided "as is"
-#without any express or implied warranty.
-#
-#SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-#SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-#AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-#GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-#DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING `from` LOSS OF USE,
-#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-#OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
-#THE USE OR PERFORMANCE OF THIS SOFTWARE.
-#
-#********************************************************/
-# $XFree86: xc/lib/X11/XKBlib.h,v 3.3 2001/08/01 00:44:38 tsi Exp $
-#
-# Pascal Convertion was made by Ido Kannner - kanerido@actcom.net.il
-#
-#Thanks:
-#         I want to thanks to oliebol for putting up with all of the problems that was found
-#         while translating this code. ;)
-#
-#         I want to thanks #fpc channel in freenode irc, for helping me, and to put up with my
-#         wierd questions ;)
-#
-#         Thanks for mmc in #xlib on freenode irc And so for the channel itself for the helping me to
-#         understanding some of the problems I had converting this headers and pointing me to resources
-#         that helped translating this headers.
-#
-# Ido
-#
-#History:
-#        2004/10/15        - Fixed a bug of accessing second based records by removing "paced record" and
-#                            chnaged it to "reocrd" only.
-#        2004/10/10        - Added to TXkbGetAtomNameFunc and TXkbInternAtomFunc the cdecl call.
-#        2004/10/06 - 09   - Convertion `from` the c header of XKBlib.h
-#
-#
-
-import 
-  X, Xlib, XKB
-
-
-include "x11pragma.nim"
-
-
-type 
-  PXkbAnyEvent* = ptr TXkbAnyEvent
-  TXkbAnyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds;
-    xkb_type*: int16          # XKB event minor code
-    device*: int16            # device ID
-  
-
-type 
-  PXkbNewKeyboardNotifyEvent* = ptr TXkbNewKeyboardNotifyEvent
-  TXkbNewKeyboardNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbNewKeyboardNotify
-    device*: int16            # device ID
-    old_device*: int16        # device ID of previous keyboard
-    min_key_code*: int16      # minimum key code
-    max_key_code*: int16      # maximum key code
-    old_min_key_code*: int16  # min key code of previous kbd
-    old_max_key_code*: int16  # max key code of previous kbd
-    changed*: int16           # changed aspects of the keyboard
-    req_major*: int8          # major and minor opcode of req
-    req_minor*: int8          # that caused change, if applicable
-  
-
-type 
-  PXkbMapNotifyEvent* = ptr TXkbMapNotifyEvent
-  TXkbMapNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbMapNotify
-    device*: int16            # device ID
-    changed*: int16           # fields which have been changed
-    flags*: int16             # reserved
-    first_type*: int16        # first changed key type
-    num_types*: int16         # number of changed key types
-    min_key_code*: TKeyCode
-    max_key_code*: TKeyCode
-    first_key_sym*: TKeyCode
-    first_key_act*: TKeyCode
-    first_key_behavior*: TKeyCode
-    first_key_explicit*: TKeyCode
-    first_modmap_key*: TKeyCode
-    first_vmodmap_key*: TKeyCode
-    num_key_syms*: int16
-    num_key_acts*: int16
-    num_key_behaviors*: int16
-    num_key_explicit*: int16
-    num_modmap_keys*: int16
-    num_vmodmap_keys*: int16
-    vmods*: int16             # mask of changed virtual mods
-  
-
-type 
-  PXkbStateNotifyEvent* = ptr TXkbStateNotifyEvent
-  TXkbStateNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbStateNotify
-    device*: int16            # device ID
-    changed*: int16           # mask of changed state components
-    group*: int16             # keyboard group
-    base_group*: int16        # base keyboard group
-    latched_group*: int16     # latched keyboard group
-    locked_group*: int16      # locked keyboard group
-    mods*: int16              # modifier state
-    base_mods*: int16         # base modifier state
-    latched_mods*: int16      # latched modifiers
-    locked_mods*: int16       # locked modifiers
-    compat_state*: int16      # compatibility state
-    grab_mods*: int8          # mods used for grabs
-    compat_grab_mods*: int8   # grab mods for non-XKB clients
-    lookup_mods*: int8        # mods sent to clients
-    compat_lookup_mods*: int8 # mods sent to non-XKB clients
-    ptr_buttons*: int16       # pointer button state
-    keycode*: TKeyCode        # keycode that caused the change
-    event_type*: int8         # KeyPress or KeyRelease
-    req_major*: int8          # Major opcode of request
-    req_minor*: int8          # Minor opcode of request
-  
-
-type 
-  PXkbControlsNotifyEvent* = ptr TXkbControlsNotifyEvent
-  TXkbControlsNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbControlsNotify
-    device*: int16            # device ID
-    changed_ctrls*: int16     # controls with changed sub-values
-    enabled_ctrls*: int16     # controls currently enabled
-    enabled_ctrl_changes*: int16 # controls just {en,dis}abled
-    num_groups*: int16        # total groups on keyboard
-    keycode*: TKeyCode        # key that caused change or 0
-    event_type*: int8         # type of event that caused change
-    req_major*: int8          # if keycode==0, major and minor
-    req_minor*: int8          # opcode of req that caused change
-  
-
-type 
-  PXkbIndicatorNotifyEvent* = ptr TXkbIndicatorNotifyEvent
-  TXkbIndicatorNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbIndicatorNotify
-    device*: int16            # device
-    changed*: int16           # indicators with new state or map
-    state*: int16             # current state of all indicators
-  
-
-type 
-  PXkbNamesNotifyEvent* = ptr TXkbNamesNotifyEvent
-  TXkbNamesNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbNamesNotify
-    device*: int16            # device ID
-    changed*: int32           # names that have changed
-    first_type*: int16        # first key type with new name
-    num_types*: int16         # number of key types with new names
-    first_lvl*: int16         # first key type new new level names
-    num_lvls*: int16          # # of key types w/new level names
-    num_aliases*: int16       # total number of key aliases
-    num_radio_groups*: int16  # total number of radio groups
-    changed_vmods*: int16     # virtual modifiers with new names
-    changed_groups*: int16    # groups with new names
-    changed_indicators*: int16 # indicators with new names
-    first_key*: int16         # first key with new name
-    num_keys*: int16          # number of keys with new names
-  
-
-type 
-  PXkbCompatMapNotifyEvent* = ptr TXkbCompatMapNotifyEvent
-  TXkbCompatMapNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbCompatMapNotify
-    device*: int16            # device ID
-    changed_groups*: int16    # groups with new compat maps
-    first_si*: int16          # first new symbol interp
-    num_si*: int16            # number of new symbol interps
-    num_total_si*: int16      # total # of symbol interps
-  
-
-type 
-  PXkbBellNotifyEvent* = ptr TXkbBellNotifyEvent
-  TXkbBellNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbBellNotify
-    device*: int16            # device ID
-    percent*: int16           # requested volume as a % of maximum
-    pitch*: int16             # requested pitch in Hz
-    duration*: int16          # requested duration in useconds
-    bell_class*: int16        # (input extension) feedback class
-    bell_id*: int16           # (input extension) ID of feedback
-    name*: TAtom              # "name" of requested bell
-    window*: TWindow          # window associated with event
-    event_only*: bool         # "event only" requested
-  
-
-type 
-  PXkbActionMessageEvent* = ptr TXkbActionMessageEvent
-  TXkbActionMessageEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbActionMessage
-    device*: int16            # device ID
-    keycode*: TKeyCode        # key that generated the event
-    press*: bool              # true if act caused by key press
-    key_event_follows*: bool  # true if key event also generated
-    group*: int16             # effective group
-    mods*: int16              # effective mods
-    message*: array[0..XkbActionMessageLength, Char] # message -- leave space for NUL
-  
-
-type 
-  PXkbAccessXNotifyEvent* = ptr TXkbAccessXNotifyEvent
-  TXkbAccessXNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbAccessXNotify
-    device*: int16            # device ID
-    detail*: int16            # XkbAXN_*
-    keycode*: int16           # key of event
-    sk_delay*: int16          # current slow keys delay
-    debounce_delay*: int16    # current debounce delay
-  
-
-type 
-  PXkbExtensionDeviceNotifyEvent* = ptr TXkbExtensionDeviceNotifyEvent
-  TXkbExtensionDeviceNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbExtensionDeviceNotify
-    device*: int16            # device ID
-    reason*: int16            # reason for the event
-    supported*: int16         # mask of supported features
-    unsupported*: int16       # mask of unsupported features
-                              # that some app tried to use
-    first_btn*: int16         # first button that changed
-    num_btns*: int16          # range of buttons changed
-    leds_defined*: int16      # indicators with names or maps
-    led_state*: int16         # current state of the indicators
-    led_class*: int16         # feedback class for led changes
-    led_id*: int16            # feedback id for led changes
-  
-
-type 
-  PXkbEvent* = ptr TXkbEvent
-  TXkbEvent*{.final.} = object 
-    theType*: int16
-    any*: TXkbAnyEvent
-    new_kbd*: TXkbNewKeyboardNotifyEvent
-    map*: TXkbMapNotifyEvent
-    state*: TXkbStateNotifyEvent
-    ctrls*: TXkbControlsNotifyEvent
-    indicators*: TXkbIndicatorNotifyEvent
-    names*: TXkbNamesNotifyEvent
-    compat*: TXkbCompatMapNotifyEvent
-    bell*: TXkbBellNotifyEvent
-    message*: TXkbActionMessageEvent
-    accessx*: TXkbAccessXNotifyEvent
-    device*: TXkbExtensionDeviceNotifyEvent
-    core*: TXEvent
-
-
-type
-  PXkbKbdDpyStatePtr* = ptr TXkbKbdDpyStateRec
-  TXkbKbdDpyStateRec*{.final.} = object  # XkbOpenDisplay error codes 
-
-const 
-  XkbOD_Success* = 0
-  XkbOD_BadLibraryVersion* = 1
-  XkbOD_ConnectionRefused* = 2
-  XkbOD_NonXkbServer* = 3
-  XkbOD_BadServerVersion* = 4 # Values for XlibFlags 
-
-const 
-  XkbLC_ForceLatin1Lookup* = 1 shl 0
-  XkbLC_ConsumeLookupMods* = 1 shl 1
-  XkbLC_AlwaysConsumeShiftAndLock* = 1 shl 2
-  XkbLC_IgnoreNewKeyboards* = 1 shl 3
-  XkbLC_ControlFallback* = 1 shl 4
-  XkbLC_ConsumeKeysOnComposeFail* = 1 shl 29
-  XkbLC_ComposeLED* = 1 shl 30
-  XkbLC_BeepOnComposeFail* = 1 shl 31
-  XkbLC_AllComposeControls* = 0xC0000000
-  XkbLC_AllControls* = 0xC000001F
-
-proc XkbIgnoreExtension*(ignore: bool): bool{.libx11c, 
-    importc: "XkbIgnoreExtension".}
-proc XkbOpenDisplay*(name: cstring, ev_rtrn, err_rtrn, major_rtrn, minor_rtrn, 
-                                    reason: ptr int16): PDisplay{.libx11c, importc: "XkbOpenDisplay".}
-proc XkbQueryExtension*(dpy: PDisplay, opcodeReturn, eventBaseReturn, 
-                                       errorBaseReturn, majorRtrn, minorRtrn: ptr int16): bool{.
-    libx11c, importc: "XkbQueryExtension".}
-proc XkbUseExtension*(dpy: PDisplay, major_rtrn, minor_rtrn: ptr int16): bool{.
-    libx11c, importc: "XkbUseExtension".}
-proc XkbLibraryVersion*(libMajorRtrn, libMinorRtrn: ptr int16): bool{.libx11c, importc: "XkbLibraryVersion".}
-proc XkbSetXlibControls*(dpy: PDisplay, affect, values: int16): int16{.libx11c, importc: "XkbSetXlibControls".}
-proc XkbGetXlibControls*(dpy: PDisplay): int16{.libx11c, 
-    importc: "XkbGetXlibControls".}
-type 
-  TXkbInternAtomFunc* = proc (dpy: PDisplay, name: cstring, only_if_exists: bool): TAtom{.
-      cdecl.}
-
-type 
-  TXkbGetAtomNameFunc* = proc (dpy: PDisplay, atom: TAtom): cstring{.cdecl.}
-
-proc XkbSetAtomFuncs*(getAtom: TXkbInternAtomFunc, getName: TXkbGetAtomNameFunc){.
-    libx11c, importc: "XkbSetAtomFuncs".}
-proc XkbKeycodeToKeysym*(dpy: PDisplay, kc: TKeyCode, group, level: int16): TKeySym{.
-    libx11c, importc: "XkbKeycodeToKeysym".}
-proc XkbKeysymToModifiers*(dpy: PDisplay, ks: TKeySym): int16{.libx11c, importc: "XkbKeysymToModifiers".}
-proc XkbLookupKeySym*(dpy: PDisplay, keycode: TKeyCode, 
-                      modifiers, modifiers_return: int16, keysym_return: PKeySym): bool{.
-    libx11c, importc: "XkbLookupKeySym".}
-proc XkbLookupKeyBinding*(dpy: PDisplay, sym_rtrn: TKeySym, mods: int16, 
-                          buffer: cstring, nbytes: int16, extra_rtrn: ptr int16): int16{.
-    libx11c, importc: "XkbLookupKeyBinding".}
-proc XkbTranslateKeyCode*(xkb: PXkbDescPtr, keycode: TKeyCode, 
-                          modifiers, modifiers_return: int16, 
-                          keysym_return: PKeySym): bool{.libx11c, 
-    importc: "XkbTranslateKeyCode".}
-proc XkbTranslateKeySym*(dpy: PDisplay, sym_return: TKeySym, modifiers: int16, 
-                         buffer: cstring, nbytes: int16, extra_rtrn: ptr int16): int16{.
-    libx11c, importc: "XkbTranslateKeySym".}
-proc XkbSetAutoRepeatRate*(dpy: PDisplay, deviceSpec, delay, interval: int16): bool{.
-    libx11c, importc: "XkbSetAutoRepeatRate".}
-proc XkbGetAutoRepeatRate*(dpy: PDisplay, deviceSpec: int16, 
-                           delayRtrn, intervalRtrn: PWord): bool{.libx11c, importc: "XkbGetAutoRepeatRate".}
-proc XkbChangeEnabledControls*(dpy: PDisplay, deviceSpec, affect, values: int16): bool{.
-    libx11c, importc: "XkbChangeEnabledControls".}
-proc XkbDeviceBell*(dpy: PDisplay, win: TWindow, 
-                    deviceSpec, bellClass, bellID, percent: int16, name: TAtom): bool{.
-    libx11c, importc: "XkbDeviceBell".}
-proc XkbForceDeviceBell*(dpy: PDisplay, 
-                         deviceSpec, bellClass, bellID, percent: int16): bool{.
-    libx11c, importc: "XkbForceDeviceBell".}
-proc XkbDeviceBellEvent*(dpy: PDisplay, win: TWindow, 
-                         deviceSpec, bellClass, bellID, percent: int16, 
-                         name: TAtom): bool{.libx11c, 
-    importc: "XkbDeviceBellEvent".}
-proc XkbBell*(dpy: PDisplay, win: TWindow, percent: int16, name: TAtom): bool{.
-    libx11c, importc: "XkbBell".}
-proc XkbForceBell*(dpy: PDisplay, percent: int16): bool{.libx11c, 
-    importc: "XkbForceBell".}
-proc XkbBellEvent*(dpy: PDisplay, win: TWindow, percent: int16, name: TAtom): bool{.
-    libx11c, importc: "XkbBellEvent".}
-proc XkbSelectEvents*(dpy: PDisplay, deviceID, affect, values: int16): bool{.
-    libx11c, importc: "XkbSelectEvents".}
-proc XkbSelectEventDetails*(dpy: PDisplay, deviceID, eventType: int16, 
-                            affect, details: int32): bool{.libx11c, importc: "XkbSelectEventDetails".}
-proc XkbNoteMapChanges*(old: PXkbMapChangesPtr, new: PXkbMapNotifyEvent, 
-                        wanted: int16){.libx11c, 
-                                        importc: "XkbNoteMapChanges".}
-proc XkbNoteNameChanges*(old: PXkbNameChangesPtr, new: PXkbNamesNotifyEvent, 
-                         wanted: int16){.libx11c, 
-    importc: "XkbNoteNameChanges".}
-proc XkbGetIndicatorState*(dpy: PDisplay, deviceSpec: int16, pStateRtrn: PWord): TStatus{.
-    libx11c, importc: "XkbGetIndicatorState".}
-proc XkbGetDeviceIndicatorState*(dpy: PDisplay, 
-                                 deviceSpec, ledClass, ledID: int16, 
-                                 pStateRtrn: PWord): TStatus{.libx11c, importc: "XkbGetDeviceIndicatorState".}
-proc XkbGetIndicatorMap*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetIndicatorMap".}
-proc XkbSetIndicatorMap*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): bool{.
-    libx11c, importc: "XkbSetIndicatorMap".}
-proc XkbNoteIndicatorMapChanges*(o, n: PXkbIndicatorChangesPtr, w: int16)
-proc XkbNoteIndicatorStateChanges*(o, n: PXkbIndicatorChangesPtr, w: int16)
-proc XkbGetIndicatorMapChanges*(d: PDisplay, x: PXkbDescPtr, 
-                                c: PXkbIndicatorChangesPtr): TStatus
-proc XkbChangeIndicatorMaps*(d: PDisplay, x: PXkbDescPtr, 
-                             c: PXkbIndicatorChangesPtr): bool
-proc XkbGetNamedIndicator*(dpy: PDisplay, name: TAtom, pNdxRtrn: ptr int16, 
-                           pStateRtrn: ptr bool, pMapRtrn: PXkbIndicatorMapPtr, 
-                           pRealRtrn: ptr bool): bool{.libx11c, 
-    importc: "XkbGetNamedIndicator".}
-proc XkbGetNamedDeviceIndicator*(dpy: PDisplay, 
-                                 deviceSpec, ledClass, ledID: int16, 
-                                 name: TAtom, pNdxRtrn: ptr int16, 
-                                 pStateRtrn: ptr bool, 
-                                 pMapRtrn: PXkbIndicatorMapPtr, 
-                                 pRealRtrn: ptr bool): bool{.libx11c, importc: "XkbGetNamedDeviceIndicator".}
-proc XkbSetNamedIndicator*(dpy: PDisplay, name: TAtom, 
-                           changeState, state, createNewMap: bool, 
-                           pMap: PXkbIndicatorMapPtr): bool{.libx11c, importc: "XkbSetNamedIndicator".}
-proc XkbSetNamedDeviceIndicator*(dpy: PDisplay, 
-                                 deviceSpec, ledClass, ledID: int16, 
-                                 name: TAtom, 
-                                 changeState, state, createNewMap: bool, 
-                                 pMap: PXkbIndicatorMapPtr): bool{.libx11c, importc: "XkbSetNamedDeviceIndicator".}
-proc XkbLockModifiers*(dpy: PDisplay, deviceSpec, affect, values: int16): bool{.
-    libx11c, importc: "XkbLockModifiers".}
-proc XkbLatchModifiers*(dpy: PDisplay, deviceSpec, affect, values: int16): bool{.
-    libx11c, importc: "XkbLatchModifiers".}
-proc XkbLockGroup*(dpy: PDisplay, deviceSpec, group: int16): bool{.libx11c, importc: "XkbLockGroup".}
-proc XkbLatchGroup*(dpy: PDisplay, deviceSpec, group: int16): bool{.libx11c, importc: "XkbLatchGroup".}
-proc XkbSetServerInternalMods*(dpy: PDisplay, deviceSpec, affectReal, 
-    realValues, affectVirtual, virtualValues: int16): bool{.libx11c, importc: "XkbSetServerInternalMods".}
-proc XkbSetIgnoreLockMods*(dpy: PDisplay, deviceSpec, affectReal, realValues, 
-    affectVirtual, virtualValues: int16): bool{.libx11c, 
-    importc: "XkbSetIgnoreLockMods".}
-proc XkbVirtualModsToReal*(dpy: PDisplay, virtual_mask: int16, mask_rtrn: PWord): bool{.
-    libx11c, importc: "XkbVirtualModsToReal".}
-proc XkbComputeEffectiveMap*(xkb: PXkbDescPtr, theType: PXkbKeyTypePtr, 
-                             map_rtrn: PByte): bool{.libx11c, 
-    importc: "XkbComputeEffectiveMap".}
-proc XkbInitCanonicalKeyTypes*(xkb: PXkbDescPtr, which: int16, keypadVMod: int16): TStatus{.
-    libx11c, importc: "XkbInitCanonicalKeyTypes".}
-proc XkbAllocKeyboard*(): PXkbDescPtr{.libx11c, 
-                                       importc: "XkbAllocKeyboard".}
-proc XkbFreeKeyboard*(xkb: PXkbDescPtr, which: int16, freeDesc: bool){.libx11c, importc: "XkbFreeKeyboard".}
-proc XkbAllocClientMap*(xkb: PXkbDescPtr, which, nTypes: int16): TStatus{.libx11c, importc: "XkbAllocClientMap".}
-proc XkbAllocServerMap*(xkb: PXkbDescPtr, which, nActions: int16): TStatus{.
-    libx11c, importc: "XkbAllocServerMap".}
-proc XkbFreeClientMap*(xkb: PXkbDescPtr, what: int16, freeMap: bool){.libx11c, importc: "XkbFreeClientMap".}
-proc XkbFreeServerMap*(xkb: PXkbDescPtr, what: int16, freeMap: bool){.libx11c, importc: "XkbFreeServerMap".}
-proc XkbAddKeyType*(xkb: PXkbDescPtr, name: TAtom, map_count: int16, 
-                    want_preserve: bool, num_lvls: int16): PXkbKeyTypePtr{.
-    libx11c, importc: "XkbAddKeyType".}
-proc XkbAllocIndicatorMaps*(xkb: PXkbDescPtr): TStatus{.libx11c, 
-    importc: "XkbAllocIndicatorMaps".}
-proc XkbFreeIndicatorMaps*(xkb: PXkbDescPtr){.libx11c, 
-    importc: "XkbFreeIndicatorMaps".}
-proc XkbGetMap*(dpy: PDisplay, which, deviceSpec: int16): PXkbDescPtr{.libx11c, importc: "XkbGetMap".}
-proc XkbGetUpdatedMap*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetUpdatedMap".}
-proc XkbGetMapChanges*(dpy: PDisplay, xkb: PXkbDescPtr, 
-                       changes: PXkbMapChangesPtr): TStatus{.libx11c, importc: "XkbGetMapChanges".}
-proc XkbRefreshKeyboardMapping*(event: PXkbMapNotifyEvent): TStatus{.libx11c, importc: "XkbRefreshKeyboardMapping".}
-proc XkbGetKeyTypes*(dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetKeyTypes".}
-proc XkbGetKeySyms*(dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetKeySyms".}
-proc XkbGetKeyActions*(dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetKeyActions".}
-proc XkbGetKeyBehaviors*(dpy: PDisplay, firstKey, nKeys: int16, 
-                         desc: PXkbDescPtr): TStatus{.libx11c, 
-    importc: "XkbGetKeyBehaviors".}
-proc XkbGetVirtualMods*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetVirtualMods".}
-proc XkbGetKeyExplicitComponents*(dpy: PDisplay, firstKey, nKeys: int16, 
-                                  desc: PXkbDescPtr): TStatus{.libx11c, importc: "XkbGetKeyExplicitComponents".}
-proc XkbGetKeyModifierMap*(dpy: PDisplay, firstKey, nKeys: int16, 
-                           desc: PXkbDescPtr): TStatus{.libx11c, 
-    importc: "XkbGetKeyModifierMap".}
-proc XkbAllocControls*(xkb: PXkbDescPtr, which: int16): TStatus{.libx11c, importc: "XkbAllocControls".}
-proc XkbFreeControls*(xkb: PXkbDescPtr, which: int16, freeMap: bool){.libx11c, importc: "XkbFreeControls".}
-proc XkbGetControls*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetControls".}
-proc XkbSetControls*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): bool{.
-    libx11c, importc: "XkbSetControls".}
-proc XkbNoteControlsChanges*(old: PXkbControlsChangesPtr, 
-                             new: PXkbControlsNotifyEvent, wanted: int16){.
-    libx11c, importc: "XkbNoteControlsChanges".}
-proc XkbGetControlsChanges*(d: PDisplay, x: PXkbDescPtr, 
-                            c: PXkbControlsChangesPtr): TStatus
-proc XkbChangeControls*(d: PDisplay, x: PXkbDescPtr, c: PXkbControlsChangesPtr): bool
-proc XkbAllocCompatMap*(xkb: PXkbDescPtr, which, nInterpret: int16): TStatus{.
-    libx11c, importc: "XkbAllocCompatMap".}
-proc XkbFreeCompatMap*(xkib: PXkbDescPtr, which: int16, freeMap: bool){.libx11c, importc: "XkbFreeCompatMap".}
-proc XkbGetCompatMap*(dpy: PDisplay, which: int16, xkb: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetCompatMap".}
-proc XkbSetCompatMap*(dpy: PDisplay, which: int16, xkb: PXkbDescPtr, 
-                      updateActions: bool): bool{.libx11c, 
-    importc: "XkbSetCompatMap".}
-proc XkbAddSymInterpret*(xkb: PXkbDescPtr, si: PXkbSymInterpretPtr, 
-                         updateMap: bool, changes: PXkbChangesPtr): PXkbSymInterpretPtr{.
-    libx11c, importc: "XkbAddSymInterpret".}
-proc XkbAllocNames*(xkb: PXkbDescPtr, which: int16, 
-                    nTotalRG, nTotalAliases: int16): TStatus{.libx11c, importc: "XkbAllocNames".}
-proc XkbGetNames*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetNames".}
-proc XkbSetNames*(dpy: PDisplay, which, firstType, nTypes: int16, 
-                  desc: PXkbDescPtr): bool{.libx11c, 
-    importc: "XkbSetNames".}
-proc XkbChangeNames*(dpy: PDisplay, xkb: PXkbDescPtr, 
-                     changes: PXkbNameChangesPtr): bool{.libx11c, 
-    importc: "XkbChangeNames".}
-proc XkbFreeNames*(xkb: PXkbDescPtr, which: int16, freeMap: bool){.libx11c, importc: "XkbFreeNames".}
-proc XkbGetState*(dpy: PDisplay, deviceSpec: int16, rtrnState: PXkbStatePtr): TStatus{.
-    libx11c, importc: "XkbGetState".}
-proc XkbSetMap*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): bool{.libx11c, importc: "XkbSetMap".}
-proc XkbChangeMap*(dpy: PDisplay, desc: PXkbDescPtr, changes: PXkbMapChangesPtr): bool{.
-    libx11c, importc: "XkbChangeMap".}
-proc XkbSetDetectableAutoRepeat*(dpy: PDisplay, detectable: bool, 
-                                 supported: ptr bool): bool{.libx11c, importc: "XkbSetDetectableAutoRepeat".}
-proc XkbGetDetectableAutoRepeat*(dpy: PDisplay, supported: ptr bool): bool{.
-    libx11c, importc: "XkbGetDetectableAutoRepeat".}
-proc XkbSetAutoResetControls*(dpy: PDisplay, changes: int16, 
-                              auto_ctrls, auto_values: PWord): bool{.libx11c, importc: "XkbSetAutoResetControls".}
-proc XkbGetAutoResetControls*(dpy: PDisplay, auto_ctrls, auto_ctrl_values: PWord): bool{.
-    libx11c, importc: "XkbGetAutoResetControls".}
-proc XkbSetPerClientControls*(dpy: PDisplay, change: int16, values: PWord): bool{.
-    libx11c, importc: "XkbSetPerClientControls".}
-proc XkbGetPerClientControls*(dpy: PDisplay, ctrls: PWord): bool{.libx11c, importc: "XkbGetPerClientControls".}
-proc XkbCopyKeyType*(`from`, into: PXkbKeyTypePtr): TStatus{.libx11c, importc: "XkbCopyKeyType".}
-proc XkbCopyKeyTypes*(`from`, into: PXkbKeyTypePtr, num_types: int16): TStatus{.
-    libx11c, importc: "XkbCopyKeyTypes".}
-proc XkbResizeKeyType*(xkb: PXkbDescPtr, type_ndx, map_count: int16, 
-                       want_preserve: bool, new_num_lvls: int16): TStatus{.
-    libx11c, importc: "XkbResizeKeyType".}
-proc XkbResizeKeySyms*(desc: PXkbDescPtr, forKey, symsNeeded: int16): PKeySym{.
-    libx11c, importc: "XkbResizeKeySyms".}
-proc XkbResizeKeyActions*(desc: PXkbDescPtr, forKey, actsNeeded: int16): PXkbAction{.
-    libx11c, importc: "XkbResizeKeyActions".}
-proc XkbChangeTypesOfKey*(xkb: PXkbDescPtr, key, num_groups: int16, 
-                          groups: int16, newTypes: ptr int16, 
-                          pChanges: PXkbMapChangesPtr): TStatus{.libx11c, importc: "XkbChangeTypesOfKey".}
-    
-proc XkbListComponents*(dpy: PDisplay, deviceSpec: int16, 
-                        ptrns: PXkbComponentNamesPtr, max_inout: ptr int16): PXkbComponentListPtr{.
-    libx11c, importc: "XkbListComponents".}
-proc XkbFreeComponentList*(list: PXkbComponentListPtr){.libx11c, 
-    importc: "XkbFreeComponentList".}
-proc XkbGetKeyboard*(dpy: PDisplay, which, deviceSpec: int16): PXkbDescPtr{.
-    libx11c, importc: "XkbGetKeyboard".}
-proc XkbGetKeyboardByName*(dpy: PDisplay, deviceSpec: int16, 
-                           names: PXkbComponentNamesPtr, want, need: int16, 
-                           load: bool): PXkbDescPtr{.libx11c, 
-    importc: "XkbGetKeyboardByName".}
-    
-proc XkbKeyTypesForCoreSymbols*(xkb: PXkbDescPtr, 
-                                map_width: int16,  # keyboard device
-                                core_syms: PKeySym,  # always mapWidth symbols
-                                protected: int16,  # explicit key types
-                                types_inout: ptr int16,  # always four type indices
-                                xkb_syms_rtrn: PKeySym): int16{.libx11c, importc: "XkbKeyTypesForCoreSymbols".}
-  # must have enough space
-proc XkbApplyCompatMapToKey*(xkb: PXkbDescPtr,  
-                             key: TKeyCode,  # key to be updated
-                             changes: PXkbChangesPtr): bool{.libx11c, importc: "XkbApplyCompatMapToKey".}
-  # resulting changes to map
-proc XkbUpdateMapFromCore*(xkb: PXkbDescPtr,  
-                           first_key: TKeyCode,  # first changed key
-                           num_keys,
-                           map_width: int16, 
-                           core_keysyms: PKeySym,  # symbols `from` core keymap
-                           changes: PXkbChangesPtr): bool{.libx11c, importc: "XkbUpdateMapFromCore".}
-
-proc XkbAddDeviceLedInfo*(devi: PXkbDeviceInfoPtr, ledClass, ledId: int16): PXkbDeviceLedInfoPtr{.
-    libx11c, importc: "XkbAddDeviceLedInfo".}
-proc XkbResizeDeviceButtonActions*(devi: PXkbDeviceInfoPtr, newTotal: int16): TStatus{.
-    libx11c, importc: "XkbResizeDeviceButtonActions".}
-proc XkbAllocDeviceInfo*(deviceSpec, nButtons, szLeds: int16): PXkbDeviceInfoPtr{.
-    libx11c, importc: "XkbAllocDeviceInfo".}
-proc XkbFreeDeviceInfo*(devi: PXkbDeviceInfoPtr, which: int16, freeDevI: bool){.
-    libx11c, importc: "XkbFreeDeviceInfo".}
-proc XkbNoteDeviceChanges*(old: PXkbDeviceChangesPtr, 
-                           new: PXkbExtensionDeviceNotifyEvent, wanted: int16){.
-    libx11c, importc: "XkbNoteDeviceChanges".}
-proc XkbGetDeviceInfo*(dpy: PDisplay, which, deviceSpec, ledClass, ledID: int16): PXkbDeviceInfoPtr{.
-    libx11c, importc: "XkbGetDeviceInfo".}
-proc XkbGetDeviceInfoChanges*(dpy: PDisplay, devi: PXkbDeviceInfoPtr, 
-                              changes: PXkbDeviceChangesPtr): TStatus{.libx11c, importc: "XkbGetDeviceInfoChanges".}
-proc XkbGetDeviceButtonActions*(dpy: PDisplay, devi: PXkbDeviceInfoPtr, 
-                                all: bool, first, nBtns: int16): TStatus{.libx11c, importc: "XkbGetDeviceButtonActions".}
-proc XkbGetDeviceLedInfo*(dpy: PDisplay, devi: PXkbDeviceInfoPtr, 
-                          ledClass, ledId, which: int16): TStatus{.libx11c, importc: "XkbGetDeviceLedInfo".}
-proc XkbSetDeviceInfo*(dpy: PDisplay, which: int16, devi: PXkbDeviceInfoPtr): bool{.
-    libx11c, importc: "XkbSetDeviceInfo".}
-proc XkbChangeDeviceInfo*(dpy: PDisplay, desc: PXkbDeviceInfoPtr, 
-                          changes: PXkbDeviceChangesPtr): bool{.libx11c, importc: "XkbChangeDeviceInfo".}
-proc XkbSetDeviceLedInfo*(dpy: PDisplay, devi: PXkbDeviceInfoPtr, 
-                          ledClass, ledID, which: int16): bool{.libx11c, importc: "XkbSetDeviceLedInfo".}
-proc XkbSetDeviceButtonActions*(dpy: PDisplay, devi: PXkbDeviceInfoPtr, 
-                                first, nBtns: int16): bool{.libx11c, importc: "XkbSetDeviceButtonActions".}
-
-proc XkbToControl*(c: int8): int8{.libx11c, 
-                                   importc: "XkbToControl".}
-
-proc XkbSetDebuggingFlags*(dpy: PDisplay, mask, flags: int16, msg: cstring, 
-                           ctrls_mask, ctrls, rtrn_flags, rtrn_ctrls: int16): bool{.
-    libx11c, importc: "XkbSetDebuggingFlags".}
-proc XkbApplyVirtualModChanges*(xkb: PXkbDescPtr, changed: int16, 
-                                changes: PXkbChangesPtr): bool{.libx11c, importc: "XkbApplyVirtualModChanges".}
-
-# implementation
-
-proc XkbNoteIndicatorMapChanges(o, n: PXkbIndicatorChangesPtr, w: int16) = 
-  ##define XkbNoteIndicatorMapChanges(o,n,w) ((o)->map_changes|=((n)->map_changes&(w)))
-  o.map_changes = o.map_changes or (n.map_changes and w)
-
-proc XkbNoteIndicatorStateChanges(o, n: PXkbIndicatorChangesPtr, w: int16) = 
-  ##define XkbNoteIndicatorStateChanges(o,n,w) ((o)->state_changes|=((n)->state_changes&(w)))
-  o.state_changes = o.state_changes or (n.state_changes and (w))
-
-proc XkbGetIndicatorMapChanges(d: PDisplay, x: PXkbDescPtr, 
-                               c: PXkbIndicatorChangesPtr): TStatus = 
-  ##define XkbGetIndicatorMapChanges(d,x,c) (XkbGetIndicatorMap((d),(c)->map_changes,x)
-  Result = XkbGetIndicatorMap(d, c.map_changes, x)
-
-proc XkbChangeIndicatorMaps(d: PDisplay, x: PXkbDescPtr, 
-                            c: PXkbIndicatorChangesPtr): bool = 
-  ##define XkbChangeIndicatorMaps(d,x,c) (XkbSetIndicatorMap((d),(c)->map_changes,x))
-  Result = XkbSetIndicatorMap(d, c.map_changes, x)
-
-proc XkbGetControlsChanges(d: PDisplay, x: PXkbDescPtr, 
-                           c: PXkbControlsChangesPtr): TStatus = 
-  ##define XkbGetControlsChanges(d,x,c) XkbGetControls(d,(c)->changed_ctrls,x)
-  Result = XkbGetControls(d, c.changed_ctrls, x)
-
-proc XkbChangeControls(d: PDisplay, x: PXkbDescPtr, c: PXkbControlsChangesPtr): bool = 
-  ##define XkbChangeControls(d,x,c) XkbSetControls(d,(c)->changed_ctrls,x)
-  Result = XkbSetControls(d, c.changed_ctrls, x)
diff --git a/lib/wrappers/x11/xlib.nim b/lib/wrappers/x11/xlib.nim
deleted file mode 100644
index 5ccacdd45..000000000
--- a/lib/wrappers/x11/xlib.nim
+++ /dev/null
@@ -1,2027 +0,0 @@
-
-import 
-  x
-
-include "x11pragma.nim"
-
-type
-  cunsigned* = cint
-  Pcint* = ptr cint
-  PPcint* = ptr Pcint
-  PPcuchar* = ptr ptr cuchar
-  PWideChar* = ptr int16
-  PPChar* = ptr cstring
-  PPPChar* = ptr ptr cstring
-  Pculong* = ptr culong
-  Pcuchar* = cstring
-  Pcuint* = ptr cuint
-  Pcushort* = ptr uint16
-#  Automatically converted by H2Pas 0.99.15 from xlib.h
-#  The following command line parameters were used:
-#    -p
-#    -T
-#    -S
-#    -d
-#    -c
-#    xlib.h
-
-const 
-  XlibSpecificationRelease* = 6
-
-type 
-  PXPointer* = ptr TXPointer
-  TXPointer* = ptr char
-  PBool* = ptr TBool
-  TBool* = int           #cint?
-  PStatus* = ptr TStatus
-  TStatus* = cint
-
-const 
-  QueuedAlready* = 0
-  QueuedAfterReading* = 1
-  QueuedAfterFlush* = 2
-
-type 
-  PPXExtData* = ptr PXExtData
-  PXExtData* = ptr TXExtData
-  TXExtData*{.final.} = object 
-    number*: cint
-    next*: PXExtData
-    free_private*: proc (extension: PXExtData): cint{.cdecl.}
-    private_data*: TXPointer
-
-  PXExtCodes* = ptr TXExtCodes
-  TXExtCodes*{.final.} = object 
-    extension*: cint
-    major_opcode*: cint
-    first_event*: cint
-    first_error*: cint
-
-  PXPixmapFormatValues* = ptr TXPixmapFormatValues
-  TXPixmapFormatValues*{.final.} = object 
-    depth*: cint
-    bits_per_pixel*: cint
-    scanline_pad*: cint
-
-  PXGCValues* = ptr TXGCValues
-  TXGCValues*{.final.} = object 
-    function*: cint
-    plane_mask*: culong
-    foreground*: culong
-    background*: culong
-    line_width*: cint
-    line_style*: cint
-    cap_style*: cint
-    join_style*: cint
-    fill_style*: cint
-    fill_rule*: cint
-    arc_mode*: cint
-    tile*: TPixmap
-    stipple*: TPixmap
-    ts_x_origin*: cint
-    ts_y_origin*: cint
-    font*: TFont
-    subwindow_mode*: cint
-    graphics_exposures*: TBool
-    clip_x_origin*: cint
-    clip_y_origin*: cint
-    clip_mask*: TPixmap
-    dash_offset*: cint
-    dashes*: cchar
-
-  PXGC* = ptr TXGC
-  TXGC*{.final.} = object 
-  TGC* = PXGC
-  PGC* = ptr TGC
-  PVisual* = ptr TVisual
-  TVisual*{.final.} = object 
-    ext_data*: PXExtData
-    visualid*: TVisualID
-    c_class*: cint
-    red_mask*, green_mask*, blue_mask*: culong
-    bits_per_rgb*: cint
-    map_entries*: cint
-
-  PDepth* = ptr TDepth
-  TDepth*{.final.} = object 
-    depth*: cint
-    nvisuals*: cint
-    visuals*: PVisual
-
-  PXDisplay* = ptr TXDisplay
-  TXDisplay*{.final.} = object 
-  PScreen* = ptr TScreen
-  TScreen*{.final.} = object 
-    ext_data*: PXExtData
-    display*: PXDisplay
-    root*: TWindow
-    width*, height*: cint
-    mwidth*, mheight*: cint
-    ndepths*: cint
-    depths*: PDepth
-    root_depth*: cint
-    root_visual*: PVisual
-    default_gc*: TGC
-    cmap*: TColormap
-    white_pixel*: culong
-    black_pixel*: culong
-    max_maps*, min_maps*: cint
-    backing_store*: cint
-    save_unders*: TBool
-    root_input_mask*: clong
-
-  PScreenFormat* = ptr TScreenFormat
-  TScreenFormat*{.final.} = object 
-    ext_data*: PXExtData
-    depth*: cint
-    bits_per_pixel*: cint
-    scanline_pad*: cint
-
-  PXSetWindowAttributes* = ptr TXSetWindowAttributes
-  TXSetWindowAttributes*{.final.} = object 
-    background_pixmap*: TPixmap
-    background_pixel*: culong
-    border_pixmap*: TPixmap
-    border_pixel*: culong
-    bit_gravity*: cint
-    win_gravity*: cint
-    backing_store*: cint
-    backing_planes*: culong
-    backing_pixel*: culong
-    save_under*: TBool
-    event_mask*: clong
-    do_not_propagate_mask*: clong
-    override_redirect*: TBool
-    colormap*: TColormap
-    cursor*: TCursor
-
-  PXWindowAttributes* = ptr TXWindowAttributes
-  TXWindowAttributes*{.final.} = object 
-    x*, y*: cint
-    width*, height*: cint
-    border_width*: cint
-    depth*: cint
-    visual*: PVisual
-    root*: TWindow
-    c_class*: cint
-    bit_gravity*: cint
-    win_gravity*: cint
-    backing_store*: cint
-    backing_planes*: culong
-    backing_pixel*: culong
-    save_under*: TBool
-    colormap*: TColormap
-    map_installed*: TBool
-    map_state*: cint
-    all_event_masks*: clong
-    your_event_mask*: clong
-    do_not_propagate_mask*: clong
-    override_redirect*: TBool
-    screen*: PScreen
-
-  PXHostAddress* = ptr TXHostAddress
-  TXHostAddress*{.final.} = object 
-    family*: cint
-    len*: cint
-    address*: cstring
-
-  PXServerInterpretedAddress* = ptr TXServerInterpretedAddress
-  TXServerInterpretedAddress*{.final.} = object 
-    typelength*: cint
-    valuelength*: cint
-    theType*: cstring
-    value*: cstring
-
-  PXImage* = ptr TXImage
-  TF*{.final.} = object 
-    create_image*: proc (para1: PXDisplay, para2: PVisual, para3: cuint, 
-                         para4: cint, para5: cint, para6: cstring, para7: cuint, 
-                         para8: cuint, para9: cint, para10: cint): PXImage{.
-        cdecl.}
-    destroy_image*: proc (para1: PXImage): cint{.cdecl.}
-    get_pixel*: proc (para1: PXImage, para2: cint, para3: cint): culong{.cdecl.}
-    put_pixel*: proc (para1: PXImage, para2: cint, para3: cint, para4: culong): cint{.
-        cdecl.}
-    sub_image*: proc (para1: PXImage, para2: cint, para3: cint, para4: cuint, 
-                      para5: cuint): PXImage{.cdecl.}
-    add_pixel*: proc (para1: PXImage, para2: clong): cint{.cdecl.}
-
-  TXImage*{.final.} = object 
-    width*, height*: cint
-    xoffset*: cint
-    format*: cint
-    data*: cstring
-    byte_order*: cint
-    bitmap_unit*: cint
-    bitmap_bit_order*: cint
-    bitmap_pad*: cint
-    depth*: cint
-    bytes_per_line*: cint
-    bits_per_pixel*: cint
-    red_mask*: culong
-    green_mask*: culong
-    blue_mask*: culong
-    obdata*: TXPointer
-    f*: TF
-
-  PXWindowChanges* = ptr TXWindowChanges
-  TXWindowChanges*{.final.} = object 
-    x*, y*: cint
-    width*, height*: cint
-    border_width*: cint
-    sibling*: TWindow
-    stack_mode*: cint
-
-  PXColor* = ptr TXColor
-  TXColor*{.final.} = object 
-    pixel*: culong
-    red*, green*, blue*: cushort
-    flags*: cchar
-    pad*: cchar
-
-  PXSegment* = ptr TXSegment
-  TXSegment*{.final.} = object 
-    x1*, y1*, x2*, y2*: cshort
-
-  PXPoint* = ptr TXPoint
-  TXPoint*{.final.} = object 
-    x*, y*: cshort
-
-  PXRectangle* = ptr TXRectangle
-  TXRectangle*{.final.} = object 
-    x*, y*: cshort
-    width*, height*: cushort
-
-  PXArc* = ptr TXArc
-  TXArc*{.final.} = object 
-    x*, y*: cshort
-    width*, height*: cushort
-    angle1*, angle2*: cshort
-
-  PXKeyboardControl* = ptr TXKeyboardControl
-  TXKeyboardControl*{.final.} = object 
-    key_click_percent*: cint
-    bell_percent*: cint
-    bell_pitch*: cint
-    bell_duration*: cint
-    led*: cint
-    led_mode*: cint
-    key*: cint
-    auto_repeat_mode*: cint
-
-  PXKeyboardState* = ptr TXKeyboardState
-  TXKeyboardState*{.final.} = object 
-    key_click_percent*: cint
-    bell_percent*: cint
-    bell_pitch*, bell_duration*: cuint
-    led_mask*: culong
-    global_auto_repeat*: cint
-    auto_repeats*: array[0..31, cchar]
-
-  PXTimeCoord* = ptr TXTimeCoord
-  TXTimeCoord*{.final.} = object 
-    time*: TTime
-    x*, y*: cshort
-
-  PXModifierKeymap* = ptr TXModifierKeymap
-  TXModifierKeymap*{.final.} = object 
-    max_keypermod*: cint
-    modifiermap*: PKeyCode
-
-  PDisplay* = ptr TDisplay
-  TDisplay* = TXDisplay
-  PXPrivate* = ptr TXPrivate
-  TXPrivate*{.final.} = object 
-  PXrmHashBucketRec* = ptr TXrmHashBucketRec
-  TXrmHashBucketRec*{.final.} = object 
-  PXPrivDisplay* = ptr TXPrivDisplay
-  TXPrivDisplay*{.final.} = object 
-    ext_data*: PXExtData
-    private1*: PXPrivate
-    fd*: cint
-    private2*: cint
-    proto_major_version*: cint
-    proto_minor_version*: cint
-    vendor*: cstring
-    private3*: TXID
-    private4*: TXID
-    private5*: TXID
-    private6*: cint
-    resource_alloc*: proc (para1: PXDisplay): TXID{.cdecl.}
-    byte_order*: cint
-    bitmap_unit*: cint
-    bitmap_pad*: cint
-    bitmap_bit_order*: cint
-    nformats*: cint
-    pixmap_format*: PScreenFormat
-    private8*: cint
-    release*: cint
-    private9*, private10*: PXPrivate
-    qlen*: cint
-    last_request_read*: culong
-    request*: culong
-    private11*: TXPointer
-    private12*: TXPointer
-    private13*: TXPointer
-    private14*: TXPointer
-    max_request_size*: cunsigned
-    db*: PXrmHashBucketRec
-    private15*: proc (para1: PXDisplay): cint{.cdecl.}
-    display_name*: cstring
-    default_screen*: cint
-    nscreens*: cint
-    screens*: PScreen
-    motion_buffer*: culong
-    private16*: culong
-    min_keycode*: cint
-    max_keycode*: cint
-    private17*: TXPointer
-    private18*: TXPointer
-    private19*: cint
-    xdefaults*: cstring
-
-  PXKeyEvent* = ptr TXKeyEvent
-  TXKeyEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    root*: TWindow
-    subwindow*: TWindow
-    time*: TTime
-    x*, y*: cint
-    x_root*, y_root*: cint
-    state*: cuint
-    keycode*: cuint
-    same_screen*: TBool
-
-  PXKeyPressedEvent* = ptr TXKeyPressedEvent
-  TXKeyPressedEvent* = TXKeyEvent
-  PXKeyReleasedEvent* = ptr TXKeyReleasedEvent
-  TXKeyReleasedEvent* = TXKeyEvent
-  PXButtonEvent* = ptr TXButtonEvent
-  TXButtonEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    root*: TWindow
-    subwindow*: TWindow
-    time*: TTime
-    x*, y*: cint
-    x_root*, y_root*: cint
-    state*: cuint
-    button*: cuint
-    same_screen*: TBool
-
-  PXButtonPressedEvent* = ptr TXButtonPressedEvent
-  TXButtonPressedEvent* = TXButtonEvent
-  PXButtonReleasedEvent* = ptr TXButtonReleasedEvent
-  TXButtonReleasedEvent* = TXButtonEvent
-  PXMotionEvent* = ptr TXMotionEvent
-  TXMotionEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    root*: TWindow
-    subwindow*: TWindow
-    time*: TTime
-    x*, y*: cint
-    x_root*, y_root*: cint
-    state*: cuint
-    is_hint*: cchar
-    same_screen*: TBool
-
-  PXPointerMovedEvent* = ptr TXPointerMovedEvent
-  TXPointerMovedEvent* = TXMotionEvent
-  PXCrossingEvent* = ptr TXCrossingEvent
-  TXCrossingEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    root*: TWindow
-    subwindow*: TWindow
-    time*: TTime
-    x*, y*: cint
-    x_root*, y_root*: cint
-    mode*: cint
-    detail*: cint
-    same_screen*: TBool
-    focus*: TBool
-    state*: cuint
-
-  PXEnterWindowEvent* = ptr TXEnterWindowEvent
-  TXEnterWindowEvent* = TXCrossingEvent
-  PXLeaveWindowEvent* = ptr TXLeaveWindowEvent
-  TXLeaveWindowEvent* = TXCrossingEvent
-  PXFocusChangeEvent* = ptr TXFocusChangeEvent
-  TXFocusChangeEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    mode*: cint
-    detail*: cint
-
-  PXFocusInEvent* = ptr TXFocusInEvent
-  TXFocusInEvent* = TXFocusChangeEvent
-  PXFocusOutEvent* = ptr TXFocusOutEvent
-  TXFocusOutEvent* = TXFocusChangeEvent
-  PXKeymapEvent* = ptr TXKeymapEvent
-  TXKeymapEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    key_vector*: array[0..31, cchar]
-
-  PXExposeEvent* = ptr TXExposeEvent
-  TXExposeEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    x*, y*: cint
-    width*, height*: cint
-    count*: cint
-
-  PXGraphicsExposeEvent* = ptr TXGraphicsExposeEvent
-  TXGraphicsExposeEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    drawable*: TDrawable
-    x*, y*: cint
-    width*, height*: cint
-    count*: cint
-    major_code*: cint
-    minor_code*: cint
-
-  PXNoExposeEvent* = ptr TXNoExposeEvent
-  TXNoExposeEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    drawable*: TDrawable
-    major_code*: cint
-    minor_code*: cint
-
-  PXVisibilityEvent* = ptr TXVisibilityEvent
-  TXVisibilityEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    state*: cint
-
-  PXCreateWindowEvent* = ptr TXCreateWindowEvent
-  TXCreateWindowEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    parent*: TWindow
-    window*: TWindow
-    x*, y*: cint
-    width*, height*: cint
-    border_width*: cint
-    override_redirect*: TBool
-
-  PXDestroyWindowEvent* = ptr TXDestroyWindowEvent
-  TXDestroyWindowEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    event*: TWindow
-    window*: TWindow
-
-  PXUnmapEvent* = ptr TXUnmapEvent
-  TXUnmapEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    event*: TWindow
-    window*: TWindow
-    from_configure*: TBool
-
-  PXMapEvent* = ptr TXMapEvent
-  TXMapEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    event*: TWindow
-    window*: TWindow
-    override_redirect*: TBool
-
-  PXMapRequestEvent* = ptr TXMapRequestEvent
-  TXMapRequestEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    parent*: TWindow
-    window*: TWindow
-
-  PXReparentEvent* = ptr TXReparentEvent
-  TXReparentEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    event*: TWindow
-    window*: TWindow
-    parent*: TWindow
-    x*, y*: cint
-    override_redirect*: TBool
-
-  PXConfigureEvent* = ptr TXConfigureEvent
-  TXConfigureEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    event*: TWindow
-    window*: TWindow
-    x*, y*: cint
-    width*, height*: cint
-    border_width*: cint
-    above*: TWindow
-    override_redirect*: TBool
-
-  PXGravityEvent* = ptr TXGravityEvent
-  TXGravityEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    event*: TWindow
-    window*: TWindow
-    x*, y*: cint
-
-  PXResizeRequestEvent* = ptr TXResizeRequestEvent
-  TXResizeRequestEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    width*, height*: cint
-
-  PXConfigureRequestEvent* = ptr TXConfigureRequestEvent
-  TXConfigureRequestEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    parent*: TWindow
-    window*: TWindow
-    x*, y*: cint
-    width*, height*: cint
-    border_width*: cint
-    above*: TWindow
-    detail*: cint
-    value_mask*: culong
-
-  PXCirculateEvent* = ptr TXCirculateEvent
-  TXCirculateEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    event*: TWindow
-    window*: TWindow
-    place*: cint
-
-  PXCirculateRequestEvent* = ptr TXCirculateRequestEvent
-  TXCirculateRequestEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    parent*: TWindow
-    window*: TWindow
-    place*: cint
-
-  PXPropertyEvent* = ptr TXPropertyEvent
-  TXPropertyEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    atom*: TAtom
-    time*: TTime
-    state*: cint
-
-  PXSelectionClearEvent* = ptr TXSelectionClearEvent
-  TXSelectionClearEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    selection*: TAtom
-    time*: TTime
-
-  PXSelectionRequestEvent* = ptr TXSelectionRequestEvent
-  TXSelectionRequestEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    owner*: TWindow
-    requestor*: TWindow
-    selection*: TAtom
-    target*: TAtom
-    property*: TAtom
-    time*: TTime
-
-  PXSelectionEvent* = ptr TXSelectionEvent
-  TXSelectionEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    requestor*: TWindow
-    selection*: TAtom
-    target*: TAtom
-    property*: TAtom
-    time*: TTime
-
-  PXColormapEvent* = ptr TXColormapEvent
-  TXColormapEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    colormap*: TColormap
-    c_new*: TBool
-    state*: cint
-
-  PXClientMessageEvent* = ptr TXClientMessageEvent
-  TXClientMessageEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    message_type*: TAtom
-    format*: cint
-    data*: array[0..4, clong] # using clong here to be 32/64-bit dependent
-        # as the original C union
-
-  PXMappingEvent* = ptr TXMappingEvent
-  TXMappingEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    request*: cint
-    first_keycode*: cint
-    count*: cint
-
-  PXErrorEvent* = ptr TXErrorEvent
-  TXErrorEvent*{.final.} = object 
-    theType*: cint
-    display*: PDisplay
-    resourceid*: TXID
-    serial*: culong
-    error_code*: cuchar
-    request_code*: cuchar
-    minor_code*: cuchar
-
-  PXAnyEvent* = ptr TXAnyEvent
-  TXAnyEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-
-  PXEvent* = ptr TXEvent
-  TXEvent*{.final.} = object 
-    theType*: cint
-    pad*: array[0..22, clong] #
-                              #       case longint of
-                              #          0 : ( theType : cint );
-                              #          1 : ( xany : TXAnyEvent );
-                              #          2 : ( xkey : TXKeyEvent );
-                              #          3 : ( xbutton : TXButtonEvent );
-                              #          4 : ( xmotion : TXMotionEvent );
-                              #          5 : ( xcrossing : TXCrossingEvent );
-                              #          6 : ( xfocus : TXFocusChangeEvent );
-                              #          7 : ( xexpose : TXExposeEvent );
-                              #          8 : ( xgraphicsexpose : TXGraphicsExposeEvent );
-                              #          9 : ( xnoexpose : TXNoExposeEvent );
-                              #          10 : ( xvisibility : TXVisibilityEvent );
-                              #          11 : ( xcreatewindow : TXCreateWindowEvent );
-                              #          12 : ( xdestroywindow : TXDestroyWindowEvent );
-                              #          13 : ( xunmap : TXUnmapEvent );
-                              #          14 : ( xmap : TXMapEvent );
-                              #          15 : ( xmaprequest : TXMapRequestEvent );
-                              #          16 : ( xreparent : TXReparentEvent );
-                              #          17 : ( xconfigure : TXConfigureEvent );
-                              #          18 : ( xgravity : TXGravityEvent );
-                              #          19 : ( xresizerequest : TXResizeRequestEvent );
-                              #          20 : ( xconfigurerequest : TXConfigureRequestEvent );
-                              #          21 : ( xcirculate : TXCirculateEvent );
-                              #          22 : ( xcirculaterequest : TXCirculateRequestEvent );
-                              #          23 : ( xproperty : TXPropertyEvent );
-                              #          24 : ( xselectionclear : TXSelectionClearEvent );
-                              #          25 : ( xselectionrequest : TXSelectionRequestEvent );
-                              #          26 : ( xselection : TXSelectionEvent );
-                              #          27 : ( xcolormap : TXColormapEvent );
-                              #          28 : ( xclient : TXClientMessageEvent );
-                              #          29 : ( xmapping : TXMappingEvent );
-                              #          30 : ( xerror : TXErrorEvent );
-                              #          31 : ( xkeymap : TXKeymapEvent );
-                              #          32 : ( pad : array[0..23] of clong );
-                              #          
-  
-
-proc xclient*(e: PXEvent): PXClientMessageEvent =
-    ## Treats XEvent as XClientMessageEvent
-    return cast[PXClientMessageEvent](e)
-
-proc xclient*(e: var TXEvent): PXClientMessageEvent =
-    return xclient(PXEvent(e.addr))
-
-type 
-  PXCharStruct* = ptr TXCharStruct
-  TXCharStruct*{.final.} = object 
-    lbearing*: cshort
-    rbearing*: cshort
-    width*: cshort
-    ascent*: cshort
-    descent*: cshort
-    attributes*: cushort
-
-  PXFontProp* = ptr TXFontProp
-  TXFontProp*{.final.} = object 
-    name*: TAtom
-    card32*: culong
-
-  PPPXFontStruct* = ptr PPXFontStruct
-  PPXFontStruct* = ptr PXFontStruct
-  PXFontStruct* = ptr TXFontStruct
-  TXFontStruct*{.final.} = object 
-    ext_data*: PXExtData
-    fid*: TFont
-    direction*: cunsigned
-    min_char_or_byte2*: cunsigned
-    max_char_or_byte2*: cunsigned
-    min_byte1*: cunsigned
-    max_byte1*: cunsigned
-    all_chars_exist*: TBool
-    default_char*: cunsigned
-    n_properties*: cint
-    properties*: PXFontProp
-    min_bounds*: TXCharStruct
-    max_bounds*: TXCharStruct
-    per_char*: PXCharStruct
-    ascent*: cint
-    descent*: cint
-
-  PXTextItem* = ptr TXTextItem
-  TXTextItem*{.final.} = object 
-    chars*: cstring
-    nchars*: cint
-    delta*: cint
-    font*: TFont
-
-  PXChar2b* = ptr TXChar2b
-  TXChar2b*{.final.} = object 
-    byte1*: cuchar
-    byte2*: cuchar
-
-  PXTextItem16* = ptr TXTextItem16
-  TXTextItem16*{.final.} = object 
-    chars*: PXChar2b
-    nchars*: cint
-    delta*: cint
-    font*: TFont
-
-  PXEDataObject* = ptr TXEDataObject
-  TXEDataObject*{.final.} = object 
-    display*: PDisplay        #case longint of
-                              #          0 : ( display : PDisplay );
-                              #          1 : ( gc : TGC );
-                              #          2 : ( visual : PVisual );
-                              #          3 : ( screen : PScreen );
-                              #          4 : ( pixmap_format : PScreenFormat );
-                              #          5 : ( font : PXFontStruct );
-  
-  PXFontSetExtents* = ptr TXFontSetExtents
-  TXFontSetExtents*{.final.} = object 
-    max_ink_extent*: TXRectangle
-    max_logical_extent*: TXRectangle
-
-  PXOM* = ptr TXOM
-  TXOM*{.final.} = object 
-  PXOC* = ptr TXOC
-  TXOC*{.final.} = object 
-  TXFontSet* = PXOC
-  PXFontSet* = ptr TXFontSet
-  PXmbTextItem* = ptr TXmbTextItem
-  TXmbTextItem*{.final.} = object 
-    chars*: cstring
-    nchars*: cint
-    delta*: cint
-    font_set*: TXFontSet
-
-  PXwcTextItem* = ptr TXwcTextItem
-  TXwcTextItem*{.final.} = object 
-    chars*: PWideChar         #wchar_t*
-    nchars*: cint
-    delta*: cint
-    font_set*: TXFontSet
-
-
-const 
-  XNRequiredCharSet* = "requiredCharSet"
-  XNQueryOrientation* = "queryOrientation"
-  XNBaseFontName* = "baseFontName"
-  XNOMAutomatic* = "omAutomatic"
-  XNMissingCharSet* = "missingCharSet"
-  XNDefaultString* = "defaultString"
-  XNOrientation* = "orientation"
-  XNDirectionalDependentDrawing* = "directionalDependentDrawing"
-  XNContextualDrawing* = "contextualDrawing"
-  XNFontInfo* = "fontInfo"
-
-type 
-  PXOMCharSetList* = ptr TXOMCharSetList
-  TXOMCharSetList*{.final.} = object 
-    charset_count*: cint
-    charset_list*: PPChar
-
-  PXOrientation* = ptr TXOrientation
-  TXOrientation* = enum 
-    XOMOrientation_LTR_TTB, XOMOrientation_RTL_TTB, XOMOrientation_TTB_LTR, 
-    XOMOrientation_TTB_RTL, XOMOrientation_Context
-  PXOMOrientation* = ptr TXOMOrientation
-  TXOMOrientation*{.final.} = object 
-    num_orientation*: cint
-    orientation*: PXOrientation
-
-  PXOMFontInfo* = ptr TXOMFontInfo
-  TXOMFontInfo*{.final.} = object 
-    num_font*: cint
-    font_struct_list*: ptr PXFontStruct
-    font_name_list*: PPChar
-
-  PXIM* = ptr TXIM
-  TXIM*{.final.} = object 
-  PXIC* = ptr TXIC
-  TXIC*{.final.} = object 
-  TXIMProc* = proc (para1: TXIM, para2: TXPointer, para3: TXPointer){.cdecl.}
-  TXICProc* = proc (para1: TXIC, para2: TXPointer, para3: TXPointer): TBool{.
-      cdecl.}
-  TXIDProc* = proc (para1: PDisplay, para2: TXPointer, para3: TXPointer){.cdecl.}
-  PXIMStyle* = ptr TXIMStyle
-  TXIMStyle* = culong
-  PXIMStyles* = ptr TXIMStyles
-  TXIMStyles*{.final.} = object 
-    count_styles*: cushort
-    supported_styles*: PXIMStyle
-
-
-const 
-  XIMPreeditArea* = 0x00000001
-  XIMPreeditCallbacks* = 0x00000002
-  XIMPreeditPosition* = 0x00000004
-  XIMPreeditNothing* = 0x00000008
-  XIMPreeditNone* = 0x00000010
-  XIMStatusArea* = 0x00000100
-  XIMStatusCallbacks* = 0x00000200
-  XIMStatusNothing* = 0x00000400
-  XIMStatusNone* = 0x00000800
-  XNVaNestedList* = "XNVaNestedList"
-  XNQueryInputStyle* = "queryInputStyle"
-  XNClientWindow* = "clientWindow"
-  XNInputStyle* = "inputStyle"
-  XNFocusWindow* = "focusWindow"
-  XNResourceName* = "resourceName"
-  XNResourceClass* = "resourceClass"
-  XNGeometryCallback* = "geometryCallback"
-  XNDestroyCallback* = "destroyCallback"
-  XNFilterEvents* = "filterEvents"
-  XNPreeditStartCallback* = "preeditStartCallback"
-  XNPreeditDoneCallback* = "preeditDoneCallback"
-  XNPreeditDrawCallback* = "preeditDrawCallback"
-  XNPreeditCaretCallback* = "preeditCaretCallback"
-  XNPreeditStateNotifyCallback* = "preeditStateNotifyCallback"
-  XNPreeditAttributes* = "preeditAttributes"
-  XNStatusStartCallback* = "statusStartCallback"
-  XNStatusDoneCallback* = "statusDoneCallback"
-  XNStatusDrawCallback* = "statusDrawCallback"
-  XNStatusAttributes* = "statusAttributes"
-  XNArea* = "area"
-  XNAreaNeeded* = "areaNeeded"
-  XNSpotLocation* = "spotLocation"
-  XNColormap* = "colorMap"
-  XNStdColormap* = "stdColorMap"
-  XNForeground* = "foreground"
-  XNBackground* = "background"
-  XNBackgroundPixmap* = "backgroundPixmap"
-  XNFontSet* = "fontSet"
-  XNLineSpace* = "lineSpace"
-  XNCursor* = "cursor"
-  XNQueryIMValuesList* = "queryIMValuesList"
-  XNQueryICValuesList* = "queryICValuesList"
-  XNVisiblePosition* = "visiblePosition"
-  XNR6PreeditCallback* = "r6PreeditCallback"
-  XNStringConversionCallback* = "stringConversionCallback"
-  XNStringConversion* = "stringConversion"
-  XNResetState* = "resetState"
-  XNHotKey* = "hotKey"
-  XNHotKeyState* = "hotKeyState"
-  XNPreeditState* = "preeditState"
-  XNSeparatorofNestedList* = "separatorofNestedList"
-  XBufferOverflow* = - (1)
-  XLookupNone* = 1
-  XLookupChars* = 2
-  XLookupKeySymVal* = 3
-  XLookupBoth* = 4
-
-type 
-  PXVaNestedList* = ptr TXVaNestedList
-  TXVaNestedList* = pointer
-  PXIMCallback* = ptr TXIMCallback
-  TXIMCallback*{.final.} = object 
-    client_data*: TXPointer
-    callback*: TXIMProc
-
-  PXICCallback* = ptr TXICCallback
-  TXICCallback*{.final.} = object 
-    client_data*: TXPointer
-    callback*: TXICProc
-
-  PXIMFeedback* = ptr TXIMFeedback
-  TXIMFeedback* = culong
-
-const 
-  XIMReverse* = 1
-  XIMUnderline* = 1 shl 1
-  XIMHighlight* = 1 shl 2
-  XIMPrimary* = 1 shl 5
-  XIMSecondary* = 1 shl 6
-  XIMTertiary* = 1 shl 7
-  XIMVisibleToForward* = 1 shl 8
-  XIMVisibleToBackword* = 1 shl 9
-  XIMVisibleToCenter* = 1 shl 10
-
-type 
-  PXIMText* = ptr TXIMText
-  TXIMText*{.final.} = object 
-    len*: cushort
-    feedback*: PXIMFeedback
-    encoding_is_wchar*: TBool
-    multi_byte*: cstring
-
-  PXIMPreeditState* = ptr TXIMPreeditState
-  TXIMPreeditState* = culong
-
-const 
-  XIMPreeditUnKnown* = 0
-  XIMPreeditEnable* = 1
-  XIMPreeditDisable* = 1 shl 1
-
-type 
-  PXIMPreeditStateNotifyCallbackStruct* = ptr TXIMPreeditStateNotifyCallbackStruct
-  TXIMPreeditStateNotifyCallbackStruct*{.final.} = object 
-    state*: TXIMPreeditState
-
-  PXIMResetState* = ptr TXIMResetState
-  TXIMResetState* = culong
-
-const 
-  XIMInitialState* = 1
-  XIMPreserveState* = 1 shl 1
-
-type 
-  PXIMStringConversionFeedback* = ptr TXIMStringConversionFeedback
-  TXIMStringConversionFeedback* = culong
-
-const 
-  XIMStringConversionLeftEdge* = 0x00000001
-  XIMStringConversionRightEdge* = 0x00000002
-  XIMStringConversionTopEdge* = 0x00000004
-  XIMStringConversionBottomEdge* = 0x00000008
-  XIMStringConversionConcealed* = 0x00000010
-  XIMStringConversionWrapped* = 0x00000020
-
-type 
-  PXIMStringConversionText* = ptr TXIMStringConversionText
-  TXIMStringConversionText*{.final.} = object 
-    len*: cushort
-    feedback*: PXIMStringConversionFeedback
-    encoding_is_wchar*: TBool
-    mbs*: cstring
-
-  PXIMStringConversionPosition* = ptr TXIMStringConversionPosition
-  TXIMStringConversionPosition* = cushort
-  PXIMStringConversionType* = ptr TXIMStringConversionType
-  TXIMStringConversionType* = cushort
-
-const 
-  XIMStringConversionBuffer* = 0x00000001
-  XIMStringConversionLine* = 0x00000002
-  XIMStringConversionWord* = 0x00000003
-  XIMStringConversionChar* = 0x00000004
-
-type 
-  PXIMStringConversionOperation* = ptr TXIMStringConversionOperation
-  TXIMStringConversionOperation* = cushort
-
-const 
-  XIMStringConversionSubstitution* = 0x00000001
-  XIMStringConversionRetrieval* = 0x00000002
-
-type 
-  PXIMCaretDirection* = ptr TXIMCaretDirection
-  TXIMCaretDirection* = enum 
-    XIMForwardChar, XIMBackwardChar, XIMForwardWord, XIMBackwardWord, 
-    XIMCaretUp, XIMCaretDown, XIMNextLine, XIMPreviousLine, XIMLineStart, 
-    XIMLineEnd, XIMAbsolutePosition, XIMDontChange
-  PXIMStringConversionCallbackStruct* = ptr TXIMStringConversionCallbackStruct
-  TXIMStringConversionCallbackStruct*{.final.} = object 
-    position*: TXIMStringConversionPosition
-    direction*: TXIMCaretDirection
-    operation*: TXIMStringConversionOperation
-    factor*: cushort
-    text*: PXIMStringConversionText
-
-  PXIMPreeditDrawCallbackStruct* = ptr TXIMPreeditDrawCallbackStruct
-  TXIMPreeditDrawCallbackStruct*{.final.} = object 
-    caret*: cint
-    chg_first*: cint
-    chg_length*: cint
-    text*: PXIMText
-
-  PXIMCaretStyle* = ptr TXIMCaretStyle
-  TXIMCaretStyle* = enum 
-    XIMIsInvisible, XIMIsPrimary, XIMIsSecondary
-  PXIMPreeditCaretCallbackStruct* = ptr TXIMPreeditCaretCallbackStruct
-  TXIMPreeditCaretCallbackStruct*{.final.} = object 
-    position*: cint
-    direction*: TXIMCaretDirection
-    style*: TXIMCaretStyle
-
-  PXIMStatusDataType* = ptr TXIMStatusDataType
-  TXIMStatusDataType* = enum 
-    XIMTextType, XIMBitmapType
-  PXIMStatusDrawCallbackStruct* = ptr TXIMStatusDrawCallbackStruct
-  TXIMStatusDrawCallbackStruct*{.final.} = object 
-    theType*: TXIMStatusDataType
-    bitmap*: TPixmap
-
-  PXIMHotKeyTrigger* = ptr TXIMHotKeyTrigger
-  TXIMHotKeyTrigger*{.final.} = object 
-    keysym*: TKeySym
-    modifier*: cint
-    modifier_mask*: cint
-
-  PXIMHotKeyTriggers* = ptr TXIMHotKeyTriggers
-  TXIMHotKeyTriggers*{.final.} = object 
-    num_hot_key*: cint
-    key*: PXIMHotKeyTrigger
-
-  PXIMHotKeyState* = ptr TXIMHotKeyState
-  TXIMHotKeyState* = culong
-
-const 
-  XIMHotKeyStateON* = 0x00000001
-  XIMHotKeyStateOFF* = 0x00000002
-
-type 
-  PXIMValuesList* = ptr TXIMValuesList
-  TXIMValuesList*{.final.} = object 
-    count_values*: cushort
-    supported_values*: PPChar
-
-
-type 
-  funcdisp* = proc (display: PDisplay): cint{.cdecl.}
-  funcifevent* = proc (display: PDisplay, event: PXEvent, p: TXPointer): TBool{.
-      cdecl.}
-  chararr32* = array[0..31, char]
-
-const 
-  AllPlanes*: culong = culong(not 0)
-
-proc XLoadQueryFont*(para1: PDisplay, para2: cstring): PXFontStruct{.libx11.}
-proc XQueryFont*(para1: PDisplay, para2: TXID): PXFontStruct{.libx11.}
-proc XGetMotionEvents*(para1: PDisplay, para2: TWindow, para3: TTime, 
-                       para4: TTime, para5: Pcint): PXTimeCoord{.libx11.}
-proc XDeleteModifiermapEntry*(para1: PXModifierKeymap, para2: TKeyCode, 
-                              para3: cint): PXModifierKeymap{.libx11.}
-proc XGetModifierMapping*(para1: PDisplay): PXModifierKeymap{.libx11.}
-proc XInsertModifiermapEntry*(para1: PXModifierKeymap, para2: TKeyCode, 
-                              para3: cint): PXModifierKeymap{.libx11.}
-proc XNewModifiermap*(para1: cint): PXModifierKeymap{.libx11.}
-proc XCreateImage*(para1: PDisplay, para2: PVisual, para3: cuint, para4: cint, 
-                   para5: cint, para6: cstring, para7: cuint, para8: cuint, 
-                   para9: cint, para10: cint): PXImage{.libx11.}
-proc XInitImage*(para1: PXImage): TStatus{.libx11.}
-proc XGetImage*(para1: PDisplay, para2: TDrawable, para3: cint, para4: cint, 
-                para5: cuint, para6: cuint, para7: culong, para8: cint): PXImage{.
-    libx11.}
-proc XGetSubImage*(para1: PDisplay, para2: TDrawable, para3: cint, para4: cint, 
-                   para5: cuint, para6: cuint, para7: culong, para8: cint, 
-                   para9: PXImage, para10: cint, para11: cint): PXImage{.libx11.}
-proc XOpenDisplay*(para1: cstring): PDisplay{.libx11.}
-proc XrmInitialize*(){.libx11.}
-proc XFetchBytes*(para1: PDisplay, para2: Pcint): cstring{.libx11.}
-proc XFetchBuffer*(para1: PDisplay, para2: Pcint, para3: cint): cstring{.libx11.}
-proc XGetAtomName*(para1: PDisplay, para2: TAtom): cstring{.libx11.}
-proc XGetAtomNames*(para1: PDisplay, para2: PAtom, para3: cint, para4: PPchar): TStatus{.
-    libx11.}
-proc XGetDefault*(para1: PDisplay, para2: cstring, para3: cstring): cstring{.
-    libx11.}
-proc XDisplayName*(para1: cstring): cstring{.libx11.}
-proc XKeysymToString*(para1: TKeySym): cstring{.libx11.}
-proc XSynchronize*(para1: PDisplay, para2: TBool): funcdisp{.libx11.}
-proc XSetAfterFunction*(para1: PDisplay, para2: funcdisp): funcdisp{.libx11.}
-proc XInternAtom*(para1: PDisplay, para2: cstring, para3: TBool): TAtom{.libx11.}
-proc XInternAtoms*(para1: PDisplay, para2: PPchar, para3: cint, para4: TBool, 
-                   para5: PAtom): TStatus{.libx11.}
-proc XCopyColormapAndFree*(para1: PDisplay, para2: TColormap): TColormap{.libx11.}
-proc XCreateColormap*(para1: PDisplay, para2: TWindow, para3: PVisual, 
-                      para4: cint): TColormap{.libx11.}
-proc XCreatePixmapCursor*(para1: PDisplay, para2: TPixmap, para3: TPixmap, 
-                          para4: PXColor, para5: PXColor, para6: cuint, 
-                          para7: cuint): TCursor{.libx11.}
-proc XCreateGlyphCursor*(para1: PDisplay, para2: TFont, para3: TFont, 
-                         para4: cuint, para5: cuint, para6: PXColor, 
-                         para7: PXColor): TCursor{.libx11.}
-proc XCreateFontCursor*(para1: PDisplay, para2: cuint): TCursor{.libx11.}
-proc XLoadFont*(para1: PDisplay, para2: cstring): TFont{.libx11.}
-proc XCreateGC*(para1: PDisplay, para2: TDrawable, para3: culong, 
-                para4: PXGCValues): TGC{.libx11.}
-proc XGContextFromGC*(para1: TGC): TGContext{.libx11.}
-proc XFlushGC*(para1: PDisplay, para2: TGC){.libx11.}
-proc XCreatePixmap*(para1: PDisplay, para2: TDrawable, para3: cuint, 
-                    para4: cuint, para5: cuint): TPixmap{.libx11.}
-proc XCreateBitmapFromData*(para1: PDisplay, para2: TDrawable, para3: cstring, 
-                            para4: cuint, para5: cuint): TPixmap{.libx11.}
-proc XCreatePixmapFromBitmapData*(para1: PDisplay, para2: TDrawable, 
-                                  para3: cstring, para4: cuint, para5: cuint, 
-                                  para6: culong, para7: culong, para8: cuint): TPixmap{.
-    libx11.}
-proc XCreateSimpleWindow*(para1: PDisplay, para2: TWindow, para3: cint, 
-                          para4: cint, para5: cuint, para6: cuint, para7: cuint, 
-                          para8: culong, para9: culong): TWindow{.libx11.}
-proc XGetSelectionOwner*(para1: PDisplay, para2: TAtom): TWindow{.libx11.}
-proc XCreateWindow*(para1: PDisplay, para2: TWindow, para3: cint, para4: cint, 
-                    para5: cuint, para6: cuint, para7: cuint, para8: cint, 
-                    para9: cuint, para10: PVisual, para11: culong, 
-                    para12: PXSetWindowAttributes): TWindow{.libx11.}
-proc XListInstalledColormaps*(para1: PDisplay, para2: TWindow, para3: Pcint): PColormap{.
-    libx11.}
-proc XListFonts*(para1: PDisplay, para2: cstring, para3: cint, para4: Pcint): PPChar{.
-    libx11.}
-proc XListFontsWithInfo*(para1: PDisplay, para2: cstring, para3: cint, 
-                         para4: Pcint, para5: PPXFontStruct): PPChar{.libx11.}
-proc XGetFontPath*(para1: PDisplay, para2: Pcint): PPChar{.libx11.}
-proc XListExtensions*(para1: PDisplay, para2: Pcint): PPChar{.libx11.}
-proc XListProperties*(para1: PDisplay, para2: TWindow, para3: Pcint): PAtom{.
-    libx11.}
-proc XListHosts*(para1: PDisplay, para2: Pcint, para3: PBool): PXHostAddress{.
-    libx11.}
-proc XKeycodeToKeysym*(para1: PDisplay, para2: TKeyCode, para3: cint): TKeySym{.
-    libx11.}
-proc XLookupKeysym*(para1: PXKeyEvent, para2: cint): TKeySym{.libx11.}
-proc XGetKeyboardMapping*(para1: PDisplay, para2: TKeyCode, para3: cint, 
-                          para4: Pcint): PKeySym{.libx11.}
-proc XStringToKeysym*(para1: cstring): TKeySym{.libx11.}
-proc XMaxRequestSize*(para1: PDisplay): clong{.libx11.}
-proc XExtendedMaxRequestSize*(para1: PDisplay): clong{.libx11.}
-proc XResourceManagerString*(para1: PDisplay): cstring{.libx11.}
-proc XScreenResourceString*(para1: PScreen): cstring{.libx11.}
-proc XDisplayMotionBufferSize*(para1: PDisplay): culong{.libx11.}
-proc XVisualIDFromVisual*(para1: PVisual): TVisualID{.libx11.}
-proc XInitThreads*(): TStatus{.libx11.}
-proc XLockDisplay*(para1: PDisplay){.libx11.}
-proc XUnlockDisplay*(para1: PDisplay){.libx11.}
-proc XInitExtension*(para1: PDisplay, para2: cstring): PXExtCodes{.libx11.}
-proc XAddExtension*(para1: PDisplay): PXExtCodes{.libx11.}
-proc XFindOnExtensionList*(para1: PPXExtData, para2: cint): PXExtData{.libx11.}
-proc XEHeadOfExtensionList*(para1: TXEDataObject): PPXExtData{.libx11.}
-proc XRootWindow*(para1: PDisplay, para2: cint): TWindow{.libx11.}
-proc XDefaultRootWindow*(para1: PDisplay): TWindow{.libx11.}
-proc XRootWindowOfScreen*(para1: PScreen): TWindow{.libx11.}
-proc XDefaultVisual*(para1: PDisplay, para2: cint): PVisual{.libx11.}
-proc XDefaultVisualOfScreen*(para1: PScreen): PVisual{.libx11.}
-proc XDefaultGC*(para1: PDisplay, para2: cint): TGC{.libx11.}
-proc XDefaultGCOfScreen*(para1: PScreen): TGC{.libx11.}
-proc XBlackPixel*(para1: PDisplay, para2: cint): culong{.libx11.}
-proc XWhitePixel*(para1: PDisplay, para2: cint): culong{.libx11.}
-proc XAllPlanes*(): culong{.libx11.}
-proc XBlackPixelOfScreen*(para1: PScreen): culong{.libx11.}
-proc XWhitePixelOfScreen*(para1: PScreen): culong{.libx11.}
-proc XNextRequest*(para1: PDisplay): culong{.libx11.}
-proc XLastKnownRequestProcessed*(para1: PDisplay): culong{.libx11.}
-proc XServerVendor*(para1: PDisplay): cstring{.libx11.}
-proc XDisplayString*(para1: PDisplay): cstring{.libx11.}
-proc XDefaultColormap*(para1: PDisplay, para2: cint): TColormap{.libx11.}
-proc XDefaultColormapOfScreen*(para1: PScreen): TColormap{.libx11.}
-proc XDisplayOfScreen*(para1: PScreen): PDisplay{.libx11.}
-proc XScreenOfDisplay*(para1: PDisplay, para2: cint): PScreen{.libx11.}
-proc XDefaultScreenOfDisplay*(para1: PDisplay): PScreen{.libx11.}
-proc XEventMaskOfScreen*(para1: PScreen): clong{.libx11.}
-proc XScreenNumberOfScreen*(para1: PScreen): cint{.libx11.}
-type 
-  TXErrorHandler* = proc (para1: PDisplay, para2: PXErrorEvent): cint{.cdecl.}
-
-proc XSetErrorHandler*(para1: TXErrorHandler): TXErrorHandler{.libx11.}
-type 
-  TXIOErrorHandler* = proc (para1: PDisplay): cint{.cdecl.}
-
-proc XSetIOErrorHandler*(para1: TXIOErrorHandler): TXIOErrorHandler{.libx11.}
-proc XListPixmapFormats*(para1: PDisplay, para2: Pcint): PXPixmapFormatValues{.
-    libx11.}
-proc XListDepths*(para1: PDisplay, para2: cint, para3: Pcint): Pcint{.libx11.}
-proc XReconfigureWMWindow*(para1: PDisplay, para2: TWindow, para3: cint, 
-                           para4: cuint, para5: PXWindowChanges): TStatus{.
-    libx11.}
-proc XGetWMProtocols*(para1: PDisplay, para2: TWindow, para3: PPAtom, 
-                      para4: Pcint): TStatus{.libx11.}
-proc XSetWMProtocols*(para1: PDisplay, para2: TWindow, para3: PAtom, para4: cint): TStatus{.
-    libx11.}
-proc XIconifyWindow*(para1: PDisplay, para2: TWindow, para3: cint): TStatus{.
-    libx11.}
-proc XWithdrawWindow*(para1: PDisplay, para2: TWindow, para3: cint): TStatus{.
-    libx11.}
-proc XGetCommand*(para1: PDisplay, para2: TWindow, para3: PPPchar, para4: Pcint): TStatus{.
-    libx11.}
-proc XGetWMColormapWindows*(para1: PDisplay, para2: TWindow, para3: PPWindow, 
-                            para4: Pcint): TStatus{.libx11.}
-proc XSetWMColormapWindows*(para1: PDisplay, para2: TWindow, para3: PWindow, 
-                            para4: cint): TStatus{.libx11.}
-proc XFreeStringList*(para1: PPchar){.libx11.}
-proc XSetTransientForHint*(para1: PDisplay, para2: TWindow, para3: TWindow): cint{.
-    libx11.}
-proc XActivateScreenSaver*(para1: PDisplay): cint{.libx11.}
-proc XAddHost*(para1: PDisplay, para2: PXHostAddress): cint{.libx11.}
-proc XAddHosts*(para1: PDisplay, para2: PXHostAddress, para3: cint): cint{.
-    libx11.}
-proc XAddToExtensionList*(para1: PPXExtData, para2: PXExtData): cint{.libx11.}
-proc XAddToSaveSet*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XAllocColor*(para1: PDisplay, para2: TColormap, para3: PXColor): TStatus{.
-    libx11.}
-proc XAllocColorCells*(para1: PDisplay, para2: TColormap, para3: TBool, 
-                       para4: Pculong, para5: cuint, para6: Pculong, 
-                       para7: cuint): TStatus{.libx11.}
-proc XAllocColorPlanes*(para1: PDisplay, para2: TColormap, para3: TBool, 
-                        para4: Pculong, para5: cint, para6: cint, para7: cint, 
-                        para8: cint, para9: Pculong, para10: Pculong, 
-                        para11: Pculong): TStatus{.libx11.}
-proc XAllocNamedColor*(para1: PDisplay, para2: TColormap, para3: cstring, 
-                       para4: PXColor, para5: PXColor): TStatus{.libx11.}
-proc XAllowEvents*(para1: PDisplay, para2: cint, para3: TTime): cint{.libx11.}
-proc XAutoRepeatOff*(para1: PDisplay): cint{.libx11.}
-proc XAutoRepeatOn*(para1: PDisplay): cint{.libx11.}
-proc XBell*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XBitmapBitOrder*(para1: PDisplay): cint{.libx11.}
-proc XBitmapPad*(para1: PDisplay): cint{.libx11.}
-proc XBitmapUnit*(para1: PDisplay): cint{.libx11.}
-proc XCellsOfScreen*(para1: PScreen): cint{.libx11.}
-proc XChangeActivePointerGrab*(para1: PDisplay, para2: cuint, para3: TCursor, 
-                               para4: TTime): cint{.libx11.}
-proc XChangeGC*(para1: PDisplay, para2: TGC, para3: culong, para4: PXGCValues): cint{.
-    libx11.}
-proc XChangeKeyboardControl*(para1: PDisplay, para2: culong, 
-                             para3: PXKeyboardControl): cint{.libx11.}
-proc XChangeKeyboardMapping*(para1: PDisplay, para2: cint, para3: cint, 
-                             para4: PKeySym, para5: cint): cint{.libx11.}
-proc XChangePointerControl*(para1: PDisplay, para2: TBool, para3: TBool, 
-                            para4: cint, para5: cint, para6: cint): cint{.libx11.}
-proc XChangeProperty*(para1: PDisplay, para2: TWindow, para3: TAtom, 
-                      para4: TAtom, para5: cint, para6: cint, para7: Pcuchar, 
-                      para8: cint): cint{.libx11.}
-proc XChangeSaveSet*(para1: PDisplay, para2: TWindow, para3: cint): cint{.libx11.}
-proc XChangeWindowAttributes*(para1: PDisplay, para2: TWindow, para3: culong, 
-                              para4: PXSetWindowAttributes): cint{.libx11.}
-proc XCheckIfEvent*(para1: PDisplay, para2: PXEvent, para3: funcifevent, 
-                    para4: TXPointer): TBool{.libx11.}
-proc XCheckMaskEvent*(para1: PDisplay, para2: clong, para3: PXEvent): TBool{.
-    libx11.}
-proc XCheckTypedEvent*(para1: PDisplay, para2: cint, para3: PXEvent): TBool{.
-    libx11.}
-proc XCheckTypedWindowEvent*(para1: PDisplay, para2: TWindow, para3: cint, 
-                             para4: PXEvent): TBool{.libx11.}
-proc XCheckWindowEvent*(para1: PDisplay, para2: TWindow, para3: clong, 
-                        para4: PXEvent): TBool{.libx11.}
-proc XCirculateSubwindows*(para1: PDisplay, para2: TWindow, para3: cint): cint{.
-    libx11.}
-proc XCirculateSubwindowsDown*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XCirculateSubwindowsUp*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XClearArea*(para1: PDisplay, para2: TWindow, para3: cint, para4: cint, 
-                 para5: cuint, para6: cuint, para7: TBool): cint{.libx11.}
-proc XClearWindow*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XCloseDisplay*(para1: PDisplay): cint{.libx11.}
-proc XConfigureWindow*(para1: PDisplay, para2: TWindow, para3: cuint, 
-                       para4: PXWindowChanges): cint{.libx11.}
-proc XConnectionNumber*(para1: PDisplay): cint{.libx11.}
-proc XConvertSelection*(para1: PDisplay, para2: TAtom, para3: TAtom, 
-                        para4: TAtom, para5: TWindow, para6: TTime): cint{.
-    libx11.}
-proc XCopyArea*(para1: PDisplay, para2: TDrawable, para3: TDrawable, para4: TGC, 
-                para5: cint, para6: cint, para7: cuint, para8: cuint, 
-                para9: cint, para10: cint): cint{.libx11.}
-proc XCopyGC*(para1: PDisplay, para2: TGC, para3: culong, para4: TGC): cint{.
-    libx11.}
-proc XCopyPlane*(para1: PDisplay, para2: TDrawable, para3: TDrawable, 
-                 para4: TGC, para5: cint, para6: cint, para7: cuint, 
-                 para8: cuint, para9: cint, para10: cint, para11: culong): cint{.
-    libx11.}
-proc XDefaultDepth*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XDefaultDepthOfScreen*(para1: PScreen): cint{.libx11.}
-proc XDefaultScreen*(para1: PDisplay): cint{.libx11.}
-proc XDefineCursor*(para1: PDisplay, para2: TWindow, para3: TCursor): cint{.
-    libx11.}
-proc XDeleteProperty*(para1: PDisplay, para2: TWindow, para3: TAtom): cint{.
-    libx11.}
-proc XDestroyWindow*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XDestroySubwindows*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XDoesBackingStore*(para1: PScreen): cint{.libx11.}
-proc XDoesSaveUnders*(para1: PScreen): TBool{.libx11.}
-proc XDisableAccessControl*(para1: PDisplay): cint{.libx11.}
-proc XDisplayCells*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XDisplayHeight*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XDisplayHeightMM*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XDisplayKeycodes*(para1: PDisplay, para2: Pcint, para3: Pcint): cint{.
-    libx11.}
-proc XDisplayPlanes*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XDisplayWidth*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XDisplayWidthMM*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XDrawArc*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-               para5: cint, para6: cuint, para7: cuint, para8: cint, para9: cint): cint{.
-    libx11.}
-proc XDrawArcs*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: PXArc, 
-                para5: cint): cint{.libx11.}
-proc XDrawImageString*(para1: PDisplay, para2: TDrawable, para3: TGC, 
-                       para4: cint, para5: cint, para6: cstring, para7: cint): cint{.
-    libx11.}
-proc XDrawImageString16*(para1: PDisplay, para2: TDrawable, para3: TGC, 
-                         para4: cint, para5: cint, para6: PXChar2b, para7: cint): cint{.
-    libx11.}
-proc XDrawLine*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                para5: cint, para6: cint, para7: cint): cint{.libx11.}
-proc XDrawLines*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: PXPoint, 
-                 para5: cint, para6: cint): cint{.libx11.}
-proc XDrawPoint*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                 para5: cint): cint{.libx11.}
-proc XDrawPoints*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: PXPoint, 
-                  para5: cint, para6: cint): cint{.libx11.}
-proc XDrawRectangle*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                     para5: cint, para6: cuint, para7: cuint): cint{.libx11.}
-proc XDrawRectangles*(para1: PDisplay, para2: TDrawable, para3: TGC, 
-                      para4: PXRectangle, para5: cint): cint{.libx11.}
-proc XDrawSegments*(para1: PDisplay, para2: TDrawable, para3: TGC, 
-                    para4: PXSegment, para5: cint): cint{.libx11.}
-proc XDrawString*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                  para5: cint, para6: cstring, para7: cint): cint{.libx11.}
-proc XDrawString16*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                    para5: cint, para6: PXChar2b, para7: cint): cint{.libx11.}
-proc XDrawText*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                para5: cint, para6: PXTextItem, para7: cint): cint{.libx11.}
-proc XDrawText16*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                  para5: cint, para6: PXTextItem16, para7: cint): cint{.libx11.}
-proc XEnableAccessControl*(para1: PDisplay): cint{.libx11.}
-proc XEventsQueued*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XFetchName*(para1: PDisplay, para2: TWindow, para3: PPchar): TStatus{.
-    libx11.}
-proc XFillArc*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-               para5: cint, para6: cuint, para7: cuint, para8: cint, para9: cint): cint{.
-    libx11.}
-proc XFillArcs*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: PXArc, 
-                para5: cint): cint{.libx11.}
-proc XFillPolygon*(para1: PDisplay, para2: TDrawable, para3: TGC, 
-                   para4: PXPoint, para5: cint, para6: cint, para7: cint): cint{.
-    libx11.}
-proc XFillRectangle*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                     para5: cint, para6: cuint, para7: cuint): cint{.libx11.}
-proc XFillRectangles*(para1: PDisplay, para2: TDrawable, para3: TGC, 
-                      para4: PXRectangle, para5: cint): cint{.libx11.}
-proc XFlush*(para1: PDisplay): cint{.libx11.}
-proc XForceScreenSaver*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XFree*(para1: pointer): cint{.libx11.}
-proc XFreeColormap*(para1: PDisplay, para2: TColormap): cint{.libx11.}
-proc XFreeColors*(para1: PDisplay, para2: TColormap, para3: Pculong, 
-                  para4: cint, para5: culong): cint{.libx11.}
-proc XFreeCursor*(para1: PDisplay, para2: TCursor): cint{.libx11.}
-proc XFreeExtensionList*(para1: PPchar): cint{.libx11.}
-proc XFreeFont*(para1: PDisplay, para2: PXFontStruct): cint{.libx11.}
-proc XFreeFontInfo*(para1: PPchar, para2: PXFontStruct, para3: cint): cint{.
-    libx11.}
-proc XFreeFontNames*(para1: PPchar): cint{.libx11.}
-proc XFreeFontPath*(para1: PPchar): cint{.libx11.}
-proc XFreeGC*(para1: PDisplay, para2: TGC): cint{.libx11.}
-proc XFreeModifiermap*(para1: PXModifierKeymap): cint{.libx11.}
-proc XFreePixmap*(para1: PDisplay, para2: TPixmap): cint{.libx11.}
-proc XGeometry*(para1: PDisplay, para2: cint, para3: cstring, para4: cstring, 
-                para5: cuint, para6: cuint, para7: cuint, para8: cint, 
-                para9: cint, para10: Pcint, para11: Pcint, para12: Pcint, 
-                para13: Pcint): cint{.libx11.}
-proc XGetErrorDatabaseText*(para1: PDisplay, para2: cstring, para3: cstring, 
-                            para4: cstring, para5: cstring, para6: cint): cint{.
-    libx11.}
-proc XGetErrorText*(para1: PDisplay, para2: cint, para3: cstring, para4: cint): cint{.
-    libx11.}
-proc XGetFontProperty*(para1: PXFontStruct, para2: TAtom, para3: Pculong): TBool{.
-    libx11.}
-proc XGetGCValues*(para1: PDisplay, para2: TGC, para3: culong, para4: PXGCValues): TStatus{.
-    libx11.}
-proc XGetGeometry*(para1: PDisplay, para2: TDrawable, para3: PWindow, 
-                   para4: Pcint, para5: Pcint, para6: Pcuint, para7: Pcuint, 
-                   para8: Pcuint, para9: Pcuint): TStatus{.libx11.}
-proc XGetIconName*(para1: PDisplay, para2: TWindow, para3: PPchar): TStatus{.
-    libx11.}
-proc XGetInputFocus*(para1: PDisplay, para2: PWindow, para3: Pcint): cint{.
-    libx11.}
-proc XGetKeyboardControl*(para1: PDisplay, para2: PXKeyboardState): cint{.libx11.}
-proc XGetPointerControl*(para1: PDisplay, para2: Pcint, para3: Pcint, 
-                         para4: Pcint): cint{.libx11.}
-proc XGetPointerMapping*(para1: PDisplay, para2: Pcuchar, para3: cint): cint{.
-    libx11.}
-proc XGetScreenSaver*(para1: PDisplay, para2: Pcint, para3: Pcint, para4: Pcint, 
-                      para5: Pcint): cint{.libx11.}
-proc XGetTransientForHint*(para1: PDisplay, para2: TWindow, para3: PWindow): TStatus{.
-    libx11.}
-proc XGetWindowProperty*(para1: PDisplay, para2: TWindow, para3: TAtom, 
-                         para4: clong, para5: clong, para6: TBool, para7: TAtom, 
-                         para8: PAtom, para9: Pcint, para10: Pculong, 
-                         para11: Pculong, para12: PPcuchar): cint{.libx11.}
-proc XGetWindowAttributes*(para1: PDisplay, para2: TWindow, 
-                           para3: PXWindowAttributes): TStatus{.libx11.}
-proc XGrabButton*(para1: PDisplay, para2: cuint, para3: cuint, para4: TWindow, 
-                  para5: TBool, para6: cuint, para7: cint, para8: cint, 
-                  para9: TWindow, para10: TCursor): cint{.libx11.}
-proc XGrabKey*(para1: PDisplay, para2: cint, para3: cuint, para4: TWindow, 
-               para5: TBool, para6: cint, para7: cint): cint{.libx11.}
-proc XGrabKeyboard*(para1: PDisplay, para2: TWindow, para3: TBool, para4: cint, 
-                    para5: cint, para6: TTime): cint{.libx11.}
-proc XGrabPointer*(para1: PDisplay, para2: TWindow, para3: TBool, para4: cuint, 
-                   para5: cint, para6: cint, para7: TWindow, para8: TCursor, 
-                   para9: TTime): cint{.libx11.}
-proc XGrabServer*(para1: PDisplay): cint{.libx11.}
-proc XHeightMMOfScreen*(para1: PScreen): cint{.libx11.}
-proc XHeightOfScreen*(para1: PScreen): cint{.libx11.}
-proc XIfEvent*(para1: PDisplay, para2: PXEvent, para3: funcifevent, 
-               para4: TXPointer): cint{.libx11.}
-proc XImageByteOrder*(para1: PDisplay): cint{.libx11.}
-proc XInstallColormap*(para1: PDisplay, para2: TColormap): cint{.libx11.}
-proc XKeysymToKeycode*(para1: PDisplay, para2: TKeySym): TKeyCode{.libx11.}
-proc XKillClient*(para1: PDisplay, para2: TXID): cint{.libx11.}
-proc XLookupColor*(para1: PDisplay, para2: TColormap, para3: cstring, 
-                   para4: PXColor, para5: PXColor): TStatus{.libx11.}
-proc XLowerWindow*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XMapRaised*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XMapSubwindows*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XMapWindow*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XMaskEvent*(para1: PDisplay, para2: clong, para3: PXEvent): cint{.libx11.}
-proc XMaxCmapsOfScreen*(para1: PScreen): cint{.libx11.}
-proc XMinCmapsOfScreen*(para1: PScreen): cint{.libx11.}
-proc XMoveResizeWindow*(para1: PDisplay, para2: TWindow, para3: cint, 
-                        para4: cint, para5: cuint, para6: cuint): cint{.libx11.}
-proc XMoveWindow*(para1: PDisplay, para2: TWindow, para3: cint, para4: cint): cint{.
-    libx11.}
-proc XNextEvent*(para1: PDisplay, para2: PXEvent): cint{.libx11.}
-proc XNoOp*(para1: PDisplay): cint{.libx11.}
-proc XParseColor*(para1: PDisplay, para2: TColormap, para3: cstring, 
-                  para4: PXColor): TStatus{.libx11.}
-proc XParseGeometry*(para1: cstring, para2: Pcint, para3: Pcint, para4: Pcuint, 
-                     para5: Pcuint): cint{.libx11.}
-proc XPeekEvent*(para1: PDisplay, para2: PXEvent): cint{.libx11.}
-proc XPeekIfEvent*(para1: PDisplay, para2: PXEvent, para3: funcifevent, 
-                   para4: TXPointer): cint{.libx11.}
-proc XPending*(para1: PDisplay): cint{.libx11.}
-proc XPlanesOfScreen*(para1: PScreen): cint{.libx11.}
-proc XProtocolRevision*(para1: PDisplay): cint{.libx11.}
-proc XProtocolVersion*(para1: PDisplay): cint{.libx11.}
-proc XPutBackEvent*(para1: PDisplay, para2: PXEvent): cint{.libx11.}
-proc XPutImage*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: PXImage, 
-                para5: cint, para6: cint, para7: cint, para8: cint, 
-                para9: cuint, para10: cuint): cint{.libx11.}
-proc XQLength*(para1: PDisplay): cint{.libx11.}
-proc XQueryBestCursor*(para1: PDisplay, para2: TDrawable, para3: cuint, 
-                       para4: cuint, para5: Pcuint, para6: Pcuint): TStatus{.
-    libx11.}
-proc XQueryBestSize*(para1: PDisplay, para2: cint, para3: TDrawable, 
-                     para4: cuint, para5: cuint, para6: Pcuint, para7: Pcuint): TStatus{.
-    libx11.}
-proc XQueryBestStipple*(para1: PDisplay, para2: TDrawable, para3: cuint, 
-                        para4: cuint, para5: Pcuint, para6: Pcuint): TStatus{.
-    libx11.}
-proc XQueryBestTile*(para1: PDisplay, para2: TDrawable, para3: cuint, 
-                     para4: cuint, para5: Pcuint, para6: Pcuint): TStatus{.
-    libx11.}
-proc XQueryColor*(para1: PDisplay, para2: TColormap, para3: PXColor): cint{.
-    libx11.}
-proc XQueryColors*(para1: PDisplay, para2: TColormap, para3: PXColor, 
-                   para4: cint): cint{.libx11.}
-proc XQueryExtension*(para1: PDisplay, para2: cstring, para3: Pcint, 
-                      para4: Pcint, para5: Pcint): TBool{.libx11.}
-  #?
-proc XQueryKeymap*(para1: PDisplay, para2: chararr32): cint{.libx11.}
-proc XQueryPointer*(para1: PDisplay, para2: TWindow, para3: PWindow, 
-                    para4: PWindow, para5: Pcint, para6: Pcint, para7: Pcint, 
-                    para8: Pcint, para9: Pcuint): TBool{.libx11.}
-proc XQueryTextExtents*(para1: PDisplay, para2: TXID, para3: cstring, 
-                        para4: cint, para5: Pcint, para6: Pcint, para7: Pcint, 
-                        para8: PXCharStruct): cint{.libx11.}
-proc XQueryTextExtents16*(para1: PDisplay, para2: TXID, para3: PXChar2b, 
-                          para4: cint, para5: Pcint, para6: Pcint, para7: Pcint, 
-                          para8: PXCharStruct): cint{.libx11.}
-proc XQueryTree*(para1: PDisplay, para2: TWindow, para3: PWindow, 
-                 para4: PWindow, para5: PPWindow, para6: Pcuint): TStatus{.
-    libx11.}
-proc XRaiseWindow*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XReadBitmapFile*(para1: PDisplay, para2: TDrawable, para3: cstring, 
-                      para4: Pcuint, para5: Pcuint, para6: PPixmap, 
-                      para7: Pcint, para8: Pcint): cint{.libx11.}
-proc XReadBitmapFileData*(para1: cstring, para2: Pcuint, para3: Pcuint, 
-                          para4: PPcuchar, para5: Pcint, para6: Pcint): cint{.
-    libx11.}
-proc XRebindKeysym*(para1: PDisplay, para2: TKeySym, para3: PKeySym, 
-                    para4: cint, para5: Pcuchar, para6: cint): cint{.libx11.}
-proc XRecolorCursor*(para1: PDisplay, para2: TCursor, para3: PXColor, 
-                     para4: PXColor): cint{.libx11.}
-proc XRefreshKeyboardMapping*(para1: PXMappingEvent): cint{.libx11.}
-proc XRemoveFromSaveSet*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XRemoveHost*(para1: PDisplay, para2: PXHostAddress): cint{.libx11.}
-proc XRemoveHosts*(para1: PDisplay, para2: PXHostAddress, para3: cint): cint{.
-    libx11.}
-proc XReparentWindow*(para1: PDisplay, para2: TWindow, para3: TWindow, 
-                      para4: cint, para5: cint): cint{.libx11.}
-proc XResetScreenSaver*(para1: PDisplay): cint{.libx11.}
-proc XResizeWindow*(para1: PDisplay, para2: TWindow, para3: cuint, para4: cuint): cint{.
-    libx11.}
-proc XRestackWindows*(para1: PDisplay, para2: PWindow, para3: cint): cint{.
-    libx11.}
-proc XRotateBuffers*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XRotateWindowProperties*(para1: PDisplay, para2: TWindow, para3: PAtom, 
-                              para4: cint, para5: cint): cint{.libx11.}
-proc XScreenCount*(para1: PDisplay): cint{.libx11.}
-proc XSelectInput*(para1: PDisplay, para2: TWindow, para3: clong): cint{.libx11.}
-proc XSendEvent*(para1: PDisplay, para2: TWindow, para3: TBool, para4: clong, 
-                 para5: PXEvent): TStatus{.libx11.}
-proc XSetAccessControl*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XSetArcMode*(para1: PDisplay, para2: TGC, para3: cint): cint{.libx11.}
-proc XSetBackground*(para1: PDisplay, para2: TGC, para3: culong): cint{.libx11.}
-proc XSetClipMask*(para1: PDisplay, para2: TGC, para3: TPixmap): cint{.libx11.}
-proc XSetClipOrigin*(para1: PDisplay, para2: TGC, para3: cint, para4: cint): cint{.
-    libx11.}
-proc XSetClipRectangles*(para1: PDisplay, para2: TGC, para3: cint, para4: cint, 
-                         para5: PXRectangle, para6: cint, para7: cint): cint{.
-    libx11.}
-proc XSetCloseDownMode*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XSetCommand*(para1: PDisplay, para2: TWindow, para3: PPchar, para4: cint): cint{.
-    libx11.}
-proc XSetDashes*(para1: PDisplay, para2: TGC, para3: cint, para4: cstring, 
-                 para5: cint): cint{.libx11.}
-proc XSetFillRule*(para1: PDisplay, para2: TGC, para3: cint): cint{.libx11.}
-proc XSetFillStyle*(para1: PDisplay, para2: TGC, para3: cint): cint{.libx11.}
-proc XSetFont*(para1: PDisplay, para2: TGC, para3: TFont): cint{.libx11.}
-proc XSetFontPath*(para1: PDisplay, para2: PPchar, para3: cint): cint{.libx11.}
-proc XSetForeground*(para1: PDisplay, para2: TGC, para3: culong): cint{.libx11.}
-proc XSetFunction*(para1: PDisplay, para2: TGC, para3: cint): cint{.libx11.}
-proc XSetGraphicsExposures*(para1: PDisplay, para2: TGC, para3: TBool): cint{.
-    libx11.}
-proc XSetIconName*(para1: PDisplay, para2: TWindow, para3: cstring): cint{.
-    libx11.}
-proc XSetInputFocus*(para1: PDisplay, para2: TWindow, para3: cint, para4: TTime): cint{.
-    libx11.}
-proc XSetLineAttributes*(para1: PDisplay, para2: TGC, para3: cuint, para4: cint, 
-                         para5: cint, para6: cint): cint{.libx11.}
-proc XSetModifierMapping*(para1: PDisplay, para2: PXModifierKeymap): cint{.
-    libx11.}
-proc XSetPlaneMask*(para1: PDisplay, para2: TGC, para3: culong): cint{.libx11.}
-proc XSetPointerMapping*(para1: PDisplay, para2: Pcuchar, para3: cint): cint{.
-    libx11.}
-proc XSetScreenSaver*(para1: PDisplay, para2: cint, para3: cint, para4: cint, 
-                      para5: cint): cint{.libx11.}
-proc XSetSelectionOwner*(para1: PDisplay, para2: TAtom, para3: TWindow, 
-                         para4: TTime): cint{.libx11.}
-proc XSetState*(para1: PDisplay, para2: TGC, para3: culong, para4: culong, 
-                para5: cint, para6: culong): cint{.libx11.}
-proc XSetStipple*(para1: PDisplay, para2: TGC, para3: TPixmap): cint{.libx11.}
-proc XSetSubwindowMode*(para1: PDisplay, para2: TGC, para3: cint): cint{.libx11.}
-proc XSetTSOrigin*(para1: PDisplay, para2: TGC, para3: cint, para4: cint): cint{.
-    libx11.}
-proc XSetTile*(para1: PDisplay, para2: TGC, para3: TPixmap): cint{.libx11.}
-proc XSetWindowBackground*(para1: PDisplay, para2: TWindow, para3: culong): cint{.
-    libx11.}
-proc XSetWindowBackgroundPixmap*(para1: PDisplay, para2: TWindow, para3: TPixmap): cint{.
-    libx11.}
-proc XSetWindowBorder*(para1: PDisplay, para2: TWindow, para3: culong): cint{.
-    libx11.}
-proc XSetWindowBorderPixmap*(para1: PDisplay, para2: TWindow, para3: TPixmap): cint{.
-    libx11.}
-proc XSetWindowBorderWidth*(para1: PDisplay, para2: TWindow, para3: cuint): cint{.
-    libx11.}
-proc XSetWindowColormap*(para1: PDisplay, para2: TWindow, para3: TColormap): cint{.
-    libx11.}
-proc XStoreBuffer*(para1: PDisplay, para2: cstring, para3: cint, para4: cint): cint{.
-    libx11.}
-proc XStoreBytes*(para1: PDisplay, para2: cstring, para3: cint): cint{.libx11.}
-proc XStoreColor*(para1: PDisplay, para2: TColormap, para3: PXColor): cint{.
-    libx11.}
-proc XStoreColors*(para1: PDisplay, para2: TColormap, para3: PXColor, 
-                   para4: cint): cint{.libx11.}
-proc XStoreName*(para1: PDisplay, para2: TWindow, para3: cstring): cint{.libx11.}
-proc XStoreNamedColor*(para1: PDisplay, para2: TColormap, para3: cstring, 
-                       para4: culong, para5: cint): cint{.libx11.}
-proc XSync*(para1: PDisplay, para2: TBool): cint{.libx11.}
-proc XTextExtents*(para1: PXFontStruct, para2: cstring, para3: cint, 
-                   para4: Pcint, para5: Pcint, para6: Pcint, para7: PXCharStruct): cint{.
-    libx11.}
-proc XTextExtents16*(para1: PXFontStruct, para2: PXChar2b, para3: cint, 
-                     para4: Pcint, para5: Pcint, para6: Pcint, 
-                     para7: PXCharStruct): cint{.libx11.}
-proc XTextWidth*(para1: PXFontStruct, para2: cstring, para3: cint): cint{.libx11.}
-proc XTextWidth16*(para1: PXFontStruct, para2: PXChar2b, para3: cint): cint{.
-    libx11.}
-proc XTranslateCoordinates*(para1: PDisplay, para2: TWindow, para3: TWindow, 
-                            para4: cint, para5: cint, para6: Pcint, 
-                            para7: Pcint, para8: PWindow): TBool{.libx11.}
-proc XUndefineCursor*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XUngrabButton*(para1: PDisplay, para2: cuint, para3: cuint, para4: TWindow): cint{.
-    libx11.}
-proc XUngrabKey*(para1: PDisplay, para2: cint, para3: cuint, para4: TWindow): cint{.
-    libx11.}
-proc XUngrabKeyboard*(para1: PDisplay, para2: TTime): cint{.libx11.}
-proc XUngrabPointer*(para1: PDisplay, para2: TTime): cint{.libx11.}
-proc XUngrabServer*(para1: PDisplay): cint{.libx11.}
-proc XUninstallColormap*(para1: PDisplay, para2: TColormap): cint{.libx11.}
-proc XUnloadFont*(para1: PDisplay, para2: TFont): cint{.libx11.}
-proc XUnmapSubwindows*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XUnmapWindow*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XVendorRelease*(para1: PDisplay): cint{.libx11.}
-proc XWarpPointer*(para1: PDisplay, para2: TWindow, para3: TWindow, para4: cint, 
-                   para5: cint, para6: cuint, para7: cuint, para8: cint, 
-                   para9: cint): cint{.libx11.}
-proc XWidthMMOfScreen*(para1: PScreen): cint{.libx11.}
-proc XWidthOfScreen*(para1: PScreen): cint{.libx11.}
-proc XWindowEvent*(para1: PDisplay, para2: TWindow, para3: clong, para4: PXEvent): cint{.
-    libx11.}
-proc XWriteBitmapFile*(para1: PDisplay, para2: cstring, para3: TPixmap, 
-                       para4: cuint, para5: cuint, para6: cint, para7: cint): cint{.
-    libx11.}
-proc XSupportsLocale*(): TBool{.libx11.}
-proc XSetLocaleModifiers*(para1: cstring): cstring{.libx11.}
-proc XOpenOM*(para1: PDisplay, para2: PXrmHashBucketRec, para3: cstring, 
-              para4: cstring): TXOM{.libx11.}
-proc XCloseOM*(para1: TXOM): TStatus{.libx11.}
-proc XSetOMValues*(para1: TXOM): cstring{.varargs, libx11.}
-proc XGetOMValues*(para1: TXOM): cstring{.varargs, libx11.}
-proc XDisplayOfOM*(para1: TXOM): PDisplay{.libx11.}
-proc XLocaleOfOM*(para1: TXOM): cstring{.libx11.}
-proc XCreateOC*(para1: TXOM): TXOC{.varargs, libx11.}
-proc XDestroyOC*(para1: TXOC){.libx11.}
-proc XOMOfOC*(para1: TXOC): TXOM{.libx11.}
-proc XSetOCValues*(para1: TXOC): cstring{.varargs, libx11.}
-proc XGetOCValues*(para1: TXOC): cstring{.varargs, libx11.}
-proc XCreateFontSet*(para1: PDisplay, para2: cstring, para3: PPPchar, 
-                     para4: Pcint, para5: PPchar): TXFontSet{.libx11.}
-proc XFreeFontSet*(para1: PDisplay, para2: TXFontSet){.libx11.}
-proc XFontsOfFontSet*(para1: TXFontSet, para2: PPPXFontStruct, para3: PPPchar): cint{.
-    libx11.}
-proc XBaseFontNameListOfFontSet*(para1: TXFontSet): cstring{.libx11.}
-proc XLocaleOfFontSet*(para1: TXFontSet): cstring{.libx11.}
-proc XContextDependentDrawing*(para1: TXFontSet): TBool{.libx11.}
-proc XDirectionalDependentDrawing*(para1: TXFontSet): TBool{.libx11.}
-proc XContextualDrawing*(para1: TXFontSet): TBool{.libx11.}
-proc XExtentsOfFontSet*(para1: TXFontSet): PXFontSetExtents{.libx11.}
-proc XmbTextEscapement*(para1: TXFontSet, para2: cstring, para3: cint): cint{.
-    libx11.}
-proc XwcTextEscapement*(para1: TXFontSet, para2: PWideChar, para3: cint): cint{.
-    libx11.}
-proc Xutf8TextEscapement*(para1: TXFontSet, para2: cstring, para3: cint): cint{.
-    libx11.}
-proc XmbTextExtents*(para1: TXFontSet, para2: cstring, para3: cint, 
-                     para4: PXRectangle, para5: PXRectangle): cint{.libx11.}
-proc XwcTextExtents*(para1: TXFontSet, para2: PWideChar, para3: cint, 
-                     para4: PXRectangle, para5: PXRectangle): cint{.libx11.}
-proc Xutf8TextExtents*(para1: TXFontSet, para2: cstring, para3: cint, 
-                       para4: PXRectangle, para5: PXRectangle): cint{.libx11.}
-proc XmbTextPerCharExtents*(para1: TXFontSet, para2: cstring, para3: cint, 
-                            para4: PXRectangle, para5: PXRectangle, para6: cint, 
-                            para7: Pcint, para8: PXRectangle, para9: PXRectangle): TStatus{.
-    libx11.}
-proc XwcTextPerCharExtents*(para1: TXFontSet, para2: PWideChar, para3: cint, 
-                            para4: PXRectangle, para5: PXRectangle, para6: cint, 
-                            para7: Pcint, para8: PXRectangle, para9: PXRectangle): TStatus{.
-    libx11.}
-proc Xutf8TextPerCharExtents*(para1: TXFontSet, para2: cstring, para3: cint, 
-                              para4: PXRectangle, para5: PXRectangle, 
-                              para6: cint, para7: Pcint, para8: PXRectangle, 
-                              para9: PXRectangle): TStatus{.libx11.}
-proc XmbDrawText*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                  para5: cint, para6: PXmbTextItem, para7: cint){.libx11.}
-proc XwcDrawText*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                  para5: cint, para6: PXwcTextItem, para7: cint){.libx11.}
-proc Xutf8DrawText*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                    para5: cint, para6: PXmbTextItem, para7: cint){.libx11.}
-proc XmbDrawString*(para1: PDisplay, para2: TDrawable, para3: TXFontSet, 
-                    para4: TGC, para5: cint, para6: cint, para7: cstring, 
-                    para8: cint){.libx11.}
-proc XwcDrawString*(para1: PDisplay, para2: TDrawable, para3: TXFontSet, 
-                    para4: TGC, para5: cint, para6: cint, para7: PWideChar, 
-                    para8: cint){.libx11.}
-proc Xutf8DrawString*(para1: PDisplay, para2: TDrawable, para3: TXFontSet, 
-                      para4: TGC, para5: cint, para6: cint, para7: cstring, 
-                      para8: cint){.libx11.}
-proc XmbDrawImageString*(para1: PDisplay, para2: TDrawable, para3: TXFontSet, 
-                         para4: TGC, para5: cint, para6: cint, para7: cstring, 
-                         para8: cint){.libx11.}
-proc XwcDrawImageString*(para1: PDisplay, para2: TDrawable, para3: TXFontSet, 
-                         para4: TGC, para5: cint, para6: cint, para7: PWideChar, 
-                         para8: cint){.libx11.}
-proc Xutf8DrawImageString*(para1: PDisplay, para2: TDrawable, para3: TXFontSet, 
-                           para4: TGC, para5: cint, para6: cint, para7: cstring, 
-                           para8: cint){.libx11.}
-proc XOpenIM*(para1: PDisplay, para2: PXrmHashBucketRec, para3: cstring, 
-              para4: cstring): TXIM{.libx11.}
-proc XCloseIM*(para1: TXIM): TStatus{.libx11.}
-proc XGetIMValues*(para1: TXIM): cstring{.varargs, libx11.}
-proc XSetIMValues*(para1: TXIM): cstring{.varargs, libx11.}
-proc XDisplayOfIM*(para1: TXIM): PDisplay{.libx11.}
-proc XLocaleOfIM*(para1: TXIM): cstring{.libx11.}
-proc XCreateIC*(para1: TXIM): TXIC{.varargs, libx11.}
-proc XDestroyIC*(para1: TXIC){.libx11.}
-proc XSetICFocus*(para1: TXIC){.libx11.}
-proc XUnsetICFocus*(para1: TXIC){.libx11.}
-proc XwcResetIC*(para1: TXIC): PWideChar{.libx11.}
-proc XmbResetIC*(para1: TXIC): cstring{.libx11.}
-proc Xutf8ResetIC*(para1: TXIC): cstring{.libx11.}
-proc XSetICValues*(para1: TXIC): cstring{.varargs, libx11.}
-proc XGetICValues*(para1: TXIC): cstring{.varargs, libx11.}
-proc XIMOfIC*(para1: TXIC): TXIM{.libx11.}
-proc XFilterEvent*(para1: PXEvent, para2: TWindow): TBool{.libx11.}
-proc XmbLookupString*(para1: TXIC, para2: PXKeyPressedEvent, para3: cstring, 
-                      para4: cint, para5: PKeySym, para6: PStatus): cint{.libx11.}
-proc XwcLookupString*(para1: TXIC, para2: PXKeyPressedEvent, para3: PWideChar, 
-                      para4: cint, para5: PKeySym, para6: PStatus): cint{.libx11.}
-proc Xutf8LookupString*(para1: TXIC, para2: PXKeyPressedEvent, para3: cstring, 
-                        para4: cint, para5: PKeySym, para6: PStatus): cint{.
-    libx11.}
-proc XVaCreateNestedList*(unused: cint): TXVaNestedList{.varargs, libx11.}
-proc XRegisterIMInstantiateCallback*(para1: PDisplay, para2: PXrmHashBucketRec, 
-                                     para3: cstring, para4: cstring, 
-                                     para5: TXIDProc, para6: TXPointer): TBool{.
-    libx11.}
-proc XUnregisterIMInstantiateCallback*(para1: PDisplay, 
-                                       para2: PXrmHashBucketRec, para3: cstring, 
-                                       para4: cstring, para5: TXIDProc, 
-                                       para6: TXPointer): TBool{.libx11.}
-type 
-  TXConnectionWatchProc* = proc (para1: PDisplay, para2: TXPointer, para3: cint, 
-                                 para4: TBool, para5: PXPointer){.cdecl.}
-
-proc XInternalConnectionNumbers*(para1: PDisplay, para2: PPcint, para3: Pcint): TStatus{.
-    libx11.}
-proc XProcessInternalConnection*(para1: PDisplay, para2: cint){.libx11.}
-proc XAddConnectionWatch*(para1: PDisplay, para2: TXConnectionWatchProc, 
-                          para3: TXPointer): TStatus{.libx11.}
-proc XRemoveConnectionWatch*(para1: PDisplay, para2: TXConnectionWatchProc, 
-                             para3: TXPointer){.libx11.}
-proc XSetAuthorization*(para1: cstring, para2: cint, para3: cstring, para4: cint){.
-    libx11.}
-  #
-  #  _Xmbtowc?
-  #  _Xwctomb?
-  #
-#when defined(MACROS): 
-proc ConnectionNumber*(dpy: PDisplay): cint
-proc RootWindow*(dpy: PDisplay, scr: cint): TWindow
-proc DefaultScreen*(dpy: PDisplay): cint
-proc DefaultRootWindow*(dpy: PDisplay): TWindow
-proc DefaultVisual*(dpy: PDisplay, scr: cint): PVisual
-proc DefaultGC*(dpy: PDisplay, scr: cint): TGC
-proc BlackPixel*(dpy: PDisplay, scr: cint): culong
-proc WhitePixel*(dpy: PDisplay, scr: cint): culong
-proc QLength*(dpy: PDisplay): cint
-proc DisplayWidth*(dpy: PDisplay, scr: cint): cint
-proc DisplayHeight*(dpy: PDisplay, scr: cint): cint
-proc DisplayWidthMM*(dpy: PDisplay, scr: cint): cint
-proc DisplayHeightMM*(dpy: PDisplay, scr: cint): cint
-proc DisplayPlanes*(dpy: PDisplay, scr: cint): cint
-proc DisplayCells*(dpy: PDisplay, scr: cint): cint
-proc ScreenCount*(dpy: PDisplay): cint
-proc ServerVendor*(dpy: PDisplay): cstring
-proc ProtocolVersion*(dpy: PDisplay): cint
-proc ProtocolRevision*(dpy: PDisplay): cint
-proc VendorRelease*(dpy: PDisplay): cint
-proc DisplayString*(dpy: PDisplay): cstring
-proc DefaultDepth*(dpy: PDisplay, scr: cint): cint
-proc DefaultColormap*(dpy: PDisplay, scr: cint): TColormap
-proc BitmapUnit*(dpy: PDisplay): cint
-proc BitmapBitOrder*(dpy: PDisplay): cint
-proc BitmapPad*(dpy: PDisplay): cint
-proc ImageByteOrder*(dpy: PDisplay): cint
-proc NextRequest*(dpy: PDisplay): culong
-proc LastKnownRequestProcessed*(dpy: PDisplay): culong
-proc ScreenOfDisplay*(dpy: PDisplay, scr: cint): PScreen
-proc DefaultScreenOfDisplay*(dpy: PDisplay): PScreen
-proc DisplayOfScreen*(s: PScreen): PDisplay
-proc RootWindowOfScreen*(s: PScreen): TWindow
-proc BlackPixelOfScreen*(s: PScreen): culong
-proc WhitePixelOfScreen*(s: PScreen): culong
-proc DefaultColormapOfScreen*(s: PScreen): TColormap
-proc DefaultDepthOfScreen*(s: PScreen): cint
-proc DefaultGCOfScreen*(s: PScreen): TGC
-proc DefaultVisualOfScreen*(s: PScreen): PVisual
-proc WidthOfScreen*(s: PScreen): cint
-proc HeightOfScreen*(s: PScreen): cint
-proc WidthMMOfScreen*(s: PScreen): cint
-proc HeightMMOfScreen*(s: PScreen): cint
-proc PlanesOfScreen*(s: PScreen): cint
-proc CellsOfScreen*(s: PScreen): cint
-proc MinCmapsOfScreen*(s: PScreen): cint
-proc MaxCmapsOfScreen*(s: PScreen): cint
-proc DoesSaveUnders*(s: PScreen): TBool
-proc DoesBackingStore*(s: PScreen): cint
-proc EventMaskOfScreen*(s: PScreen): clong
-proc XAllocID*(dpy: PDisplay): TXID
-# implementation
-
-#when defined(MACROS):
-template privDisp : expr = cast[PXPrivDisplay](dpy)
- 
-proc ConnectionNumber(dpy: PDisplay): cint = 
-  privDisp.fd
-
-proc RootWindow(dpy: PDisplay, scr: cint): TWindow = 
-  ScreenOfDisplay(dpy, scr).root
-
-proc DefaultScreen(dpy: PDisplay): cint = 
-  privDisp.default_screen
-
-proc DefaultRootWindow(dpy: PDisplay): TWindow = 
-  ScreenOfDisplay(dpy, DefaultScreen(dpy)).root
-
-proc DefaultVisual(dpy: PDisplay, scr: cint): PVisual = 
-  ScreenOfDisplay(dpy, scr).root_visual
-
-proc DefaultGC(dpy: PDisplay, scr: cint): TGC = 
-  ScreenOfDisplay(dpy, scr).default_gc
-
-proc BlackPixel(dpy: PDisplay, scr: cint): culong = 
-  ScreenOfDisplay(dpy, scr).black_pixel
-
-proc WhitePixel(dpy: PDisplay, scr: cint): culong = 
-  ScreenOfDisplay(dpy, scr).white_pixel
-
-proc QLength(dpy: PDisplay): cint = 
-  privDisp.qlen
-
-proc DisplayWidth(dpy: PDisplay, scr: cint): cint = 
-  ScreenOfDisplay(dpy, scr).width
-
-proc DisplayHeight(dpy: PDisplay, scr: cint): cint = 
-  ScreenOfDisplay(dpy, scr).height
-
-proc DisplayWidthMM(dpy: PDisplay, scr: cint): cint = 
-  ScreenOfDisplay(dpy, scr).mwidth
-
-proc DisplayHeightMM(dpy: PDisplay, scr: cint): cint = 
-  ScreenOfDisplay(dpy, scr).mheight
-
-proc DisplayPlanes(dpy: PDisplay, scr: cint): cint = 
-  ScreenOfDisplay(dpy, scr).root_depth
-
-proc DisplayCells(dpy: PDisplay, scr: cint): cint = 
-  DefaultVisual(dpy, scr).map_entries
-
-proc ScreenCount(dpy: PDisplay): cint = 
-  privDisp.nscreens
-
-proc ServerVendor(dpy: PDisplay): cstring = 
-  privDisp.vendor
-
-proc ProtocolVersion(dpy: PDisplay): cint = 
-  privDisp.proto_major_version
-
-proc ProtocolRevision(dpy: PDisplay): cint = 
-  privDisp.proto_minor_version
-
-proc VendorRelease(dpy: PDisplay): cint = 
-  privDisp.release
-
-proc DisplayString(dpy: PDisplay): cstring = 
-  privDisp.display_name
-
-proc DefaultDepth(dpy: PDisplay, scr: cint): cint = 
-  ScreenOfDisplay(dpy, scr).root_depth
-
-proc DefaultColormap(dpy: PDisplay, scr: cint): TColormap = 
-  ScreenOfDisplay(dpy, scr).cmap
-
-proc BitmapUnit(dpy: PDisplay): cint = 
-  privDisp.bitmap_unit
-
-proc BitmapBitOrder(dpy: PDisplay): cint = 
-  privDisp.bitmap_bit_order
-
-proc BitmapPad(dpy: PDisplay): cint = 
-  privDisp.bitmap_pad
-
-proc ImageByteOrder(dpy: PDisplay): cint = 
-  privDisp.byte_order
-
-import unsigned
-proc NextRequest(dpy: PDisplay): culong = 
-  privDisp.request + 1.culong
-
-proc LastKnownRequestProcessed(dpy: PDisplay): culong = 
-  privDisp.last_request_read
-
-# from fowltek/pointer_arithm, required for ScreenOfDisplay()
-proc offset[A] (some: ptr A; b: int): ptr A =
-  cast[ptr A](cast[int](some) + (b * sizeof(A)))
-proc ScreenOfDisplay(dpy: PDisplay, scr: cint): PScreen =
-  #addr(((privDisp.screens)[scr])) 
-  privDisp.screens.offset(scr.int)
-
-proc DefaultScreenOfDisplay(dpy: PDisplay): PScreen = 
-  ScreenOfDisplay(dpy, DefaultScreen(dpy))
-
-proc DisplayOfScreen(s: PScreen): PDisplay = 
-  s.display
-
-proc RootWindowOfScreen(s: PScreen): TWindow = 
-  s.root
-
-proc BlackPixelOfScreen(s: PScreen): culong = 
-  s.black_pixel
-
-proc WhitePixelOfScreen(s: PScreen): culong = 
-  s.white_pixel
-
-proc DefaultColormapOfScreen(s: PScreen): TColormap = 
-  s.cmap
-
-proc DefaultDepthOfScreen(s: PScreen): cint = 
-  s.root_depth
-
-proc DefaultGCOfScreen(s: PScreen): TGC = 
-  s.default_gc
-
-proc DefaultVisualOfScreen(s: PScreen): PVisual = 
-  s.root_visual
-
-proc WidthOfScreen(s: PScreen): cint = 
-  s.width
-
-proc HeightOfScreen(s: PScreen): cint = 
-  s.height
-
-proc WidthMMOfScreen(s: PScreen): cint = 
-  s.mwidth
-
-proc HeightMMOfScreen(s: PScreen): cint = 
-  s.mheight
-
-proc PlanesOfScreen(s: PScreen): cint = 
-  s.root_depth
-
-proc CellsOfScreen(s: PScreen): cint = 
-  DefaultVisualOfScreen(s).map_entries
-
-proc MinCmapsOfScreen(s: PScreen): cint = 
-  s.min_maps
-
-proc MaxCmapsOfScreen(s: PScreen): cint = 
-  s.max_maps
-
-proc DoesSaveUnders(s: PScreen): TBool = 
-  s.save_unders
-
-proc DoesBackingStore(s: PScreen): cint = 
-  s.backing_store
-
-proc EventMaskOfScreen(s: PScreen): clong = 
-  s.root_input_mask
-
-proc XAllocID(dpy: PDisplay): TXID = 
-  privDisp.resource_alloc(dpy)
diff --git a/lib/wrappers/x11/xrandr.nim b/lib/wrappers/x11/xrandr.nim
deleted file mode 100644
index ee6f1705b..000000000
--- a/lib/wrappers/x11/xrandr.nim
+++ /dev/null
@@ -1,194 +0,0 @@
-#
-#  $XFree86: xc/lib/Xrandr/Xrandr.h,v 1.9 2002/09/29 23:39:44 keithp Exp $
-# 
-#  Copyright (C) 2000 Compaq Computer Corporation, Inc.
-#  Copyright (C) 2002 Hewlett-Packard Company, Inc.
-# 
-#  Permission to use, copy, modify, distribute, and sell this software and its
-#  documentation for any purpose is hereby granted without fee, provided that
-#  the above copyright notice appear in all copies and that both that
-#  copyright notice and this permission notice appear in supporting
-#  documentation, and that the name of Compaq not be used in advertising or
-#  publicity pertaining to distribution of the software without specific,
-#  written prior permission.  HP makes no representations about the
-#  suitability of this software for any purpose.  It is provided "as is"
-#  without express or implied warranty.
-# 
-#  HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
-#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL COMPAQ
-#  BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-#  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-#  OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
-#  CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-# 
-#  Author:  Jim Gettys, HP Labs, HP.
-#
-
-import 
-  x, xlib
-
-const 
-  libXrandr* = "libXrandr.so"
-  
-# * $XFree86: xc/include/extensions/randr.h,v 1.4 2001/11/24 07:24:58 keithp Exp $
-# *
-# * Copyright (C) 2000, Compaq Computer Corporation, 
-# * Copyright (C) 2002, Hewlett Packard, Inc.
-# *
-# * Permission to use, copy, modify, distribute, and sell this software and its
-# * documentation for any purpose is hereby granted without fee, provided that
-# * the above copyright notice appear in all copies and that both that
-# * copyright notice and this permission notice appear in supporting
-# * documentation, and that the name of Compaq or HP not be used in advertising
-# * or publicity pertaining to distribution of the software without specific,
-# * written prior permission.  HP makes no representations about the
-# * suitability of this software for any purpose.  It is provided "as is"
-# * without express or implied warranty.
-# *
-# * HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
-# * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL HP
-# * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-# * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-# * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
-# * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-# *
-# * Author:  Jim Gettys, HP Labs, Hewlett-Packard, Inc.
-# *
-
-type 
-  PRotation* = ptr TRotation
-  TRotation* = cushort
-  PSizeID* = ptr TSizeID
-  TSizeID* = cushort
-  PSubpixelOrder* = ptr TSubpixelOrder
-  TSubpixelOrder* = cushort
-
-const 
-  RANDR_NAME* = "RANDR"
-  RANDR_MAJOR* = 1
-  RANDR_MINOR* = 1
-  RRNumberErrors* = 0
-  RRNumberEvents* = 1
-  constX_RRQueryVersion* = 0 # we skip 1 to make old clients fail pretty immediately 
-  X_RROldGetScreenInfo* = 1
-  X_RR1_0SetScreenConfig* = 2 # V1.0 apps share the same set screen config request id 
-  constX_RRSetScreenConfig* = 2
-  X_RROldScreenChangeSelectInput* = 3 # 3 used to be ScreenChangeSelectInput; deprecated 
-  constX_RRSelectInput* = 4
-  constX_RRGetScreenInfo* = 5      # used in XRRSelectInput 
-  RRScreenChangeNotifyMask* = 1 shl 0
-  RRScreenChangeNotify* = 0   # used in the rotation field; rotation and reflection in 0.1 proto. 
-  RR_Rotate_0* = 1
-  RR_Rotate_90* = 2
-  RR_Rotate_180* = 4
-  RR_Rotate_270* = 8          # new in 1.0 protocol, to allow reflection of screen 
-  RR_Reflect_X* = 16
-  RR_Reflect_Y* = 32
-  RRSetConfigSuccess* = 0
-  RRSetConfigInvalidConfigTime* = 1
-  RRSetConfigInvalidTime* = 2
-  RRSetConfigFailed* = 3
-
-type 
-  PXRRScreenSize* = ptr TXRRScreenSize
-  TXRRScreenSize*{.final.} = object  #
-                                     #   Events.
-                                     #
-    width*, height*: cint
-    mwidth*, mheight*: cint
-
-  TXRRScreenChangeNotifyEvent*{.final.} = object  # internal representation is private to the library 
-    typ*: cint                # event base 
-    serial*: culong           # # of last request processed by server 
-    send_event*: TBool        # true if this came from a SendEvent request 
-    display*: PDisplay        # Display the event was read from 
-    window*: TWindow          # window which selected for this event 
-    root*: TWindow            # Root window for changed screen 
-    timestamp*: TTime         # when the screen change occurred 
-    config_timestamp*: TTime  # when the last configuration change 
-    size_index*: TSizeID
-    subpixel_order*: TSubpixelOrder
-    rotation*: TRotation
-    width*: cint
-    height*: cint
-    mwidth*: cint
-    mheight*: cint
-
-  PXRRScreenConfiguration* = ptr TXRRScreenConfiguration
-  TXRRScreenConfiguration*{.final.} = object 
-
-proc XRRQueryExtension*(dpy: PDisplay, event_basep, error_basep: Pcint): TBool{.
-    cdecl, dynlib: libXrandr, importc.}
-proc XRRQueryVersion*(dpy: PDisplay, major_versionp: Pcint, 
-                      minor_versionp: Pcint): TStatus{.cdecl, dynlib: libXrandr, 
-    importc.}
-proc XRRGetScreenInfo*(dpy: PDisplay, draw: TDrawable): PXRRScreenConfiguration{.
-    cdecl, dynlib: libXrandr, importc.}
-proc XRRFreeScreenConfigInfo*(config: PXRRScreenConfiguration){.cdecl, 
-    dynlib: libXrandr, importc.}
-  #
-  #  Note that screen configuration changes are only permitted if the client can
-  #  prove it has up to date configuration information.  We are trying to
-  #  insist that it become possible for screens to change dynamically, so
-  #  we want to ensure the client knows what it is talking about when requesting
-  #  changes.
-  #
-proc XRRSetScreenConfig*(dpy: PDisplay, config: PXRRScreenConfiguration, 
-                         draw: TDrawable, size_index: cint, rotation: TRotation, 
-                         timestamp: TTime): TStatus{.cdecl, dynlib: libXrandr, 
-    importc.}
-  # added in v1.1, sorry for the lame name 
-proc XRRSetScreenConfigAndRate*(dpy: PDisplay, config: PXRRScreenConfiguration, 
-                                draw: TDrawable, size_index: cint, 
-                                rotation: TRotation, rate: cshort, 
-                                timestamp: TTime): TStatus{.cdecl, 
-    dynlib: libXrandr, importc.}
-proc XRRConfigRotations*(config: PXRRScreenConfiguration, 
-                         current_rotation: PRotation): TRotation{.cdecl, 
-    dynlib: libXrandr, importc.}
-proc XRRConfigTimes*(config: PXRRScreenConfiguration, config_timestamp: PTime): TTime{.
-    cdecl, dynlib: libXrandr, importc.}
-proc XRRConfigSizes*(config: PXRRScreenConfiguration, nsizes: Pcint): PXRRScreenSize{.
-    cdecl, dynlib: libXrandr, importc.}
-proc XRRConfigRates*(config: PXRRScreenConfiguration, sizeID: cint, 
-                     nrates: Pcint): ptr int16{.cdecl, dynlib: libXrandr, importc.}
-proc XRRConfigCurrentConfiguration*(config: PXRRScreenConfiguration, 
-                                    rotation: PRotation): TSizeID{.cdecl, 
-    dynlib: libXrandr, importc.}
-proc XRRConfigCurrentRate*(config: PXRRScreenConfiguration): cshort{.cdecl, 
-    dynlib: libXrandr, importc.}
-proc XRRRootToScreen*(dpy: PDisplay, root: TWindow): cint{.cdecl, 
-    dynlib: libXrandr, importc.}
-  #
-  #  returns the screen configuration for the specified screen; does a lazy
-  #  evalution to delay getting the information, and caches the result.
-  #  These routines should be used in preference to XRRGetScreenInfo
-  #  to avoid unneeded round trips to the X server.  These are new
-  #  in protocol version 0.1.
-  #
-proc XRRScreenConfig*(dpy: PDisplay, screen: cint): PXRRScreenConfiguration{.
-    cdecl, dynlib: libXrandr, importc.}
-proc XRRConfig*(screen: PScreen): PXRRScreenConfiguration{.cdecl, 
-    dynlib: libXrandr, importc.}
-proc XRRSelectInput*(dpy: PDisplay, window: TWindow, mask: cint){.cdecl, 
-    dynlib: libXrandr, importc.}
-  #
-  #  the following are always safe to call, even if RandR is not implemented 
-  #  on a screen 
-  #
-proc XRRRotations*(dpy: PDisplay, screen: cint, current_rotation: PRotation): TRotation{.
-    cdecl, dynlib: libXrandr, importc.}
-proc XRRSizes*(dpy: PDisplay, screen: cint, nsizes: Pcint): PXRRScreenSize{.
-    cdecl, dynlib: libXrandr, importc.}
-proc XRRRates*(dpy: PDisplay, screen: cint, sizeID: cint, nrates: Pcint): ptr int16{.
-    cdecl, dynlib: libXrandr, importc.}
-proc XRRTimes*(dpy: PDisplay, screen: cint, config_timestamp: PTime): TTime{.
-    cdecl, dynlib: libXrandr, importc.}
-  #
-  #  intended to take RRScreenChangeNotify,  or 
-  #  ConfigureNotify (on the root window)
-  #  returns 1 if it is an event type it understands, 0 if not
-  #
-proc XRRUpdateConfiguration*(event: PXEvent): cint{.cdecl, dynlib: libXrandr, 
-    importc.}
-# implementation
diff --git a/lib/wrappers/x11/xrender.nim b/lib/wrappers/x11/xrender.nim
deleted file mode 100644
index c4b2b364d..000000000
--- a/lib/wrappers/x11/xrender.nim
+++ /dev/null
@@ -1,241 +0,0 @@
-
-import 
-  x, xlib
-
-when defined(use_pkg_config) or defined(use_pkg_config_static):
-    {.pragma: libxrender, cdecl, importc.}
-    when defined(use_pkg_config):
-        {.passl: gorge("pkg-config xrender --libs").}
-    else:
-        {.passl: gorge("pkg-config xrender --static --libs").}
-else:
-    when defined(macosx):
-        const 
-          libXrender* = "libXrender.dylib"
-    else:
-        const 
-          libXrender* = "libXrender.so"
-
-    
-    {.pragma: libxrender, dynlib: libXrender, cdecl, importc.}
-#const 
-#  libXrender* = "libXrender.so"
-
-#
-#  Automatically converted by H2Pas 0.99.15 from xrender.h
-#  The following command line parameters were used:
-#    -p
-#    -T
-#    -S
-#    -d
-#    -c
-#    xrender.h
-#
-
-type 
-  PGlyph* = ptr TGlyph
-  TGlyph* = int32
-  PGlyphSet* = ptr TGlyphSet
-  TGlyphSet* = int32
-  PPicture* = ptr TPicture
-  TPicture* = int32
-  PPictFormat* = ptr TPictFormat
-  TPictFormat* = int32
-
-const 
-  RENDER_NAME* = "RENDER"
-  RENDER_MAJOR* = 0
-  RENDER_MINOR* = 0
-  constX_RenderQueryVersion* = 0
-  X_RenderQueryPictFormats* = 1
-  X_RenderQueryPictIndexValues* = 2
-  X_RenderQueryDithers* = 3
-  constX_RenderCreatePicture* = 4
-  constX_RenderChangePicture* = 5
-  X_RenderSetPictureClipRectangles* = 6
-  constX_RenderFreePicture* = 7
-  constX_RenderComposite* = 8
-  X_RenderScale* = 9
-  X_RenderTrapezoids* = 10
-  X_RenderTriangles* = 11
-  X_RenderTriStrip* = 12
-  X_RenderTriFan* = 13
-  X_RenderColorTrapezoids* = 14
-  X_RenderColorTriangles* = 15
-  X_RenderTransform* = 16
-  constX_RenderCreateGlyphSet* = 17
-  constX_RenderReferenceGlyphSet* = 18
-  constX_RenderFreeGlyphSet* = 19
-  constX_RenderAddGlyphs* = 20
-  constX_RenderAddGlyphsFromPicture* = 21
-  constX_RenderFreeGlyphs* = 22
-  constX_RenderCompositeGlyphs8* = 23
-  constX_RenderCompositeGlyphs16* = 24
-  constX_RenderCompositeGlyphs32* = 25
-  BadPictFormat* = 0
-  BadPicture* = 1
-  BadPictOp* = 2
-  BadGlyphSet* = 3
-  BadGlyph* = 4
-  RenderNumberErrors* = BadGlyph + 1
-  PictTypeIndexed* = 0
-  PictTypeDirect* = 1
-  PictOpClear* = 0
-  PictOpSrc* = 1
-  PictOpDst* = 2
-  PictOpOver* = 3
-  PictOpOverReverse* = 4
-  PictOpIn* = 5
-  PictOpInReverse* = 6
-  PictOpOut* = 7
-  PictOpOutReverse* = 8
-  PictOpAtop* = 9
-  PictOpAtopReverse* = 10
-  PictOpXor* = 11
-  PictOpAdd* = 12
-  PictOpSaturate* = 13
-  PictOpMaximum* = 13
-  PolyEdgeSharp* = 0
-  PolyEdgeSmooth* = 1
-  PolyModePrecise* = 0
-  PolyModeImprecise* = 1
-  CPRepeat* = 1 shl 0
-  CPAlphaMap* = 1 shl 1
-  CPAlphaXOrigin* = 1 shl 2
-  CPAlphaYOrigin* = 1 shl 3
-  CPClipXOrigin* = 1 shl 4
-  CPClipYOrigin* = 1 shl 5
-  CPClipMask* = 1 shl 6
-  CPGraphicsExposure* = 1 shl 7
-  CPSubwindowMode* = 1 shl 8
-  CPPolyEdge* = 1 shl 9
-  CPPolyMode* = 1 shl 10
-  CPDither* = 1 shl 11
-  CPLastBit* = 11
-
-type 
-  PXRenderDirectFormat* = ptr TXRenderDirectFormat
-  TXRenderDirectFormat*{.final.} = object 
-    red*: int16
-    redMask*: int16
-    green*: int16
-    greenMask*: int16
-    blue*: int16
-    blueMask*: int16
-    alpha*: int16
-    alphaMask*: int16
-
-  PXRenderPictFormat* = ptr TXRenderPictFormat
-  TXRenderPictFormat*{.final.} = object 
-    id*: TPictFormat
-    thetype*: int32
-    depth*: int32
-    direct*: TXRenderDirectFormat
-    colormap*: TColormap
-
-
-const 
-  PictFormatID* = 1 shl 0
-  PictFormatType* = 1 shl 1
-  PictFormatDepth* = 1 shl 2
-  PictFormatRed* = 1 shl 3
-  PictFormatRedMask* = 1 shl 4
-  PictFormatGreen* = 1 shl 5
-  PictFormatGreenMask* = 1 shl 6
-  PictFormatBlue* = 1 shl 7
-  PictFormatBlueMask* = 1 shl 8
-  PictFormatAlpha* = 1 shl 9
-  PictFormatAlphaMask* = 1 shl 10
-  PictFormatColormap* = 1 shl 11
-
-type 
-  PXRenderVisual* = ptr TXRenderVisual
-  TXRenderVisual*{.final.} = object 
-    visual*: PVisual
-    format*: PXRenderPictFormat
-
-  PXRenderDepth* = ptr TXRenderDepth
-  TXRenderDepth*{.final.} = object 
-    depth*: int32
-    nvisuals*: int32
-    visuals*: PXRenderVisual
-
-  PXRenderScreen* = ptr TXRenderScreen
-  TXRenderScreen*{.final.} = object 
-    depths*: PXRenderDepth
-    ndepths*: int32
-    fallback*: PXRenderPictFormat
-
-  PXRenderInfo* = ptr TXRenderInfo
-  TXRenderInfo*{.final.} = object 
-    format*: PXRenderPictFormat
-    nformat*: int32
-    screen*: PXRenderScreen
-    nscreen*: int32
-    depth*: PXRenderDepth
-    ndepth*: int32
-    visual*: PXRenderVisual
-    nvisual*: int32
-
-  PXRenderPictureAttributes* = ptr TXRenderPictureAttributes
-  TXRenderPictureAttributes*{.final.} = object 
-    repeat*: TBool
-    alpha_map*: TPicture
-    alpha_x_origin*: int32
-    alpha_y_origin*: int32
-    clip_x_origin*: int32
-    clip_y_origin*: int32
-    clip_mask*: TPixmap
-    graphics_exposures*: TBool
-    subwindow_mode*: int32
-    poly_edge*: int32
-    poly_mode*: int32
-    dither*: TAtom
-
-  PXGlyphInfo* = ptr TXGlyphInfo
-  TXGlyphInfo*{.final.} = object 
-    width*: int16
-    height*: int16
-    x*: int16
-    y*: int16
-    xOff*: int16
-    yOff*: int16
-
-
-proc XRenderQueryExtension*(dpy: PDisplay, event_basep: ptr int32, 
-                            error_basep: ptr int32): TBool{.libxrender.}
-proc XRenderQueryVersion*(dpy: PDisplay, major_versionp: ptr int32, 
-                          minor_versionp: ptr int32): TStatus{.libxrender.}
-proc XRenderQueryFormats*(dpy: PDisplay): TStatus{.libxrender.}
-proc XRenderFindVisualFormat*(dpy: PDisplay, visual: PVisual): PXRenderPictFormat{.
-    libxrender.}
-proc XRenderFindFormat*(dpy: PDisplay, mask: int32, 
-                        `template`: PXRenderPictFormat, count: int32): PXRenderPictFormat{.
-    libxrender.}
-proc XRenderCreatePicture*(dpy: PDisplay, drawable: TDrawable, 
-                           format: PXRenderPictFormat, valuemask: int32, 
-                           attributes: PXRenderPictureAttributes): TPicture{.
-    libxrender.}
-proc XRenderChangePicture*(dpy: PDisplay, picture: TPicture, valuemask: int32, 
-                           attributes: PXRenderPictureAttributes){.libxrender.}
-proc XRenderFreePicture*(dpy: PDisplay, picture: TPicture){.libxrender.}
-proc XRenderComposite*(dpy: PDisplay, op: int32, src: TPicture, mask: TPicture, 
-                       dst: TPicture, src_x: int32, src_y: int32, mask_x: int32, 
-                       mask_y: int32, dst_x: int32, dst_y: int32, width: int32, 
-                       height: int32){.libxrender.}
-proc XRenderCreateGlyphSet*(dpy: PDisplay, format: PXRenderPictFormat): TGlyphSet{.
-    libxrender.}
-proc XRenderReferenceGlyphSet*(dpy: PDisplay, existing: TGlyphSet): TGlyphSet{.
-    libxrender.}
-proc XRenderFreeGlyphSet*(dpy: PDisplay, glyphset: TGlyphSet){.libxrender.}
-proc XRenderAddGlyphs*(dpy: PDisplay, glyphset: TGlyphSet, gids: PGlyph, 
-                       glyphs: PXGlyphInfo, nglyphs: int32, images: cstring, 
-                       nbyte_images: int32){.libxrender.}
-proc XRenderFreeGlyphs*(dpy: PDisplay, glyphset: TGlyphSet, gids: PGlyph, 
-                        nglyphs: int32){.libxrender.}
-proc XRenderCompositeString8*(dpy: PDisplay, op: int32, src: TPicture, 
-                              dst: TPicture, maskFormat: PXRenderPictFormat, 
-                              glyphset: TGlyphSet, xSrc: int32, ySrc: int32, 
-                              xDst: int32, yDst: int32, str: cstring, 
-                              nchar: int32){.libxrender.}
-# implementation
diff --git a/lib/wrappers/x11/xresource.nim b/lib/wrappers/x11/xresource.nim
deleted file mode 100644
index f553b4413..000000000
--- a/lib/wrappers/x11/xresource.nim
+++ /dev/null
@@ -1,200 +0,0 @@
-
-import 
-  x, xlib
-
-#const 
-#  libX11* = "libX11.so"
-
-#
-#  Automatically converted by H2Pas 0.99.15 from xresource.h
-#  The following command line parameters were used:
-#    -p
-#    -T
-#    -S
-#    -d
-#    -c
-#    xresource.h
-#
-
-proc Xpermalloc*(para1: int32): cstring{.cdecl, dynlib: libX11, importc.}
-type 
-  PXrmQuark* = ptr TXrmQuark
-  TXrmQuark* = int32
-  TXrmQuarkList* = PXrmQuark
-  PXrmQuarkList* = ptr TXrmQuarkList
-
-proc NULLQUARK*(): TXrmQuark
-type 
-  PXrmString* = ptr TXrmString
-  TXrmString* = ptr char
-
-proc NULLSTRING*(): TXrmString
-proc XrmStringToQuark*(para1: cstring): TXrmQuark{.cdecl, dynlib: libX11, 
-    importc.}
-proc XrmPermStringToQuark*(para1: cstring): TXrmQuark{.cdecl, dynlib: libX11, 
-    importc.}
-proc XrmQuarkToString*(para1: TXrmQuark): TXrmString{.cdecl, dynlib: libX11, 
-    importc.}
-proc XrmUniqueQuark*(): TXrmQuark{.cdecl, dynlib: libX11, importc.}
-when defined(MACROS): 
-  proc XrmStringsEqual*(a1, a2: cstring): bool
-type 
-  PXrmBinding* = ptr TXrmBinding
-  TXrmBinding* = enum 
-    XrmBindTightly, XrmBindLoosely
-  TXrmBindingList* = PXrmBinding
-  PXrmBindingList* = ptr TXrmBindingList
-
-proc XrmStringToQuarkList*(para1: cstring, para2: TXrmQuarkList){.cdecl, 
-    dynlib: libX11, importc.}
-proc XrmStringToBindingQuarkList*(para1: cstring, para2: TXrmBindingList, 
-                                  para3: TXrmQuarkList){.cdecl, dynlib: libX11, 
-    importc.}
-type 
-  PXrmName* = ptr TXrmName
-  TXrmName* = TXrmQuark
-  PXrmNameList* = ptr TXrmNameList
-  TXrmNameList* = TXrmQuarkList
-
-when defined(MACROS): 
-  proc XrmNameToString*(name: int32): TXrmString
-  proc XrmStringToName*(str: cstring): int32
-  proc XrmStringToNameList*(str: cstring, name: PXrmQuark)
-type 
-  PXrmClass* = ptr TXrmClass
-  TXrmClass* = TXrmQuark
-  PXrmClassList* = ptr TXrmClassList
-  TXrmClassList* = TXrmQuarkList
-
-when defined(MACROS): 
-  proc XrmClassToString*(c_class: int32): TXrmString
-  proc XrmStringToClass*(c_class: cstring): int32
-  proc XrmStringToClassList*(str: cstring, c_class: PXrmQuark)
-type 
-  PXrmRepresentation* = ptr TXrmRepresentation
-  TXrmRepresentation* = TXrmQuark
-
-when defined(MACROS): 
-  proc XrmStringToRepresentation*(str: cstring): int32
-  proc XrmRepresentationToString*(thetype: int32): TXrmString
-type 
-  PXrmValue* = ptr TXrmValue
-  TXrmValue*{.final.} = object 
-    size*: int32
-    address*: TXPointer
-
-  TXrmValuePtr* = PXrmValue
-  PXrmValuePtr* = ptr TXrmValuePtr
-  PXrmHashBucketRec* = ptr TXrmHashBucketRec
-  TXrmHashBucketRec*{.final.} = object 
-  TXrmHashBucket* = PXrmHashBucketRec
-  PXrmHashBucket* = ptr TXrmHashBucket
-  PXrmHashTable* = ptr TXrmHashTable
-  TXrmHashTable* = ptr TXrmHashBucket
-  TXrmDatabase* = PXrmHashBucketRec
-  PXrmDatabase* = ptr TXrmDatabase
-
-proc XrmDestroyDatabase*(para1: TXrmDatabase){.cdecl, dynlib: libX11, importc.}
-proc XrmQPutResource*(para1: PXrmDatabase, para2: TXrmBindingList, 
-                      para3: TXrmQuarkList, para4: TXrmRepresentation, 
-                      para5: PXrmValue){.cdecl, dynlib: libX11, importc.}
-proc XrmPutResource*(para1: PXrmDatabase, para2: cstring, para3: cstring, 
-                     para4: PXrmValue){.cdecl, dynlib: libX11, importc.}
-proc XrmQPutStringResource*(para1: PXrmDatabase, para2: TXrmBindingList, 
-                            para3: TXrmQuarkList, para4: cstring){.cdecl, 
-    dynlib: libX11, importc.}
-proc XrmPutStringResource*(para1: PXrmDatabase, para2: cstring, para3: cstring){.
-    cdecl, dynlib: libX11, importc.}
-proc XrmPutLineResource*(para1: PXrmDatabase, para2: cstring){.cdecl, 
-    dynlib: libX11, importc.}
-proc XrmQGetResource*(para1: TXrmDatabase, para2: TXrmNameList, 
-                      para3: TXrmClassList, para4: PXrmRepresentation, 
-                      para5: PXrmValue): TBool{.cdecl, dynlib: libX11, importc.}
-proc XrmGetResource*(para1: TXrmDatabase, para2: cstring, para3: cstring, 
-                     para4: PPchar, para5: PXrmValue): TBool{.cdecl, 
-    dynlib: libX11, importc.}
-  # There is no definition of TXrmSearchList 
-  #function XrmQGetSearchList(para1:TXrmDatabase; para2:TXrmNameList; para3:TXrmClassList; para4:TXrmSearchList; para5:longint):TBool;cdecl;external libX11;
-  #function XrmQGetSearchResource(para1:TXrmSearchList; para2:TXrmName; para3:TXrmClass; para4:PXrmRepresentation; para5:PXrmValue):TBool;cdecl;external libX11;
-proc XrmSetDatabase*(para1: PDisplay, para2: TXrmDatabase){.cdecl, 
-    dynlib: libX11, importc.}
-proc XrmGetDatabase*(para1: PDisplay): TXrmDatabase{.cdecl, dynlib: libX11, 
-    importc.}
-proc XrmGetFileDatabase*(para1: cstring): TXrmDatabase{.cdecl, dynlib: libX11, 
-    importc.}
-proc XrmCombineFileDatabase*(para1: cstring, para2: PXrmDatabase, para3: TBool): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XrmGetStringDatabase*(para1: cstring): TXrmDatabase{.cdecl, dynlib: libX11, 
-    importc.}
-proc XrmPutFileDatabase*(para1: TXrmDatabase, para2: cstring){.cdecl, 
-    dynlib: libX11, importc.}
-proc XrmMergeDatabases*(para1: TXrmDatabase, para2: PXrmDatabase){.cdecl, 
-    dynlib: libX11, importc.}
-proc XrmCombineDatabase*(para1: TXrmDatabase, para2: PXrmDatabase, para3: TBool){.
-    cdecl, dynlib: libX11, importc.}
-const 
-  XrmEnumAllLevels* = 0
-  XrmEnumOneLevel* = 1
-
-type 
-  funcbool* = proc (): TBool {.cdecl.}
-
-proc XrmEnumerateDatabase*(para1: TXrmDatabase, para2: TXrmNameList, 
-                           para3: TXrmClassList, para4: int32, para5: funcbool, 
-                           para6: TXPointer): TBool{.cdecl, dynlib: libX11, 
-    importc.}
-proc XrmLocaleOfDatabase*(para1: TXrmDatabase): cstring{.cdecl, dynlib: libX11, 
-    importc.}
-type 
-  PXrmOptionKind* = ptr TXrmOptionKind
-  TXrmOptionKind* = enum 
-    XrmoptionNoArg, XrmoptionIsArg, XrmoptionStickyArg, XrmoptionSepArg, 
-    XrmoptionResArg, XrmoptionSkipArg, XrmoptionSkipLine, XrmoptionSkipNArgs
-  PXrmOptionDescRec* = ptr TXrmOptionDescRec
-  TXrmOptionDescRec*{.final.} = object 
-    option*: cstring
-    specifier*: cstring
-    argKind*: TXrmOptionKind
-    value*: TXPointer
-
-  TXrmOptionDescList* = PXrmOptionDescRec
-  PXrmOptionDescList* = ptr TXrmOptionDescList
-
-proc XrmParseCommand*(para1: PXrmDatabase, para2: TXrmOptionDescList, 
-                      para3: int32, para4: cstring, para5: ptr int32, 
-                      para6: PPchar){.cdecl, dynlib: libX11, importc.}
-# implementation
-
-proc NULLQUARK(): TXrmQuark = 
-  result = TXrmQuark(0)
-
-proc NULLSTRING(): TXrmString = 
-  result = nil
-
-when defined(MACROS): 
-  proc XrmStringsEqual(a1, a2: cstring): bool = 
-    result = (strcomp(a1, a2)) == 0
-
-  proc XrmNameToString(name: int32): TXrmString = 
-    result = XrmQuarkToString(name)
-
-  proc XrmStringToName(str: cstring): int32 = 
-    result = XrmStringToQuark(str)
-
-  proc XrmStringToNameList(str: cstring, name: PXrmQuark) = 
-    XrmStringToQuarkList(str, name)
-
-  proc XrmClassToString(c_class: int32): TXrmString = 
-    result = XrmQuarkToString(c_class)
-
-  proc XrmStringToClass(c_class: cstring): int32 = 
-    result = XrmStringToQuark(c_class)
-
-  proc XrmStringToClassList(str: cstring, c_class: PXrmQuark) = 
-    XrmStringToQuarkList(str, c_class)
-
-  proc XrmStringToRepresentation(str: cstring): int32 = 
-    result = XrmStringToQuark(str)
-
-  proc XrmRepresentationToString(thetype: int32): TXrmString = 
-    result = XrmQuarkToString(thetype)
diff --git a/lib/wrappers/x11/xshm.nim b/lib/wrappers/x11/xshm.nim
deleted file mode 100644
index e56bd87b1..000000000
--- a/lib/wrappers/x11/xshm.nim
+++ /dev/null
@@ -1,77 +0,0 @@
-
-import 
-  x, xlib
-
-#const 
-#  libX11* = "libX11.so"
-
-#
-#  Automatically converted by H2Pas 0.99.15 from xshm.h
-#  The following command line parameters were used:
-#    -p
-#    -T
-#    -S
-#    -d
-#    -c
-#    xshm.h
-#
-
-const 
-  constX_ShmQueryVersion* = 0
-  constX_ShmAttach* = 1
-  constX_ShmDetach* = 2
-  constX_ShmPutImage* = 3
-  constX_ShmGetImage* = 4
-  constX_ShmCreatePixmap* = 5
-  ShmCompletion* = 0
-  ShmNumberEvents* = ShmCompletion + 1
-  BadShmSeg* = 0
-  ShmNumberErrors* = BadShmSeg + 1
-
-type 
-  PShmSeg* = ptr TShmSeg
-  TShmSeg* = culong
-  PXShmCompletionEvent* = ptr TXShmCompletionEvent
-  TXShmCompletionEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    drawable*: TDrawable
-    major_code*: cint
-    minor_code*: cint
-    shmseg*: TShmSeg
-    offset*: culong
-
-  PXShmSegmentInfo* = ptr TXShmSegmentInfo
-  TXShmSegmentInfo*{.final.} = object 
-    shmseg*: TShmSeg
-    shmid*: cint
-    shmaddr*: cstring
-    readOnly*: TBool
-
-
-proc XShmQueryExtension*(para1: PDisplay): TBool{.cdecl, dynlib: libX11, importc.}
-proc XShmGetEventBase*(para1: PDisplay): cint{.cdecl, dynlib: libX11, importc.}
-proc XShmQueryVersion*(para1: PDisplay, para2: Pcint, para3: Pcint, para4: PBool): TBool{.
-    cdecl, dynlib: libX11, importc.}
-proc XShmPixmapFormat*(para1: PDisplay): cint{.cdecl, dynlib: libX11, importc.}
-proc XShmAttach*(para1: PDisplay, para2: PXShmSegmentInfo): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XShmDetach*(para1: PDisplay, para2: PXShmSegmentInfo): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XShmPutImage*(para1: PDisplay, para2: TDrawable, para3: TGC, 
-                   para4: PXImage, para5: cint, para6: cint, para7: cint, 
-                   para8: cint, para9: cuint, para10: cuint, para11: TBool): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XShmGetImage*(para1: PDisplay, para2: TDrawable, para3: PXImage, 
-                   para4: cint, para5: cint, para6: culong): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XShmCreateImage*(para1: PDisplay, para2: PVisual, para3: cuint, 
-                      para4: cint, para5: cstring, para6: PXShmSegmentInfo, 
-                      para7: cuint, para8: cuint): PXImage{.cdecl, 
-    dynlib: libX11, importc.}
-proc XShmCreatePixmap*(para1: PDisplay, para2: TDrawable, para3: cstring, 
-                       para4: PXShmSegmentInfo, para5: cuint, para6: cuint, 
-                       para7: cuint): TPixmap{.cdecl, dynlib: libX11, importc.}
-# implementation
diff --git a/lib/wrappers/x11/xutil.nim b/lib/wrappers/x11/xutil.nim
deleted file mode 100644
index 9a3435aa5..000000000
--- a/lib/wrappers/x11/xutil.nim
+++ /dev/null
@@ -1,412 +0,0 @@
-
-import 
-  x, xlib, keysym, unsigned
-
-#const 
-#  libX11* = "libX11.so"
-
-#
-#  Automatically converted by H2Pas 0.99.15 from xutil.h
-#  The following command line parameters were used:
-#    -p
-#    -T
-#    -S
-#    -d
-#    -c
-#    xutil.h
-#
-
-const 
-  NoValue* = 0x00000000
-  XValue* = 0x00000001
-  YValue* = 0x00000002
-  WidthValue* = 0x00000004
-  HeightValue* = 0x00000008
-  AllValues* = 0x0000000F
-  XNegative* = 0x00000010
-  YNegative* = 0x00000020
-
-type 
-  TCPoint*{.final.} = object 
-    x*: cint
-    y*: cint
-
-  PXSizeHints* = ptr TXSizeHints
-  TXSizeHints*{.final.} = object 
-    flags*: clong
-    x*, y*: cint
-    width*, height*: cint
-    min_width*, min_height*: cint
-    max_width*, max_height*: cint
-    width_inc*, height_inc*: cint
-    min_aspect*, max_aspect*: TCPoint
-    base_width*, base_height*: cint
-    win_gravity*: cint
-
-
-const 
-  USPosition* = 1 shl 0
-  USSize* = 1 shl 1
-  PPosition* = 1 shl 2
-  PSize* = 1 shl 3
-  PMinSize* = 1 shl 4
-  PMaxSize* = 1 shl 5
-  PResizeInc* = 1 shl 6
-  PAspect* = 1 shl 7
-  PBaseSize* = 1 shl 8
-  PWinGravity* = 1 shl 9
-  PAllHints* = PPosition or PSize or PMinSize or PMaxSize or PResizeInc or
-      PAspect
-
-type 
-  PXWMHints* = ptr TXWMHints
-  TXWMHints*{.final.} = object 
-    flags*: clong
-    input*: TBool
-    initial_state*: cint
-    icon_pixmap*: TPixmap
-    icon_window*: TWindow
-    icon_x*, icon_y*: cint
-    icon_mask*: TPixmap
-    window_group*: TXID
-
-
-const 
-  InputHint* = 1 shl 0
-  StateHint* = 1 shl 1
-  IconPixmapHint* = 1 shl 2
-  IconWindowHint* = 1 shl 3
-  IconPositionHint* = 1 shl 4
-  IconMaskHint* = 1 shl 5
-  WindowGroupHint* = 1 shl 6
-  AllHints* = InputHint or StateHint or IconPixmapHint or IconWindowHint or
-      IconPositionHint or IconMaskHint or WindowGroupHint
-  XUrgencyHint* = 1 shl 8
-  WithdrawnState* = 0
-  NormalState* = 1
-  IconicState* = 3
-  DontCareState* = 0
-  ZoomState* = 2
-  InactiveState* = 4
-
-type 
-  PXTextProperty* = ptr TXTextProperty
-  TXTextProperty*{.final.} = object 
-    value*: pcuchar
-    encoding*: TAtom
-    format*: cint
-    nitems*: culong
-
-
-const 
-  XNoMemory* = - 1
-  XLocaleNotSupported* = - 2
-  XConverterNotFound* = - 3
-
-type 
-  PXICCEncodingStyle* = ptr TXICCEncodingStyle
-  TXICCEncodingStyle* = enum 
-    XStringStyle, XCompoundTextStyle, XTextStyle, XStdICCTextStyle, 
-    XUTF8StringStyle
-  PPXIconSize* = ptr PXIconSize
-  PXIconSize* = ptr TXIconSize
-  TXIconSize*{.final.} = object 
-    min_width*, min_height*: cint
-    max_width*, max_height*: cint
-    width_inc*, height_inc*: cint
-
-  PXClassHint* = ptr TXClassHint
-  TXClassHint*{.final.} = object 
-    res_name*: cstring
-    res_class*: cstring
-
-
-type 
-  PXComposeStatus* = ptr TXComposeStatus
-  TXComposeStatus*{.final.} = object 
-    compose_ptr*: TXPointer
-    chars_matched*: cint
-
-
-type 
-  PXRegion* = ptr TXRegion
-  TXRegion*{.final.} = object 
-  TRegion* = PXRegion
-  PRegion* = ptr TRegion
-
-const 
-  RectangleOut* = 0
-  RectangleIn* = 1
-  RectanglePart* = 2
-
-type 
-  PXVisualInfo* = ptr TXVisualInfo
-  TXVisualInfo*{.final.} = object 
-    visual*: PVisual
-    visualid*: TVisualID
-    screen*: cint
-    depth*: cint
-    class*: cint
-    red_mask*: culong
-    green_mask*: culong
-    blue_mask*: culong
-    colormap_size*: cint
-    bits_per_rgb*: cint
-
-
-const 
-  VisualNoMask* = 0x00000000
-  VisualIDMask* = 0x00000001
-  VisualScreenMask* = 0x00000002
-  VisualDepthMask* = 0x00000004
-  VisualClassMask* = 0x00000008
-  VisualRedMaskMask* = 0x00000010
-  VisualGreenMaskMask* = 0x00000020
-  VisualBlueMaskMask* = 0x00000040
-  VisualColormapSizeMask* = 0x00000080
-  VisualBitsPerRGBMask* = 0x00000100
-  VisualAllMask* = 0x000001FF
-
-type 
-  PPXStandardColormap* = ptr PXStandardColormap
-  PXStandardColormap* = ptr TXStandardColormap
-  TXStandardColormap*{.final.} = object 
-    colormap*: TColormap
-    red_max*: culong
-    red_mult*: culong
-    green_max*: culong
-    green_mult*: culong
-    blue_max*: culong
-    blue_mult*: culong
-    base_pixel*: culong
-    visualid*: TVisualID
-    killid*: TXID
-
-
-const 
-  BitmapSuccess* = 0
-  BitmapOpenFailed* = 1
-  BitmapFileInvalid* = 2
-  BitmapNoMemory* = 3
-  XCSUCCESS* = 0
-  XCNOMEM* = 1
-  XCNOENT* = 2
-  ReleaseByFreeingColormap*: TXID = TXID(1)
-
-type 
-  PXContext* = ptr TXContext
-  TXContext* = cint
-
-proc XAllocClassHint*(): PXClassHint{.cdecl, dynlib: libX11, importc.}
-proc XAllocIconSize*(): PXIconSize{.cdecl, dynlib: libX11, importc.}
-proc XAllocSizeHints*(): PXSizeHints{.cdecl, dynlib: libX11, importc.}
-proc XAllocStandardColormap*(): PXStandardColormap{.cdecl, dynlib: libX11, 
-    importc.}
-proc XAllocWMHints*(): PXWMHints{.cdecl, dynlib: libX11, importc.}
-proc XClipBox*(para1: TRegion, para2: PXRectangle): cint{.cdecl, dynlib: libX11, 
-    importc.}
-proc XCreateRegion*(): TRegion{.cdecl, dynlib: libX11, importc.}
-proc XDefaultString*(): cstring{.cdecl, dynlib: libX11, importc.}
-proc XDeleteContext*(para1: PDisplay, para2: TXID, para3: TXContext): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XDestroyRegion*(para1: TRegion): cint{.cdecl, dynlib: libX11, importc.}
-proc XEmptyRegion*(para1: TRegion): cint{.cdecl, dynlib: libX11, importc.}
-proc XEqualRegion*(para1: TRegion, para2: TRegion): cint{.cdecl, dynlib: libX11, 
-    importc.}
-proc XFindContext*(para1: PDisplay, para2: TXID, para3: TXContext, 
-                   para4: PXPointer): cint{.cdecl, dynlib: libX11, importc.}
-proc XGetClassHint*(para1: PDisplay, para2: TWindow, para3: PXClassHint): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XGetIconSizes*(para1: PDisplay, para2: TWindow, para3: PPXIconSize, 
-                    para4: Pcint): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XGetNormalHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XGetRGBColormaps*(para1: PDisplay, para2: TWindow, 
-                       para3: PPXStandardColormap, para4: Pcint, para5: TAtom): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XGetSizeHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints, 
-                    para4: TAtom): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XGetStandardColormap*(para1: PDisplay, para2: TWindow, 
-                           para3: PXStandardColormap, para4: TAtom): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XGetTextProperty*(para1: PDisplay, para2: TWindow, para3: PXTextProperty, 
-                       para4: TAtom): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XGetVisualInfo*(para1: PDisplay, para2: clong, para3: PXVisualInfo, 
-                     para4: Pcint): PXVisualInfo{.cdecl, dynlib: libX11, importc.}
-proc XGetWMClientMachine*(para1: PDisplay, para2: TWindow, para3: PXTextProperty): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XGetWMHints*(para1: PDisplay, para2: TWindow): PXWMHints{.cdecl, 
-    dynlib: libX11, importc.}
-proc XGetWMIconName*(para1: PDisplay, para2: TWindow, para3: PXTextProperty): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XGetWMName*(para1: PDisplay, para2: TWindow, para3: PXTextProperty): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XGetWMNormalHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints, 
-                        para4: ptr int): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XGetWMSizeHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints, 
-                      para4: ptr int, para5: TAtom): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XGetZoomHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XIntersectRegion*(para1: TRegion, para2: TRegion, para3: TRegion): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XConvertCase*(para1: TKeySym, para2: PKeySym, para3: PKeySym){.cdecl, 
-    dynlib: libX11, importc.}
-proc XLookupString*(para1: PXKeyEvent, para2: cstring, para3: cint, 
-                    para4: PKeySym, para5: PXComposeStatus): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XMatchVisualInfo*(para1: PDisplay, para2: cint, para3: cint, para4: cint, 
-                       para5: PXVisualInfo): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XOffsetRegion*(para1: TRegion, para2: cint, para3: cint): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XPointInRegion*(para1: TRegion, para2: cint, para3: cint): TBool{.cdecl, 
-    dynlib: libX11, importc.}
-proc XPolygonRegion*(para1: PXPoint, para2: cint, para3: cint): TRegion{.cdecl, 
-    dynlib: libX11, importc.}
-proc XRectInRegion*(para1: TRegion, para2: cint, para3: cint, para4: cuint, 
-                    para5: cuint): cint{.cdecl, dynlib: libX11, importc.}
-proc XSaveContext*(para1: PDisplay, para2: TXID, para3: TXContext, 
-                   para4: cstring): cint{.cdecl, dynlib: libX11, importc.}
-proc XSetClassHint*(para1: PDisplay, para2: TWindow, para3: PXClassHint): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XSetIconSizes*(para1: PDisplay, para2: TWindow, para3: PXIconSize, 
-                    para4: cint): cint{.cdecl, dynlib: libX11, importc.}
-proc XSetNormalHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XSetRGBColormaps*(para1: PDisplay, para2: TWindow, 
-                       para3: PXStandardColormap, para4: cint, para5: TAtom){.
-    cdecl, dynlib: libX11, importc.}
-proc XSetSizeHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints, 
-                    para4: TAtom): cint{.cdecl, dynlib: libX11, importc.}
-proc XSetStandardProperties*(para1: PDisplay, para2: TWindow, para3: cstring, 
-                             para4: cstring, para5: TPixmap, para6: PPchar, 
-                             para7: cint, para8: PXSizeHints): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XSetTextProperty*(para1: PDisplay, para2: TWindow, para3: PXTextProperty, 
-                       para4: TAtom){.cdecl, dynlib: libX11, importc.}
-proc XSetWMClientMachine*(para1: PDisplay, para2: TWindow, para3: PXTextProperty){.
-    cdecl, dynlib: libX11, importc.}
-proc XSetWMHints*(para1: PDisplay, para2: TWindow, para3: PXWMHints): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XSetWMIconName*(para1: PDisplay, para2: TWindow, para3: PXTextProperty){.
-    cdecl, dynlib: libX11, importc.}
-proc XSetWMName*(para1: PDisplay, para2: TWindow, para3: PXTextProperty){.cdecl, 
-    dynlib: libX11, importc.}
-proc XSetWMNormalHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints){.
-    cdecl, dynlib: libX11, importc.}
-proc XSetWMProperties*(para1: PDisplay, para2: TWindow, para3: PXTextProperty, 
-                       para4: PXTextProperty, para5: PPchar, para6: cint, 
-                       para7: PXSizeHints, para8: PXWMHints, para9: PXClassHint){.
-    cdecl, dynlib: libX11, importc.}
-proc XmbSetWMProperties*(para1: PDisplay, para2: TWindow, para3: cstring, 
-                         para4: cstring, para5: PPchar, para6: cint, 
-                         para7: PXSizeHints, para8: PXWMHints, 
-                         para9: PXClassHint){.cdecl, dynlib: libX11, importc.}
-proc Xutf8SetWMProperties*(para1: PDisplay, para2: TWindow, para3: cstring, 
-                           para4: cstring, para5: PPchar, para6: cint, 
-                           para7: PXSizeHints, para8: PXWMHints, 
-                           para9: PXClassHint){.cdecl, dynlib: libX11, importc.}
-proc XSetWMSizeHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints, 
-                      para4: TAtom){.cdecl, dynlib: libX11, importc.}
-proc XSetRegion*(para1: PDisplay, para2: TGC, para3: TRegion): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XSetStandardColormap*(para1: PDisplay, para2: TWindow, 
-                           para3: PXStandardColormap, para4: TAtom){.cdecl, 
-    dynlib: libX11, importc.}
-proc XSetZoomHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XShrinkRegion*(para1: TRegion, para2: cint, para3: cint): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XStringListToTextProperty*(para1: PPchar, para2: cint, 
-                                para3: PXTextProperty): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XSubtractRegion*(para1: TRegion, para2: TRegion, para3: TRegion): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XmbTextListToTextProperty*(para1: PDisplay, para2: PPchar, para3: cint, 
-                                para4: TXICCEncodingStyle, para5: PXTextProperty): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XwcTextListToTextProperty*(para1: PDisplay, para2: ptr ptr int16, para3: cint, 
-                                para4: TXICCEncodingStyle, para5: PXTextProperty): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc Xutf8TextListToTextProperty*(para1: PDisplay, para2: PPchar, para3: cint, 
-                                  para4: TXICCEncodingStyle, 
-                                  para5: PXTextProperty): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XwcFreeStringList*(para1: ptr ptr int16){.cdecl, dynlib: libX11, importc.}
-proc XTextPropertyToStringList*(para1: PXTextProperty, para2: PPPchar, 
-                                para3: Pcint): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XmbTextPropertyToTextList*(para1: PDisplay, para2: PXTextProperty, 
-                                para3: PPPchar, para4: Pcint): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XwcTextPropertyToTextList*(para1: PDisplay, para2: PXTextProperty, 
-                                para3: ptr ptr ptr int16, para4: Pcint): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc Xutf8TextPropertyToTextList*(para1: PDisplay, para2: PXTextProperty, 
-                                  para3: PPPchar, para4: Pcint): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XUnionRectWithRegion*(para1: PXRectangle, para2: TRegion, para3: TRegion): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XUnionRegion*(para1: TRegion, para2: TRegion, para3: TRegion): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XWMGeometry*(para1: PDisplay, para2: cint, para3: cstring, para4: cstring, 
-                  para5: cuint, para6: PXSizeHints, para7: Pcint, para8: Pcint, 
-                  para9: Pcint, para10: Pcint, para11: Pcint): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XXorRegion*(para1: TRegion, para2: TRegion, para3: TRegion): cint{.cdecl, 
-    dynlib: libX11, importc.}
-#when defined(MACROS): 
-proc XDestroyImage*(ximage: PXImage): cint
-proc XGetPixel*(ximage: PXImage, x, y: cint): culong
-proc XPutPixel*(ximage: PXImage, x, y: cint, pixel: culong): cint
-proc XSubImage*(ximage: PXImage, x, y: cint, width, height: cuint): PXImage
-proc XAddPixel*(ximage: PXImage, value: clong): cint
-proc IsKeypadKey*(keysym: TKeySym): bool
-proc IsPrivateKeypadKey*(keysym: TKeySym): bool
-proc IsCursorKey*(keysym: TKeySym): bool
-proc IsPFKey*(keysym: TKeySym): bool
-proc IsFunctionKey*(keysym: TKeySym): bool
-proc IsMiscFunctionKey*(keysym: TKeySym): bool
-proc IsModifierKey*(keysym: TKeySym): bool
-  #function XUniqueContext : TXContext;
-  #function XStringToContext(_string : Pchar) : TXContext;
-# implementation
-
-#when defined(MACROS): 
-proc XDestroyImage(ximage: PXImage): cint = 
-  ximage.f.destroy_image(ximage)
-
-proc XGetPixel(ximage: PXImage, x, y: cint): culong = 
-  ximage.f.get_pixel(ximage, x, y)
-
-proc XPutPixel(ximage: PXImage, x, y: cint, pixel: culong): cint = 
-  ximage.f.put_pixel(ximage, x, y, pixel)
-
-proc XSubImage(ximage: PXImage, x, y: cint, width, height: cuint): PXImage = 
-  ximage.f.sub_image(ximage, x, y, width, height)
-
-proc XAddPixel(ximage: PXImage, value: clong): cint = 
-  ximage.f.add_pixel(ximage, value)
-
-proc IsKeypadKey(keysym: TKeySym): bool = 
-  (keysym >= XK_KP_Space) and (keysym <= XK_KP_Equal)
-
-proc IsPrivateKeypadKey(keysym: TKeySym): bool = 
-  (keysym >= 0x11000000.TKeySym) and (keysym <= 0x1100FFFF.TKeySym)
-
-proc IsCursorKey(keysym: TKeySym): bool = 
-  (keysym >= XK_Home) and (keysym < XK_Select)
-
-proc IsPFKey(keysym: TKeySym): bool = 
-  (keysym >= XK_KP_F1) and (keysym <= XK_KP_F4)
-
-proc IsFunctionKey(keysym: TKeySym): bool = 
-  (keysym >= XK_F1) and (keysym <= XK_F35)
-
-proc IsMiscFunctionKey(keysym: TKeySym): bool = 
-  (keysym >= XK_Select) and (keysym <= XK_Break)
-
-proc IsModifierKey(keysym: TKeySym): bool = 
-  ((keysym >= XK_Shift_L) And (keysym <= XK_Hyper_R)) Or
-      (keysym == XK_Mode_switch) Or (keysym == XK_Num_Lock)
diff --git a/lib/wrappers/x11/xv.nim b/lib/wrappers/x11/xv.nim
deleted file mode 100644
index 45ab61418..000000000
--- a/lib/wrappers/x11/xv.nim
+++ /dev/null
@@ -1,84 +0,0 @@
-#***********************************************************
-#Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
-#and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
-#
-#                        All Rights Reserved
-#
-#Permission to use, copy, modify, and distribute this software and its 
-#documentation for any purpose and without fee is hereby granted, 
-#provided that the above copyright notice appear in all copies and that
-#both that copyright notice and this permission notice appear in 
-#supporting documentation, and that the names of Digital or MIT not be
-#used in advertising or publicity pertaining to distribution of the
-#software without specific, written prior permission.  
-#
-#DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-#ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-#DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-#ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-#WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-#ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-#SOFTWARE.
-#
-#******************************************************************
-# $XFree86: xc/include/extensions/Xv.h,v 1.3 1999/05/23 06:33:22 dawes Exp $ 
-
-import 
-  x
-
-const 
-  XvName* = "libXVideo.so"
-  XvVersion* = 2
-  XvRevision* = 2             # Symbols 
-
-type 
-  TXvPortID* = TXID
-  TXvEncodingID* = TXID
-
-const 
-  XvNone* = 0
-  XvInput* = 0
-  XvOutput* = 1
-  XvInputMask* = 1 shl XvInput
-  XvOutputMask* = 1 shl XvOutput
-  XvVideoMask* = 0x00000004
-  XvStillMask* = 0x00000008
-  XvImageMask* = 0x00000010   # These two are not client viewable 
-  XvPixmapMask* = 0x00010000
-  XvWindowMask* = 0x00020000
-  XvGettable* = 0x00000001
-  XvSettable* = 0x00000002
-  XvRGB* = 0
-  XvYUV* = 1
-  XvPacked* = 0
-  XvPlanar* = 1
-  XvTopToBottom* = 0
-  XvBottomToTop* = 1          # Events 
-  XvVideoNotify* = 0
-  XvPortNotify* = 1
-  XvNumEvents* = 2            # Video Notify Reasons 
-  XvStarted* = 0
-  XvStopped* = 1
-  XvBusy* = 2
-  XvPreempted* = 3
-  XvHardError* = 4
-  XvLastReason* = 4
-  XvNumReasons* = XvLastReason + 1
-  XvStartedMask* = 1 shl XvStarted
-  XvStoppedMask* = 1 shl XvStopped
-  XvBusyMask* = 1 shl XvBusy
-  XvPreemptedMask* = 1 shl XvPreempted
-  XvHardErrorMask* = 1 shl XvHardError
-  XvAnyReasonMask* = (1 shl XvNumReasons) - 1
-  XvNoReasonMask* = 0         # Errors 
-  XvBadPort* = 0
-  XvBadEncoding* = 1
-  XvBadControl* = 2
-  XvNumErrors* = 3            # Status 
-  XvBadExtension* = 1
-  XvAlreadyGrabbed* = 2
-  XvInvalidTime* = 3
-  XvBadReply* = 4
-  XvBadAlloc* = 5
-
-# implementation
diff --git a/lib/wrappers/x11/xvlib.nim b/lib/wrappers/x11/xvlib.nim
deleted file mode 100644
index 19fd0d000..000000000
--- a/lib/wrappers/x11/xvlib.nim
+++ /dev/null
@@ -1,234 +0,0 @@
-#***********************************************************
-#Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
-#and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
-#
-#                        All Rights Reserved
-#
-#Permission to use, copy, modify, and distribute this software and its 
-#documentation for any purpose and without fee is hereby granted, 
-#provided that the above copyright notice appear in all copies and that
-#both that copyright notice and this permission notice appear in 
-#supporting documentation, and that the names of Digital or MIT not be
-#used in advertising or publicity pertaining to distribution of the
-#software without specific, written prior permission.  
-#
-#DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-#ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-#DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-#ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-#WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-#ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-#SOFTWARE.
-#
-#******************************************************************
-# $XFree86: xc/include/extensions/Xvlib.h,v 1.3 1999/12/11 19:28:48 mvojkovi Exp $ 
-#*
-#** File: 
-#**
-#**   Xvlib.h --- Xv library public header file
-#**
-#** Author: 
-#**
-#**   David Carver (Digital Workstation Engineering/Project Athena)
-#**
-#** Revisions:
-#**
-#**   26.06.91 Carver
-#**     - changed XvFreeAdaptors to XvFreeAdaptorInfo
-#**     - changed XvFreeEncodings to XvFreeEncodingInfo
-#**
-#**   11.06.91 Carver
-#**     - changed SetPortControl to SetPortAttribute
-#**     - changed GetPortControl to GetPortAttribute
-#**     - changed QueryBestSize
-#**
-#**   05.15.91 Carver
-#**     - version 2.0 upgrade
-#**
-#**   01.24.91 Carver
-#**     - version 1.4 upgrade
-#**
-#*
-
-import 
-  x, xlib, xshm, xv
-
-const 
-  libXv* = "libXv.so"
-
-type 
-  PXvRational* = ptr TXvRational
-  TXvRational*{.final.} = object 
-    numerator*: cint
-    denominator*: cint
-
-  PXvAttribute* = ptr TXvAttribute
-  TXvAttribute*{.final.} = object 
-    flags*: cint              # XvGettable, XvSettable 
-    min_value*: cint
-    max_value*: cint
-    name*: cstring
-
-  PPXvEncodingInfo* = ptr PXvEncodingInfo
-  PXvEncodingInfo* = ptr TXvEncodingInfo
-  TXvEncodingInfo*{.final.} = object 
-    encoding_id*: TXvEncodingID
-    name*: cstring
-    width*: culong
-    height*: culong
-    rate*: TXvRational
-    num_encodings*: culong
-
-  PXvFormat* = ptr TXvFormat
-  TXvFormat*{.final.} = object 
-    depth*: cchar
-    visual_id*: culong
-
-  PPXvAdaptorInfo* = ptr PXvAdaptorInfo
-  PXvAdaptorInfo* = ptr TXvAdaptorInfo
-  TXvAdaptorInfo*{.final.} = object 
-    base_id*: TXvPortID
-    num_ports*: culong
-    thetype*: cchar
-    name*: cstring
-    num_formats*: culong
-    formats*: PXvFormat
-    num_adaptors*: culong
-
-  PXvVideoNotifyEvent* = ptr TXvVideoNotifyEvent
-  TXvVideoNotifyEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong           # # of last request processed by server 
-    send_event*: TBool        # true if this came from a SendEvent request 
-    display*: PDisplay        # Display the event was read from 
-    drawable*: TDrawable      # drawable 
-    reason*: culong           # what generated this event 
-    port_id*: TXvPortID       # what port 
-    time*: TTime              # milliseconds 
-  
-  PXvPortNotifyEvent* = ptr TXvPortNotifyEvent
-  TXvPortNotifyEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong           # # of last request processed by server 
-    send_event*: TBool        # true if this came from a SendEvent request 
-    display*: PDisplay        # Display the event was read from 
-    port_id*: TXvPortID       # what port 
-    time*: TTime              # milliseconds 
-    attribute*: TAtom         # atom that identifies attribute 
-    value*: clong             # value of attribute 
-  
-  PXvEvent* = ptr TXvEvent
-  TXvEvent*{.final.} = object 
-    pad*: array[0..23, clong] #case longint of
-                              #      0 : (
-                              #            theType : cint;
-                              #	  );
-                              #      1 : (
-                              #            xvvideo : TXvVideoNotifyEvent;
-                              #          );
-                              #      2 : (
-                              #            xvport : TXvPortNotifyEvent;
-                              #          );
-                              #      3 : (
-                              #            
-                              #          );
-  
-  PXvImageFormatValues* = ptr TXvImageFormatValues
-  TXvImageFormatValues*{.final.} = object 
-    id*: cint                 # Unique descriptor for the format 
-    theType*: cint            # XvRGB, XvYUV 
-    byte_order*: cint         # LSBFirst, MSBFirst 
-    guid*: array[0..15, cchar] # Globally Unique IDentifier 
-    bits_per_pixel*: cint
-    format*: cint             # XvPacked, XvPlanar 
-    num_planes*: cint         # for RGB formats only 
-    depth*: cint
-    red_mask*: cuint
-    green_mask*: cuint
-    blue_mask*: cuint         # for YUV formats only 
-    y_sample_bits*: cuint
-    u_sample_bits*: cuint
-    v_sample_bits*: cuint
-    horz_y_period*: cuint
-    horz_u_period*: cuint
-    horz_v_period*: cuint
-    vert_y_period*: cuint
-    vert_u_period*: cuint
-    vert_v_period*: cuint
-    component_order*: array[0..31, char] # eg. UYVY 
-    scanline_order*: cint     # XvTopToBottom, XvBottomToTop 
-  
-  PXvImage* = ptr TXvImage
-  TXvImage*{.final.} = object 
-    id*: cint
-    width*, height*: cint
-    data_size*: cint          # bytes 
-    num_planes*: cint
-    pitches*: pcint           # bytes 
-    offsets*: pcint           # bytes 
-    data*: pointer
-    obdata*: TXPointer
-
-
-proc XvQueryExtension*(display: PDisplay, p_version, p_revision, p_requestBase, 
-    p_eventBase, p_errorBase: pcuint): cint{.cdecl, dynlib: libXv, importc.}
-proc XvQueryAdaptors*(display: PDisplay, window: TWindow, p_nAdaptors: pcuint, 
-                      p_pAdaptors: PPXvAdaptorInfo): cint{.cdecl, dynlib: libXv, 
-    importc.}
-proc XvQueryEncodings*(display: PDisplay, port: TXvPortID, p_nEncoding: pcuint, 
-                       p_pEncoding: PPXvEncodingInfo): cint{.cdecl, 
-    dynlib: libXv, importc.}
-proc XvPutVideo*(display: PDisplay, port: TXvPortID, d: TDrawable, gc: TGC, 
-                 vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{.
-    cdecl, dynlib: libXv, importc.}
-proc XvPutStill*(display: PDisplay, port: TXvPortID, d: TDrawable, gc: TGC, 
-                 vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{.
-    cdecl, dynlib: libXv, importc.}
-proc XvGetVideo*(display: PDisplay, port: TXvPortID, d: TDrawable, gc: TGC, 
-                 vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{.
-    cdecl, dynlib: libXv, importc.}
-proc XvGetStill*(display: PDisplay, port: TXvPortID, d: TDrawable, gc: TGC, 
-                 vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{.
-    cdecl, dynlib: libXv, importc.}
-proc XvStopVideo*(display: PDisplay, port: TXvPortID, drawable: TDrawable): cint{.
-    cdecl, dynlib: libXv, importc.}
-proc XvGrabPort*(display: PDisplay, port: TXvPortID, time: TTime): cint{.cdecl, 
-    dynlib: libXv, importc.}
-proc XvUngrabPort*(display: PDisplay, port: TXvPortID, time: TTime): cint{.
-    cdecl, dynlib: libXv, importc.}
-proc XvSelectVideoNotify*(display: PDisplay, drawable: TDrawable, onoff: TBool): cint{.
-    cdecl, dynlib: libXv, importc.}
-proc XvSelectPortNotify*(display: PDisplay, port: TXvPortID, onoff: TBool): cint{.
-    cdecl, dynlib: libXv, importc.}
-proc XvSetPortAttribute*(display: PDisplay, port: TXvPortID, attribute: TAtom, 
-                         value: cint): cint{.cdecl, dynlib: libXv, importc.}
-proc XvGetPortAttribute*(display: PDisplay, port: TXvPortID, attribute: TAtom, 
-                         p_value: pcint): cint{.cdecl, dynlib: libXv, importc.}
-proc XvQueryBestSize*(display: PDisplay, port: TXvPortID, motion: TBool, 
-                      vid_w, vid_h, drw_w, drw_h: cuint, 
-                      p_actual_width, p_actual_height: pcuint): cint{.cdecl, 
-    dynlib: libXv, importc.}
-proc XvQueryPortAttributes*(display: PDisplay, port: TXvPortID, number: pcint): PXvAttribute{.
-    cdecl, dynlib: libXv, importc.}
-proc XvFreeAdaptorInfo*(adaptors: PXvAdaptorInfo){.cdecl, dynlib: libXv, importc.}
-proc XvFreeEncodingInfo*(encodings: PXvEncodingInfo){.cdecl, dynlib: libXv, 
-    importc.}
-proc XvListImageFormats*(display: PDisplay, port_id: TXvPortID, 
-                         count_return: pcint): PXvImageFormatValues{.cdecl, 
-    dynlib: libXv, importc.}
-proc XvCreateImage*(display: PDisplay, port: TXvPortID, id: cint, data: pointer, 
-                    width, height: cint): PXvImage{.cdecl, dynlib: libXv, 
-    importc.}
-proc XvPutImage*(display: PDisplay, id: TXvPortID, d: TDrawable, gc: TGC, 
-                 image: PXvImage, src_x, src_y: cint, src_w, src_h: cuint, 
-                 dest_x, dest_y: cint, dest_w, dest_h: cuint): cint{.cdecl, 
-    dynlib: libXv, importc.}
-proc XvShmPutImage*(display: PDisplay, id: TXvPortID, d: TDrawable, gc: TGC, 
-                    image: PXvImage, src_x, src_y: cint, src_w, src_h: cuint, 
-                    dest_x, dest_y: cint, dest_w, dest_h: cuint, 
-                    send_event: TBool): cint{.cdecl, dynlib: libXv, importc.}
-proc XvShmCreateImage*(display: PDisplay, port: TXvPortID, id: cint, 
-                       data: pointer, width, height: cint, 
-                       shminfo: PXShmSegmentInfo): PXvImage{.cdecl, 
-    dynlib: libXv, importc.}
-# implementation
diff --git a/tests/compile/tgeneric.nim b/tests/compile/tgeneric.nim
index 8bda15c42..9292b729f 100644
--- a/tests/compile/tgeneric.nim
+++ b/tests/compile/tgeneric.nim
@@ -8,4 +8,12 @@ proc foo(models: seq[TTable[string, float]]): seq[float] =
   for model in models.items:
     result.add model["foobar"]
 
+# bug #686
+type TType[T; A] = array[A, T]
+
+proc foo[T](p: TType[T, range[0..1]]) =
+  echo "foo"
+proc foo[T](p: TType[T, range[0..2]]) =
+  echo "bar"
+
 
diff --git a/tests/compile/ttempl3.nim b/tests/compile/ttempl3.nim
index 361d11f6e..59be24624 100644
--- a/tests/compile/ttempl3.nim
+++ b/tests/compile/ttempl3.nim
@@ -2,7 +2,7 @@
 template withOpenFile(f: expr, filename: string, mode: TFileMode,
                       actions: stmt): stmt {.immediate.} =
   block:
-    # test that 'f' is implicitely 'injecting':
+    # test that 'f' is implicitly 'injecting':
     var f: TFile
     if open(f, filename, mode):
       try:
diff --git a/tests/reject/twrongiter.nim b/tests/reject/twrongiter.nim
new file mode 100644
index 000000000..2d2502a6a
--- /dev/null
+++ b/tests/reject/twrongiter.nim
@@ -0,0 +1,13 @@
+discard """
+line: 14
+errormsg: "type mismatch"
+"""
+
+proc first(it: iterator(): int): seq[int] =
+  return @[]
+
+iterator primes(): int =
+  yield 1
+
+for i in first(primes):
+  break
diff --git a/tests/run/tdrdobbs_examples.nim b/tests/run/tdrdobbs_examples.nim
new file mode 100644
index 000000000..d1e0585d2
--- /dev/null
+++ b/tests/run/tdrdobbs_examples.nim
@@ -0,0 +1,134 @@
+discard """
+  output: '''108
+11 -1 1936
+4.000000000000002-e001
+true
+truefalse'''
+"""
+
+proc `++`(x: var int; y: int = 1; z: int = 0) =
+  x = x + y + z
+
+var g = 70
+++g
+g ++ 7
+g.`++`(10, 20)
+echo g 
+
+
+#let lv = stdin.readline
+#var vv = stdin.readline
+#vv = "abc" # valid, reassignment allowed
+#lv = "abc" # fails at compile time
+
+#proc square(x: int): int = x*x
+
+template square(x: int): int =
+  # ensure 'x' is only evaluated once:
+  let y = x
+  y * y
+
+proc mostSignificantBit(n: int): int =
+  # naive algorithm:
+  var n = n
+  while n != 0:
+    n = n shr 1
+    result += 1
+  result -= 1
+
+const msb3999 = mostSignificantBit(3999)
+
+echo msb3999, " ", mostSignificantBit(0), " ", square(44)
+
+proc filter[T](a: openarray[T], predicate: proc (x: T): bool): seq[T] =
+  result = @[] # @[] constructs the empty seq
+  for x in a:
+    if predicate(x): result.add(x)
+
+proc map[T, S](a: openarray[T], fn: proc (x: T): S): seq[S] =
+  newSeq(result, a.len)
+  for i in 0 .. <a.len: result[i] = fn(a[i])
+
+
+type
+  FormulaKind = enum
+    fkVar,        ## element is a variable like 'X'
+    fkLit,        ## element is a literal like 0.1
+    fkAdd,        ## element is an addition operation
+    fkMul,        ## element is a multiplication operation
+    fkExp         ## element is an exponentiation operation 
+
+type
+  Formula = ref object
+    case kind: FormulaKind
+    of fkVar: name: string
+    of fkLit: value: float
+    of fkAdd, fkMul, fkExp: left, right: Formula
+
+from math import pow
+
+proc evaluate(n: Formula, varToVal: proc (name: string): float): float =
+  case n.kind
+  of fkVar: varToVal(n.name)
+  of fkLit: n.value
+  of fkAdd: evaluate(n.left, varToVal) + evaluate(n.right, varToVal)
+  of fkMul: evaluate(n.left, varToVal) * evaluate(n.right, varToVal)
+  of fkExp: pow(evaluate(n.left, varToVal), evaluate(n.right, varToVal))
+
+echo evaluate(Formula(kind: fkLit, value: 0.4), nil)
+
+proc isPolyTerm(n: Formula): bool =
+  n.kind == fkMul and n.left.kind == fkLit and (let e = n.right; 
+    e.kind == fkExp and e.left.kind == fkVar and e.right.kind == fkLit)
+
+proc isPolynomial(n: Formula): bool =
+  isPolyTerm(n) or 
+    (n.kind == fkAdd and isPolynomial(n.left) and isPolynomial(n.right))
+
+let myFormula = Formula(kind: fkMul,
+                        left: Formula(kind: fkLit, value: 2.0),
+                        right: Formula(kind: fkExp, 
+                          left: Formula(kind: fkVar, name: "x"),
+                          right: Formula(kind: fkLit, value: 5.0)))
+
+echo isPolyTerm(myFormula)
+
+proc pat2kind(pattern: string): FormulaKind =
+  case pattern
+  of "^": fkExp
+  of "*": fkMul
+  of "+": fkAdd
+  of "x": fkVar
+  of "c": fkLit
+  else:   fkVar # no error reporting for reasons of simplicity
+
+import macros
+
+proc matchAgainst(n, pattern: PNimrodNode): PNimrodNode {.compileTime.} =
+  template `@`(current, field: expr): expr =
+    newDotExpr(current, newIdentNode(astToStr(field)))
+
+  template `==@`(n, pattern: expr): expr =
+    newCall("==", n@kind, newIdentNode($pat2kind($pattern.ident)))
+
+  case pattern.kind
+  of CallNodes:
+    result = newCall("and",
+      n ==@ pattern[0],
+      matchAgainst(n@left, pattern[1]))
+    if pattern.len == 3:
+      result = newCall("and", result.copy,
+        matchAgainst(n@right, pattern[2]))
+  of nnkIdent:
+    result = n ==@ pattern
+  of nnkPar:
+    result = matchAgainst(n, pattern[0])
+  else:
+    error "invalid pattern"
+
+macro `=~` (n: Formula, pattern: expr): bool =
+  result = matchAgainst(n, pattern)
+
+proc isPolyTerm2(n: Formula): bool = n =~ c * x^c
+
+echo isPolyTerm2(myFormula), isPolyTerm2(Formula(kind: fkLit, value: 0.7))
diff --git a/tests/run/tvarious1.nim b/tests/run/tvarious1.nim
index 9dd4af606..6e4612ae3 100644
--- a/tests/run/tvarious1.nim
+++ b/tests/run/tvarious1.nim
@@ -2,7 +2,8 @@ discard """
   file: "tlenopenarray.nim"
   output: '''1
 0
-Whopie'''
+Whopie
+12'''
 """
 
 echo len([1_000_000]) #OUT 1
@@ -27,3 +28,14 @@ var w = TWidget(names: initQueue[string]())
 add(w.names, "Whopie")
 
 for n in w.names: echo(n)
+
+# bug #681
+
+type TSomeRange = object
+  hour: range[0..23]
+
+var value: string
+var val12 = TSomeRange(hour: 12)
+
+value = $(if val12.hour > 12: val12.hour - 12 else: val12.hour)
+echo value
diff --git a/tests/showoff/tformatopt.nim b/tests/showoff/tformatopt.nim
new file mode 100644
index 000000000..f33ed6921
--- /dev/null
+++ b/tests/showoff/tformatopt.nim
@@ -0,0 +1,57 @@
+discard """
+  output: '''(a: 3
+b: 4
+s: abc
+)'''
+"""
+
+import macros
+
+proc invalidFormatString() =
+  echo "invalidFormatString"
+
+template formatImpl(handleChar: expr) =
+  var i = 0
+  while i < f.len:
+    if f[i] == '$':
+      case f[i+1]
+      of '1'..'9':
+        var j = 0
+        i += 1
+        while f[i] in {'0'..'9'}:
+          j = j * 10 + ord(f[i]) - ord('0')
+          i += 1
+        result.add(a[j-1])
+      else:
+        invalidFormatString()
+    else:
+      result.add(handleChar(f[i]))
+      i += 1
+
+proc `%`*(f: string, a: openArray[string]): string =
+  template identity(x: expr): expr = x
+  result = ""
+  formatImpl(identity)
+
+macro optFormat{`%`(f, a)}(f: string{lit}, a: openArray[string]): expr =
+  result = newNimNode(nnkBracket)
+  let f = f.strVal
+  formatImpl(newLit)
+  result = nestList(!"&", result)
+
+template optAdd1{x = y; add(x, z)}(x, y, z: string) =
+  x = y & z
+
+proc `/&` [T: object](x: T): string =
+  result = "("
+  for name, value in fieldPairs(x):
+    result.add("$1: $2\n" % [name, $value])
+  result.add(")")
+
+type
+  MyObject = object
+    a, b: int
+    s: string
+
+let obj = MyObject(a: 3, b: 4, s: "abc")
+echo(/&obj)
diff --git a/tests/showoff/thello2.nim b/tests/showoff/thello2.nim
new file mode 100644
index 000000000..d2e2f6227
--- /dev/null
+++ b/tests/showoff/thello2.nim
@@ -0,0 +1,11 @@
+discard """
+  output: '''(a: 3, b: 4, s: abc)'''
+"""
+
+type
+  MyObject = object
+        a, b: int
+        s: string
+
+let obj = MyObject(a: 3, b: 4, s: "abc")
+echo obj
diff --git a/tests/showoff/thtml1.nim b/tests/showoff/thtml1.nim
new file mode 100644
index 000000000..cd95c7971
--- /dev/null
+++ b/tests/showoff/thtml1.nim
@@ -0,0 +1,11 @@
+discard """
+  output: "<br>"
+"""
+
+template htmlTag(tag: expr) {.immediate.} =
+  proc tag(): string = "<" & astToStr(tag) & ">"
+  
+htmlTag(br)
+htmlTag(html)
+
+echo br()
diff --git a/tests/showoff/thtml2.nim b/tests/showoff/thtml2.nim
new file mode 100644
index 000000000..8a451ebf1
--- /dev/null
+++ b/tests/showoff/thtml2.nim
@@ -0,0 +1,37 @@
+discard """
+  output: "<html><head><title>now look at this</title></head><body><ul><li>Nimrod is quite capable</li></ul></body></html>"
+"""
+
+import strutils
+
+template html(name: expr, matter: stmt) {.immediate.} =
+  proc name(): string =
+    result = "<html>"
+    matter
+    result.add("</html>")
+
+template nestedTag(tag: expr) {.immediate.} =
+  template tag(matter: stmt) {.immediate.} =
+    result.add("<" & astToStr(tag) & ">")
+    matter
+    result.add("</" & astToStr(tag) & ">")
+
+template simpleTag(tag: expr) {.immediate.} =
+  template tag(matter: expr) {.immediate.} =
+    result.add("<$1>$2</$1>" % [astToStr(tag), matter])
+
+nestedTag body
+nestedTag head
+nestedTag ul
+simpleTag title
+simpleTag li
+
+
+html mainPage:
+  head:
+    title "now look at this"
+  body:
+    ul:
+      li "Nimrod is quite capable"
+
+echo mainPage()
diff --git a/tests/showoff/tonce.nim b/tests/showoff/tonce.nim
new file mode 100644
index 000000000..6fc372e87
--- /dev/null
+++ b/tests/showoff/tonce.nim
@@ -0,0 +1,22 @@
+discard """
+  output: '''first call of p
+some call of p
+new instantiation
+some call of p'''
+"""
+
+template once(body: stmt) =
+  var x {.global.} = false
+  if not x:
+    x = true
+    body
+
+proc p() =
+  once:
+    echo "first call of p"
+  echo "some call of p"
+
+p()
+once:
+  echo "new instantiation"
+p()
diff --git a/tests/showoff/tquasiquote.nim b/tests/showoff/tquasiquote.nim
new file mode 100644
index 000000000..df7fccc33
--- /dev/null
+++ b/tests/showoff/tquasiquote.nim
@@ -0,0 +1,14 @@
+discard """
+  outputsub: '''tquasiquote.nim(14,8): Check failed: 1 > 2'''
+"""
+
+import macros
+
+macro check(ex: expr): stmt =
+  var info = ex.lineInfo
+  var expString = ex.toStrLit
+  result = quote do:
+    if not `ex`:
+      echo `info`, ": Check failed: ", `expString`
+
+check 1 > 2
diff --git a/tests/system/params.nim b/tests/system/params.nim
new file mode 100644
index 000000000..1358212f2
--- /dev/null
+++ b/tests/system/params.nim
@@ -0,0 +1,18 @@
+import os
+import osproc
+import parseopt2
+import sequtils
+
+let argv = commandLineParams()
+
+if argv == @[]:
+  # this won't work with spaces
+  assert execShellCmd(getAppFilename() & " \"foo bar\" --aa:bar=a --a=c:d --ab -c --a[baz]:doo") == 0
+else:
+  let f = toSeq(getopt())
+  echo f.repr
+  assert f[0].kind == cmdArgument and f[0].key == "foo bar" and f[0].val == ""
+  assert f[1].kind == cmdLongOption and f[1].key == "aa" and f[1].val == "bar=a"
+  assert f[2].kind == cmdLongOption and f[2].key == "a=c" and f[2].val == "d"
+  assert f[3].kind == cmdLongOption and f[3].key == "ab" and f[3].val == ""
+  assert f[4].kind == cmdShortOption and f[4].key == "c" and f[4].val == ""
diff --git a/tests/tester.nim b/tests/tester.nim
index fe21fc9ee..0e125b1bb 100644
--- a/tests/tester.nim
+++ b/tests/tester.nim
@@ -11,7 +11,7 @@
 
 import
   parseutils, strutils, pegs, os, osproc, streams, parsecfg, browsers, json,
-  marshal, cgi, parseopt, caasdriver
+  marshal, cgi, parseopt #, caas
 
 const
   cmdTemplate = r"nimrod cc --hints:on $# $#"
@@ -364,10 +364,10 @@ proc outputJSON(reject, compile, run: TResults) =
   var s = pretty(doc)
   writeFile(jsonFile, s)
 
-proc runCaasTests(r: var TResults) =
-  for test, output, status, mode in caasTestsRunner():
-    r.addResult(test, "", output & "-> " & $mode,
-                if status: reSuccess else: reOutputsDiffer)
+# proc runCaasTests(r: var TResults) =
+#   for test, output, status, mode in caasTestsRunner():
+#     r.addResult(test, "", output & "-> " & $mode,
+#                 if status: reSuccess else: reOutputsDiffer)
 
 proc main() =
   os.putenv "NIMTEST_NO_COLOR", "1"
@@ -411,7 +411,7 @@ proc main() =
     writeResults(runJson, r)
   of "special":
     runSpecialTests(r, p.cmdLineRest.string)
-    runCaasTests(r)
+    # runCaasTests(r)
     writeResults(runJson, r)
   of "rodfiles":
     runRodFiles(r, p.cmdLineRest.string)
diff --git a/tinyc/tccgen.c b/tinyc/tccgen.c
index 942c503c1..3135e7b37 100644
--- a/tinyc/tccgen.c
+++ b/tinyc/tccgen.c
@@ -1931,7 +1931,7 @@ static void gen_assign_cast(CType *dt)
             goto type_ok;
         }
         type1 = pointed_type(dt);
-        /* a function is implicitely a function pointer */
+        /* a function is implicitly a function pointer */
         if (sbt == VT_FUNC) {
             if ((type1->t & VT_BTYPE) != VT_VOID &&
                 !is_compatible_types(pointed_type(dt), st))
diff --git a/tools/niminst/buildbat.tmpl b/tools/niminst/buildbat.tmpl
index 36e1a3e79..712ebc794 100644
--- a/tools/niminst/buildbat.tmpl
+++ b/tools/niminst/buildbat.tmpl
@@ -17,8 +17,8 @@ REM call the compiler:
 #    var linkCmd = ""
 #    for ff in items(c.cfiles[winIndex][cpuIndex]):
 #      let f = ff.toWin
-ECHO %CC% %COMP_FLAGS% -Inimcache -c ?{f} -o ?{changeFileExt(f, "o")}
-%CC% %COMP_FLAGS% -Inimcache -c ?{f} -o ?{changeFileExt(f, "o")}
+ECHO %CC% %COMP_FLAGS% -Ic_code -c ?{f} -o ?{changeFileExt(f, "o")}
+%CC% %COMP_FLAGS% -Ic_code -c ?{f} -o ?{changeFileExt(f, "o")}
 #      linkCmd.add(" " & changeFileExt(f, "o"))
 #    end for
 
diff --git a/tools/niminst/buildsh.tmpl b/tools/niminst/buildsh.tmpl
index 0fb4907cf..8fe5fea9f 100644
--- a/tools/niminst/buildsh.tmpl
+++ b/tools/niminst/buildsh.tmpl
@@ -128,8 +128,8 @@ case $myos in
 #      var linkCmd = ""
 #      for ff in items(c.cfiles[osA][cpuA]):
 #        let f = ff.toUnix
-    echo "$CC $COMP_FLAGS -Inimcache -c ?{f} -o ?{changeFileExt(f, "o")}"
-    $CC $COMP_FLAGS -Inimcache -c ?{f} -o ?{changeFileExt(f, "o")}
+    echo "$CC $COMP_FLAGS -Ic_code -c ?{f} -o ?{changeFileExt(f, "o")}"
+    $CC $COMP_FLAGS -Ic_code -c ?{f} -o ?{changeFileExt(f, "o")}
 #        add(linkCmd, " \\\n" & changeFileExt(f, "o"))
 #      end for
     echo "$LINKER -o ?{"$binDir/" & toLower(c.name)} ?linkCmd $LINK_FLAGS"
diff --git a/tools/niminst/niminst.nim b/tools/niminst/niminst.nim
index 25ec0d283..96815ebe4 100644
--- a/tools/niminst/niminst.nim
+++ b/tools/niminst/niminst.nim
@@ -14,7 +14,7 @@ when haveZipLib:
   import zipfiles
 
 import
-  os, strutils, parseopt, parsecfg, strtabs, streams, debcreation
+  os, osproc, strutils, parseopt, parsecfg, strtabs, streams, debcreation
 
 const
   maxOS = 20 # max number of OSes
@@ -392,7 +392,7 @@ proc readCFiles(c: var TConfigData, osA, cpuA: int) =
     quit("Cannot open: " & f)
 
 proc buildDir(os, cpu: int): string =
-  return "nimcache" / ($os & "_" & $cpu)
+  return "c_code" / ($os & "_" & $cpu)
 
 proc getOutputDir(c: var TConfigData): string =
   if c.outdir.len > 0: c.outdir else: "build"
@@ -432,11 +432,11 @@ proc writeInstallScripts(c: var TConfigData) =
     writeFile(deinstallShFile, generateDeinstallScript(c), "\10")
 
 proc srcdist(c: var TConfigData) =
-  if not existsDir(getOutputDir(c) / "nimcache"):
-    createDir(getOutputDir(c) / "nimcache")
+  if not existsDir(getOutputDir(c) / "c_code"):
+    createDir(getOutputDir(c) / "c_code")
   for x in walkFiles(c.libpath / "lib/*.h"):
-    echo(getOutputDir(c) / "nimcache" / extractFilename(x))
-    copyFile(dest=getOutputDir(c) / "nimcache" / extractFilename(x), source=x)
+    echo(getOutputDir(c) / "c_code" / extractFilename(x))
+    copyFile(dest=getOutputDir(c) / "c_code" / extractFilename(x), source=x)
   var winIndex = -1
   var intel32Index = -1
   var intel64Index = -1
@@ -486,7 +486,7 @@ proc setupDist(c: var TConfigData) =
     if c.innoSetup.path.len == 0:
       c.innoSetup.path = "iscc.exe"
     var outcmd = if c.outdir.len == 0: "build" else: c.outdir
-    var cmd = "$# $# /O$# $#" % [quoteIfContainsWhite(c.innoSetup.path),
+    var cmd = "$# $# /O$# $#" % [quoteShell(c.innoSetup.path),
                                  c.innoSetup.flags, outcmd, n]
     echo(cmd)
     if execShellCmd(cmd) == 0:
@@ -587,4 +587,3 @@ if actionZip in c.actions:
     quit("libzip is not installed")
 if actionDeb in c.actions:
   debDist(c)
-
diff --git a/tools/noprefix.nim b/tools/noprefix.nim
index e7ec26c56..fe03a9efc 100644
--- a/tools/noprefix.nim
+++ b/tools/noprefix.nim
@@ -18,44 +18,12 @@ const
     ("mysql", "mysql"),
     ("postgres", ""),
     ("sqlite3", "sqlite3"),
-    ("tcl", "tcl"),
-    ("cairo/cairo", "cairo"),
-    ("cairo/cairoft", "cairo"),
-    ("cairo/cairowin32", "cairo"),
-    ("cairo/cairoxlib", "cairo"),
-    
-    ("gtk/atk", "atk"),
-    ("gtk/gdk2", "gdk"),
-    ("gtk/gdk2pixbuf", "gdk"),
-    ("gtk/gdkglext", "gdk"),
-    ("gtk/glib2", ""),
-    ("gtk/gtk2", "gtk"),
-    ("gtk/gtkglext", "gtk"),
-    ("gtk/gtkhtml", "gtk"),
-    ("gtk/libglade2", "glade"),
-    ("gtk/pango", "pango"),
-    ("gtk/pangoutils", "pango"),
-    
-    ("lua/lua", "lua"),
-    ("lua/lauxlib", "luaL"),
-    ("lua/lualib", "lua"),
-    
-    ("opengl/gl", ""),
-    ("opengl/glext", ""),
-    ("opengl/wingl", ""),
-    ("opengl/glu", ""),
-    ("opengl/glut", ""),
-    ("opengl/glx", ""),
     
     ("pcre/pcre", "pcre")
   ]
 
 proc createDirs =
   createDir("lib/newwrap/sdl")
-  createDir("lib/newwrap/cairo")
-  createDir("lib/newwrap/gtk")
-  createDir("lib/newwrap/lua")
-  createDir("lib/newwrap/opengl")
   createDir("lib/newwrap/pcre")
 
 for filename, prefix in items(filelist):
diff --git a/web/assets/images/link_aporia.png b/web/assets/images/link_aporia.png
index 6256792d7..145e5ddf2 100644
--- a/web/assets/images/link_aporia.png
+++ b/web/assets/images/link_aporia.png
Binary files differdiff --git a/web/assets/images/link_forum.png b/web/assets/images/link_forum.png
index d153231a7..2973b42bc 100644
--- a/web/assets/images/link_forum.png
+++ b/web/assets/images/link_forum.png
Binary files differdiff --git a/web/assets/images/link_nimbuild.png b/web/assets/images/link_nimbuild.png
index ad94f9c82..4b3f943fe 100644
--- a/web/assets/images/link_nimbuild.png
+++ b/web/assets/images/link_nimbuild.png
Binary files differdiff --git a/web/assets/images/logo.png b/web/assets/images/logo.png
index f6b95bf05..31ee0a6e1 100644
--- a/web/assets/images/logo.png
+++ b/web/assets/images/logo.png
Binary files differdiff --git a/web/assets/images/quote.png b/web/assets/images/quote.png
index 52d529284..e9426158c 100644
--- a/web/assets/images/quote.png
+++ b/web/assets/images/quote.png
Binary files differdiff --git a/web/assets/images/sidebar.png b/web/assets/images/sidebar.png
index 8488f8acf..77624480e 100644
--- a/web/assets/images/sidebar.png
+++ b/web/assets/images/sidebar.png
Binary files differdiff --git a/web/assets/images/sidebar_h2.png b/web/assets/images/sidebar_h2.png
index 5de3da291..d1409b57f 100644
--- a/web/assets/images/sidebar_h2.png
+++ b/web/assets/images/sidebar_h2.png
Binary files differdiff --git a/web/assets/images/sidebar_head.png b/web/assets/images/sidebar_head.png
index 734d5709b..05885d9f3 100644
--- a/web/assets/images/sidebar_head.png
+++ b/web/assets/images/sidebar_head.png
Binary files differdiff --git a/web/assets/images/site_foot.png b/web/assets/images/site_foot.png
index d94632b20..a2efa0460 100644
--- a/web/assets/images/site_foot.png
+++ b/web/assets/images/site_foot.png
Binary files differdiff --git a/web/assets/images/site_neck.png b/web/assets/images/site_neck.png
index cab3dc75a..d4f42c6b7 100644
--- a/web/assets/images/site_neck.png
+++ b/web/assets/images/site_neck.png
Binary files differdiff --git a/web/community.txt b/web/community.txt
index 6e2306f8f..b9a0a4196 100644
--- a/web/community.txt
+++ b/web/community.txt
@@ -9,6 +9,8 @@ Bug reports: http://github.com/Araq/Nimrod/issues.
 For quickest feedback, join our IRC channel: irc://irc.freenode.net/nimrod
 (logs at `<http://build.nimrod-code.org/irclogs/>`_).
 
+Check out our Twitter account for latest news and announcements: `@nimrodlang <http://twitter.com/nimrodlang>`_.
+
 How to help
 ===========
 
diff --git a/web/news.txt b/web/news.txt
index 1b492fa97..4f40d6484 100644
--- a/web/news.txt
+++ b/web/news.txt
@@ -29,7 +29,6 @@ Changes affecting backwards compatibility
   using the new ``OSLastError`` proc.
 - ``os.parentDir`` now returns "" if there is no parent dir.
 
-
 Compiler Additions
 ------------------
 
@@ -41,7 +40,8 @@ Compiler Additions
   over the generated code.
 - The compiler now supports a ``computedGoto`` pragma to support very fast
   dispatching for interpreters and the like.
-
+- In CGI scripts stacktraces are shown user only if cgi.setStackTraceStdout
+  is used.
 
 Language Additions
 ------------------
@@ -309,7 +309,7 @@ Changes affecting backwards compatibility
 - The Nimrod type system now distinguishes ``openarray`` from ``varargs``.
 - Templates are now ``hygienic``. Use the ``dirty`` pragma to get the old
   behaviour.
-- Objects that have no ancestor are now implicitely ``final``. Use 
+- Objects that have no ancestor are now implicitly ``final``. Use 
   the ``inheritable`` pragma to introduce new object roots apart 
   from ``TObject``.
 - Macros now receive parameters like templates do; use the ``callsite`` builtin
@@ -439,7 +439,7 @@ Language Additions
 - The error pragma can now be used to mark symbols whose *usage* should trigger
   a compile-time error.
 - There is a new ``discardable`` pragma that can be used to mark a routine 
-  so that its result can be discarded implicitely.
+  so that its result can be discarded implicitly.
 - Added a new ``noinit`` pragma to prevent automatic initialization to zero
   of variables.
 - Constants can now have the type ``seq``.
diff --git a/web/nimrod.ini b/web/nimrod.ini
index 94f196c64..f10a4b2f2 100644
--- a/web/nimrod.ini
+++ b/web/nimrod.ini
@@ -66,17 +66,14 @@ srcdoc2: "packages/docutils/rstgen"
 
 webdoc: "wrappers/libcurl;pure/md5;wrappers/mysql;wrappers/iup"
 webdoc: "wrappers/sqlite3;wrappers/postgres;wrappers/tinyc"
-webdoc: "wrappers/python;wrappers/tcl;wrappers/expat;wrappers/pcre"
+webdoc: "wrappers/expat;wrappers/pcre"
 webdoc: "wrappers/tre;wrappers/openssl"
 webdoc: "wrappers/libuv;wrappers/joyent_http_parser"
 
 webdoc: "posix/posix;wrappers/odbcsql;impure/dialogs"
 webdoc: "wrappers/zip/zlib;wrappers/zip/libzip"
-webdoc: "wrappers/cairo"
-webdoc: "wrappers/gtk"
 webdoc: "wrappers/libsvm.nim;wrappers/mongo.nim"
 webdoc: "windows"
-webdoc: "wrappers/x11;wrappers/opengl;wrappers/lua"
 webdoc: "wrappers/readline/readline;wrappers/readline/history"
 webdoc: "wrappers/readline/rltypedefs"