summary refs log tree commit diff stats
path: root/lib/wrappers/gtk/gdk2.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/wrappers/gtk/gdk2.nim')
-rw-r--r--lib/wrappers/gtk/gdk2.nim3873
1 files changed, 0 insertions, 3873 deletions
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)