diff --git a/GI/Gdk.hs b/GI/Gdk.hs
--- a/GI/Gdk.hs
+++ b/GI/Gdk.hs
@@ -1,27611 +1,40 @@
--- Generated code.
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
-{-# LANGUAGE ForeignFunctionInterface, ConstraintKinds,
-    TypeFamilies, MultiParamTypeClasses, KindSignatures,
-    FlexibleInstances, UndecidableInstances, DataKinds,
-    OverloadedStrings, NegativeLiterals, FlexibleContexts #-}
-
-module GI.Gdk where
-
-import Prelude ()
-import Data.GI.Base.ShortPrelude
-import Data.Char
-import Data.Int
-import Data.Word
-import qualified Data.ByteString.Char8 as B
-import Data.ByteString.Char8 (ByteString)
-import qualified Data.Map as Map
-import Foreign.C
-import Foreign.Ptr
-import Foreign.ForeignPtr
-import Foreign.ForeignPtr.Unsafe (unsafeForeignPtrToPtr)
-import Foreign.Storable (peek, poke, sizeOf)
-import Control.Applicative ((<$>))
-import Control.Exception (onException)
-import Control.Monad.IO.Class
-import qualified Data.Text as T
-
-import Data.GI.Base.Attributes hiding (get, set)
-import Data.GI.Base.BasicTypes
-import Data.GI.Base.BasicConversions
-import Data.GI.Base.Closure
-import Data.GI.Base.GError
-import Data.GI.Base.GHashTable
-import Data.GI.Base.GParamSpec
-import Data.GI.Base.GVariant
-import Data.GI.Base.GValue
-import Data.GI.Base.ManagedPtr
-import Data.GI.Base.Overloading
-import Data.GI.Base.Properties hiding (new)
-import Data.GI.Base.Signals (SignalConnectMode(..), connectSignalFunPtr, SignalHandlerId)
-import Data.GI.Base.Utils
-
-import qualified GI.GLib as GLib
-import qualified GI.GLibAttributes as GLibA
-import qualified GI.GObject as GObject
-import qualified GI.GObjectAttributes as GObjectA
-import qualified GI.GdkPixbuf as GdkPixbuf
-import qualified GI.GdkPixbufAttributes as GdkPixbufA
-import qualified GI.Gio as Gio
-import qualified GI.GioAttributes as GioA
-import qualified GI.Pango as Pango
-import qualified GI.PangoAttributes as PangoA
-import qualified GI.Cairo as Cairo
-import qualified GI.CairoAttributes as CairoA
-
--- object AppLaunchContext 
-newtype AppLaunchContext = AppLaunchContext (ForeignPtr AppLaunchContext)
-noAppLaunchContext :: Maybe AppLaunchContext
-noAppLaunchContext = Nothing
-
-foreign import ccall "gdk_app_launch_context_get_type"
-    c_gdk_app_launch_context_get_type :: IO GType
-
-type instance ParentTypes AppLaunchContext = '[Gio.AppLaunchContext, GObject.Object]
-
-instance GObject AppLaunchContext where
-    gobjectIsInitiallyUnowned _ = False
-    gobjectType _ = c_gdk_app_launch_context_get_type
-    
-
-class GObject o => AppLaunchContextK o
-instance (GObject o, IsDescendantOf AppLaunchContext o) => AppLaunchContextK o
-
-toAppLaunchContext :: AppLaunchContextK o => o -> IO AppLaunchContext
-toAppLaunchContext = unsafeCastTo AppLaunchContext
-
--- method AppLaunchContext::new
--- method type : Constructor
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "AppLaunchContext"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_app_launch_context_new" gdk_app_launch_context_new :: 
-    IO (Ptr AppLaunchContext)
-
-{-# DEPRECATED appLaunchContextNew ["(Since version 3.0)","Use gdk_display_get_app_launch_context() instead"]#-}
-appLaunchContextNew ::
-    (MonadIO m) =>
-    m AppLaunchContext
-appLaunchContextNew  = liftIO $ do
-    result <- gdk_app_launch_context_new
-    checkUnexpectedReturnNULL "gdk_app_launch_context_new" result
-    result' <- (wrapObject AppLaunchContext) result
-    return result'
-
--- method AppLaunchContext::set_desktop
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desktop", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desktop", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_app_launch_context_set_desktop" gdk_app_launch_context_set_desktop :: 
-    Ptr AppLaunchContext ->                 -- _obj : TInterface "Gdk" "AppLaunchContext"
-    Int32 ->                                -- desktop : TBasicType TInt32
-    IO ()
-
-
-appLaunchContextSetDesktop ::
-    (MonadIO m, AppLaunchContextK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- desktop
-    m ()
-appLaunchContextSetDesktop _obj desktop = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_app_launch_context_set_desktop _obj' desktop
-    touchManagedPtr _obj
-    return ()
-
--- method AppLaunchContext::set_display
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_app_launch_context_set_display" gdk_app_launch_context_set_display :: 
-    Ptr AppLaunchContext ->                 -- _obj : TInterface "Gdk" "AppLaunchContext"
-    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
-    IO ()
-
-{-# DEPRECATED appLaunchContextSetDisplay ["(Since version 3.0)","Use gdk_display_get_app_launch_context() instead"]#-}
-appLaunchContextSetDisplay ::
-    (MonadIO m, AppLaunchContextK a, DisplayK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- display
-    m ()
-appLaunchContextSetDisplay _obj display = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let display' = unsafeManagedPtrCastPtr display
-    gdk_app_launch_context_set_display _obj' display'
-    touchManagedPtr _obj
-    touchManagedPtr display
-    return ()
-
--- method AppLaunchContext::set_icon
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "icon", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "icon", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_app_launch_context_set_icon" gdk_app_launch_context_set_icon :: 
-    Ptr AppLaunchContext ->                 -- _obj : TInterface "Gdk" "AppLaunchContext"
-    Ptr Gio.Icon ->                         -- icon : TInterface "Gio" "Icon"
-    IO ()
-
-
-appLaunchContextSetIcon ::
-    (MonadIO m, AppLaunchContextK a, Gio.IconK b) =>
-    a ->                                    -- _obj
-    Maybe (b) ->                            -- icon
-    m ()
-appLaunchContextSetIcon _obj icon = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeIcon <- case icon of
-        Nothing -> return nullPtr
-        Just jIcon -> do
-            let jIcon' = unsafeManagedPtrCastPtr jIcon
-            return jIcon'
-    gdk_app_launch_context_set_icon _obj' maybeIcon
-    touchManagedPtr _obj
-    whenJust icon touchManagedPtr
-    return ()
-
--- method AppLaunchContext::set_icon_name
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "icon_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "icon_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_app_launch_context_set_icon_name" gdk_app_launch_context_set_icon_name :: 
-    Ptr AppLaunchContext ->                 -- _obj : TInterface "Gdk" "AppLaunchContext"
-    CString ->                              -- icon_name : TBasicType TUTF8
-    IO ()
-
-
-appLaunchContextSetIconName ::
-    (MonadIO m, AppLaunchContextK a) =>
-    a ->                                    -- _obj
-    Maybe (T.Text) ->                       -- icon_name
-    m ()
-appLaunchContextSetIconName _obj icon_name = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeIcon_name <- case icon_name of
-        Nothing -> return nullPtr
-        Just jIcon_name -> do
-            jIcon_name' <- textToCString jIcon_name
-            return jIcon_name'
-    gdk_app_launch_context_set_icon_name _obj' maybeIcon_name
-    touchManagedPtr _obj
-    freeMem maybeIcon_name
-    return ()
-
--- method AppLaunchContext::set_screen
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_app_launch_context_set_screen" gdk_app_launch_context_set_screen :: 
-    Ptr AppLaunchContext ->                 -- _obj : TInterface "Gdk" "AppLaunchContext"
-    Ptr Screen ->                           -- screen : TInterface "Gdk" "Screen"
-    IO ()
-
-
-appLaunchContextSetScreen ::
-    (MonadIO m, AppLaunchContextK a, ScreenK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- screen
-    m ()
-appLaunchContextSetScreen _obj screen = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let screen' = unsafeManagedPtrCastPtr screen
-    gdk_app_launch_context_set_screen _obj' screen'
-    touchManagedPtr _obj
-    touchManagedPtr screen
-    return ()
-
--- method AppLaunchContext::set_timestamp
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_app_launch_context_set_timestamp" gdk_app_launch_context_set_timestamp :: 
-    Ptr AppLaunchContext ->                 -- _obj : TInterface "Gdk" "AppLaunchContext"
-    Word32 ->                               -- timestamp : TBasicType TUInt32
-    IO ()
-
-
-appLaunchContextSetTimestamp ::
-    (MonadIO m, AppLaunchContextK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- timestamp
-    m ()
-appLaunchContextSetTimestamp _obj timestamp = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_app_launch_context_set_timestamp _obj' timestamp
-    touchManagedPtr _obj
-    return ()
-
--- struct Atom
-newtype Atom = Atom (ForeignPtr Atom)
-noAtom :: Maybe Atom
-noAtom = Nothing
-
--- method Atom::name
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_atom_name" gdk_atom_name :: 
-    Ptr Atom ->                             -- _obj : TInterface "Gdk" "Atom"
-    IO CString
-
-
-atomName ::
-    (MonadIO m) =>
-    Atom ->                                 -- _obj
-    m T.Text
-atomName _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_atom_name _obj'
-    checkUnexpectedReturnNULL "gdk_atom_name" result
-    result' <- cstringToText result
-    freeMem result
-    touchManagedPtr _obj
-    return result'
-
--- Enum AxisUse
-
-data AxisUse = 
-      AxisUseIgnore
-    | AxisUseX
-    | AxisUseY
-    | AxisUsePressure
-    | AxisUseXtilt
-    | AxisUseYtilt
-    | AxisUseWheel
-    | AxisUseLast
-    | AnotherAxisUse Int
-    deriving (Show, Eq)
-
-instance Enum AxisUse where
-    fromEnum AxisUseIgnore = 0
-    fromEnum AxisUseX = 1
-    fromEnum AxisUseY = 2
-    fromEnum AxisUsePressure = 3
-    fromEnum AxisUseXtilt = 4
-    fromEnum AxisUseYtilt = 5
-    fromEnum AxisUseWheel = 6
-    fromEnum AxisUseLast = 7
-    fromEnum (AnotherAxisUse k) = k
-
-    toEnum 0 = AxisUseIgnore
-    toEnum 1 = AxisUseX
-    toEnum 2 = AxisUseY
-    toEnum 3 = AxisUsePressure
-    toEnum 4 = AxisUseXtilt
-    toEnum 5 = AxisUseYtilt
-    toEnum 6 = AxisUseWheel
-    toEnum 7 = AxisUseLast
-    toEnum k = AnotherAxisUse k
-
-foreign import ccall "gdk_axis_use_get_type" c_gdk_axis_use_get_type :: 
-    IO GType
-
-instance BoxedEnum AxisUse where
-    boxedEnumType _ = c_gdk_axis_use_get_type
-
--- Enum ByteOrder
-
-data ByteOrder = 
-      ByteOrderLsbFirst
-    | ByteOrderMsbFirst
-    | AnotherByteOrder Int
-    deriving (Show, Eq)
-
-instance Enum ByteOrder where
-    fromEnum ByteOrderLsbFirst = 0
-    fromEnum ByteOrderMsbFirst = 1
-    fromEnum (AnotherByteOrder k) = k
-
-    toEnum 0 = ByteOrderLsbFirst
-    toEnum 1 = ByteOrderMsbFirst
-    toEnum k = AnotherByteOrder k
-
-foreign import ccall "gdk_byte_order_get_type" c_gdk_byte_order_get_type :: 
-    IO GType
-
-instance BoxedEnum ByteOrder where
-    boxedEnumType _ = c_gdk_byte_order_get_type
-
--- struct Color
-newtype Color = Color (ForeignPtr Color)
-noColor :: Maybe Color
-noColor = Nothing
-
-foreign import ccall "gdk_color_get_type" c_gdk_color_get_type :: 
-    IO GType
-
-instance BoxedObject Color where
-    boxedType _ = c_gdk_color_get_type
-
-colorReadPixel :: Color -> IO Word32
-colorReadPixel s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO Word32
-    return val
-
-colorReadRed :: Color -> IO Word16
-colorReadRed s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 4) :: IO Word16
-    return val
-
-colorReadGreen :: Color -> IO Word16
-colorReadGreen s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 6) :: IO Word16
-    return val
-
-colorReadBlue :: Color -> IO Word16
-colorReadBlue s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO Word16
-    return val
-
--- method Color::copy
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Color"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_color_copy" gdk_color_copy :: 
-    Ptr Color ->                            -- _obj : TInterface "Gdk" "Color"
-    IO (Ptr Color)
-
-{-# DEPRECATED colorCopy ["(Since version 3.14)","Use #GdkRGBA"]#-}
-colorCopy ::
-    (MonadIO m) =>
-    Color ->                                -- _obj
-    m Color
-colorCopy _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_color_copy _obj'
-    checkUnexpectedReturnNULL "gdk_color_copy" result
-    result' <- (wrapBoxed Color) result
-    touchManagedPtr _obj
-    return result'
-
--- method Color::equal
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "colorb", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "colorb", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_color_equal" gdk_color_equal :: 
-    Ptr Color ->                            -- _obj : TInterface "Gdk" "Color"
-    Ptr Color ->                            -- colorb : TInterface "Gdk" "Color"
-    IO CInt
-
-{-# DEPRECATED colorEqual ["(Since version 3.14)","Use #GdkRGBA"]#-}
-colorEqual ::
-    (MonadIO m) =>
-    Color ->                                -- _obj
-    Color ->                                -- colorb
-    m Bool
-colorEqual _obj colorb = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    let colorb' = unsafeManagedPtrGetPtr colorb
-    result <- gdk_color_equal _obj' colorb'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    touchManagedPtr colorb
-    return result'
-
--- method Color::free
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_color_free" gdk_color_free :: 
-    Ptr Color ->                            -- _obj : TInterface "Gdk" "Color"
-    IO ()
-
-{-# DEPRECATED colorFree ["(Since version 3.14)","Use #GdkRGBA"]#-}
-colorFree ::
-    (MonadIO m) =>
-    Color ->                                -- _obj
-    m ()
-colorFree _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    gdk_color_free _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Color::hash
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_color_hash" gdk_color_hash :: 
-    Ptr Color ->                            -- _obj : TInterface "Gdk" "Color"
-    IO Word32
-
-{-# DEPRECATED colorHash ["(Since version 3.14)","Use #GdkRGBA"]#-}
-colorHash ::
-    (MonadIO m) =>
-    Color ->                                -- _obj
-    m Word32
-colorHash _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_color_hash _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Color::to_string
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_color_to_string" gdk_color_to_string :: 
-    Ptr Color ->                            -- _obj : TInterface "Gdk" "Color"
-    IO CString
-
-{-# DEPRECATED colorToString ["(Since version 3.14)","Use #GdkRGBA"]#-}
-colorToString ::
-    (MonadIO m) =>
-    Color ->                                -- _obj
-    m T.Text
-colorToString _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_color_to_string _obj'
-    checkUnexpectedReturnNULL "gdk_color_to_string" result
-    result' <- cstringToText result
-    freeMem result
-    touchManagedPtr _obj
-    return result'
-
--- Enum CrossingMode
-
-data CrossingMode = 
-      CrossingModeNormal
-    | CrossingModeGrab
-    | CrossingModeUngrab
-    | CrossingModeGtkGrab
-    | CrossingModeGtkUngrab
-    | CrossingModeStateChanged
-    | CrossingModeTouchBegin
-    | CrossingModeTouchEnd
-    | CrossingModeDeviceSwitch
-    | AnotherCrossingMode Int
-    deriving (Show, Eq)
-
-instance Enum CrossingMode where
-    fromEnum CrossingModeNormal = 0
-    fromEnum CrossingModeGrab = 1
-    fromEnum CrossingModeUngrab = 2
-    fromEnum CrossingModeGtkGrab = 3
-    fromEnum CrossingModeGtkUngrab = 4
-    fromEnum CrossingModeStateChanged = 5
-    fromEnum CrossingModeTouchBegin = 6
-    fromEnum CrossingModeTouchEnd = 7
-    fromEnum CrossingModeDeviceSwitch = 8
-    fromEnum (AnotherCrossingMode k) = k
-
-    toEnum 0 = CrossingModeNormal
-    toEnum 1 = CrossingModeGrab
-    toEnum 2 = CrossingModeUngrab
-    toEnum 3 = CrossingModeGtkGrab
-    toEnum 4 = CrossingModeGtkUngrab
-    toEnum 5 = CrossingModeStateChanged
-    toEnum 6 = CrossingModeTouchBegin
-    toEnum 7 = CrossingModeTouchEnd
-    toEnum 8 = CrossingModeDeviceSwitch
-    toEnum k = AnotherCrossingMode k
-
-foreign import ccall "gdk_crossing_mode_get_type" c_gdk_crossing_mode_get_type :: 
-    IO GType
-
-instance BoxedEnum CrossingMode where
-    boxedEnumType _ = c_gdk_crossing_mode_get_type
-
--- object Cursor 
-newtype Cursor = Cursor (ForeignPtr Cursor)
-noCursor :: Maybe Cursor
-noCursor = Nothing
-
-foreign import ccall "gdk_cursor_get_type"
-    c_gdk_cursor_get_type :: IO GType
-
-type instance ParentTypes Cursor = '[GObject.Object]
-
-instance GObject Cursor where
-    gobjectIsInitiallyUnowned _ = False
-    gobjectType _ = c_gdk_cursor_get_type
-    
-
-class GObject o => CursorK o
-instance (GObject o, IsDescendantOf Cursor o) => CursorK o
-
-toCursor :: CursorK o => o -> IO Cursor
-toCursor = unsafeCastTo Cursor
-
--- method Cursor::new
--- method type : Constructor
--- Args : [Arg {argName = "cursor_type", argType = TInterface "Gdk" "CursorType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cursor_type", argType = TInterface "Gdk" "CursorType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Cursor"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cursor_new" gdk_cursor_new :: 
-    CUInt ->                                -- cursor_type : TInterface "Gdk" "CursorType"
-    IO (Ptr Cursor)
-
-{-# DEPRECATED cursorNew ["(Since version 3.16)","Use gdk_cursor_new_for_display() instead."]#-}
-cursorNew ::
-    (MonadIO m) =>
-    CursorType ->                           -- cursor_type
-    m Cursor
-cursorNew cursor_type = liftIO $ do
-    let cursor_type' = (fromIntegral . fromEnum) cursor_type
-    result <- gdk_cursor_new cursor_type'
-    checkUnexpectedReturnNULL "gdk_cursor_new" result
-    result' <- (wrapObject Cursor) result
-    return result'
-
--- method Cursor::new_for_display
--- method type : Constructor
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor_type", argType = TInterface "Gdk" "CursorType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor_type", argType = TInterface "Gdk" "CursorType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Cursor"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cursor_new_for_display" gdk_cursor_new_for_display :: 
-    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
-    CUInt ->                                -- cursor_type : TInterface "Gdk" "CursorType"
-    IO (Ptr Cursor)
-
-
-cursorNewForDisplay ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- display
-    CursorType ->                           -- cursor_type
-    m Cursor
-cursorNewForDisplay display cursor_type = liftIO $ do
-    let display' = unsafeManagedPtrCastPtr display
-    let cursor_type' = (fromIntegral . fromEnum) cursor_type
-    result <- gdk_cursor_new_for_display display' cursor_type'
-    checkUnexpectedReturnNULL "gdk_cursor_new_for_display" result
-    result' <- (wrapObject Cursor) result
-    touchManagedPtr display
-    return result'
-
--- method Cursor::new_from_name
--- method type : Constructor
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Cursor"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cursor_new_from_name" gdk_cursor_new_from_name :: 
-    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
-    CString ->                              -- name : TBasicType TUTF8
-    IO (Ptr Cursor)
-
-
-cursorNewFromName ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- display
-    T.Text ->                               -- name
-    m Cursor
-cursorNewFromName display name = liftIO $ do
-    let display' = unsafeManagedPtrCastPtr display
-    name' <- textToCString name
-    result <- gdk_cursor_new_from_name display' name'
-    checkUnexpectedReturnNULL "gdk_cursor_new_from_name" result
-    result' <- (wrapObject Cursor) result
-    touchManagedPtr display
-    freeMem name'
-    return result'
-
--- method Cursor::new_from_pixbuf
--- method type : Constructor
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Cursor"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cursor_new_from_pixbuf" gdk_cursor_new_from_pixbuf :: 
-    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
-    Ptr GdkPixbuf.Pixbuf ->                 -- pixbuf : TInterface "GdkPixbuf" "Pixbuf"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    IO (Ptr Cursor)
-
-
-cursorNewFromPixbuf ::
-    (MonadIO m, DisplayK a, GdkPixbuf.PixbufK b) =>
-    a ->                                    -- display
-    b ->                                    -- pixbuf
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    m Cursor
-cursorNewFromPixbuf display pixbuf x y = liftIO $ do
-    let display' = unsafeManagedPtrCastPtr display
-    let pixbuf' = unsafeManagedPtrCastPtr pixbuf
-    result <- gdk_cursor_new_from_pixbuf display' pixbuf' x y
-    checkUnexpectedReturnNULL "gdk_cursor_new_from_pixbuf" result
-    result' <- (wrapObject Cursor) result
-    touchManagedPtr display
-    touchManagedPtr pixbuf
-    return result'
-
--- method Cursor::new_from_surface
--- method type : Constructor
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Cursor"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cursor_new_from_surface" gdk_cursor_new_from_surface :: 
-    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
-    Ptr Cairo.Surface ->                    -- surface : TInterface "cairo" "Surface"
-    CDouble ->                              -- x : TBasicType TDouble
-    CDouble ->                              -- y : TBasicType TDouble
-    IO (Ptr Cursor)
-
-
-cursorNewFromSurface ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- display
-    Cairo.Surface ->                        -- surface
-    Double ->                               -- x
-    Double ->                               -- y
-    m Cursor
-cursorNewFromSurface display surface x y = liftIO $ do
-    let display' = unsafeManagedPtrCastPtr display
-    let surface' = unsafeManagedPtrGetPtr surface
-    let x' = realToFrac x
-    let y' = realToFrac y
-    result <- gdk_cursor_new_from_surface display' surface' x' y'
-    checkUnexpectedReturnNULL "gdk_cursor_new_from_surface" result
-    result' <- (wrapObject Cursor) result
-    touchManagedPtr display
-    touchManagedPtr surface
-    return result'
-
--- method Cursor::get_cursor_type
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "CursorType"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cursor_get_cursor_type" gdk_cursor_get_cursor_type :: 
-    Ptr Cursor ->                           -- _obj : TInterface "Gdk" "Cursor"
-    IO CUInt
-
-
-cursorGetCursorType ::
-    (MonadIO m, CursorK a) =>
-    a ->                                    -- _obj
-    m CursorType
-cursorGetCursorType _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_cursor_get_cursor_type _obj'
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    return result'
-
--- method Cursor::get_display
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Display"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cursor_get_display" gdk_cursor_get_display :: 
-    Ptr Cursor ->                           -- _obj : TInterface "Gdk" "Cursor"
-    IO (Ptr Display)
-
-
-cursorGetDisplay ::
-    (MonadIO m, CursorK a) =>
-    a ->                                    -- _obj
-    m Display
-cursorGetDisplay _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_cursor_get_display _obj'
-    checkUnexpectedReturnNULL "gdk_cursor_get_display" result
-    result' <- (newObject Display) result
-    touchManagedPtr _obj
-    return result'
-
--- method Cursor::get_image
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GdkPixbuf" "Pixbuf"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cursor_get_image" gdk_cursor_get_image :: 
-    Ptr Cursor ->                           -- _obj : TInterface "Gdk" "Cursor"
-    IO (Ptr GdkPixbuf.Pixbuf)
-
-
-cursorGetImage ::
-    (MonadIO m, CursorK a) =>
-    a ->                                    -- _obj
-    m GdkPixbuf.Pixbuf
-cursorGetImage _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_cursor_get_image _obj'
-    checkUnexpectedReturnNULL "gdk_cursor_get_image" result
-    result' <- (wrapObject GdkPixbuf.Pixbuf) result
-    touchManagedPtr _obj
-    return result'
-
--- method Cursor::get_surface
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_hot", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y_hot", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Surface"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cursor_get_surface" gdk_cursor_get_surface :: 
-    Ptr Cursor ->                           -- _obj : TInterface "Gdk" "Cursor"
-    Ptr CDouble ->                          -- x_hot : TBasicType TDouble
-    Ptr CDouble ->                          -- y_hot : TBasicType TDouble
-    IO (Ptr Cairo.Surface)
-
-
-cursorGetSurface ::
-    (MonadIO m, CursorK a) =>
-    a ->                                    -- _obj
-    m (Cairo.Surface,Double,Double)
-cursorGetSurface _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    x_hot <- allocMem :: IO (Ptr CDouble)
-    y_hot <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_cursor_get_surface _obj' x_hot y_hot
-    checkUnexpectedReturnNULL "gdk_cursor_get_surface" result
-    result' <- (wrapBoxed Cairo.Surface) result
-    x_hot' <- peek x_hot
-    let x_hot'' = realToFrac x_hot'
-    y_hot' <- peek y_hot
-    let y_hot'' = realToFrac y_hot'
-    touchManagedPtr _obj
-    freeMem x_hot
-    freeMem y_hot
-    return (result', x_hot'', y_hot'')
-
--- method Cursor::ref
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Cursor"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cursor_ref" gdk_cursor_ref :: 
-    Ptr Cursor ->                           -- _obj : TInterface "Gdk" "Cursor"
-    IO (Ptr Cursor)
-
-{-# DEPRECATED cursorRef ["(Since version 3.0)","Use g_object_ref() instead"]#-}
-cursorRef ::
-    (MonadIO m, CursorK a) =>
-    a ->                                    -- _obj
-    m Cursor
-cursorRef _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_cursor_ref _obj'
-    checkUnexpectedReturnNULL "gdk_cursor_ref" result
-    result' <- (wrapObject Cursor) result
-    touchManagedPtr _obj
-    return result'
-
--- method Cursor::unref
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cursor_unref" gdk_cursor_unref :: 
-    Ptr Cursor ->                           -- _obj : TInterface "Gdk" "Cursor"
-    IO ()
-
-{-# DEPRECATED cursorUnref ["(Since version 3.0)","Use g_object_unref() instead"]#-}
-cursorUnref ::
-    (MonadIO m, CursorK a) =>
-    a ->                                    -- _obj
-    m ()
-cursorUnref _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_cursor_unref _obj'
-    touchManagedPtr _obj
-    return ()
-
--- Enum CursorType
-
-data CursorType = 
-      CursorTypeXCursor
-    | CursorTypeArrow
-    | CursorTypeBasedArrowDown
-    | CursorTypeBasedArrowUp
-    | CursorTypeBoat
-    | CursorTypeBogosity
-    | CursorTypeBottomLeftCorner
-    | CursorTypeBottomRightCorner
-    | CursorTypeBottomSide
-    | CursorTypeBottomTee
-    | CursorTypeBoxSpiral
-    | CursorTypeCenterPtr
-    | CursorTypeCircle
-    | CursorTypeClock
-    | CursorTypeCoffeeMug
-    | CursorTypeCross
-    | CursorTypeCrossReverse
-    | CursorTypeCrosshair
-    | CursorTypeDiamondCross
-    | CursorTypeDot
-    | CursorTypeDotbox
-    | CursorTypeDoubleArrow
-    | CursorTypeDraftLarge
-    | CursorTypeDraftSmall
-    | CursorTypeDrapedBox
-    | CursorTypeExchange
-    | CursorTypeFleur
-    | CursorTypeGobbler
-    | CursorTypeGumby
-    | CursorTypeHand1
-    | CursorTypeHand2
-    | CursorTypeHeart
-    | CursorTypeIcon
-    | CursorTypeIronCross
-    | CursorTypeLeftPtr
-    | CursorTypeLeftSide
-    | CursorTypeLeftTee
-    | CursorTypeLeftbutton
-    | CursorTypeLlAngle
-    | CursorTypeLrAngle
-    | CursorTypeMan
-    | CursorTypeMiddlebutton
-    | CursorTypeMouse
-    | CursorTypePencil
-    | CursorTypePirate
-    | CursorTypePlus
-    | CursorTypeQuestionArrow
-    | CursorTypeRightPtr
-    | CursorTypeRightSide
-    | CursorTypeRightTee
-    | CursorTypeRightbutton
-    | CursorTypeRtlLogo
-    | CursorTypeSailboat
-    | CursorTypeSbDownArrow
-    | CursorTypeSbHDoubleArrow
-    | CursorTypeSbLeftArrow
-    | CursorTypeSbRightArrow
-    | CursorTypeSbUpArrow
-    | CursorTypeSbVDoubleArrow
-    | CursorTypeShuttle
-    | CursorTypeSizing
-    | CursorTypeSpider
-    | CursorTypeSpraycan
-    | CursorTypeStar
-    | CursorTypeTarget
-    | CursorTypeTcross
-    | CursorTypeTopLeftArrow
-    | CursorTypeTopLeftCorner
-    | CursorTypeTopRightCorner
-    | CursorTypeTopSide
-    | CursorTypeTopTee
-    | CursorTypeTrek
-    | CursorTypeUlAngle
-    | CursorTypeUmbrella
-    | CursorTypeUrAngle
-    | CursorTypeWatch
-    | CursorTypeXterm
-    | CursorTypeLastCursor
-    | CursorTypeBlankCursor
-    | CursorTypeCursorIsPixmap
-    | AnotherCursorType Int
-    deriving (Show, Eq)
-
-instance Enum CursorType where
-    fromEnum CursorTypeXCursor = 0
-    fromEnum CursorTypeArrow = 2
-    fromEnum CursorTypeBasedArrowDown = 4
-    fromEnum CursorTypeBasedArrowUp = 6
-    fromEnum CursorTypeBoat = 8
-    fromEnum CursorTypeBogosity = 10
-    fromEnum CursorTypeBottomLeftCorner = 12
-    fromEnum CursorTypeBottomRightCorner = 14
-    fromEnum CursorTypeBottomSide = 16
-    fromEnum CursorTypeBottomTee = 18
-    fromEnum CursorTypeBoxSpiral = 20
-    fromEnum CursorTypeCenterPtr = 22
-    fromEnum CursorTypeCircle = 24
-    fromEnum CursorTypeClock = 26
-    fromEnum CursorTypeCoffeeMug = 28
-    fromEnum CursorTypeCross = 30
-    fromEnum CursorTypeCrossReverse = 32
-    fromEnum CursorTypeCrosshair = 34
-    fromEnum CursorTypeDiamondCross = 36
-    fromEnum CursorTypeDot = 38
-    fromEnum CursorTypeDotbox = 40
-    fromEnum CursorTypeDoubleArrow = 42
-    fromEnum CursorTypeDraftLarge = 44
-    fromEnum CursorTypeDraftSmall = 46
-    fromEnum CursorTypeDrapedBox = 48
-    fromEnum CursorTypeExchange = 50
-    fromEnum CursorTypeFleur = 52
-    fromEnum CursorTypeGobbler = 54
-    fromEnum CursorTypeGumby = 56
-    fromEnum CursorTypeHand1 = 58
-    fromEnum CursorTypeHand2 = 60
-    fromEnum CursorTypeHeart = 62
-    fromEnum CursorTypeIcon = 64
-    fromEnum CursorTypeIronCross = 66
-    fromEnum CursorTypeLeftPtr = 68
-    fromEnum CursorTypeLeftSide = 70
-    fromEnum CursorTypeLeftTee = 72
-    fromEnum CursorTypeLeftbutton = 74
-    fromEnum CursorTypeLlAngle = 76
-    fromEnum CursorTypeLrAngle = 78
-    fromEnum CursorTypeMan = 80
-    fromEnum CursorTypeMiddlebutton = 82
-    fromEnum CursorTypeMouse = 84
-    fromEnum CursorTypePencil = 86
-    fromEnum CursorTypePirate = 88
-    fromEnum CursorTypePlus = 90
-    fromEnum CursorTypeQuestionArrow = 92
-    fromEnum CursorTypeRightPtr = 94
-    fromEnum CursorTypeRightSide = 96
-    fromEnum CursorTypeRightTee = 98
-    fromEnum CursorTypeRightbutton = 100
-    fromEnum CursorTypeRtlLogo = 102
-    fromEnum CursorTypeSailboat = 104
-    fromEnum CursorTypeSbDownArrow = 106
-    fromEnum CursorTypeSbHDoubleArrow = 108
-    fromEnum CursorTypeSbLeftArrow = 110
-    fromEnum CursorTypeSbRightArrow = 112
-    fromEnum CursorTypeSbUpArrow = 114
-    fromEnum CursorTypeSbVDoubleArrow = 116
-    fromEnum CursorTypeShuttle = 118
-    fromEnum CursorTypeSizing = 120
-    fromEnum CursorTypeSpider = 122
-    fromEnum CursorTypeSpraycan = 124
-    fromEnum CursorTypeStar = 126
-    fromEnum CursorTypeTarget = 128
-    fromEnum CursorTypeTcross = 130
-    fromEnum CursorTypeTopLeftArrow = 132
-    fromEnum CursorTypeTopLeftCorner = 134
-    fromEnum CursorTypeTopRightCorner = 136
-    fromEnum CursorTypeTopSide = 138
-    fromEnum CursorTypeTopTee = 140
-    fromEnum CursorTypeTrek = 142
-    fromEnum CursorTypeUlAngle = 144
-    fromEnum CursorTypeUmbrella = 146
-    fromEnum CursorTypeUrAngle = 148
-    fromEnum CursorTypeWatch = 150
-    fromEnum CursorTypeXterm = 152
-    fromEnum CursorTypeLastCursor = 153
-    fromEnum CursorTypeBlankCursor = -2
-    fromEnum CursorTypeCursorIsPixmap = -1
-    fromEnum (AnotherCursorType k) = k
-
-    toEnum -2 = CursorTypeBlankCursor
-    toEnum -1 = CursorTypeCursorIsPixmap
-    toEnum 0 = CursorTypeXCursor
-    toEnum 2 = CursorTypeArrow
-    toEnum 4 = CursorTypeBasedArrowDown
-    toEnum 6 = CursorTypeBasedArrowUp
-    toEnum 8 = CursorTypeBoat
-    toEnum 10 = CursorTypeBogosity
-    toEnum 12 = CursorTypeBottomLeftCorner
-    toEnum 14 = CursorTypeBottomRightCorner
-    toEnum 16 = CursorTypeBottomSide
-    toEnum 18 = CursorTypeBottomTee
-    toEnum 20 = CursorTypeBoxSpiral
-    toEnum 22 = CursorTypeCenterPtr
-    toEnum 24 = CursorTypeCircle
-    toEnum 26 = CursorTypeClock
-    toEnum 28 = CursorTypeCoffeeMug
-    toEnum 30 = CursorTypeCross
-    toEnum 32 = CursorTypeCrossReverse
-    toEnum 34 = CursorTypeCrosshair
-    toEnum 36 = CursorTypeDiamondCross
-    toEnum 38 = CursorTypeDot
-    toEnum 40 = CursorTypeDotbox
-    toEnum 42 = CursorTypeDoubleArrow
-    toEnum 44 = CursorTypeDraftLarge
-    toEnum 46 = CursorTypeDraftSmall
-    toEnum 48 = CursorTypeDrapedBox
-    toEnum 50 = CursorTypeExchange
-    toEnum 52 = CursorTypeFleur
-    toEnum 54 = CursorTypeGobbler
-    toEnum 56 = CursorTypeGumby
-    toEnum 58 = CursorTypeHand1
-    toEnum 60 = CursorTypeHand2
-    toEnum 62 = CursorTypeHeart
-    toEnum 64 = CursorTypeIcon
-    toEnum 66 = CursorTypeIronCross
-    toEnum 68 = CursorTypeLeftPtr
-    toEnum 70 = CursorTypeLeftSide
-    toEnum 72 = CursorTypeLeftTee
-    toEnum 74 = CursorTypeLeftbutton
-    toEnum 76 = CursorTypeLlAngle
-    toEnum 78 = CursorTypeLrAngle
-    toEnum 80 = CursorTypeMan
-    toEnum 82 = CursorTypeMiddlebutton
-    toEnum 84 = CursorTypeMouse
-    toEnum 86 = CursorTypePencil
-    toEnum 88 = CursorTypePirate
-    toEnum 90 = CursorTypePlus
-    toEnum 92 = CursorTypeQuestionArrow
-    toEnum 94 = CursorTypeRightPtr
-    toEnum 96 = CursorTypeRightSide
-    toEnum 98 = CursorTypeRightTee
-    toEnum 100 = CursorTypeRightbutton
-    toEnum 102 = CursorTypeRtlLogo
-    toEnum 104 = CursorTypeSailboat
-    toEnum 106 = CursorTypeSbDownArrow
-    toEnum 108 = CursorTypeSbHDoubleArrow
-    toEnum 110 = CursorTypeSbLeftArrow
-    toEnum 112 = CursorTypeSbRightArrow
-    toEnum 114 = CursorTypeSbUpArrow
-    toEnum 116 = CursorTypeSbVDoubleArrow
-    toEnum 118 = CursorTypeShuttle
-    toEnum 120 = CursorTypeSizing
-    toEnum 122 = CursorTypeSpider
-    toEnum 124 = CursorTypeSpraycan
-    toEnum 126 = CursorTypeStar
-    toEnum 128 = CursorTypeTarget
-    toEnum 130 = CursorTypeTcross
-    toEnum 132 = CursorTypeTopLeftArrow
-    toEnum 134 = CursorTypeTopLeftCorner
-    toEnum 136 = CursorTypeTopRightCorner
-    toEnum 138 = CursorTypeTopSide
-    toEnum 140 = CursorTypeTopTee
-    toEnum 142 = CursorTypeTrek
-    toEnum 144 = CursorTypeUlAngle
-    toEnum 146 = CursorTypeUmbrella
-    toEnum 148 = CursorTypeUrAngle
-    toEnum 150 = CursorTypeWatch
-    toEnum 152 = CursorTypeXterm
-    toEnum 153 = CursorTypeLastCursor
-    toEnum k = AnotherCursorType k
-
-foreign import ccall "gdk_cursor_type_get_type" c_gdk_cursor_type_get_type :: 
-    IO GType
-
-instance BoxedEnum CursorType where
-    boxedEnumType _ = c_gdk_cursor_type_get_type
-
--- object Device 
-newtype Device = Device (ForeignPtr Device)
-noDevice :: Maybe Device
-noDevice = Nothing
-
-foreign import ccall "gdk_device_get_type"
-    c_gdk_device_get_type :: IO GType
-
-type instance ParentTypes Device = '[GObject.Object]
-
-instance GObject Device where
-    gobjectIsInitiallyUnowned _ = False
-    gobjectType _ = c_gdk_device_get_type
-    
-
-class GObject o => DeviceK o
-instance (GObject o, IsDescendantOf Device o) => DeviceK o
-
-toDevice :: DeviceK o => o -> IO Device
-toDevice = unsafeCastTo Device
-
--- method Device::get_associated_device
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Device"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_associated_device" gdk_device_get_associated_device :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    IO (Ptr Device)
-
-
-deviceGetAssociatedDevice ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m Device
-deviceGetAssociatedDevice _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_get_associated_device _obj'
-    checkUnexpectedReturnNULL "gdk_device_get_associated_device" result
-    result' <- (newObject Device) result
-    touchManagedPtr _obj
-    return result'
-
--- method Device::get_axis_use
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "AxisUse"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_axis_use" gdk_device_get_axis_use :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    Word32 ->                               -- index_ : TBasicType TUInt32
-    IO CUInt
-
-
-deviceGetAxisUse ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- index_
-    m AxisUse
-deviceGetAxisUse _obj index_ = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_get_axis_use _obj' index_
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    return result'
-
--- method Device::get_device_type
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "DeviceType"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_device_type" gdk_device_get_device_type :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    IO CUInt
-
-
-deviceGetDeviceType ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m DeviceType
-deviceGetDeviceType _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_get_device_type _obj'
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    return result'
-
--- method Device::get_display
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Display"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_display" gdk_device_get_display :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    IO (Ptr Display)
-
-
-deviceGetDisplay ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m Display
-deviceGetDisplay _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_get_display _obj'
-    checkUnexpectedReturnNULL "gdk_device_get_display" result
-    result' <- (newObject Display) result
-    touchManagedPtr _obj
-    return result'
-
--- method Device::get_has_cursor
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_has_cursor" gdk_device_get_has_cursor :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    IO CInt
-
-
-deviceGetHasCursor ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m Bool
-deviceGetHasCursor _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_get_has_cursor _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Device::get_key
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_key" gdk_device_get_key :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    Word32 ->                               -- index_ : TBasicType TUInt32
-    Ptr Word32 ->                           -- keyval : TBasicType TUInt32
-    Ptr CUInt ->                            -- modifiers : TInterface "Gdk" "ModifierType"
-    IO CInt
-
-
-deviceGetKey ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- index_
-    m (Bool,Word32,[ModifierType])
-deviceGetKey _obj index_ = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    keyval <- allocMem :: IO (Ptr Word32)
-    modifiers <- allocMem :: IO (Ptr CUInt)
-    result <- gdk_device_get_key _obj' index_ keyval modifiers
-    let result' = (/= 0) result
-    keyval' <- peek keyval
-    modifiers' <- peek modifiers
-    let modifiers'' = wordToGFlags modifiers'
-    touchManagedPtr _obj
-    freeMem keyval
-    freeMem modifiers
-    return (result', keyval', modifiers'')
-
--- method Device::get_last_event_window
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_last_event_window" gdk_device_get_last_event_window :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    IO (Ptr Window)
-
-
-deviceGetLastEventWindow ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m Window
-deviceGetLastEventWindow _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_get_last_event_window _obj'
-    checkUnexpectedReturnNULL "gdk_device_get_last_event_window" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method Device::get_mode
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "InputMode"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_mode" gdk_device_get_mode :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    IO CUInt
-
-
-deviceGetMode ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m InputMode
-deviceGetMode _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_get_mode _obj'
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    return result'
-
--- method Device::get_n_axes
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_n_axes" gdk_device_get_n_axes :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    IO Int32
-
-
-deviceGetNAxes ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m Int32
-deviceGetNAxes _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_get_n_axes _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Device::get_n_keys
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_n_keys" gdk_device_get_n_keys :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    IO Int32
-
-
-deviceGetNKeys ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m Int32
-deviceGetNKeys _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_get_n_keys _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Device::get_name
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_name" gdk_device_get_name :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    IO CString
-
-
-deviceGetName ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m T.Text
-deviceGetName _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_get_name _obj'
-    checkUnexpectedReturnNULL "gdk_device_get_name" result
-    result' <- cstringToText result
-    touchManagedPtr _obj
-    return result'
-
--- method Device::get_position
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_position" gdk_device_get_position :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    Ptr (Ptr Screen) ->                     -- screen : TInterface "Gdk" "Screen"
-    Ptr Int32 ->                            -- x : TBasicType TInt32
-    Ptr Int32 ->                            -- y : TBasicType TInt32
-    IO ()
-
-
-deviceGetPosition ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m (Screen,Int32,Int32)
-deviceGetPosition _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    screen <- allocMem :: IO (Ptr (Ptr Screen))
-    x <- allocMem :: IO (Ptr Int32)
-    y <- allocMem :: IO (Ptr Int32)
-    gdk_device_get_position _obj' screen x y
-    screen' <- peek screen
-    screen'' <- (newObject Screen) screen'
-    x' <- peek x
-    y' <- peek y
-    touchManagedPtr _obj
-    freeMem screen
-    freeMem x
-    freeMem y
-    return (screen'', x', y')
-
--- method Device::get_position_double
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_position_double" gdk_device_get_position_double :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    Ptr (Ptr Screen) ->                     -- screen : TInterface "Gdk" "Screen"
-    Ptr CDouble ->                          -- x : TBasicType TDouble
-    Ptr CDouble ->                          -- y : TBasicType TDouble
-    IO ()
-
-
-deviceGetPositionDouble ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m (Screen,Double,Double)
-deviceGetPositionDouble _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    screen <- allocMem :: IO (Ptr (Ptr Screen))
-    x <- allocMem :: IO (Ptr CDouble)
-    y <- allocMem :: IO (Ptr CDouble)
-    gdk_device_get_position_double _obj' screen x y
-    screen' <- peek screen
-    screen'' <- (newObject Screen) screen'
-    x' <- peek x
-    let x'' = realToFrac x'
-    y' <- peek y
-    let y'' = realToFrac y'
-    touchManagedPtr _obj
-    freeMem screen
-    freeMem x
-    freeMem y
-    return (screen'', x'', y'')
-
--- method Device::get_product_id
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_product_id" gdk_device_get_product_id :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    IO CString
-
-
-deviceGetProductId ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m T.Text
-deviceGetProductId _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_get_product_id _obj'
-    checkUnexpectedReturnNULL "gdk_device_get_product_id" result
-    result' <- cstringToText result
-    touchManagedPtr _obj
-    return result'
-
--- method Device::get_source
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "InputSource"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_source" gdk_device_get_source :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    IO CUInt
-
-
-deviceGetSource ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m InputSource
-deviceGetSource _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_get_source _obj'
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    return result'
-
--- method Device::get_vendor_id
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_vendor_id" gdk_device_get_vendor_id :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    IO CString
-
-
-deviceGetVendorId ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m T.Text
-deviceGetVendorId _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_get_vendor_id _obj'
-    checkUnexpectedReturnNULL "gdk_device_get_vendor_id" result
-    result' <- cstringToText result
-    touchManagedPtr _obj
-    return result'
-
--- method Device::get_window_at_position
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "win_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "win_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_window_at_position" gdk_device_get_window_at_position :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    Ptr Int32 ->                            -- win_x : TBasicType TInt32
-    Ptr Int32 ->                            -- win_y : TBasicType TInt32
-    IO (Ptr Window)
-
-
-deviceGetWindowAtPosition ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m (Window,Int32,Int32)
-deviceGetWindowAtPosition _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    win_x <- allocMem :: IO (Ptr Int32)
-    win_y <- allocMem :: IO (Ptr Int32)
-    result <- gdk_device_get_window_at_position _obj' win_x win_y
-    checkUnexpectedReturnNULL "gdk_device_get_window_at_position" result
-    result' <- (newObject Window) result
-    win_x' <- peek win_x
-    win_y' <- peek win_y
-    touchManagedPtr _obj
-    freeMem win_x
-    freeMem win_y
-    return (result', win_x', win_y')
-
--- method Device::get_window_at_position_double
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "win_x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "win_y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_get_window_at_position_double" gdk_device_get_window_at_position_double :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    Ptr CDouble ->                          -- win_x : TBasicType TDouble
-    Ptr CDouble ->                          -- win_y : TBasicType TDouble
-    IO (Ptr Window)
-
-
-deviceGetWindowAtPositionDouble ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m (Window,Double,Double)
-deviceGetWindowAtPositionDouble _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    win_x <- allocMem :: IO (Ptr CDouble)
-    win_y <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_device_get_window_at_position_double _obj' win_x win_y
-    checkUnexpectedReturnNULL "gdk_device_get_window_at_position_double" result
-    result' <- (newObject Window) result
-    win_x' <- peek win_x
-    let win_x'' = realToFrac win_x'
-    win_y' <- peek win_y
-    let win_y'' = realToFrac win_y'
-    touchManagedPtr _obj
-    freeMem win_x
-    freeMem win_y
-    return (result', win_x'', win_y'')
-
--- method Device::grab
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "grab_ownership", argType = TInterface "Gdk" "GrabOwnership", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "grab_ownership", argType = TInterface "Gdk" "GrabOwnership", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "GrabStatus"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_grab" gdk_device_grab :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    CUInt ->                                -- grab_ownership : TInterface "Gdk" "GrabOwnership"
-    CInt ->                                 -- owner_events : TBasicType TBoolean
-    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
-    Ptr Cursor ->                           -- cursor : TInterface "Gdk" "Cursor"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO CUInt
-
-
-deviceGrab ::
-    (MonadIO m, DeviceK a, WindowK b, CursorK c) =>
-    a ->                                    -- _obj
-    b ->                                    -- window
-    GrabOwnership ->                        -- grab_ownership
-    Bool ->                                 -- owner_events
-    [EventMask] ->                          -- event_mask
-    Maybe (c) ->                            -- cursor
-    Word32 ->                               -- time_
-    m GrabStatus
-deviceGrab _obj window grab_ownership owner_events event_mask cursor time_ = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let window' = unsafeManagedPtrCastPtr window
-    let grab_ownership' = (fromIntegral . fromEnum) grab_ownership
-    let owner_events' = (fromIntegral . fromEnum) owner_events
-    let event_mask' = gflagsToWord event_mask
-    maybeCursor <- case cursor of
-        Nothing -> return nullPtr
-        Just jCursor -> do
-            let jCursor' = unsafeManagedPtrCastPtr jCursor
-            return jCursor'
-    result <- gdk_device_grab _obj' window' grab_ownership' owner_events' event_mask' maybeCursor time_
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    touchManagedPtr window
-    whenJust cursor touchManagedPtr
-    return result'
-
--- method Device::list_axes
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TGList (TInterface "Gdk" "Atom")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_list_axes" gdk_device_list_axes :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    IO (Ptr (GList (Ptr Atom)))
-
-
-deviceListAxes ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m [Atom]
-deviceListAxes _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_list_axes _obj'
-    checkUnexpectedReturnNULL "gdk_device_list_axes" result
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    result' <- unpackGList result
-    result'' <- mapM (\x -> Atom <$> newForeignPtr_ x) result'
-    g_list_free result
-    touchManagedPtr _obj
-    return result''
-
--- method Device::list_slave_devices
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TGList (TInterface "Gdk" "Device")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_list_slave_devices" gdk_device_list_slave_devices :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    IO (Ptr (GList (Ptr Device)))
-
-
-deviceListSlaveDevices ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m [Device]
-deviceListSlaveDevices _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_list_slave_devices _obj'
-    checkUnexpectedReturnNULL "gdk_device_list_slave_devices" result
-    result' <- unpackGList result
-    result'' <- mapM (newObject Device) result'
-    g_list_free result
-    touchManagedPtr _obj
-    return result''
-
--- method Device::set_axis_use
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "use", argType = TInterface "Gdk" "AxisUse", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "use", argType = TInterface "Gdk" "AxisUse", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_set_axis_use" gdk_device_set_axis_use :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    Word32 ->                               -- index_ : TBasicType TUInt32
-    CUInt ->                                -- use : TInterface "Gdk" "AxisUse"
-    IO ()
-
-
-deviceSetAxisUse ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- index_
-    AxisUse ->                              -- use
-    m ()
-deviceSetAxisUse _obj index_ use = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let use' = (fromIntegral . fromEnum) use
-    gdk_device_set_axis_use _obj' index_ use'
-    touchManagedPtr _obj
-    return ()
-
--- method Device::set_key
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_set_key" gdk_device_set_key :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    Word32 ->                               -- index_ : TBasicType TUInt32
-    Word32 ->                               -- keyval : TBasicType TUInt32
-    CUInt ->                                -- modifiers : TInterface "Gdk" "ModifierType"
-    IO ()
-
-
-deviceSetKey ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- index_
-    Word32 ->                               -- keyval
-    [ModifierType] ->                       -- modifiers
-    m ()
-deviceSetKey _obj index_ keyval modifiers = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let modifiers' = gflagsToWord modifiers
-    gdk_device_set_key _obj' index_ keyval modifiers'
-    touchManagedPtr _obj
-    return ()
-
--- method Device::set_mode
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TInterface "Gdk" "InputMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TInterface "Gdk" "InputMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_set_mode" gdk_device_set_mode :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    CUInt ->                                -- mode : TInterface "Gdk" "InputMode"
-    IO CInt
-
-
-deviceSetMode ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    InputMode ->                            -- mode
-    m Bool
-deviceSetMode _obj mode = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let mode' = (fromIntegral . fromEnum) mode
-    result <- gdk_device_set_mode _obj' mode'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Device::ungrab
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_ungrab" gdk_device_ungrab :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-deviceUngrab ::
-    (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- time_
-    m ()
-deviceUngrab _obj time_ = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_device_ungrab _obj' time_
-    touchManagedPtr _obj
-    return ()
-
--- method Device::warp
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_warp" gdk_device_warp :: 
-    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
-    Ptr Screen ->                           -- screen : TInterface "Gdk" "Screen"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    IO ()
-
-
-deviceWarp ::
-    (MonadIO m, DeviceK a, ScreenK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- screen
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    m ()
-deviceWarp _obj screen x y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let screen' = unsafeManagedPtrCastPtr screen
-    gdk_device_warp _obj' screen' x y
-    touchManagedPtr _obj
-    touchManagedPtr screen
-    return ()
-
--- method Device::grab_info_libgtk_only
--- method type : MemberFunction
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "grab_window", argType = TInterface "Gdk" "Window", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_grab_info_libgtk_only" gdk_device_grab_info_libgtk_only :: 
-    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    Ptr (Ptr Window) ->                     -- grab_window : TInterface "Gdk" "Window"
-    Ptr CInt ->                             -- owner_events : TBasicType TBoolean
-    IO CInt
-
-{-# DEPRECATED deviceGrabInfoLibgtkOnly ["(Since version 3.16)","The symbol was never meant to be used outside","  of GTK+"]#-}
-deviceGrabInfoLibgtkOnly ::
-    (MonadIO m, DisplayK a, DeviceK b) =>
-    a ->                                    -- display
-    b ->                                    -- device
-    m (Bool,Window,Bool)
-deviceGrabInfoLibgtkOnly display device = liftIO $ do
-    let display' = unsafeManagedPtrCastPtr display
-    let device' = unsafeManagedPtrCastPtr device
-    grab_window <- allocMem :: IO (Ptr (Ptr Window))
-    owner_events <- allocMem :: IO (Ptr CInt)
-    result <- gdk_device_grab_info_libgtk_only display' device' grab_window owner_events
-    let result' = (/= 0) result
-    grab_window' <- peek grab_window
-    grab_window'' <- (newObject Window) grab_window'
-    owner_events' <- peek owner_events
-    let owner_events'' = (/= 0) owner_events'
-    touchManagedPtr display
-    touchManagedPtr device
-    freeMem grab_window
-    freeMem owner_events
-    return (result', grab_window'', owner_events'')
-
--- signal Device::changed
-type DeviceChangedCallback =
-    IO ()
-
-noDeviceChangedCallback :: Maybe DeviceChangedCallback
-noDeviceChangedCallback = Nothing
-
-type DeviceChangedCallbackC =
-    Ptr () ->                               -- object
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkDeviceChangedCallback :: DeviceChangedCallbackC -> IO (FunPtr DeviceChangedCallbackC)
-
-deviceChangedClosure :: DeviceChangedCallback -> IO Closure
-deviceChangedClosure cb = newCClosure =<< mkDeviceChangedCallback wrapped
-    where wrapped = deviceChangedCallbackWrapper cb
-
-deviceChangedCallbackWrapper ::
-    DeviceChangedCallback ->
-    Ptr () ->
-    Ptr () ->
-    IO ()
-deviceChangedCallbackWrapper _cb _ _ = do
-    _cb 
-
-onDeviceChanged :: (GObject a, MonadIO m) => a -> DeviceChangedCallback -> m SignalHandlerId
-onDeviceChanged obj cb = liftIO $ connectDeviceChanged obj cb SignalConnectBefore
-afterDeviceChanged :: (GObject a, MonadIO m) => a -> DeviceChangedCallback -> m SignalHandlerId
-afterDeviceChanged obj cb = connectDeviceChanged obj cb SignalConnectAfter
-
-connectDeviceChanged :: (GObject a, MonadIO m) =>
-                        a -> DeviceChangedCallback -> SignalConnectMode -> m SignalHandlerId
-connectDeviceChanged obj cb after = liftIO $ do
-    cb' <- mkDeviceChangedCallback (deviceChangedCallbackWrapper cb)
-    connectSignalFunPtr obj "changed" cb' after
-
--- object DeviceManager 
-newtype DeviceManager = DeviceManager (ForeignPtr DeviceManager)
-noDeviceManager :: Maybe DeviceManager
-noDeviceManager = Nothing
-
-foreign import ccall "gdk_device_manager_get_type"
-    c_gdk_device_manager_get_type :: IO GType
-
-type instance ParentTypes DeviceManager = '[GObject.Object]
-
-instance GObject DeviceManager where
-    gobjectIsInitiallyUnowned _ = False
-    gobjectType _ = c_gdk_device_manager_get_type
-    
-
-class GObject o => DeviceManagerK o
-instance (GObject o, IsDescendantOf DeviceManager o) => DeviceManagerK o
-
-toDeviceManager :: DeviceManagerK o => o -> IO DeviceManager
-toDeviceManager = unsafeCastTo DeviceManager
-
--- method DeviceManager::get_client_pointer
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Device"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_manager_get_client_pointer" gdk_device_manager_get_client_pointer :: 
-    Ptr DeviceManager ->                    -- _obj : TInterface "Gdk" "DeviceManager"
-    IO (Ptr Device)
-
-
-deviceManagerGetClientPointer ::
-    (MonadIO m, DeviceManagerK a) =>
-    a ->                                    -- _obj
-    m Device
-deviceManagerGetClientPointer _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_manager_get_client_pointer _obj'
-    checkUnexpectedReturnNULL "gdk_device_manager_get_client_pointer" result
-    result' <- (newObject Device) result
-    touchManagedPtr _obj
-    return result'
-
--- method DeviceManager::get_display
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Display"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_manager_get_display" gdk_device_manager_get_display :: 
-    Ptr DeviceManager ->                    -- _obj : TInterface "Gdk" "DeviceManager"
-    IO (Ptr Display)
-
-
-deviceManagerGetDisplay ::
-    (MonadIO m, DeviceManagerK a) =>
-    a ->                                    -- _obj
-    m Display
-deviceManagerGetDisplay _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_manager_get_display _obj'
-    checkUnexpectedReturnNULL "gdk_device_manager_get_display" result
-    result' <- (newObject Display) result
-    touchManagedPtr _obj
-    return result'
-
--- method DeviceManager::list_devices
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "Gdk" "DeviceType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "Gdk" "DeviceType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TGList (TInterface "Gdk" "Device")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_device_manager_list_devices" gdk_device_manager_list_devices :: 
-    Ptr DeviceManager ->                    -- _obj : TInterface "Gdk" "DeviceManager"
-    CUInt ->                                -- type : TInterface "Gdk" "DeviceType"
-    IO (Ptr (GList (Ptr Device)))
-
-
-deviceManagerListDevices ::
-    (MonadIO m, DeviceManagerK a) =>
-    a ->                                    -- _obj
-    DeviceType ->                           -- type
-    m [Device]
-deviceManagerListDevices _obj type_ = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let type_' = (fromIntegral . fromEnum) type_
-    result <- gdk_device_manager_list_devices _obj' type_'
-    checkUnexpectedReturnNULL "gdk_device_manager_list_devices" result
-    result' <- unpackGList result
-    result'' <- mapM (newObject Device) result'
-    g_list_free result
-    touchManagedPtr _obj
-    return result''
-
--- signal DeviceManager::device-added
-type DeviceManagerDeviceAddedCallback =
-    Device ->
-    IO ()
-
-noDeviceManagerDeviceAddedCallback :: Maybe DeviceManagerDeviceAddedCallback
-noDeviceManagerDeviceAddedCallback = Nothing
-
-type DeviceManagerDeviceAddedCallbackC =
-    Ptr () ->                               -- object
-    Ptr Device ->
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkDeviceManagerDeviceAddedCallback :: DeviceManagerDeviceAddedCallbackC -> IO (FunPtr DeviceManagerDeviceAddedCallbackC)
-
-deviceManagerDeviceAddedClosure :: DeviceManagerDeviceAddedCallback -> IO Closure
-deviceManagerDeviceAddedClosure cb = newCClosure =<< mkDeviceManagerDeviceAddedCallback wrapped
-    where wrapped = deviceManagerDeviceAddedCallbackWrapper cb
-
-deviceManagerDeviceAddedCallbackWrapper ::
-    DeviceManagerDeviceAddedCallback ->
-    Ptr () ->
-    Ptr Device ->
-    Ptr () ->
-    IO ()
-deviceManagerDeviceAddedCallbackWrapper _cb _ device _ = do
-    device' <- (newObject Device) device
-    _cb  device'
-
-onDeviceManagerDeviceAdded :: (GObject a, MonadIO m) => a -> DeviceManagerDeviceAddedCallback -> m SignalHandlerId
-onDeviceManagerDeviceAdded obj cb = liftIO $ connectDeviceManagerDeviceAdded obj cb SignalConnectBefore
-afterDeviceManagerDeviceAdded :: (GObject a, MonadIO m) => a -> DeviceManagerDeviceAddedCallback -> m SignalHandlerId
-afterDeviceManagerDeviceAdded obj cb = connectDeviceManagerDeviceAdded obj cb SignalConnectAfter
-
-connectDeviceManagerDeviceAdded :: (GObject a, MonadIO m) =>
-                                   a -> DeviceManagerDeviceAddedCallback -> SignalConnectMode -> m SignalHandlerId
-connectDeviceManagerDeviceAdded obj cb after = liftIO $ do
-    cb' <- mkDeviceManagerDeviceAddedCallback (deviceManagerDeviceAddedCallbackWrapper cb)
-    connectSignalFunPtr obj "device-added" cb' after
-
--- signal DeviceManager::device-changed
-type DeviceManagerDeviceChangedCallback =
-    Device ->
-    IO ()
-
-noDeviceManagerDeviceChangedCallback :: Maybe DeviceManagerDeviceChangedCallback
-noDeviceManagerDeviceChangedCallback = Nothing
-
-type DeviceManagerDeviceChangedCallbackC =
-    Ptr () ->                               -- object
-    Ptr Device ->
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkDeviceManagerDeviceChangedCallback :: DeviceManagerDeviceChangedCallbackC -> IO (FunPtr DeviceManagerDeviceChangedCallbackC)
-
-deviceManagerDeviceChangedClosure :: DeviceManagerDeviceChangedCallback -> IO Closure
-deviceManagerDeviceChangedClosure cb = newCClosure =<< mkDeviceManagerDeviceChangedCallback wrapped
-    where wrapped = deviceManagerDeviceChangedCallbackWrapper cb
-
-deviceManagerDeviceChangedCallbackWrapper ::
-    DeviceManagerDeviceChangedCallback ->
-    Ptr () ->
-    Ptr Device ->
-    Ptr () ->
-    IO ()
-deviceManagerDeviceChangedCallbackWrapper _cb _ device _ = do
-    device' <- (newObject Device) device
-    _cb  device'
-
-onDeviceManagerDeviceChanged :: (GObject a, MonadIO m) => a -> DeviceManagerDeviceChangedCallback -> m SignalHandlerId
-onDeviceManagerDeviceChanged obj cb = liftIO $ connectDeviceManagerDeviceChanged obj cb SignalConnectBefore
-afterDeviceManagerDeviceChanged :: (GObject a, MonadIO m) => a -> DeviceManagerDeviceChangedCallback -> m SignalHandlerId
-afterDeviceManagerDeviceChanged obj cb = connectDeviceManagerDeviceChanged obj cb SignalConnectAfter
-
-connectDeviceManagerDeviceChanged :: (GObject a, MonadIO m) =>
-                                     a -> DeviceManagerDeviceChangedCallback -> SignalConnectMode -> m SignalHandlerId
-connectDeviceManagerDeviceChanged obj cb after = liftIO $ do
-    cb' <- mkDeviceManagerDeviceChangedCallback (deviceManagerDeviceChangedCallbackWrapper cb)
-    connectSignalFunPtr obj "device-changed" cb' after
-
--- signal DeviceManager::device-removed
-type DeviceManagerDeviceRemovedCallback =
-    Device ->
-    IO ()
-
-noDeviceManagerDeviceRemovedCallback :: Maybe DeviceManagerDeviceRemovedCallback
-noDeviceManagerDeviceRemovedCallback = Nothing
-
-type DeviceManagerDeviceRemovedCallbackC =
-    Ptr () ->                               -- object
-    Ptr Device ->
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkDeviceManagerDeviceRemovedCallback :: DeviceManagerDeviceRemovedCallbackC -> IO (FunPtr DeviceManagerDeviceRemovedCallbackC)
-
-deviceManagerDeviceRemovedClosure :: DeviceManagerDeviceRemovedCallback -> IO Closure
-deviceManagerDeviceRemovedClosure cb = newCClosure =<< mkDeviceManagerDeviceRemovedCallback wrapped
-    where wrapped = deviceManagerDeviceRemovedCallbackWrapper cb
-
-deviceManagerDeviceRemovedCallbackWrapper ::
-    DeviceManagerDeviceRemovedCallback ->
-    Ptr () ->
-    Ptr Device ->
-    Ptr () ->
-    IO ()
-deviceManagerDeviceRemovedCallbackWrapper _cb _ device _ = do
-    device' <- (newObject Device) device
-    _cb  device'
-
-onDeviceManagerDeviceRemoved :: (GObject a, MonadIO m) => a -> DeviceManagerDeviceRemovedCallback -> m SignalHandlerId
-onDeviceManagerDeviceRemoved obj cb = liftIO $ connectDeviceManagerDeviceRemoved obj cb SignalConnectBefore
-afterDeviceManagerDeviceRemoved :: (GObject a, MonadIO m) => a -> DeviceManagerDeviceRemovedCallback -> m SignalHandlerId
-afterDeviceManagerDeviceRemoved obj cb = connectDeviceManagerDeviceRemoved obj cb SignalConnectAfter
-
-connectDeviceManagerDeviceRemoved :: (GObject a, MonadIO m) =>
-                                     a -> DeviceManagerDeviceRemovedCallback -> SignalConnectMode -> m SignalHandlerId
-connectDeviceManagerDeviceRemoved obj cb after = liftIO $ do
-    cb' <- mkDeviceManagerDeviceRemovedCallback (deviceManagerDeviceRemovedCallbackWrapper cb)
-    connectSignalFunPtr obj "device-removed" cb' after
-
--- Enum DeviceType
-
-data DeviceType = 
-      DeviceTypeMaster
-    | DeviceTypeSlave
-    | DeviceTypeFloating
-    | AnotherDeviceType Int
-    deriving (Show, Eq)
-
-instance Enum DeviceType where
-    fromEnum DeviceTypeMaster = 0
-    fromEnum DeviceTypeSlave = 1
-    fromEnum DeviceTypeFloating = 2
-    fromEnum (AnotherDeviceType k) = k
-
-    toEnum 0 = DeviceTypeMaster
-    toEnum 1 = DeviceTypeSlave
-    toEnum 2 = DeviceTypeFloating
-    toEnum k = AnotherDeviceType k
-
-foreign import ccall "gdk_device_type_get_type" c_gdk_device_type_get_type :: 
-    IO GType
-
-instance BoxedEnum DeviceType where
-    boxedEnumType _ = c_gdk_device_type_get_type
-
--- object Display 
-newtype Display = Display (ForeignPtr Display)
-noDisplay :: Maybe Display
-noDisplay = Nothing
-
-foreign import ccall "gdk_display_get_type"
-    c_gdk_display_get_type :: IO GType
-
-type instance ParentTypes Display = '[GObject.Object]
-
-instance GObject Display where
-    gobjectIsInitiallyUnowned _ = False
-    gobjectType _ = c_gdk_display_get_type
-    
-
-class GObject o => DisplayK o
-instance (GObject o, IsDescendantOf Display o) => DisplayK o
-
-toDisplay :: DisplayK o => o -> IO Display
-toDisplay = unsafeCastTo Display
-
--- method Display::beep
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_beep" gdk_display_beep :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO ()
-
-
-displayBeep ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m ()
-displayBeep _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_display_beep _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Display::close
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_close" gdk_display_close :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO ()
-
-
-displayClose ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m ()
-displayClose _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_display_close _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Display::device_is_grabbed
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_device_is_grabbed" gdk_display_device_is_grabbed :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    IO CInt
-
-
-displayDeviceIsGrabbed ::
-    (MonadIO m, DisplayK a, DeviceK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    m Bool
-displayDeviceIsGrabbed _obj device = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    result <- gdk_display_device_is_grabbed _obj' device'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    touchManagedPtr device
-    return result'
-
--- method Display::flush
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_flush" gdk_display_flush :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO ()
-
-
-displayFlush ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m ()
-displayFlush _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_display_flush _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Display::get_app_launch_context
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "AppLaunchContext"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_get_app_launch_context" gdk_display_get_app_launch_context :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO (Ptr AppLaunchContext)
-
-
-displayGetAppLaunchContext ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m AppLaunchContext
-displayGetAppLaunchContext _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_get_app_launch_context _obj'
-    checkUnexpectedReturnNULL "gdk_display_get_app_launch_context" result
-    result' <- (wrapObject AppLaunchContext) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::get_default_cursor_size
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_get_default_cursor_size" gdk_display_get_default_cursor_size :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO Word32
-
-
-displayGetDefaultCursorSize ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Word32
-displayGetDefaultCursorSize _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_get_default_cursor_size _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Display::get_default_group
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_get_default_group" gdk_display_get_default_group :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO (Ptr Window)
-
-
-displayGetDefaultGroup ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Window
-displayGetDefaultGroup _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_get_default_group _obj'
-    checkUnexpectedReturnNULL "gdk_display_get_default_group" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::get_default_screen
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Screen"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_get_default_screen" gdk_display_get_default_screen :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO (Ptr Screen)
-
-
-displayGetDefaultScreen ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Screen
-displayGetDefaultScreen _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_get_default_screen _obj'
-    checkUnexpectedReturnNULL "gdk_display_get_default_screen" result
-    result' <- (newObject Screen) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::get_device_manager
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "DeviceManager"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_get_device_manager" gdk_display_get_device_manager :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO (Ptr DeviceManager)
-
-
-displayGetDeviceManager ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m DeviceManager
-displayGetDeviceManager _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_get_device_manager _obj'
-    checkUnexpectedReturnNULL "gdk_display_get_device_manager" result
-    result' <- (newObject DeviceManager) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::get_event
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Event"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_get_event" gdk_display_get_event :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO (Ptr Event)
-
-
-displayGetEvent ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Event
-displayGetEvent _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_get_event _obj'
-    checkUnexpectedReturnNULL "gdk_display_get_event" result
-    result' <- (wrapBoxed Event) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::get_maximal_cursor_size
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "height", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_get_maximal_cursor_size" gdk_display_get_maximal_cursor_size :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    Ptr Word32 ->                           -- width : TBasicType TUInt32
-    Ptr Word32 ->                           -- height : TBasicType TUInt32
-    IO ()
-
-
-displayGetMaximalCursorSize ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m (Word32,Word32)
-displayGetMaximalCursorSize _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    width <- allocMem :: IO (Ptr Word32)
-    height <- allocMem :: IO (Ptr Word32)
-    gdk_display_get_maximal_cursor_size _obj' width height
-    width' <- peek width
-    height' <- peek height
-    touchManagedPtr _obj
-    freeMem width
-    freeMem height
-    return (width', height')
-
--- method Display::get_n_screens
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_get_n_screens" gdk_display_get_n_screens :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO Int32
-
-{-# DEPRECATED displayGetNScreens ["(Since version 3.10)","The number of screens is always 1."]#-}
-displayGetNScreens ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Int32
-displayGetNScreens _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_get_n_screens _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Display::get_name
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_get_name" gdk_display_get_name :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO CString
-
-
-displayGetName ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m T.Text
-displayGetName _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_get_name _obj'
-    checkUnexpectedReturnNULL "gdk_display_get_name" result
-    result' <- cstringToText result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::get_pointer
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_get_pointer" gdk_display_get_pointer :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    Ptr (Ptr Screen) ->                     -- screen : TInterface "Gdk" "Screen"
-    Ptr Int32 ->                            -- x : TBasicType TInt32
-    Ptr Int32 ->                            -- y : TBasicType TInt32
-    Ptr CUInt ->                            -- mask : TInterface "Gdk" "ModifierType"
-    IO ()
-
-{-# DEPRECATED displayGetPointer ["(Since version 3.0)","Use gdk_device_get_position() instead."]#-}
-displayGetPointer ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m (Screen,Int32,Int32,[ModifierType])
-displayGetPointer _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    screen <- allocMem :: IO (Ptr (Ptr Screen))
-    x <- allocMem :: IO (Ptr Int32)
-    y <- allocMem :: IO (Ptr Int32)
-    mask <- allocMem :: IO (Ptr CUInt)
-    gdk_display_get_pointer _obj' screen x y mask
-    screen' <- peek screen
-    screen'' <- (newObject Screen) screen'
-    x' <- peek x
-    y' <- peek y
-    mask' <- peek mask
-    let mask'' = wordToGFlags mask'
-    touchManagedPtr _obj
-    freeMem screen
-    freeMem x
-    freeMem y
-    freeMem mask
-    return (screen'', x', y', mask'')
-
--- method Display::get_screen
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Screen"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_get_screen" gdk_display_get_screen :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    Int32 ->                                -- screen_num : TBasicType TInt32
-    IO (Ptr Screen)
-
-
-displayGetScreen ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- screen_num
-    m Screen
-displayGetScreen _obj screen_num = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_get_screen _obj' screen_num
-    checkUnexpectedReturnNULL "gdk_display_get_screen" result
-    result' <- (newObject Screen) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::get_window_at_pointer
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "win_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "win_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_get_window_at_pointer" gdk_display_get_window_at_pointer :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    Ptr Int32 ->                            -- win_x : TBasicType TInt32
-    Ptr Int32 ->                            -- win_y : TBasicType TInt32
-    IO (Ptr Window)
-
-{-# DEPRECATED displayGetWindowAtPointer ["(Since version 3.0)","Use gdk_device_get_window_at_position() instead."]#-}
-displayGetWindowAtPointer ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m (Window,Int32,Int32)
-displayGetWindowAtPointer _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    win_x <- allocMem :: IO (Ptr Int32)
-    win_y <- allocMem :: IO (Ptr Int32)
-    result <- gdk_display_get_window_at_pointer _obj' win_x win_y
-    checkUnexpectedReturnNULL "gdk_display_get_window_at_pointer" result
-    result' <- (newObject Window) result
-    win_x' <- peek win_x
-    win_y' <- peek win_y
-    touchManagedPtr _obj
-    freeMem win_x
-    freeMem win_y
-    return (result', win_x', win_y')
-
--- method Display::has_pending
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_has_pending" gdk_display_has_pending :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO CInt
-
-
-displayHasPending ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
-displayHasPending _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_has_pending _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::is_closed
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_is_closed" gdk_display_is_closed :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO CInt
-
-
-displayIsClosed ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
-displayIsClosed _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_is_closed _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::keyboard_ungrab
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_keyboard_ungrab" gdk_display_keyboard_ungrab :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-{-# DEPRECATED displayKeyboardUngrab ["(Since version 3.0)","Use gdk_device_ungrab(), together with gdk_device_grab()","            instead."]#-}
-displayKeyboardUngrab ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- time_
-    m ()
-displayKeyboardUngrab _obj time_ = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_display_keyboard_ungrab _obj' time_
-    touchManagedPtr _obj
-    return ()
-
--- method Display::list_devices
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TGList (TInterface "Gdk" "Device")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_list_devices" gdk_display_list_devices :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO (Ptr (GList (Ptr Device)))
-
-{-# DEPRECATED displayListDevices ["(Since version 3.0)","Use gdk_device_manager_list_devices() instead."]#-}
-displayListDevices ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m [Device]
-displayListDevices _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_list_devices _obj'
-    checkUnexpectedReturnNULL "gdk_display_list_devices" result
-    result' <- unpackGList result
-    result'' <- mapM (newObject Device) result'
-    touchManagedPtr _obj
-    return result''
-
--- method Display::notify_startup_complete
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_notify_startup_complete" gdk_display_notify_startup_complete :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    CString ->                              -- startup_id : TBasicType TUTF8
-    IO ()
-
-
-displayNotifyStartupComplete ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- startup_id
-    m ()
-displayNotifyStartupComplete _obj startup_id = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    startup_id' <- textToCString startup_id
-    gdk_display_notify_startup_complete _obj' startup_id'
-    touchManagedPtr _obj
-    freeMem startup_id'
-    return ()
-
--- method Display::peek_event
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Event"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_peek_event" gdk_display_peek_event :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO (Ptr Event)
-
-
-displayPeekEvent ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Event
-displayPeekEvent _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_peek_event _obj'
-    checkUnexpectedReturnNULL "gdk_display_peek_event" result
-    result' <- (wrapBoxed Event) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::pointer_is_grabbed
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_pointer_is_grabbed" gdk_display_pointer_is_grabbed :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO CInt
-
-{-# DEPRECATED displayPointerIsGrabbed ["(Since version 3.0)","Use gdk_display_device_is_grabbed() instead."]#-}
-displayPointerIsGrabbed ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
-displayPointerIsGrabbed _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_pointer_is_grabbed _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::pointer_ungrab
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_pointer_ungrab" gdk_display_pointer_ungrab :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-{-# DEPRECATED displayPointerUngrab ["(Since version 3.0)","Use gdk_device_ungrab(), together with gdk_device_grab()","            instead."]#-}
-displayPointerUngrab ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- time_
-    m ()
-displayPointerUngrab _obj time_ = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_display_pointer_ungrab _obj' time_
-    touchManagedPtr _obj
-    return ()
-
--- method Display::put_event
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_put_event" gdk_display_put_event :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    Ptr Event ->                            -- event : TInterface "Gdk" "Event"
-    IO ()
-
-
-displayPutEvent ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    Event ->                                -- event
-    m ()
-displayPutEvent _obj event = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let event' = unsafeManagedPtrGetPtr event
-    gdk_display_put_event _obj' event'
-    touchManagedPtr _obj
-    touchManagedPtr event
-    return ()
-
--- method Display::request_selection_notification
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_request_selection_notification" gdk_display_request_selection_notification :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
-    IO CInt
-
-
-displayRequestSelectionNotification ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    Atom ->                                 -- selection
-    m Bool
-displayRequestSelectionNotification _obj selection = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let selection' = unsafeManagedPtrGetPtr selection
-    result <- gdk_display_request_selection_notification _obj' selection'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    touchManagedPtr selection
-    return result'
-
--- method Display::set_double_click_distance
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "distance", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "distance", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_set_double_click_distance" gdk_display_set_double_click_distance :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    Word32 ->                               -- distance : TBasicType TUInt32
-    IO ()
-
-
-displaySetDoubleClickDistance ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- distance
-    m ()
-displaySetDoubleClickDistance _obj distance = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_display_set_double_click_distance _obj' distance
-    touchManagedPtr _obj
-    return ()
-
--- method Display::set_double_click_time
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msec", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msec", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_set_double_click_time" gdk_display_set_double_click_time :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    Word32 ->                               -- msec : TBasicType TUInt32
-    IO ()
-
-
-displaySetDoubleClickTime ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- msec
-    m ()
-displaySetDoubleClickTime _obj msec = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_display_set_double_click_time _obj' msec
-    touchManagedPtr _obj
-    return ()
-
--- method Display::store_clipboard
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "clipboard_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TCArray False (-1) 4 (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_targets", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : [Arg {argName = "n_targets", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "clipboard_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TCArray False (-1) 4 (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_store_clipboard" gdk_display_store_clipboard :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    Ptr Window ->                           -- clipboard_window : TInterface "Gdk" "Window"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    Ptr (Ptr Atom) ->                       -- targets : TCArray False (-1) 4 (TInterface "Gdk" "Atom")
-    Int32 ->                                -- n_targets : TBasicType TInt32
-    IO ()
-
-
-displayStoreClipboard ::
-    (MonadIO m, DisplayK a, WindowK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- clipboard_window
-    Word32 ->                               -- time_
-    [Atom] ->                               -- targets
-    m ()
-displayStoreClipboard _obj clipboard_window time_ targets = liftIO $ do
-    let n_targets = fromIntegral $ length targets
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let clipboard_window' = unsafeManagedPtrCastPtr clipboard_window
-    let targets' = map unsafeManagedPtrGetPtr targets
-    targets'' <- packPtrArray targets'
-    gdk_display_store_clipboard _obj' clipboard_window' time_ targets'' n_targets
-    touchManagedPtr _obj
-    touchManagedPtr clipboard_window
-    mapM_ touchManagedPtr targets
-    freeMem targets''
-    return ()
-
--- method Display::supports_clipboard_persistence
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_supports_clipboard_persistence" gdk_display_supports_clipboard_persistence :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO CInt
-
-
-displaySupportsClipboardPersistence ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
-displaySupportsClipboardPersistence _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_supports_clipboard_persistence _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::supports_composite
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_supports_composite" gdk_display_supports_composite :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO CInt
-
-{-# DEPRECATED displaySupportsComposite ["(Since version 3.16)","Compositing is an outdated technology that","  only ever worked on X11."]#-}
-displaySupportsComposite ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
-displaySupportsComposite _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_supports_composite _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::supports_cursor_alpha
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_supports_cursor_alpha" gdk_display_supports_cursor_alpha :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO CInt
-
-
-displaySupportsCursorAlpha ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
-displaySupportsCursorAlpha _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_supports_cursor_alpha _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::supports_cursor_color
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_supports_cursor_color" gdk_display_supports_cursor_color :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO CInt
-
-
-displaySupportsCursorColor ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
-displaySupportsCursorColor _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_supports_cursor_color _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::supports_input_shapes
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_supports_input_shapes" gdk_display_supports_input_shapes :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO CInt
-
-
-displaySupportsInputShapes ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
-displaySupportsInputShapes _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_supports_input_shapes _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::supports_selection_notification
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_supports_selection_notification" gdk_display_supports_selection_notification :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO CInt
-
-
-displaySupportsSelectionNotification ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
-displaySupportsSelectionNotification _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_supports_selection_notification _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::supports_shapes
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_supports_shapes" gdk_display_supports_shapes :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO CInt
-
-
-displaySupportsShapes ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
-displaySupportsShapes _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_supports_shapes _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Display::sync
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_sync" gdk_display_sync :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    IO ()
-
-
-displaySync ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m ()
-displaySync _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_display_sync _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Display::warp_pointer
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_warp_pointer" gdk_display_warp_pointer :: 
-    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
-    Ptr Screen ->                           -- screen : TInterface "Gdk" "Screen"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    IO ()
-
-{-# DEPRECATED displayWarpPointer ["(Since version 3.0)","Use gdk_device_warp() instead."]#-}
-displayWarpPointer ::
-    (MonadIO m, DisplayK a, ScreenK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- screen
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    m ()
-displayWarpPointer _obj screen x y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let screen' = unsafeManagedPtrCastPtr screen
-    gdk_display_warp_pointer _obj' screen' x y
-    touchManagedPtr _obj
-    touchManagedPtr screen
-    return ()
-
--- method Display::get_default
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "Display"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_get_default" gdk_display_get_default :: 
-    IO (Ptr Display)
-
-
-displayGetDefault ::
-    (MonadIO m) =>
-    m Display
-displayGetDefault  = liftIO $ do
-    result <- gdk_display_get_default
-    checkUnexpectedReturnNULL "gdk_display_get_default" result
-    result' <- (newObject Display) result
-    return result'
-
--- method Display::open
--- method type : MemberFunction
--- Args : [Arg {argName = "display_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "display_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Display"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_open" gdk_display_open :: 
-    CString ->                              -- display_name : TBasicType TUTF8
-    IO (Ptr Display)
-
-
-displayOpen ::
-    (MonadIO m) =>
-    T.Text ->                               -- display_name
-    m Display
-displayOpen display_name = liftIO $ do
-    display_name' <- textToCString display_name
-    result <- gdk_display_open display_name'
-    checkUnexpectedReturnNULL "gdk_display_open" result
-    result' <- (newObject Display) result
-    freeMem display_name'
-    return result'
-
--- method Display::open_default_libgtk_only
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "Display"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_open_default_libgtk_only" gdk_display_open_default_libgtk_only :: 
-    IO (Ptr Display)
-
-{-# DEPRECATED displayOpenDefaultLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside","  of GTK+"]#-}
-displayOpenDefaultLibgtkOnly ::
-    (MonadIO m) =>
-    m Display
-displayOpenDefaultLibgtkOnly  = liftIO $ do
-    result <- gdk_display_open_default_libgtk_only
-    checkUnexpectedReturnNULL "gdk_display_open_default_libgtk_only" result
-    result' <- (newObject Display) result
-    return result'
-
--- signal Display::closed
-type DisplayClosedCallback =
-    Bool ->
-    IO ()
-
-noDisplayClosedCallback :: Maybe DisplayClosedCallback
-noDisplayClosedCallback = Nothing
-
-type DisplayClosedCallbackC =
-    Ptr () ->                               -- object
-    CInt ->
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkDisplayClosedCallback :: DisplayClosedCallbackC -> IO (FunPtr DisplayClosedCallbackC)
-
-displayClosedClosure :: DisplayClosedCallback -> IO Closure
-displayClosedClosure cb = newCClosure =<< mkDisplayClosedCallback wrapped
-    where wrapped = displayClosedCallbackWrapper cb
-
-displayClosedCallbackWrapper ::
-    DisplayClosedCallback ->
-    Ptr () ->
-    CInt ->
-    Ptr () ->
-    IO ()
-displayClosedCallbackWrapper _cb _ is_error _ = do
-    let is_error' = (/= 0) is_error
-    _cb  is_error'
-
-onDisplayClosed :: (GObject a, MonadIO m) => a -> DisplayClosedCallback -> m SignalHandlerId
-onDisplayClosed obj cb = liftIO $ connectDisplayClosed obj cb SignalConnectBefore
-afterDisplayClosed :: (GObject a, MonadIO m) => a -> DisplayClosedCallback -> m SignalHandlerId
-afterDisplayClosed obj cb = connectDisplayClosed obj cb SignalConnectAfter
-
-connectDisplayClosed :: (GObject a, MonadIO m) =>
-                        a -> DisplayClosedCallback -> SignalConnectMode -> m SignalHandlerId
-connectDisplayClosed obj cb after = liftIO $ do
-    cb' <- mkDisplayClosedCallback (displayClosedCallbackWrapper cb)
-    connectSignalFunPtr obj "closed" cb' after
-
--- signal Display::opened
-type DisplayOpenedCallback =
-    IO ()
-
-noDisplayOpenedCallback :: Maybe DisplayOpenedCallback
-noDisplayOpenedCallback = Nothing
-
-type DisplayOpenedCallbackC =
-    Ptr () ->                               -- object
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkDisplayOpenedCallback :: DisplayOpenedCallbackC -> IO (FunPtr DisplayOpenedCallbackC)
-
-displayOpenedClosure :: DisplayOpenedCallback -> IO Closure
-displayOpenedClosure cb = newCClosure =<< mkDisplayOpenedCallback wrapped
-    where wrapped = displayOpenedCallbackWrapper cb
-
-displayOpenedCallbackWrapper ::
-    DisplayOpenedCallback ->
-    Ptr () ->
-    Ptr () ->
-    IO ()
-displayOpenedCallbackWrapper _cb _ _ = do
-    _cb 
-
-onDisplayOpened :: (GObject a, MonadIO m) => a -> DisplayOpenedCallback -> m SignalHandlerId
-onDisplayOpened obj cb = liftIO $ connectDisplayOpened obj cb SignalConnectBefore
-afterDisplayOpened :: (GObject a, MonadIO m) => a -> DisplayOpenedCallback -> m SignalHandlerId
-afterDisplayOpened obj cb = connectDisplayOpened obj cb SignalConnectAfter
-
-connectDisplayOpened :: (GObject a, MonadIO m) =>
-                        a -> DisplayOpenedCallback -> SignalConnectMode -> m SignalHandlerId
-connectDisplayOpened obj cb after = liftIO $ do
-    cb' <- mkDisplayOpenedCallback (displayOpenedCallbackWrapper cb)
-    connectSignalFunPtr obj "opened" cb' after
-
--- object DisplayManager 
-newtype DisplayManager = DisplayManager (ForeignPtr DisplayManager)
-noDisplayManager :: Maybe DisplayManager
-noDisplayManager = Nothing
-
-foreign import ccall "gdk_display_manager_get_type"
-    c_gdk_display_manager_get_type :: IO GType
-
-type instance ParentTypes DisplayManager = '[GObject.Object]
-
-instance GObject DisplayManager where
-    gobjectIsInitiallyUnowned _ = False
-    gobjectType _ = c_gdk_display_manager_get_type
-    
-
-class GObject o => DisplayManagerK o
-instance (GObject o, IsDescendantOf DisplayManager o) => DisplayManagerK o
-
-toDisplayManager :: DisplayManagerK o => o -> IO DisplayManager
-toDisplayManager = unsafeCastTo DisplayManager
-
--- method DisplayManager::get_default_display
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Display"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_manager_get_default_display" gdk_display_manager_get_default_display :: 
-    Ptr DisplayManager ->                   -- _obj : TInterface "Gdk" "DisplayManager"
-    IO (Ptr Display)
-
-
-displayManagerGetDefaultDisplay ::
-    (MonadIO m, DisplayManagerK a) =>
-    a ->                                    -- _obj
-    m Display
-displayManagerGetDefaultDisplay _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_manager_get_default_display _obj'
-    checkUnexpectedReturnNULL "gdk_display_manager_get_default_display" result
-    result' <- (newObject Display) result
-    touchManagedPtr _obj
-    return result'
-
--- method DisplayManager::list_displays
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TGSList (TInterface "Gdk" "Display")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_manager_list_displays" gdk_display_manager_list_displays :: 
-    Ptr DisplayManager ->                   -- _obj : TInterface "Gdk" "DisplayManager"
-    IO (Ptr (GSList (Ptr Display)))
-
-
-displayManagerListDisplays ::
-    (MonadIO m, DisplayManagerK a) =>
-    a ->                                    -- _obj
-    m [Display]
-displayManagerListDisplays _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_manager_list_displays _obj'
-    checkUnexpectedReturnNULL "gdk_display_manager_list_displays" result
-    result' <- unpackGSList result
-    result'' <- mapM (newObject Display) result'
-    g_slist_free result
-    touchManagedPtr _obj
-    return result''
-
--- method DisplayManager::open_display
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Display"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_manager_open_display" gdk_display_manager_open_display :: 
-    Ptr DisplayManager ->                   -- _obj : TInterface "Gdk" "DisplayManager"
-    CString ->                              -- name : TBasicType TUTF8
-    IO (Ptr Display)
-
-
-displayManagerOpenDisplay ::
-    (MonadIO m, DisplayManagerK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- name
-    m Display
-displayManagerOpenDisplay _obj name = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    name' <- textToCString name
-    result <- gdk_display_manager_open_display _obj' name'
-    checkUnexpectedReturnNULL "gdk_display_manager_open_display" result
-    result' <- (newObject Display) result
-    touchManagedPtr _obj
-    freeMem name'
-    return result'
-
--- method DisplayManager::set_default_display
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_manager_set_default_display" gdk_display_manager_set_default_display :: 
-    Ptr DisplayManager ->                   -- _obj : TInterface "Gdk" "DisplayManager"
-    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
-    IO ()
-
-
-displayManagerSetDefaultDisplay ::
-    (MonadIO m, DisplayManagerK a, DisplayK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- display
-    m ()
-displayManagerSetDefaultDisplay _obj display = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let display' = unsafeManagedPtrCastPtr display
-    gdk_display_manager_set_default_display _obj' display'
-    touchManagedPtr _obj
-    touchManagedPtr display
-    return ()
-
--- method DisplayManager::get
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "DisplayManager"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_display_manager_get" gdk_display_manager_get :: 
-    IO (Ptr DisplayManager)
-
-
-displayManagerGet ::
-    (MonadIO m) =>
-    m DisplayManager
-displayManagerGet  = liftIO $ do
-    result <- gdk_display_manager_get
-    checkUnexpectedReturnNULL "gdk_display_manager_get" result
-    result' <- (newObject DisplayManager) result
-    return result'
-
--- signal DisplayManager::display-opened
-type DisplayManagerDisplayOpenedCallback =
-    Display ->
-    IO ()
-
-noDisplayManagerDisplayOpenedCallback :: Maybe DisplayManagerDisplayOpenedCallback
-noDisplayManagerDisplayOpenedCallback = Nothing
-
-type DisplayManagerDisplayOpenedCallbackC =
-    Ptr () ->                               -- object
-    Ptr Display ->
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkDisplayManagerDisplayOpenedCallback :: DisplayManagerDisplayOpenedCallbackC -> IO (FunPtr DisplayManagerDisplayOpenedCallbackC)
-
-displayManagerDisplayOpenedClosure :: DisplayManagerDisplayOpenedCallback -> IO Closure
-displayManagerDisplayOpenedClosure cb = newCClosure =<< mkDisplayManagerDisplayOpenedCallback wrapped
-    where wrapped = displayManagerDisplayOpenedCallbackWrapper cb
-
-displayManagerDisplayOpenedCallbackWrapper ::
-    DisplayManagerDisplayOpenedCallback ->
-    Ptr () ->
-    Ptr Display ->
-    Ptr () ->
-    IO ()
-displayManagerDisplayOpenedCallbackWrapper _cb _ display _ = do
-    display' <- (newObject Display) display
-    _cb  display'
-
-onDisplayManagerDisplayOpened :: (GObject a, MonadIO m) => a -> DisplayManagerDisplayOpenedCallback -> m SignalHandlerId
-onDisplayManagerDisplayOpened obj cb = liftIO $ connectDisplayManagerDisplayOpened obj cb SignalConnectBefore
-afterDisplayManagerDisplayOpened :: (GObject a, MonadIO m) => a -> DisplayManagerDisplayOpenedCallback -> m SignalHandlerId
-afterDisplayManagerDisplayOpened obj cb = connectDisplayManagerDisplayOpened obj cb SignalConnectAfter
-
-connectDisplayManagerDisplayOpened :: (GObject a, MonadIO m) =>
-                                      a -> DisplayManagerDisplayOpenedCallback -> SignalConnectMode -> m SignalHandlerId
-connectDisplayManagerDisplayOpened obj cb after = liftIO $ do
-    cb' <- mkDisplayManagerDisplayOpenedCallback (displayManagerDisplayOpenedCallbackWrapper cb)
-    connectSignalFunPtr obj "display-opened" cb' after
-
--- Flags DragAction
-
-data DragAction = 
-      DragActionDefault
-    | DragActionCopy
-    | DragActionMove
-    | DragActionLink
-    | DragActionPrivate
-    | DragActionAsk
-    | AnotherDragAction Int
-    deriving (Show, Eq)
-
-instance Enum DragAction where
-    fromEnum DragActionDefault = 1
-    fromEnum DragActionCopy = 2
-    fromEnum DragActionMove = 4
-    fromEnum DragActionLink = 8
-    fromEnum DragActionPrivate = 16
-    fromEnum DragActionAsk = 32
-    fromEnum (AnotherDragAction k) = k
-
-    toEnum 1 = DragActionDefault
-    toEnum 2 = DragActionCopy
-    toEnum 4 = DragActionMove
-    toEnum 8 = DragActionLink
-    toEnum 16 = DragActionPrivate
-    toEnum 32 = DragActionAsk
-    toEnum k = AnotherDragAction k
-
-foreign import ccall "gdk_drag_action_get_type" c_gdk_drag_action_get_type :: 
-    IO GType
-
-instance BoxedEnum DragAction where
-    boxedEnumType _ = c_gdk_drag_action_get_type
-
-instance IsGFlag DragAction
-
--- object DragContext 
-newtype DragContext = DragContext (ForeignPtr DragContext)
-noDragContext :: Maybe DragContext
-noDragContext = Nothing
-
-foreign import ccall "gdk_drag_context_get_type"
-    c_gdk_drag_context_get_type :: IO GType
-
-type instance ParentTypes DragContext = '[GObject.Object]
-
-instance GObject DragContext where
-    gobjectIsInitiallyUnowned _ = False
-    gobjectType _ = c_gdk_drag_context_get_type
-    
-
-class GObject o => DragContextK o
-instance (GObject o, IsDescendantOf DragContext o) => DragContextK o
-
-toDragContext :: DragContextK o => o -> IO DragContext
-toDragContext = unsafeCastTo DragContext
-
--- method DragContext::get_actions
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "DragAction"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_context_get_actions" gdk_drag_context_get_actions :: 
-    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
-    IO CUInt
-
-
-dragContextGetActions ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- _obj
-    m [DragAction]
-dragContextGetActions _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_drag_context_get_actions _obj'
-    let result' = wordToGFlags result
-    touchManagedPtr _obj
-    return result'
-
--- method DragContext::get_dest_window
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_context_get_dest_window" gdk_drag_context_get_dest_window :: 
-    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
-    IO (Ptr Window)
-
-
-dragContextGetDestWindow ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- _obj
-    m Window
-dragContextGetDestWindow _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_drag_context_get_dest_window _obj'
-    checkUnexpectedReturnNULL "gdk_drag_context_get_dest_window" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method DragContext::get_device
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Device"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_context_get_device" gdk_drag_context_get_device :: 
-    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
-    IO (Ptr Device)
-
-
-dragContextGetDevice ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- _obj
-    m Device
-dragContextGetDevice _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_drag_context_get_device _obj'
-    checkUnexpectedReturnNULL "gdk_drag_context_get_device" result
-    result' <- (newObject Device) result
-    touchManagedPtr _obj
-    return result'
-
--- method DragContext::get_protocol
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "DragProtocol"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_context_get_protocol" gdk_drag_context_get_protocol :: 
-    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
-    IO CUInt
-
-
-dragContextGetProtocol ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- _obj
-    m DragProtocol
-dragContextGetProtocol _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_drag_context_get_protocol _obj'
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    return result'
-
--- method DragContext::get_selected_action
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "DragAction"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_context_get_selected_action" gdk_drag_context_get_selected_action :: 
-    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
-    IO CUInt
-
-
-dragContextGetSelectedAction ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- _obj
-    m [DragAction]
-dragContextGetSelectedAction _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_drag_context_get_selected_action _obj'
-    let result' = wordToGFlags result
-    touchManagedPtr _obj
-    return result'
-
--- method DragContext::get_source_window
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_context_get_source_window" gdk_drag_context_get_source_window :: 
-    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
-    IO (Ptr Window)
-
-
-dragContextGetSourceWindow ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- _obj
-    m Window
-dragContextGetSourceWindow _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_drag_context_get_source_window _obj'
-    checkUnexpectedReturnNULL "gdk_drag_context_get_source_window" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method DragContext::get_suggested_action
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "DragAction"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_context_get_suggested_action" gdk_drag_context_get_suggested_action :: 
-    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
-    IO CUInt
-
-
-dragContextGetSuggestedAction ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- _obj
-    m [DragAction]
-dragContextGetSuggestedAction _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_drag_context_get_suggested_action _obj'
-    let result' = wordToGFlags result
-    touchManagedPtr _obj
-    return result'
-
--- method DragContext::list_targets
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TGList (TInterface "Gdk" "Atom")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_context_list_targets" gdk_drag_context_list_targets :: 
-    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
-    IO (Ptr (GList (Ptr Atom)))
-
-
-dragContextListTargets ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- _obj
-    m [Atom]
-dragContextListTargets _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_drag_context_list_targets _obj'
-    checkUnexpectedReturnNULL "gdk_drag_context_list_targets" result
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    result' <- unpackGList result
-    result'' <- mapM (\x -> Atom <$> newForeignPtr_ x) result'
-    touchManagedPtr _obj
-    return result''
-
--- method DragContext::set_device
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_context_set_device" gdk_drag_context_set_device :: 
-    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    IO ()
-
-
-dragContextSetDevice ::
-    (MonadIO m, DragContextK a, DeviceK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    m ()
-dragContextSetDevice _obj device = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    gdk_drag_context_set_device _obj' device'
-    touchManagedPtr _obj
-    touchManagedPtr device
-    return ()
-
--- Enum DragProtocol
-
-data DragProtocol = 
-      DragProtocolNone
-    | DragProtocolMotif
-    | DragProtocolXdnd
-    | DragProtocolRootwin
-    | DragProtocolWin32Dropfiles
-    | DragProtocolOle2
-    | DragProtocolLocal
-    | DragProtocolWayland
-    | AnotherDragProtocol Int
-    deriving (Show, Eq)
-
-instance Enum DragProtocol where
-    fromEnum DragProtocolNone = 0
-    fromEnum DragProtocolMotif = 1
-    fromEnum DragProtocolXdnd = 2
-    fromEnum DragProtocolRootwin = 3
-    fromEnum DragProtocolWin32Dropfiles = 4
-    fromEnum DragProtocolOle2 = 5
-    fromEnum DragProtocolLocal = 6
-    fromEnum DragProtocolWayland = 7
-    fromEnum (AnotherDragProtocol k) = k
-
-    toEnum 0 = DragProtocolNone
-    toEnum 1 = DragProtocolMotif
-    toEnum 2 = DragProtocolXdnd
-    toEnum 3 = DragProtocolRootwin
-    toEnum 4 = DragProtocolWin32Dropfiles
-    toEnum 5 = DragProtocolOle2
-    toEnum 6 = DragProtocolLocal
-    toEnum 7 = DragProtocolWayland
-    toEnum k = AnotherDragProtocol k
-
-foreign import ccall "gdk_drag_protocol_get_type" c_gdk_drag_protocol_get_type :: 
-    IO GType
-
-instance BoxedEnum DragProtocol where
-    boxedEnumType _ = c_gdk_drag_protocol_get_type
-
--- union Event 
-newtype Event = Event (ForeignPtr Event)
-noEvent :: Maybe Event
-noEvent = Nothing
-
-foreign import ccall "gdk_event_get_type" c_gdk_event_get_type :: 
-    IO GType
-
-instance BoxedObject Event where
-    boxedType _ = c_gdk_event_get_type
-
-eventReadType :: Event -> IO EventType
-eventReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventReadAny :: Event -> IO EventAny
-eventReadAny s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventAny)
-    val' <- (newPtr 24 EventAny) val
-    return val'
-
-eventReadExpose :: Event -> IO EventExpose
-eventReadExpose s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventExpose)
-    val' <- (newPtr 56 EventExpose) val
-    return val'
-
-eventReadVisibility :: Event -> IO EventVisibility
-eventReadVisibility s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventVisibility)
-    val' <- (newPtr 24 EventVisibility) val
-    return val'
-
-eventReadMotion :: Event -> IO EventMotion
-eventReadMotion s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventMotion)
-    val' <- (newPtr 80 EventMotion) val
-    return val'
-
-eventReadButton :: Event -> IO EventButton
-eventReadButton s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventButton)
-    val' <- (newPtr 80 EventButton) val
-    return val'
-
-eventReadTouch :: Event -> IO EventTouch
-eventReadTouch s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventTouch)
-    val' <- (newPtr 96 EventTouch) val
-    return val'
-
-eventReadScroll :: Event -> IO EventScroll
-eventReadScroll s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventScroll)
-    val' <- (newPtr 88 EventScroll) val
-    return val'
-
-eventReadKey :: Event -> IO EventKey
-eventReadKey s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventKey)
-    val' <- (newPtr 56 EventKey) val
-    return val'
-
-eventReadCrossing :: Event -> IO EventCrossing
-eventReadCrossing s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventCrossing)
-    val' <- (newPtr 88 EventCrossing) val
-    return val'
-
-eventReadFocusChange :: Event -> IO EventFocus
-eventReadFocusChange s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventFocus)
-    val' <- (newPtr 24 EventFocus) val
-    return val'
-
-eventReadConfigure :: Event -> IO EventConfigure
-eventReadConfigure s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventConfigure)
-    val' <- (newPtr 40 EventConfigure) val
-    return val'
-
-eventReadProperty :: Event -> IO EventProperty
-eventReadProperty s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventProperty)
-    val' <- (newPtr 40 EventProperty) val
-    return val'
-
-eventReadSelection :: Event -> IO EventSelection
-eventReadSelection s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventSelection)
-    val' <- (newPtr 64 EventSelection) val
-    return val'
-
-eventReadOwnerChange :: Event -> IO EventOwnerChange
-eventReadOwnerChange s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventOwnerChange)
-    val' <- (newPtr 56 EventOwnerChange) val
-    return val'
-
-eventReadProximity :: Event -> IO EventProximity
-eventReadProximity s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventProximity)
-    val' <- (newPtr 32 EventProximity) val
-    return val'
-
-eventReadDnd :: Event -> IO EventDND
-eventReadDnd s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventDND)
-    val' <- (newPtr 40 EventDND) val
-    return val'
-
-eventReadWindowState :: Event -> IO EventWindowState
-eventReadWindowState s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventWindowState)
-    val' <- (newPtr 32 EventWindowState) val
-    return val'
-
-eventReadSetting :: Event -> IO EventSetting
-eventReadSetting s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventSetting)
-    val' <- (newPtr 32 EventSetting) val
-    return val'
-
-eventReadGrabBroken :: Event -> IO EventGrabBroken
-eventReadGrabBroken s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventGrabBroken)
-    val' <- (newPtr 40 EventGrabBroken) val
-    return val'
-
-eventReadTouchpadSwipe :: Event -> IO EventTouchpadSwipe
-eventReadTouchpadSwipe s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventTouchpadSwipe)
-    val' <- (newPtr 88 EventTouchpadSwipe) val
-    return val'
-
-eventReadTouchpadPinch :: Event -> IO EventTouchpadPinch
-eventReadTouchpadPinch s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventTouchpadPinch)
-    val' <- (newPtr 104 EventTouchpadPinch) val
-    return val'
-
--- method Event::new
--- method type : Constructor
--- Args : [Arg {argName = "type", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Event"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_new" gdk_event_new :: 
-    CUInt ->                                -- type : TInterface "Gdk" "EventType"
-    IO (Ptr Event)
-
-
-eventNew ::
-    (MonadIO m) =>
-    EventType ->                            -- type
-    m Event
-eventNew type_ = liftIO $ do
-    let type_' = (fromIntegral . fromEnum) type_
-    result <- gdk_event_new type_'
-    checkUnexpectedReturnNULL "gdk_event_new" result
-    result' <- (wrapBoxed Event) result
-    return result'
-
--- method Event::copy
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Event"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_copy" gdk_event_copy :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    IO (Ptr Event)
-
-
-eventCopy ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m Event
-eventCopy _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_event_copy _obj'
-    checkUnexpectedReturnNULL "gdk_event_copy" result
-    result' <- (wrapBoxed Event) result
-    touchManagedPtr _obj
-    return result'
-
--- method Event::free
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_free" gdk_event_free :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    IO ()
-
-
-eventFree ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m ()
-eventFree _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    gdk_event_free _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Event::get_axis
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "axis_use", argType = TInterface "Gdk" "AxisUse", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "axis_use", argType = TInterface "Gdk" "AxisUse", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_axis" gdk_event_get_axis :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    CUInt ->                                -- axis_use : TInterface "Gdk" "AxisUse"
-    Ptr CDouble ->                          -- value : TBasicType TDouble
-    IO CInt
-
-
-eventGetAxis ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    AxisUse ->                              -- axis_use
-    m (Bool,Double)
-eventGetAxis _obj axis_use = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    let axis_use' = (fromIntegral . fromEnum) axis_use
-    value <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_event_get_axis _obj' axis_use' value
-    let result' = (/= 0) result
-    value' <- peek value
-    let value'' = realToFrac value'
-    touchManagedPtr _obj
-    freeMem value
-    return (result', value'')
-
--- method Event::get_button
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_button" gdk_event_get_button :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    Ptr Word32 ->                           -- button : TBasicType TUInt32
-    IO CInt
-
-
-eventGetButton ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,Word32)
-eventGetButton _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    button <- allocMem :: IO (Ptr Word32)
-    result <- gdk_event_get_button _obj' button
-    let result' = (/= 0) result
-    button' <- peek button
-    touchManagedPtr _obj
-    freeMem button
-    return (result', button')
-
--- method Event::get_click_count
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "click_count", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_click_count" gdk_event_get_click_count :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    Ptr Word32 ->                           -- click_count : TBasicType TUInt32
-    IO CInt
-
-
-eventGetClickCount ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,Word32)
-eventGetClickCount _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    click_count <- allocMem :: IO (Ptr Word32)
-    result <- gdk_event_get_click_count _obj' click_count
-    let result' = (/= 0) result
-    click_count' <- peek click_count
-    touchManagedPtr _obj
-    freeMem click_count
-    return (result', click_count')
-
--- method Event::get_coords
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_win", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y_win", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_coords" gdk_event_get_coords :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    Ptr CDouble ->                          -- x_win : TBasicType TDouble
-    Ptr CDouble ->                          -- y_win : TBasicType TDouble
-    IO CInt
-
-
-eventGetCoords ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,Double,Double)
-eventGetCoords _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    x_win <- allocMem :: IO (Ptr CDouble)
-    y_win <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_event_get_coords _obj' x_win y_win
-    let result' = (/= 0) result
-    x_win' <- peek x_win
-    let x_win'' = realToFrac x_win'
-    y_win' <- peek y_win
-    let y_win'' = realToFrac y_win'
-    touchManagedPtr _obj
-    freeMem x_win
-    freeMem y_win
-    return (result', x_win'', y_win'')
-
--- method Event::get_device
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Device"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_device" gdk_event_get_device :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    IO (Ptr Device)
-
-
-eventGetDevice ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m Device
-eventGetDevice _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_event_get_device _obj'
-    checkUnexpectedReturnNULL "gdk_event_get_device" result
-    result' <- (newObject Device) result
-    touchManagedPtr _obj
-    return result'
-
--- method Event::get_event_sequence
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "EventSequence"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_event_sequence" gdk_event_get_event_sequence :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    IO (Ptr EventSequence)
-
-
-eventGetEventSequence ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m EventSequence
-eventGetEventSequence _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_event_get_event_sequence _obj'
-    checkUnexpectedReturnNULL "gdk_event_get_event_sequence" result
-    result' <- (newBoxed EventSequence) result
-    touchManagedPtr _obj
-    return result'
-
--- method Event::get_event_type
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "EventType"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_event_type" gdk_event_get_event_type :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    IO CUInt
-
-
-eventGetEventType ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m EventType
-eventGetEventType _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_event_get_event_type _obj'
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    return result'
-
--- method Event::get_keycode
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keycode", argType = TBasicType TUInt16, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_keycode" gdk_event_get_keycode :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    Ptr Word16 ->                           -- keycode : TBasicType TUInt16
-    IO CInt
-
-
-eventGetKeycode ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,Word16)
-eventGetKeycode _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    keycode <- allocMem :: IO (Ptr Word16)
-    result <- gdk_event_get_keycode _obj' keycode
-    let result' = (/= 0) result
-    keycode' <- peek keycode
-    touchManagedPtr _obj
-    freeMem keycode
-    return (result', keycode')
-
--- method Event::get_keyval
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_keyval" gdk_event_get_keyval :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    Ptr Word32 ->                           -- keyval : TBasicType TUInt32
-    IO CInt
-
-
-eventGetKeyval ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,Word32)
-eventGetKeyval _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    keyval <- allocMem :: IO (Ptr Word32)
-    result <- gdk_event_get_keyval _obj' keyval
-    let result' = (/= 0) result
-    keyval' <- peek keyval
-    touchManagedPtr _obj
-    freeMem keyval
-    return (result', keyval')
-
--- method Event::get_root_coords
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_root", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y_root", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_root_coords" gdk_event_get_root_coords :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    Ptr CDouble ->                          -- x_root : TBasicType TDouble
-    Ptr CDouble ->                          -- y_root : TBasicType TDouble
-    IO CInt
-
-
-eventGetRootCoords ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,Double,Double)
-eventGetRootCoords _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    x_root <- allocMem :: IO (Ptr CDouble)
-    y_root <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_event_get_root_coords _obj' x_root y_root
-    let result' = (/= 0) result
-    x_root' <- peek x_root
-    let x_root'' = realToFrac x_root'
-    y_root' <- peek y_root
-    let y_root'' = realToFrac y_root'
-    touchManagedPtr _obj
-    freeMem x_root
-    freeMem y_root
-    return (result', x_root'', y_root'')
-
--- method Event::get_screen
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Screen"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_screen" gdk_event_get_screen :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    IO (Ptr Screen)
-
-
-eventGetScreen ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m Screen
-eventGetScreen _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_event_get_screen _obj'
-    checkUnexpectedReturnNULL "gdk_event_get_screen" result
-    result' <- (newObject Screen) result
-    touchManagedPtr _obj
-    return result'
-
--- method Event::get_scroll_deltas
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "delta_x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "delta_y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_scroll_deltas" gdk_event_get_scroll_deltas :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    Ptr CDouble ->                          -- delta_x : TBasicType TDouble
-    Ptr CDouble ->                          -- delta_y : TBasicType TDouble
-    IO CInt
-
-
-eventGetScrollDeltas ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,Double,Double)
-eventGetScrollDeltas _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    delta_x <- allocMem :: IO (Ptr CDouble)
-    delta_y <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_event_get_scroll_deltas _obj' delta_x delta_y
-    let result' = (/= 0) result
-    delta_x' <- peek delta_x
-    let delta_x'' = realToFrac delta_x'
-    delta_y' <- peek delta_y
-    let delta_y'' = realToFrac delta_y'
-    touchManagedPtr _obj
-    freeMem delta_x
-    freeMem delta_y
-    return (result', delta_x'', delta_y'')
-
--- method Event::get_scroll_direction
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "direction", argType = TInterface "Gdk" "ScrollDirection", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_scroll_direction" gdk_event_get_scroll_direction :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    Ptr CUInt ->                            -- direction : TInterface "Gdk" "ScrollDirection"
-    IO CInt
-
-
-eventGetScrollDirection ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,ScrollDirection)
-eventGetScrollDirection _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    direction <- allocMem :: IO (Ptr CUInt)
-    result <- gdk_event_get_scroll_direction _obj' direction
-    let result' = (/= 0) result
-    direction' <- peek direction
-    let direction'' = (toEnum . fromIntegral) direction'
-    touchManagedPtr _obj
-    freeMem direction
-    return (result', direction'')
-
--- method Event::get_source_device
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Device"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_source_device" gdk_event_get_source_device :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    IO (Ptr Device)
-
-
-eventGetSourceDevice ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m Device
-eventGetSourceDevice _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_event_get_source_device _obj'
-    checkUnexpectedReturnNULL "gdk_event_get_source_device" result
-    result' <- (newObject Device) result
-    touchManagedPtr _obj
-    return result'
-
--- method Event::get_state
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_state" gdk_event_get_state :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    Ptr CUInt ->                            -- state : TInterface "Gdk" "ModifierType"
-    IO CInt
-
-
-eventGetState ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,[ModifierType])
-eventGetState _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    state <- allocMem :: IO (Ptr CUInt)
-    result <- gdk_event_get_state _obj' state
-    let result' = (/= 0) result
-    state' <- peek state
-    let state'' = wordToGFlags state'
-    touchManagedPtr _obj
-    freeMem state
-    return (result', state'')
-
--- method Event::get_time
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_time" gdk_event_get_time :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    IO Word32
-
-
-eventGetTime ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m Word32
-eventGetTime _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_event_get_time _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Event::get_window
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get_window" gdk_event_get_window :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    IO (Ptr Window)
-
-
-eventGetWindow ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m Window
-eventGetWindow _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_event_get_window _obj'
-    checkUnexpectedReturnNULL "gdk_event_get_window" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method Event::put
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_put" gdk_event_put :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    IO ()
-
-
-eventPut ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m ()
-eventPut _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    gdk_event_put _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Event::set_device
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_set_device" gdk_event_set_device :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    IO ()
-
-
-eventSetDevice ::
-    (MonadIO m, DeviceK a) =>
-    Event ->                                -- _obj
-    a ->                                    -- device
-    m ()
-eventSetDevice _obj device = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    gdk_event_set_device _obj' device'
-    touchManagedPtr _obj
-    touchManagedPtr device
-    return ()
-
--- method Event::set_screen
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_set_screen" gdk_event_set_screen :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    Ptr Screen ->                           -- screen : TInterface "Gdk" "Screen"
-    IO ()
-
-
-eventSetScreen ::
-    (MonadIO m, ScreenK a) =>
-    Event ->                                -- _obj
-    a ->                                    -- screen
-    m ()
-eventSetScreen _obj screen = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    let screen' = unsafeManagedPtrCastPtr screen
-    gdk_event_set_screen _obj' screen'
-    touchManagedPtr _obj
-    touchManagedPtr screen
-    return ()
-
--- method Event::set_source_device
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_set_source_device" gdk_event_set_source_device :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    IO ()
-
-
-eventSetSourceDevice ::
-    (MonadIO m, DeviceK a) =>
-    Event ->                                -- _obj
-    a ->                                    -- device
-    m ()
-eventSetSourceDevice _obj device = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    gdk_event_set_source_device _obj' device'
-    touchManagedPtr _obj
-    touchManagedPtr device
-    return ()
-
--- method Event::triggers_context_menu
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_triggers_context_menu" gdk_event_triggers_context_menu :: 
-    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
-    IO CInt
-
-
-eventTriggersContextMenu ::
-    (MonadIO m) =>
-    Event ->                                -- _obj
-    m Bool
-eventTriggersContextMenu _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_event_triggers_context_menu _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- struct EventAny
-newtype EventAny = EventAny (ForeignPtr EventAny)
-noEventAny :: Maybe EventAny
-noEventAny = Nothing
-
-eventAnyReadType :: EventAny -> IO EventType
-eventAnyReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventAnyReadWindow :: EventAny -> IO Window
-eventAnyReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventAnyReadSendEvent :: EventAny -> IO Int8
-eventAnyReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
--- struct EventButton
-newtype EventButton = EventButton (ForeignPtr EventButton)
-noEventButton :: Maybe EventButton
-noEventButton = Nothing
-
-eventButtonReadType :: EventButton -> IO EventType
-eventButtonReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventButtonReadWindow :: EventButton -> IO Window
-eventButtonReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventButtonReadSendEvent :: EventButton -> IO Int8
-eventButtonReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventButtonReadTime :: EventButton -> IO Word32
-eventButtonReadTime s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 20) :: IO Word32
-    return val
-
-eventButtonReadX :: EventButton -> IO Double
-eventButtonReadX s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventButtonReadY :: EventButton -> IO Double
-eventButtonReadY s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventButtonReadAxes :: EventButton -> IO Double
-eventButtonReadAxes s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 40) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventButtonReadState :: EventButton -> IO [ModifierType]
-eventButtonReadState s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 48) :: IO CUInt
-    let val' = wordToGFlags val
-    return val'
-
-eventButtonReadButton :: EventButton -> IO Word32
-eventButtonReadButton s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 52) :: IO Word32
-    return val
-
-eventButtonReadDevice :: EventButton -> IO Device
-eventButtonReadDevice s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 56) :: IO (Ptr Device)
-    val' <- (newObject Device) val
-    return val'
-
-eventButtonReadXRoot :: EventButton -> IO Double
-eventButtonReadXRoot s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 64) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventButtonReadYRoot :: EventButton -> IO Double
-eventButtonReadYRoot s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 72) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
--- struct EventConfigure
-newtype EventConfigure = EventConfigure (ForeignPtr EventConfigure)
-noEventConfigure :: Maybe EventConfigure
-noEventConfigure = Nothing
-
-eventConfigureReadType :: EventConfigure -> IO EventType
-eventConfigureReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventConfigureReadWindow :: EventConfigure -> IO Window
-eventConfigureReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventConfigureReadSendEvent :: EventConfigure -> IO Int8
-eventConfigureReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventConfigureReadX :: EventConfigure -> IO Int32
-eventConfigureReadX s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 20) :: IO Int32
-    return val
-
-eventConfigureReadY :: EventConfigure -> IO Int32
-eventConfigureReadY s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO Int32
-    return val
-
-eventConfigureReadWidth :: EventConfigure -> IO Int32
-eventConfigureReadWidth s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 28) :: IO Int32
-    return val
-
-eventConfigureReadHeight :: EventConfigure -> IO Int32
-eventConfigureReadHeight s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO Int32
-    return val
-
--- struct EventCrossing
-newtype EventCrossing = EventCrossing (ForeignPtr EventCrossing)
-noEventCrossing :: Maybe EventCrossing
-noEventCrossing = Nothing
-
-eventCrossingReadType :: EventCrossing -> IO EventType
-eventCrossingReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventCrossingReadWindow :: EventCrossing -> IO Window
-eventCrossingReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventCrossingReadSendEvent :: EventCrossing -> IO Int8
-eventCrossingReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventCrossingReadSubwindow :: EventCrossing -> IO Window
-eventCrossingReadSubwindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventCrossingReadTime :: EventCrossing -> IO Word32
-eventCrossingReadTime s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO Word32
-    return val
-
-eventCrossingReadX :: EventCrossing -> IO Double
-eventCrossingReadX s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 40) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventCrossingReadY :: EventCrossing -> IO Double
-eventCrossingReadY s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 48) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventCrossingReadXRoot :: EventCrossing -> IO Double
-eventCrossingReadXRoot s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 56) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventCrossingReadYRoot :: EventCrossing -> IO Double
-eventCrossingReadYRoot s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 64) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventCrossingReadMode :: EventCrossing -> IO CrossingMode
-eventCrossingReadMode s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 72) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventCrossingReadDetail :: EventCrossing -> IO NotifyType
-eventCrossingReadDetail s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 76) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventCrossingReadFocus :: EventCrossing -> IO Bool
-eventCrossingReadFocus s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 80) :: IO CInt
-    let val' = (/= 0) val
-    return val'
-
-eventCrossingReadState :: EventCrossing -> IO [ModifierType]
-eventCrossingReadState s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 84) :: IO CUInt
-    let val' = wordToGFlags val
-    return val'
-
--- struct EventDND
-newtype EventDND = EventDND (ForeignPtr EventDND)
-noEventDND :: Maybe EventDND
-noEventDND = Nothing
-
-eventDNDReadType :: EventDND -> IO EventType
-eventDNDReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventDNDReadWindow :: EventDND -> IO Window
-eventDNDReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventDNDReadSendEvent :: EventDND -> IO Int8
-eventDNDReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventDNDReadContext :: EventDND -> IO DragContext
-eventDNDReadContext s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO (Ptr DragContext)
-    val' <- (newObject DragContext) val
-    return val'
-
-eventDNDReadTime :: EventDND -> IO Word32
-eventDNDReadTime s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO Word32
-    return val
-
-eventDNDReadXRoot :: EventDND -> IO Int16
-eventDNDReadXRoot s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 36) :: IO Int16
-    return val
-
-eventDNDReadYRoot :: EventDND -> IO Int16
-eventDNDReadYRoot s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 38) :: IO Int16
-    return val
-
--- struct EventExpose
-newtype EventExpose = EventExpose (ForeignPtr EventExpose)
-noEventExpose :: Maybe EventExpose
-noEventExpose = Nothing
-
-eventExposeReadType :: EventExpose -> IO EventType
-eventExposeReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventExposeReadWindow :: EventExpose -> IO Window
-eventExposeReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventExposeReadSendEvent :: EventExpose -> IO Int8
-eventExposeReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventExposeReadArea :: EventExpose -> IO Rectangle
-eventExposeReadArea s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 20) :: IO (Ptr Rectangle)
-    val' <- (newBoxed Rectangle) val
-    return val'
-
-eventExposeReadRegion :: EventExpose -> IO Cairo.Region
-eventExposeReadRegion s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 40) :: IO (Ptr Cairo.Region)
-    val' <- (newBoxed Cairo.Region) val
-    return val'
-
-eventExposeReadCount :: EventExpose -> IO Int32
-eventExposeReadCount s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 48) :: IO Int32
-    return val
-
--- struct EventFocus
-newtype EventFocus = EventFocus (ForeignPtr EventFocus)
-noEventFocus :: Maybe EventFocus
-noEventFocus = Nothing
-
-eventFocusReadType :: EventFocus -> IO EventType
-eventFocusReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventFocusReadWindow :: EventFocus -> IO Window
-eventFocusReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventFocusReadSendEvent :: EventFocus -> IO Int8
-eventFocusReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventFocusReadIn :: EventFocus -> IO Int16
-eventFocusReadIn s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 18) :: IO Int16
-    return val
-
--- callback EventFunc
-eventFuncClosure :: EventFunc -> IO Closure
-eventFuncClosure cb = newCClosure =<< mkEventFunc wrapped
-    where wrapped = eventFuncWrapper Nothing cb
-
-type EventFuncC =
-    Ptr Event ->
-    Ptr () ->
-    IO ()
-
-foreign import ccall "wrapper"
-    mkEventFunc :: EventFuncC -> IO (FunPtr EventFuncC)
-
-type EventFunc =
-    Event ->
-    IO ()
-
-noEventFunc :: Maybe EventFunc
-noEventFunc = Nothing
-
-eventFuncWrapper ::
-    Maybe (Ptr (FunPtr (EventFuncC))) ->
-    EventFunc ->
-    Ptr Event ->
-    Ptr () ->
-    IO ()
-eventFuncWrapper funptrptr _cb event _ = do
-    event' <- (newBoxed Event) event
-    _cb  event'
-    maybeReleaseFunPtr funptrptr
-
--- struct EventGrabBroken
-newtype EventGrabBroken = EventGrabBroken (ForeignPtr EventGrabBroken)
-noEventGrabBroken :: Maybe EventGrabBroken
-noEventGrabBroken = Nothing
-
-eventGrabBrokenReadType :: EventGrabBroken -> IO EventType
-eventGrabBrokenReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventGrabBrokenReadWindow :: EventGrabBroken -> IO Window
-eventGrabBrokenReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventGrabBrokenReadSendEvent :: EventGrabBroken -> IO Int8
-eventGrabBrokenReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventGrabBrokenReadKeyboard :: EventGrabBroken -> IO Bool
-eventGrabBrokenReadKeyboard s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 20) :: IO CInt
-    let val' = (/= 0) val
-    return val'
-
-eventGrabBrokenReadImplicit :: EventGrabBroken -> IO Bool
-eventGrabBrokenReadImplicit s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO CInt
-    let val' = (/= 0) val
-    return val'
-
-eventGrabBrokenReadGrabWindow :: EventGrabBroken -> IO Window
-eventGrabBrokenReadGrabWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
--- struct EventKey
-newtype EventKey = EventKey (ForeignPtr EventKey)
-noEventKey :: Maybe EventKey
-noEventKey = Nothing
-
-eventKeyReadType :: EventKey -> IO EventType
-eventKeyReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventKeyReadWindow :: EventKey -> IO Window
-eventKeyReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventKeyReadSendEvent :: EventKey -> IO Int8
-eventKeyReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventKeyReadTime :: EventKey -> IO Word32
-eventKeyReadTime s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 20) :: IO Word32
-    return val
-
-eventKeyReadState :: EventKey -> IO [ModifierType]
-eventKeyReadState s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO CUInt
-    let val' = wordToGFlags val
-    return val'
-
-eventKeyReadKeyval :: EventKey -> IO Word32
-eventKeyReadKeyval s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 28) :: IO Word32
-    return val
-
-eventKeyReadLength :: EventKey -> IO Int32
-eventKeyReadLength s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO Int32
-    return val
-
-eventKeyReadString :: EventKey -> IO T.Text
-eventKeyReadString s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 40) :: IO CString
-    val' <- cstringToText val
-    return val'
-
-eventKeyReadHardwareKeycode :: EventKey -> IO Word16
-eventKeyReadHardwareKeycode s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 48) :: IO Word16
-    return val
-
-eventKeyReadGroup :: EventKey -> IO Word8
-eventKeyReadGroup s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 50) :: IO Word8
-    return val
-
-eventKeyReadIsModifier :: EventKey -> IO Word32
-eventKeyReadIsModifier s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 52) :: IO Word32
-    return val
-
--- Flags EventMask
-
-data EventMask = 
-      EventMaskExposureMask
-    | EventMaskPointerMotionMask
-    | EventMaskPointerMotionHintMask
-    | EventMaskButtonMotionMask
-    | EventMaskButton1MotionMask
-    | EventMaskButton2MotionMask
-    | EventMaskButton3MotionMask
-    | EventMaskButtonPressMask
-    | EventMaskButtonReleaseMask
-    | EventMaskKeyPressMask
-    | EventMaskKeyReleaseMask
-    | EventMaskEnterNotifyMask
-    | EventMaskLeaveNotifyMask
-    | EventMaskFocusChangeMask
-    | EventMaskStructureMask
-    | EventMaskPropertyChangeMask
-    | EventMaskVisibilityNotifyMask
-    | EventMaskProximityInMask
-    | EventMaskProximityOutMask
-    | EventMaskSubstructureMask
-    | EventMaskScrollMask
-    | EventMaskTouchMask
-    | EventMaskSmoothScrollMask
-    | EventMaskTouchpadGestureMask
-    | EventMaskAllEventsMask
-    | AnotherEventMask Int
-    deriving (Show, Eq)
-
-instance Enum EventMask where
-    fromEnum EventMaskExposureMask = 2
-    fromEnum EventMaskPointerMotionMask = 4
-    fromEnum EventMaskPointerMotionHintMask = 8
-    fromEnum EventMaskButtonMotionMask = 16
-    fromEnum EventMaskButton1MotionMask = 32
-    fromEnum EventMaskButton2MotionMask = 64
-    fromEnum EventMaskButton3MotionMask = 128
-    fromEnum EventMaskButtonPressMask = 256
-    fromEnum EventMaskButtonReleaseMask = 512
-    fromEnum EventMaskKeyPressMask = 1024
-    fromEnum EventMaskKeyReleaseMask = 2048
-    fromEnum EventMaskEnterNotifyMask = 4096
-    fromEnum EventMaskLeaveNotifyMask = 8192
-    fromEnum EventMaskFocusChangeMask = 16384
-    fromEnum EventMaskStructureMask = 32768
-    fromEnum EventMaskPropertyChangeMask = 65536
-    fromEnum EventMaskVisibilityNotifyMask = 131072
-    fromEnum EventMaskProximityInMask = 262144
-    fromEnum EventMaskProximityOutMask = 524288
-    fromEnum EventMaskSubstructureMask = 1048576
-    fromEnum EventMaskScrollMask = 2097152
-    fromEnum EventMaskTouchMask = 4194304
-    fromEnum EventMaskSmoothScrollMask = 8388608
-    fromEnum EventMaskTouchpadGestureMask = 16777216
-    fromEnum EventMaskAllEventsMask = 16777214
-    fromEnum (AnotherEventMask k) = k
-
-    toEnum 2 = EventMaskExposureMask
-    toEnum 4 = EventMaskPointerMotionMask
-    toEnum 8 = EventMaskPointerMotionHintMask
-    toEnum 16 = EventMaskButtonMotionMask
-    toEnum 32 = EventMaskButton1MotionMask
-    toEnum 64 = EventMaskButton2MotionMask
-    toEnum 128 = EventMaskButton3MotionMask
-    toEnum 256 = EventMaskButtonPressMask
-    toEnum 512 = EventMaskButtonReleaseMask
-    toEnum 1024 = EventMaskKeyPressMask
-    toEnum 2048 = EventMaskKeyReleaseMask
-    toEnum 4096 = EventMaskEnterNotifyMask
-    toEnum 8192 = EventMaskLeaveNotifyMask
-    toEnum 16384 = EventMaskFocusChangeMask
-    toEnum 32768 = EventMaskStructureMask
-    toEnum 65536 = EventMaskPropertyChangeMask
-    toEnum 131072 = EventMaskVisibilityNotifyMask
-    toEnum 262144 = EventMaskProximityInMask
-    toEnum 524288 = EventMaskProximityOutMask
-    toEnum 1048576 = EventMaskSubstructureMask
-    toEnum 2097152 = EventMaskScrollMask
-    toEnum 4194304 = EventMaskTouchMask
-    toEnum 8388608 = EventMaskSmoothScrollMask
-    toEnum 16777214 = EventMaskAllEventsMask
-    toEnum 16777216 = EventMaskTouchpadGestureMask
-    toEnum k = AnotherEventMask k
-
-foreign import ccall "gdk_event_mask_get_type" c_gdk_event_mask_get_type :: 
-    IO GType
-
-instance BoxedEnum EventMask where
-    boxedEnumType _ = c_gdk_event_mask_get_type
-
-instance IsGFlag EventMask
-
--- struct EventMotion
-newtype EventMotion = EventMotion (ForeignPtr EventMotion)
-noEventMotion :: Maybe EventMotion
-noEventMotion = Nothing
-
-eventMotionReadType :: EventMotion -> IO EventType
-eventMotionReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventMotionReadWindow :: EventMotion -> IO Window
-eventMotionReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventMotionReadSendEvent :: EventMotion -> IO Int8
-eventMotionReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventMotionReadTime :: EventMotion -> IO Word32
-eventMotionReadTime s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 20) :: IO Word32
-    return val
-
-eventMotionReadX :: EventMotion -> IO Double
-eventMotionReadX s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventMotionReadY :: EventMotion -> IO Double
-eventMotionReadY s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventMotionReadAxes :: EventMotion -> IO Double
-eventMotionReadAxes s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 40) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventMotionReadState :: EventMotion -> IO [ModifierType]
-eventMotionReadState s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 48) :: IO CUInt
-    let val' = wordToGFlags val
-    return val'
-
-eventMotionReadIsHint :: EventMotion -> IO Int16
-eventMotionReadIsHint s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 52) :: IO Int16
-    return val
-
-eventMotionReadDevice :: EventMotion -> IO Device
-eventMotionReadDevice s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 56) :: IO (Ptr Device)
-    val' <- (newObject Device) val
-    return val'
-
-eventMotionReadXRoot :: EventMotion -> IO Double
-eventMotionReadXRoot s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 64) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventMotionReadYRoot :: EventMotion -> IO Double
-eventMotionReadYRoot s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 72) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
--- struct EventOwnerChange
-newtype EventOwnerChange = EventOwnerChange (ForeignPtr EventOwnerChange)
-noEventOwnerChange :: Maybe EventOwnerChange
-noEventOwnerChange = Nothing
-
-eventOwnerChangeReadType :: EventOwnerChange -> IO EventType
-eventOwnerChangeReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventOwnerChangeReadWindow :: EventOwnerChange -> IO Window
-eventOwnerChangeReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventOwnerChangeReadSendEvent :: EventOwnerChange -> IO Int8
-eventOwnerChangeReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventOwnerChangeReadOwner :: EventOwnerChange -> IO Window
-eventOwnerChangeReadOwner s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventOwnerChangeReadReason :: EventOwnerChange -> IO OwnerChange
-eventOwnerChangeReadReason s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventOwnerChangeReadSelection :: EventOwnerChange -> IO Atom
-eventOwnerChangeReadSelection s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 40) :: IO (Ptr Atom)
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    val' <- (\x -> Atom <$> newForeignPtr_ x) val
-    return val'
-
-eventOwnerChangeReadTime :: EventOwnerChange -> IO Word32
-eventOwnerChangeReadTime s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 48) :: IO Word32
-    return val
-
-eventOwnerChangeReadSelectionTime :: EventOwnerChange -> IO Word32
-eventOwnerChangeReadSelectionTime s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 52) :: IO Word32
-    return val
-
--- struct EventProperty
-newtype EventProperty = EventProperty (ForeignPtr EventProperty)
-noEventProperty :: Maybe EventProperty
-noEventProperty = Nothing
-
-eventPropertyReadType :: EventProperty -> IO EventType
-eventPropertyReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventPropertyReadWindow :: EventProperty -> IO Window
-eventPropertyReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventPropertyReadSendEvent :: EventProperty -> IO Int8
-eventPropertyReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventPropertyReadAtom :: EventProperty -> IO Atom
-eventPropertyReadAtom s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO (Ptr Atom)
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    val' <- (\x -> Atom <$> newForeignPtr_ x) val
-    return val'
-
-eventPropertyReadTime :: EventProperty -> IO Word32
-eventPropertyReadTime s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO Word32
-    return val
-
-eventPropertyReadState :: EventProperty -> IO PropertyState
-eventPropertyReadState s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 36) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
--- struct EventProximity
-newtype EventProximity = EventProximity (ForeignPtr EventProximity)
-noEventProximity :: Maybe EventProximity
-noEventProximity = Nothing
-
-eventProximityReadType :: EventProximity -> IO EventType
-eventProximityReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventProximityReadWindow :: EventProximity -> IO Window
-eventProximityReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventProximityReadSendEvent :: EventProximity -> IO Int8
-eventProximityReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventProximityReadTime :: EventProximity -> IO Word32
-eventProximityReadTime s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 20) :: IO Word32
-    return val
-
-eventProximityReadDevice :: EventProximity -> IO Device
-eventProximityReadDevice s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO (Ptr Device)
-    val' <- (newObject Device) val
-    return val'
-
--- struct EventScroll
-newtype EventScroll = EventScroll (ForeignPtr EventScroll)
-noEventScroll :: Maybe EventScroll
-noEventScroll = Nothing
-
-eventScrollReadType :: EventScroll -> IO EventType
-eventScrollReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventScrollReadWindow :: EventScroll -> IO Window
-eventScrollReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventScrollReadSendEvent :: EventScroll -> IO Int8
-eventScrollReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventScrollReadTime :: EventScroll -> IO Word32
-eventScrollReadTime s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 20) :: IO Word32
-    return val
-
-eventScrollReadX :: EventScroll -> IO Double
-eventScrollReadX s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventScrollReadY :: EventScroll -> IO Double
-eventScrollReadY s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventScrollReadState :: EventScroll -> IO [ModifierType]
-eventScrollReadState s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 40) :: IO CUInt
-    let val' = wordToGFlags val
-    return val'
-
-eventScrollReadDirection :: EventScroll -> IO ScrollDirection
-eventScrollReadDirection s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 44) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventScrollReadDevice :: EventScroll -> IO Device
-eventScrollReadDevice s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 48) :: IO (Ptr Device)
-    val' <- (newObject Device) val
-    return val'
-
-eventScrollReadXRoot :: EventScroll -> IO Double
-eventScrollReadXRoot s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 56) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventScrollReadYRoot :: EventScroll -> IO Double
-eventScrollReadYRoot s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 64) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventScrollReadDeltaX :: EventScroll -> IO Double
-eventScrollReadDeltaX s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 72) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventScrollReadDeltaY :: EventScroll -> IO Double
-eventScrollReadDeltaY s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 80) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
--- struct EventSelection
-newtype EventSelection = EventSelection (ForeignPtr EventSelection)
-noEventSelection :: Maybe EventSelection
-noEventSelection = Nothing
-
-eventSelectionReadType :: EventSelection -> IO EventType
-eventSelectionReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventSelectionReadWindow :: EventSelection -> IO Window
-eventSelectionReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventSelectionReadSendEvent :: EventSelection -> IO Int8
-eventSelectionReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventSelectionReadSelection :: EventSelection -> IO Atom
-eventSelectionReadSelection s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO (Ptr Atom)
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    val' <- (\x -> Atom <$> newForeignPtr_ x) val
-    return val'
-
-eventSelectionReadTarget :: EventSelection -> IO Atom
-eventSelectionReadTarget s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO (Ptr Atom)
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    val' <- (\x -> Atom <$> newForeignPtr_ x) val
-    return val'
-
-eventSelectionReadProperty :: EventSelection -> IO Atom
-eventSelectionReadProperty s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 40) :: IO (Ptr Atom)
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    val' <- (\x -> Atom <$> newForeignPtr_ x) val
-    return val'
-
-eventSelectionReadTime :: EventSelection -> IO Word32
-eventSelectionReadTime s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 48) :: IO Word32
-    return val
-
-eventSelectionReadRequestor :: EventSelection -> IO Window
-eventSelectionReadRequestor s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 56) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
--- struct EventSequence
-newtype EventSequence = EventSequence (ForeignPtr EventSequence)
-noEventSequence :: Maybe EventSequence
-noEventSequence = Nothing
-
-foreign import ccall "gdk_event_sequence_get_type" c_gdk_event_sequence_get_type :: 
-    IO GType
-
-instance BoxedObject EventSequence where
-    boxedType _ = c_gdk_event_sequence_get_type
-
--- struct EventSetting
-newtype EventSetting = EventSetting (ForeignPtr EventSetting)
-noEventSetting :: Maybe EventSetting
-noEventSetting = Nothing
-
-eventSettingReadType :: EventSetting -> IO EventType
-eventSettingReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventSettingReadWindow :: EventSetting -> IO Window
-eventSettingReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventSettingReadSendEvent :: EventSetting -> IO Int8
-eventSettingReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventSettingReadAction :: EventSetting -> IO SettingAction
-eventSettingReadAction s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 20) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventSettingReadName :: EventSetting -> IO T.Text
-eventSettingReadName s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO CString
-    val' <- cstringToText val
-    return val'
-
--- struct EventTouch
-newtype EventTouch = EventTouch (ForeignPtr EventTouch)
-noEventTouch :: Maybe EventTouch
-noEventTouch = Nothing
-
-eventTouchReadType :: EventTouch -> IO EventType
-eventTouchReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventTouchReadWindow :: EventTouch -> IO Window
-eventTouchReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventTouchReadSendEvent :: EventTouch -> IO Int8
-eventTouchReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventTouchReadTime :: EventTouch -> IO Word32
-eventTouchReadTime s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 20) :: IO Word32
-    return val
-
-eventTouchReadX :: EventTouch -> IO Double
-eventTouchReadX s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchReadY :: EventTouch -> IO Double
-eventTouchReadY s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchReadAxes :: EventTouch -> IO Double
-eventTouchReadAxes s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 40) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchReadState :: EventTouch -> IO [ModifierType]
-eventTouchReadState s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 48) :: IO CUInt
-    let val' = wordToGFlags val
-    return val'
-
-eventTouchReadSequence :: EventTouch -> IO EventSequence
-eventTouchReadSequence s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 56) :: IO (Ptr EventSequence)
-    val' <- (newBoxed EventSequence) val
-    return val'
-
-eventTouchReadEmulatingPointer :: EventTouch -> IO Bool
-eventTouchReadEmulatingPointer s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 64) :: IO CInt
-    let val' = (/= 0) val
-    return val'
-
-eventTouchReadDevice :: EventTouch -> IO Device
-eventTouchReadDevice s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 72) :: IO (Ptr Device)
-    val' <- (newObject Device) val
-    return val'
-
-eventTouchReadXRoot :: EventTouch -> IO Double
-eventTouchReadXRoot s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 80) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchReadYRoot :: EventTouch -> IO Double
-eventTouchReadYRoot s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 88) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
--- struct EventTouchpadPinch
-newtype EventTouchpadPinch = EventTouchpadPinch (ForeignPtr EventTouchpadPinch)
-noEventTouchpadPinch :: Maybe EventTouchpadPinch
-noEventTouchpadPinch = Nothing
-
-eventTouchpadPinchReadType :: EventTouchpadPinch -> IO EventType
-eventTouchpadPinchReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventTouchpadPinchReadWindow :: EventTouchpadPinch -> IO Window
-eventTouchpadPinchReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventTouchpadPinchReadSendEvent :: EventTouchpadPinch -> IO Int8
-eventTouchpadPinchReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventTouchpadPinchReadPhase :: EventTouchpadPinch -> IO TouchpadGesturePhase
-eventTouchpadPinchReadPhase s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 20) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventTouchpadPinchReadNFingers :: EventTouchpadPinch -> IO Int8
-eventTouchpadPinchReadNFingers s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO Int8
-    return val
-
-eventTouchpadPinchReadTime :: EventTouchpadPinch -> IO Word32
-eventTouchpadPinchReadTime s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 28) :: IO Word32
-    return val
-
-eventTouchpadPinchReadX :: EventTouchpadPinch -> IO Double
-eventTouchpadPinchReadX s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchpadPinchReadY :: EventTouchpadPinch -> IO Double
-eventTouchpadPinchReadY s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 40) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchpadPinchReadDx :: EventTouchpadPinch -> IO Double
-eventTouchpadPinchReadDx s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 48) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchpadPinchReadDy :: EventTouchpadPinch -> IO Double
-eventTouchpadPinchReadDy s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 56) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchpadPinchReadAngleDelta :: EventTouchpadPinch -> IO Double
-eventTouchpadPinchReadAngleDelta s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 64) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchpadPinchReadScale :: EventTouchpadPinch -> IO Double
-eventTouchpadPinchReadScale s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 72) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchpadPinchReadXRoot :: EventTouchpadPinch -> IO Double
-eventTouchpadPinchReadXRoot s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 80) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchpadPinchReadYRoot :: EventTouchpadPinch -> IO Double
-eventTouchpadPinchReadYRoot s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 88) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchpadPinchReadState :: EventTouchpadPinch -> IO [ModifierType]
-eventTouchpadPinchReadState s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 96) :: IO CUInt
-    let val' = wordToGFlags val
-    return val'
-
--- struct EventTouchpadSwipe
-newtype EventTouchpadSwipe = EventTouchpadSwipe (ForeignPtr EventTouchpadSwipe)
-noEventTouchpadSwipe :: Maybe EventTouchpadSwipe
-noEventTouchpadSwipe = Nothing
-
-eventTouchpadSwipeReadType :: EventTouchpadSwipe -> IO EventType
-eventTouchpadSwipeReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventTouchpadSwipeReadWindow :: EventTouchpadSwipe -> IO Window
-eventTouchpadSwipeReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventTouchpadSwipeReadSendEvent :: EventTouchpadSwipe -> IO Int8
-eventTouchpadSwipeReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventTouchpadSwipeReadPhase :: EventTouchpadSwipe -> IO TouchpadGesturePhase
-eventTouchpadSwipeReadPhase s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 20) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventTouchpadSwipeReadNFingers :: EventTouchpadSwipe -> IO Int8
-eventTouchpadSwipeReadNFingers s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO Int8
-    return val
-
-eventTouchpadSwipeReadTime :: EventTouchpadSwipe -> IO Word32
-eventTouchpadSwipeReadTime s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 28) :: IO Word32
-    return val
-
-eventTouchpadSwipeReadX :: EventTouchpadSwipe -> IO Double
-eventTouchpadSwipeReadX s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchpadSwipeReadY :: EventTouchpadSwipe -> IO Double
-eventTouchpadSwipeReadY s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 40) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchpadSwipeReadDx :: EventTouchpadSwipe -> IO Double
-eventTouchpadSwipeReadDx s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 48) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchpadSwipeReadDy :: EventTouchpadSwipe -> IO Double
-eventTouchpadSwipeReadDy s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 56) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchpadSwipeReadXRoot :: EventTouchpadSwipe -> IO Double
-eventTouchpadSwipeReadXRoot s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 64) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchpadSwipeReadYRoot :: EventTouchpadSwipe -> IO Double
-eventTouchpadSwipeReadYRoot s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 72) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-eventTouchpadSwipeReadState :: EventTouchpadSwipe -> IO [ModifierType]
-eventTouchpadSwipeReadState s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 80) :: IO CUInt
-    let val' = wordToGFlags val
-    return val'
-
--- Enum EventType
-
-data EventType = 
-      EventTypeNothing
-    | EventTypeDelete
-    | EventTypeDestroy
-    | EventTypeExpose
-    | EventTypeMotionNotify
-    | EventTypeButtonPress
-    | EventType2buttonPress
-    | EventTypeDoubleButtonPress
-    | EventType3buttonPress
-    | EventTypeTripleButtonPress
-    | EventTypeButtonRelease
-    | EventTypeKeyPress
-    | EventTypeKeyRelease
-    | EventTypeEnterNotify
-    | EventTypeLeaveNotify
-    | EventTypeFocusChange
-    | EventTypeConfigure
-    | EventTypeMap
-    | EventTypeUnmap
-    | EventTypePropertyNotify
-    | EventTypeSelectionClear
-    | EventTypeSelectionRequest
-    | EventTypeSelectionNotify
-    | EventTypeProximityIn
-    | EventTypeProximityOut
-    | EventTypeDragEnter
-    | EventTypeDragLeave
-    | EventTypeDragMotion
-    | EventTypeDragStatus
-    | EventTypeDropStart
-    | EventTypeDropFinished
-    | EventTypeClientEvent
-    | EventTypeVisibilityNotify
-    | EventTypeScroll
-    | EventTypeWindowState
-    | EventTypeSetting
-    | EventTypeOwnerChange
-    | EventTypeGrabBroken
-    | EventTypeDamage
-    | EventTypeTouchBegin
-    | EventTypeTouchUpdate
-    | EventTypeTouchEnd
-    | EventTypeTouchCancel
-    | EventTypeTouchpadSwipe
-    | EventTypeTouchpadPinch
-    | EventTypeEventLast
-    | AnotherEventType Int
-    deriving (Show, Eq)
-
-instance Enum EventType where
-    fromEnum EventTypeNothing = -1
-    fromEnum EventTypeDelete = 0
-    fromEnum EventTypeDestroy = 1
-    fromEnum EventTypeExpose = 2
-    fromEnum EventTypeMotionNotify = 3
-    fromEnum EventTypeButtonPress = 4
-    fromEnum EventType2buttonPress = 5
-    fromEnum EventTypeDoubleButtonPress = 5
-    fromEnum EventType3buttonPress = 6
-    fromEnum EventTypeTripleButtonPress = 6
-    fromEnum EventTypeButtonRelease = 7
-    fromEnum EventTypeKeyPress = 8
-    fromEnum EventTypeKeyRelease = 9
-    fromEnum EventTypeEnterNotify = 10
-    fromEnum EventTypeLeaveNotify = 11
-    fromEnum EventTypeFocusChange = 12
-    fromEnum EventTypeConfigure = 13
-    fromEnum EventTypeMap = 14
-    fromEnum EventTypeUnmap = 15
-    fromEnum EventTypePropertyNotify = 16
-    fromEnum EventTypeSelectionClear = 17
-    fromEnum EventTypeSelectionRequest = 18
-    fromEnum EventTypeSelectionNotify = 19
-    fromEnum EventTypeProximityIn = 20
-    fromEnum EventTypeProximityOut = 21
-    fromEnum EventTypeDragEnter = 22
-    fromEnum EventTypeDragLeave = 23
-    fromEnum EventTypeDragMotion = 24
-    fromEnum EventTypeDragStatus = 25
-    fromEnum EventTypeDropStart = 26
-    fromEnum EventTypeDropFinished = 27
-    fromEnum EventTypeClientEvent = 28
-    fromEnum EventTypeVisibilityNotify = 29
-    fromEnum EventTypeScroll = 31
-    fromEnum EventTypeWindowState = 32
-    fromEnum EventTypeSetting = 33
-    fromEnum EventTypeOwnerChange = 34
-    fromEnum EventTypeGrabBroken = 35
-    fromEnum EventTypeDamage = 36
-    fromEnum EventTypeTouchBegin = 37
-    fromEnum EventTypeTouchUpdate = 38
-    fromEnum EventTypeTouchEnd = 39
-    fromEnum EventTypeTouchCancel = 40
-    fromEnum EventTypeTouchpadSwipe = 41
-    fromEnum EventTypeTouchpadPinch = 42
-    fromEnum EventTypeEventLast = 43
-    fromEnum (AnotherEventType k) = k
-
-    toEnum -1 = EventTypeNothing
-    toEnum 0 = EventTypeDelete
-    toEnum 1 = EventTypeDestroy
-    toEnum 2 = EventTypeExpose
-    toEnum 3 = EventTypeMotionNotify
-    toEnum 4 = EventTypeButtonPress
-    toEnum 5 = EventType2buttonPress
-    toEnum 6 = EventType3buttonPress
-    toEnum 7 = EventTypeButtonRelease
-    toEnum 8 = EventTypeKeyPress
-    toEnum 9 = EventTypeKeyRelease
-    toEnum 10 = EventTypeEnterNotify
-    toEnum 11 = EventTypeLeaveNotify
-    toEnum 12 = EventTypeFocusChange
-    toEnum 13 = EventTypeConfigure
-    toEnum 14 = EventTypeMap
-    toEnum 15 = EventTypeUnmap
-    toEnum 16 = EventTypePropertyNotify
-    toEnum 17 = EventTypeSelectionClear
-    toEnum 18 = EventTypeSelectionRequest
-    toEnum 19 = EventTypeSelectionNotify
-    toEnum 20 = EventTypeProximityIn
-    toEnum 21 = EventTypeProximityOut
-    toEnum 22 = EventTypeDragEnter
-    toEnum 23 = EventTypeDragLeave
-    toEnum 24 = EventTypeDragMotion
-    toEnum 25 = EventTypeDragStatus
-    toEnum 26 = EventTypeDropStart
-    toEnum 27 = EventTypeDropFinished
-    toEnum 28 = EventTypeClientEvent
-    toEnum 29 = EventTypeVisibilityNotify
-    toEnum 31 = EventTypeScroll
-    toEnum 32 = EventTypeWindowState
-    toEnum 33 = EventTypeSetting
-    toEnum 34 = EventTypeOwnerChange
-    toEnum 35 = EventTypeGrabBroken
-    toEnum 36 = EventTypeDamage
-    toEnum 37 = EventTypeTouchBegin
-    toEnum 38 = EventTypeTouchUpdate
-    toEnum 39 = EventTypeTouchEnd
-    toEnum 40 = EventTypeTouchCancel
-    toEnum 41 = EventTypeTouchpadSwipe
-    toEnum 42 = EventTypeTouchpadPinch
-    toEnum 43 = EventTypeEventLast
-    toEnum k = AnotherEventType k
-
-foreign import ccall "gdk_event_type_get_type" c_gdk_event_type_get_type :: 
-    IO GType
-
-instance BoxedEnum EventType where
-    boxedEnumType _ = c_gdk_event_type_get_type
-
--- struct EventVisibility
-newtype EventVisibility = EventVisibility (ForeignPtr EventVisibility)
-noEventVisibility :: Maybe EventVisibility
-noEventVisibility = Nothing
-
-eventVisibilityReadType :: EventVisibility -> IO EventType
-eventVisibilityReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventVisibilityReadWindow :: EventVisibility -> IO Window
-eventVisibilityReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventVisibilityReadSendEvent :: EventVisibility -> IO Int8
-eventVisibilityReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventVisibilityReadState :: EventVisibility -> IO VisibilityState
-eventVisibilityReadState s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 20) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
--- struct EventWindowState
-newtype EventWindowState = EventWindowState (ForeignPtr EventWindowState)
-noEventWindowState :: Maybe EventWindowState
-noEventWindowState = Nothing
-
-eventWindowStateReadType :: EventWindowState -> IO EventType
-eventWindowStateReadType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-eventWindowStateReadWindow :: EventWindowState -> IO Window
-eventWindowStateReadWindow s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
-    val' <- (newObject Window) val
-    return val'
-
-eventWindowStateReadSendEvent :: EventWindowState -> IO Int8
-eventWindowStateReadSendEvent s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int8
-    return val
-
-eventWindowStateReadChangedMask :: EventWindowState -> IO [WindowState]
-eventWindowStateReadChangedMask s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 20) :: IO CUInt
-    let val' = wordToGFlags val
-    return val'
-
-eventWindowStateReadNewWindowState :: EventWindowState -> IO [WindowState]
-eventWindowStateReadNewWindowState s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO CUInt
-    let val' = wordToGFlags val
-    return val'
-
--- callback FilterFunc
-filterFuncClosure :: FilterFunc -> IO Closure
-filterFuncClosure cb = newCClosure =<< mkFilterFunc wrapped
-    where wrapped = filterFuncWrapper Nothing cb
-
-type FilterFuncC =
-    Ptr () ->
-    Ptr Event ->
-    Ptr () ->
-    IO CUInt
-
-foreign import ccall "wrapper"
-    mkFilterFunc :: FilterFuncC -> IO (FunPtr FilterFuncC)
-
-type FilterFunc =
-    Ptr () ->
-    Event ->
-    IO FilterReturn
-
-noFilterFunc :: Maybe FilterFunc
-noFilterFunc = Nothing
-
-filterFuncWrapper ::
-    Maybe (Ptr (FunPtr (FilterFuncC))) ->
-    FilterFunc ->
-    Ptr () ->
-    Ptr Event ->
-    Ptr () ->
-    IO CUInt
-filterFuncWrapper funptrptr _cb xevent event _ = do
-    event' <- (newBoxed Event) event
-    result <- _cb  xevent event'
-    maybeReleaseFunPtr funptrptr
-    let result' = (fromIntegral . fromEnum) result
-    return result'
-
--- Enum FilterReturn
-
-data FilterReturn = 
-      FilterReturnContinue
-    | FilterReturnTranslate
-    | FilterReturnRemove
-    | AnotherFilterReturn Int
-    deriving (Show, Eq)
-
-instance Enum FilterReturn where
-    fromEnum FilterReturnContinue = 0
-    fromEnum FilterReturnTranslate = 1
-    fromEnum FilterReturnRemove = 2
-    fromEnum (AnotherFilterReturn k) = k
-
-    toEnum 0 = FilterReturnContinue
-    toEnum 1 = FilterReturnTranslate
-    toEnum 2 = FilterReturnRemove
-    toEnum k = AnotherFilterReturn k
-
-foreign import ccall "gdk_filter_return_get_type" c_gdk_filter_return_get_type :: 
-    IO GType
-
-instance BoxedEnum FilterReturn where
-    boxedEnumType _ = c_gdk_filter_return_get_type
-
--- object FrameClock 
-newtype FrameClock = FrameClock (ForeignPtr FrameClock)
-noFrameClock :: Maybe FrameClock
-noFrameClock = Nothing
-
-foreign import ccall "gdk_frame_clock_get_type"
-    c_gdk_frame_clock_get_type :: IO GType
-
-type instance ParentTypes FrameClock = '[GObject.Object]
-
-instance GObject FrameClock where
-    gobjectIsInitiallyUnowned _ = False
-    gobjectType _ = c_gdk_frame_clock_get_type
-    
-
-class GObject o => FrameClockK o
-instance (GObject o, IsDescendantOf FrameClock o) => FrameClockK o
-
-toFrameClock :: FrameClockK o => o -> IO FrameClock
-toFrameClock = unsafeCastTo FrameClock
-
--- method FrameClock::begin_updating
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_clock_begin_updating" gdk_frame_clock_begin_updating :: 
-    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
-    IO ()
-
-
-frameClockBeginUpdating ::
-    (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    m ()
-frameClockBeginUpdating _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_frame_clock_begin_updating _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method FrameClock::end_updating
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_clock_end_updating" gdk_frame_clock_end_updating :: 
-    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
-    IO ()
-
-
-frameClockEndUpdating ::
-    (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    m ()
-frameClockEndUpdating _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_frame_clock_end_updating _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method FrameClock::get_current_timings
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "FrameTimings"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_clock_get_current_timings" gdk_frame_clock_get_current_timings :: 
-    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
-    IO (Ptr FrameTimings)
-
-
-frameClockGetCurrentTimings ::
-    (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    m FrameTimings
-frameClockGetCurrentTimings _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_frame_clock_get_current_timings _obj'
-    checkUnexpectedReturnNULL "gdk_frame_clock_get_current_timings" result
-    result' <- (wrapBoxed FrameTimings) result
-    touchManagedPtr _obj
-    return result'
-
--- method FrameClock::get_frame_counter
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_clock_get_frame_counter" gdk_frame_clock_get_frame_counter :: 
-    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
-    IO Int64
-
-
-frameClockGetFrameCounter ::
-    (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    m Int64
-frameClockGetFrameCounter _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_frame_clock_get_frame_counter _obj'
-    touchManagedPtr _obj
-    return result
-
--- method FrameClock::get_frame_time
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_clock_get_frame_time" gdk_frame_clock_get_frame_time :: 
-    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
-    IO Int64
-
-
-frameClockGetFrameTime ::
-    (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    m Int64
-frameClockGetFrameTime _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_frame_clock_get_frame_time _obj'
-    touchManagedPtr _obj
-    return result
-
--- method FrameClock::get_history_start
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_clock_get_history_start" gdk_frame_clock_get_history_start :: 
-    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
-    IO Int64
-
-
-frameClockGetHistoryStart ::
-    (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    m Int64
-frameClockGetHistoryStart _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_frame_clock_get_history_start _obj'
-    touchManagedPtr _obj
-    return result
-
--- method FrameClock::get_refresh_info
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_time", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "refresh_interval_return", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "presentation_time_return", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_time", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "refresh_interval_return", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "presentation_time_return", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_clock_get_refresh_info" gdk_frame_clock_get_refresh_info :: 
-    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
-    Int64 ->                                -- base_time : TBasicType TInt64
-    Int64 ->                                -- refresh_interval_return : TBasicType TInt64
-    Int64 ->                                -- presentation_time_return : TBasicType TInt64
-    IO ()
-
-
-frameClockGetRefreshInfo ::
-    (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    Int64 ->                                -- base_time
-    Int64 ->                                -- refresh_interval_return
-    Int64 ->                                -- presentation_time_return
-    m ()
-frameClockGetRefreshInfo _obj base_time refresh_interval_return presentation_time_return = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_frame_clock_get_refresh_info _obj' base_time refresh_interval_return presentation_time_return
-    touchManagedPtr _obj
-    return ()
-
--- method FrameClock::get_timings
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "frame_counter", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "frame_counter", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "FrameTimings"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_clock_get_timings" gdk_frame_clock_get_timings :: 
-    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
-    Int64 ->                                -- frame_counter : TBasicType TInt64
-    IO (Ptr FrameTimings)
-
-
-frameClockGetTimings ::
-    (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    Int64 ->                                -- frame_counter
-    m FrameTimings
-frameClockGetTimings _obj frame_counter = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_frame_clock_get_timings _obj' frame_counter
-    checkUnexpectedReturnNULL "gdk_frame_clock_get_timings" result
-    result' <- (wrapBoxed FrameTimings) result
-    touchManagedPtr _obj
-    return result'
-
--- method FrameClock::request_phase
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "phase", argType = TInterface "Gdk" "FrameClockPhase", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "phase", argType = TInterface "Gdk" "FrameClockPhase", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_clock_request_phase" gdk_frame_clock_request_phase :: 
-    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
-    CUInt ->                                -- phase : TInterface "Gdk" "FrameClockPhase"
-    IO ()
-
-
-frameClockRequestPhase ::
-    (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    [FrameClockPhase] ->                    -- phase
-    m ()
-frameClockRequestPhase _obj phase = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let phase' = gflagsToWord phase
-    gdk_frame_clock_request_phase _obj' phase'
-    touchManagedPtr _obj
-    return ()
-
--- signal FrameClock::after-paint
-type FrameClockAfterPaintCallback =
-    IO ()
-
-noFrameClockAfterPaintCallback :: Maybe FrameClockAfterPaintCallback
-noFrameClockAfterPaintCallback = Nothing
-
-type FrameClockAfterPaintCallbackC =
-    Ptr () ->                               -- object
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkFrameClockAfterPaintCallback :: FrameClockAfterPaintCallbackC -> IO (FunPtr FrameClockAfterPaintCallbackC)
-
-frameClockAfterPaintClosure :: FrameClockAfterPaintCallback -> IO Closure
-frameClockAfterPaintClosure cb = newCClosure =<< mkFrameClockAfterPaintCallback wrapped
-    where wrapped = frameClockAfterPaintCallbackWrapper cb
-
-frameClockAfterPaintCallbackWrapper ::
-    FrameClockAfterPaintCallback ->
-    Ptr () ->
-    Ptr () ->
-    IO ()
-frameClockAfterPaintCallbackWrapper _cb _ _ = do
-    _cb 
-
-onFrameClockAfterPaint :: (GObject a, MonadIO m) => a -> FrameClockAfterPaintCallback -> m SignalHandlerId
-onFrameClockAfterPaint obj cb = liftIO $ connectFrameClockAfterPaint obj cb SignalConnectBefore
-afterFrameClockAfterPaint :: (GObject a, MonadIO m) => a -> FrameClockAfterPaintCallback -> m SignalHandlerId
-afterFrameClockAfterPaint obj cb = connectFrameClockAfterPaint obj cb SignalConnectAfter
-
-connectFrameClockAfterPaint :: (GObject a, MonadIO m) =>
-                               a -> FrameClockAfterPaintCallback -> SignalConnectMode -> m SignalHandlerId
-connectFrameClockAfterPaint obj cb after = liftIO $ do
-    cb' <- mkFrameClockAfterPaintCallback (frameClockAfterPaintCallbackWrapper cb)
-    connectSignalFunPtr obj "after-paint" cb' after
-
--- signal FrameClock::before-paint
-type FrameClockBeforePaintCallback =
-    IO ()
-
-noFrameClockBeforePaintCallback :: Maybe FrameClockBeforePaintCallback
-noFrameClockBeforePaintCallback = Nothing
-
-type FrameClockBeforePaintCallbackC =
-    Ptr () ->                               -- object
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkFrameClockBeforePaintCallback :: FrameClockBeforePaintCallbackC -> IO (FunPtr FrameClockBeforePaintCallbackC)
-
-frameClockBeforePaintClosure :: FrameClockBeforePaintCallback -> IO Closure
-frameClockBeforePaintClosure cb = newCClosure =<< mkFrameClockBeforePaintCallback wrapped
-    where wrapped = frameClockBeforePaintCallbackWrapper cb
-
-frameClockBeforePaintCallbackWrapper ::
-    FrameClockBeforePaintCallback ->
-    Ptr () ->
-    Ptr () ->
-    IO ()
-frameClockBeforePaintCallbackWrapper _cb _ _ = do
-    _cb 
-
-onFrameClockBeforePaint :: (GObject a, MonadIO m) => a -> FrameClockBeforePaintCallback -> m SignalHandlerId
-onFrameClockBeforePaint obj cb = liftIO $ connectFrameClockBeforePaint obj cb SignalConnectBefore
-afterFrameClockBeforePaint :: (GObject a, MonadIO m) => a -> FrameClockBeforePaintCallback -> m SignalHandlerId
-afterFrameClockBeforePaint obj cb = connectFrameClockBeforePaint obj cb SignalConnectAfter
-
-connectFrameClockBeforePaint :: (GObject a, MonadIO m) =>
-                                a -> FrameClockBeforePaintCallback -> SignalConnectMode -> m SignalHandlerId
-connectFrameClockBeforePaint obj cb after = liftIO $ do
-    cb' <- mkFrameClockBeforePaintCallback (frameClockBeforePaintCallbackWrapper cb)
-    connectSignalFunPtr obj "before-paint" cb' after
-
--- signal FrameClock::flush-events
-type FrameClockFlushEventsCallback =
-    IO ()
-
-noFrameClockFlushEventsCallback :: Maybe FrameClockFlushEventsCallback
-noFrameClockFlushEventsCallback = Nothing
-
-type FrameClockFlushEventsCallbackC =
-    Ptr () ->                               -- object
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkFrameClockFlushEventsCallback :: FrameClockFlushEventsCallbackC -> IO (FunPtr FrameClockFlushEventsCallbackC)
-
-frameClockFlushEventsClosure :: FrameClockFlushEventsCallback -> IO Closure
-frameClockFlushEventsClosure cb = newCClosure =<< mkFrameClockFlushEventsCallback wrapped
-    where wrapped = frameClockFlushEventsCallbackWrapper cb
-
-frameClockFlushEventsCallbackWrapper ::
-    FrameClockFlushEventsCallback ->
-    Ptr () ->
-    Ptr () ->
-    IO ()
-frameClockFlushEventsCallbackWrapper _cb _ _ = do
-    _cb 
-
-onFrameClockFlushEvents :: (GObject a, MonadIO m) => a -> FrameClockFlushEventsCallback -> m SignalHandlerId
-onFrameClockFlushEvents obj cb = liftIO $ connectFrameClockFlushEvents obj cb SignalConnectBefore
-afterFrameClockFlushEvents :: (GObject a, MonadIO m) => a -> FrameClockFlushEventsCallback -> m SignalHandlerId
-afterFrameClockFlushEvents obj cb = connectFrameClockFlushEvents obj cb SignalConnectAfter
-
-connectFrameClockFlushEvents :: (GObject a, MonadIO m) =>
-                                a -> FrameClockFlushEventsCallback -> SignalConnectMode -> m SignalHandlerId
-connectFrameClockFlushEvents obj cb after = liftIO $ do
-    cb' <- mkFrameClockFlushEventsCallback (frameClockFlushEventsCallbackWrapper cb)
-    connectSignalFunPtr obj "flush-events" cb' after
-
--- signal FrameClock::layout
-type FrameClockLayoutCallback =
-    IO ()
-
-noFrameClockLayoutCallback :: Maybe FrameClockLayoutCallback
-noFrameClockLayoutCallback = Nothing
-
-type FrameClockLayoutCallbackC =
-    Ptr () ->                               -- object
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkFrameClockLayoutCallback :: FrameClockLayoutCallbackC -> IO (FunPtr FrameClockLayoutCallbackC)
-
-frameClockLayoutClosure :: FrameClockLayoutCallback -> IO Closure
-frameClockLayoutClosure cb = newCClosure =<< mkFrameClockLayoutCallback wrapped
-    where wrapped = frameClockLayoutCallbackWrapper cb
-
-frameClockLayoutCallbackWrapper ::
-    FrameClockLayoutCallback ->
-    Ptr () ->
-    Ptr () ->
-    IO ()
-frameClockLayoutCallbackWrapper _cb _ _ = do
-    _cb 
-
-onFrameClockLayout :: (GObject a, MonadIO m) => a -> FrameClockLayoutCallback -> m SignalHandlerId
-onFrameClockLayout obj cb = liftIO $ connectFrameClockLayout obj cb SignalConnectBefore
-afterFrameClockLayout :: (GObject a, MonadIO m) => a -> FrameClockLayoutCallback -> m SignalHandlerId
-afterFrameClockLayout obj cb = connectFrameClockLayout obj cb SignalConnectAfter
-
-connectFrameClockLayout :: (GObject a, MonadIO m) =>
-                           a -> FrameClockLayoutCallback -> SignalConnectMode -> m SignalHandlerId
-connectFrameClockLayout obj cb after = liftIO $ do
-    cb' <- mkFrameClockLayoutCallback (frameClockLayoutCallbackWrapper cb)
-    connectSignalFunPtr obj "layout" cb' after
-
--- signal FrameClock::paint
-type FrameClockPaintCallback =
-    IO ()
-
-noFrameClockPaintCallback :: Maybe FrameClockPaintCallback
-noFrameClockPaintCallback = Nothing
-
-type FrameClockPaintCallbackC =
-    Ptr () ->                               -- object
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkFrameClockPaintCallback :: FrameClockPaintCallbackC -> IO (FunPtr FrameClockPaintCallbackC)
-
-frameClockPaintClosure :: FrameClockPaintCallback -> IO Closure
-frameClockPaintClosure cb = newCClosure =<< mkFrameClockPaintCallback wrapped
-    where wrapped = frameClockPaintCallbackWrapper cb
-
-frameClockPaintCallbackWrapper ::
-    FrameClockPaintCallback ->
-    Ptr () ->
-    Ptr () ->
-    IO ()
-frameClockPaintCallbackWrapper _cb _ _ = do
-    _cb 
-
-onFrameClockPaint :: (GObject a, MonadIO m) => a -> FrameClockPaintCallback -> m SignalHandlerId
-onFrameClockPaint obj cb = liftIO $ connectFrameClockPaint obj cb SignalConnectBefore
-afterFrameClockPaint :: (GObject a, MonadIO m) => a -> FrameClockPaintCallback -> m SignalHandlerId
-afterFrameClockPaint obj cb = connectFrameClockPaint obj cb SignalConnectAfter
-
-connectFrameClockPaint :: (GObject a, MonadIO m) =>
-                          a -> FrameClockPaintCallback -> SignalConnectMode -> m SignalHandlerId
-connectFrameClockPaint obj cb after = liftIO $ do
-    cb' <- mkFrameClockPaintCallback (frameClockPaintCallbackWrapper cb)
-    connectSignalFunPtr obj "paint" cb' after
-
--- signal FrameClock::resume-events
-type FrameClockResumeEventsCallback =
-    IO ()
-
-noFrameClockResumeEventsCallback :: Maybe FrameClockResumeEventsCallback
-noFrameClockResumeEventsCallback = Nothing
-
-type FrameClockResumeEventsCallbackC =
-    Ptr () ->                               -- object
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkFrameClockResumeEventsCallback :: FrameClockResumeEventsCallbackC -> IO (FunPtr FrameClockResumeEventsCallbackC)
-
-frameClockResumeEventsClosure :: FrameClockResumeEventsCallback -> IO Closure
-frameClockResumeEventsClosure cb = newCClosure =<< mkFrameClockResumeEventsCallback wrapped
-    where wrapped = frameClockResumeEventsCallbackWrapper cb
-
-frameClockResumeEventsCallbackWrapper ::
-    FrameClockResumeEventsCallback ->
-    Ptr () ->
-    Ptr () ->
-    IO ()
-frameClockResumeEventsCallbackWrapper _cb _ _ = do
-    _cb 
-
-onFrameClockResumeEvents :: (GObject a, MonadIO m) => a -> FrameClockResumeEventsCallback -> m SignalHandlerId
-onFrameClockResumeEvents obj cb = liftIO $ connectFrameClockResumeEvents obj cb SignalConnectBefore
-afterFrameClockResumeEvents :: (GObject a, MonadIO m) => a -> FrameClockResumeEventsCallback -> m SignalHandlerId
-afterFrameClockResumeEvents obj cb = connectFrameClockResumeEvents obj cb SignalConnectAfter
-
-connectFrameClockResumeEvents :: (GObject a, MonadIO m) =>
-                                 a -> FrameClockResumeEventsCallback -> SignalConnectMode -> m SignalHandlerId
-connectFrameClockResumeEvents obj cb after = liftIO $ do
-    cb' <- mkFrameClockResumeEventsCallback (frameClockResumeEventsCallbackWrapper cb)
-    connectSignalFunPtr obj "resume-events" cb' after
-
--- signal FrameClock::update
-type FrameClockUpdateCallback =
-    IO ()
-
-noFrameClockUpdateCallback :: Maybe FrameClockUpdateCallback
-noFrameClockUpdateCallback = Nothing
-
-type FrameClockUpdateCallbackC =
-    Ptr () ->                               -- object
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkFrameClockUpdateCallback :: FrameClockUpdateCallbackC -> IO (FunPtr FrameClockUpdateCallbackC)
-
-frameClockUpdateClosure :: FrameClockUpdateCallback -> IO Closure
-frameClockUpdateClosure cb = newCClosure =<< mkFrameClockUpdateCallback wrapped
-    where wrapped = frameClockUpdateCallbackWrapper cb
-
-frameClockUpdateCallbackWrapper ::
-    FrameClockUpdateCallback ->
-    Ptr () ->
-    Ptr () ->
-    IO ()
-frameClockUpdateCallbackWrapper _cb _ _ = do
-    _cb 
-
-onFrameClockUpdate :: (GObject a, MonadIO m) => a -> FrameClockUpdateCallback -> m SignalHandlerId
-onFrameClockUpdate obj cb = liftIO $ connectFrameClockUpdate obj cb SignalConnectBefore
-afterFrameClockUpdate :: (GObject a, MonadIO m) => a -> FrameClockUpdateCallback -> m SignalHandlerId
-afterFrameClockUpdate obj cb = connectFrameClockUpdate obj cb SignalConnectAfter
-
-connectFrameClockUpdate :: (GObject a, MonadIO m) =>
-                           a -> FrameClockUpdateCallback -> SignalConnectMode -> m SignalHandlerId
-connectFrameClockUpdate obj cb after = liftIO $ do
-    cb' <- mkFrameClockUpdateCallback (frameClockUpdateCallbackWrapper cb)
-    connectSignalFunPtr obj "update" cb' after
-
--- Flags FrameClockPhase
-
-data FrameClockPhase = 
-      FrameClockPhaseNone
-    | FrameClockPhaseFlushEvents
-    | FrameClockPhaseBeforePaint
-    | FrameClockPhaseUpdate
-    | FrameClockPhaseLayout
-    | FrameClockPhasePaint
-    | FrameClockPhaseResumeEvents
-    | FrameClockPhaseAfterPaint
-    | AnotherFrameClockPhase Int
-    deriving (Show, Eq)
-
-instance Enum FrameClockPhase where
-    fromEnum FrameClockPhaseNone = 0
-    fromEnum FrameClockPhaseFlushEvents = 1
-    fromEnum FrameClockPhaseBeforePaint = 2
-    fromEnum FrameClockPhaseUpdate = 4
-    fromEnum FrameClockPhaseLayout = 8
-    fromEnum FrameClockPhasePaint = 16
-    fromEnum FrameClockPhaseResumeEvents = 32
-    fromEnum FrameClockPhaseAfterPaint = 64
-    fromEnum (AnotherFrameClockPhase k) = k
-
-    toEnum 0 = FrameClockPhaseNone
-    toEnum 1 = FrameClockPhaseFlushEvents
-    toEnum 2 = FrameClockPhaseBeforePaint
-    toEnum 4 = FrameClockPhaseUpdate
-    toEnum 8 = FrameClockPhaseLayout
-    toEnum 16 = FrameClockPhasePaint
-    toEnum 32 = FrameClockPhaseResumeEvents
-    toEnum 64 = FrameClockPhaseAfterPaint
-    toEnum k = AnotherFrameClockPhase k
-
-foreign import ccall "gdk_frame_clock_phase_get_type" c_gdk_frame_clock_phase_get_type :: 
-    IO GType
-
-instance BoxedEnum FrameClockPhase where
-    boxedEnumType _ = c_gdk_frame_clock_phase_get_type
-
-instance IsGFlag FrameClockPhase
-
--- struct FrameTimings
-newtype FrameTimings = FrameTimings (ForeignPtr FrameTimings)
-noFrameTimings :: Maybe FrameTimings
-noFrameTimings = Nothing
-
-foreign import ccall "gdk_frame_timings_get_type" c_gdk_frame_timings_get_type :: 
-    IO GType
-
-instance BoxedObject FrameTimings where
-    boxedType _ = c_gdk_frame_timings_get_type
-
--- method FrameTimings::get_complete
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_timings_get_complete" gdk_frame_timings_get_complete :: 
-    Ptr FrameTimings ->                     -- _obj : TInterface "Gdk" "FrameTimings"
-    IO CInt
-
-
-frameTimingsGetComplete ::
-    (MonadIO m) =>
-    FrameTimings ->                         -- _obj
-    m Bool
-frameTimingsGetComplete _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_frame_timings_get_complete _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method FrameTimings::get_frame_counter
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_timings_get_frame_counter" gdk_frame_timings_get_frame_counter :: 
-    Ptr FrameTimings ->                     -- _obj : TInterface "Gdk" "FrameTimings"
-    IO Int64
-
-
-frameTimingsGetFrameCounter ::
-    (MonadIO m) =>
-    FrameTimings ->                         -- _obj
-    m Int64
-frameTimingsGetFrameCounter _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_frame_timings_get_frame_counter _obj'
-    touchManagedPtr _obj
-    return result
-
--- method FrameTimings::get_frame_time
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_timings_get_frame_time" gdk_frame_timings_get_frame_time :: 
-    Ptr FrameTimings ->                     -- _obj : TInterface "Gdk" "FrameTimings"
-    IO Int64
-
-
-frameTimingsGetFrameTime ::
-    (MonadIO m) =>
-    FrameTimings ->                         -- _obj
-    m Int64
-frameTimingsGetFrameTime _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_frame_timings_get_frame_time _obj'
-    touchManagedPtr _obj
-    return result
-
--- method FrameTimings::get_predicted_presentation_time
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_timings_get_predicted_presentation_time" gdk_frame_timings_get_predicted_presentation_time :: 
-    Ptr FrameTimings ->                     -- _obj : TInterface "Gdk" "FrameTimings"
-    IO Int64
-
-
-frameTimingsGetPredictedPresentationTime ::
-    (MonadIO m) =>
-    FrameTimings ->                         -- _obj
-    m Int64
-frameTimingsGetPredictedPresentationTime _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_frame_timings_get_predicted_presentation_time _obj'
-    touchManagedPtr _obj
-    return result
-
--- method FrameTimings::get_presentation_time
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_timings_get_presentation_time" gdk_frame_timings_get_presentation_time :: 
-    Ptr FrameTimings ->                     -- _obj : TInterface "Gdk" "FrameTimings"
-    IO Int64
-
-
-frameTimingsGetPresentationTime ::
-    (MonadIO m) =>
-    FrameTimings ->                         -- _obj
-    m Int64
-frameTimingsGetPresentationTime _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_frame_timings_get_presentation_time _obj'
-    touchManagedPtr _obj
-    return result
-
--- method FrameTimings::get_refresh_interval
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_timings_get_refresh_interval" gdk_frame_timings_get_refresh_interval :: 
-    Ptr FrameTimings ->                     -- _obj : TInterface "Gdk" "FrameTimings"
-    IO Int64
-
-
-frameTimingsGetRefreshInterval ::
-    (MonadIO m) =>
-    FrameTimings ->                         -- _obj
-    m Int64
-frameTimingsGetRefreshInterval _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_frame_timings_get_refresh_interval _obj'
-    touchManagedPtr _obj
-    return result
-
--- method FrameTimings::ref
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "FrameTimings"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_timings_ref" gdk_frame_timings_ref :: 
-    Ptr FrameTimings ->                     -- _obj : TInterface "Gdk" "FrameTimings"
-    IO (Ptr FrameTimings)
-
-
-frameTimingsRef ::
-    (MonadIO m) =>
-    FrameTimings ->                         -- _obj
-    m FrameTimings
-frameTimingsRef _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_frame_timings_ref _obj'
-    checkUnexpectedReturnNULL "gdk_frame_timings_ref" result
-    result' <- (wrapBoxed FrameTimings) result
-    touchManagedPtr _obj
-    return result'
-
--- method FrameTimings::unref
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_frame_timings_unref" gdk_frame_timings_unref :: 
-    Ptr FrameTimings ->                     -- _obj : TInterface "Gdk" "FrameTimings"
-    IO ()
-
-
-frameTimingsUnref ::
-    (MonadIO m) =>
-    FrameTimings ->                         -- _obj
-    m ()
-frameTimingsUnref _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    gdk_frame_timings_unref _obj'
-    touchManagedPtr _obj
-    return ()
-
--- Enum FullscreenMode
-
-data FullscreenMode = 
-      FullscreenModeCurrentMonitor
-    | FullscreenModeAllMonitors
-    | AnotherFullscreenMode Int
-    deriving (Show, Eq)
-
-instance Enum FullscreenMode where
-    fromEnum FullscreenModeCurrentMonitor = 0
-    fromEnum FullscreenModeAllMonitors = 1
-    fromEnum (AnotherFullscreenMode k) = k
-
-    toEnum 0 = FullscreenModeCurrentMonitor
-    toEnum 1 = FullscreenModeAllMonitors
-    toEnum k = AnotherFullscreenMode k
-
-foreign import ccall "gdk_fullscreen_mode_get_type" c_gdk_fullscreen_mode_get_type :: 
-    IO GType
-
-instance BoxedEnum FullscreenMode where
-    boxedEnumType _ = c_gdk_fullscreen_mode_get_type
-
--- object GLContext 
-newtype GLContext = GLContext (ForeignPtr GLContext)
-noGLContext :: Maybe GLContext
-noGLContext = Nothing
-
-foreign import ccall "gdk_gl_context_get_type"
-    c_gdk_gl_context_get_type :: IO GType
-
-type instance ParentTypes GLContext = '[GObject.Object]
-
-instance GObject GLContext where
-    gobjectIsInitiallyUnowned _ = False
-    gobjectType _ = c_gdk_gl_context_get_type
-    
-
-class GObject o => GLContextK o
-instance (GObject o, IsDescendantOf GLContext o) => GLContextK o
-
-toGLContext :: GLContextK o => o -> IO GLContext
-toGLContext = unsafeCastTo GLContext
-
--- method GLContext::get_debug_enabled
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_gl_context_get_debug_enabled" gdk_gl_context_get_debug_enabled :: 
-    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
-    IO CInt
-
-
-gLContextGetDebugEnabled ::
-    (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    m Bool
-gLContextGetDebugEnabled _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_gl_context_get_debug_enabled _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method GLContext::get_display
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Display"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_gl_context_get_display" gdk_gl_context_get_display :: 
-    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
-    IO (Ptr Display)
-
-
-gLContextGetDisplay ::
-    (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    m Display
-gLContextGetDisplay _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_gl_context_get_display _obj'
-    checkUnexpectedReturnNULL "gdk_gl_context_get_display" result
-    result' <- (newObject Display) result
-    touchManagedPtr _obj
-    return result'
-
--- method GLContext::get_forward_compatible
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_gl_context_get_forward_compatible" gdk_gl_context_get_forward_compatible :: 
-    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
-    IO CInt
-
-
-gLContextGetForwardCompatible ::
-    (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    m Bool
-gLContextGetForwardCompatible _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_gl_context_get_forward_compatible _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- XXX Could not generate method GLContext::get_required_version
--- Error was : Bad introspection data: "argument \"major\" is not of nullable type (TBasicType TInt32), but it is marked as such."
--- method GLContext::get_shared_context
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "GLContext"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_gl_context_get_shared_context" gdk_gl_context_get_shared_context :: 
-    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
-    IO (Ptr GLContext)
-
-
-gLContextGetSharedContext ::
-    (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    m GLContext
-gLContextGetSharedContext _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_gl_context_get_shared_context _obj'
-    checkUnexpectedReturnNULL "gdk_gl_context_get_shared_context" result
-    result' <- (newObject GLContext) result
-    touchManagedPtr _obj
-    return result'
-
--- method GLContext::get_version
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "major", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "minor", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_gl_context_get_version" gdk_gl_context_get_version :: 
-    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
-    Ptr Int32 ->                            -- major : TBasicType TInt32
-    Ptr Int32 ->                            -- minor : TBasicType TInt32
-    IO ()
-
-
-gLContextGetVersion ::
-    (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    m (Int32,Int32)
-gLContextGetVersion _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    major <- allocMem :: IO (Ptr Int32)
-    minor <- allocMem :: IO (Ptr Int32)
-    gdk_gl_context_get_version _obj' major minor
-    major' <- peek major
-    minor' <- peek minor
-    touchManagedPtr _obj
-    freeMem major
-    freeMem minor
-    return (major', minor')
-
--- method GLContext::get_window
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_gl_context_get_window" gdk_gl_context_get_window :: 
-    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
-    IO (Ptr Window)
-
-
-gLContextGetWindow ::
-    (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    m Window
-gLContextGetWindow _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_gl_context_get_window _obj'
-    checkUnexpectedReturnNULL "gdk_gl_context_get_window" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method GLContext::make_current
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_gl_context_make_current" gdk_gl_context_make_current :: 
-    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
-    IO ()
-
-
-gLContextMakeCurrent ::
-    (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    m ()
-gLContextMakeCurrent _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_gl_context_make_current _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method GLContext::realize
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : True
--- Skip return : False
-
-foreign import ccall "gdk_gl_context_realize" gdk_gl_context_realize :: 
-    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
-    Ptr (Ptr GError) ->                     -- error
-    IO CInt
-
-
-gLContextRealize ::
-    (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    m ()
-gLContextRealize _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    onException (do
-        _ <- propagateGError $ gdk_gl_context_realize _obj'
-        touchManagedPtr _obj
-        return ()
-     ) (do
-        return ()
-     )
-
--- method GLContext::set_debug_enabled
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_gl_context_set_debug_enabled" gdk_gl_context_set_debug_enabled :: 
-    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
-    CInt ->                                 -- enabled : TBasicType TBoolean
-    IO ()
-
-
-gLContextSetDebugEnabled ::
-    (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- enabled
-    m ()
-gLContextSetDebugEnabled _obj enabled = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let enabled' = (fromIntegral . fromEnum) enabled
-    gdk_gl_context_set_debug_enabled _obj' enabled'
-    touchManagedPtr _obj
-    return ()
-
--- method GLContext::set_forward_compatible
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "compatible", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "compatible", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_gl_context_set_forward_compatible" gdk_gl_context_set_forward_compatible :: 
-    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
-    CInt ->                                 -- compatible : TBasicType TBoolean
-    IO ()
-
-
-gLContextSetForwardCompatible ::
-    (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- compatible
-    m ()
-gLContextSetForwardCompatible _obj compatible = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let compatible' = (fromIntegral . fromEnum) compatible
-    gdk_gl_context_set_forward_compatible _obj' compatible'
-    touchManagedPtr _obj
-    return ()
-
--- method GLContext::set_required_version
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "major", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minor", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "major", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minor", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_gl_context_set_required_version" gdk_gl_context_set_required_version :: 
-    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
-    Int32 ->                                -- major : TBasicType TInt32
-    Int32 ->                                -- minor : TBasicType TInt32
-    IO ()
-
-
-gLContextSetRequiredVersion ::
-    (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- major
-    Int32 ->                                -- minor
-    m ()
-gLContextSetRequiredVersion _obj major minor = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_gl_context_set_required_version _obj' major minor
-    touchManagedPtr _obj
-    return ()
-
--- method GLContext::clear_current
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_gl_context_clear_current" gdk_gl_context_clear_current :: 
-    IO ()
-
-
-gLContextClearCurrent ::
-    (MonadIO m) =>
-    m ()
-gLContextClearCurrent  = liftIO $ do
-    gdk_gl_context_clear_current
-    return ()
-
--- method GLContext::get_current
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "GLContext"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_gl_context_get_current" gdk_gl_context_get_current :: 
-    IO (Ptr GLContext)
-
-
-gLContextGetCurrent ::
-    (MonadIO m) =>
-    m GLContext
-gLContextGetCurrent  = liftIO $ do
-    result <- gdk_gl_context_get_current
-    checkUnexpectedReturnNULL "gdk_gl_context_get_current" result
-    result' <- (newObject GLContext) result
-    return result'
-
--- Enum GLError
-
-data GLError = 
-      GLErrorNotAvailable
-    | GLErrorUnsupportedFormat
-    | GLErrorUnsupportedProfile
-    | AnotherGLError Int
-    deriving (Show, Eq)
-
-instance Enum GLError where
-    fromEnum GLErrorNotAvailable = 0
-    fromEnum GLErrorUnsupportedFormat = 1
-    fromEnum GLErrorUnsupportedProfile = 2
-    fromEnum (AnotherGLError k) = k
-
-    toEnum 0 = GLErrorNotAvailable
-    toEnum 1 = GLErrorUnsupportedFormat
-    toEnum 2 = GLErrorUnsupportedProfile
-    toEnum k = AnotherGLError k
-
-instance GErrorClass GLError where
-    gerrorClassDomain _ = "gdk-gl-error-quark"
-
-catchGLError ::
-    IO a ->
-    (GLError -> GErrorMessage -> IO a) ->
-    IO a
-catchGLError = catchGErrorJustDomain
-
-handleGLError ::
-    (GLError -> GErrorMessage -> IO a) ->
-    IO a ->
-    IO a
-handleGLError = handleGErrorJustDomain
-
-foreign import ccall "gdk_gl_error_get_type" c_gdk_gl_error_get_type :: 
-    IO GType
-
-instance BoxedEnum GLError where
-    boxedEnumType _ = c_gdk_gl_error_get_type
-
--- struct Geometry
-newtype Geometry = Geometry (ForeignPtr Geometry)
-noGeometry :: Maybe Geometry
-noGeometry = Nothing
-
-geometryReadMinWidth :: Geometry -> IO Int32
-geometryReadMinWidth s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO Int32
-    return val
-
-geometryReadMinHeight :: Geometry -> IO Int32
-geometryReadMinHeight s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 4) :: IO Int32
-    return val
-
-geometryReadMaxWidth :: Geometry -> IO Int32
-geometryReadMaxWidth s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO Int32
-    return val
-
-geometryReadMaxHeight :: Geometry -> IO Int32
-geometryReadMaxHeight s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 12) :: IO Int32
-    return val
-
-geometryReadBaseWidth :: Geometry -> IO Int32
-geometryReadBaseWidth s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int32
-    return val
-
-geometryReadBaseHeight :: Geometry -> IO Int32
-geometryReadBaseHeight s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 20) :: IO Int32
-    return val
-
-geometryReadWidthInc :: Geometry -> IO Int32
-geometryReadWidthInc s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO Int32
-    return val
-
-geometryReadHeightInc :: Geometry -> IO Int32
-geometryReadHeightInc s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 28) :: IO Int32
-    return val
-
-geometryReadMinAspect :: Geometry -> IO Double
-geometryReadMinAspect s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-geometryReadMaxAspect :: Geometry -> IO Double
-geometryReadMaxAspect s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 40) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-geometryReadWinGravity :: Geometry -> IO Gravity
-geometryReadWinGravity s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 48) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
--- Enum GrabOwnership
-
-data GrabOwnership = 
-      GrabOwnershipNone
-    | GrabOwnershipWindow
-    | GrabOwnershipApplication
-    | AnotherGrabOwnership Int
-    deriving (Show, Eq)
-
-instance Enum GrabOwnership where
-    fromEnum GrabOwnershipNone = 0
-    fromEnum GrabOwnershipWindow = 1
-    fromEnum GrabOwnershipApplication = 2
-    fromEnum (AnotherGrabOwnership k) = k
-
-    toEnum 0 = GrabOwnershipNone
-    toEnum 1 = GrabOwnershipWindow
-    toEnum 2 = GrabOwnershipApplication
-    toEnum k = AnotherGrabOwnership k
-
-foreign import ccall "gdk_grab_ownership_get_type" c_gdk_grab_ownership_get_type :: 
-    IO GType
-
-instance BoxedEnum GrabOwnership where
-    boxedEnumType _ = c_gdk_grab_ownership_get_type
-
--- Enum GrabStatus
-
-data GrabStatus = 
-      GrabStatusSuccess
-    | GrabStatusAlreadyGrabbed
-    | GrabStatusInvalidTime
-    | GrabStatusNotViewable
-    | GrabStatusFrozen
-    | GrabStatusFailed
-    | AnotherGrabStatus Int
-    deriving (Show, Eq)
-
-instance Enum GrabStatus where
-    fromEnum GrabStatusSuccess = 0
-    fromEnum GrabStatusAlreadyGrabbed = 1
-    fromEnum GrabStatusInvalidTime = 2
-    fromEnum GrabStatusNotViewable = 3
-    fromEnum GrabStatusFrozen = 4
-    fromEnum GrabStatusFailed = 5
-    fromEnum (AnotherGrabStatus k) = k
-
-    toEnum 0 = GrabStatusSuccess
-    toEnum 1 = GrabStatusAlreadyGrabbed
-    toEnum 2 = GrabStatusInvalidTime
-    toEnum 3 = GrabStatusNotViewable
-    toEnum 4 = GrabStatusFrozen
-    toEnum 5 = GrabStatusFailed
-    toEnum k = AnotherGrabStatus k
-
-foreign import ccall "gdk_grab_status_get_type" c_gdk_grab_status_get_type :: 
-    IO GType
-
-instance BoxedEnum GrabStatus where
-    boxedEnumType _ = c_gdk_grab_status_get_type
-
--- Enum Gravity
-
-data Gravity = 
-      GravityNorthWest
-    | GravityNorth
-    | GravityNorthEast
-    | GravityWest
-    | GravityCenter
-    | GravityEast
-    | GravitySouthWest
-    | GravitySouth
-    | GravitySouthEast
-    | GravityStatic
-    | AnotherGravity Int
-    deriving (Show, Eq)
-
-instance Enum Gravity where
-    fromEnum GravityNorthWest = 1
-    fromEnum GravityNorth = 2
-    fromEnum GravityNorthEast = 3
-    fromEnum GravityWest = 4
-    fromEnum GravityCenter = 5
-    fromEnum GravityEast = 6
-    fromEnum GravitySouthWest = 7
-    fromEnum GravitySouth = 8
-    fromEnum GravitySouthEast = 9
-    fromEnum GravityStatic = 10
-    fromEnum (AnotherGravity k) = k
-
-    toEnum 1 = GravityNorthWest
-    toEnum 2 = GravityNorth
-    toEnum 3 = GravityNorthEast
-    toEnum 4 = GravityWest
-    toEnum 5 = GravityCenter
-    toEnum 6 = GravityEast
-    toEnum 7 = GravitySouthWest
-    toEnum 8 = GravitySouth
-    toEnum 9 = GravitySouthEast
-    toEnum 10 = GravityStatic
-    toEnum k = AnotherGravity k
-
-foreign import ccall "gdk_gravity_get_type" c_gdk_gravity_get_type :: 
-    IO GType
-
-instance BoxedEnum Gravity where
-    boxedEnumType _ = c_gdk_gravity_get_type
-
--- Enum InputMode
-
-data InputMode = 
-      InputModeDisabled
-    | InputModeScreen
-    | InputModeWindow
-    | AnotherInputMode Int
-    deriving (Show, Eq)
-
-instance Enum InputMode where
-    fromEnum InputModeDisabled = 0
-    fromEnum InputModeScreen = 1
-    fromEnum InputModeWindow = 2
-    fromEnum (AnotherInputMode k) = k
-
-    toEnum 0 = InputModeDisabled
-    toEnum 1 = InputModeScreen
-    toEnum 2 = InputModeWindow
-    toEnum k = AnotherInputMode k
-
-foreign import ccall "gdk_input_mode_get_type" c_gdk_input_mode_get_type :: 
-    IO GType
-
-instance BoxedEnum InputMode where
-    boxedEnumType _ = c_gdk_input_mode_get_type
-
--- Enum InputSource
-
-data InputSource = 
-      InputSourceMouse
-    | InputSourcePen
-    | InputSourceEraser
-    | InputSourceCursor
-    | InputSourceKeyboard
-    | InputSourceTouchscreen
-    | InputSourceTouchpad
-    | AnotherInputSource Int
-    deriving (Show, Eq)
-
-instance Enum InputSource where
-    fromEnum InputSourceMouse = 0
-    fromEnum InputSourcePen = 1
-    fromEnum InputSourceEraser = 2
-    fromEnum InputSourceCursor = 3
-    fromEnum InputSourceKeyboard = 4
-    fromEnum InputSourceTouchscreen = 5
-    fromEnum InputSourceTouchpad = 6
-    fromEnum (AnotherInputSource k) = k
-
-    toEnum 0 = InputSourceMouse
-    toEnum 1 = InputSourcePen
-    toEnum 2 = InputSourceEraser
-    toEnum 3 = InputSourceCursor
-    toEnum 4 = InputSourceKeyboard
-    toEnum 5 = InputSourceTouchscreen
-    toEnum 6 = InputSourceTouchpad
-    toEnum k = AnotherInputSource k
-
-foreign import ccall "gdk_input_source_get_type" c_gdk_input_source_get_type :: 
-    IO GType
-
-instance BoxedEnum InputSource where
-    boxedEnumType _ = c_gdk_input_source_get_type
-
--- object Keymap 
-newtype Keymap = Keymap (ForeignPtr Keymap)
-noKeymap :: Maybe Keymap
-noKeymap = Nothing
-
-foreign import ccall "gdk_keymap_get_type"
-    c_gdk_keymap_get_type :: IO GType
-
-type instance ParentTypes Keymap = '[GObject.Object]
-
-instance GObject Keymap where
-    gobjectIsInitiallyUnowned _ = False
-    gobjectType _ = c_gdk_keymap_get_type
-    
-
-class GObject o => KeymapK o
-instance (GObject o, IsDescendantOf Keymap o) => KeymapK o
-
-toKeymap :: KeymapK o => o -> IO Keymap
-toKeymap = unsafeCastTo Keymap
-
--- method Keymap::add_virtual_modifiers
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keymap_add_virtual_modifiers" gdk_keymap_add_virtual_modifiers :: 
-    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
-    Ptr CUInt ->                            -- state : TInterface "Gdk" "ModifierType"
-    IO ()
-
-
-keymapAddVirtualModifiers ::
-    (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    [ModifierType] ->                       -- state
-    m ([ModifierType])
-keymapAddVirtualModifiers _obj state = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let state' = gflagsToWord state
-    state'' <- allocMem :: IO (Ptr CUInt)
-    poke state'' state'
-    gdk_keymap_add_virtual_modifiers _obj' state''
-    state''' <- peek state''
-    let state'''' = wordToGFlags state'''
-    touchManagedPtr _obj
-    freeMem state''
-    return state''''
-
--- method Keymap::get_caps_lock_state
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keymap_get_caps_lock_state" gdk_keymap_get_caps_lock_state :: 
-    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
-    IO CInt
-
-
-keymapGetCapsLockState ::
-    (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    m Bool
-keymapGetCapsLockState _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_keymap_get_caps_lock_state _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Keymap::get_direction
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Pango" "Direction"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keymap_get_direction" gdk_keymap_get_direction :: 
-    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
-    IO CUInt
-
-
-keymapGetDirection ::
-    (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    m Pango.Direction
-keymapGetDirection _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_keymap_get_direction _obj'
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    return result'
-
--- method Keymap::get_entries_for_keycode
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hardware_keycode", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keys", argType = TCArray False (-1) 4 (TInterface "Gdk" "KeymapKey"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "keyvals", argType = TCArray False (-1) 4 (TBasicType TUInt32), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "n_entries", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "n_entries", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "n_entries", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hardware_keycode", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keymap_get_entries_for_keycode" gdk_keymap_get_entries_for_keycode :: 
-    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
-    Word32 ->                               -- hardware_keycode : TBasicType TUInt32
-    Ptr (Ptr KeymapKey) ->                  -- keys : TCArray False (-1) 4 (TInterface "Gdk" "KeymapKey")
-    Ptr (Ptr Word32) ->                     -- keyvals : TCArray False (-1) 4 (TBasicType TUInt32)
-    Ptr Int32 ->                            -- n_entries : TBasicType TInt32
-    IO CInt
-
-
-keymapGetEntriesForKeycode ::
-    (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- hardware_keycode
-    m (Bool,[KeymapKey],[Word32])
-keymapGetEntriesForKeycode _obj hardware_keycode = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    keys <- allocMem :: IO (Ptr (Ptr KeymapKey))
-    keyvals <- allocMem :: IO (Ptr (Ptr Word32))
-    n_entries <- allocMem :: IO (Ptr Int32)
-    result <- gdk_keymap_get_entries_for_keycode _obj' hardware_keycode keys keyvals n_entries
-    n_entries' <- peek n_entries
-    let result' = (/= 0) result
-    keys' <- peek keys
-    keys'' <- (unpackBlockArrayWithLength 12 n_entries') keys'
-    keys''' <- mapM (wrapPtr KeymapKey) keys''
-    freeMem keys'
-    keyvals' <- peek keyvals
-    keyvals'' <- (unpackStorableArrayWithLength n_entries') keyvals'
-    freeMem keyvals'
-    touchManagedPtr _obj
-    freeMem keys
-    freeMem keyvals
-    freeMem n_entries
-    return (result', keys''', keyvals'')
-
--- method Keymap::get_entries_for_keyval
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keys", argType = TCArray False (-1) 3 (TInterface "Gdk" "KeymapKey"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "n_keys", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "n_keys", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keymap_get_entries_for_keyval" gdk_keymap_get_entries_for_keyval :: 
-    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
-    Word32 ->                               -- keyval : TBasicType TUInt32
-    Ptr (Ptr KeymapKey) ->                  -- keys : TCArray False (-1) 3 (TInterface "Gdk" "KeymapKey")
-    Ptr Int32 ->                            -- n_keys : TBasicType TInt32
-    IO CInt
-
-
-keymapGetEntriesForKeyval ::
-    (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- keyval
-    m (Bool,[KeymapKey])
-keymapGetEntriesForKeyval _obj keyval = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    keys <- allocMem :: IO (Ptr (Ptr KeymapKey))
-    n_keys <- allocMem :: IO (Ptr Int32)
-    result <- gdk_keymap_get_entries_for_keyval _obj' keyval keys n_keys
-    n_keys' <- peek n_keys
-    let result' = (/= 0) result
-    keys' <- peek keys
-    keys'' <- (unpackBlockArrayWithLength 12 n_keys') keys'
-    keys''' <- mapM (wrapPtr KeymapKey) keys''
-    freeMem keys'
-    touchManagedPtr _obj
-    freeMem keys
-    freeMem n_keys
-    return (result', keys''')
-
--- method Keymap::get_modifier_mask
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "intent", argType = TInterface "Gdk" "ModifierIntent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "intent", argType = TInterface "Gdk" "ModifierIntent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "ModifierType"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keymap_get_modifier_mask" gdk_keymap_get_modifier_mask :: 
-    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
-    CUInt ->                                -- intent : TInterface "Gdk" "ModifierIntent"
-    IO CUInt
-
-
-keymapGetModifierMask ::
-    (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    ModifierIntent ->                       -- intent
-    m [ModifierType]
-keymapGetModifierMask _obj intent = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let intent' = (fromIntegral . fromEnum) intent
-    result <- gdk_keymap_get_modifier_mask _obj' intent'
-    let result' = wordToGFlags result
-    touchManagedPtr _obj
-    return result'
-
--- method Keymap::get_modifier_state
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keymap_get_modifier_state" gdk_keymap_get_modifier_state :: 
-    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
-    IO Word32
-
-
-keymapGetModifierState ::
-    (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    m Word32
-keymapGetModifierState _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_keymap_get_modifier_state _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Keymap::get_num_lock_state
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keymap_get_num_lock_state" gdk_keymap_get_num_lock_state :: 
-    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
-    IO CInt
-
-
-keymapGetNumLockState ::
-    (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    m Bool
-keymapGetNumLockState _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_keymap_get_num_lock_state _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Keymap::get_scroll_lock_state
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keymap_get_scroll_lock_state" gdk_keymap_get_scroll_lock_state :: 
-    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
-    IO CInt
-
-
-keymapGetScrollLockState ::
-    (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    m Bool
-keymapGetScrollLockState _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_keymap_get_scroll_lock_state _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Keymap::have_bidi_layouts
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keymap_have_bidi_layouts" gdk_keymap_have_bidi_layouts :: 
-    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
-    IO CInt
-
-
-keymapHaveBidiLayouts ::
-    (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    m Bool
-keymapHaveBidiLayouts _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_keymap_have_bidi_layouts _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Keymap::lookup_key
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TInterface "Gdk" "KeymapKey", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TInterface "Gdk" "KeymapKey", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keymap_lookup_key" gdk_keymap_lookup_key :: 
-    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
-    Ptr KeymapKey ->                        -- key : TInterface "Gdk" "KeymapKey"
-    IO Word32
-
-
-keymapLookupKey ::
-    (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    KeymapKey ->                            -- key
-    m Word32
-keymapLookupKey _obj key = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let key' = unsafeManagedPtrGetPtr key
-    result <- gdk_keymap_lookup_key _obj' key'
-    touchManagedPtr _obj
-    touchManagedPtr key
-    return result
-
--- method Keymap::map_virtual_modifiers
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keymap_map_virtual_modifiers" gdk_keymap_map_virtual_modifiers :: 
-    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
-    Ptr CUInt ->                            -- state : TInterface "Gdk" "ModifierType"
-    IO CInt
-
-
-keymapMapVirtualModifiers ::
-    (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    [ModifierType] ->                       -- state
-    m (Bool,[ModifierType])
-keymapMapVirtualModifiers _obj state = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let state' = gflagsToWord state
-    state'' <- allocMem :: IO (Ptr CUInt)
-    poke state'' state'
-    result <- gdk_keymap_map_virtual_modifiers _obj' state''
-    let result' = (/= 0) result
-    state''' <- peek state''
-    let state'''' = wordToGFlags state'''
-    touchManagedPtr _obj
-    freeMem state''
-    return (result', state'''')
-
--- method Keymap::translate_keyboard_state
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hardware_keycode", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "effective_group", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "level", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "consumed_modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hardware_keycode", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keymap_translate_keyboard_state" gdk_keymap_translate_keyboard_state :: 
-    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
-    Word32 ->                               -- hardware_keycode : TBasicType TUInt32
-    CUInt ->                                -- state : TInterface "Gdk" "ModifierType"
-    Int32 ->                                -- group : TBasicType TInt32
-    Ptr Word32 ->                           -- keyval : TBasicType TUInt32
-    Ptr Int32 ->                            -- effective_group : TBasicType TInt32
-    Ptr Int32 ->                            -- level : TBasicType TInt32
-    Ptr CUInt ->                            -- consumed_modifiers : TInterface "Gdk" "ModifierType"
-    IO CInt
-
-
-keymapTranslateKeyboardState ::
-    (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- hardware_keycode
-    [ModifierType] ->                       -- state
-    Int32 ->                                -- group
-    m (Bool,Word32,Int32,Int32,[ModifierType])
-keymapTranslateKeyboardState _obj hardware_keycode state group = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let state' = gflagsToWord state
-    keyval <- allocMem :: IO (Ptr Word32)
-    effective_group <- allocMem :: IO (Ptr Int32)
-    level <- allocMem :: IO (Ptr Int32)
-    consumed_modifiers <- allocMem :: IO (Ptr CUInt)
-    result <- gdk_keymap_translate_keyboard_state _obj' hardware_keycode state' group keyval effective_group level consumed_modifiers
-    let result' = (/= 0) result
-    keyval' <- peek keyval
-    effective_group' <- peek effective_group
-    level' <- peek level
-    consumed_modifiers' <- peek consumed_modifiers
-    let consumed_modifiers'' = wordToGFlags consumed_modifiers'
-    touchManagedPtr _obj
-    freeMem keyval
-    freeMem effective_group
-    freeMem level
-    freeMem consumed_modifiers
-    return (result', keyval', effective_group', level', consumed_modifiers'')
-
--- method Keymap::get_default
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "Keymap"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keymap_get_default" gdk_keymap_get_default :: 
-    IO (Ptr Keymap)
-
-
-keymapGetDefault ::
-    (MonadIO m) =>
-    m Keymap
-keymapGetDefault  = liftIO $ do
-    result <- gdk_keymap_get_default
-    checkUnexpectedReturnNULL "gdk_keymap_get_default" result
-    result' <- (newObject Keymap) result
-    return result'
-
--- method Keymap::get_for_display
--- method type : MemberFunction
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Keymap"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keymap_get_for_display" gdk_keymap_get_for_display :: 
-    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
-    IO (Ptr Keymap)
-
-
-keymapGetForDisplay ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- display
-    m Keymap
-keymapGetForDisplay display = liftIO $ do
-    let display' = unsafeManagedPtrCastPtr display
-    result <- gdk_keymap_get_for_display display'
-    checkUnexpectedReturnNULL "gdk_keymap_get_for_display" result
-    result' <- (newObject Keymap) result
-    touchManagedPtr display
-    return result'
-
--- signal Keymap::direction-changed
-type KeymapDirectionChangedCallback =
-    IO ()
-
-noKeymapDirectionChangedCallback :: Maybe KeymapDirectionChangedCallback
-noKeymapDirectionChangedCallback = Nothing
-
-type KeymapDirectionChangedCallbackC =
-    Ptr () ->                               -- object
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkKeymapDirectionChangedCallback :: KeymapDirectionChangedCallbackC -> IO (FunPtr KeymapDirectionChangedCallbackC)
-
-keymapDirectionChangedClosure :: KeymapDirectionChangedCallback -> IO Closure
-keymapDirectionChangedClosure cb = newCClosure =<< mkKeymapDirectionChangedCallback wrapped
-    where wrapped = keymapDirectionChangedCallbackWrapper cb
-
-keymapDirectionChangedCallbackWrapper ::
-    KeymapDirectionChangedCallback ->
-    Ptr () ->
-    Ptr () ->
-    IO ()
-keymapDirectionChangedCallbackWrapper _cb _ _ = do
-    _cb 
-
-onKeymapDirectionChanged :: (GObject a, MonadIO m) => a -> KeymapDirectionChangedCallback -> m SignalHandlerId
-onKeymapDirectionChanged obj cb = liftIO $ connectKeymapDirectionChanged obj cb SignalConnectBefore
-afterKeymapDirectionChanged :: (GObject a, MonadIO m) => a -> KeymapDirectionChangedCallback -> m SignalHandlerId
-afterKeymapDirectionChanged obj cb = connectKeymapDirectionChanged obj cb SignalConnectAfter
-
-connectKeymapDirectionChanged :: (GObject a, MonadIO m) =>
-                                 a -> KeymapDirectionChangedCallback -> SignalConnectMode -> m SignalHandlerId
-connectKeymapDirectionChanged obj cb after = liftIO $ do
-    cb' <- mkKeymapDirectionChangedCallback (keymapDirectionChangedCallbackWrapper cb)
-    connectSignalFunPtr obj "direction-changed" cb' after
-
--- signal Keymap::keys-changed
-type KeymapKeysChangedCallback =
-    IO ()
-
-noKeymapKeysChangedCallback :: Maybe KeymapKeysChangedCallback
-noKeymapKeysChangedCallback = Nothing
-
-type KeymapKeysChangedCallbackC =
-    Ptr () ->                               -- object
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkKeymapKeysChangedCallback :: KeymapKeysChangedCallbackC -> IO (FunPtr KeymapKeysChangedCallbackC)
-
-keymapKeysChangedClosure :: KeymapKeysChangedCallback -> IO Closure
-keymapKeysChangedClosure cb = newCClosure =<< mkKeymapKeysChangedCallback wrapped
-    where wrapped = keymapKeysChangedCallbackWrapper cb
-
-keymapKeysChangedCallbackWrapper ::
-    KeymapKeysChangedCallback ->
-    Ptr () ->
-    Ptr () ->
-    IO ()
-keymapKeysChangedCallbackWrapper _cb _ _ = do
-    _cb 
-
-onKeymapKeysChanged :: (GObject a, MonadIO m) => a -> KeymapKeysChangedCallback -> m SignalHandlerId
-onKeymapKeysChanged obj cb = liftIO $ connectKeymapKeysChanged obj cb SignalConnectBefore
-afterKeymapKeysChanged :: (GObject a, MonadIO m) => a -> KeymapKeysChangedCallback -> m SignalHandlerId
-afterKeymapKeysChanged obj cb = connectKeymapKeysChanged obj cb SignalConnectAfter
-
-connectKeymapKeysChanged :: (GObject a, MonadIO m) =>
-                            a -> KeymapKeysChangedCallback -> SignalConnectMode -> m SignalHandlerId
-connectKeymapKeysChanged obj cb after = liftIO $ do
-    cb' <- mkKeymapKeysChangedCallback (keymapKeysChangedCallbackWrapper cb)
-    connectSignalFunPtr obj "keys-changed" cb' after
-
--- signal Keymap::state-changed
-type KeymapStateChangedCallback =
-    IO ()
-
-noKeymapStateChangedCallback :: Maybe KeymapStateChangedCallback
-noKeymapStateChangedCallback = Nothing
-
-type KeymapStateChangedCallbackC =
-    Ptr () ->                               -- object
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkKeymapStateChangedCallback :: KeymapStateChangedCallbackC -> IO (FunPtr KeymapStateChangedCallbackC)
-
-keymapStateChangedClosure :: KeymapStateChangedCallback -> IO Closure
-keymapStateChangedClosure cb = newCClosure =<< mkKeymapStateChangedCallback wrapped
-    where wrapped = keymapStateChangedCallbackWrapper cb
-
-keymapStateChangedCallbackWrapper ::
-    KeymapStateChangedCallback ->
-    Ptr () ->
-    Ptr () ->
-    IO ()
-keymapStateChangedCallbackWrapper _cb _ _ = do
-    _cb 
-
-onKeymapStateChanged :: (GObject a, MonadIO m) => a -> KeymapStateChangedCallback -> m SignalHandlerId
-onKeymapStateChanged obj cb = liftIO $ connectKeymapStateChanged obj cb SignalConnectBefore
-afterKeymapStateChanged :: (GObject a, MonadIO m) => a -> KeymapStateChangedCallback -> m SignalHandlerId
-afterKeymapStateChanged obj cb = connectKeymapStateChanged obj cb SignalConnectAfter
-
-connectKeymapStateChanged :: (GObject a, MonadIO m) =>
-                             a -> KeymapStateChangedCallback -> SignalConnectMode -> m SignalHandlerId
-connectKeymapStateChanged obj cb after = liftIO $ do
-    cb' <- mkKeymapStateChangedCallback (keymapStateChangedCallbackWrapper cb)
-    connectSignalFunPtr obj "state-changed" cb' after
-
--- struct KeymapKey
-newtype KeymapKey = KeymapKey (ForeignPtr KeymapKey)
-noKeymapKey :: Maybe KeymapKey
-noKeymapKey = Nothing
-
-keymapKeyReadKeycode :: KeymapKey -> IO Word32
-keymapKeyReadKeycode s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO Word32
-    return val
-
-keymapKeyReadGroup :: KeymapKey -> IO Int32
-keymapKeyReadGroup s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 4) :: IO Int32
-    return val
-
-keymapKeyReadLevel :: KeymapKey -> IO Int32
-keymapKeyReadLevel s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO Int32
-    return val
-
--- Enum ModifierIntent
-
-data ModifierIntent = 
-      ModifierIntentPrimaryAccelerator
-    | ModifierIntentContextMenu
-    | ModifierIntentExtendSelection
-    | ModifierIntentModifySelection
-    | ModifierIntentNoTextInput
-    | ModifierIntentShiftGroup
-    | ModifierIntentDefaultModMask
-    | AnotherModifierIntent Int
-    deriving (Show, Eq)
-
-instance Enum ModifierIntent where
-    fromEnum ModifierIntentPrimaryAccelerator = 0
-    fromEnum ModifierIntentContextMenu = 1
-    fromEnum ModifierIntentExtendSelection = 2
-    fromEnum ModifierIntentModifySelection = 3
-    fromEnum ModifierIntentNoTextInput = 4
-    fromEnum ModifierIntentShiftGroup = 5
-    fromEnum ModifierIntentDefaultModMask = 6
-    fromEnum (AnotherModifierIntent k) = k
-
-    toEnum 0 = ModifierIntentPrimaryAccelerator
-    toEnum 1 = ModifierIntentContextMenu
-    toEnum 2 = ModifierIntentExtendSelection
-    toEnum 3 = ModifierIntentModifySelection
-    toEnum 4 = ModifierIntentNoTextInput
-    toEnum 5 = ModifierIntentShiftGroup
-    toEnum 6 = ModifierIntentDefaultModMask
-    toEnum k = AnotherModifierIntent k
-
-foreign import ccall "gdk_modifier_intent_get_type" c_gdk_modifier_intent_get_type :: 
-    IO GType
-
-instance BoxedEnum ModifierIntent where
-    boxedEnumType _ = c_gdk_modifier_intent_get_type
-
--- Flags ModifierType
-
-data ModifierType = 
-      ModifierTypeShiftMask
-    | ModifierTypeLockMask
-    | ModifierTypeControlMask
-    | ModifierTypeMod1Mask
-    | ModifierTypeMod2Mask
-    | ModifierTypeMod3Mask
-    | ModifierTypeMod4Mask
-    | ModifierTypeMod5Mask
-    | ModifierTypeButton1Mask
-    | ModifierTypeButton2Mask
-    | ModifierTypeButton3Mask
-    | ModifierTypeButton4Mask
-    | ModifierTypeButton5Mask
-    | ModifierTypeModifierReserved13Mask
-    | ModifierTypeModifierReserved14Mask
-    | ModifierTypeModifierReserved15Mask
-    | ModifierTypeModifierReserved16Mask
-    | ModifierTypeModifierReserved17Mask
-    | ModifierTypeModifierReserved18Mask
-    | ModifierTypeModifierReserved19Mask
-    | ModifierTypeModifierReserved20Mask
-    | ModifierTypeModifierReserved21Mask
-    | ModifierTypeModifierReserved22Mask
-    | ModifierTypeModifierReserved23Mask
-    | ModifierTypeModifierReserved24Mask
-    | ModifierTypeModifierReserved25Mask
-    | ModifierTypeSuperMask
-    | ModifierTypeHyperMask
-    | ModifierTypeMetaMask
-    | ModifierTypeModifierReserved29Mask
-    | ModifierTypeReleaseMask
-    | ModifierTypeModifierMask
-    | AnotherModifierType Int
-    deriving (Show, Eq)
-
-instance Enum ModifierType where
-    fromEnum ModifierTypeShiftMask = 1
-    fromEnum ModifierTypeLockMask = 2
-    fromEnum ModifierTypeControlMask = 4
-    fromEnum ModifierTypeMod1Mask = 8
-    fromEnum ModifierTypeMod2Mask = 16
-    fromEnum ModifierTypeMod3Mask = 32
-    fromEnum ModifierTypeMod4Mask = 64
-    fromEnum ModifierTypeMod5Mask = 128
-    fromEnum ModifierTypeButton1Mask = 256
-    fromEnum ModifierTypeButton2Mask = 512
-    fromEnum ModifierTypeButton3Mask = 1024
-    fromEnum ModifierTypeButton4Mask = 2048
-    fromEnum ModifierTypeButton5Mask = 4096
-    fromEnum ModifierTypeModifierReserved13Mask = 8192
-    fromEnum ModifierTypeModifierReserved14Mask = 16384
-    fromEnum ModifierTypeModifierReserved15Mask = 32768
-    fromEnum ModifierTypeModifierReserved16Mask = 65536
-    fromEnum ModifierTypeModifierReserved17Mask = 131072
-    fromEnum ModifierTypeModifierReserved18Mask = 262144
-    fromEnum ModifierTypeModifierReserved19Mask = 524288
-    fromEnum ModifierTypeModifierReserved20Mask = 1048576
-    fromEnum ModifierTypeModifierReserved21Mask = 2097152
-    fromEnum ModifierTypeModifierReserved22Mask = 4194304
-    fromEnum ModifierTypeModifierReserved23Mask = 8388608
-    fromEnum ModifierTypeModifierReserved24Mask = 16777216
-    fromEnum ModifierTypeModifierReserved25Mask = 33554432
-    fromEnum ModifierTypeSuperMask = 67108864
-    fromEnum ModifierTypeHyperMask = 134217728
-    fromEnum ModifierTypeMetaMask = 268435456
-    fromEnum ModifierTypeModifierReserved29Mask = 536870912
-    fromEnum ModifierTypeReleaseMask = 1073741824
-    fromEnum ModifierTypeModifierMask = 1543512063
-    fromEnum (AnotherModifierType k) = k
-
-    toEnum 1 = ModifierTypeShiftMask
-    toEnum 2 = ModifierTypeLockMask
-    toEnum 4 = ModifierTypeControlMask
-    toEnum 8 = ModifierTypeMod1Mask
-    toEnum 16 = ModifierTypeMod2Mask
-    toEnum 32 = ModifierTypeMod3Mask
-    toEnum 64 = ModifierTypeMod4Mask
-    toEnum 128 = ModifierTypeMod5Mask
-    toEnum 256 = ModifierTypeButton1Mask
-    toEnum 512 = ModifierTypeButton2Mask
-    toEnum 1024 = ModifierTypeButton3Mask
-    toEnum 2048 = ModifierTypeButton4Mask
-    toEnum 4096 = ModifierTypeButton5Mask
-    toEnum 8192 = ModifierTypeModifierReserved13Mask
-    toEnum 16384 = ModifierTypeModifierReserved14Mask
-    toEnum 32768 = ModifierTypeModifierReserved15Mask
-    toEnum 65536 = ModifierTypeModifierReserved16Mask
-    toEnum 131072 = ModifierTypeModifierReserved17Mask
-    toEnum 262144 = ModifierTypeModifierReserved18Mask
-    toEnum 524288 = ModifierTypeModifierReserved19Mask
-    toEnum 1048576 = ModifierTypeModifierReserved20Mask
-    toEnum 2097152 = ModifierTypeModifierReserved21Mask
-    toEnum 4194304 = ModifierTypeModifierReserved22Mask
-    toEnum 8388608 = ModifierTypeModifierReserved23Mask
-    toEnum 16777216 = ModifierTypeModifierReserved24Mask
-    toEnum 33554432 = ModifierTypeModifierReserved25Mask
-    toEnum 67108864 = ModifierTypeSuperMask
-    toEnum 134217728 = ModifierTypeHyperMask
-    toEnum 268435456 = ModifierTypeMetaMask
-    toEnum 536870912 = ModifierTypeModifierReserved29Mask
-    toEnum 1073741824 = ModifierTypeReleaseMask
-    toEnum 1543512063 = ModifierTypeModifierMask
-    toEnum k = AnotherModifierType k
-
-foreign import ccall "gdk_modifier_type_get_type" c_gdk_modifier_type_get_type :: 
-    IO GType
-
-instance BoxedEnum ModifierType where
-    boxedEnumType _ = c_gdk_modifier_type_get_type
-
-instance IsGFlag ModifierType
-
--- Enum NotifyType
-
-data NotifyType = 
-      NotifyTypeAncestor
-    | NotifyTypeVirtual
-    | NotifyTypeInferior
-    | NotifyTypeNonlinear
-    | NotifyTypeNonlinearVirtual
-    | NotifyTypeUnknown
-    | AnotherNotifyType Int
-    deriving (Show, Eq)
-
-instance Enum NotifyType where
-    fromEnum NotifyTypeAncestor = 0
-    fromEnum NotifyTypeVirtual = 1
-    fromEnum NotifyTypeInferior = 2
-    fromEnum NotifyTypeNonlinear = 3
-    fromEnum NotifyTypeNonlinearVirtual = 4
-    fromEnum NotifyTypeUnknown = 5
-    fromEnum (AnotherNotifyType k) = k
-
-    toEnum 0 = NotifyTypeAncestor
-    toEnum 1 = NotifyTypeVirtual
-    toEnum 2 = NotifyTypeInferior
-    toEnum 3 = NotifyTypeNonlinear
-    toEnum 4 = NotifyTypeNonlinearVirtual
-    toEnum 5 = NotifyTypeUnknown
-    toEnum k = AnotherNotifyType k
-
-foreign import ccall "gdk_notify_type_get_type" c_gdk_notify_type_get_type :: 
-    IO GType
-
-instance BoxedEnum NotifyType where
-    boxedEnumType _ = c_gdk_notify_type_get_type
-
--- Enum OwnerChange
-
-data OwnerChange = 
-      OwnerChangeNewOwner
-    | OwnerChangeDestroy
-    | OwnerChangeClose
-    | AnotherOwnerChange Int
-    deriving (Show, Eq)
-
-instance Enum OwnerChange where
-    fromEnum OwnerChangeNewOwner = 0
-    fromEnum OwnerChangeDestroy = 1
-    fromEnum OwnerChangeClose = 2
-    fromEnum (AnotherOwnerChange k) = k
-
-    toEnum 0 = OwnerChangeNewOwner
-    toEnum 1 = OwnerChangeDestroy
-    toEnum 2 = OwnerChangeClose
-    toEnum k = AnotherOwnerChange k
-
-foreign import ccall "gdk_owner_change_get_type" c_gdk_owner_change_get_type :: 
-    IO GType
-
-instance BoxedEnum OwnerChange where
-    boxedEnumType _ = c_gdk_owner_change_get_type
-
--- struct Point
-newtype Point = Point (ForeignPtr Point)
-noPoint :: Maybe Point
-noPoint = Nothing
-
-pointReadX :: Point -> IO Int32
-pointReadX s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO Int32
-    return val
-
-pointReadY :: Point -> IO Int32
-pointReadY s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 4) :: IO Int32
-    return val
-
--- Enum PropMode
-
-data PropMode = 
-      PropModeReplace
-    | PropModePrepend
-    | PropModeAppend
-    | AnotherPropMode Int
-    deriving (Show, Eq)
-
-instance Enum PropMode where
-    fromEnum PropModeReplace = 0
-    fromEnum PropModePrepend = 1
-    fromEnum PropModeAppend = 2
-    fromEnum (AnotherPropMode k) = k
-
-    toEnum 0 = PropModeReplace
-    toEnum 1 = PropModePrepend
-    toEnum 2 = PropModeAppend
-    toEnum k = AnotherPropMode k
-
-foreign import ccall "gdk_prop_mode_get_type" c_gdk_prop_mode_get_type :: 
-    IO GType
-
-instance BoxedEnum PropMode where
-    boxedEnumType _ = c_gdk_prop_mode_get_type
-
--- Enum PropertyState
-
-data PropertyState = 
-      PropertyStateNewValue
-    | PropertyStateDelete
-    | AnotherPropertyState Int
-    deriving (Show, Eq)
-
-instance Enum PropertyState where
-    fromEnum PropertyStateNewValue = 0
-    fromEnum PropertyStateDelete = 1
-    fromEnum (AnotherPropertyState k) = k
-
-    toEnum 0 = PropertyStateNewValue
-    toEnum 1 = PropertyStateDelete
-    toEnum k = AnotherPropertyState k
-
-foreign import ccall "gdk_property_state_get_type" c_gdk_property_state_get_type :: 
-    IO GType
-
-instance BoxedEnum PropertyState where
-    boxedEnumType _ = c_gdk_property_state_get_type
-
--- struct RGBA
-newtype RGBA = RGBA (ForeignPtr RGBA)
-noRGBA :: Maybe RGBA
-noRGBA = Nothing
-
-foreign import ccall "gdk_rgba_get_type" c_gdk_rgba_get_type :: 
-    IO GType
-
-instance BoxedObject RGBA where
-    boxedType _ = c_gdk_rgba_get_type
-
-rGBAReadRed :: RGBA -> IO Double
-rGBAReadRed s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-rGBAReadGreen :: RGBA -> IO Double
-rGBAReadGreen s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-rGBAReadBlue :: RGBA -> IO Double
-rGBAReadBlue s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
-rGBAReadAlpha :: RGBA -> IO Double
-rGBAReadAlpha s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO CDouble
-    let val' = realToFrac val
-    return val'
-
--- method RGBA::copy
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "RGBA"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_rgba_copy" gdk_rgba_copy :: 
-    Ptr RGBA ->                             -- _obj : TInterface "Gdk" "RGBA"
-    IO (Ptr RGBA)
-
-
-rGBACopy ::
-    (MonadIO m) =>
-    RGBA ->                                 -- _obj
-    m RGBA
-rGBACopy _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_rgba_copy _obj'
-    checkUnexpectedReturnNULL "gdk_rgba_copy" result
-    result' <- (wrapBoxed RGBA) result
-    touchManagedPtr _obj
-    return result'
-
--- method RGBA::equal
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "p2", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "p2", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_rgba_equal" gdk_rgba_equal :: 
-    Ptr RGBA ->                             -- _obj : TInterface "Gdk" "RGBA"
-    Ptr RGBA ->                             -- p2 : TInterface "Gdk" "RGBA"
-    IO CInt
-
-
-rGBAEqual ::
-    (MonadIO m) =>
-    RGBA ->                                 -- _obj
-    RGBA ->                                 -- p2
-    m Bool
-rGBAEqual _obj p2 = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    let p2' = unsafeManagedPtrGetPtr p2
-    result <- gdk_rgba_equal _obj' p2'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    touchManagedPtr p2
-    return result'
-
--- method RGBA::free
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_rgba_free" gdk_rgba_free :: 
-    Ptr RGBA ->                             -- _obj : TInterface "Gdk" "RGBA"
-    IO ()
-
-
-rGBAFree ::
-    (MonadIO m) =>
-    RGBA ->                                 -- _obj
-    m ()
-rGBAFree _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    gdk_rgba_free _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method RGBA::hash
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_rgba_hash" gdk_rgba_hash :: 
-    Ptr RGBA ->                             -- _obj : TInterface "Gdk" "RGBA"
-    IO Word32
-
-
-rGBAHash ::
-    (MonadIO m) =>
-    RGBA ->                                 -- _obj
-    m Word32
-rGBAHash _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_rgba_hash _obj'
-    touchManagedPtr _obj
-    return result
-
--- method RGBA::parse
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_rgba_parse" gdk_rgba_parse :: 
-    Ptr RGBA ->                             -- _obj : TInterface "Gdk" "RGBA"
-    CString ->                              -- spec : TBasicType TUTF8
-    IO CInt
-
-
-rGBAParse ::
-    (MonadIO m) =>
-    RGBA ->                                 -- _obj
-    T.Text ->                               -- spec
-    m Bool
-rGBAParse _obj spec = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    spec' <- textToCString spec
-    result <- gdk_rgba_parse _obj' spec'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    freeMem spec'
-    return result'
-
--- method RGBA::to_string
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_rgba_to_string" gdk_rgba_to_string :: 
-    Ptr RGBA ->                             -- _obj : TInterface "Gdk" "RGBA"
-    IO CString
-
-
-rGBAToString ::
-    (MonadIO m) =>
-    RGBA ->                                 -- _obj
-    m T.Text
-rGBAToString _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- gdk_rgba_to_string _obj'
-    checkUnexpectedReturnNULL "gdk_rgba_to_string" result
-    result' <- cstringToText result
-    freeMem result
-    touchManagedPtr _obj
-    return result'
-
--- struct Rectangle
-newtype Rectangle = Rectangle (ForeignPtr Rectangle)
-noRectangle :: Maybe Rectangle
-noRectangle = Nothing
-
-foreign import ccall "gdk_rectangle_get_type" c_gdk_rectangle_get_type :: 
-    IO GType
-
-instance BoxedObject Rectangle where
-    boxedType _ = c_gdk_rectangle_get_type
-
-rectangleReadX :: Rectangle -> IO Int32
-rectangleReadX s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO Int32
-    return val
-
-rectangleReadY :: Rectangle -> IO Int32
-rectangleReadY s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 4) :: IO Int32
-    return val
-
-rectangleReadWidth :: Rectangle -> IO Int32
-rectangleReadWidth s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO Int32
-    return val
-
-rectangleReadHeight :: Rectangle -> IO Int32
-rectangleReadHeight s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 12) :: IO Int32
-    return val
-
--- method Rectangle::intersect
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src2", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src2", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_rectangle_intersect" gdk_rectangle_intersect :: 
-    Ptr Rectangle ->                        -- _obj : TInterface "Gdk" "Rectangle"
-    Ptr Rectangle ->                        -- src2 : TInterface "Gdk" "Rectangle"
-    Ptr Rectangle ->                        -- dest : TInterface "Gdk" "Rectangle"
-    IO CInt
-
-
-rectangleIntersect ::
-    (MonadIO m) =>
-    Rectangle ->                            -- _obj
-    Rectangle ->                            -- src2
-    m (Bool,Rectangle)
-rectangleIntersect _obj src2 = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    let src2' = unsafeManagedPtrGetPtr src2
-    dest <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
-    result <- gdk_rectangle_intersect _obj' src2' dest
-    let result' = (/= 0) result
-    dest' <- (wrapBoxed Rectangle) dest
-    touchManagedPtr _obj
-    touchManagedPtr src2
-    return (result', dest')
-
--- method Rectangle::union
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src2", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src2", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_rectangle_union" gdk_rectangle_union :: 
-    Ptr Rectangle ->                        -- _obj : TInterface "Gdk" "Rectangle"
-    Ptr Rectangle ->                        -- src2 : TInterface "Gdk" "Rectangle"
-    Ptr Rectangle ->                        -- dest : TInterface "Gdk" "Rectangle"
-    IO ()
-
-
-rectangleUnion ::
-    (MonadIO m) =>
-    Rectangle ->                            -- _obj
-    Rectangle ->                            -- src2
-    m (Rectangle)
-rectangleUnion _obj src2 = liftIO $ do
-    let _obj' = unsafeManagedPtrGetPtr _obj
-    let src2' = unsafeManagedPtrGetPtr src2
-    dest <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
-    gdk_rectangle_union _obj' src2' dest
-    dest' <- (wrapBoxed Rectangle) dest
-    touchManagedPtr _obj
-    touchManagedPtr src2
-    return dest'
-
--- object Screen 
-newtype Screen = Screen (ForeignPtr Screen)
-noScreen :: Maybe Screen
-noScreen = Nothing
-
-foreign import ccall "gdk_screen_get_type"
-    c_gdk_screen_get_type :: IO GType
-
-type instance ParentTypes Screen = '[GObject.Object]
-
-instance GObject Screen where
-    gobjectIsInitiallyUnowned _ = False
-    gobjectType _ = c_gdk_screen_get_type
-    
-
-class GObject o => ScreenK o
-instance (GObject o, IsDescendantOf Screen o) => ScreenK o
-
-toScreen :: ScreenK o => o -> IO Screen
-toScreen = unsafeCastTo Screen
-
--- method Screen::get_active_window
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_active_window" gdk_screen_get_active_window :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO (Ptr Window)
-
-
-screenGetActiveWindow ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Window
-screenGetActiveWindow _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_active_window _obj'
-    checkUnexpectedReturnNULL "gdk_screen_get_active_window" result
-    result' <- (wrapObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method Screen::get_display
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Display"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_display" gdk_screen_get_display :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO (Ptr Display)
-
-
-screenGetDisplay ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Display
-screenGetDisplay _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_display _obj'
-    checkUnexpectedReturnNULL "gdk_screen_get_display" result
-    result' <- (newObject Display) result
-    touchManagedPtr _obj
-    return result'
-
--- method Screen::get_font_options
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "FontOptions"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_font_options" gdk_screen_get_font_options :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO (Ptr Cairo.FontOptions)
-
-
-screenGetFontOptions ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Cairo.FontOptions
-screenGetFontOptions _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_font_options _obj'
-    checkUnexpectedReturnNULL "gdk_screen_get_font_options" result
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    result' <- (\x -> Cairo.FontOptions <$> newForeignPtr_ x) result
-    touchManagedPtr _obj
-    return result'
-
--- method Screen::get_height
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_height" gdk_screen_get_height :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO Int32
-
-
-screenGetHeight ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Int32
-screenGetHeight _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_height _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Screen::get_height_mm
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_height_mm" gdk_screen_get_height_mm :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO Int32
-
-
-screenGetHeightMm ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Int32
-screenGetHeightMm _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_height_mm _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Screen::get_monitor_at_point
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_monitor_at_point" gdk_screen_get_monitor_at_point :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    IO Int32
-
-
-screenGetMonitorAtPoint ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    m Int32
-screenGetMonitorAtPoint _obj x y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_monitor_at_point _obj' x y
-    touchManagedPtr _obj
-    return result
-
--- method Screen::get_monitor_at_window
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_monitor_at_window" gdk_screen_get_monitor_at_window :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    IO Int32
-
-
-screenGetMonitorAtWindow ::
-    (MonadIO m, ScreenK a, WindowK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- window
-    m Int32
-screenGetMonitorAtWindow _obj window = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let window' = unsafeManagedPtrCastPtr window
-    result <- gdk_screen_get_monitor_at_window _obj' window'
-    touchManagedPtr _obj
-    touchManagedPtr window
-    return result
-
--- method Screen::get_monitor_geometry
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_monitor_geometry" gdk_screen_get_monitor_geometry :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    Int32 ->                                -- monitor_num : TBasicType TInt32
-    Ptr Rectangle ->                        -- dest : TInterface "Gdk" "Rectangle"
-    IO ()
-
-
-screenGetMonitorGeometry ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- monitor_num
-    m (Rectangle)
-screenGetMonitorGeometry _obj monitor_num = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    dest <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
-    gdk_screen_get_monitor_geometry _obj' monitor_num dest
-    dest' <- (wrapBoxed Rectangle) dest
-    touchManagedPtr _obj
-    return dest'
-
--- method Screen::get_monitor_height_mm
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_monitor_height_mm" gdk_screen_get_monitor_height_mm :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    Int32 ->                                -- monitor_num : TBasicType TInt32
-    IO Int32
-
-
-screenGetMonitorHeightMm ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- monitor_num
-    m Int32
-screenGetMonitorHeightMm _obj monitor_num = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_monitor_height_mm _obj' monitor_num
-    touchManagedPtr _obj
-    return result
-
--- method Screen::get_monitor_plug_name
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_monitor_plug_name" gdk_screen_get_monitor_plug_name :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    Int32 ->                                -- monitor_num : TBasicType TInt32
-    IO CString
-
-
-screenGetMonitorPlugName ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- monitor_num
-    m T.Text
-screenGetMonitorPlugName _obj monitor_num = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_monitor_plug_name _obj' monitor_num
-    checkUnexpectedReturnNULL "gdk_screen_get_monitor_plug_name" result
-    result' <- cstringToText result
-    freeMem result
-    touchManagedPtr _obj
-    return result'
-
--- method Screen::get_monitor_scale_factor
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_monitor_scale_factor" gdk_screen_get_monitor_scale_factor :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    Int32 ->                                -- monitor_num : TBasicType TInt32
-    IO Int32
-
-
-screenGetMonitorScaleFactor ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- monitor_num
-    m Int32
-screenGetMonitorScaleFactor _obj monitor_num = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_monitor_scale_factor _obj' monitor_num
-    touchManagedPtr _obj
-    return result
-
--- method Screen::get_monitor_width_mm
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_monitor_width_mm" gdk_screen_get_monitor_width_mm :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    Int32 ->                                -- monitor_num : TBasicType TInt32
-    IO Int32
-
-
-screenGetMonitorWidthMm ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- monitor_num
-    m Int32
-screenGetMonitorWidthMm _obj monitor_num = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_monitor_width_mm _obj' monitor_num
-    touchManagedPtr _obj
-    return result
-
--- method Screen::get_monitor_workarea
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_monitor_workarea" gdk_screen_get_monitor_workarea :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    Int32 ->                                -- monitor_num : TBasicType TInt32
-    Ptr Rectangle ->                        -- dest : TInterface "Gdk" "Rectangle"
-    IO ()
-
-
-screenGetMonitorWorkarea ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- monitor_num
-    m (Rectangle)
-screenGetMonitorWorkarea _obj monitor_num = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    dest <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
-    gdk_screen_get_monitor_workarea _obj' monitor_num dest
-    dest' <- (wrapBoxed Rectangle) dest
-    touchManagedPtr _obj
-    return dest'
-
--- method Screen::get_n_monitors
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_n_monitors" gdk_screen_get_n_monitors :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO Int32
-
-
-screenGetNMonitors ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Int32
-screenGetNMonitors _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_n_monitors _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Screen::get_number
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_number" gdk_screen_get_number :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO Int32
-
-
-screenGetNumber ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Int32
-screenGetNumber _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_number _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Screen::get_primary_monitor
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_primary_monitor" gdk_screen_get_primary_monitor :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO Int32
-
-
-screenGetPrimaryMonitor ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Int32
-screenGetPrimaryMonitor _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_primary_monitor _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Screen::get_resolution
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TDouble
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_resolution" gdk_screen_get_resolution :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO CDouble
-
-
-screenGetResolution ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Double
-screenGetResolution _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_resolution _obj'
-    let result' = realToFrac result
-    touchManagedPtr _obj
-    return result'
-
--- method Screen::get_rgba_visual
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Visual"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_rgba_visual" gdk_screen_get_rgba_visual :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO (Ptr Visual)
-
-
-screenGetRgbaVisual ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Visual
-screenGetRgbaVisual _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_rgba_visual _obj'
-    checkUnexpectedReturnNULL "gdk_screen_get_rgba_visual" result
-    result' <- (newObject Visual) result
-    touchManagedPtr _obj
-    return result'
-
--- method Screen::get_root_window
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_root_window" gdk_screen_get_root_window :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO (Ptr Window)
-
-
-screenGetRootWindow ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Window
-screenGetRootWindow _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_root_window _obj'
-    checkUnexpectedReturnNULL "gdk_screen_get_root_window" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method Screen::get_setting
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_setting" gdk_screen_get_setting :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    CString ->                              -- name : TBasicType TUTF8
-    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
-    IO CInt
-
-
-screenGetSetting ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- name
-    GValue ->                               -- value
-    m Bool
-screenGetSetting _obj name value = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    name' <- textToCString name
-    let value' = unsafeManagedPtrGetPtr value
-    result <- gdk_screen_get_setting _obj' name' value'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    touchManagedPtr value
-    freeMem name'
-    return result'
-
--- method Screen::get_system_visual
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Visual"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_system_visual" gdk_screen_get_system_visual :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO (Ptr Visual)
-
-
-screenGetSystemVisual ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Visual
-screenGetSystemVisual _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_system_visual _obj'
-    checkUnexpectedReturnNULL "gdk_screen_get_system_visual" result
-    result' <- (newObject Visual) result
-    touchManagedPtr _obj
-    return result'
-
--- method Screen::get_toplevel_windows
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TGList (TInterface "Gdk" "Window")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_toplevel_windows" gdk_screen_get_toplevel_windows :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO (Ptr (GList (Ptr Window)))
-
-
-screenGetToplevelWindows ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m [Window]
-screenGetToplevelWindows _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_toplevel_windows _obj'
-    checkUnexpectedReturnNULL "gdk_screen_get_toplevel_windows" result
-    result' <- unpackGList result
-    result'' <- mapM (newObject Window) result'
-    g_list_free result
-    touchManagedPtr _obj
-    return result''
-
--- method Screen::get_width
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_width" gdk_screen_get_width :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO Int32
-
-
-screenGetWidth ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Int32
-screenGetWidth _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_width _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Screen::get_width_mm
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_width_mm" gdk_screen_get_width_mm :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO Int32
-
-
-screenGetWidthMm ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Int32
-screenGetWidthMm _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_width_mm _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Screen::get_window_stack
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TGList (TInterface "Gdk" "Window")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_window_stack" gdk_screen_get_window_stack :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO (Ptr (GList (Ptr Window)))
-
-
-screenGetWindowStack ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m [Window]
-screenGetWindowStack _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_window_stack _obj'
-    checkUnexpectedReturnNULL "gdk_screen_get_window_stack" result
-    result' <- unpackGList result
-    result'' <- mapM (wrapObject Window) result'
-    g_list_free result
-    touchManagedPtr _obj
-    return result''
-
--- method Screen::is_composited
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_is_composited" gdk_screen_is_composited :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO CInt
-
-
-screenIsComposited ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Bool
-screenIsComposited _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_is_composited _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Screen::list_visuals
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TGList (TInterface "Gdk" "Visual")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_list_visuals" gdk_screen_list_visuals :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO (Ptr (GList (Ptr Visual)))
-
-
-screenListVisuals ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m [Visual]
-screenListVisuals _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_list_visuals _obj'
-    checkUnexpectedReturnNULL "gdk_screen_list_visuals" result
-    result' <- unpackGList result
-    result'' <- mapM (newObject Visual) result'
-    g_list_free result
-    touchManagedPtr _obj
-    return result''
-
--- method Screen::make_display_name
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_make_display_name" gdk_screen_make_display_name :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    IO CString
-
-
-screenMakeDisplayName ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m T.Text
-screenMakeDisplayName _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_make_display_name _obj'
-    checkUnexpectedReturnNULL "gdk_screen_make_display_name" result
-    result' <- cstringToText result
-    freeMem result
-    touchManagedPtr _obj
-    return result'
-
--- method Screen::set_font_options
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "options", argType = TInterface "cairo" "FontOptions", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "options", argType = TInterface "cairo" "FontOptions", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_set_font_options" gdk_screen_set_font_options :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    Ptr Cairo.FontOptions ->                -- options : TInterface "cairo" "FontOptions"
-    IO ()
-
-
-screenSetFontOptions ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Maybe (Cairo.FontOptions) ->            -- options
-    m ()
-screenSetFontOptions _obj options = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeOptions <- case options of
-        Nothing -> return nullPtr
-        Just jOptions -> do
-            let jOptions' = unsafeManagedPtrGetPtr jOptions
-            return jOptions'
-    gdk_screen_set_font_options _obj' maybeOptions
-    touchManagedPtr _obj
-    whenJust options touchManagedPtr
-    return ()
-
--- method Screen::set_resolution
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dpi", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dpi", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_set_resolution" gdk_screen_set_resolution :: 
-    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
-    CDouble ->                              -- dpi : TBasicType TDouble
-    IO ()
-
-
-screenSetResolution ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Double ->                               -- dpi
-    m ()
-screenSetResolution _obj dpi = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let dpi' = realToFrac dpi
-    gdk_screen_set_resolution _obj' dpi'
-    touchManagedPtr _obj
-    return ()
-
--- method Screen::get_default
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "Screen"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_get_default" gdk_screen_get_default :: 
-    IO (Ptr Screen)
-
-
-screenGetDefault ::
-    (MonadIO m) =>
-    m Screen
-screenGetDefault  = liftIO $ do
-    result <- gdk_screen_get_default
-    checkUnexpectedReturnNULL "gdk_screen_get_default" result
-    result' <- (newObject Screen) result
-    return result'
-
--- method Screen::height
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_height" gdk_screen_height :: 
-    IO Int32
-
-
-screenHeight ::
-    (MonadIO m) =>
-    m Int32
-screenHeight  = liftIO $ do
-    result <- gdk_screen_height
-    return result
-
--- method Screen::height_mm
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_height_mm" gdk_screen_height_mm :: 
-    IO Int32
-
-
-screenHeightMm ::
-    (MonadIO m) =>
-    m Int32
-screenHeightMm  = liftIO $ do
-    result <- gdk_screen_height_mm
-    return result
-
--- method Screen::width
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_width" gdk_screen_width :: 
-    IO Int32
-
-
-screenWidth ::
-    (MonadIO m) =>
-    m Int32
-screenWidth  = liftIO $ do
-    result <- gdk_screen_width
-    return result
-
--- method Screen::width_mm
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_screen_width_mm" gdk_screen_width_mm :: 
-    IO Int32
-
-
-screenWidthMm ::
-    (MonadIO m) =>
-    m Int32
-screenWidthMm  = liftIO $ do
-    result <- gdk_screen_width_mm
-    return result
-
--- signal Screen::composited-changed
-type ScreenCompositedChangedCallback =
-    IO ()
-
-noScreenCompositedChangedCallback :: Maybe ScreenCompositedChangedCallback
-noScreenCompositedChangedCallback = Nothing
-
-type ScreenCompositedChangedCallbackC =
-    Ptr () ->                               -- object
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkScreenCompositedChangedCallback :: ScreenCompositedChangedCallbackC -> IO (FunPtr ScreenCompositedChangedCallbackC)
-
-screenCompositedChangedClosure :: ScreenCompositedChangedCallback -> IO Closure
-screenCompositedChangedClosure cb = newCClosure =<< mkScreenCompositedChangedCallback wrapped
-    where wrapped = screenCompositedChangedCallbackWrapper cb
-
-screenCompositedChangedCallbackWrapper ::
-    ScreenCompositedChangedCallback ->
-    Ptr () ->
-    Ptr () ->
-    IO ()
-screenCompositedChangedCallbackWrapper _cb _ _ = do
-    _cb 
-
-onScreenCompositedChanged :: (GObject a, MonadIO m) => a -> ScreenCompositedChangedCallback -> m SignalHandlerId
-onScreenCompositedChanged obj cb = liftIO $ connectScreenCompositedChanged obj cb SignalConnectBefore
-afterScreenCompositedChanged :: (GObject a, MonadIO m) => a -> ScreenCompositedChangedCallback -> m SignalHandlerId
-afterScreenCompositedChanged obj cb = connectScreenCompositedChanged obj cb SignalConnectAfter
-
-connectScreenCompositedChanged :: (GObject a, MonadIO m) =>
-                                  a -> ScreenCompositedChangedCallback -> SignalConnectMode -> m SignalHandlerId
-connectScreenCompositedChanged obj cb after = liftIO $ do
-    cb' <- mkScreenCompositedChangedCallback (screenCompositedChangedCallbackWrapper cb)
-    connectSignalFunPtr obj "composited-changed" cb' after
-
--- signal Screen::monitors-changed
-type ScreenMonitorsChangedCallback =
-    IO ()
-
-noScreenMonitorsChangedCallback :: Maybe ScreenMonitorsChangedCallback
-noScreenMonitorsChangedCallback = Nothing
-
-type ScreenMonitorsChangedCallbackC =
-    Ptr () ->                               -- object
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkScreenMonitorsChangedCallback :: ScreenMonitorsChangedCallbackC -> IO (FunPtr ScreenMonitorsChangedCallbackC)
-
-screenMonitorsChangedClosure :: ScreenMonitorsChangedCallback -> IO Closure
-screenMonitorsChangedClosure cb = newCClosure =<< mkScreenMonitorsChangedCallback wrapped
-    where wrapped = screenMonitorsChangedCallbackWrapper cb
-
-screenMonitorsChangedCallbackWrapper ::
-    ScreenMonitorsChangedCallback ->
-    Ptr () ->
-    Ptr () ->
-    IO ()
-screenMonitorsChangedCallbackWrapper _cb _ _ = do
-    _cb 
-
-onScreenMonitorsChanged :: (GObject a, MonadIO m) => a -> ScreenMonitorsChangedCallback -> m SignalHandlerId
-onScreenMonitorsChanged obj cb = liftIO $ connectScreenMonitorsChanged obj cb SignalConnectBefore
-afterScreenMonitorsChanged :: (GObject a, MonadIO m) => a -> ScreenMonitorsChangedCallback -> m SignalHandlerId
-afterScreenMonitorsChanged obj cb = connectScreenMonitorsChanged obj cb SignalConnectAfter
-
-connectScreenMonitorsChanged :: (GObject a, MonadIO m) =>
-                                a -> ScreenMonitorsChangedCallback -> SignalConnectMode -> m SignalHandlerId
-connectScreenMonitorsChanged obj cb after = liftIO $ do
-    cb' <- mkScreenMonitorsChangedCallback (screenMonitorsChangedCallbackWrapper cb)
-    connectSignalFunPtr obj "monitors-changed" cb' after
-
--- signal Screen::size-changed
-type ScreenSizeChangedCallback =
-    IO ()
-
-noScreenSizeChangedCallback :: Maybe ScreenSizeChangedCallback
-noScreenSizeChangedCallback = Nothing
-
-type ScreenSizeChangedCallbackC =
-    Ptr () ->                               -- object
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkScreenSizeChangedCallback :: ScreenSizeChangedCallbackC -> IO (FunPtr ScreenSizeChangedCallbackC)
-
-screenSizeChangedClosure :: ScreenSizeChangedCallback -> IO Closure
-screenSizeChangedClosure cb = newCClosure =<< mkScreenSizeChangedCallback wrapped
-    where wrapped = screenSizeChangedCallbackWrapper cb
-
-screenSizeChangedCallbackWrapper ::
-    ScreenSizeChangedCallback ->
-    Ptr () ->
-    Ptr () ->
-    IO ()
-screenSizeChangedCallbackWrapper _cb _ _ = do
-    _cb 
-
-onScreenSizeChanged :: (GObject a, MonadIO m) => a -> ScreenSizeChangedCallback -> m SignalHandlerId
-onScreenSizeChanged obj cb = liftIO $ connectScreenSizeChanged obj cb SignalConnectBefore
-afterScreenSizeChanged :: (GObject a, MonadIO m) => a -> ScreenSizeChangedCallback -> m SignalHandlerId
-afterScreenSizeChanged obj cb = connectScreenSizeChanged obj cb SignalConnectAfter
-
-connectScreenSizeChanged :: (GObject a, MonadIO m) =>
-                            a -> ScreenSizeChangedCallback -> SignalConnectMode -> m SignalHandlerId
-connectScreenSizeChanged obj cb after = liftIO $ do
-    cb' <- mkScreenSizeChangedCallback (screenSizeChangedCallbackWrapper cb)
-    connectSignalFunPtr obj "size-changed" cb' after
-
--- Enum ScrollDirection
-
-data ScrollDirection = 
-      ScrollDirectionUp
-    | ScrollDirectionDown
-    | ScrollDirectionLeft
-    | ScrollDirectionRight
-    | ScrollDirectionSmooth
-    | AnotherScrollDirection Int
-    deriving (Show, Eq)
-
-instance Enum ScrollDirection where
-    fromEnum ScrollDirectionUp = 0
-    fromEnum ScrollDirectionDown = 1
-    fromEnum ScrollDirectionLeft = 2
-    fromEnum ScrollDirectionRight = 3
-    fromEnum ScrollDirectionSmooth = 4
-    fromEnum (AnotherScrollDirection k) = k
-
-    toEnum 0 = ScrollDirectionUp
-    toEnum 1 = ScrollDirectionDown
-    toEnum 2 = ScrollDirectionLeft
-    toEnum 3 = ScrollDirectionRight
-    toEnum 4 = ScrollDirectionSmooth
-    toEnum k = AnotherScrollDirection k
-
-foreign import ccall "gdk_scroll_direction_get_type" c_gdk_scroll_direction_get_type :: 
-    IO GType
-
-instance BoxedEnum ScrollDirection where
-    boxedEnumType _ = c_gdk_scroll_direction_get_type
-
--- Enum SettingAction
-
-data SettingAction = 
-      SettingActionNew
-    | SettingActionChanged
-    | SettingActionDeleted
-    | AnotherSettingAction Int
-    deriving (Show, Eq)
-
-instance Enum SettingAction where
-    fromEnum SettingActionNew = 0
-    fromEnum SettingActionChanged = 1
-    fromEnum SettingActionDeleted = 2
-    fromEnum (AnotherSettingAction k) = k
-
-    toEnum 0 = SettingActionNew
-    toEnum 1 = SettingActionChanged
-    toEnum 2 = SettingActionDeleted
-    toEnum k = AnotherSettingAction k
-
-foreign import ccall "gdk_setting_action_get_type" c_gdk_setting_action_get_type :: 
-    IO GType
-
-instance BoxedEnum SettingAction where
-    boxedEnumType _ = c_gdk_setting_action_get_type
-
--- Enum Status
-
-data Status = 
-      StatusOk
-    | StatusError
-    | StatusErrorParam
-    | StatusErrorFile
-    | StatusErrorMem
-    | AnotherStatus Int
-    deriving (Show, Eq)
-
-instance Enum Status where
-    fromEnum StatusOk = 0
-    fromEnum StatusError = -1
-    fromEnum StatusErrorParam = -2
-    fromEnum StatusErrorFile = -3
-    fromEnum StatusErrorMem = -4
-    fromEnum (AnotherStatus k) = k
-
-    toEnum -4 = StatusErrorMem
-    toEnum -3 = StatusErrorFile
-    toEnum -2 = StatusErrorParam
-    toEnum -1 = StatusError
-    toEnum 0 = StatusOk
-    toEnum k = AnotherStatus k
-
-foreign import ccall "gdk_status_get_type" c_gdk_status_get_type :: 
-    IO GType
-
-instance BoxedEnum Status where
-    boxedEnumType _ = c_gdk_status_get_type
-
--- struct TimeCoord
-newtype TimeCoord = TimeCoord (ForeignPtr TimeCoord)
-noTimeCoord :: Maybe TimeCoord
-noTimeCoord = Nothing
-
-timeCoordReadTime :: TimeCoord -> IO Word32
-timeCoordReadTime s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO Word32
-    return val
-
--- XXX Skipped getter for "TimeCoord:axes" :: Not implemented: "Don't know how to unpack C array of type TCArray False 128 (-1) (TBasicType TDouble)"
-
--- Enum TouchpadGesturePhase
-
-data TouchpadGesturePhase = 
-      TouchpadGesturePhaseBegin
-    | TouchpadGesturePhaseUpdate
-    | TouchpadGesturePhaseEnd
-    | TouchpadGesturePhaseCancel
-    | AnotherTouchpadGesturePhase Int
-    deriving (Show, Eq)
-
-instance Enum TouchpadGesturePhase where
-    fromEnum TouchpadGesturePhaseBegin = 0
-    fromEnum TouchpadGesturePhaseUpdate = 1
-    fromEnum TouchpadGesturePhaseEnd = 2
-    fromEnum TouchpadGesturePhaseCancel = 3
-    fromEnum (AnotherTouchpadGesturePhase k) = k
-
-    toEnum 0 = TouchpadGesturePhaseBegin
-    toEnum 1 = TouchpadGesturePhaseUpdate
-    toEnum 2 = TouchpadGesturePhaseEnd
-    toEnum 3 = TouchpadGesturePhaseCancel
-    toEnum k = AnotherTouchpadGesturePhase k
-
-foreign import ccall "gdk_touchpad_gesture_phase_get_type" c_gdk_touchpad_gesture_phase_get_type :: 
-    IO GType
-
-instance BoxedEnum TouchpadGesturePhase where
-    boxedEnumType _ = c_gdk_touchpad_gesture_phase_get_type
-
--- Enum VisibilityState
-
-data VisibilityState = 
-      VisibilityStateUnobscured
-    | VisibilityStatePartial
-    | VisibilityStateFullyObscured
-    | AnotherVisibilityState Int
-    deriving (Show, Eq)
-
-instance Enum VisibilityState where
-    fromEnum VisibilityStateUnobscured = 0
-    fromEnum VisibilityStatePartial = 1
-    fromEnum VisibilityStateFullyObscured = 2
-    fromEnum (AnotherVisibilityState k) = k
-
-    toEnum 0 = VisibilityStateUnobscured
-    toEnum 1 = VisibilityStatePartial
-    toEnum 2 = VisibilityStateFullyObscured
-    toEnum k = AnotherVisibilityState k
-
-foreign import ccall "gdk_visibility_state_get_type" c_gdk_visibility_state_get_type :: 
-    IO GType
-
-instance BoxedEnum VisibilityState where
-    boxedEnumType _ = c_gdk_visibility_state_get_type
-
--- object Visual 
-newtype Visual = Visual (ForeignPtr Visual)
-noVisual :: Maybe Visual
-noVisual = Nothing
-
-foreign import ccall "gdk_visual_get_type"
-    c_gdk_visual_get_type :: IO GType
-
-type instance ParentTypes Visual = '[GObject.Object]
-
-instance GObject Visual where
-    gobjectIsInitiallyUnowned _ = False
-    gobjectType _ = c_gdk_visual_get_type
-    
-
-class GObject o => VisualK o
-instance (GObject o, IsDescendantOf Visual o) => VisualK o
-
-toVisual :: VisualK o => o -> IO Visual
-toVisual = unsafeCastTo Visual
-
--- method Visual::get_bits_per_rgb
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_visual_get_bits_per_rgb" gdk_visual_get_bits_per_rgb :: 
-    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
-    IO Int32
-
-
-visualGetBitsPerRgb ::
-    (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m Int32
-visualGetBitsPerRgb _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_visual_get_bits_per_rgb _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Visual::get_blue_pixel_details
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "shift", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "precision", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_visual_get_blue_pixel_details" gdk_visual_get_blue_pixel_details :: 
-    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
-    Ptr Word32 ->                           -- mask : TBasicType TUInt32
-    Ptr Int32 ->                            -- shift : TBasicType TInt32
-    Ptr Int32 ->                            -- precision : TBasicType TInt32
-    IO ()
-
-
-visualGetBluePixelDetails ::
-    (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m (Word32,Int32,Int32)
-visualGetBluePixelDetails _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    mask <- allocMem :: IO (Ptr Word32)
-    shift <- allocMem :: IO (Ptr Int32)
-    precision <- allocMem :: IO (Ptr Int32)
-    gdk_visual_get_blue_pixel_details _obj' mask shift precision
-    mask' <- peek mask
-    shift' <- peek shift
-    precision' <- peek precision
-    touchManagedPtr _obj
-    freeMem mask
-    freeMem shift
-    freeMem precision
-    return (mask', shift', precision')
-
--- method Visual::get_byte_order
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "ByteOrder"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_visual_get_byte_order" gdk_visual_get_byte_order :: 
-    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
-    IO CUInt
-
-
-visualGetByteOrder ::
-    (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m ByteOrder
-visualGetByteOrder _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_visual_get_byte_order _obj'
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    return result'
-
--- method Visual::get_colormap_size
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_visual_get_colormap_size" gdk_visual_get_colormap_size :: 
-    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
-    IO Int32
-
-
-visualGetColormapSize ::
-    (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m Int32
-visualGetColormapSize _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_visual_get_colormap_size _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Visual::get_depth
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_visual_get_depth" gdk_visual_get_depth :: 
-    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
-    IO Int32
-
-
-visualGetDepth ::
-    (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m Int32
-visualGetDepth _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_visual_get_depth _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Visual::get_green_pixel_details
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "shift", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "precision", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_visual_get_green_pixel_details" gdk_visual_get_green_pixel_details :: 
-    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
-    Ptr Word32 ->                           -- mask : TBasicType TUInt32
-    Ptr Int32 ->                            -- shift : TBasicType TInt32
-    Ptr Int32 ->                            -- precision : TBasicType TInt32
-    IO ()
-
-
-visualGetGreenPixelDetails ::
-    (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m (Word32,Int32,Int32)
-visualGetGreenPixelDetails _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    mask <- allocMem :: IO (Ptr Word32)
-    shift <- allocMem :: IO (Ptr Int32)
-    precision <- allocMem :: IO (Ptr Int32)
-    gdk_visual_get_green_pixel_details _obj' mask shift precision
-    mask' <- peek mask
-    shift' <- peek shift
-    precision' <- peek precision
-    touchManagedPtr _obj
-    freeMem mask
-    freeMem shift
-    freeMem precision
-    return (mask', shift', precision')
-
--- method Visual::get_red_pixel_details
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "shift", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "precision", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_visual_get_red_pixel_details" gdk_visual_get_red_pixel_details :: 
-    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
-    Ptr Word32 ->                           -- mask : TBasicType TUInt32
-    Ptr Int32 ->                            -- shift : TBasicType TInt32
-    Ptr Int32 ->                            -- precision : TBasicType TInt32
-    IO ()
-
-
-visualGetRedPixelDetails ::
-    (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m (Word32,Int32,Int32)
-visualGetRedPixelDetails _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    mask <- allocMem :: IO (Ptr Word32)
-    shift <- allocMem :: IO (Ptr Int32)
-    precision <- allocMem :: IO (Ptr Int32)
-    gdk_visual_get_red_pixel_details _obj' mask shift precision
-    mask' <- peek mask
-    shift' <- peek shift
-    precision' <- peek precision
-    touchManagedPtr _obj
-    freeMem mask
-    freeMem shift
-    freeMem precision
-    return (mask', shift', precision')
-
--- method Visual::get_screen
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Screen"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_visual_get_screen" gdk_visual_get_screen :: 
-    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
-    IO (Ptr Screen)
-
-
-visualGetScreen ::
-    (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m Screen
-visualGetScreen _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_visual_get_screen _obj'
-    checkUnexpectedReturnNULL "gdk_visual_get_screen" result
-    result' <- (newObject Screen) result
-    touchManagedPtr _obj
-    return result'
-
--- method Visual::get_visual_type
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "VisualType"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_visual_get_visual_type" gdk_visual_get_visual_type :: 
-    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
-    IO CUInt
-
-
-visualGetVisualType ::
-    (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m VisualType
-visualGetVisualType _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_visual_get_visual_type _obj'
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    return result'
-
--- method Visual::get_best
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "Visual"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_visual_get_best" gdk_visual_get_best :: 
-    IO (Ptr Visual)
-
-
-visualGetBest ::
-    (MonadIO m) =>
-    m Visual
-visualGetBest  = liftIO $ do
-    result <- gdk_visual_get_best
-    checkUnexpectedReturnNULL "gdk_visual_get_best" result
-    result' <- (newObject Visual) result
-    return result'
-
--- method Visual::get_best_depth
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_visual_get_best_depth" gdk_visual_get_best_depth :: 
-    IO Int32
-
-
-visualGetBestDepth ::
-    (MonadIO m) =>
-    m Int32
-visualGetBestDepth  = liftIO $ do
-    result <- gdk_visual_get_best_depth
-    return result
-
--- method Visual::get_best_type
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "VisualType"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_visual_get_best_type" gdk_visual_get_best_type :: 
-    IO CUInt
-
-
-visualGetBestType ::
-    (MonadIO m) =>
-    m VisualType
-visualGetBestType  = liftIO $ do
-    result <- gdk_visual_get_best_type
-    let result' = (toEnum . fromIntegral) result
-    return result'
-
--- method Visual::get_best_with_both
--- method type : MemberFunction
--- Args : [Arg {argName = "depth", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "visual_type", argType = TInterface "Gdk" "VisualType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "depth", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "visual_type", argType = TInterface "Gdk" "VisualType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Visual"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_visual_get_best_with_both" gdk_visual_get_best_with_both :: 
-    Int32 ->                                -- depth : TBasicType TInt32
-    CUInt ->                                -- visual_type : TInterface "Gdk" "VisualType"
-    IO (Ptr Visual)
-
-
-visualGetBestWithBoth ::
-    (MonadIO m) =>
-    Int32 ->                                -- depth
-    VisualType ->                           -- visual_type
-    m Visual
-visualGetBestWithBoth depth visual_type = liftIO $ do
-    let visual_type' = (fromIntegral . fromEnum) visual_type
-    result <- gdk_visual_get_best_with_both depth visual_type'
-    checkUnexpectedReturnNULL "gdk_visual_get_best_with_both" result
-    result' <- (newObject Visual) result
-    return result'
-
--- method Visual::get_best_with_depth
--- method type : MemberFunction
--- Args : [Arg {argName = "depth", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "depth", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Visual"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_visual_get_best_with_depth" gdk_visual_get_best_with_depth :: 
-    Int32 ->                                -- depth : TBasicType TInt32
-    IO (Ptr Visual)
-
-
-visualGetBestWithDepth ::
-    (MonadIO m) =>
-    Int32 ->                                -- depth
-    m Visual
-visualGetBestWithDepth depth = liftIO $ do
-    result <- gdk_visual_get_best_with_depth depth
-    checkUnexpectedReturnNULL "gdk_visual_get_best_with_depth" result
-    result' <- (newObject Visual) result
-    return result'
-
--- method Visual::get_best_with_type
--- method type : MemberFunction
--- Args : [Arg {argName = "visual_type", argType = TInterface "Gdk" "VisualType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "visual_type", argType = TInterface "Gdk" "VisualType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Visual"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_visual_get_best_with_type" gdk_visual_get_best_with_type :: 
-    CUInt ->                                -- visual_type : TInterface "Gdk" "VisualType"
-    IO (Ptr Visual)
-
-
-visualGetBestWithType ::
-    (MonadIO m) =>
-    VisualType ->                           -- visual_type
-    m Visual
-visualGetBestWithType visual_type = liftIO $ do
-    let visual_type' = (fromIntegral . fromEnum) visual_type
-    result <- gdk_visual_get_best_with_type visual_type'
-    checkUnexpectedReturnNULL "gdk_visual_get_best_with_type" result
-    result' <- (newObject Visual) result
-    return result'
-
--- method Visual::get_system
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "Visual"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_visual_get_system" gdk_visual_get_system :: 
-    IO (Ptr Visual)
-
-
-visualGetSystem ::
-    (MonadIO m) =>
-    m Visual
-visualGetSystem  = liftIO $ do
-    result <- gdk_visual_get_system
-    checkUnexpectedReturnNULL "gdk_visual_get_system" result
-    result' <- (newObject Visual) result
-    return result'
-
--- Enum VisualType
-
-data VisualType = 
-      VisualTypeStaticGray
-    | VisualTypeGrayscale
-    | VisualTypeStaticColor
-    | VisualTypePseudoColor
-    | VisualTypeTrueColor
-    | VisualTypeDirectColor
-    | AnotherVisualType Int
-    deriving (Show, Eq)
-
-instance Enum VisualType where
-    fromEnum VisualTypeStaticGray = 0
-    fromEnum VisualTypeGrayscale = 1
-    fromEnum VisualTypeStaticColor = 2
-    fromEnum VisualTypePseudoColor = 3
-    fromEnum VisualTypeTrueColor = 4
-    fromEnum VisualTypeDirectColor = 5
-    fromEnum (AnotherVisualType k) = k
-
-    toEnum 0 = VisualTypeStaticGray
-    toEnum 1 = VisualTypeGrayscale
-    toEnum 2 = VisualTypeStaticColor
-    toEnum 3 = VisualTypePseudoColor
-    toEnum 4 = VisualTypeTrueColor
-    toEnum 5 = VisualTypeDirectColor
-    toEnum k = AnotherVisualType k
-
-foreign import ccall "gdk_visual_type_get_type" c_gdk_visual_type_get_type :: 
-    IO GType
-
-instance BoxedEnum VisualType where
-    boxedEnumType _ = c_gdk_visual_type_get_type
-
--- Flags WMDecoration
-
-data WMDecoration = 
-      WMDecorationAll
-    | WMDecorationBorder
-    | WMDecorationResizeh
-    | WMDecorationTitle
-    | WMDecorationMenu
-    | WMDecorationMinimize
-    | WMDecorationMaximize
-    | AnotherWMDecoration Int
-    deriving (Show, Eq)
-
-instance Enum WMDecoration where
-    fromEnum WMDecorationAll = 1
-    fromEnum WMDecorationBorder = 2
-    fromEnum WMDecorationResizeh = 4
-    fromEnum WMDecorationTitle = 8
-    fromEnum WMDecorationMenu = 16
-    fromEnum WMDecorationMinimize = 32
-    fromEnum WMDecorationMaximize = 64
-    fromEnum (AnotherWMDecoration k) = k
-
-    toEnum 1 = WMDecorationAll
-    toEnum 2 = WMDecorationBorder
-    toEnum 4 = WMDecorationResizeh
-    toEnum 8 = WMDecorationTitle
-    toEnum 16 = WMDecorationMenu
-    toEnum 32 = WMDecorationMinimize
-    toEnum 64 = WMDecorationMaximize
-    toEnum k = AnotherWMDecoration k
-
-foreign import ccall "gdk_wm_decoration_get_type" c_gdk_wm_decoration_get_type :: 
-    IO GType
-
-instance BoxedEnum WMDecoration where
-    boxedEnumType _ = c_gdk_wm_decoration_get_type
-
-instance IsGFlag WMDecoration
-
--- Flags WMFunction
-
-data WMFunction = 
-      WMFunctionAll
-    | WMFunctionResize
-    | WMFunctionMove
-    | WMFunctionMinimize
-    | WMFunctionMaximize
-    | WMFunctionClose
-    | AnotherWMFunction Int
-    deriving (Show, Eq)
-
-instance Enum WMFunction where
-    fromEnum WMFunctionAll = 1
-    fromEnum WMFunctionResize = 2
-    fromEnum WMFunctionMove = 4
-    fromEnum WMFunctionMinimize = 8
-    fromEnum WMFunctionMaximize = 16
-    fromEnum WMFunctionClose = 32
-    fromEnum (AnotherWMFunction k) = k
-
-    toEnum 1 = WMFunctionAll
-    toEnum 2 = WMFunctionResize
-    toEnum 4 = WMFunctionMove
-    toEnum 8 = WMFunctionMinimize
-    toEnum 16 = WMFunctionMaximize
-    toEnum 32 = WMFunctionClose
-    toEnum k = AnotherWMFunction k
-
-foreign import ccall "gdk_wm_function_get_type" c_gdk_wm_function_get_type :: 
-    IO GType
-
-instance BoxedEnum WMFunction where
-    boxedEnumType _ = c_gdk_wm_function_get_type
-
-instance IsGFlag WMFunction
-
--- object Window 
-newtype Window = Window (ForeignPtr Window)
-noWindow :: Maybe Window
-noWindow = Nothing
-
-foreign import ccall "gdk_window_get_type"
-    c_gdk_window_get_type :: IO GType
-
-type instance ParentTypes Window = '[GObject.Object]
-
-instance GObject Window where
-    gobjectIsInitiallyUnowned _ = False
-    gobjectType _ = c_gdk_window_get_type
-    
-
-class GObject o => WindowK o
-instance (GObject o, IsDescendantOf Window o) => WindowK o
-
-toWindow :: WindowK o => o -> IO Window
-toWindow = unsafeCastTo Window
-
--- method Window::new
--- method type : Constructor
--- Args : [Arg {argName = "parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attributes", argType = TInterface "Gdk" "WindowAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attributes_mask", argType = TInterface "Gdk" "WindowAttributesType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attributes", argType = TInterface "Gdk" "WindowAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attributes_mask", argType = TInterface "Gdk" "WindowAttributesType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_new" gdk_window_new :: 
-    Ptr Window ->                           -- parent : TInterface "Gdk" "Window"
-    Ptr WindowAttr ->                       -- attributes : TInterface "Gdk" "WindowAttr"
-    CUInt ->                                -- attributes_mask : TInterface "Gdk" "WindowAttributesType"
-    IO (Ptr Window)
-
-
-windowNew ::
-    (MonadIO m, WindowK a) =>
-    Maybe (a) ->                            -- parent
-    WindowAttr ->                           -- attributes
-    [WindowAttributesType] ->               -- attributes_mask
-    m Window
-windowNew parent attributes attributes_mask = liftIO $ do
-    maybeParent <- case parent of
-        Nothing -> return nullPtr
-        Just jParent -> do
-            let jParent' = unsafeManagedPtrCastPtr jParent
-            return jParent'
-    let attributes' = unsafeManagedPtrGetPtr attributes
-    let attributes_mask' = gflagsToWord attributes_mask
-    result <- gdk_window_new maybeParent attributes' attributes_mask'
-    checkUnexpectedReturnNULL "gdk_window_new" result
-    result' <- (wrapObject Window) result
-    whenJust parent touchManagedPtr
-    touchManagedPtr attributes
-    return result'
-
--- method Window::beep
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_beep" gdk_window_beep :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowBeep ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowBeep _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_beep _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::begin_move_drag
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_begin_move_drag" gdk_window_begin_move_drag :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- button : TBasicType TInt32
-    Int32 ->                                -- root_x : TBasicType TInt32
-    Int32 ->                                -- root_y : TBasicType TInt32
-    Word32 ->                               -- timestamp : TBasicType TUInt32
-    IO ()
-
-
-windowBeginMoveDrag ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- button
-    Int32 ->                                -- root_x
-    Int32 ->                                -- root_y
-    Word32 ->                               -- timestamp
-    m ()
-windowBeginMoveDrag _obj button root_x root_y timestamp = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_begin_move_drag _obj' button root_x root_y timestamp
-    touchManagedPtr _obj
-    return ()
-
--- method Window::begin_move_drag_for_device
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_begin_move_drag_for_device" gdk_window_begin_move_drag_for_device :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    Int32 ->                                -- button : TBasicType TInt32
-    Int32 ->                                -- root_x : TBasicType TInt32
-    Int32 ->                                -- root_y : TBasicType TInt32
-    Word32 ->                               -- timestamp : TBasicType TUInt32
-    IO ()
-
-
-windowBeginMoveDragForDevice ::
-    (MonadIO m, WindowK a, DeviceK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    Int32 ->                                -- button
-    Int32 ->                                -- root_x
-    Int32 ->                                -- root_y
-    Word32 ->                               -- timestamp
-    m ()
-windowBeginMoveDragForDevice _obj device button root_x root_y timestamp = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    gdk_window_begin_move_drag_for_device _obj' device' button root_x root_y timestamp
-    touchManagedPtr _obj
-    touchManagedPtr device
-    return ()
-
--- method Window::begin_paint_rect
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rectangle", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rectangle", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_begin_paint_rect" gdk_window_begin_paint_rect :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Rectangle ->                        -- rectangle : TInterface "Gdk" "Rectangle"
-    IO ()
-
-
-windowBeginPaintRect ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Rectangle ->                            -- rectangle
-    m ()
-windowBeginPaintRect _obj rectangle = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let rectangle' = unsafeManagedPtrGetPtr rectangle
-    gdk_window_begin_paint_rect _obj' rectangle'
-    touchManagedPtr _obj
-    touchManagedPtr rectangle
-    return ()
-
--- method Window::begin_paint_region
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_begin_paint_region" gdk_window_begin_paint_region :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
-    IO ()
-
-
-windowBeginPaintRegion ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Cairo.Region ->                         -- region
-    m ()
-windowBeginPaintRegion _obj region = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let region' = unsafeManagedPtrGetPtr region
-    gdk_window_begin_paint_region _obj' region'
-    touchManagedPtr _obj
-    touchManagedPtr region
-    return ()
-
--- method Window::begin_resize_drag
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "edge", argType = TInterface "Gdk" "WindowEdge", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "edge", argType = TInterface "Gdk" "WindowEdge", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_begin_resize_drag" gdk_window_begin_resize_drag :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- edge : TInterface "Gdk" "WindowEdge"
-    Int32 ->                                -- button : TBasicType TInt32
-    Int32 ->                                -- root_x : TBasicType TInt32
-    Int32 ->                                -- root_y : TBasicType TInt32
-    Word32 ->                               -- timestamp : TBasicType TUInt32
-    IO ()
-
-
-windowBeginResizeDrag ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    WindowEdge ->                           -- edge
-    Int32 ->                                -- button
-    Int32 ->                                -- root_x
-    Int32 ->                                -- root_y
-    Word32 ->                               -- timestamp
-    m ()
-windowBeginResizeDrag _obj edge button root_x root_y timestamp = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let edge' = (fromIntegral . fromEnum) edge
-    gdk_window_begin_resize_drag _obj' edge' button root_x root_y timestamp
-    touchManagedPtr _obj
-    return ()
-
--- method Window::begin_resize_drag_for_device
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "edge", argType = TInterface "Gdk" "WindowEdge", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "edge", argType = TInterface "Gdk" "WindowEdge", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_begin_resize_drag_for_device" gdk_window_begin_resize_drag_for_device :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- edge : TInterface "Gdk" "WindowEdge"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    Int32 ->                                -- button : TBasicType TInt32
-    Int32 ->                                -- root_x : TBasicType TInt32
-    Int32 ->                                -- root_y : TBasicType TInt32
-    Word32 ->                               -- timestamp : TBasicType TUInt32
-    IO ()
-
-
-windowBeginResizeDragForDevice ::
-    (MonadIO m, WindowK a, DeviceK b) =>
-    a ->                                    -- _obj
-    WindowEdge ->                           -- edge
-    b ->                                    -- device
-    Int32 ->                                -- button
-    Int32 ->                                -- root_x
-    Int32 ->                                -- root_y
-    Word32 ->                               -- timestamp
-    m ()
-windowBeginResizeDragForDevice _obj edge device button root_x root_y timestamp = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let edge' = (fromIntegral . fromEnum) edge
-    let device' = unsafeManagedPtrCastPtr device
-    gdk_window_begin_resize_drag_for_device _obj' edge' device' button root_x root_y timestamp
-    touchManagedPtr _obj
-    touchManagedPtr device
-    return ()
-
--- method Window::configure_finished
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_configure_finished" gdk_window_configure_finished :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-{-# DEPRECATED windowConfigureFinished ["(Since version 3.8)","this function is no longer needed"]#-}
-windowConfigureFinished ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowConfigureFinished _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_configure_finished _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::coords_from_parent
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_coords_from_parent" gdk_window_coords_from_parent :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CDouble ->                              -- parent_x : TBasicType TDouble
-    CDouble ->                              -- parent_y : TBasicType TDouble
-    Ptr CDouble ->                          -- x : TBasicType TDouble
-    Ptr CDouble ->                          -- y : TBasicType TDouble
-    IO ()
-
-
-windowCoordsFromParent ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Double ->                               -- parent_x
-    Double ->                               -- parent_y
-    m (Double,Double)
-windowCoordsFromParent _obj parent_x parent_y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let parent_x' = realToFrac parent_x
-    let parent_y' = realToFrac parent_y
-    x <- allocMem :: IO (Ptr CDouble)
-    y <- allocMem :: IO (Ptr CDouble)
-    gdk_window_coords_from_parent _obj' parent_x' parent_y' x y
-    x' <- peek x
-    let x'' = realToFrac x'
-    y' <- peek y
-    let y'' = realToFrac y'
-    touchManagedPtr _obj
-    freeMem x
-    freeMem y
-    return (x'', y'')
-
--- method Window::coords_to_parent
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "parent_y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_coords_to_parent" gdk_window_coords_to_parent :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CDouble ->                              -- x : TBasicType TDouble
-    CDouble ->                              -- y : TBasicType TDouble
-    Ptr CDouble ->                          -- parent_x : TBasicType TDouble
-    Ptr CDouble ->                          -- parent_y : TBasicType TDouble
-    IO ()
-
-
-windowCoordsToParent ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Double ->                               -- x
-    Double ->                               -- y
-    m (Double,Double)
-windowCoordsToParent _obj x y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let x' = realToFrac x
-    let y' = realToFrac y
-    parent_x <- allocMem :: IO (Ptr CDouble)
-    parent_y <- allocMem :: IO (Ptr CDouble)
-    gdk_window_coords_to_parent _obj' x' y' parent_x parent_y
-    parent_x' <- peek parent_x
-    let parent_x'' = realToFrac parent_x'
-    parent_y' <- peek parent_y
-    let parent_y'' = realToFrac parent_y'
-    touchManagedPtr _obj
-    freeMem parent_x
-    freeMem parent_y
-    return (parent_x'', parent_y'')
-
--- method Window::create_gl_context
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "GLContext"
--- throws : True
--- Skip return : False
-
-foreign import ccall "gdk_window_create_gl_context" gdk_window_create_gl_context :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr (Ptr GError) ->                     -- error
-    IO (Ptr GLContext)
-
-
-windowCreateGlContext ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m GLContext
-windowCreateGlContext _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    onException (do
-        result <- propagateGError $ gdk_window_create_gl_context _obj'
-        checkUnexpectedReturnNULL "gdk_window_create_gl_context" result
-        result' <- (wrapObject GLContext) result
-        touchManagedPtr _obj
-        return result'
-     ) (do
-        return ()
-     )
-
--- method Window::create_similar_image_surface
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Surface"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_create_similar_image_surface" gdk_window_create_similar_image_surface :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- format : TBasicType TInt32
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
-    Int32 ->                                -- scale : TBasicType TInt32
-    IO (Ptr Cairo.Surface)
-
-
-windowCreateSimilarImageSurface ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- format
-    Int32 ->                                -- width
-    Int32 ->                                -- height
-    Int32 ->                                -- scale
-    m Cairo.Surface
-windowCreateSimilarImageSurface _obj format width height scale = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_create_similar_image_surface _obj' format width height scale
-    checkUnexpectedReturnNULL "gdk_window_create_similar_image_surface" result
-    result' <- (wrapBoxed Cairo.Surface) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::create_similar_surface
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "content", argType = TInterface "cairo" "Content", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "content", argType = TInterface "cairo" "Content", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Surface"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_create_similar_surface" gdk_window_create_similar_surface :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- content : TInterface "cairo" "Content"
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
-    IO (Ptr Cairo.Surface)
-
-
-windowCreateSimilarSurface ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Cairo.Content ->                        -- content
-    Int32 ->                                -- width
-    Int32 ->                                -- height
-    m Cairo.Surface
-windowCreateSimilarSurface _obj content width height = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let content' = (fromIntegral . fromEnum) content
-    result <- gdk_window_create_similar_surface _obj' content' width height
-    checkUnexpectedReturnNULL "gdk_window_create_similar_surface" result
-    result' <- (wrapBoxed Cairo.Surface) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::deiconify
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_deiconify" gdk_window_deiconify :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowDeiconify ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowDeiconify _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_deiconify _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::destroy
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_destroy" gdk_window_destroy :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowDestroy ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowDestroy _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_destroy _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::destroy_notify
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_destroy_notify" gdk_window_destroy_notify :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowDestroyNotify ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowDestroyNotify _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_destroy_notify _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::enable_synchronized_configure
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_enable_synchronized_configure" gdk_window_enable_synchronized_configure :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-{-# DEPRECATED windowEnableSynchronizedConfigure ["(Since version 3.8)","this function is no longer needed"]#-}
-windowEnableSynchronizedConfigure ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowEnableSynchronizedConfigure _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_enable_synchronized_configure _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::end_paint
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_end_paint" gdk_window_end_paint :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowEndPaint ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowEndPaint _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_end_paint _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::ensure_native
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_ensure_native" gdk_window_ensure_native :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowEnsureNative ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowEnsureNative _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_ensure_native _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::flush
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_flush" gdk_window_flush :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-{-# DEPRECATED windowFlush ["(Since version 3.14)"]#-}
-windowFlush ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowFlush _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_flush _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::focus
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_focus" gdk_window_focus :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Word32 ->                               -- timestamp : TBasicType TUInt32
-    IO ()
-
-
-windowFocus ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- timestamp
-    m ()
-windowFocus _obj timestamp = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_focus _obj' timestamp
-    touchManagedPtr _obj
-    return ()
-
--- method Window::freeze_toplevel_updates_libgtk_only
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_freeze_toplevel_updates_libgtk_only" gdk_window_freeze_toplevel_updates_libgtk_only :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-{-# DEPRECATED windowFreezeToplevelUpdatesLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside of GTK+"]#-}
-windowFreezeToplevelUpdatesLibgtkOnly ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowFreezeToplevelUpdatesLibgtkOnly _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_freeze_toplevel_updates_libgtk_only _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::freeze_updates
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_freeze_updates" gdk_window_freeze_updates :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowFreezeUpdates ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowFreezeUpdates _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_freeze_updates _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::fullscreen
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_fullscreen" gdk_window_fullscreen :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowFullscreen ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowFullscreen _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_fullscreen _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::fullscreen_on_monitor
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_fullscreen_on_monitor" gdk_window_fullscreen_on_monitor :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- monitor : TBasicType TInt32
-    IO ()
-
-
-windowFullscreenOnMonitor ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- monitor
-    m ()
-windowFullscreenOnMonitor _obj monitor = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_fullscreen_on_monitor _obj' monitor
-    touchManagedPtr _obj
-    return ()
-
--- method Window::geometry_changed
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_geometry_changed" gdk_window_geometry_changed :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowGeometryChanged ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowGeometryChanged _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_geometry_changed _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::get_accept_focus
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_accept_focus" gdk_window_get_accept_focus :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowGetAcceptFocus ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowGetAcceptFocus _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_accept_focus _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_background_pattern
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Pattern"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_background_pattern" gdk_window_get_background_pattern :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Cairo.Pattern)
-
-
-windowGetBackgroundPattern ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Cairo.Pattern
-windowGetBackgroundPattern _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_background_pattern _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_background_pattern" result
-    result' <- (newBoxed Cairo.Pattern) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_children
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TGList (TInterface "Gdk" "Window")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_children" gdk_window_get_children :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr (GList (Ptr Window)))
-
-
-windowGetChildren ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m [Window]
-windowGetChildren _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_children _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_children" result
-    result' <- unpackGList result
-    result'' <- mapM (newObject Window) result'
-    g_list_free result
-    touchManagedPtr _obj
-    return result''
-
--- method Window::get_children_with_user_data
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TGList (TInterface "Gdk" "Window")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_children_with_user_data" gdk_window_get_children_with_user_data :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr () ->                               -- user_data : TBasicType TVoid
-    IO (Ptr (GList (Ptr Window)))
-
-
-windowGetChildrenWithUserData ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Ptr () ->                               -- user_data
-    m [Window]
-windowGetChildrenWithUserData _obj user_data = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_children_with_user_data _obj' user_data
-    checkUnexpectedReturnNULL "gdk_window_get_children_with_user_data" result
-    result' <- unpackGList result
-    result'' <- mapM (newObject Window) result'
-    g_list_free result
-    touchManagedPtr _obj
-    return result''
-
--- method Window::get_clip_region
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Region"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_clip_region" gdk_window_get_clip_region :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Cairo.Region)
-
-
-windowGetClipRegion ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Cairo.Region
-windowGetClipRegion _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_clip_region _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_clip_region" result
-    result' <- (wrapBoxed Cairo.Region) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_composited
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_composited" gdk_window_get_composited :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-{-# DEPRECATED windowGetComposited ["(Since version 3.16)","Compositing is an outdated technology that","  only ever worked on X11."]#-}
-windowGetComposited ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowGetComposited _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_composited _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_cursor
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Cursor"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_cursor" gdk_window_get_cursor :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Cursor)
-
-
-windowGetCursor ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Cursor
-windowGetCursor _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_cursor _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_cursor" result
-    result' <- (newObject Cursor) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_decorations
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "decorations", argType = TInterface "Gdk" "WMDecoration", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_decorations" gdk_window_get_decorations :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr CUInt ->                            -- decorations : TInterface "Gdk" "WMDecoration"
-    IO CInt
-
-
-windowGetDecorations ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m (Bool,[WMDecoration])
-windowGetDecorations _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    decorations <- allocMem :: IO (Ptr CUInt)
-    result <- gdk_window_get_decorations _obj' decorations
-    let result' = (/= 0) result
-    decorations' <- peek decorations
-    let decorations'' = wordToGFlags decorations'
-    touchManagedPtr _obj
-    freeMem decorations
-    return (result', decorations'')
-
--- method Window::get_device_cursor
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Cursor"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_device_cursor" gdk_window_get_device_cursor :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    IO (Ptr Cursor)
-
-
-windowGetDeviceCursor ::
-    (MonadIO m, WindowK a, DeviceK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    m Cursor
-windowGetDeviceCursor _obj device = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    result <- gdk_window_get_device_cursor _obj' device'
-    checkUnexpectedReturnNULL "gdk_window_get_device_cursor" result
-    result' <- (newObject Cursor) result
-    touchManagedPtr _obj
-    touchManagedPtr device
-    return result'
-
--- method Window::get_device_events
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "EventMask"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_device_events" gdk_window_get_device_events :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    IO CUInt
-
-
-windowGetDeviceEvents ::
-    (MonadIO m, WindowK a, DeviceK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    m [EventMask]
-windowGetDeviceEvents _obj device = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    result <- gdk_window_get_device_events _obj' device'
-    let result' = wordToGFlags result
-    touchManagedPtr _obj
-    touchManagedPtr device
-    return result'
-
--- method Window::get_device_position
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_device_position" gdk_window_get_device_position :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    Ptr Int32 ->                            -- x : TBasicType TInt32
-    Ptr Int32 ->                            -- y : TBasicType TInt32
-    Ptr CUInt ->                            -- mask : TInterface "Gdk" "ModifierType"
-    IO (Ptr Window)
-
-
-windowGetDevicePosition ::
-    (MonadIO m, WindowK a, DeviceK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    m (Window,Int32,Int32,[ModifierType])
-windowGetDevicePosition _obj device = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    x <- allocMem :: IO (Ptr Int32)
-    y <- allocMem :: IO (Ptr Int32)
-    mask <- allocMem :: IO (Ptr CUInt)
-    result <- gdk_window_get_device_position _obj' device' x y mask
-    checkUnexpectedReturnNULL "gdk_window_get_device_position" result
-    result' <- (newObject Window) result
-    x' <- peek x
-    y' <- peek y
-    mask' <- peek mask
-    let mask'' = wordToGFlags mask'
-    touchManagedPtr _obj
-    touchManagedPtr device
-    freeMem x
-    freeMem y
-    freeMem mask
-    return (result', x', y', mask'')
-
--- method Window::get_device_position_double
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_device_position_double" gdk_window_get_device_position_double :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    Ptr CDouble ->                          -- x : TBasicType TDouble
-    Ptr CDouble ->                          -- y : TBasicType TDouble
-    Ptr CUInt ->                            -- mask : TInterface "Gdk" "ModifierType"
-    IO (Ptr Window)
-
-
-windowGetDevicePositionDouble ::
-    (MonadIO m, WindowK a, DeviceK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    m (Window,Double,Double,[ModifierType])
-windowGetDevicePositionDouble _obj device = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    x <- allocMem :: IO (Ptr CDouble)
-    y <- allocMem :: IO (Ptr CDouble)
-    mask <- allocMem :: IO (Ptr CUInt)
-    result <- gdk_window_get_device_position_double _obj' device' x y mask
-    checkUnexpectedReturnNULL "gdk_window_get_device_position_double" result
-    result' <- (newObject Window) result
-    x' <- peek x
-    let x'' = realToFrac x'
-    y' <- peek y
-    let y'' = realToFrac y'
-    mask' <- peek mask
-    let mask'' = wordToGFlags mask'
-    touchManagedPtr _obj
-    touchManagedPtr device
-    freeMem x
-    freeMem y
-    freeMem mask
-    return (result', x'', y'', mask'')
-
--- method Window::get_display
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Display"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_display" gdk_window_get_display :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Display)
-
-
-windowGetDisplay ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Display
-windowGetDisplay _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_display _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_display" result
-    result' <- (newObject Display) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_drag_protocol
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Window", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "DragProtocol"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_drag_protocol" gdk_window_get_drag_protocol :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr (Ptr Window) ->                     -- target : TInterface "Gdk" "Window"
-    IO CUInt
-
-
-windowGetDragProtocol ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m (DragProtocol,Window)
-windowGetDragProtocol _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    target <- allocMem :: IO (Ptr (Ptr Window))
-    result <- gdk_window_get_drag_protocol _obj' target
-    let result' = (toEnum . fromIntegral) result
-    target' <- peek target
-    target'' <- (wrapObject Window) target'
-    touchManagedPtr _obj
-    freeMem target
-    return (result', target'')
-
--- method Window::get_effective_parent
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_effective_parent" gdk_window_get_effective_parent :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Window)
-
-
-windowGetEffectiveParent ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Window
-windowGetEffectiveParent _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_effective_parent _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_effective_parent" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_effective_toplevel
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_effective_toplevel" gdk_window_get_effective_toplevel :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Window)
-
-
-windowGetEffectiveToplevel ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Window
-windowGetEffectiveToplevel _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_effective_toplevel _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_effective_toplevel" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_event_compression
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_event_compression" gdk_window_get_event_compression :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowGetEventCompression ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowGetEventCompression _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_event_compression _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_events
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "EventMask"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_events" gdk_window_get_events :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CUInt
-
-
-windowGetEvents ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m [EventMask]
-windowGetEvents _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_events _obj'
-    let result' = wordToGFlags result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_focus_on_map
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_focus_on_map" gdk_window_get_focus_on_map :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowGetFocusOnMap ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowGetFocusOnMap _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_focus_on_map _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_frame_clock
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "FrameClock"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_frame_clock" gdk_window_get_frame_clock :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr FrameClock)
-
-
-windowGetFrameClock ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m FrameClock
-windowGetFrameClock _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_frame_clock _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_frame_clock" result
-    result' <- (newObject FrameClock) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_frame_extents
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_frame_extents" gdk_window_get_frame_extents :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Rectangle ->                        -- rect : TInterface "Gdk" "Rectangle"
-    IO ()
-
-
-windowGetFrameExtents ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m (Rectangle)
-windowGetFrameExtents _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    rect <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
-    gdk_window_get_frame_extents _obj' rect
-    rect' <- (wrapBoxed Rectangle) rect
-    touchManagedPtr _obj
-    return rect'
-
--- method Window::get_fullscreen_mode
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "FullscreenMode"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_fullscreen_mode" gdk_window_get_fullscreen_mode :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CUInt
-
-
-windowGetFullscreenMode ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m FullscreenMode
-windowGetFullscreenMode _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_fullscreen_mode _obj'
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_geometry
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_geometry" gdk_window_get_geometry :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Int32 ->                            -- x : TBasicType TInt32
-    Ptr Int32 ->                            -- y : TBasicType TInt32
-    Ptr Int32 ->                            -- width : TBasicType TInt32
-    Ptr Int32 ->                            -- height : TBasicType TInt32
-    IO ()
-
-
-windowGetGeometry ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m (Int32,Int32,Int32,Int32)
-windowGetGeometry _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    x <- allocMem :: IO (Ptr Int32)
-    y <- allocMem :: IO (Ptr Int32)
-    width <- allocMem :: IO (Ptr Int32)
-    height <- allocMem :: IO (Ptr Int32)
-    gdk_window_get_geometry _obj' x y width height
-    x' <- peek x
-    y' <- peek y
-    width' <- peek width
-    height' <- peek height
-    touchManagedPtr _obj
-    freeMem x
-    freeMem y
-    freeMem width
-    freeMem height
-    return (x', y', width', height')
-
--- method Window::get_group
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_group" gdk_window_get_group :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Window)
-
-
-windowGetGroup ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Window
-windowGetGroup _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_group _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_group" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_height
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_height" gdk_window_get_height :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO Int32
-
-
-windowGetHeight ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Int32
-windowGetHeight _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_height _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Window::get_modal_hint
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_modal_hint" gdk_window_get_modal_hint :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowGetModalHint ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowGetModalHint _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_modal_hint _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_origin
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_origin" gdk_window_get_origin :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Int32 ->                            -- x : TBasicType TInt32
-    Ptr Int32 ->                            -- y : TBasicType TInt32
-    IO Int32
-
-
-windowGetOrigin ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m (Int32,Int32,Int32)
-windowGetOrigin _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    x <- allocMem :: IO (Ptr Int32)
-    y <- allocMem :: IO (Ptr Int32)
-    result <- gdk_window_get_origin _obj' x y
-    x' <- peek x
-    y' <- peek y
-    touchManagedPtr _obj
-    freeMem x
-    freeMem y
-    return (result, x', y')
-
--- method Window::get_parent
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_parent" gdk_window_get_parent :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Window)
-
-
-windowGetParent ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Window
-windowGetParent _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_parent _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_parent" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_pass_through
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_pass_through" gdk_window_get_pass_through :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowGetPassThrough ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowGetPassThrough _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_pass_through _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_pointer
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_pointer" gdk_window_get_pointer :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Int32 ->                            -- x : TBasicType TInt32
-    Ptr Int32 ->                            -- y : TBasicType TInt32
-    Ptr CUInt ->                            -- mask : TInterface "Gdk" "ModifierType"
-    IO (Ptr Window)
-
-{-# DEPRECATED windowGetPointer ["(Since version 3.0)","Use gdk_window_get_device_position() instead."]#-}
-windowGetPointer ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m (Window,Int32,Int32,[ModifierType])
-windowGetPointer _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    x <- allocMem :: IO (Ptr Int32)
-    y <- allocMem :: IO (Ptr Int32)
-    mask <- allocMem :: IO (Ptr CUInt)
-    result <- gdk_window_get_pointer _obj' x y mask
-    checkUnexpectedReturnNULL "gdk_window_get_pointer" result
-    result' <- (newObject Window) result
-    x' <- peek x
-    y' <- peek y
-    mask' <- peek mask
-    let mask'' = wordToGFlags mask'
-    touchManagedPtr _obj
-    freeMem x
-    freeMem y
-    freeMem mask
-    return (result', x', y', mask'')
-
--- method Window::get_position
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_position" gdk_window_get_position :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Int32 ->                            -- x : TBasicType TInt32
-    Ptr Int32 ->                            -- y : TBasicType TInt32
-    IO ()
-
-
-windowGetPosition ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m (Int32,Int32)
-windowGetPosition _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    x <- allocMem :: IO (Ptr Int32)
-    y <- allocMem :: IO (Ptr Int32)
-    gdk_window_get_position _obj' x y
-    x' <- peek x
-    y' <- peek y
-    touchManagedPtr _obj
-    freeMem x
-    freeMem y
-    return (x', y')
-
--- method Window::get_root_coords
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_root_coords" gdk_window_get_root_coords :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    Ptr Int32 ->                            -- root_x : TBasicType TInt32
-    Ptr Int32 ->                            -- root_y : TBasicType TInt32
-    IO ()
-
-
-windowGetRootCoords ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    m (Int32,Int32)
-windowGetRootCoords _obj x y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    root_x <- allocMem :: IO (Ptr Int32)
-    root_y <- allocMem :: IO (Ptr Int32)
-    gdk_window_get_root_coords _obj' x y root_x root_y
-    root_x' <- peek root_x
-    root_y' <- peek root_y
-    touchManagedPtr _obj
-    freeMem root_x
-    freeMem root_y
-    return (root_x', root_y')
-
--- method Window::get_root_origin
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_root_origin" gdk_window_get_root_origin :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Int32 ->                            -- x : TBasicType TInt32
-    Ptr Int32 ->                            -- y : TBasicType TInt32
-    IO ()
-
-
-windowGetRootOrigin ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m (Int32,Int32)
-windowGetRootOrigin _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    x <- allocMem :: IO (Ptr Int32)
-    y <- allocMem :: IO (Ptr Int32)
-    gdk_window_get_root_origin _obj' x y
-    x' <- peek x
-    y' <- peek y
-    touchManagedPtr _obj
-    freeMem x
-    freeMem y
-    return (x', y')
-
--- method Window::get_scale_factor
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_scale_factor" gdk_window_get_scale_factor :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO Int32
-
-
-windowGetScaleFactor ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Int32
-windowGetScaleFactor _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_scale_factor _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Window::get_screen
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Screen"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_screen" gdk_window_get_screen :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Screen)
-
-
-windowGetScreen ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Screen
-windowGetScreen _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_screen _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_screen" result
-    result' <- (newObject Screen) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_source_events
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TInterface "Gdk" "InputSource", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TInterface "Gdk" "InputSource", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "EventMask"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_source_events" gdk_window_get_source_events :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- source : TInterface "Gdk" "InputSource"
-    IO CUInt
-
-
-windowGetSourceEvents ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    InputSource ->                          -- source
-    m [EventMask]
-windowGetSourceEvents _obj source = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let source' = (fromIntegral . fromEnum) source
-    result <- gdk_window_get_source_events _obj' source'
-    let result' = wordToGFlags result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_state
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "WindowState"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_state" gdk_window_get_state :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CUInt
-
-
-windowGetState ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m [WindowState]
-windowGetState _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_state _obj'
-    let result' = wordToGFlags result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_support_multidevice
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_support_multidevice" gdk_window_get_support_multidevice :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowGetSupportMultidevice ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowGetSupportMultidevice _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_support_multidevice _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_toplevel
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_toplevel" gdk_window_get_toplevel :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Window)
-
-
-windowGetToplevel ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Window
-windowGetToplevel _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_toplevel _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_toplevel" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_type_hint
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "WindowTypeHint"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_type_hint" gdk_window_get_type_hint :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CUInt
-
-
-windowGetTypeHint ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m WindowTypeHint
-windowGetTypeHint _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_type_hint _obj'
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_update_area
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Region"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_update_area" gdk_window_get_update_area :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Cairo.Region)
-
-
-windowGetUpdateArea ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Cairo.Region
-windowGetUpdateArea _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_update_area _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_update_area" result
-    result' <- (wrapBoxed Cairo.Region) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_user_data
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_user_data" gdk_window_get_user_data :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr (Ptr ()) ->                         -- data : TBasicType TVoid
-    IO ()
-
-
-windowGetUserData ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ((Ptr ()))
-windowGetUserData _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    data_ <- allocMem :: IO (Ptr (Ptr ()))
-    gdk_window_get_user_data _obj' data_
-    data_' <- peek data_
-    touchManagedPtr _obj
-    freeMem data_
-    return data_'
-
--- method Window::get_visible_region
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Region"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_visible_region" gdk_window_get_visible_region :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Cairo.Region)
-
-
-windowGetVisibleRegion ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Cairo.Region
-windowGetVisibleRegion _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_visible_region _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_visible_region" result
-    result' <- (wrapBoxed Cairo.Region) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_visual
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Visual"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_visual" gdk_window_get_visual :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Visual)
-
-
-windowGetVisual ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Visual
-windowGetVisual _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_visual _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_visual" result
-    result' <- (newObject Visual) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_width
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_width" gdk_window_get_width :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO Int32
-
-
-windowGetWidth ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Int32
-windowGetWidth _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_width _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Window::get_window_type
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "WindowType"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_window_type" gdk_window_get_window_type :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CUInt
-
-
-windowGetWindowType ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m WindowType
-windowGetWindowType _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_window_type _obj'
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::has_native
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_has_native" gdk_window_has_native :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowHasNative ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowHasNative _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_has_native _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::hide
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_hide" gdk_window_hide :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowHide ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowHide _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_hide _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::iconify
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_iconify" gdk_window_iconify :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowIconify ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowIconify _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_iconify _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::input_shape_combine_region
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shape_region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shape_region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_input_shape_combine_region" gdk_window_input_shape_combine_region :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Region ->                     -- shape_region : TInterface "cairo" "Region"
-    Int32 ->                                -- offset_x : TBasicType TInt32
-    Int32 ->                                -- offset_y : TBasicType TInt32
-    IO ()
-
-
-windowInputShapeCombineRegion ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Cairo.Region ->                         -- shape_region
-    Int32 ->                                -- offset_x
-    Int32 ->                                -- offset_y
-    m ()
-windowInputShapeCombineRegion _obj shape_region offset_x offset_y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let shape_region' = unsafeManagedPtrGetPtr shape_region
-    gdk_window_input_shape_combine_region _obj' shape_region' offset_x offset_y
-    touchManagedPtr _obj
-    touchManagedPtr shape_region
-    return ()
-
--- method Window::invalidate_maybe_recurse
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_func", argType = TInterface "Gdk" "WindowChildFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeCall, argClosure = 3, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_func", argType = TInterface "Gdk" "WindowChildFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeCall, argClosure = 3, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_invalidate_maybe_recurse" gdk_window_invalidate_maybe_recurse :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
-    FunPtr WindowChildFuncC ->              -- child_func : TInterface "Gdk" "WindowChildFunc"
-    Ptr () ->                               -- user_data : TBasicType TVoid
-    IO ()
-
-
-windowInvalidateMaybeRecurse ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Cairo.Region ->                         -- region
-    Maybe (WindowChildFunc) ->              -- child_func
-    m ()
-windowInvalidateMaybeRecurse _obj region child_func = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let region' = unsafeManagedPtrGetPtr region
-    maybeChild_func <- case child_func of
-        Nothing -> return (castPtrToFunPtr nullPtr)
-        Just jChild_func -> do
-            jChild_func' <- mkWindowChildFunc (windowChildFuncWrapper Nothing jChild_func)
-            return jChild_func'
-    let user_data = nullPtr
-    gdk_window_invalidate_maybe_recurse _obj' region' maybeChild_func user_data
-    safeFreeFunPtr $ castFunPtrToPtr maybeChild_func
-    touchManagedPtr _obj
-    touchManagedPtr region
-    return ()
-
--- method Window::invalidate_rect
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invalidate_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invalidate_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_invalidate_rect" gdk_window_invalidate_rect :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Rectangle ->                        -- rect : TInterface "Gdk" "Rectangle"
-    CInt ->                                 -- invalidate_children : TBasicType TBoolean
-    IO ()
-
-
-windowInvalidateRect ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Maybe (Rectangle) ->                    -- rect
-    Bool ->                                 -- invalidate_children
-    m ()
-windowInvalidateRect _obj rect invalidate_children = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeRect <- case rect of
-        Nothing -> return nullPtr
-        Just jRect -> do
-            let jRect' = unsafeManagedPtrGetPtr jRect
-            return jRect'
-    let invalidate_children' = (fromIntegral . fromEnum) invalidate_children
-    gdk_window_invalidate_rect _obj' maybeRect invalidate_children'
-    touchManagedPtr _obj
-    whenJust rect touchManagedPtr
-    return ()
-
--- method Window::invalidate_region
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invalidate_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invalidate_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_invalidate_region" gdk_window_invalidate_region :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
-    CInt ->                                 -- invalidate_children : TBasicType TBoolean
-    IO ()
-
-
-windowInvalidateRegion ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Cairo.Region ->                         -- region
-    Bool ->                                 -- invalidate_children
-    m ()
-windowInvalidateRegion _obj region invalidate_children = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let region' = unsafeManagedPtrGetPtr region
-    let invalidate_children' = (fromIntegral . fromEnum) invalidate_children
-    gdk_window_invalidate_region _obj' region' invalidate_children'
-    touchManagedPtr _obj
-    touchManagedPtr region
-    return ()
-
--- method Window::is_destroyed
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_is_destroyed" gdk_window_is_destroyed :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowIsDestroyed ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowIsDestroyed _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_is_destroyed _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::is_input_only
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_is_input_only" gdk_window_is_input_only :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowIsInputOnly ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowIsInputOnly _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_is_input_only _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::is_shaped
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_is_shaped" gdk_window_is_shaped :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowIsShaped ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowIsShaped _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_is_shaped _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::is_viewable
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_is_viewable" gdk_window_is_viewable :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowIsViewable ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowIsViewable _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_is_viewable _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::is_visible
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_is_visible" gdk_window_is_visible :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowIsVisible ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowIsVisible _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_is_visible _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::lower
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_lower" gdk_window_lower :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowLower ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowLower _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_lower _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::mark_paint_from_clip
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_mark_paint_from_clip" gdk_window_mark_paint_from_clip :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    IO ()
-
-
-windowMarkPaintFromClip ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Cairo.Context ->                        -- cr
-    m ()
-windowMarkPaintFromClip _obj cr = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let cr' = unsafeManagedPtrGetPtr cr
-    gdk_window_mark_paint_from_clip _obj' cr'
-    touchManagedPtr _obj
-    touchManagedPtr cr
-    return ()
-
--- method Window::maximize
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_maximize" gdk_window_maximize :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowMaximize ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowMaximize _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_maximize _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::merge_child_input_shapes
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_merge_child_input_shapes" gdk_window_merge_child_input_shapes :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowMergeChildInputShapes ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowMergeChildInputShapes _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_merge_child_input_shapes _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::merge_child_shapes
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_merge_child_shapes" gdk_window_merge_child_shapes :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowMergeChildShapes ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowMergeChildShapes _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_merge_child_shapes _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::move
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_move" gdk_window_move :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    IO ()
-
-
-windowMove ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    m ()
-windowMove _obj x y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_move _obj' x y
-    touchManagedPtr _obj
-    return ()
-
--- method Window::move_region
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dy", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dy", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_move_region" gdk_window_move_region :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
-    Int32 ->                                -- dx : TBasicType TInt32
-    Int32 ->                                -- dy : TBasicType TInt32
-    IO ()
-
-
-windowMoveRegion ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Cairo.Region ->                         -- region
-    Int32 ->                                -- dx
-    Int32 ->                                -- dy
-    m ()
-windowMoveRegion _obj region dx dy = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let region' = unsafeManagedPtrGetPtr region
-    gdk_window_move_region _obj' region' dx dy
-    touchManagedPtr _obj
-    touchManagedPtr region
-    return ()
-
--- method Window::move_resize
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_move_resize" gdk_window_move_resize :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
-    IO ()
-
-
-windowMoveResize ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    Int32 ->                                -- width
-    Int32 ->                                -- height
-    m ()
-windowMoveResize _obj x y width height = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_move_resize _obj' x y width height
-    touchManagedPtr _obj
-    return ()
-
--- method Window::peek_children
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TGList (TInterface "Gdk" "Window")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_peek_children" gdk_window_peek_children :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr (GList (Ptr Window)))
-
-
-windowPeekChildren ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m [Window]
-windowPeekChildren _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_peek_children _obj'
-    checkUnexpectedReturnNULL "gdk_window_peek_children" result
-    result' <- unpackGList result
-    result'' <- mapM (newObject Window) result'
-    touchManagedPtr _obj
-    return result''
-
--- method Window::process_updates
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "update_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "update_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_process_updates" gdk_window_process_updates :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- update_children : TBasicType TBoolean
-    IO ()
-
-
-windowProcessUpdates ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- update_children
-    m ()
-windowProcessUpdates _obj update_children = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let update_children' = (fromIntegral . fromEnum) update_children
-    gdk_window_process_updates _obj' update_children'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::raise
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_raise" gdk_window_raise :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowRaise ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowRaise _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_raise _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::register_dnd
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_register_dnd" gdk_window_register_dnd :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowRegisterDnd ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowRegisterDnd _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_register_dnd _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::reparent
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_reparent" gdk_window_reparent :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Window ->                           -- new_parent : TInterface "Gdk" "Window"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    IO ()
-
-
-windowReparent ::
-    (MonadIO m, WindowK a, WindowK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- new_parent
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    m ()
-windowReparent _obj new_parent x y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let new_parent' = unsafeManagedPtrCastPtr new_parent
-    gdk_window_reparent _obj' new_parent' x y
-    touchManagedPtr _obj
-    touchManagedPtr new_parent
-    return ()
-
--- method Window::resize
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_resize" gdk_window_resize :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
-    IO ()
-
-
-windowResize ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- width
-    Int32 ->                                -- height
-    m ()
-windowResize _obj width height = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_resize _obj' width height
-    touchManagedPtr _obj
-    return ()
-
--- method Window::restack
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "sibling", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "above", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "sibling", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "above", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_restack" gdk_window_restack :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Window ->                           -- sibling : TInterface "Gdk" "Window"
-    CInt ->                                 -- above : TBasicType TBoolean
-    IO ()
-
-
-windowRestack ::
-    (MonadIO m, WindowK a, WindowK b) =>
-    a ->                                    -- _obj
-    Maybe (b) ->                            -- sibling
-    Bool ->                                 -- above
-    m ()
-windowRestack _obj sibling above = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeSibling <- case sibling of
-        Nothing -> return nullPtr
-        Just jSibling -> do
-            let jSibling' = unsafeManagedPtrCastPtr jSibling
-            return jSibling'
-    let above' = (fromIntegral . fromEnum) above
-    gdk_window_restack _obj' maybeSibling above'
-    touchManagedPtr _obj
-    whenJust sibling touchManagedPtr
-    return ()
-
--- method Window::scroll
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dy", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dy", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_scroll" gdk_window_scroll :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- dx : TBasicType TInt32
-    Int32 ->                                -- dy : TBasicType TInt32
-    IO ()
-
-
-windowScroll ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- dx
-    Int32 ->                                -- dy
-    m ()
-windowScroll _obj dx dy = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_scroll _obj' dx dy
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_accept_focus
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "accept_focus", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "accept_focus", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_accept_focus" gdk_window_set_accept_focus :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- accept_focus : TBasicType TBoolean
-    IO ()
-
-
-windowSetAcceptFocus ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- accept_focus
-    m ()
-windowSetAcceptFocus _obj accept_focus = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let accept_focus' = (fromIntegral . fromEnum) accept_focus
-    gdk_window_set_accept_focus _obj' accept_focus'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_background
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_background" gdk_window_set_background :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Color ->                            -- color : TInterface "Gdk" "Color"
-    IO ()
-
-{-# DEPRECATED windowSetBackground ["(Since version 3.4)","Use gdk_window_set_background_rgba() instead."]#-}
-windowSetBackground ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Color ->                                -- color
-    m ()
-windowSetBackground _obj color = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let color' = unsafeManagedPtrGetPtr color
-    gdk_window_set_background _obj' color'
-    touchManagedPtr _obj
-    touchManagedPtr color
-    return ()
-
--- method Window::set_background_pattern
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pattern", argType = TInterface "cairo" "Pattern", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pattern", argType = TInterface "cairo" "Pattern", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_background_pattern" gdk_window_set_background_pattern :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Pattern ->                    -- pattern : TInterface "cairo" "Pattern"
-    IO ()
-
-
-windowSetBackgroundPattern ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Maybe (Cairo.Pattern) ->                -- pattern
-    m ()
-windowSetBackgroundPattern _obj pattern = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybePattern <- case pattern of
-        Nothing -> return nullPtr
-        Just jPattern -> do
-            let jPattern' = unsafeManagedPtrGetPtr jPattern
-            return jPattern'
-    gdk_window_set_background_pattern _obj' maybePattern
-    touchManagedPtr _obj
-    whenJust pattern touchManagedPtr
-    return ()
-
--- method Window::set_background_rgba
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_background_rgba" gdk_window_set_background_rgba :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr RGBA ->                             -- rgba : TInterface "Gdk" "RGBA"
-    IO ()
-
-
-windowSetBackgroundRgba ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    RGBA ->                                 -- rgba
-    m ()
-windowSetBackgroundRgba _obj rgba = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let rgba' = unsafeManagedPtrGetPtr rgba
-    gdk_window_set_background_rgba _obj' rgba'
-    touchManagedPtr _obj
-    touchManagedPtr rgba
-    return ()
-
--- method Window::set_child_input_shapes
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_child_input_shapes" gdk_window_set_child_input_shapes :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowSetChildInputShapes ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowSetChildInputShapes _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_set_child_input_shapes _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_child_shapes
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_child_shapes" gdk_window_set_child_shapes :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowSetChildShapes ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowSetChildShapes _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_set_child_shapes _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_composited
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "composited", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "composited", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_composited" gdk_window_set_composited :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- composited : TBasicType TBoolean
-    IO ()
-
-{-# DEPRECATED windowSetComposited ["(Since version 3.16)","Compositing is an outdated technology that","  only ever worked on X11."]#-}
-windowSetComposited ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- composited
-    m ()
-windowSetComposited _obj composited = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let composited' = (fromIntegral . fromEnum) composited
-    gdk_window_set_composited _obj' composited'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_cursor
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_cursor" gdk_window_set_cursor :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cursor ->                           -- cursor : TInterface "Gdk" "Cursor"
-    IO ()
-
-
-windowSetCursor ::
-    (MonadIO m, WindowK a, CursorK b) =>
-    a ->                                    -- _obj
-    Maybe (b) ->                            -- cursor
-    m ()
-windowSetCursor _obj cursor = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeCursor <- case cursor of
-        Nothing -> return nullPtr
-        Just jCursor -> do
-            let jCursor' = unsafeManagedPtrCastPtr jCursor
-            return jCursor'
-    gdk_window_set_cursor _obj' maybeCursor
-    touchManagedPtr _obj
-    whenJust cursor touchManagedPtr
-    return ()
-
--- method Window::set_decorations
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "decorations", argType = TInterface "Gdk" "WMDecoration", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "decorations", argType = TInterface "Gdk" "WMDecoration", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_decorations" gdk_window_set_decorations :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- decorations : TInterface "Gdk" "WMDecoration"
-    IO ()
-
-
-windowSetDecorations ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    [WMDecoration] ->                       -- decorations
-    m ()
-windowSetDecorations _obj decorations = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let decorations' = gflagsToWord decorations
-    gdk_window_set_decorations _obj' decorations'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_device_cursor
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_device_cursor" gdk_window_set_device_cursor :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    Ptr Cursor ->                           -- cursor : TInterface "Gdk" "Cursor"
-    IO ()
-
-
-windowSetDeviceCursor ::
-    (MonadIO m, WindowK a, DeviceK b, CursorK c) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    c ->                                    -- cursor
-    m ()
-windowSetDeviceCursor _obj device cursor = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    let cursor' = unsafeManagedPtrCastPtr cursor
-    gdk_window_set_device_cursor _obj' device' cursor'
-    touchManagedPtr _obj
-    touchManagedPtr device
-    touchManagedPtr cursor
-    return ()
-
--- method Window::set_device_events
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_device_events" gdk_window_set_device_events :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
-    IO ()
-
-
-windowSetDeviceEvents ::
-    (MonadIO m, WindowK a, DeviceK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    [EventMask] ->                          -- event_mask
-    m ()
-windowSetDeviceEvents _obj device event_mask = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    let event_mask' = gflagsToWord event_mask
-    gdk_window_set_device_events _obj' device' event_mask'
-    touchManagedPtr _obj
-    touchManagedPtr device
-    return ()
-
--- method Window::set_event_compression
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_compression", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_compression", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_event_compression" gdk_window_set_event_compression :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- event_compression : TBasicType TBoolean
-    IO ()
-
-
-windowSetEventCompression ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- event_compression
-    m ()
-windowSetEventCompression _obj event_compression = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let event_compression' = (fromIntegral . fromEnum) event_compression
-    gdk_window_set_event_compression _obj' event_compression'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_events
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_events" gdk_window_set_events :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
-    IO ()
-
-
-windowSetEvents ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    [EventMask] ->                          -- event_mask
-    m ()
-windowSetEvents _obj event_mask = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let event_mask' = gflagsToWord event_mask
-    gdk_window_set_events _obj' event_mask'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_focus_on_map
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "focus_on_map", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "focus_on_map", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_focus_on_map" gdk_window_set_focus_on_map :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- focus_on_map : TBasicType TBoolean
-    IO ()
-
-
-windowSetFocusOnMap ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- focus_on_map
-    m ()
-windowSetFocusOnMap _obj focus_on_map = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let focus_on_map' = (fromIntegral . fromEnum) focus_on_map
-    gdk_window_set_focus_on_map _obj' focus_on_map'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_fullscreen_mode
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TInterface "Gdk" "FullscreenMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TInterface "Gdk" "FullscreenMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_fullscreen_mode" gdk_window_set_fullscreen_mode :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- mode : TInterface "Gdk" "FullscreenMode"
-    IO ()
-
-
-windowSetFullscreenMode ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    FullscreenMode ->                       -- mode
-    m ()
-windowSetFullscreenMode _obj mode = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let mode' = (fromIntegral . fromEnum) mode
-    gdk_window_set_fullscreen_mode _obj' mode'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_functions
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "functions", argType = TInterface "Gdk" "WMFunction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "functions", argType = TInterface "Gdk" "WMFunction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_functions" gdk_window_set_functions :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- functions : TInterface "Gdk" "WMFunction"
-    IO ()
-
-
-windowSetFunctions ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    [WMFunction] ->                         -- functions
-    m ()
-windowSetFunctions _obj functions = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let functions' = gflagsToWord functions
-    gdk_window_set_functions _obj' functions'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_geometry_hints
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "geometry", argType = TInterface "Gdk" "Geometry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "geom_mask", argType = TInterface "Gdk" "WindowHints", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "geometry", argType = TInterface "Gdk" "Geometry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "geom_mask", argType = TInterface "Gdk" "WindowHints", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_geometry_hints" gdk_window_set_geometry_hints :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Geometry ->                         -- geometry : TInterface "Gdk" "Geometry"
-    CUInt ->                                -- geom_mask : TInterface "Gdk" "WindowHints"
-    IO ()
-
-
-windowSetGeometryHints ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Geometry ->                             -- geometry
-    [WindowHints] ->                        -- geom_mask
-    m ()
-windowSetGeometryHints _obj geometry geom_mask = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let geometry' = unsafeManagedPtrGetPtr geometry
-    let geom_mask' = gflagsToWord geom_mask
-    gdk_window_set_geometry_hints _obj' geometry' geom_mask'
-    touchManagedPtr _obj
-    touchManagedPtr geometry
-    return ()
-
--- method Window::set_group
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "leader", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "leader", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_group" gdk_window_set_group :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Window ->                           -- leader : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowSetGroup ::
-    (MonadIO m, WindowK a, WindowK b) =>
-    a ->                                    -- _obj
-    Maybe (b) ->                            -- leader
-    m ()
-windowSetGroup _obj leader = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeLeader <- case leader of
-        Nothing -> return nullPtr
-        Just jLeader -> do
-            let jLeader' = unsafeManagedPtrCastPtr jLeader
-            return jLeader'
-    gdk_window_set_group _obj' maybeLeader
-    touchManagedPtr _obj
-    whenJust leader touchManagedPtr
-    return ()
-
--- method Window::set_icon_list
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbufs", argType = TGList (TInterface "GdkPixbuf" "Pixbuf"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbufs", argType = TGList (TInterface "GdkPixbuf" "Pixbuf"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_icon_list" gdk_window_set_icon_list :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr (GList (Ptr GdkPixbuf.Pixbuf)) ->   -- pixbufs : TGList (TInterface "GdkPixbuf" "Pixbuf")
-    IO ()
-
-
-windowSetIconList ::
-    (MonadIO m, WindowK a, GdkPixbuf.PixbufK b) =>
-    a ->                                    -- _obj
-    [b] ->                                  -- pixbufs
-    m ()
-windowSetIconList _obj pixbufs = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let pixbufs' = map unsafeManagedPtrCastPtr pixbufs
-    pixbufs'' <- packGList pixbufs'
-    gdk_window_set_icon_list _obj' pixbufs''
-    touchManagedPtr _obj
-    mapM_ touchManagedPtr pixbufs
-    g_list_free pixbufs''
-    return ()
-
--- method Window::set_icon_name
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_icon_name" gdk_window_set_icon_name :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CString ->                              -- name : TBasicType TUTF8
-    IO ()
-
-
-windowSetIconName ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Maybe (T.Text) ->                       -- name
-    m ()
-windowSetIconName _obj name = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeName <- case name of
-        Nothing -> return nullPtr
-        Just jName -> do
-            jName' <- textToCString jName
-            return jName'
-    gdk_window_set_icon_name _obj' maybeName
-    touchManagedPtr _obj
-    freeMem maybeName
-    return ()
-
--- method Window::set_keep_above
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_keep_above" gdk_window_set_keep_above :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- setting : TBasicType TBoolean
-    IO ()
-
-
-windowSetKeepAbove ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- setting
-    m ()
-windowSetKeepAbove _obj setting = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let setting' = (fromIntegral . fromEnum) setting
-    gdk_window_set_keep_above _obj' setting'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_keep_below
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_keep_below" gdk_window_set_keep_below :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- setting : TBasicType TBoolean
-    IO ()
-
-
-windowSetKeepBelow ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- setting
-    m ()
-windowSetKeepBelow _obj setting = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let setting' = (fromIntegral . fromEnum) setting
-    gdk_window_set_keep_below _obj' setting'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_modal_hint
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modal", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modal", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_modal_hint" gdk_window_set_modal_hint :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- modal : TBasicType TBoolean
-    IO ()
-
-
-windowSetModalHint ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- modal
-    m ()
-windowSetModalHint _obj modal = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let modal' = (fromIntegral . fromEnum) modal
-    gdk_window_set_modal_hint _obj' modal'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_opacity
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "opacity", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "opacity", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_opacity" gdk_window_set_opacity :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CDouble ->                              -- opacity : TBasicType TDouble
-    IO ()
-
-
-windowSetOpacity ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Double ->                               -- opacity
-    m ()
-windowSetOpacity _obj opacity = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let opacity' = realToFrac opacity
-    gdk_window_set_opacity _obj' opacity'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_opaque_region
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_opaque_region" gdk_window_set_opaque_region :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
-    IO ()
-
-
-windowSetOpaqueRegion ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Maybe (Cairo.Region) ->                 -- region
-    m ()
-windowSetOpaqueRegion _obj region = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeRegion <- case region of
-        Nothing -> return nullPtr
-        Just jRegion -> do
-            let jRegion' = unsafeManagedPtrGetPtr jRegion
-            return jRegion'
-    gdk_window_set_opaque_region _obj' maybeRegion
-    touchManagedPtr _obj
-    whenJust region touchManagedPtr
-    return ()
-
--- method Window::set_override_redirect
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "override_redirect", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "override_redirect", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_override_redirect" gdk_window_set_override_redirect :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- override_redirect : TBasicType TBoolean
-    IO ()
-
-
-windowSetOverrideRedirect ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- override_redirect
-    m ()
-windowSetOverrideRedirect _obj override_redirect = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let override_redirect' = (fromIntegral . fromEnum) override_redirect
-    gdk_window_set_override_redirect _obj' override_redirect'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_pass_through
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pass_through", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pass_through", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_pass_through" gdk_window_set_pass_through :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- pass_through : TBasicType TBoolean
-    IO ()
-
-
-windowSetPassThrough ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- pass_through
-    m ()
-windowSetPassThrough _obj pass_through = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let pass_through' = (fromIntegral . fromEnum) pass_through
-    gdk_window_set_pass_through _obj' pass_through'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_role
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "role", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "role", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_role" gdk_window_set_role :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CString ->                              -- role : TBasicType TUTF8
-    IO ()
-
-
-windowSetRole ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- role
-    m ()
-windowSetRole _obj role = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    role' <- textToCString role
-    gdk_window_set_role _obj' role'
-    touchManagedPtr _obj
-    freeMem role'
-    return ()
-
--- method Window::set_shadow_width
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "left", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "right", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "top", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bottom", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "left", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "right", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "top", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bottom", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_shadow_width" gdk_window_set_shadow_width :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- left : TBasicType TInt32
-    Int32 ->                                -- right : TBasicType TInt32
-    Int32 ->                                -- top : TBasicType TInt32
-    Int32 ->                                -- bottom : TBasicType TInt32
-    IO ()
-
-
-windowSetShadowWidth ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- left
-    Int32 ->                                -- right
-    Int32 ->                                -- top
-    Int32 ->                                -- bottom
-    m ()
-windowSetShadowWidth _obj left right top bottom = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_set_shadow_width _obj' left right top bottom
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_skip_pager_hint
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "skips_pager", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "skips_pager", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_skip_pager_hint" gdk_window_set_skip_pager_hint :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- skips_pager : TBasicType TBoolean
-    IO ()
-
-
-windowSetSkipPagerHint ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- skips_pager
-    m ()
-windowSetSkipPagerHint _obj skips_pager = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let skips_pager' = (fromIntegral . fromEnum) skips_pager
-    gdk_window_set_skip_pager_hint _obj' skips_pager'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_skip_taskbar_hint
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "skips_taskbar", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "skips_taskbar", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_skip_taskbar_hint" gdk_window_set_skip_taskbar_hint :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- skips_taskbar : TBasicType TBoolean
-    IO ()
-
-
-windowSetSkipTaskbarHint ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- skips_taskbar
-    m ()
-windowSetSkipTaskbarHint _obj skips_taskbar = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let skips_taskbar' = (fromIntegral . fromEnum) skips_taskbar
-    gdk_window_set_skip_taskbar_hint _obj' skips_taskbar'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_source_events
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TInterface "Gdk" "InputSource", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TInterface "Gdk" "InputSource", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_source_events" gdk_window_set_source_events :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- source : TInterface "Gdk" "InputSource"
-    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
-    IO ()
-
-
-windowSetSourceEvents ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    InputSource ->                          -- source
-    [EventMask] ->                          -- event_mask
-    m ()
-windowSetSourceEvents _obj source event_mask = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let source' = (fromIntegral . fromEnum) source
-    let event_mask' = gflagsToWord event_mask
-    gdk_window_set_source_events _obj' source' event_mask'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_startup_id
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_startup_id" gdk_window_set_startup_id :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CString ->                              -- startup_id : TBasicType TUTF8
-    IO ()
-
-
-windowSetStartupId ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- startup_id
-    m ()
-windowSetStartupId _obj startup_id = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    startup_id' <- textToCString startup_id
-    gdk_window_set_startup_id _obj' startup_id'
-    touchManagedPtr _obj
-    freeMem startup_id'
-    return ()
-
--- method Window::set_static_gravities
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "use_static", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "use_static", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_static_gravities" gdk_window_set_static_gravities :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- use_static : TBasicType TBoolean
-    IO CInt
-
-{-# DEPRECATED windowSetStaticGravities ["(Since version 3.16)","static gravities haven't worked on anything but X11","  for a long time."]#-}
-windowSetStaticGravities ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- use_static
-    m Bool
-windowSetStaticGravities _obj use_static = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let use_static' = (fromIntegral . fromEnum) use_static
-    result <- gdk_window_set_static_gravities _obj' use_static'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::set_support_multidevice
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "support_multidevice", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "support_multidevice", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_support_multidevice" gdk_window_set_support_multidevice :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- support_multidevice : TBasicType TBoolean
-    IO ()
-
-
-windowSetSupportMultidevice ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- support_multidevice
-    m ()
-windowSetSupportMultidevice _obj support_multidevice = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let support_multidevice' = (fromIntegral . fromEnum) support_multidevice
-    gdk_window_set_support_multidevice _obj' support_multidevice'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_title
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "title", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "title", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_title" gdk_window_set_title :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CString ->                              -- title : TBasicType TUTF8
-    IO ()
-
-
-windowSetTitle ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- title
-    m ()
-windowSetTitle _obj title = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    title' <- textToCString title
-    gdk_window_set_title _obj' title'
-    touchManagedPtr _obj
-    freeMem title'
-    return ()
-
--- method Window::set_transient_for
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_transient_for" gdk_window_set_transient_for :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Window ->                           -- parent : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowSetTransientFor ::
-    (MonadIO m, WindowK a, WindowK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- parent
-    m ()
-windowSetTransientFor _obj parent = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let parent' = unsafeManagedPtrCastPtr parent
-    gdk_window_set_transient_for _obj' parent'
-    touchManagedPtr _obj
-    touchManagedPtr parent
-    return ()
-
--- method Window::set_type_hint
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hint", argType = TInterface "Gdk" "WindowTypeHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hint", argType = TInterface "Gdk" "WindowTypeHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_type_hint" gdk_window_set_type_hint :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- hint : TInterface "Gdk" "WindowTypeHint"
-    IO ()
-
-
-windowSetTypeHint ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    WindowTypeHint ->                       -- hint
-    m ()
-windowSetTypeHint _obj hint = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let hint' = (fromIntegral . fromEnum) hint
-    gdk_window_set_type_hint _obj' hint'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_urgency_hint
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "urgent", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "urgent", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_urgency_hint" gdk_window_set_urgency_hint :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- urgent : TBasicType TBoolean
-    IO ()
-
-
-windowSetUrgencyHint ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- urgent
-    m ()
-windowSetUrgencyHint _obj urgent = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let urgent' = (fromIntegral . fromEnum) urgent
-    gdk_window_set_urgency_hint _obj' urgent'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_user_data
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_user_data" gdk_window_set_user_data :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr GObject.Object ->                   -- user_data : TInterface "GObject" "Object"
-    IO ()
-
-
-windowSetUserData ::
-    (MonadIO m, WindowK a, GObject.ObjectK b) =>
-    a ->                                    -- _obj
-    Maybe (b) ->                            -- user_data
-    m ()
-windowSetUserData _obj user_data = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeUser_data <- case user_data of
-        Nothing -> return nullPtr
-        Just jUser_data -> do
-            let jUser_data' = unsafeManagedPtrCastPtr jUser_data
-            return jUser_data'
-    gdk_window_set_user_data _obj' maybeUser_data
-    touchManagedPtr _obj
-    whenJust user_data touchManagedPtr
-    return ()
-
--- method Window::shape_combine_region
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shape_region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shape_region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_shape_combine_region" gdk_window_shape_combine_region :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Region ->                     -- shape_region : TInterface "cairo" "Region"
-    Int32 ->                                -- offset_x : TBasicType TInt32
-    Int32 ->                                -- offset_y : TBasicType TInt32
-    IO ()
-
-
-windowShapeCombineRegion ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Maybe (Cairo.Region) ->                 -- shape_region
-    Int32 ->                                -- offset_x
-    Int32 ->                                -- offset_y
-    m ()
-windowShapeCombineRegion _obj shape_region offset_x offset_y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeShape_region <- case shape_region of
-        Nothing -> return nullPtr
-        Just jShape_region -> do
-            let jShape_region' = unsafeManagedPtrGetPtr jShape_region
-            return jShape_region'
-    gdk_window_shape_combine_region _obj' maybeShape_region offset_x offset_y
-    touchManagedPtr _obj
-    whenJust shape_region touchManagedPtr
-    return ()
-
--- method Window::show
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_show" gdk_window_show :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowShow ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowShow _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_show _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::show_unraised
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_show_unraised" gdk_window_show_unraised :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowShowUnraised ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowShowUnraised _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_show_unraised _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::show_window_menu
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_show_window_menu" gdk_window_show_window_menu :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Event ->                            -- event : TInterface "Gdk" "Event"
-    IO CInt
-
-
-windowShowWindowMenu ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Event ->                                -- event
-    m Bool
-windowShowWindowMenu _obj event = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let event' = unsafeManagedPtrGetPtr event
-    result <- gdk_window_show_window_menu _obj' event'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    touchManagedPtr event
-    return result'
-
--- method Window::stick
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_stick" gdk_window_stick :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowStick ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowStick _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_stick _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::thaw_toplevel_updates_libgtk_only
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_thaw_toplevel_updates_libgtk_only" gdk_window_thaw_toplevel_updates_libgtk_only :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-{-# DEPRECATED windowThawToplevelUpdatesLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside of GTK+"]#-}
-windowThawToplevelUpdatesLibgtkOnly ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowThawToplevelUpdatesLibgtkOnly _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_thaw_toplevel_updates_libgtk_only _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::thaw_updates
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_thaw_updates" gdk_window_thaw_updates :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowThawUpdates ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowThawUpdates _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_thaw_updates _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::unfullscreen
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_unfullscreen" gdk_window_unfullscreen :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowUnfullscreen ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowUnfullscreen _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_unfullscreen _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::unmaximize
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_unmaximize" gdk_window_unmaximize :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowUnmaximize ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowUnmaximize _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_unmaximize _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::unstick
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_unstick" gdk_window_unstick :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowUnstick ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowUnstick _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_unstick _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::withdraw
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_withdraw" gdk_window_withdraw :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowWithdraw ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowWithdraw _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_withdraw _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::at_pointer
--- method type : MemberFunction
--- Args : [Arg {argName = "win_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "win_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_at_pointer" gdk_window_at_pointer :: 
-    Ptr Int32 ->                            -- win_x : TBasicType TInt32
-    Ptr Int32 ->                            -- win_y : TBasicType TInt32
-    IO (Ptr Window)
-
-{-# DEPRECATED windowAtPointer ["(Since version 3.0)","Use gdk_device_get_window_at_position() instead."]#-}
-windowAtPointer ::
-    (MonadIO m) =>
-    m (Window,Int32,Int32)
-windowAtPointer  = liftIO $ do
-    win_x <- allocMem :: IO (Ptr Int32)
-    win_y <- allocMem :: IO (Ptr Int32)
-    result <- gdk_window_at_pointer win_x win_y
-    checkUnexpectedReturnNULL "gdk_window_at_pointer" result
-    result' <- (newObject Window) result
-    win_x' <- peek win_x
-    win_y' <- peek win_y
-    freeMem win_x
-    freeMem win_y
-    return (result', win_x', win_y')
-
--- method Window::constrain_size
--- method type : MemberFunction
--- Args : [Arg {argName = "geometry", argType = TInterface "Gdk" "Geometry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "Gdk" "WindowHints", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_width", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "new_height", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "geometry", argType = TInterface "Gdk" "Geometry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "Gdk" "WindowHints", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_constrain_size" gdk_window_constrain_size :: 
-    Ptr Geometry ->                         -- geometry : TInterface "Gdk" "Geometry"
-    CUInt ->                                -- flags : TInterface "Gdk" "WindowHints"
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
-    Ptr Int32 ->                            -- new_width : TBasicType TInt32
-    Ptr Int32 ->                            -- new_height : TBasicType TInt32
-    IO ()
-
-
-windowConstrainSize ::
-    (MonadIO m) =>
-    Geometry ->                             -- geometry
-    [WindowHints] ->                        -- flags
-    Int32 ->                                -- width
-    Int32 ->                                -- height
-    m (Int32,Int32)
-windowConstrainSize geometry flags width height = liftIO $ do
-    let geometry' = unsafeManagedPtrGetPtr geometry
-    let flags' = gflagsToWord flags
-    new_width <- allocMem :: IO (Ptr Int32)
-    new_height <- allocMem :: IO (Ptr Int32)
-    gdk_window_constrain_size geometry' flags' width height new_width new_height
-    new_width' <- peek new_width
-    new_height' <- peek new_height
-    touchManagedPtr geometry
-    freeMem new_width
-    freeMem new_height
-    return (new_width', new_height')
-
--- method Window::process_all_updates
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_process_all_updates" gdk_window_process_all_updates :: 
-    IO ()
-
-
-windowProcessAllUpdates ::
-    (MonadIO m) =>
-    m ()
-windowProcessAllUpdates  = liftIO $ do
-    gdk_window_process_all_updates
-    return ()
-
--- method Window::set_debug_updates
--- method type : MemberFunction
--- Args : [Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_debug_updates" gdk_window_set_debug_updates :: 
-    CInt ->                                 -- setting : TBasicType TBoolean
-    IO ()
-
-
-windowSetDebugUpdates ::
-    (MonadIO m) =>
-    Bool ->                                 -- setting
-    m ()
-windowSetDebugUpdates setting = liftIO $ do
-    let setting' = (fromIntegral . fromEnum) setting
-    gdk_window_set_debug_updates setting'
-    return ()
-
--- signal Window::create-surface
-type WindowCreateSurfaceCallback =
-    Int32 ->
-    Int32 ->
-    IO Cairo.Surface
-
-noWindowCreateSurfaceCallback :: Maybe WindowCreateSurfaceCallback
-noWindowCreateSurfaceCallback = Nothing
-
-type WindowCreateSurfaceCallbackC =
-    Ptr () ->                               -- object
-    Int32 ->
-    Int32 ->
-    Ptr () ->                               -- user_data
-    IO (Ptr Cairo.Surface)
-
-foreign import ccall "wrapper"
-    mkWindowCreateSurfaceCallback :: WindowCreateSurfaceCallbackC -> IO (FunPtr WindowCreateSurfaceCallbackC)
-
-windowCreateSurfaceClosure :: WindowCreateSurfaceCallback -> IO Closure
-windowCreateSurfaceClosure cb = newCClosure =<< mkWindowCreateSurfaceCallback wrapped
-    where wrapped = windowCreateSurfaceCallbackWrapper cb
-
-windowCreateSurfaceCallbackWrapper ::
-    WindowCreateSurfaceCallback ->
-    Ptr () ->
-    Int32 ->
-    Int32 ->
-    Ptr () ->
-    IO (Ptr Cairo.Surface)
-windowCreateSurfaceCallbackWrapper _cb _ width height _ = do
-    result <- _cb  width height
-    result' <- copyBoxed result
-    return result'
-
-onWindowCreateSurface :: (GObject a, MonadIO m) => a -> WindowCreateSurfaceCallback -> m SignalHandlerId
-onWindowCreateSurface obj cb = liftIO $ connectWindowCreateSurface obj cb SignalConnectBefore
-afterWindowCreateSurface :: (GObject a, MonadIO m) => a -> WindowCreateSurfaceCallback -> m SignalHandlerId
-afterWindowCreateSurface obj cb = connectWindowCreateSurface obj cb SignalConnectAfter
-
-connectWindowCreateSurface :: (GObject a, MonadIO m) =>
-                              a -> WindowCreateSurfaceCallback -> SignalConnectMode -> m SignalHandlerId
-connectWindowCreateSurface obj cb after = liftIO $ do
-    cb' <- mkWindowCreateSurfaceCallback (windowCreateSurfaceCallbackWrapper cb)
-    connectSignalFunPtr obj "create-surface" cb' after
-
--- signal Window::from-embedder
-type WindowFromEmbedderCallback =
-    Double ->
-    Double ->
-    IO (Double,Double)
-
-noWindowFromEmbedderCallback :: Maybe WindowFromEmbedderCallback
-noWindowFromEmbedderCallback = Nothing
-
-type WindowFromEmbedderCallbackC =
-    Ptr () ->                               -- object
-    CDouble ->
-    CDouble ->
-    Ptr CDouble ->
-    Ptr CDouble ->
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkWindowFromEmbedderCallback :: WindowFromEmbedderCallbackC -> IO (FunPtr WindowFromEmbedderCallbackC)
-
-windowFromEmbedderClosure :: WindowFromEmbedderCallback -> IO Closure
-windowFromEmbedderClosure cb = newCClosure =<< mkWindowFromEmbedderCallback wrapped
-    where wrapped = windowFromEmbedderCallbackWrapper cb
-
-windowFromEmbedderCallbackWrapper ::
-    WindowFromEmbedderCallback ->
-    Ptr () ->
-    CDouble ->
-    CDouble ->
-    Ptr CDouble ->
-    Ptr CDouble ->
-    Ptr () ->
-    IO ()
-windowFromEmbedderCallbackWrapper _cb _ embedder_x embedder_y offscreen_x offscreen_y _ = do
-    let embedder_x' = realToFrac embedder_x
-    let embedder_y' = realToFrac embedder_y
-    (outoffscreen_x, outoffscreen_y) <- _cb  embedder_x' embedder_y'
-    let outoffscreen_x' = realToFrac outoffscreen_x
-    poke offscreen_x outoffscreen_x'
-    let outoffscreen_y' = realToFrac outoffscreen_y
-    poke offscreen_y outoffscreen_y'
-
-onWindowFromEmbedder :: (GObject a, MonadIO m) => a -> WindowFromEmbedderCallback -> m SignalHandlerId
-onWindowFromEmbedder obj cb = liftIO $ connectWindowFromEmbedder obj cb SignalConnectBefore
-afterWindowFromEmbedder :: (GObject a, MonadIO m) => a -> WindowFromEmbedderCallback -> m SignalHandlerId
-afterWindowFromEmbedder obj cb = connectWindowFromEmbedder obj cb SignalConnectAfter
-
-connectWindowFromEmbedder :: (GObject a, MonadIO m) =>
-                             a -> WindowFromEmbedderCallback -> SignalConnectMode -> m SignalHandlerId
-connectWindowFromEmbedder obj cb after = liftIO $ do
-    cb' <- mkWindowFromEmbedderCallback (windowFromEmbedderCallbackWrapper cb)
-    connectSignalFunPtr obj "from-embedder" cb' after
-
--- signal Window::pick-embedded-child
-type WindowPickEmbeddedChildCallback =
-    Double ->
-    Double ->
-    IO Window
-
-noWindowPickEmbeddedChildCallback :: Maybe WindowPickEmbeddedChildCallback
-noWindowPickEmbeddedChildCallback = Nothing
-
-type WindowPickEmbeddedChildCallbackC =
-    Ptr () ->                               -- object
-    CDouble ->
-    CDouble ->
-    Ptr () ->                               -- user_data
-    IO (Ptr Window)
-
-foreign import ccall "wrapper"
-    mkWindowPickEmbeddedChildCallback :: WindowPickEmbeddedChildCallbackC -> IO (FunPtr WindowPickEmbeddedChildCallbackC)
-
-windowPickEmbeddedChildClosure :: WindowPickEmbeddedChildCallback -> IO Closure
-windowPickEmbeddedChildClosure cb = newCClosure =<< mkWindowPickEmbeddedChildCallback wrapped
-    where wrapped = windowPickEmbeddedChildCallbackWrapper cb
-
-windowPickEmbeddedChildCallbackWrapper ::
-    WindowPickEmbeddedChildCallback ->
-    Ptr () ->
-    CDouble ->
-    CDouble ->
-    Ptr () ->
-    IO (Ptr Window)
-windowPickEmbeddedChildCallbackWrapper _cb _ x y _ = do
-    let x' = realToFrac x
-    let y' = realToFrac y
-    result <- _cb  x' y'
-    let result' = unsafeManagedPtrCastPtr result
-    return result'
-
-onWindowPickEmbeddedChild :: (GObject a, MonadIO m) => a -> WindowPickEmbeddedChildCallback -> m SignalHandlerId
-onWindowPickEmbeddedChild obj cb = liftIO $ connectWindowPickEmbeddedChild obj cb SignalConnectBefore
-afterWindowPickEmbeddedChild :: (GObject a, MonadIO m) => a -> WindowPickEmbeddedChildCallback -> m SignalHandlerId
-afterWindowPickEmbeddedChild obj cb = connectWindowPickEmbeddedChild obj cb SignalConnectAfter
-
-connectWindowPickEmbeddedChild :: (GObject a, MonadIO m) =>
-                                  a -> WindowPickEmbeddedChildCallback -> SignalConnectMode -> m SignalHandlerId
-connectWindowPickEmbeddedChild obj cb after = liftIO $ do
-    cb' <- mkWindowPickEmbeddedChildCallback (windowPickEmbeddedChildCallbackWrapper cb)
-    connectSignalFunPtr obj "pick-embedded-child" cb' after
-
--- signal Window::to-embedder
-type WindowToEmbedderCallback =
-    Double ->
-    Double ->
-    IO (Double,Double)
-
-noWindowToEmbedderCallback :: Maybe WindowToEmbedderCallback
-noWindowToEmbedderCallback = Nothing
-
-type WindowToEmbedderCallbackC =
-    Ptr () ->                               -- object
-    CDouble ->
-    CDouble ->
-    Ptr CDouble ->
-    Ptr CDouble ->
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkWindowToEmbedderCallback :: WindowToEmbedderCallbackC -> IO (FunPtr WindowToEmbedderCallbackC)
-
-windowToEmbedderClosure :: WindowToEmbedderCallback -> IO Closure
-windowToEmbedderClosure cb = newCClosure =<< mkWindowToEmbedderCallback wrapped
-    where wrapped = windowToEmbedderCallbackWrapper cb
-
-windowToEmbedderCallbackWrapper ::
-    WindowToEmbedderCallback ->
-    Ptr () ->
-    CDouble ->
-    CDouble ->
-    Ptr CDouble ->
-    Ptr CDouble ->
-    Ptr () ->
-    IO ()
-windowToEmbedderCallbackWrapper _cb _ offscreen_x offscreen_y embedder_x embedder_y _ = do
-    let offscreen_x' = realToFrac offscreen_x
-    let offscreen_y' = realToFrac offscreen_y
-    (outembedder_x, outembedder_y) <- _cb  offscreen_x' offscreen_y'
-    let outembedder_x' = realToFrac outembedder_x
-    poke embedder_x outembedder_x'
-    let outembedder_y' = realToFrac outembedder_y
-    poke embedder_y outembedder_y'
-
-onWindowToEmbedder :: (GObject a, MonadIO m) => a -> WindowToEmbedderCallback -> m SignalHandlerId
-onWindowToEmbedder obj cb = liftIO $ connectWindowToEmbedder obj cb SignalConnectBefore
-afterWindowToEmbedder :: (GObject a, MonadIO m) => a -> WindowToEmbedderCallback -> m SignalHandlerId
-afterWindowToEmbedder obj cb = connectWindowToEmbedder obj cb SignalConnectAfter
-
-connectWindowToEmbedder :: (GObject a, MonadIO m) =>
-                           a -> WindowToEmbedderCallback -> SignalConnectMode -> m SignalHandlerId
-connectWindowToEmbedder obj cb after = liftIO $ do
-    cb' <- mkWindowToEmbedderCallback (windowToEmbedderCallbackWrapper cb)
-    connectSignalFunPtr obj "to-embedder" cb' after
-
--- struct WindowAttr
-newtype WindowAttr = WindowAttr (ForeignPtr WindowAttr)
-noWindowAttr :: Maybe WindowAttr
-noWindowAttr = Nothing
-
-windowAttrReadTitle :: WindowAttr -> IO T.Text
-windowAttrReadTitle s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 0) :: IO CString
-    val' <- cstringToText val
-    return val'
-
-windowAttrReadEventMask :: WindowAttr -> IO Int32
-windowAttrReadEventMask s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 8) :: IO Int32
-    return val
-
-windowAttrReadX :: WindowAttr -> IO Int32
-windowAttrReadX s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 12) :: IO Int32
-    return val
-
-windowAttrReadY :: WindowAttr -> IO Int32
-windowAttrReadY s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 16) :: IO Int32
-    return val
-
-windowAttrReadWidth :: WindowAttr -> IO Int32
-windowAttrReadWidth s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 20) :: IO Int32
-    return val
-
-windowAttrReadHeight :: WindowAttr -> IO Int32
-windowAttrReadHeight s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 24) :: IO Int32
-    return val
-
-windowAttrReadWclass :: WindowAttr -> IO WindowWindowClass
-windowAttrReadWclass s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 28) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-windowAttrReadVisual :: WindowAttr -> IO Visual
-windowAttrReadVisual s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 32) :: IO (Ptr Visual)
-    val' <- (newObject Visual) val
-    return val'
-
-windowAttrReadWindowType :: WindowAttr -> IO WindowType
-windowAttrReadWindowType s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 40) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
-windowAttrReadCursor :: WindowAttr -> IO Cursor
-windowAttrReadCursor s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 48) :: IO (Ptr Cursor)
-    val' <- (newObject Cursor) val
-    return val'
-
-windowAttrReadWmclassName :: WindowAttr -> IO T.Text
-windowAttrReadWmclassName s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 56) :: IO CString
-    val' <- cstringToText val
-    return val'
-
-windowAttrReadWmclassClass :: WindowAttr -> IO T.Text
-windowAttrReadWmclassClass s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 64) :: IO CString
-    val' <- cstringToText val
-    return val'
-
-windowAttrReadOverrideRedirect :: WindowAttr -> IO Bool
-windowAttrReadOverrideRedirect s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 72) :: IO CInt
-    let val' = (/= 0) val
-    return val'
-
-windowAttrReadTypeHint :: WindowAttr -> IO WindowTypeHint
-windowAttrReadTypeHint s = withManagedPtr s $ \ptr -> do
-    val <- peek (ptr `plusPtr` 76) :: IO CUInt
-    let val' = (toEnum . fromIntegral) val
-    return val'
-
--- Flags WindowAttributesType
-
-data WindowAttributesType = 
-      WindowAttributesTypeTitle
-    | WindowAttributesTypeX
-    | WindowAttributesTypeY
-    | WindowAttributesTypeCursor
-    | WindowAttributesTypeVisual
-    | WindowAttributesTypeWmclass
-    | WindowAttributesTypeNoredir
-    | WindowAttributesTypeTypeHint
-    | AnotherWindowAttributesType Int
-    deriving (Show, Eq)
-
-instance Enum WindowAttributesType where
-    fromEnum WindowAttributesTypeTitle = 2
-    fromEnum WindowAttributesTypeX = 4
-    fromEnum WindowAttributesTypeY = 8
-    fromEnum WindowAttributesTypeCursor = 16
-    fromEnum WindowAttributesTypeVisual = 32
-    fromEnum WindowAttributesTypeWmclass = 64
-    fromEnum WindowAttributesTypeNoredir = 128
-    fromEnum WindowAttributesTypeTypeHint = 256
-    fromEnum (AnotherWindowAttributesType k) = k
-
-    toEnum 2 = WindowAttributesTypeTitle
-    toEnum 4 = WindowAttributesTypeX
-    toEnum 8 = WindowAttributesTypeY
-    toEnum 16 = WindowAttributesTypeCursor
-    toEnum 32 = WindowAttributesTypeVisual
-    toEnum 64 = WindowAttributesTypeWmclass
-    toEnum 128 = WindowAttributesTypeNoredir
-    toEnum 256 = WindowAttributesTypeTypeHint
-    toEnum k = AnotherWindowAttributesType k
-
-foreign import ccall "gdk_window_attributes_type_get_type" c_gdk_window_attributes_type_get_type :: 
-    IO GType
-
-instance BoxedEnum WindowAttributesType where
-    boxedEnumType _ = c_gdk_window_attributes_type_get_type
-
-instance IsGFlag WindowAttributesType
-
--- callback WindowChildFunc
-windowChildFuncClosure :: WindowChildFunc -> IO Closure
-windowChildFuncClosure cb = newCClosure =<< mkWindowChildFunc wrapped
-    where wrapped = windowChildFuncWrapper Nothing cb
-
-type WindowChildFuncC =
-    Ptr Window ->
-    Ptr () ->
-    IO CInt
-
-foreign import ccall "wrapper"
-    mkWindowChildFunc :: WindowChildFuncC -> IO (FunPtr WindowChildFuncC)
-
-type WindowChildFunc =
-    Window ->
-    IO Bool
-
-noWindowChildFunc :: Maybe WindowChildFunc
-noWindowChildFunc = Nothing
-
-windowChildFuncWrapper ::
-    Maybe (Ptr (FunPtr (WindowChildFuncC))) ->
-    WindowChildFunc ->
-    Ptr Window ->
-    Ptr () ->
-    IO CInt
-windowChildFuncWrapper funptrptr _cb window _ = do
-    window' <- (newObject Window) window
-    result <- _cb  window'
-    maybeReleaseFunPtr funptrptr
-    let result' = (fromIntegral . fromEnum) result
-    return result'
-
--- Enum WindowEdge
-
-data WindowEdge = 
-      WindowEdgeNorthWest
-    | WindowEdgeNorth
-    | WindowEdgeNorthEast
-    | WindowEdgeWest
-    | WindowEdgeEast
-    | WindowEdgeSouthWest
-    | WindowEdgeSouth
-    | WindowEdgeSouthEast
-    | AnotherWindowEdge Int
-    deriving (Show, Eq)
-
-instance Enum WindowEdge where
-    fromEnum WindowEdgeNorthWest = 0
-    fromEnum WindowEdgeNorth = 1
-    fromEnum WindowEdgeNorthEast = 2
-    fromEnum WindowEdgeWest = 3
-    fromEnum WindowEdgeEast = 4
-    fromEnum WindowEdgeSouthWest = 5
-    fromEnum WindowEdgeSouth = 6
-    fromEnum WindowEdgeSouthEast = 7
-    fromEnum (AnotherWindowEdge k) = k
-
-    toEnum 0 = WindowEdgeNorthWest
-    toEnum 1 = WindowEdgeNorth
-    toEnum 2 = WindowEdgeNorthEast
-    toEnum 3 = WindowEdgeWest
-    toEnum 4 = WindowEdgeEast
-    toEnum 5 = WindowEdgeSouthWest
-    toEnum 6 = WindowEdgeSouth
-    toEnum 7 = WindowEdgeSouthEast
-    toEnum k = AnotherWindowEdge k
-
-foreign import ccall "gdk_window_edge_get_type" c_gdk_window_edge_get_type :: 
-    IO GType
-
-instance BoxedEnum WindowEdge where
-    boxedEnumType _ = c_gdk_window_edge_get_type
-
--- Flags WindowHints
-
-data WindowHints = 
-      WindowHintsPos
-    | WindowHintsMinSize
-    | WindowHintsMaxSize
-    | WindowHintsBaseSize
-    | WindowHintsAspect
-    | WindowHintsResizeInc
-    | WindowHintsWinGravity
-    | WindowHintsUserPos
-    | WindowHintsUserSize
-    | AnotherWindowHints Int
-    deriving (Show, Eq)
-
-instance Enum WindowHints where
-    fromEnum WindowHintsPos = 1
-    fromEnum WindowHintsMinSize = 2
-    fromEnum WindowHintsMaxSize = 4
-    fromEnum WindowHintsBaseSize = 8
-    fromEnum WindowHintsAspect = 16
-    fromEnum WindowHintsResizeInc = 32
-    fromEnum WindowHintsWinGravity = 64
-    fromEnum WindowHintsUserPos = 128
-    fromEnum WindowHintsUserSize = 256
-    fromEnum (AnotherWindowHints k) = k
-
-    toEnum 1 = WindowHintsPos
-    toEnum 2 = WindowHintsMinSize
-    toEnum 4 = WindowHintsMaxSize
-    toEnum 8 = WindowHintsBaseSize
-    toEnum 16 = WindowHintsAspect
-    toEnum 32 = WindowHintsResizeInc
-    toEnum 64 = WindowHintsWinGravity
-    toEnum 128 = WindowHintsUserPos
-    toEnum 256 = WindowHintsUserSize
-    toEnum k = AnotherWindowHints k
-
-foreign import ccall "gdk_window_hints_get_type" c_gdk_window_hints_get_type :: 
-    IO GType
-
-instance BoxedEnum WindowHints where
-    boxedEnumType _ = c_gdk_window_hints_get_type
-
-instance IsGFlag WindowHints
-
--- callback WindowInvalidateHandlerFunc
-windowInvalidateHandlerFuncClosure :: WindowInvalidateHandlerFunc -> IO Closure
-windowInvalidateHandlerFuncClosure cb = newCClosure =<< mkWindowInvalidateHandlerFunc wrapped
-    where wrapped = windowInvalidateHandlerFuncWrapper Nothing cb
-
-type WindowInvalidateHandlerFuncC =
-    Ptr Window ->
-    Ptr Cairo.Region ->
-    IO ()
-
-foreign import ccall "wrapper"
-    mkWindowInvalidateHandlerFunc :: WindowInvalidateHandlerFuncC -> IO (FunPtr WindowInvalidateHandlerFuncC)
-
-type WindowInvalidateHandlerFunc =
-    Window ->
-    Cairo.Region ->
-    IO ()
-
-noWindowInvalidateHandlerFunc :: Maybe WindowInvalidateHandlerFunc
-noWindowInvalidateHandlerFunc = Nothing
-
-windowInvalidateHandlerFuncWrapper ::
-    Maybe (Ptr (FunPtr (WindowInvalidateHandlerFuncC))) ->
-    WindowInvalidateHandlerFunc ->
-    Ptr Window ->
-    Ptr Cairo.Region ->
-    IO ()
-windowInvalidateHandlerFuncWrapper funptrptr _cb window region = do
-    window' <- (newObject Window) window
-    region' <- (newBoxed Cairo.Region) region
-    _cb  window' region'
-    maybeReleaseFunPtr funptrptr
-
--- struct WindowRedirect
-newtype WindowRedirect = WindowRedirect (ForeignPtr WindowRedirect)
-noWindowRedirect :: Maybe WindowRedirect
-noWindowRedirect = Nothing
-
--- Flags WindowState
-
-data WindowState = 
-      WindowStateWithdrawn
-    | WindowStateIconified
-    | WindowStateMaximized
-    | WindowStateSticky
-    | WindowStateFullscreen
-    | WindowStateAbove
-    | WindowStateBelow
-    | WindowStateFocused
-    | WindowStateTiled
-    | AnotherWindowState Int
-    deriving (Show, Eq)
-
-instance Enum WindowState where
-    fromEnum WindowStateWithdrawn = 1
-    fromEnum WindowStateIconified = 2
-    fromEnum WindowStateMaximized = 4
-    fromEnum WindowStateSticky = 8
-    fromEnum WindowStateFullscreen = 16
-    fromEnum WindowStateAbove = 32
-    fromEnum WindowStateBelow = 64
-    fromEnum WindowStateFocused = 128
-    fromEnum WindowStateTiled = 256
-    fromEnum (AnotherWindowState k) = k
-
-    toEnum 1 = WindowStateWithdrawn
-    toEnum 2 = WindowStateIconified
-    toEnum 4 = WindowStateMaximized
-    toEnum 8 = WindowStateSticky
-    toEnum 16 = WindowStateFullscreen
-    toEnum 32 = WindowStateAbove
-    toEnum 64 = WindowStateBelow
-    toEnum 128 = WindowStateFocused
-    toEnum 256 = WindowStateTiled
-    toEnum k = AnotherWindowState k
-
-foreign import ccall "gdk_window_state_get_type" c_gdk_window_state_get_type :: 
-    IO GType
-
-instance BoxedEnum WindowState where
-    boxedEnumType _ = c_gdk_window_state_get_type
-
-instance IsGFlag WindowState
-
--- Enum WindowType
-
-data WindowType = 
-      WindowTypeRoot
-    | WindowTypeToplevel
-    | WindowTypeChild
-    | WindowTypeTemp
-    | WindowTypeForeign
-    | WindowTypeOffscreen
-    | WindowTypeSubsurface
-    | AnotherWindowType Int
-    deriving (Show, Eq)
-
-instance Enum WindowType where
-    fromEnum WindowTypeRoot = 0
-    fromEnum WindowTypeToplevel = 1
-    fromEnum WindowTypeChild = 2
-    fromEnum WindowTypeTemp = 3
-    fromEnum WindowTypeForeign = 4
-    fromEnum WindowTypeOffscreen = 5
-    fromEnum WindowTypeSubsurface = 6
-    fromEnum (AnotherWindowType k) = k
-
-    toEnum 0 = WindowTypeRoot
-    toEnum 1 = WindowTypeToplevel
-    toEnum 2 = WindowTypeChild
-    toEnum 3 = WindowTypeTemp
-    toEnum 4 = WindowTypeForeign
-    toEnum 5 = WindowTypeOffscreen
-    toEnum 6 = WindowTypeSubsurface
-    toEnum k = AnotherWindowType k
-
-foreign import ccall "gdk_window_type_get_type" c_gdk_window_type_get_type :: 
-    IO GType
-
-instance BoxedEnum WindowType where
-    boxedEnumType _ = c_gdk_window_type_get_type
-
--- Enum WindowTypeHint
-
-data WindowTypeHint = 
-      WindowTypeHintNormal
-    | WindowTypeHintDialog
-    | WindowTypeHintMenu
-    | WindowTypeHintToolbar
-    | WindowTypeHintSplashscreen
-    | WindowTypeHintUtility
-    | WindowTypeHintDock
-    | WindowTypeHintDesktop
-    | WindowTypeHintDropdownMenu
-    | WindowTypeHintPopupMenu
-    | WindowTypeHintTooltip
-    | WindowTypeHintNotification
-    | WindowTypeHintCombo
-    | WindowTypeHintDnd
-    | AnotherWindowTypeHint Int
-    deriving (Show, Eq)
-
-instance Enum WindowTypeHint where
-    fromEnum WindowTypeHintNormal = 0
-    fromEnum WindowTypeHintDialog = 1
-    fromEnum WindowTypeHintMenu = 2
-    fromEnum WindowTypeHintToolbar = 3
-    fromEnum WindowTypeHintSplashscreen = 4
-    fromEnum WindowTypeHintUtility = 5
-    fromEnum WindowTypeHintDock = 6
-    fromEnum WindowTypeHintDesktop = 7
-    fromEnum WindowTypeHintDropdownMenu = 8
-    fromEnum WindowTypeHintPopupMenu = 9
-    fromEnum WindowTypeHintTooltip = 10
-    fromEnum WindowTypeHintNotification = 11
-    fromEnum WindowTypeHintCombo = 12
-    fromEnum WindowTypeHintDnd = 13
-    fromEnum (AnotherWindowTypeHint k) = k
-
-    toEnum 0 = WindowTypeHintNormal
-    toEnum 1 = WindowTypeHintDialog
-    toEnum 2 = WindowTypeHintMenu
-    toEnum 3 = WindowTypeHintToolbar
-    toEnum 4 = WindowTypeHintSplashscreen
-    toEnum 5 = WindowTypeHintUtility
-    toEnum 6 = WindowTypeHintDock
-    toEnum 7 = WindowTypeHintDesktop
-    toEnum 8 = WindowTypeHintDropdownMenu
-    toEnum 9 = WindowTypeHintPopupMenu
-    toEnum 10 = WindowTypeHintTooltip
-    toEnum 11 = WindowTypeHintNotification
-    toEnum 12 = WindowTypeHintCombo
-    toEnum 13 = WindowTypeHintDnd
-    toEnum k = AnotherWindowTypeHint k
-
-foreign import ccall "gdk_window_type_hint_get_type" c_gdk_window_type_hint_get_type :: 
-    IO GType
-
-instance BoxedEnum WindowTypeHint where
-    boxedEnumType _ = c_gdk_window_type_hint_get_type
-
--- Enum WindowWindowClass
-
-data WindowWindowClass = 
-      WindowWindowClassInputOutput
-    | WindowWindowClassInputOnly
-    | AnotherWindowWindowClass Int
-    deriving (Show, Eq)
-
-instance Enum WindowWindowClass where
-    fromEnum WindowWindowClassInputOutput = 0
-    fromEnum WindowWindowClassInputOnly = 1
-    fromEnum (AnotherWindowWindowClass k) = k
-
-    toEnum 0 = WindowWindowClassInputOutput
-    toEnum 1 = WindowWindowClassInputOnly
-    toEnum k = AnotherWindowWindowClass k
-
-foreign import ccall "gdk_window_window_class_get_type" c_gdk_window_window_class_get_type :: 
-    IO GType
-
-instance BoxedEnum WindowWindowClass where
-    boxedEnumType _ = c_gdk_window_window_class_get_type
-
--- constant _BUTTON_MIDDLE
-
-_BUTTON_MIDDLE :: Int32
-_BUTTON_MIDDLE = 2
--- constant _BUTTON_PRIMARY
-
-_BUTTON_PRIMARY :: Int32
-_BUTTON_PRIMARY = 1
--- constant _BUTTON_SECONDARY
-
-_BUTTON_SECONDARY :: Int32
-_BUTTON_SECONDARY = 3
--- constant _CURRENT_TIME
-
-_CURRENT_TIME :: Int32
-_CURRENT_TIME = 0
--- constant _EVENT_PROPAGATE
-
-_EVENT_PROPAGATE :: Bool
-_EVENT_PROPAGATE = False
--- constant _EVENT_STOP
-
-_EVENT_STOP :: Bool
-_EVENT_STOP = True
--- constant _KEY_0
-
-_KEY_0 :: Int32
-_KEY_0 = 48
--- constant _KEY_1
-
-_KEY_1 :: Int32
-_KEY_1 = 49
--- constant _KEY_2
-
-_KEY_2 :: Int32
-_KEY_2 = 50
--- constant _KEY_3
-
-_KEY_3 :: Int32
-_KEY_3 = 51
--- constant _KEY_3270_AltCursor
-
-_KEY_3270_AltCursor :: Int32
-_KEY_3270_AltCursor = 64784
--- constant _KEY_3270_Attn
-
-_KEY_3270_Attn :: Int32
-_KEY_3270_Attn = 64782
--- constant _KEY_3270_BackTab
-
-_KEY_3270_BackTab :: Int32
-_KEY_3270_BackTab = 64773
--- constant _KEY_3270_ChangeScreen
-
-_KEY_3270_ChangeScreen :: Int32
-_KEY_3270_ChangeScreen = 64793
--- constant _KEY_3270_Copy
-
-_KEY_3270_Copy :: Int32
-_KEY_3270_Copy = 64789
--- constant _KEY_3270_CursorBlink
-
-_KEY_3270_CursorBlink :: Int32
-_KEY_3270_CursorBlink = 64783
--- constant _KEY_3270_CursorSelect
-
-_KEY_3270_CursorSelect :: Int32
-_KEY_3270_CursorSelect = 64796
--- constant _KEY_3270_DeleteWord
-
-_KEY_3270_DeleteWord :: Int32
-_KEY_3270_DeleteWord = 64794
--- constant _KEY_3270_Duplicate
-
-_KEY_3270_Duplicate :: Int32
-_KEY_3270_Duplicate = 64769
--- constant _KEY_3270_Enter
-
-_KEY_3270_Enter :: Int32
-_KEY_3270_Enter = 64798
--- constant _KEY_3270_EraseEOF
-
-_KEY_3270_EraseEOF :: Int32
-_KEY_3270_EraseEOF = 64774
--- constant _KEY_3270_EraseInput
-
-_KEY_3270_EraseInput :: Int32
-_KEY_3270_EraseInput = 64775
--- constant _KEY_3270_ExSelect
-
-_KEY_3270_ExSelect :: Int32
-_KEY_3270_ExSelect = 64795
--- constant _KEY_3270_FieldMark
-
-_KEY_3270_FieldMark :: Int32
-_KEY_3270_FieldMark = 64770
--- constant _KEY_3270_Ident
-
-_KEY_3270_Ident :: Int32
-_KEY_3270_Ident = 64787
--- constant _KEY_3270_Jump
-
-_KEY_3270_Jump :: Int32
-_KEY_3270_Jump = 64786
--- constant _KEY_3270_KeyClick
-
-_KEY_3270_KeyClick :: Int32
-_KEY_3270_KeyClick = 64785
--- constant _KEY_3270_Left2
-
-_KEY_3270_Left2 :: Int32
-_KEY_3270_Left2 = 64772
--- constant _KEY_3270_PA1
-
-_KEY_3270_PA1 :: Int32
-_KEY_3270_PA1 = 64778
--- constant _KEY_3270_PA2
-
-_KEY_3270_PA2 :: Int32
-_KEY_3270_PA2 = 64779
--- constant _KEY_3270_PA3
-
-_KEY_3270_PA3 :: Int32
-_KEY_3270_PA3 = 64780
--- constant _KEY_3270_Play
-
-_KEY_3270_Play :: Int32
-_KEY_3270_Play = 64790
--- constant _KEY_3270_PrintScreen
-
-_KEY_3270_PrintScreen :: Int32
-_KEY_3270_PrintScreen = 64797
--- constant _KEY_3270_Quit
-
-_KEY_3270_Quit :: Int32
-_KEY_3270_Quit = 64777
--- constant _KEY_3270_Record
-
-_KEY_3270_Record :: Int32
-_KEY_3270_Record = 64792
--- constant _KEY_3270_Reset
-
-_KEY_3270_Reset :: Int32
-_KEY_3270_Reset = 64776
--- constant _KEY_3270_Right2
-
-_KEY_3270_Right2 :: Int32
-_KEY_3270_Right2 = 64771
--- constant _KEY_3270_Rule
-
-_KEY_3270_Rule :: Int32
-_KEY_3270_Rule = 64788
--- constant _KEY_3270_Setup
-
-_KEY_3270_Setup :: Int32
-_KEY_3270_Setup = 64791
--- constant _KEY_3270_Test
-
-_KEY_3270_Test :: Int32
-_KEY_3270_Test = 64781
--- constant _KEY_4
-
-_KEY_4 :: Int32
-_KEY_4 = 52
--- constant _KEY_5
-
-_KEY_5 :: Int32
-_KEY_5 = 53
--- constant _KEY_6
-
-_KEY_6 :: Int32
-_KEY_6 = 54
--- constant _KEY_7
-
-_KEY_7 :: Int32
-_KEY_7 = 55
--- constant _KEY_8
-
-_KEY_8 :: Int32
-_KEY_8 = 56
--- constant _KEY_9
-
-_KEY_9 :: Int32
-_KEY_9 = 57
--- constant _KEY_A
-
-_KEY_A :: Int32
-_KEY_A = 65
--- constant _KEY_AE
-
-_KEY_AE :: Int32
-_KEY_AE = 198
--- constant _KEY_Aacute
-
-_KEY_Aacute :: Int32
-_KEY_Aacute = 193
--- constant _KEY_Abelowdot
-
-_KEY_Abelowdot :: Int32
-_KEY_Abelowdot = 16785056
--- constant _KEY_Abreve
-
-_KEY_Abreve :: Int32
-_KEY_Abreve = 451
--- constant _KEY_Abreveacute
-
-_KEY_Abreveacute :: Int32
-_KEY_Abreveacute = 16785070
--- constant _KEY_Abrevebelowdot
-
-_KEY_Abrevebelowdot :: Int32
-_KEY_Abrevebelowdot = 16785078
--- constant _KEY_Abrevegrave
-
-_KEY_Abrevegrave :: Int32
-_KEY_Abrevegrave = 16785072
--- constant _KEY_Abrevehook
-
-_KEY_Abrevehook :: Int32
-_KEY_Abrevehook = 16785074
--- constant _KEY_Abrevetilde
-
-_KEY_Abrevetilde :: Int32
-_KEY_Abrevetilde = 16785076
--- constant _KEY_AccessX_Enable
-
-_KEY_AccessX_Enable :: Int32
-_KEY_AccessX_Enable = 65136
--- constant _KEY_AccessX_Feedback_Enable
-
-_KEY_AccessX_Feedback_Enable :: Int32
-_KEY_AccessX_Feedback_Enable = 65137
--- constant _KEY_Acircumflex
-
-_KEY_Acircumflex :: Int32
-_KEY_Acircumflex = 194
--- constant _KEY_Acircumflexacute
-
-_KEY_Acircumflexacute :: Int32
-_KEY_Acircumflexacute = 16785060
--- constant _KEY_Acircumflexbelowdot
-
-_KEY_Acircumflexbelowdot :: Int32
-_KEY_Acircumflexbelowdot = 16785068
--- constant _KEY_Acircumflexgrave
-
-_KEY_Acircumflexgrave :: Int32
-_KEY_Acircumflexgrave = 16785062
--- constant _KEY_Acircumflexhook
-
-_KEY_Acircumflexhook :: Int32
-_KEY_Acircumflexhook = 16785064
--- constant _KEY_Acircumflextilde
-
-_KEY_Acircumflextilde :: Int32
-_KEY_Acircumflextilde = 16785066
--- constant _KEY_AddFavorite
-
-_KEY_AddFavorite :: Int32
-_KEY_AddFavorite = 269025081
--- constant _KEY_Adiaeresis
-
-_KEY_Adiaeresis :: Int32
-_KEY_Adiaeresis = 196
--- constant _KEY_Agrave
-
-_KEY_Agrave :: Int32
-_KEY_Agrave = 192
--- constant _KEY_Ahook
-
-_KEY_Ahook :: Int32
-_KEY_Ahook = 16785058
--- constant _KEY_Alt_L
-
-_KEY_Alt_L :: Int32
-_KEY_Alt_L = 65513
--- constant _KEY_Alt_R
-
-_KEY_Alt_R :: Int32
-_KEY_Alt_R = 65514
--- constant _KEY_Amacron
-
-_KEY_Amacron :: Int32
-_KEY_Amacron = 960
--- constant _KEY_Aogonek
-
-_KEY_Aogonek :: Int32
-_KEY_Aogonek = 417
--- constant _KEY_ApplicationLeft
-
-_KEY_ApplicationLeft :: Int32
-_KEY_ApplicationLeft = 269025104
--- constant _KEY_ApplicationRight
-
-_KEY_ApplicationRight :: Int32
-_KEY_ApplicationRight = 269025105
--- constant _KEY_Arabic_0
-
-_KEY_Arabic_0 :: Int32
-_KEY_Arabic_0 = 16778848
--- constant _KEY_Arabic_1
-
-_KEY_Arabic_1 :: Int32
-_KEY_Arabic_1 = 16778849
--- constant _KEY_Arabic_2
-
-_KEY_Arabic_2 :: Int32
-_KEY_Arabic_2 = 16778850
--- constant _KEY_Arabic_3
-
-_KEY_Arabic_3 :: Int32
-_KEY_Arabic_3 = 16778851
--- constant _KEY_Arabic_4
-
-_KEY_Arabic_4 :: Int32
-_KEY_Arabic_4 = 16778852
--- constant _KEY_Arabic_5
-
-_KEY_Arabic_5 :: Int32
-_KEY_Arabic_5 = 16778853
--- constant _KEY_Arabic_6
-
-_KEY_Arabic_6 :: Int32
-_KEY_Arabic_6 = 16778854
--- constant _KEY_Arabic_7
-
-_KEY_Arabic_7 :: Int32
-_KEY_Arabic_7 = 16778855
--- constant _KEY_Arabic_8
-
-_KEY_Arabic_8 :: Int32
-_KEY_Arabic_8 = 16778856
--- constant _KEY_Arabic_9
-
-_KEY_Arabic_9 :: Int32
-_KEY_Arabic_9 = 16778857
--- constant _KEY_Arabic_ain
-
-_KEY_Arabic_ain :: Int32
-_KEY_Arabic_ain = 1497
--- constant _KEY_Arabic_alef
-
-_KEY_Arabic_alef :: Int32
-_KEY_Arabic_alef = 1479
--- constant _KEY_Arabic_alefmaksura
-
-_KEY_Arabic_alefmaksura :: Int32
-_KEY_Arabic_alefmaksura = 1513
--- constant _KEY_Arabic_beh
-
-_KEY_Arabic_beh :: Int32
-_KEY_Arabic_beh = 1480
--- constant _KEY_Arabic_comma
-
-_KEY_Arabic_comma :: Int32
-_KEY_Arabic_comma = 1452
--- constant _KEY_Arabic_dad
-
-_KEY_Arabic_dad :: Int32
-_KEY_Arabic_dad = 1494
--- constant _KEY_Arabic_dal
-
-_KEY_Arabic_dal :: Int32
-_KEY_Arabic_dal = 1487
--- constant _KEY_Arabic_damma
-
-_KEY_Arabic_damma :: Int32
-_KEY_Arabic_damma = 1519
--- constant _KEY_Arabic_dammatan
-
-_KEY_Arabic_dammatan :: Int32
-_KEY_Arabic_dammatan = 1516
--- constant _KEY_Arabic_ddal
-
-_KEY_Arabic_ddal :: Int32
-_KEY_Arabic_ddal = 16778888
--- constant _KEY_Arabic_farsi_yeh
-
-_KEY_Arabic_farsi_yeh :: Int32
-_KEY_Arabic_farsi_yeh = 16778956
--- constant _KEY_Arabic_fatha
-
-_KEY_Arabic_fatha :: Int32
-_KEY_Arabic_fatha = 1518
--- constant _KEY_Arabic_fathatan
-
-_KEY_Arabic_fathatan :: Int32
-_KEY_Arabic_fathatan = 1515
--- constant _KEY_Arabic_feh
-
-_KEY_Arabic_feh :: Int32
-_KEY_Arabic_feh = 1505
--- constant _KEY_Arabic_fullstop
-
-_KEY_Arabic_fullstop :: Int32
-_KEY_Arabic_fullstop = 16778964
--- constant _KEY_Arabic_gaf
-
-_KEY_Arabic_gaf :: Int32
-_KEY_Arabic_gaf = 16778927
--- constant _KEY_Arabic_ghain
-
-_KEY_Arabic_ghain :: Int32
-_KEY_Arabic_ghain = 1498
--- constant _KEY_Arabic_ha
-
-_KEY_Arabic_ha :: Int32
-_KEY_Arabic_ha = 1511
--- constant _KEY_Arabic_hah
-
-_KEY_Arabic_hah :: Int32
-_KEY_Arabic_hah = 1485
--- constant _KEY_Arabic_hamza
-
-_KEY_Arabic_hamza :: Int32
-_KEY_Arabic_hamza = 1473
--- constant _KEY_Arabic_hamza_above
-
-_KEY_Arabic_hamza_above :: Int32
-_KEY_Arabic_hamza_above = 16778836
--- constant _KEY_Arabic_hamza_below
-
-_KEY_Arabic_hamza_below :: Int32
-_KEY_Arabic_hamza_below = 16778837
--- constant _KEY_Arabic_hamzaonalef
-
-_KEY_Arabic_hamzaonalef :: Int32
-_KEY_Arabic_hamzaonalef = 1475
--- constant _KEY_Arabic_hamzaonwaw
-
-_KEY_Arabic_hamzaonwaw :: Int32
-_KEY_Arabic_hamzaonwaw = 1476
--- constant _KEY_Arabic_hamzaonyeh
-
-_KEY_Arabic_hamzaonyeh :: Int32
-_KEY_Arabic_hamzaonyeh = 1478
--- constant _KEY_Arabic_hamzaunderalef
-
-_KEY_Arabic_hamzaunderalef :: Int32
-_KEY_Arabic_hamzaunderalef = 1477
--- constant _KEY_Arabic_heh
-
-_KEY_Arabic_heh :: Int32
-_KEY_Arabic_heh = 1511
--- constant _KEY_Arabic_heh_doachashmee
-
-_KEY_Arabic_heh_doachashmee :: Int32
-_KEY_Arabic_heh_doachashmee = 16778942
--- constant _KEY_Arabic_heh_goal
-
-_KEY_Arabic_heh_goal :: Int32
-_KEY_Arabic_heh_goal = 16778945
--- constant _KEY_Arabic_jeem
-
-_KEY_Arabic_jeem :: Int32
-_KEY_Arabic_jeem = 1484
--- constant _KEY_Arabic_jeh
-
-_KEY_Arabic_jeh :: Int32
-_KEY_Arabic_jeh = 16778904
--- constant _KEY_Arabic_kaf
-
-_KEY_Arabic_kaf :: Int32
-_KEY_Arabic_kaf = 1507
--- constant _KEY_Arabic_kasra
-
-_KEY_Arabic_kasra :: Int32
-_KEY_Arabic_kasra = 1520
--- constant _KEY_Arabic_kasratan
-
-_KEY_Arabic_kasratan :: Int32
-_KEY_Arabic_kasratan = 1517
--- constant _KEY_Arabic_keheh
-
-_KEY_Arabic_keheh :: Int32
-_KEY_Arabic_keheh = 16778921
--- constant _KEY_Arabic_khah
-
-_KEY_Arabic_khah :: Int32
-_KEY_Arabic_khah = 1486
--- constant _KEY_Arabic_lam
-
-_KEY_Arabic_lam :: Int32
-_KEY_Arabic_lam = 1508
--- constant _KEY_Arabic_madda_above
-
-_KEY_Arabic_madda_above :: Int32
-_KEY_Arabic_madda_above = 16778835
--- constant _KEY_Arabic_maddaonalef
-
-_KEY_Arabic_maddaonalef :: Int32
-_KEY_Arabic_maddaonalef = 1474
--- constant _KEY_Arabic_meem
-
-_KEY_Arabic_meem :: Int32
-_KEY_Arabic_meem = 1509
--- constant _KEY_Arabic_noon
-
-_KEY_Arabic_noon :: Int32
-_KEY_Arabic_noon = 1510
--- constant _KEY_Arabic_noon_ghunna
-
-_KEY_Arabic_noon_ghunna :: Int32
-_KEY_Arabic_noon_ghunna = 16778938
--- constant _KEY_Arabic_peh
-
-_KEY_Arabic_peh :: Int32
-_KEY_Arabic_peh = 16778878
--- constant _KEY_Arabic_percent
-
-_KEY_Arabic_percent :: Int32
-_KEY_Arabic_percent = 16778858
--- constant _KEY_Arabic_qaf
-
-_KEY_Arabic_qaf :: Int32
-_KEY_Arabic_qaf = 1506
--- constant _KEY_Arabic_question_mark
-
-_KEY_Arabic_question_mark :: Int32
-_KEY_Arabic_question_mark = 1471
--- constant _KEY_Arabic_ra
-
-_KEY_Arabic_ra :: Int32
-_KEY_Arabic_ra = 1489
--- constant _KEY_Arabic_rreh
-
-_KEY_Arabic_rreh :: Int32
-_KEY_Arabic_rreh = 16778897
--- constant _KEY_Arabic_sad
-
-_KEY_Arabic_sad :: Int32
-_KEY_Arabic_sad = 1493
--- constant _KEY_Arabic_seen
-
-_KEY_Arabic_seen :: Int32
-_KEY_Arabic_seen = 1491
--- constant _KEY_Arabic_semicolon
-
-_KEY_Arabic_semicolon :: Int32
-_KEY_Arabic_semicolon = 1467
--- constant _KEY_Arabic_shadda
-
-_KEY_Arabic_shadda :: Int32
-_KEY_Arabic_shadda = 1521
--- constant _KEY_Arabic_sheen
-
-_KEY_Arabic_sheen :: Int32
-_KEY_Arabic_sheen = 1492
--- constant _KEY_Arabic_sukun
-
-_KEY_Arabic_sukun :: Int32
-_KEY_Arabic_sukun = 1522
--- constant _KEY_Arabic_superscript_alef
-
-_KEY_Arabic_superscript_alef :: Int32
-_KEY_Arabic_superscript_alef = 16778864
--- constant _KEY_Arabic_switch
-
-_KEY_Arabic_switch :: Int32
-_KEY_Arabic_switch = 65406
--- constant _KEY_Arabic_tah
-
-_KEY_Arabic_tah :: Int32
-_KEY_Arabic_tah = 1495
--- constant _KEY_Arabic_tatweel
-
-_KEY_Arabic_tatweel :: Int32
-_KEY_Arabic_tatweel = 1504
--- constant _KEY_Arabic_tcheh
-
-_KEY_Arabic_tcheh :: Int32
-_KEY_Arabic_tcheh = 16778886
--- constant _KEY_Arabic_teh
-
-_KEY_Arabic_teh :: Int32
-_KEY_Arabic_teh = 1482
--- constant _KEY_Arabic_tehmarbuta
-
-_KEY_Arabic_tehmarbuta :: Int32
-_KEY_Arabic_tehmarbuta = 1481
--- constant _KEY_Arabic_thal
-
-_KEY_Arabic_thal :: Int32
-_KEY_Arabic_thal = 1488
--- constant _KEY_Arabic_theh
-
-_KEY_Arabic_theh :: Int32
-_KEY_Arabic_theh = 1483
--- constant _KEY_Arabic_tteh
-
-_KEY_Arabic_tteh :: Int32
-_KEY_Arabic_tteh = 16778873
--- constant _KEY_Arabic_veh
-
-_KEY_Arabic_veh :: Int32
-_KEY_Arabic_veh = 16778916
--- constant _KEY_Arabic_waw
-
-_KEY_Arabic_waw :: Int32
-_KEY_Arabic_waw = 1512
--- constant _KEY_Arabic_yeh
-
-_KEY_Arabic_yeh :: Int32
-_KEY_Arabic_yeh = 1514
--- constant _KEY_Arabic_yeh_baree
-
-_KEY_Arabic_yeh_baree :: Int32
-_KEY_Arabic_yeh_baree = 16778962
--- constant _KEY_Arabic_zah
-
-_KEY_Arabic_zah :: Int32
-_KEY_Arabic_zah = 1496
--- constant _KEY_Arabic_zain
-
-_KEY_Arabic_zain :: Int32
-_KEY_Arabic_zain = 1490
--- constant _KEY_Aring
-
-_KEY_Aring :: Int32
-_KEY_Aring = 197
--- constant _KEY_Armenian_AT
-
-_KEY_Armenian_AT :: Int32
-_KEY_Armenian_AT = 16778552
--- constant _KEY_Armenian_AYB
-
-_KEY_Armenian_AYB :: Int32
-_KEY_Armenian_AYB = 16778545
--- constant _KEY_Armenian_BEN
-
-_KEY_Armenian_BEN :: Int32
-_KEY_Armenian_BEN = 16778546
--- constant _KEY_Armenian_CHA
-
-_KEY_Armenian_CHA :: Int32
-_KEY_Armenian_CHA = 16778569
--- constant _KEY_Armenian_DA
-
-_KEY_Armenian_DA :: Int32
-_KEY_Armenian_DA = 16778548
--- constant _KEY_Armenian_DZA
-
-_KEY_Armenian_DZA :: Int32
-_KEY_Armenian_DZA = 16778561
--- constant _KEY_Armenian_E
-
-_KEY_Armenian_E :: Int32
-_KEY_Armenian_E = 16778551
--- constant _KEY_Armenian_FE
-
-_KEY_Armenian_FE :: Int32
-_KEY_Armenian_FE = 16778582
--- constant _KEY_Armenian_GHAT
-
-_KEY_Armenian_GHAT :: Int32
-_KEY_Armenian_GHAT = 16778562
--- constant _KEY_Armenian_GIM
-
-_KEY_Armenian_GIM :: Int32
-_KEY_Armenian_GIM = 16778547
--- constant _KEY_Armenian_HI
-
-_KEY_Armenian_HI :: Int32
-_KEY_Armenian_HI = 16778565
--- constant _KEY_Armenian_HO
-
-_KEY_Armenian_HO :: Int32
-_KEY_Armenian_HO = 16778560
--- constant _KEY_Armenian_INI
-
-_KEY_Armenian_INI :: Int32
-_KEY_Armenian_INI = 16778555
--- constant _KEY_Armenian_JE
-
-_KEY_Armenian_JE :: Int32
-_KEY_Armenian_JE = 16778571
--- constant _KEY_Armenian_KE
-
-_KEY_Armenian_KE :: Int32
-_KEY_Armenian_KE = 16778580
--- constant _KEY_Armenian_KEN
-
-_KEY_Armenian_KEN :: Int32
-_KEY_Armenian_KEN = 16778559
--- constant _KEY_Armenian_KHE
-
-_KEY_Armenian_KHE :: Int32
-_KEY_Armenian_KHE = 16778557
--- constant _KEY_Armenian_LYUN
-
-_KEY_Armenian_LYUN :: Int32
-_KEY_Armenian_LYUN = 16778556
--- constant _KEY_Armenian_MEN
-
-_KEY_Armenian_MEN :: Int32
-_KEY_Armenian_MEN = 16778564
--- constant _KEY_Armenian_NU
-
-_KEY_Armenian_NU :: Int32
-_KEY_Armenian_NU = 16778566
--- constant _KEY_Armenian_O
-
-_KEY_Armenian_O :: Int32
-_KEY_Armenian_O = 16778581
--- constant _KEY_Armenian_PE
-
-_KEY_Armenian_PE :: Int32
-_KEY_Armenian_PE = 16778570
--- constant _KEY_Armenian_PYUR
-
-_KEY_Armenian_PYUR :: Int32
-_KEY_Armenian_PYUR = 16778579
--- constant _KEY_Armenian_RA
-
-_KEY_Armenian_RA :: Int32
-_KEY_Armenian_RA = 16778572
--- constant _KEY_Armenian_RE
-
-_KEY_Armenian_RE :: Int32
-_KEY_Armenian_RE = 16778576
--- constant _KEY_Armenian_SE
-
-_KEY_Armenian_SE :: Int32
-_KEY_Armenian_SE = 16778573
--- constant _KEY_Armenian_SHA
-
-_KEY_Armenian_SHA :: Int32
-_KEY_Armenian_SHA = 16778567
--- constant _KEY_Armenian_TCHE
-
-_KEY_Armenian_TCHE :: Int32
-_KEY_Armenian_TCHE = 16778563
--- constant _KEY_Armenian_TO
-
-_KEY_Armenian_TO :: Int32
-_KEY_Armenian_TO = 16778553
--- constant _KEY_Armenian_TSA
-
-_KEY_Armenian_TSA :: Int32
-_KEY_Armenian_TSA = 16778558
--- constant _KEY_Armenian_TSO
-
-_KEY_Armenian_TSO :: Int32
-_KEY_Armenian_TSO = 16778577
--- constant _KEY_Armenian_TYUN
-
-_KEY_Armenian_TYUN :: Int32
-_KEY_Armenian_TYUN = 16778575
--- constant _KEY_Armenian_VEV
-
-_KEY_Armenian_VEV :: Int32
-_KEY_Armenian_VEV = 16778574
--- constant _KEY_Armenian_VO
-
-_KEY_Armenian_VO :: Int32
-_KEY_Armenian_VO = 16778568
--- constant _KEY_Armenian_VYUN
-
-_KEY_Armenian_VYUN :: Int32
-_KEY_Armenian_VYUN = 16778578
--- constant _KEY_Armenian_YECH
-
-_KEY_Armenian_YECH :: Int32
-_KEY_Armenian_YECH = 16778549
--- constant _KEY_Armenian_ZA
-
-_KEY_Armenian_ZA :: Int32
-_KEY_Armenian_ZA = 16778550
--- constant _KEY_Armenian_ZHE
-
-_KEY_Armenian_ZHE :: Int32
-_KEY_Armenian_ZHE = 16778554
--- constant _KEY_Armenian_accent
-
-_KEY_Armenian_accent :: Int32
-_KEY_Armenian_accent = 16778587
--- constant _KEY_Armenian_amanak
-
-_KEY_Armenian_amanak :: Int32
-_KEY_Armenian_amanak = 16778588
--- constant _KEY_Armenian_apostrophe
-
-_KEY_Armenian_apostrophe :: Int32
-_KEY_Armenian_apostrophe = 16778586
--- constant _KEY_Armenian_at
-
-_KEY_Armenian_at :: Int32
-_KEY_Armenian_at = 16778600
--- constant _KEY_Armenian_ayb
-
-_KEY_Armenian_ayb :: Int32
-_KEY_Armenian_ayb = 16778593
--- constant _KEY_Armenian_ben
-
-_KEY_Armenian_ben :: Int32
-_KEY_Armenian_ben = 16778594
--- constant _KEY_Armenian_but
-
-_KEY_Armenian_but :: Int32
-_KEY_Armenian_but = 16778589
--- constant _KEY_Armenian_cha
-
-_KEY_Armenian_cha :: Int32
-_KEY_Armenian_cha = 16778617
--- constant _KEY_Armenian_da
-
-_KEY_Armenian_da :: Int32
-_KEY_Armenian_da = 16778596
--- constant _KEY_Armenian_dza
-
-_KEY_Armenian_dza :: Int32
-_KEY_Armenian_dza = 16778609
--- constant _KEY_Armenian_e
-
-_KEY_Armenian_e :: Int32
-_KEY_Armenian_e = 16778599
--- constant _KEY_Armenian_exclam
-
-_KEY_Armenian_exclam :: Int32
-_KEY_Armenian_exclam = 16778588
--- constant _KEY_Armenian_fe
-
-_KEY_Armenian_fe :: Int32
-_KEY_Armenian_fe = 16778630
--- constant _KEY_Armenian_full_stop
-
-_KEY_Armenian_full_stop :: Int32
-_KEY_Armenian_full_stop = 16778633
--- constant _KEY_Armenian_ghat
-
-_KEY_Armenian_ghat :: Int32
-_KEY_Armenian_ghat = 16778610
--- constant _KEY_Armenian_gim
-
-_KEY_Armenian_gim :: Int32
-_KEY_Armenian_gim = 16778595
--- constant _KEY_Armenian_hi
-
-_KEY_Armenian_hi :: Int32
-_KEY_Armenian_hi = 16778613
--- constant _KEY_Armenian_ho
-
-_KEY_Armenian_ho :: Int32
-_KEY_Armenian_ho = 16778608
--- constant _KEY_Armenian_hyphen
-
-_KEY_Armenian_hyphen :: Int32
-_KEY_Armenian_hyphen = 16778634
--- constant _KEY_Armenian_ini
-
-_KEY_Armenian_ini :: Int32
-_KEY_Armenian_ini = 16778603
--- constant _KEY_Armenian_je
-
-_KEY_Armenian_je :: Int32
-_KEY_Armenian_je = 16778619
--- constant _KEY_Armenian_ke
-
-_KEY_Armenian_ke :: Int32
-_KEY_Armenian_ke = 16778628
--- constant _KEY_Armenian_ken
-
-_KEY_Armenian_ken :: Int32
-_KEY_Armenian_ken = 16778607
--- constant _KEY_Armenian_khe
-
-_KEY_Armenian_khe :: Int32
-_KEY_Armenian_khe = 16778605
--- constant _KEY_Armenian_ligature_ew
-
-_KEY_Armenian_ligature_ew :: Int32
-_KEY_Armenian_ligature_ew = 16778631
--- constant _KEY_Armenian_lyun
-
-_KEY_Armenian_lyun :: Int32
-_KEY_Armenian_lyun = 16778604
--- constant _KEY_Armenian_men
-
-_KEY_Armenian_men :: Int32
-_KEY_Armenian_men = 16778612
--- constant _KEY_Armenian_nu
-
-_KEY_Armenian_nu :: Int32
-_KEY_Armenian_nu = 16778614
--- constant _KEY_Armenian_o
-
-_KEY_Armenian_o :: Int32
-_KEY_Armenian_o = 16778629
--- constant _KEY_Armenian_paruyk
-
-_KEY_Armenian_paruyk :: Int32
-_KEY_Armenian_paruyk = 16778590
--- constant _KEY_Armenian_pe
-
-_KEY_Armenian_pe :: Int32
-_KEY_Armenian_pe = 16778618
--- constant _KEY_Armenian_pyur
-
-_KEY_Armenian_pyur :: Int32
-_KEY_Armenian_pyur = 16778627
--- constant _KEY_Armenian_question
-
-_KEY_Armenian_question :: Int32
-_KEY_Armenian_question = 16778590
--- constant _KEY_Armenian_ra
-
-_KEY_Armenian_ra :: Int32
-_KEY_Armenian_ra = 16778620
--- constant _KEY_Armenian_re
-
-_KEY_Armenian_re :: Int32
-_KEY_Armenian_re = 16778624
--- constant _KEY_Armenian_se
-
-_KEY_Armenian_se :: Int32
-_KEY_Armenian_se = 16778621
--- constant _KEY_Armenian_separation_mark
-
-_KEY_Armenian_separation_mark :: Int32
-_KEY_Armenian_separation_mark = 16778589
--- constant _KEY_Armenian_sha
-
-_KEY_Armenian_sha :: Int32
-_KEY_Armenian_sha = 16778615
--- constant _KEY_Armenian_shesht
-
-_KEY_Armenian_shesht :: Int32
-_KEY_Armenian_shesht = 16778587
--- constant _KEY_Armenian_tche
-
-_KEY_Armenian_tche :: Int32
-_KEY_Armenian_tche = 16778611
--- constant _KEY_Armenian_to
-
-_KEY_Armenian_to :: Int32
-_KEY_Armenian_to = 16778601
--- constant _KEY_Armenian_tsa
-
-_KEY_Armenian_tsa :: Int32
-_KEY_Armenian_tsa = 16778606
--- constant _KEY_Armenian_tso
-
-_KEY_Armenian_tso :: Int32
-_KEY_Armenian_tso = 16778625
--- constant _KEY_Armenian_tyun
-
-_KEY_Armenian_tyun :: Int32
-_KEY_Armenian_tyun = 16778623
--- constant _KEY_Armenian_verjaket
-
-_KEY_Armenian_verjaket :: Int32
-_KEY_Armenian_verjaket = 16778633
--- constant _KEY_Armenian_vev
-
-_KEY_Armenian_vev :: Int32
-_KEY_Armenian_vev = 16778622
--- constant _KEY_Armenian_vo
-
-_KEY_Armenian_vo :: Int32
-_KEY_Armenian_vo = 16778616
--- constant _KEY_Armenian_vyun
-
-_KEY_Armenian_vyun :: Int32
-_KEY_Armenian_vyun = 16778626
--- constant _KEY_Armenian_yech
-
-_KEY_Armenian_yech :: Int32
-_KEY_Armenian_yech = 16778597
--- constant _KEY_Armenian_yentamna
-
-_KEY_Armenian_yentamna :: Int32
-_KEY_Armenian_yentamna = 16778634
--- constant _KEY_Armenian_za
-
-_KEY_Armenian_za :: Int32
-_KEY_Armenian_za = 16778598
--- constant _KEY_Armenian_zhe
-
-_KEY_Armenian_zhe :: Int32
-_KEY_Armenian_zhe = 16778602
--- constant _KEY_Atilde
-
-_KEY_Atilde :: Int32
-_KEY_Atilde = 195
--- constant _KEY_AudibleBell_Enable
-
-_KEY_AudibleBell_Enable :: Int32
-_KEY_AudibleBell_Enable = 65146
--- constant _KEY_AudioCycleTrack
-
-_KEY_AudioCycleTrack :: Int32
-_KEY_AudioCycleTrack = 269025179
--- constant _KEY_AudioForward
-
-_KEY_AudioForward :: Int32
-_KEY_AudioForward = 269025175
--- constant _KEY_AudioLowerVolume
-
-_KEY_AudioLowerVolume :: Int32
-_KEY_AudioLowerVolume = 269025041
--- constant _KEY_AudioMedia
-
-_KEY_AudioMedia :: Int32
-_KEY_AudioMedia = 269025074
--- constant _KEY_AudioMicMute
-
-_KEY_AudioMicMute :: Int32
-_KEY_AudioMicMute = 269025202
--- constant _KEY_AudioMute
-
-_KEY_AudioMute :: Int32
-_KEY_AudioMute = 269025042
--- constant _KEY_AudioNext
-
-_KEY_AudioNext :: Int32
-_KEY_AudioNext = 269025047
--- constant _KEY_AudioPause
-
-_KEY_AudioPause :: Int32
-_KEY_AudioPause = 269025073
--- constant _KEY_AudioPlay
-
-_KEY_AudioPlay :: Int32
-_KEY_AudioPlay = 269025044
--- constant _KEY_AudioPrev
-
-_KEY_AudioPrev :: Int32
-_KEY_AudioPrev = 269025046
--- constant _KEY_AudioRaiseVolume
-
-_KEY_AudioRaiseVolume :: Int32
-_KEY_AudioRaiseVolume = 269025043
--- constant _KEY_AudioRandomPlay
-
-_KEY_AudioRandomPlay :: Int32
-_KEY_AudioRandomPlay = 269025177
--- constant _KEY_AudioRecord
-
-_KEY_AudioRecord :: Int32
-_KEY_AudioRecord = 269025052
--- constant _KEY_AudioRepeat
-
-_KEY_AudioRepeat :: Int32
-_KEY_AudioRepeat = 269025176
--- constant _KEY_AudioRewind
-
-_KEY_AudioRewind :: Int32
-_KEY_AudioRewind = 269025086
--- constant _KEY_AudioStop
-
-_KEY_AudioStop :: Int32
-_KEY_AudioStop = 269025045
--- constant _KEY_Away
-
-_KEY_Away :: Int32
-_KEY_Away = 269025165
--- constant _KEY_B
-
-_KEY_B :: Int32
-_KEY_B = 66
--- constant _KEY_Babovedot
-
-_KEY_Babovedot :: Int32
-_KEY_Babovedot = 16784898
--- constant _KEY_Back
-
-_KEY_Back :: Int32
-_KEY_Back = 269025062
--- constant _KEY_BackForward
-
-_KEY_BackForward :: Int32
-_KEY_BackForward = 269025087
--- constant _KEY_BackSpace
-
-_KEY_BackSpace :: Int32
-_KEY_BackSpace = 65288
--- constant _KEY_Battery
-
-_KEY_Battery :: Int32
-_KEY_Battery = 269025171
--- constant _KEY_Begin
-
-_KEY_Begin :: Int32
-_KEY_Begin = 65368
--- constant _KEY_Blue
-
-_KEY_Blue :: Int32
-_KEY_Blue = 269025190
--- constant _KEY_Bluetooth
-
-_KEY_Bluetooth :: Int32
-_KEY_Bluetooth = 269025172
--- constant _KEY_Book
-
-_KEY_Book :: Int32
-_KEY_Book = 269025106
--- constant _KEY_BounceKeys_Enable
-
-_KEY_BounceKeys_Enable :: Int32
-_KEY_BounceKeys_Enable = 65140
--- constant _KEY_Break
-
-_KEY_Break :: Int32
-_KEY_Break = 65387
--- constant _KEY_BrightnessAdjust
-
-_KEY_BrightnessAdjust :: Int32
-_KEY_BrightnessAdjust = 269025083
--- constant _KEY_Byelorussian_SHORTU
-
-_KEY_Byelorussian_SHORTU :: Int32
-_KEY_Byelorussian_SHORTU = 1726
--- constant _KEY_Byelorussian_shortu
-
-_KEY_Byelorussian_shortu :: Int32
-_KEY_Byelorussian_shortu = 1710
--- constant _KEY_C
-
-_KEY_C :: Int32
-_KEY_C = 67
--- constant _KEY_CD
-
-_KEY_CD :: Int32
-_KEY_CD = 269025107
--- constant _KEY_CH
-
-_KEY_CH :: Int32
-_KEY_CH = 65186
--- constant _KEY_C_H
-
-_KEY_C_H :: Int32
-_KEY_C_H = 65189
--- constant _KEY_C_h
-
-_KEY_C_h :: Int32
-_KEY_C_h = 65188
--- constant _KEY_Cabovedot
-
-_KEY_Cabovedot :: Int32
-_KEY_Cabovedot = 709
--- constant _KEY_Cacute
-
-_KEY_Cacute :: Int32
-_KEY_Cacute = 454
--- constant _KEY_Calculator
-
-_KEY_Calculator :: Int32
-_KEY_Calculator = 269025053
--- constant _KEY_Calendar
-
-_KEY_Calendar :: Int32
-_KEY_Calendar = 269025056
--- constant _KEY_Cancel
-
-_KEY_Cancel :: Int32
-_KEY_Cancel = 65385
--- constant _KEY_Caps_Lock
-
-_KEY_Caps_Lock :: Int32
-_KEY_Caps_Lock = 65509
--- constant _KEY_Ccaron
-
-_KEY_Ccaron :: Int32
-_KEY_Ccaron = 456
--- constant _KEY_Ccedilla
-
-_KEY_Ccedilla :: Int32
-_KEY_Ccedilla = 199
--- constant _KEY_Ccircumflex
-
-_KEY_Ccircumflex :: Int32
-_KEY_Ccircumflex = 710
--- constant _KEY_Ch
-
-_KEY_Ch :: Int32
-_KEY_Ch = 65185
--- constant _KEY_Clear
-
-_KEY_Clear :: Int32
-_KEY_Clear = 65291
--- constant _KEY_ClearGrab
-
-_KEY_ClearGrab :: Int32
-_KEY_ClearGrab = 269024801
--- constant _KEY_Close
-
-_KEY_Close :: Int32
-_KEY_Close = 269025110
--- constant _KEY_Codeinput
-
-_KEY_Codeinput :: Int32
-_KEY_Codeinput = 65335
--- constant _KEY_ColonSign
-
-_KEY_ColonSign :: Int32
-_KEY_ColonSign = 16785569
--- constant _KEY_Community
-
-_KEY_Community :: Int32
-_KEY_Community = 269025085
--- constant _KEY_ContrastAdjust
-
-_KEY_ContrastAdjust :: Int32
-_KEY_ContrastAdjust = 269025058
--- constant _KEY_Control_L
-
-_KEY_Control_L :: Int32
-_KEY_Control_L = 65507
--- constant _KEY_Control_R
-
-_KEY_Control_R :: Int32
-_KEY_Control_R = 65508
--- constant _KEY_Copy
-
-_KEY_Copy :: Int32
-_KEY_Copy = 269025111
--- constant _KEY_CruzeiroSign
-
-_KEY_CruzeiroSign :: Int32
-_KEY_CruzeiroSign = 16785570
--- constant _KEY_Cut
-
-_KEY_Cut :: Int32
-_KEY_Cut = 269025112
--- constant _KEY_CycleAngle
-
-_KEY_CycleAngle :: Int32
-_KEY_CycleAngle = 269025180
--- constant _KEY_Cyrillic_A
-
-_KEY_Cyrillic_A :: Int32
-_KEY_Cyrillic_A = 1761
--- constant _KEY_Cyrillic_BE
-
-_KEY_Cyrillic_BE :: Int32
-_KEY_Cyrillic_BE = 1762
--- constant _KEY_Cyrillic_CHE
-
-_KEY_Cyrillic_CHE :: Int32
-_KEY_Cyrillic_CHE = 1790
--- constant _KEY_Cyrillic_CHE_descender
-
-_KEY_Cyrillic_CHE_descender :: Int32
-_KEY_Cyrillic_CHE_descender = 16778422
--- constant _KEY_Cyrillic_CHE_vertstroke
-
-_KEY_Cyrillic_CHE_vertstroke :: Int32
-_KEY_Cyrillic_CHE_vertstroke = 16778424
--- constant _KEY_Cyrillic_DE
-
-_KEY_Cyrillic_DE :: Int32
-_KEY_Cyrillic_DE = 1764
--- constant _KEY_Cyrillic_DZHE
-
-_KEY_Cyrillic_DZHE :: Int32
-_KEY_Cyrillic_DZHE = 1727
--- constant _KEY_Cyrillic_E
-
-_KEY_Cyrillic_E :: Int32
-_KEY_Cyrillic_E = 1788
--- constant _KEY_Cyrillic_EF
-
-_KEY_Cyrillic_EF :: Int32
-_KEY_Cyrillic_EF = 1766
--- constant _KEY_Cyrillic_EL
-
-_KEY_Cyrillic_EL :: Int32
-_KEY_Cyrillic_EL = 1772
--- constant _KEY_Cyrillic_EM
-
-_KEY_Cyrillic_EM :: Int32
-_KEY_Cyrillic_EM = 1773
--- constant _KEY_Cyrillic_EN
-
-_KEY_Cyrillic_EN :: Int32
-_KEY_Cyrillic_EN = 1774
--- constant _KEY_Cyrillic_EN_descender
-
-_KEY_Cyrillic_EN_descender :: Int32
-_KEY_Cyrillic_EN_descender = 16778402
--- constant _KEY_Cyrillic_ER
-
-_KEY_Cyrillic_ER :: Int32
-_KEY_Cyrillic_ER = 1778
--- constant _KEY_Cyrillic_ES
-
-_KEY_Cyrillic_ES :: Int32
-_KEY_Cyrillic_ES = 1779
--- constant _KEY_Cyrillic_GHE
-
-_KEY_Cyrillic_GHE :: Int32
-_KEY_Cyrillic_GHE = 1767
--- constant _KEY_Cyrillic_GHE_bar
-
-_KEY_Cyrillic_GHE_bar :: Int32
-_KEY_Cyrillic_GHE_bar = 16778386
--- constant _KEY_Cyrillic_HA
-
-_KEY_Cyrillic_HA :: Int32
-_KEY_Cyrillic_HA = 1768
--- constant _KEY_Cyrillic_HARDSIGN
-
-_KEY_Cyrillic_HARDSIGN :: Int32
-_KEY_Cyrillic_HARDSIGN = 1791
--- constant _KEY_Cyrillic_HA_descender
-
-_KEY_Cyrillic_HA_descender :: Int32
-_KEY_Cyrillic_HA_descender = 16778418
--- constant _KEY_Cyrillic_I
-
-_KEY_Cyrillic_I :: Int32
-_KEY_Cyrillic_I = 1769
--- constant _KEY_Cyrillic_IE
-
-_KEY_Cyrillic_IE :: Int32
-_KEY_Cyrillic_IE = 1765
--- constant _KEY_Cyrillic_IO
-
-_KEY_Cyrillic_IO :: Int32
-_KEY_Cyrillic_IO = 1715
--- constant _KEY_Cyrillic_I_macron
-
-_KEY_Cyrillic_I_macron :: Int32
-_KEY_Cyrillic_I_macron = 16778466
--- constant _KEY_Cyrillic_JE
-
-_KEY_Cyrillic_JE :: Int32
-_KEY_Cyrillic_JE = 1720
--- constant _KEY_Cyrillic_KA
-
-_KEY_Cyrillic_KA :: Int32
-_KEY_Cyrillic_KA = 1771
--- constant _KEY_Cyrillic_KA_descender
-
-_KEY_Cyrillic_KA_descender :: Int32
-_KEY_Cyrillic_KA_descender = 16778394
--- constant _KEY_Cyrillic_KA_vertstroke
-
-_KEY_Cyrillic_KA_vertstroke :: Int32
-_KEY_Cyrillic_KA_vertstroke = 16778396
--- constant _KEY_Cyrillic_LJE
-
-_KEY_Cyrillic_LJE :: Int32
-_KEY_Cyrillic_LJE = 1721
--- constant _KEY_Cyrillic_NJE
-
-_KEY_Cyrillic_NJE :: Int32
-_KEY_Cyrillic_NJE = 1722
--- constant _KEY_Cyrillic_O
-
-_KEY_Cyrillic_O :: Int32
-_KEY_Cyrillic_O = 1775
--- constant _KEY_Cyrillic_O_bar
-
-_KEY_Cyrillic_O_bar :: Int32
-_KEY_Cyrillic_O_bar = 16778472
--- constant _KEY_Cyrillic_PE
-
-_KEY_Cyrillic_PE :: Int32
-_KEY_Cyrillic_PE = 1776
--- constant _KEY_Cyrillic_SCHWA
-
-_KEY_Cyrillic_SCHWA :: Int32
-_KEY_Cyrillic_SCHWA = 16778456
--- constant _KEY_Cyrillic_SHA
-
-_KEY_Cyrillic_SHA :: Int32
-_KEY_Cyrillic_SHA = 1787
--- constant _KEY_Cyrillic_SHCHA
-
-_KEY_Cyrillic_SHCHA :: Int32
-_KEY_Cyrillic_SHCHA = 1789
--- constant _KEY_Cyrillic_SHHA
-
-_KEY_Cyrillic_SHHA :: Int32
-_KEY_Cyrillic_SHHA = 16778426
--- constant _KEY_Cyrillic_SHORTI
-
-_KEY_Cyrillic_SHORTI :: Int32
-_KEY_Cyrillic_SHORTI = 1770
--- constant _KEY_Cyrillic_SOFTSIGN
-
-_KEY_Cyrillic_SOFTSIGN :: Int32
-_KEY_Cyrillic_SOFTSIGN = 1784
--- constant _KEY_Cyrillic_TE
-
-_KEY_Cyrillic_TE :: Int32
-_KEY_Cyrillic_TE = 1780
--- constant _KEY_Cyrillic_TSE
-
-_KEY_Cyrillic_TSE :: Int32
-_KEY_Cyrillic_TSE = 1763
--- constant _KEY_Cyrillic_U
-
-_KEY_Cyrillic_U :: Int32
-_KEY_Cyrillic_U = 1781
--- constant _KEY_Cyrillic_U_macron
-
-_KEY_Cyrillic_U_macron :: Int32
-_KEY_Cyrillic_U_macron = 16778478
--- constant _KEY_Cyrillic_U_straight
-
-_KEY_Cyrillic_U_straight :: Int32
-_KEY_Cyrillic_U_straight = 16778414
--- constant _KEY_Cyrillic_U_straight_bar
-
-_KEY_Cyrillic_U_straight_bar :: Int32
-_KEY_Cyrillic_U_straight_bar = 16778416
--- constant _KEY_Cyrillic_VE
-
-_KEY_Cyrillic_VE :: Int32
-_KEY_Cyrillic_VE = 1783
--- constant _KEY_Cyrillic_YA
-
-_KEY_Cyrillic_YA :: Int32
-_KEY_Cyrillic_YA = 1777
--- constant _KEY_Cyrillic_YERU
-
-_KEY_Cyrillic_YERU :: Int32
-_KEY_Cyrillic_YERU = 1785
--- constant _KEY_Cyrillic_YU
-
-_KEY_Cyrillic_YU :: Int32
-_KEY_Cyrillic_YU = 1760
--- constant _KEY_Cyrillic_ZE
-
-_KEY_Cyrillic_ZE :: Int32
-_KEY_Cyrillic_ZE = 1786
--- constant _KEY_Cyrillic_ZHE
-
-_KEY_Cyrillic_ZHE :: Int32
-_KEY_Cyrillic_ZHE = 1782
--- constant _KEY_Cyrillic_ZHE_descender
-
-_KEY_Cyrillic_ZHE_descender :: Int32
-_KEY_Cyrillic_ZHE_descender = 16778390
--- constant _KEY_Cyrillic_a
-
-_KEY_Cyrillic_a :: Int32
-_KEY_Cyrillic_a = 1729
--- constant _KEY_Cyrillic_be
-
-_KEY_Cyrillic_be :: Int32
-_KEY_Cyrillic_be = 1730
--- constant _KEY_Cyrillic_che
-
-_KEY_Cyrillic_che :: Int32
-_KEY_Cyrillic_che = 1758
--- constant _KEY_Cyrillic_che_descender
-
-_KEY_Cyrillic_che_descender :: Int32
-_KEY_Cyrillic_che_descender = 16778423
--- constant _KEY_Cyrillic_che_vertstroke
-
-_KEY_Cyrillic_che_vertstroke :: Int32
-_KEY_Cyrillic_che_vertstroke = 16778425
--- constant _KEY_Cyrillic_de
-
-_KEY_Cyrillic_de :: Int32
-_KEY_Cyrillic_de = 1732
--- constant _KEY_Cyrillic_dzhe
-
-_KEY_Cyrillic_dzhe :: Int32
-_KEY_Cyrillic_dzhe = 1711
--- constant _KEY_Cyrillic_e
-
-_KEY_Cyrillic_e :: Int32
-_KEY_Cyrillic_e = 1756
--- constant _KEY_Cyrillic_ef
-
-_KEY_Cyrillic_ef :: Int32
-_KEY_Cyrillic_ef = 1734
--- constant _KEY_Cyrillic_el
-
-_KEY_Cyrillic_el :: Int32
-_KEY_Cyrillic_el = 1740
--- constant _KEY_Cyrillic_em
-
-_KEY_Cyrillic_em :: Int32
-_KEY_Cyrillic_em = 1741
--- constant _KEY_Cyrillic_en
-
-_KEY_Cyrillic_en :: Int32
-_KEY_Cyrillic_en = 1742
--- constant _KEY_Cyrillic_en_descender
-
-_KEY_Cyrillic_en_descender :: Int32
-_KEY_Cyrillic_en_descender = 16778403
--- constant _KEY_Cyrillic_er
-
-_KEY_Cyrillic_er :: Int32
-_KEY_Cyrillic_er = 1746
--- constant _KEY_Cyrillic_es
-
-_KEY_Cyrillic_es :: Int32
-_KEY_Cyrillic_es = 1747
--- constant _KEY_Cyrillic_ghe
-
-_KEY_Cyrillic_ghe :: Int32
-_KEY_Cyrillic_ghe = 1735
--- constant _KEY_Cyrillic_ghe_bar
-
-_KEY_Cyrillic_ghe_bar :: Int32
-_KEY_Cyrillic_ghe_bar = 16778387
--- constant _KEY_Cyrillic_ha
-
-_KEY_Cyrillic_ha :: Int32
-_KEY_Cyrillic_ha = 1736
--- constant _KEY_Cyrillic_ha_descender
-
-_KEY_Cyrillic_ha_descender :: Int32
-_KEY_Cyrillic_ha_descender = 16778419
--- constant _KEY_Cyrillic_hardsign
-
-_KEY_Cyrillic_hardsign :: Int32
-_KEY_Cyrillic_hardsign = 1759
--- constant _KEY_Cyrillic_i
-
-_KEY_Cyrillic_i :: Int32
-_KEY_Cyrillic_i = 1737
--- constant _KEY_Cyrillic_i_macron
-
-_KEY_Cyrillic_i_macron :: Int32
-_KEY_Cyrillic_i_macron = 16778467
--- constant _KEY_Cyrillic_ie
-
-_KEY_Cyrillic_ie :: Int32
-_KEY_Cyrillic_ie = 1733
--- constant _KEY_Cyrillic_io
-
-_KEY_Cyrillic_io :: Int32
-_KEY_Cyrillic_io = 1699
--- constant _KEY_Cyrillic_je
-
-_KEY_Cyrillic_je :: Int32
-_KEY_Cyrillic_je = 1704
--- constant _KEY_Cyrillic_ka
-
-_KEY_Cyrillic_ka :: Int32
-_KEY_Cyrillic_ka = 1739
--- constant _KEY_Cyrillic_ka_descender
-
-_KEY_Cyrillic_ka_descender :: Int32
-_KEY_Cyrillic_ka_descender = 16778395
--- constant _KEY_Cyrillic_ka_vertstroke
-
-_KEY_Cyrillic_ka_vertstroke :: Int32
-_KEY_Cyrillic_ka_vertstroke = 16778397
--- constant _KEY_Cyrillic_lje
-
-_KEY_Cyrillic_lje :: Int32
-_KEY_Cyrillic_lje = 1705
--- constant _KEY_Cyrillic_nje
-
-_KEY_Cyrillic_nje :: Int32
-_KEY_Cyrillic_nje = 1706
--- constant _KEY_Cyrillic_o
-
-_KEY_Cyrillic_o :: Int32
-_KEY_Cyrillic_o = 1743
--- constant _KEY_Cyrillic_o_bar
-
-_KEY_Cyrillic_o_bar :: Int32
-_KEY_Cyrillic_o_bar = 16778473
--- constant _KEY_Cyrillic_pe
-
-_KEY_Cyrillic_pe :: Int32
-_KEY_Cyrillic_pe = 1744
--- constant _KEY_Cyrillic_schwa
-
-_KEY_Cyrillic_schwa :: Int32
-_KEY_Cyrillic_schwa = 16778457
--- constant _KEY_Cyrillic_sha
-
-_KEY_Cyrillic_sha :: Int32
-_KEY_Cyrillic_sha = 1755
--- constant _KEY_Cyrillic_shcha
-
-_KEY_Cyrillic_shcha :: Int32
-_KEY_Cyrillic_shcha = 1757
--- constant _KEY_Cyrillic_shha
-
-_KEY_Cyrillic_shha :: Int32
-_KEY_Cyrillic_shha = 16778427
--- constant _KEY_Cyrillic_shorti
-
-_KEY_Cyrillic_shorti :: Int32
-_KEY_Cyrillic_shorti = 1738
--- constant _KEY_Cyrillic_softsign
-
-_KEY_Cyrillic_softsign :: Int32
-_KEY_Cyrillic_softsign = 1752
--- constant _KEY_Cyrillic_te
-
-_KEY_Cyrillic_te :: Int32
-_KEY_Cyrillic_te = 1748
--- constant _KEY_Cyrillic_tse
-
-_KEY_Cyrillic_tse :: Int32
-_KEY_Cyrillic_tse = 1731
--- constant _KEY_Cyrillic_u
-
-_KEY_Cyrillic_u :: Int32
-_KEY_Cyrillic_u = 1749
--- constant _KEY_Cyrillic_u_macron
-
-_KEY_Cyrillic_u_macron :: Int32
-_KEY_Cyrillic_u_macron = 16778479
--- constant _KEY_Cyrillic_u_straight
-
-_KEY_Cyrillic_u_straight :: Int32
-_KEY_Cyrillic_u_straight = 16778415
--- constant _KEY_Cyrillic_u_straight_bar
-
-_KEY_Cyrillic_u_straight_bar :: Int32
-_KEY_Cyrillic_u_straight_bar = 16778417
--- constant _KEY_Cyrillic_ve
-
-_KEY_Cyrillic_ve :: Int32
-_KEY_Cyrillic_ve = 1751
--- constant _KEY_Cyrillic_ya
-
-_KEY_Cyrillic_ya :: Int32
-_KEY_Cyrillic_ya = 1745
--- constant _KEY_Cyrillic_yeru
-
-_KEY_Cyrillic_yeru :: Int32
-_KEY_Cyrillic_yeru = 1753
--- constant _KEY_Cyrillic_yu
-
-_KEY_Cyrillic_yu :: Int32
-_KEY_Cyrillic_yu = 1728
--- constant _KEY_Cyrillic_ze
-
-_KEY_Cyrillic_ze :: Int32
-_KEY_Cyrillic_ze = 1754
--- constant _KEY_Cyrillic_zhe
-
-_KEY_Cyrillic_zhe :: Int32
-_KEY_Cyrillic_zhe = 1750
--- constant _KEY_Cyrillic_zhe_descender
-
-_KEY_Cyrillic_zhe_descender :: Int32
-_KEY_Cyrillic_zhe_descender = 16778391
--- constant _KEY_D
-
-_KEY_D :: Int32
-_KEY_D = 68
--- constant _KEY_DOS
-
-_KEY_DOS :: Int32
-_KEY_DOS = 269025114
--- constant _KEY_Dabovedot
-
-_KEY_Dabovedot :: Int32
-_KEY_Dabovedot = 16784906
--- constant _KEY_Dcaron
-
-_KEY_Dcaron :: Int32
-_KEY_Dcaron = 463
--- constant _KEY_Delete
-
-_KEY_Delete :: Int32
-_KEY_Delete = 65535
--- constant _KEY_Display
-
-_KEY_Display :: Int32
-_KEY_Display = 269025113
--- constant _KEY_Documents
-
-_KEY_Documents :: Int32
-_KEY_Documents = 269025115
--- constant _KEY_DongSign
-
-_KEY_DongSign :: Int32
-_KEY_DongSign = 16785579
--- constant _KEY_Down
-
-_KEY_Down :: Int32
-_KEY_Down = 65364
--- constant _KEY_Dstroke
-
-_KEY_Dstroke :: Int32
-_KEY_Dstroke = 464
--- constant _KEY_E
-
-_KEY_E :: Int32
-_KEY_E = 69
--- constant _KEY_ENG
-
-_KEY_ENG :: Int32
-_KEY_ENG = 957
--- constant _KEY_ETH
-
-_KEY_ETH :: Int32
-_KEY_ETH = 208
--- constant _KEY_EZH
-
-_KEY_EZH :: Int32
-_KEY_EZH = 16777655
--- constant _KEY_Eabovedot
-
-_KEY_Eabovedot :: Int32
-_KEY_Eabovedot = 972
--- constant _KEY_Eacute
-
-_KEY_Eacute :: Int32
-_KEY_Eacute = 201
--- constant _KEY_Ebelowdot
-
-_KEY_Ebelowdot :: Int32
-_KEY_Ebelowdot = 16785080
--- constant _KEY_Ecaron
-
-_KEY_Ecaron :: Int32
-_KEY_Ecaron = 460
--- constant _KEY_Ecircumflex
-
-_KEY_Ecircumflex :: Int32
-_KEY_Ecircumflex = 202
--- constant _KEY_Ecircumflexacute
-
-_KEY_Ecircumflexacute :: Int32
-_KEY_Ecircumflexacute = 16785086
--- constant _KEY_Ecircumflexbelowdot
-
-_KEY_Ecircumflexbelowdot :: Int32
-_KEY_Ecircumflexbelowdot = 16785094
--- constant _KEY_Ecircumflexgrave
-
-_KEY_Ecircumflexgrave :: Int32
-_KEY_Ecircumflexgrave = 16785088
--- constant _KEY_Ecircumflexhook
-
-_KEY_Ecircumflexhook :: Int32
-_KEY_Ecircumflexhook = 16785090
--- constant _KEY_Ecircumflextilde
-
-_KEY_Ecircumflextilde :: Int32
-_KEY_Ecircumflextilde = 16785092
--- constant _KEY_EcuSign
-
-_KEY_EcuSign :: Int32
-_KEY_EcuSign = 16785568
--- constant _KEY_Ediaeresis
-
-_KEY_Ediaeresis :: Int32
-_KEY_Ediaeresis = 203
--- constant _KEY_Egrave
-
-_KEY_Egrave :: Int32
-_KEY_Egrave = 200
--- constant _KEY_Ehook
-
-_KEY_Ehook :: Int32
-_KEY_Ehook = 16785082
--- constant _KEY_Eisu_Shift
-
-_KEY_Eisu_Shift :: Int32
-_KEY_Eisu_Shift = 65327
--- constant _KEY_Eisu_toggle
-
-_KEY_Eisu_toggle :: Int32
-_KEY_Eisu_toggle = 65328
--- constant _KEY_Eject
-
-_KEY_Eject :: Int32
-_KEY_Eject = 269025068
--- constant _KEY_Emacron
-
-_KEY_Emacron :: Int32
-_KEY_Emacron = 938
--- constant _KEY_End
-
-_KEY_End :: Int32
-_KEY_End = 65367
--- constant _KEY_Eogonek
-
-_KEY_Eogonek :: Int32
-_KEY_Eogonek = 458
--- constant _KEY_Escape
-
-_KEY_Escape :: Int32
-_KEY_Escape = 65307
--- constant _KEY_Eth
-
-_KEY_Eth :: Int32
-_KEY_Eth = 208
--- constant _KEY_Etilde
-
-_KEY_Etilde :: Int32
-_KEY_Etilde = 16785084
--- constant _KEY_EuroSign
-
-_KEY_EuroSign :: Int32
-_KEY_EuroSign = 8364
--- constant _KEY_Excel
-
-_KEY_Excel :: Int32
-_KEY_Excel = 269025116
--- constant _KEY_Execute
-
-_KEY_Execute :: Int32
-_KEY_Execute = 65378
--- constant _KEY_Explorer
-
-_KEY_Explorer :: Int32
-_KEY_Explorer = 269025117
--- constant _KEY_F
-
-_KEY_F :: Int32
-_KEY_F = 70
--- constant _KEY_F1
-
-_KEY_F1 :: Int32
-_KEY_F1 = 65470
--- constant _KEY_F10
-
-_KEY_F10 :: Int32
-_KEY_F10 = 65479
--- constant _KEY_F11
-
-_KEY_F11 :: Int32
-_KEY_F11 = 65480
--- constant _KEY_F12
-
-_KEY_F12 :: Int32
-_KEY_F12 = 65481
--- constant _KEY_F13
-
-_KEY_F13 :: Int32
-_KEY_F13 = 65482
--- constant _KEY_F14
-
-_KEY_F14 :: Int32
-_KEY_F14 = 65483
--- constant _KEY_F15
-
-_KEY_F15 :: Int32
-_KEY_F15 = 65484
--- constant _KEY_F16
-
-_KEY_F16 :: Int32
-_KEY_F16 = 65485
--- constant _KEY_F17
-
-_KEY_F17 :: Int32
-_KEY_F17 = 65486
--- constant _KEY_F18
-
-_KEY_F18 :: Int32
-_KEY_F18 = 65487
--- constant _KEY_F19
-
-_KEY_F19 :: Int32
-_KEY_F19 = 65488
--- constant _KEY_F2
-
-_KEY_F2 :: Int32
-_KEY_F2 = 65471
--- constant _KEY_F20
-
-_KEY_F20 :: Int32
-_KEY_F20 = 65489
--- constant _KEY_F21
-
-_KEY_F21 :: Int32
-_KEY_F21 = 65490
--- constant _KEY_F22
-
-_KEY_F22 :: Int32
-_KEY_F22 = 65491
--- constant _KEY_F23
-
-_KEY_F23 :: Int32
-_KEY_F23 = 65492
--- constant _KEY_F24
-
-_KEY_F24 :: Int32
-_KEY_F24 = 65493
--- constant _KEY_F25
-
-_KEY_F25 :: Int32
-_KEY_F25 = 65494
--- constant _KEY_F26
-
-_KEY_F26 :: Int32
-_KEY_F26 = 65495
--- constant _KEY_F27
-
-_KEY_F27 :: Int32
-_KEY_F27 = 65496
--- constant _KEY_F28
-
-_KEY_F28 :: Int32
-_KEY_F28 = 65497
--- constant _KEY_F29
-
-_KEY_F29 :: Int32
-_KEY_F29 = 65498
--- constant _KEY_F3
-
-_KEY_F3 :: Int32
-_KEY_F3 = 65472
--- constant _KEY_F30
-
-_KEY_F30 :: Int32
-_KEY_F30 = 65499
--- constant _KEY_F31
-
-_KEY_F31 :: Int32
-_KEY_F31 = 65500
--- constant _KEY_F32
-
-_KEY_F32 :: Int32
-_KEY_F32 = 65501
--- constant _KEY_F33
-
-_KEY_F33 :: Int32
-_KEY_F33 = 65502
--- constant _KEY_F34
-
-_KEY_F34 :: Int32
-_KEY_F34 = 65503
--- constant _KEY_F35
-
-_KEY_F35 :: Int32
-_KEY_F35 = 65504
--- constant _KEY_F4
-
-_KEY_F4 :: Int32
-_KEY_F4 = 65473
--- constant _KEY_F5
-
-_KEY_F5 :: Int32
-_KEY_F5 = 65474
--- constant _KEY_F6
-
-_KEY_F6 :: Int32
-_KEY_F6 = 65475
--- constant _KEY_F7
-
-_KEY_F7 :: Int32
-_KEY_F7 = 65476
--- constant _KEY_F8
-
-_KEY_F8 :: Int32
-_KEY_F8 = 65477
--- constant _KEY_F9
-
-_KEY_F9 :: Int32
-_KEY_F9 = 65478
--- constant _KEY_FFrancSign
-
-_KEY_FFrancSign :: Int32
-_KEY_FFrancSign = 16785571
--- constant _KEY_Fabovedot
-
-_KEY_Fabovedot :: Int32
-_KEY_Fabovedot = 16784926
--- constant _KEY_Farsi_0
-
-_KEY_Farsi_0 :: Int32
-_KEY_Farsi_0 = 16778992
--- constant _KEY_Farsi_1
-
-_KEY_Farsi_1 :: Int32
-_KEY_Farsi_1 = 16778993
--- constant _KEY_Farsi_2
-
-_KEY_Farsi_2 :: Int32
-_KEY_Farsi_2 = 16778994
--- constant _KEY_Farsi_3
-
-_KEY_Farsi_3 :: Int32
-_KEY_Farsi_3 = 16778995
--- constant _KEY_Farsi_4
-
-_KEY_Farsi_4 :: Int32
-_KEY_Farsi_4 = 16778996
--- constant _KEY_Farsi_5
-
-_KEY_Farsi_5 :: Int32
-_KEY_Farsi_5 = 16778997
--- constant _KEY_Farsi_6
-
-_KEY_Farsi_6 :: Int32
-_KEY_Farsi_6 = 16778998
--- constant _KEY_Farsi_7
-
-_KEY_Farsi_7 :: Int32
-_KEY_Farsi_7 = 16778999
--- constant _KEY_Farsi_8
-
-_KEY_Farsi_8 :: Int32
-_KEY_Farsi_8 = 16779000
--- constant _KEY_Farsi_9
-
-_KEY_Farsi_9 :: Int32
-_KEY_Farsi_9 = 16779001
--- constant _KEY_Farsi_yeh
-
-_KEY_Farsi_yeh :: Int32
-_KEY_Farsi_yeh = 16778956
--- constant _KEY_Favorites
-
-_KEY_Favorites :: Int32
-_KEY_Favorites = 269025072
--- constant _KEY_Finance
-
-_KEY_Finance :: Int32
-_KEY_Finance = 269025084
--- constant _KEY_Find
-
-_KEY_Find :: Int32
-_KEY_Find = 65384
--- constant _KEY_First_Virtual_Screen
-
-_KEY_First_Virtual_Screen :: Int32
-_KEY_First_Virtual_Screen = 65232
--- constant _KEY_Forward
-
-_KEY_Forward :: Int32
-_KEY_Forward = 269025063
--- constant _KEY_FrameBack
-
-_KEY_FrameBack :: Int32
-_KEY_FrameBack = 269025181
--- constant _KEY_FrameForward
-
-_KEY_FrameForward :: Int32
-_KEY_FrameForward = 269025182
--- constant _KEY_G
-
-_KEY_G :: Int32
-_KEY_G = 71
--- constant _KEY_Gabovedot
-
-_KEY_Gabovedot :: Int32
-_KEY_Gabovedot = 725
--- constant _KEY_Game
-
-_KEY_Game :: Int32
-_KEY_Game = 269025118
--- constant _KEY_Gbreve
-
-_KEY_Gbreve :: Int32
-_KEY_Gbreve = 683
--- constant _KEY_Gcaron
-
-_KEY_Gcaron :: Int32
-_KEY_Gcaron = 16777702
--- constant _KEY_Gcedilla
-
-_KEY_Gcedilla :: Int32
-_KEY_Gcedilla = 939
--- constant _KEY_Gcircumflex
-
-_KEY_Gcircumflex :: Int32
-_KEY_Gcircumflex = 728
--- constant _KEY_Georgian_an
-
-_KEY_Georgian_an :: Int32
-_KEY_Georgian_an = 16781520
--- constant _KEY_Georgian_ban
-
-_KEY_Georgian_ban :: Int32
-_KEY_Georgian_ban = 16781521
--- constant _KEY_Georgian_can
-
-_KEY_Georgian_can :: Int32
-_KEY_Georgian_can = 16781546
--- constant _KEY_Georgian_char
-
-_KEY_Georgian_char :: Int32
-_KEY_Georgian_char = 16781549
--- constant _KEY_Georgian_chin
-
-_KEY_Georgian_chin :: Int32
-_KEY_Georgian_chin = 16781545
--- constant _KEY_Georgian_cil
-
-_KEY_Georgian_cil :: Int32
-_KEY_Georgian_cil = 16781548
--- constant _KEY_Georgian_don
-
-_KEY_Georgian_don :: Int32
-_KEY_Georgian_don = 16781523
--- constant _KEY_Georgian_en
-
-_KEY_Georgian_en :: Int32
-_KEY_Georgian_en = 16781524
--- constant _KEY_Georgian_fi
-
-_KEY_Georgian_fi :: Int32
-_KEY_Georgian_fi = 16781558
--- constant _KEY_Georgian_gan
-
-_KEY_Georgian_gan :: Int32
-_KEY_Georgian_gan = 16781522
--- constant _KEY_Georgian_ghan
-
-_KEY_Georgian_ghan :: Int32
-_KEY_Georgian_ghan = 16781542
--- constant _KEY_Georgian_hae
-
-_KEY_Georgian_hae :: Int32
-_KEY_Georgian_hae = 16781552
--- constant _KEY_Georgian_har
-
-_KEY_Georgian_har :: Int32
-_KEY_Georgian_har = 16781556
--- constant _KEY_Georgian_he
-
-_KEY_Georgian_he :: Int32
-_KEY_Georgian_he = 16781553
--- constant _KEY_Georgian_hie
-
-_KEY_Georgian_hie :: Int32
-_KEY_Georgian_hie = 16781554
--- constant _KEY_Georgian_hoe
-
-_KEY_Georgian_hoe :: Int32
-_KEY_Georgian_hoe = 16781557
--- constant _KEY_Georgian_in
-
-_KEY_Georgian_in :: Int32
-_KEY_Georgian_in = 16781528
--- constant _KEY_Georgian_jhan
-
-_KEY_Georgian_jhan :: Int32
-_KEY_Georgian_jhan = 16781551
--- constant _KEY_Georgian_jil
-
-_KEY_Georgian_jil :: Int32
-_KEY_Georgian_jil = 16781547
--- constant _KEY_Georgian_kan
-
-_KEY_Georgian_kan :: Int32
-_KEY_Georgian_kan = 16781529
--- constant _KEY_Georgian_khar
-
-_KEY_Georgian_khar :: Int32
-_KEY_Georgian_khar = 16781541
--- constant _KEY_Georgian_las
-
-_KEY_Georgian_las :: Int32
-_KEY_Georgian_las = 16781530
--- constant _KEY_Georgian_man
-
-_KEY_Georgian_man :: Int32
-_KEY_Georgian_man = 16781531
--- constant _KEY_Georgian_nar
-
-_KEY_Georgian_nar :: Int32
-_KEY_Georgian_nar = 16781532
--- constant _KEY_Georgian_on
-
-_KEY_Georgian_on :: Int32
-_KEY_Georgian_on = 16781533
--- constant _KEY_Georgian_par
-
-_KEY_Georgian_par :: Int32
-_KEY_Georgian_par = 16781534
--- constant _KEY_Georgian_phar
-
-_KEY_Georgian_phar :: Int32
-_KEY_Georgian_phar = 16781540
--- constant _KEY_Georgian_qar
-
-_KEY_Georgian_qar :: Int32
-_KEY_Georgian_qar = 16781543
--- constant _KEY_Georgian_rae
-
-_KEY_Georgian_rae :: Int32
-_KEY_Georgian_rae = 16781536
--- constant _KEY_Georgian_san
-
-_KEY_Georgian_san :: Int32
-_KEY_Georgian_san = 16781537
--- constant _KEY_Georgian_shin
-
-_KEY_Georgian_shin :: Int32
-_KEY_Georgian_shin = 16781544
--- constant _KEY_Georgian_tan
-
-_KEY_Georgian_tan :: Int32
-_KEY_Georgian_tan = 16781527
--- constant _KEY_Georgian_tar
-
-_KEY_Georgian_tar :: Int32
-_KEY_Georgian_tar = 16781538
--- constant _KEY_Georgian_un
-
-_KEY_Georgian_un :: Int32
-_KEY_Georgian_un = 16781539
--- constant _KEY_Georgian_vin
-
-_KEY_Georgian_vin :: Int32
-_KEY_Georgian_vin = 16781525
--- constant _KEY_Georgian_we
-
-_KEY_Georgian_we :: Int32
-_KEY_Georgian_we = 16781555
--- constant _KEY_Georgian_xan
-
-_KEY_Georgian_xan :: Int32
-_KEY_Georgian_xan = 16781550
--- constant _KEY_Georgian_zen
-
-_KEY_Georgian_zen :: Int32
-_KEY_Georgian_zen = 16781526
--- constant _KEY_Georgian_zhar
-
-_KEY_Georgian_zhar :: Int32
-_KEY_Georgian_zhar = 16781535
--- constant _KEY_Go
-
-_KEY_Go :: Int32
-_KEY_Go = 269025119
--- constant _KEY_Greek_ALPHA
-
-_KEY_Greek_ALPHA :: Int32
-_KEY_Greek_ALPHA = 1985
--- constant _KEY_Greek_ALPHAaccent
-
-_KEY_Greek_ALPHAaccent :: Int32
-_KEY_Greek_ALPHAaccent = 1953
--- constant _KEY_Greek_BETA
-
-_KEY_Greek_BETA :: Int32
-_KEY_Greek_BETA = 1986
--- constant _KEY_Greek_CHI
-
-_KEY_Greek_CHI :: Int32
-_KEY_Greek_CHI = 2007
--- constant _KEY_Greek_DELTA
-
-_KEY_Greek_DELTA :: Int32
-_KEY_Greek_DELTA = 1988
--- constant _KEY_Greek_EPSILON
-
-_KEY_Greek_EPSILON :: Int32
-_KEY_Greek_EPSILON = 1989
--- constant _KEY_Greek_EPSILONaccent
-
-_KEY_Greek_EPSILONaccent :: Int32
-_KEY_Greek_EPSILONaccent = 1954
--- constant _KEY_Greek_ETA
-
-_KEY_Greek_ETA :: Int32
-_KEY_Greek_ETA = 1991
--- constant _KEY_Greek_ETAaccent
-
-_KEY_Greek_ETAaccent :: Int32
-_KEY_Greek_ETAaccent = 1955
--- constant _KEY_Greek_GAMMA
-
-_KEY_Greek_GAMMA :: Int32
-_KEY_Greek_GAMMA = 1987
--- constant _KEY_Greek_IOTA
-
-_KEY_Greek_IOTA :: Int32
-_KEY_Greek_IOTA = 1993
--- constant _KEY_Greek_IOTAaccent
-
-_KEY_Greek_IOTAaccent :: Int32
-_KEY_Greek_IOTAaccent = 1956
--- constant _KEY_Greek_IOTAdiaeresis
-
-_KEY_Greek_IOTAdiaeresis :: Int32
-_KEY_Greek_IOTAdiaeresis = 1957
--- constant _KEY_Greek_IOTAdieresis
-
-_KEY_Greek_IOTAdieresis :: Int32
-_KEY_Greek_IOTAdieresis = 1957
--- constant _KEY_Greek_KAPPA
-
-_KEY_Greek_KAPPA :: Int32
-_KEY_Greek_KAPPA = 1994
--- constant _KEY_Greek_LAMBDA
-
-_KEY_Greek_LAMBDA :: Int32
-_KEY_Greek_LAMBDA = 1995
--- constant _KEY_Greek_LAMDA
-
-_KEY_Greek_LAMDA :: Int32
-_KEY_Greek_LAMDA = 1995
--- constant _KEY_Greek_MU
-
-_KEY_Greek_MU :: Int32
-_KEY_Greek_MU = 1996
--- constant _KEY_Greek_NU
-
-_KEY_Greek_NU :: Int32
-_KEY_Greek_NU = 1997
--- constant _KEY_Greek_OMEGA
-
-_KEY_Greek_OMEGA :: Int32
-_KEY_Greek_OMEGA = 2009
--- constant _KEY_Greek_OMEGAaccent
-
-_KEY_Greek_OMEGAaccent :: Int32
-_KEY_Greek_OMEGAaccent = 1963
--- constant _KEY_Greek_OMICRON
-
-_KEY_Greek_OMICRON :: Int32
-_KEY_Greek_OMICRON = 1999
--- constant _KEY_Greek_OMICRONaccent
-
-_KEY_Greek_OMICRONaccent :: Int32
-_KEY_Greek_OMICRONaccent = 1959
--- constant _KEY_Greek_PHI
-
-_KEY_Greek_PHI :: Int32
-_KEY_Greek_PHI = 2006
--- constant _KEY_Greek_PI
-
-_KEY_Greek_PI :: Int32
-_KEY_Greek_PI = 2000
--- constant _KEY_Greek_PSI
-
-_KEY_Greek_PSI :: Int32
-_KEY_Greek_PSI = 2008
--- constant _KEY_Greek_RHO
-
-_KEY_Greek_RHO :: Int32
-_KEY_Greek_RHO = 2001
--- constant _KEY_Greek_SIGMA
-
-_KEY_Greek_SIGMA :: Int32
-_KEY_Greek_SIGMA = 2002
--- constant _KEY_Greek_TAU
-
-_KEY_Greek_TAU :: Int32
-_KEY_Greek_TAU = 2004
--- constant _KEY_Greek_THETA
-
-_KEY_Greek_THETA :: Int32
-_KEY_Greek_THETA = 1992
--- constant _KEY_Greek_UPSILON
-
-_KEY_Greek_UPSILON :: Int32
-_KEY_Greek_UPSILON = 2005
--- constant _KEY_Greek_UPSILONaccent
-
-_KEY_Greek_UPSILONaccent :: Int32
-_KEY_Greek_UPSILONaccent = 1960
--- constant _KEY_Greek_UPSILONdieresis
-
-_KEY_Greek_UPSILONdieresis :: Int32
-_KEY_Greek_UPSILONdieresis = 1961
--- constant _KEY_Greek_XI
-
-_KEY_Greek_XI :: Int32
-_KEY_Greek_XI = 1998
--- constant _KEY_Greek_ZETA
-
-_KEY_Greek_ZETA :: Int32
-_KEY_Greek_ZETA = 1990
--- constant _KEY_Greek_accentdieresis
-
-_KEY_Greek_accentdieresis :: Int32
-_KEY_Greek_accentdieresis = 1966
--- constant _KEY_Greek_alpha
-
-_KEY_Greek_alpha :: Int32
-_KEY_Greek_alpha = 2017
--- constant _KEY_Greek_alphaaccent
-
-_KEY_Greek_alphaaccent :: Int32
-_KEY_Greek_alphaaccent = 1969
--- constant _KEY_Greek_beta
-
-_KEY_Greek_beta :: Int32
-_KEY_Greek_beta = 2018
--- constant _KEY_Greek_chi
-
-_KEY_Greek_chi :: Int32
-_KEY_Greek_chi = 2039
--- constant _KEY_Greek_delta
-
-_KEY_Greek_delta :: Int32
-_KEY_Greek_delta = 2020
--- constant _KEY_Greek_epsilon
-
-_KEY_Greek_epsilon :: Int32
-_KEY_Greek_epsilon = 2021
--- constant _KEY_Greek_epsilonaccent
-
-_KEY_Greek_epsilonaccent :: Int32
-_KEY_Greek_epsilonaccent = 1970
--- constant _KEY_Greek_eta
-
-_KEY_Greek_eta :: Int32
-_KEY_Greek_eta = 2023
--- constant _KEY_Greek_etaaccent
-
-_KEY_Greek_etaaccent :: Int32
-_KEY_Greek_etaaccent = 1971
--- constant _KEY_Greek_finalsmallsigma
-
-_KEY_Greek_finalsmallsigma :: Int32
-_KEY_Greek_finalsmallsigma = 2035
--- constant _KEY_Greek_gamma
-
-_KEY_Greek_gamma :: Int32
-_KEY_Greek_gamma = 2019
--- constant _KEY_Greek_horizbar
-
-_KEY_Greek_horizbar :: Int32
-_KEY_Greek_horizbar = 1967
--- constant _KEY_Greek_iota
-
-_KEY_Greek_iota :: Int32
-_KEY_Greek_iota = 2025
--- constant _KEY_Greek_iotaaccent
-
-_KEY_Greek_iotaaccent :: Int32
-_KEY_Greek_iotaaccent = 1972
--- constant _KEY_Greek_iotaaccentdieresis
-
-_KEY_Greek_iotaaccentdieresis :: Int32
-_KEY_Greek_iotaaccentdieresis = 1974
--- constant _KEY_Greek_iotadieresis
-
-_KEY_Greek_iotadieresis :: Int32
-_KEY_Greek_iotadieresis = 1973
--- constant _KEY_Greek_kappa
-
-_KEY_Greek_kappa :: Int32
-_KEY_Greek_kappa = 2026
--- constant _KEY_Greek_lambda
-
-_KEY_Greek_lambda :: Int32
-_KEY_Greek_lambda = 2027
--- constant _KEY_Greek_lamda
-
-_KEY_Greek_lamda :: Int32
-_KEY_Greek_lamda = 2027
--- constant _KEY_Greek_mu
-
-_KEY_Greek_mu :: Int32
-_KEY_Greek_mu = 2028
--- constant _KEY_Greek_nu
-
-_KEY_Greek_nu :: Int32
-_KEY_Greek_nu = 2029
--- constant _KEY_Greek_omega
-
-_KEY_Greek_omega :: Int32
-_KEY_Greek_omega = 2041
--- constant _KEY_Greek_omegaaccent
-
-_KEY_Greek_omegaaccent :: Int32
-_KEY_Greek_omegaaccent = 1979
--- constant _KEY_Greek_omicron
-
-_KEY_Greek_omicron :: Int32
-_KEY_Greek_omicron = 2031
--- constant _KEY_Greek_omicronaccent
-
-_KEY_Greek_omicronaccent :: Int32
-_KEY_Greek_omicronaccent = 1975
--- constant _KEY_Greek_phi
-
-_KEY_Greek_phi :: Int32
-_KEY_Greek_phi = 2038
--- constant _KEY_Greek_pi
-
-_KEY_Greek_pi :: Int32
-_KEY_Greek_pi = 2032
--- constant _KEY_Greek_psi
-
-_KEY_Greek_psi :: Int32
-_KEY_Greek_psi = 2040
--- constant _KEY_Greek_rho
-
-_KEY_Greek_rho :: Int32
-_KEY_Greek_rho = 2033
--- constant _KEY_Greek_sigma
-
-_KEY_Greek_sigma :: Int32
-_KEY_Greek_sigma = 2034
--- constant _KEY_Greek_switch
-
-_KEY_Greek_switch :: Int32
-_KEY_Greek_switch = 65406
--- constant _KEY_Greek_tau
-
-_KEY_Greek_tau :: Int32
-_KEY_Greek_tau = 2036
--- constant _KEY_Greek_theta
-
-_KEY_Greek_theta :: Int32
-_KEY_Greek_theta = 2024
--- constant _KEY_Greek_upsilon
-
-_KEY_Greek_upsilon :: Int32
-_KEY_Greek_upsilon = 2037
--- constant _KEY_Greek_upsilonaccent
-
-_KEY_Greek_upsilonaccent :: Int32
-_KEY_Greek_upsilonaccent = 1976
--- constant _KEY_Greek_upsilonaccentdieresis
-
-_KEY_Greek_upsilonaccentdieresis :: Int32
-_KEY_Greek_upsilonaccentdieresis = 1978
--- constant _KEY_Greek_upsilondieresis
-
-_KEY_Greek_upsilondieresis :: Int32
-_KEY_Greek_upsilondieresis = 1977
--- constant _KEY_Greek_xi
-
-_KEY_Greek_xi :: Int32
-_KEY_Greek_xi = 2030
--- constant _KEY_Greek_zeta
-
-_KEY_Greek_zeta :: Int32
-_KEY_Greek_zeta = 2022
--- constant _KEY_Green
-
-_KEY_Green :: Int32
-_KEY_Green = 269025188
--- constant _KEY_H
-
-_KEY_H :: Int32
-_KEY_H = 72
--- constant _KEY_Hangul
-
-_KEY_Hangul :: Int32
-_KEY_Hangul = 65329
--- constant _KEY_Hangul_A
-
-_KEY_Hangul_A :: Int32
-_KEY_Hangul_A = 3775
--- constant _KEY_Hangul_AE
-
-_KEY_Hangul_AE :: Int32
-_KEY_Hangul_AE = 3776
--- constant _KEY_Hangul_AraeA
-
-_KEY_Hangul_AraeA :: Int32
-_KEY_Hangul_AraeA = 3830
--- constant _KEY_Hangul_AraeAE
-
-_KEY_Hangul_AraeAE :: Int32
-_KEY_Hangul_AraeAE = 3831
--- constant _KEY_Hangul_Banja
-
-_KEY_Hangul_Banja :: Int32
-_KEY_Hangul_Banja = 65337
--- constant _KEY_Hangul_Cieuc
-
-_KEY_Hangul_Cieuc :: Int32
-_KEY_Hangul_Cieuc = 3770
--- constant _KEY_Hangul_Codeinput
-
-_KEY_Hangul_Codeinput :: Int32
-_KEY_Hangul_Codeinput = 65335
--- constant _KEY_Hangul_Dikeud
-
-_KEY_Hangul_Dikeud :: Int32
-_KEY_Hangul_Dikeud = 3751
--- constant _KEY_Hangul_E
-
-_KEY_Hangul_E :: Int32
-_KEY_Hangul_E = 3780
--- constant _KEY_Hangul_EO
-
-_KEY_Hangul_EO :: Int32
-_KEY_Hangul_EO = 3779
--- constant _KEY_Hangul_EU
-
-_KEY_Hangul_EU :: Int32
-_KEY_Hangul_EU = 3793
--- constant _KEY_Hangul_End
-
-_KEY_Hangul_End :: Int32
-_KEY_Hangul_End = 65331
--- constant _KEY_Hangul_Hanja
-
-_KEY_Hangul_Hanja :: Int32
-_KEY_Hangul_Hanja = 65332
--- constant _KEY_Hangul_Hieuh
-
-_KEY_Hangul_Hieuh :: Int32
-_KEY_Hangul_Hieuh = 3774
--- constant _KEY_Hangul_I
-
-_KEY_Hangul_I :: Int32
-_KEY_Hangul_I = 3795
--- constant _KEY_Hangul_Ieung
-
-_KEY_Hangul_Ieung :: Int32
-_KEY_Hangul_Ieung = 3767
--- constant _KEY_Hangul_J_Cieuc
-
-_KEY_Hangul_J_Cieuc :: Int32
-_KEY_Hangul_J_Cieuc = 3818
--- constant _KEY_Hangul_J_Dikeud
-
-_KEY_Hangul_J_Dikeud :: Int32
-_KEY_Hangul_J_Dikeud = 3802
--- constant _KEY_Hangul_J_Hieuh
-
-_KEY_Hangul_J_Hieuh :: Int32
-_KEY_Hangul_J_Hieuh = 3822
--- constant _KEY_Hangul_J_Ieung
-
-_KEY_Hangul_J_Ieung :: Int32
-_KEY_Hangul_J_Ieung = 3816
--- constant _KEY_Hangul_J_Jieuj
-
-_KEY_Hangul_J_Jieuj :: Int32
-_KEY_Hangul_J_Jieuj = 3817
--- constant _KEY_Hangul_J_Khieuq
-
-_KEY_Hangul_J_Khieuq :: Int32
-_KEY_Hangul_J_Khieuq = 3819
--- constant _KEY_Hangul_J_Kiyeog
-
-_KEY_Hangul_J_Kiyeog :: Int32
-_KEY_Hangul_J_Kiyeog = 3796
--- constant _KEY_Hangul_J_KiyeogSios
-
-_KEY_Hangul_J_KiyeogSios :: Int32
-_KEY_Hangul_J_KiyeogSios = 3798
--- constant _KEY_Hangul_J_KkogjiDalrinIeung
-
-_KEY_Hangul_J_KkogjiDalrinIeung :: Int32
-_KEY_Hangul_J_KkogjiDalrinIeung = 3833
--- constant _KEY_Hangul_J_Mieum
-
-_KEY_Hangul_J_Mieum :: Int32
-_KEY_Hangul_J_Mieum = 3811
--- constant _KEY_Hangul_J_Nieun
-
-_KEY_Hangul_J_Nieun :: Int32
-_KEY_Hangul_J_Nieun = 3799
--- constant _KEY_Hangul_J_NieunHieuh
-
-_KEY_Hangul_J_NieunHieuh :: Int32
-_KEY_Hangul_J_NieunHieuh = 3801
--- constant _KEY_Hangul_J_NieunJieuj
-
-_KEY_Hangul_J_NieunJieuj :: Int32
-_KEY_Hangul_J_NieunJieuj = 3800
--- constant _KEY_Hangul_J_PanSios
-
-_KEY_Hangul_J_PanSios :: Int32
-_KEY_Hangul_J_PanSios = 3832
--- constant _KEY_Hangul_J_Phieuf
-
-_KEY_Hangul_J_Phieuf :: Int32
-_KEY_Hangul_J_Phieuf = 3821
--- constant _KEY_Hangul_J_Pieub
-
-_KEY_Hangul_J_Pieub :: Int32
-_KEY_Hangul_J_Pieub = 3812
--- constant _KEY_Hangul_J_PieubSios
-
-_KEY_Hangul_J_PieubSios :: Int32
-_KEY_Hangul_J_PieubSios = 3813
--- constant _KEY_Hangul_J_Rieul
-
-_KEY_Hangul_J_Rieul :: Int32
-_KEY_Hangul_J_Rieul = 3803
--- constant _KEY_Hangul_J_RieulHieuh
-
-_KEY_Hangul_J_RieulHieuh :: Int32
-_KEY_Hangul_J_RieulHieuh = 3810
--- constant _KEY_Hangul_J_RieulKiyeog
-
-_KEY_Hangul_J_RieulKiyeog :: Int32
-_KEY_Hangul_J_RieulKiyeog = 3804
--- constant _KEY_Hangul_J_RieulMieum
-
-_KEY_Hangul_J_RieulMieum :: Int32
-_KEY_Hangul_J_RieulMieum = 3805
--- constant _KEY_Hangul_J_RieulPhieuf
-
-_KEY_Hangul_J_RieulPhieuf :: Int32
-_KEY_Hangul_J_RieulPhieuf = 3809
--- constant _KEY_Hangul_J_RieulPieub
-
-_KEY_Hangul_J_RieulPieub :: Int32
-_KEY_Hangul_J_RieulPieub = 3806
--- constant _KEY_Hangul_J_RieulSios
-
-_KEY_Hangul_J_RieulSios :: Int32
-_KEY_Hangul_J_RieulSios = 3807
--- constant _KEY_Hangul_J_RieulTieut
-
-_KEY_Hangul_J_RieulTieut :: Int32
-_KEY_Hangul_J_RieulTieut = 3808
--- constant _KEY_Hangul_J_Sios
-
-_KEY_Hangul_J_Sios :: Int32
-_KEY_Hangul_J_Sios = 3814
--- constant _KEY_Hangul_J_SsangKiyeog
-
-_KEY_Hangul_J_SsangKiyeog :: Int32
-_KEY_Hangul_J_SsangKiyeog = 3797
--- constant _KEY_Hangul_J_SsangSios
-
-_KEY_Hangul_J_SsangSios :: Int32
-_KEY_Hangul_J_SsangSios = 3815
--- constant _KEY_Hangul_J_Tieut
-
-_KEY_Hangul_J_Tieut :: Int32
-_KEY_Hangul_J_Tieut = 3820
--- constant _KEY_Hangul_J_YeorinHieuh
-
-_KEY_Hangul_J_YeorinHieuh :: Int32
-_KEY_Hangul_J_YeorinHieuh = 3834
--- constant _KEY_Hangul_Jamo
-
-_KEY_Hangul_Jamo :: Int32
-_KEY_Hangul_Jamo = 65333
--- constant _KEY_Hangul_Jeonja
-
-_KEY_Hangul_Jeonja :: Int32
-_KEY_Hangul_Jeonja = 65336
--- constant _KEY_Hangul_Jieuj
-
-_KEY_Hangul_Jieuj :: Int32
-_KEY_Hangul_Jieuj = 3768
--- constant _KEY_Hangul_Khieuq
-
-_KEY_Hangul_Khieuq :: Int32
-_KEY_Hangul_Khieuq = 3771
--- constant _KEY_Hangul_Kiyeog
-
-_KEY_Hangul_Kiyeog :: Int32
-_KEY_Hangul_Kiyeog = 3745
--- constant _KEY_Hangul_KiyeogSios
-
-_KEY_Hangul_KiyeogSios :: Int32
-_KEY_Hangul_KiyeogSios = 3747
--- constant _KEY_Hangul_KkogjiDalrinIeung
-
-_KEY_Hangul_KkogjiDalrinIeung :: Int32
-_KEY_Hangul_KkogjiDalrinIeung = 3827
--- constant _KEY_Hangul_Mieum
-
-_KEY_Hangul_Mieum :: Int32
-_KEY_Hangul_Mieum = 3761
--- constant _KEY_Hangul_MultipleCandidate
-
-_KEY_Hangul_MultipleCandidate :: Int32
-_KEY_Hangul_MultipleCandidate = 65341
--- constant _KEY_Hangul_Nieun
-
-_KEY_Hangul_Nieun :: Int32
-_KEY_Hangul_Nieun = 3748
--- constant _KEY_Hangul_NieunHieuh
-
-_KEY_Hangul_NieunHieuh :: Int32
-_KEY_Hangul_NieunHieuh = 3750
--- constant _KEY_Hangul_NieunJieuj
-
-_KEY_Hangul_NieunJieuj :: Int32
-_KEY_Hangul_NieunJieuj = 3749
--- constant _KEY_Hangul_O
-
-_KEY_Hangul_O :: Int32
-_KEY_Hangul_O = 3783
--- constant _KEY_Hangul_OE
-
-_KEY_Hangul_OE :: Int32
-_KEY_Hangul_OE = 3786
--- constant _KEY_Hangul_PanSios
-
-_KEY_Hangul_PanSios :: Int32
-_KEY_Hangul_PanSios = 3826
--- constant _KEY_Hangul_Phieuf
-
-_KEY_Hangul_Phieuf :: Int32
-_KEY_Hangul_Phieuf = 3773
--- constant _KEY_Hangul_Pieub
-
-_KEY_Hangul_Pieub :: Int32
-_KEY_Hangul_Pieub = 3762
--- constant _KEY_Hangul_PieubSios
-
-_KEY_Hangul_PieubSios :: Int32
-_KEY_Hangul_PieubSios = 3764
--- constant _KEY_Hangul_PostHanja
-
-_KEY_Hangul_PostHanja :: Int32
-_KEY_Hangul_PostHanja = 65339
--- constant _KEY_Hangul_PreHanja
-
-_KEY_Hangul_PreHanja :: Int32
-_KEY_Hangul_PreHanja = 65338
--- constant _KEY_Hangul_PreviousCandidate
-
-_KEY_Hangul_PreviousCandidate :: Int32
-_KEY_Hangul_PreviousCandidate = 65342
--- constant _KEY_Hangul_Rieul
-
-_KEY_Hangul_Rieul :: Int32
-_KEY_Hangul_Rieul = 3753
--- constant _KEY_Hangul_RieulHieuh
-
-_KEY_Hangul_RieulHieuh :: Int32
-_KEY_Hangul_RieulHieuh = 3760
--- constant _KEY_Hangul_RieulKiyeog
-
-_KEY_Hangul_RieulKiyeog :: Int32
-_KEY_Hangul_RieulKiyeog = 3754
--- constant _KEY_Hangul_RieulMieum
-
-_KEY_Hangul_RieulMieum :: Int32
-_KEY_Hangul_RieulMieum = 3755
--- constant _KEY_Hangul_RieulPhieuf
-
-_KEY_Hangul_RieulPhieuf :: Int32
-_KEY_Hangul_RieulPhieuf = 3759
--- constant _KEY_Hangul_RieulPieub
-
-_KEY_Hangul_RieulPieub :: Int32
-_KEY_Hangul_RieulPieub = 3756
--- constant _KEY_Hangul_RieulSios
-
-_KEY_Hangul_RieulSios :: Int32
-_KEY_Hangul_RieulSios = 3757
--- constant _KEY_Hangul_RieulTieut
-
-_KEY_Hangul_RieulTieut :: Int32
-_KEY_Hangul_RieulTieut = 3758
--- constant _KEY_Hangul_RieulYeorinHieuh
-
-_KEY_Hangul_RieulYeorinHieuh :: Int32
-_KEY_Hangul_RieulYeorinHieuh = 3823
--- constant _KEY_Hangul_Romaja
-
-_KEY_Hangul_Romaja :: Int32
-_KEY_Hangul_Romaja = 65334
--- constant _KEY_Hangul_SingleCandidate
-
-_KEY_Hangul_SingleCandidate :: Int32
-_KEY_Hangul_SingleCandidate = 65340
--- constant _KEY_Hangul_Sios
-
-_KEY_Hangul_Sios :: Int32
-_KEY_Hangul_Sios = 3765
--- constant _KEY_Hangul_Special
-
-_KEY_Hangul_Special :: Int32
-_KEY_Hangul_Special = 65343
--- constant _KEY_Hangul_SsangDikeud
-
-_KEY_Hangul_SsangDikeud :: Int32
-_KEY_Hangul_SsangDikeud = 3752
--- constant _KEY_Hangul_SsangJieuj
-
-_KEY_Hangul_SsangJieuj :: Int32
-_KEY_Hangul_SsangJieuj = 3769
--- constant _KEY_Hangul_SsangKiyeog
-
-_KEY_Hangul_SsangKiyeog :: Int32
-_KEY_Hangul_SsangKiyeog = 3746
--- constant _KEY_Hangul_SsangPieub
-
-_KEY_Hangul_SsangPieub :: Int32
-_KEY_Hangul_SsangPieub = 3763
--- constant _KEY_Hangul_SsangSios
-
-_KEY_Hangul_SsangSios :: Int32
-_KEY_Hangul_SsangSios = 3766
--- constant _KEY_Hangul_Start
-
-_KEY_Hangul_Start :: Int32
-_KEY_Hangul_Start = 65330
--- constant _KEY_Hangul_SunkyeongeumMieum
-
-_KEY_Hangul_SunkyeongeumMieum :: Int32
-_KEY_Hangul_SunkyeongeumMieum = 3824
--- constant _KEY_Hangul_SunkyeongeumPhieuf
-
-_KEY_Hangul_SunkyeongeumPhieuf :: Int32
-_KEY_Hangul_SunkyeongeumPhieuf = 3828
--- constant _KEY_Hangul_SunkyeongeumPieub
-
-_KEY_Hangul_SunkyeongeumPieub :: Int32
-_KEY_Hangul_SunkyeongeumPieub = 3825
--- constant _KEY_Hangul_Tieut
-
-_KEY_Hangul_Tieut :: Int32
-_KEY_Hangul_Tieut = 3772
--- constant _KEY_Hangul_U
-
-_KEY_Hangul_U :: Int32
-_KEY_Hangul_U = 3788
--- constant _KEY_Hangul_WA
-
-_KEY_Hangul_WA :: Int32
-_KEY_Hangul_WA = 3784
--- constant _KEY_Hangul_WAE
-
-_KEY_Hangul_WAE :: Int32
-_KEY_Hangul_WAE = 3785
--- constant _KEY_Hangul_WE
-
-_KEY_Hangul_WE :: Int32
-_KEY_Hangul_WE = 3790
--- constant _KEY_Hangul_WEO
-
-_KEY_Hangul_WEO :: Int32
-_KEY_Hangul_WEO = 3789
--- constant _KEY_Hangul_WI
-
-_KEY_Hangul_WI :: Int32
-_KEY_Hangul_WI = 3791
--- constant _KEY_Hangul_YA
-
-_KEY_Hangul_YA :: Int32
-_KEY_Hangul_YA = 3777
--- constant _KEY_Hangul_YAE
-
-_KEY_Hangul_YAE :: Int32
-_KEY_Hangul_YAE = 3778
--- constant _KEY_Hangul_YE
-
-_KEY_Hangul_YE :: Int32
-_KEY_Hangul_YE = 3782
--- constant _KEY_Hangul_YEO
-
-_KEY_Hangul_YEO :: Int32
-_KEY_Hangul_YEO = 3781
--- constant _KEY_Hangul_YI
-
-_KEY_Hangul_YI :: Int32
-_KEY_Hangul_YI = 3794
--- constant _KEY_Hangul_YO
-
-_KEY_Hangul_YO :: Int32
-_KEY_Hangul_YO = 3787
--- constant _KEY_Hangul_YU
-
-_KEY_Hangul_YU :: Int32
-_KEY_Hangul_YU = 3792
--- constant _KEY_Hangul_YeorinHieuh
-
-_KEY_Hangul_YeorinHieuh :: Int32
-_KEY_Hangul_YeorinHieuh = 3829
--- constant _KEY_Hangul_switch
-
-_KEY_Hangul_switch :: Int32
-_KEY_Hangul_switch = 65406
--- constant _KEY_Hankaku
-
-_KEY_Hankaku :: Int32
-_KEY_Hankaku = 65321
--- constant _KEY_Hcircumflex
-
-_KEY_Hcircumflex :: Int32
-_KEY_Hcircumflex = 678
--- constant _KEY_Hebrew_switch
-
-_KEY_Hebrew_switch :: Int32
-_KEY_Hebrew_switch = 65406
--- constant _KEY_Help
-
-_KEY_Help :: Int32
-_KEY_Help = 65386
--- constant _KEY_Henkan
-
-_KEY_Henkan :: Int32
-_KEY_Henkan = 65315
--- constant _KEY_Henkan_Mode
-
-_KEY_Henkan_Mode :: Int32
-_KEY_Henkan_Mode = 65315
--- constant _KEY_Hibernate
-
-_KEY_Hibernate :: Int32
-_KEY_Hibernate = 269025192
--- constant _KEY_Hiragana
-
-_KEY_Hiragana :: Int32
-_KEY_Hiragana = 65317
--- constant _KEY_Hiragana_Katakana
-
-_KEY_Hiragana_Katakana :: Int32
-_KEY_Hiragana_Katakana = 65319
--- constant _KEY_History
-
-_KEY_History :: Int32
-_KEY_History = 269025079
--- constant _KEY_Home
-
-_KEY_Home :: Int32
-_KEY_Home = 65360
--- constant _KEY_HomePage
-
-_KEY_HomePage :: Int32
-_KEY_HomePage = 269025048
--- constant _KEY_HotLinks
-
-_KEY_HotLinks :: Int32
-_KEY_HotLinks = 269025082
--- constant _KEY_Hstroke
-
-_KEY_Hstroke :: Int32
-_KEY_Hstroke = 673
--- constant _KEY_Hyper_L
-
-_KEY_Hyper_L :: Int32
-_KEY_Hyper_L = 65517
--- constant _KEY_Hyper_R
-
-_KEY_Hyper_R :: Int32
-_KEY_Hyper_R = 65518
--- constant _KEY_I
-
-_KEY_I :: Int32
-_KEY_I = 73
--- constant _KEY_ISO_Center_Object
-
-_KEY_ISO_Center_Object :: Int32
-_KEY_ISO_Center_Object = 65075
--- constant _KEY_ISO_Continuous_Underline
-
-_KEY_ISO_Continuous_Underline :: Int32
-_KEY_ISO_Continuous_Underline = 65072
--- constant _KEY_ISO_Discontinuous_Underline
-
-_KEY_ISO_Discontinuous_Underline :: Int32
-_KEY_ISO_Discontinuous_Underline = 65073
--- constant _KEY_ISO_Emphasize
-
-_KEY_ISO_Emphasize :: Int32
-_KEY_ISO_Emphasize = 65074
--- constant _KEY_ISO_Enter
-
-_KEY_ISO_Enter :: Int32
-_KEY_ISO_Enter = 65076
--- constant _KEY_ISO_Fast_Cursor_Down
-
-_KEY_ISO_Fast_Cursor_Down :: Int32
-_KEY_ISO_Fast_Cursor_Down = 65071
--- constant _KEY_ISO_Fast_Cursor_Left
-
-_KEY_ISO_Fast_Cursor_Left :: Int32
-_KEY_ISO_Fast_Cursor_Left = 65068
--- constant _KEY_ISO_Fast_Cursor_Right
-
-_KEY_ISO_Fast_Cursor_Right :: Int32
-_KEY_ISO_Fast_Cursor_Right = 65069
--- constant _KEY_ISO_Fast_Cursor_Up
-
-_KEY_ISO_Fast_Cursor_Up :: Int32
-_KEY_ISO_Fast_Cursor_Up = 65070
--- constant _KEY_ISO_First_Group
-
-_KEY_ISO_First_Group :: Int32
-_KEY_ISO_First_Group = 65036
--- constant _KEY_ISO_First_Group_Lock
-
-_KEY_ISO_First_Group_Lock :: Int32
-_KEY_ISO_First_Group_Lock = 65037
--- constant _KEY_ISO_Group_Latch
-
-_KEY_ISO_Group_Latch :: Int32
-_KEY_ISO_Group_Latch = 65030
--- constant _KEY_ISO_Group_Lock
-
-_KEY_ISO_Group_Lock :: Int32
-_KEY_ISO_Group_Lock = 65031
--- constant _KEY_ISO_Group_Shift
-
-_KEY_ISO_Group_Shift :: Int32
-_KEY_ISO_Group_Shift = 65406
--- constant _KEY_ISO_Last_Group
-
-_KEY_ISO_Last_Group :: Int32
-_KEY_ISO_Last_Group = 65038
--- constant _KEY_ISO_Last_Group_Lock
-
-_KEY_ISO_Last_Group_Lock :: Int32
-_KEY_ISO_Last_Group_Lock = 65039
--- constant _KEY_ISO_Left_Tab
-
-_KEY_ISO_Left_Tab :: Int32
-_KEY_ISO_Left_Tab = 65056
--- constant _KEY_ISO_Level2_Latch
-
-_KEY_ISO_Level2_Latch :: Int32
-_KEY_ISO_Level2_Latch = 65026
--- constant _KEY_ISO_Level3_Latch
-
-_KEY_ISO_Level3_Latch :: Int32
-_KEY_ISO_Level3_Latch = 65028
--- constant _KEY_ISO_Level3_Lock
-
-_KEY_ISO_Level3_Lock :: Int32
-_KEY_ISO_Level3_Lock = 65029
--- constant _KEY_ISO_Level3_Shift
-
-_KEY_ISO_Level3_Shift :: Int32
-_KEY_ISO_Level3_Shift = 65027
--- constant _KEY_ISO_Level5_Latch
-
-_KEY_ISO_Level5_Latch :: Int32
-_KEY_ISO_Level5_Latch = 65042
--- constant _KEY_ISO_Level5_Lock
-
-_KEY_ISO_Level5_Lock :: Int32
-_KEY_ISO_Level5_Lock = 65043
--- constant _KEY_ISO_Level5_Shift
-
-_KEY_ISO_Level5_Shift :: Int32
-_KEY_ISO_Level5_Shift = 65041
--- constant _KEY_ISO_Lock
-
-_KEY_ISO_Lock :: Int32
-_KEY_ISO_Lock = 65025
--- constant _KEY_ISO_Move_Line_Down
-
-_KEY_ISO_Move_Line_Down :: Int32
-_KEY_ISO_Move_Line_Down = 65058
--- constant _KEY_ISO_Move_Line_Up
-
-_KEY_ISO_Move_Line_Up :: Int32
-_KEY_ISO_Move_Line_Up = 65057
--- constant _KEY_ISO_Next_Group
-
-_KEY_ISO_Next_Group :: Int32
-_KEY_ISO_Next_Group = 65032
--- constant _KEY_ISO_Next_Group_Lock
-
-_KEY_ISO_Next_Group_Lock :: Int32
-_KEY_ISO_Next_Group_Lock = 65033
--- constant _KEY_ISO_Partial_Line_Down
-
-_KEY_ISO_Partial_Line_Down :: Int32
-_KEY_ISO_Partial_Line_Down = 65060
--- constant _KEY_ISO_Partial_Line_Up
-
-_KEY_ISO_Partial_Line_Up :: Int32
-_KEY_ISO_Partial_Line_Up = 65059
--- constant _KEY_ISO_Partial_Space_Left
-
-_KEY_ISO_Partial_Space_Left :: Int32
-_KEY_ISO_Partial_Space_Left = 65061
--- constant _KEY_ISO_Partial_Space_Right
-
-_KEY_ISO_Partial_Space_Right :: Int32
-_KEY_ISO_Partial_Space_Right = 65062
--- constant _KEY_ISO_Prev_Group
-
-_KEY_ISO_Prev_Group :: Int32
-_KEY_ISO_Prev_Group = 65034
--- constant _KEY_ISO_Prev_Group_Lock
-
-_KEY_ISO_Prev_Group_Lock :: Int32
-_KEY_ISO_Prev_Group_Lock = 65035
--- constant _KEY_ISO_Release_Both_Margins
-
-_KEY_ISO_Release_Both_Margins :: Int32
-_KEY_ISO_Release_Both_Margins = 65067
--- constant _KEY_ISO_Release_Margin_Left
-
-_KEY_ISO_Release_Margin_Left :: Int32
-_KEY_ISO_Release_Margin_Left = 65065
--- constant _KEY_ISO_Release_Margin_Right
-
-_KEY_ISO_Release_Margin_Right :: Int32
-_KEY_ISO_Release_Margin_Right = 65066
--- constant _KEY_ISO_Set_Margin_Left
-
-_KEY_ISO_Set_Margin_Left :: Int32
-_KEY_ISO_Set_Margin_Left = 65063
--- constant _KEY_ISO_Set_Margin_Right
-
-_KEY_ISO_Set_Margin_Right :: Int32
-_KEY_ISO_Set_Margin_Right = 65064
--- constant _KEY_Iabovedot
-
-_KEY_Iabovedot :: Int32
-_KEY_Iabovedot = 681
--- constant _KEY_Iacute
-
-_KEY_Iacute :: Int32
-_KEY_Iacute = 205
--- constant _KEY_Ibelowdot
-
-_KEY_Ibelowdot :: Int32
-_KEY_Ibelowdot = 16785098
--- constant _KEY_Ibreve
-
-_KEY_Ibreve :: Int32
-_KEY_Ibreve = 16777516
--- constant _KEY_Icircumflex
-
-_KEY_Icircumflex :: Int32
-_KEY_Icircumflex = 206
--- constant _KEY_Idiaeresis
-
-_KEY_Idiaeresis :: Int32
-_KEY_Idiaeresis = 207
--- constant _KEY_Igrave
-
-_KEY_Igrave :: Int32
-_KEY_Igrave = 204
--- constant _KEY_Ihook
-
-_KEY_Ihook :: Int32
-_KEY_Ihook = 16785096
--- constant _KEY_Imacron
-
-_KEY_Imacron :: Int32
-_KEY_Imacron = 975
--- constant _KEY_Insert
-
-_KEY_Insert :: Int32
-_KEY_Insert = 65379
--- constant _KEY_Iogonek
-
-_KEY_Iogonek :: Int32
-_KEY_Iogonek = 967
--- constant _KEY_Itilde
-
-_KEY_Itilde :: Int32
-_KEY_Itilde = 933
--- constant _KEY_J
-
-_KEY_J :: Int32
-_KEY_J = 74
--- constant _KEY_Jcircumflex
-
-_KEY_Jcircumflex :: Int32
-_KEY_Jcircumflex = 684
--- constant _KEY_K
-
-_KEY_K :: Int32
-_KEY_K = 75
--- constant _KEY_KP_0
-
-_KEY_KP_0 :: Int32
-_KEY_KP_0 = 65456
--- constant _KEY_KP_1
-
-_KEY_KP_1 :: Int32
-_KEY_KP_1 = 65457
--- constant _KEY_KP_2
-
-_KEY_KP_2 :: Int32
-_KEY_KP_2 = 65458
--- constant _KEY_KP_3
-
-_KEY_KP_3 :: Int32
-_KEY_KP_3 = 65459
--- constant _KEY_KP_4
-
-_KEY_KP_4 :: Int32
-_KEY_KP_4 = 65460
--- constant _KEY_KP_5
-
-_KEY_KP_5 :: Int32
-_KEY_KP_5 = 65461
--- constant _KEY_KP_6
-
-_KEY_KP_6 :: Int32
-_KEY_KP_6 = 65462
--- constant _KEY_KP_7
-
-_KEY_KP_7 :: Int32
-_KEY_KP_7 = 65463
--- constant _KEY_KP_8
-
-_KEY_KP_8 :: Int32
-_KEY_KP_8 = 65464
--- constant _KEY_KP_9
-
-_KEY_KP_9 :: Int32
-_KEY_KP_9 = 65465
--- constant _KEY_KP_Add
-
-_KEY_KP_Add :: Int32
-_KEY_KP_Add = 65451
--- constant _KEY_KP_Begin
-
-_KEY_KP_Begin :: Int32
-_KEY_KP_Begin = 65437
--- constant _KEY_KP_Decimal
-
-_KEY_KP_Decimal :: Int32
-_KEY_KP_Decimal = 65454
--- constant _KEY_KP_Delete
-
-_KEY_KP_Delete :: Int32
-_KEY_KP_Delete = 65439
--- constant _KEY_KP_Divide
-
-_KEY_KP_Divide :: Int32
-_KEY_KP_Divide = 65455
--- constant _KEY_KP_Down
-
-_KEY_KP_Down :: Int32
-_KEY_KP_Down = 65433
--- constant _KEY_KP_End
-
-_KEY_KP_End :: Int32
-_KEY_KP_End = 65436
--- constant _KEY_KP_Enter
-
-_KEY_KP_Enter :: Int32
-_KEY_KP_Enter = 65421
--- constant _KEY_KP_Equal
-
-_KEY_KP_Equal :: Int32
-_KEY_KP_Equal = 65469
--- constant _KEY_KP_F1
-
-_KEY_KP_F1 :: Int32
-_KEY_KP_F1 = 65425
--- constant _KEY_KP_F2
-
-_KEY_KP_F2 :: Int32
-_KEY_KP_F2 = 65426
--- constant _KEY_KP_F3
-
-_KEY_KP_F3 :: Int32
-_KEY_KP_F3 = 65427
--- constant _KEY_KP_F4
-
-_KEY_KP_F4 :: Int32
-_KEY_KP_F4 = 65428
--- constant _KEY_KP_Home
-
-_KEY_KP_Home :: Int32
-_KEY_KP_Home = 65429
--- constant _KEY_KP_Insert
-
-_KEY_KP_Insert :: Int32
-_KEY_KP_Insert = 65438
--- constant _KEY_KP_Left
-
-_KEY_KP_Left :: Int32
-_KEY_KP_Left = 65430
--- constant _KEY_KP_Multiply
-
-_KEY_KP_Multiply :: Int32
-_KEY_KP_Multiply = 65450
--- constant _KEY_KP_Next
-
-_KEY_KP_Next :: Int32
-_KEY_KP_Next = 65435
--- constant _KEY_KP_Page_Down
-
-_KEY_KP_Page_Down :: Int32
-_KEY_KP_Page_Down = 65435
--- constant _KEY_KP_Page_Up
-
-_KEY_KP_Page_Up :: Int32
-_KEY_KP_Page_Up = 65434
--- constant _KEY_KP_Prior
-
-_KEY_KP_Prior :: Int32
-_KEY_KP_Prior = 65434
--- constant _KEY_KP_Right
-
-_KEY_KP_Right :: Int32
-_KEY_KP_Right = 65432
--- constant _KEY_KP_Separator
-
-_KEY_KP_Separator :: Int32
-_KEY_KP_Separator = 65452
--- constant _KEY_KP_Space
-
-_KEY_KP_Space :: Int32
-_KEY_KP_Space = 65408
--- constant _KEY_KP_Subtract
-
-_KEY_KP_Subtract :: Int32
-_KEY_KP_Subtract = 65453
--- constant _KEY_KP_Tab
-
-_KEY_KP_Tab :: Int32
-_KEY_KP_Tab = 65417
--- constant _KEY_KP_Up
-
-_KEY_KP_Up :: Int32
-_KEY_KP_Up = 65431
--- constant _KEY_Kana_Lock
-
-_KEY_Kana_Lock :: Int32
-_KEY_Kana_Lock = 65325
--- constant _KEY_Kana_Shift
-
-_KEY_Kana_Shift :: Int32
-_KEY_Kana_Shift = 65326
--- constant _KEY_Kanji
-
-_KEY_Kanji :: Int32
-_KEY_Kanji = 65313
--- constant _KEY_Kanji_Bangou
-
-_KEY_Kanji_Bangou :: Int32
-_KEY_Kanji_Bangou = 65335
--- constant _KEY_Katakana
-
-_KEY_Katakana :: Int32
-_KEY_Katakana = 65318
--- constant _KEY_KbdBrightnessDown
-
-_KEY_KbdBrightnessDown :: Int32
-_KEY_KbdBrightnessDown = 269025030
--- constant _KEY_KbdBrightnessUp
-
-_KEY_KbdBrightnessUp :: Int32
-_KEY_KbdBrightnessUp = 269025029
--- constant _KEY_KbdLightOnOff
-
-_KEY_KbdLightOnOff :: Int32
-_KEY_KbdLightOnOff = 269025028
--- constant _KEY_Kcedilla
-
-_KEY_Kcedilla :: Int32
-_KEY_Kcedilla = 979
--- constant _KEY_Korean_Won
-
-_KEY_Korean_Won :: Int32
-_KEY_Korean_Won = 3839
--- constant _KEY_L
-
-_KEY_L :: Int32
-_KEY_L = 76
--- constant _KEY_L1
-
-_KEY_L1 :: Int32
-_KEY_L1 = 65480
--- constant _KEY_L10
-
-_KEY_L10 :: Int32
-_KEY_L10 = 65489
--- constant _KEY_L2
-
-_KEY_L2 :: Int32
-_KEY_L2 = 65481
--- constant _KEY_L3
-
-_KEY_L3 :: Int32
-_KEY_L3 = 65482
--- constant _KEY_L4
-
-_KEY_L4 :: Int32
-_KEY_L4 = 65483
--- constant _KEY_L5
-
-_KEY_L5 :: Int32
-_KEY_L5 = 65484
--- constant _KEY_L6
-
-_KEY_L6 :: Int32
-_KEY_L6 = 65485
--- constant _KEY_L7
-
-_KEY_L7 :: Int32
-_KEY_L7 = 65486
--- constant _KEY_L8
-
-_KEY_L8 :: Int32
-_KEY_L8 = 65487
--- constant _KEY_L9
-
-_KEY_L9 :: Int32
-_KEY_L9 = 65488
--- constant _KEY_Lacute
-
-_KEY_Lacute :: Int32
-_KEY_Lacute = 453
--- constant _KEY_Last_Virtual_Screen
-
-_KEY_Last_Virtual_Screen :: Int32
-_KEY_Last_Virtual_Screen = 65236
--- constant _KEY_Launch0
-
-_KEY_Launch0 :: Int32
-_KEY_Launch0 = 269025088
--- constant _KEY_Launch1
-
-_KEY_Launch1 :: Int32
-_KEY_Launch1 = 269025089
--- constant _KEY_Launch2
-
-_KEY_Launch2 :: Int32
-_KEY_Launch2 = 269025090
--- constant _KEY_Launch3
-
-_KEY_Launch3 :: Int32
-_KEY_Launch3 = 269025091
--- constant _KEY_Launch4
-
-_KEY_Launch4 :: Int32
-_KEY_Launch4 = 269025092
--- constant _KEY_Launch5
-
-_KEY_Launch5 :: Int32
-_KEY_Launch5 = 269025093
--- constant _KEY_Launch6
-
-_KEY_Launch6 :: Int32
-_KEY_Launch6 = 269025094
--- constant _KEY_Launch7
-
-_KEY_Launch7 :: Int32
-_KEY_Launch7 = 269025095
--- constant _KEY_Launch8
-
-_KEY_Launch8 :: Int32
-_KEY_Launch8 = 269025096
--- constant _KEY_Launch9
-
-_KEY_Launch9 :: Int32
-_KEY_Launch9 = 269025097
--- constant _KEY_LaunchA
-
-_KEY_LaunchA :: Int32
-_KEY_LaunchA = 269025098
--- constant _KEY_LaunchB
-
-_KEY_LaunchB :: Int32
-_KEY_LaunchB = 269025099
--- constant _KEY_LaunchC
-
-_KEY_LaunchC :: Int32
-_KEY_LaunchC = 269025100
--- constant _KEY_LaunchD
-
-_KEY_LaunchD :: Int32
-_KEY_LaunchD = 269025101
--- constant _KEY_LaunchE
-
-_KEY_LaunchE :: Int32
-_KEY_LaunchE = 269025102
--- constant _KEY_LaunchF
-
-_KEY_LaunchF :: Int32
-_KEY_LaunchF = 269025103
--- constant _KEY_Lbelowdot
-
-_KEY_Lbelowdot :: Int32
-_KEY_Lbelowdot = 16784950
--- constant _KEY_Lcaron
-
-_KEY_Lcaron :: Int32
-_KEY_Lcaron = 421
--- constant _KEY_Lcedilla
-
-_KEY_Lcedilla :: Int32
-_KEY_Lcedilla = 934
--- constant _KEY_Left
-
-_KEY_Left :: Int32
-_KEY_Left = 65361
--- constant _KEY_LightBulb
-
-_KEY_LightBulb :: Int32
-_KEY_LightBulb = 269025077
--- constant _KEY_Linefeed
-
-_KEY_Linefeed :: Int32
-_KEY_Linefeed = 65290
--- constant _KEY_LiraSign
-
-_KEY_LiraSign :: Int32
-_KEY_LiraSign = 16785572
--- constant _KEY_LogGrabInfo
-
-_KEY_LogGrabInfo :: Int32
-_KEY_LogGrabInfo = 269024805
--- constant _KEY_LogOff
-
-_KEY_LogOff :: Int32
-_KEY_LogOff = 269025121
--- constant _KEY_LogWindowTree
-
-_KEY_LogWindowTree :: Int32
-_KEY_LogWindowTree = 269024804
--- constant _KEY_Lstroke
-
-_KEY_Lstroke :: Int32
-_KEY_Lstroke = 419
--- constant _KEY_M
-
-_KEY_M :: Int32
-_KEY_M = 77
--- constant _KEY_Mabovedot
-
-_KEY_Mabovedot :: Int32
-_KEY_Mabovedot = 16784960
--- constant _KEY_Macedonia_DSE
-
-_KEY_Macedonia_DSE :: Int32
-_KEY_Macedonia_DSE = 1717
--- constant _KEY_Macedonia_GJE
-
-_KEY_Macedonia_GJE :: Int32
-_KEY_Macedonia_GJE = 1714
--- constant _KEY_Macedonia_KJE
-
-_KEY_Macedonia_KJE :: Int32
-_KEY_Macedonia_KJE = 1724
--- constant _KEY_Macedonia_dse
-
-_KEY_Macedonia_dse :: Int32
-_KEY_Macedonia_dse = 1701
--- constant _KEY_Macedonia_gje
-
-_KEY_Macedonia_gje :: Int32
-_KEY_Macedonia_gje = 1698
--- constant _KEY_Macedonia_kje
-
-_KEY_Macedonia_kje :: Int32
-_KEY_Macedonia_kje = 1708
--- constant _KEY_Mae_Koho
-
-_KEY_Mae_Koho :: Int32
-_KEY_Mae_Koho = 65342
--- constant _KEY_Mail
-
-_KEY_Mail :: Int32
-_KEY_Mail = 269025049
--- constant _KEY_MailForward
-
-_KEY_MailForward :: Int32
-_KEY_MailForward = 269025168
--- constant _KEY_Market
-
-_KEY_Market :: Int32
-_KEY_Market = 269025122
--- constant _KEY_Massyo
-
-_KEY_Massyo :: Int32
-_KEY_Massyo = 65324
--- constant _KEY_Meeting
-
-_KEY_Meeting :: Int32
-_KEY_Meeting = 269025123
--- constant _KEY_Memo
-
-_KEY_Memo :: Int32
-_KEY_Memo = 269025054
--- constant _KEY_Menu
-
-_KEY_Menu :: Int32
-_KEY_Menu = 65383
--- constant _KEY_MenuKB
-
-_KEY_MenuKB :: Int32
-_KEY_MenuKB = 269025125
--- constant _KEY_MenuPB
-
-_KEY_MenuPB :: Int32
-_KEY_MenuPB = 269025126
--- constant _KEY_Messenger
-
-_KEY_Messenger :: Int32
-_KEY_Messenger = 269025166
--- constant _KEY_Meta_L
-
-_KEY_Meta_L :: Int32
-_KEY_Meta_L = 65511
--- constant _KEY_Meta_R
-
-_KEY_Meta_R :: Int32
-_KEY_Meta_R = 65512
--- constant _KEY_MillSign
-
-_KEY_MillSign :: Int32
-_KEY_MillSign = 16785573
--- constant _KEY_ModeLock
-
-_KEY_ModeLock :: Int32
-_KEY_ModeLock = 269025025
--- constant _KEY_Mode_switch
-
-_KEY_Mode_switch :: Int32
-_KEY_Mode_switch = 65406
--- constant _KEY_MonBrightnessDown
-
-_KEY_MonBrightnessDown :: Int32
-_KEY_MonBrightnessDown = 269025027
--- constant _KEY_MonBrightnessUp
-
-_KEY_MonBrightnessUp :: Int32
-_KEY_MonBrightnessUp = 269025026
--- constant _KEY_MouseKeys_Accel_Enable
-
-_KEY_MouseKeys_Accel_Enable :: Int32
-_KEY_MouseKeys_Accel_Enable = 65143
--- constant _KEY_MouseKeys_Enable
-
-_KEY_MouseKeys_Enable :: Int32
-_KEY_MouseKeys_Enable = 65142
--- constant _KEY_Muhenkan
-
-_KEY_Muhenkan :: Int32
-_KEY_Muhenkan = 65314
--- constant _KEY_Multi_key
-
-_KEY_Multi_key :: Int32
-_KEY_Multi_key = 65312
--- constant _KEY_MultipleCandidate
-
-_KEY_MultipleCandidate :: Int32
-_KEY_MultipleCandidate = 65341
--- constant _KEY_Music
-
-_KEY_Music :: Int32
-_KEY_Music = 269025170
--- constant _KEY_MyComputer
-
-_KEY_MyComputer :: Int32
-_KEY_MyComputer = 269025075
--- constant _KEY_MySites
-
-_KEY_MySites :: Int32
-_KEY_MySites = 269025127
--- constant _KEY_N
-
-_KEY_N :: Int32
-_KEY_N = 78
--- constant _KEY_Nacute
-
-_KEY_Nacute :: Int32
-_KEY_Nacute = 465
--- constant _KEY_NairaSign
-
-_KEY_NairaSign :: Int32
-_KEY_NairaSign = 16785574
--- constant _KEY_Ncaron
-
-_KEY_Ncaron :: Int32
-_KEY_Ncaron = 466
--- constant _KEY_Ncedilla
-
-_KEY_Ncedilla :: Int32
-_KEY_Ncedilla = 977
--- constant _KEY_New
-
-_KEY_New :: Int32
-_KEY_New = 269025128
--- constant _KEY_NewSheqelSign
-
-_KEY_NewSheqelSign :: Int32
-_KEY_NewSheqelSign = 16785578
--- constant _KEY_News
-
-_KEY_News :: Int32
-_KEY_News = 269025129
--- constant _KEY_Next
-
-_KEY_Next :: Int32
-_KEY_Next = 65366
--- constant _KEY_Next_VMode
-
-_KEY_Next_VMode :: Int32
-_KEY_Next_VMode = 269024802
--- constant _KEY_Next_Virtual_Screen
-
-_KEY_Next_Virtual_Screen :: Int32
-_KEY_Next_Virtual_Screen = 65234
--- constant _KEY_Ntilde
-
-_KEY_Ntilde :: Int32
-_KEY_Ntilde = 209
--- constant _KEY_Num_Lock
-
-_KEY_Num_Lock :: Int32
-_KEY_Num_Lock = 65407
--- constant _KEY_O
-
-_KEY_O :: Int32
-_KEY_O = 79
--- constant _KEY_OE
-
-_KEY_OE :: Int32
-_KEY_OE = 5052
--- constant _KEY_Oacute
-
-_KEY_Oacute :: Int32
-_KEY_Oacute = 211
--- constant _KEY_Obarred
-
-_KEY_Obarred :: Int32
-_KEY_Obarred = 16777631
--- constant _KEY_Obelowdot
-
-_KEY_Obelowdot :: Int32
-_KEY_Obelowdot = 16785100
--- constant _KEY_Ocaron
-
-_KEY_Ocaron :: Int32
-_KEY_Ocaron = 16777681
--- constant _KEY_Ocircumflex
-
-_KEY_Ocircumflex :: Int32
-_KEY_Ocircumflex = 212
--- constant _KEY_Ocircumflexacute
-
-_KEY_Ocircumflexacute :: Int32
-_KEY_Ocircumflexacute = 16785104
--- constant _KEY_Ocircumflexbelowdot
-
-_KEY_Ocircumflexbelowdot :: Int32
-_KEY_Ocircumflexbelowdot = 16785112
--- constant _KEY_Ocircumflexgrave
-
-_KEY_Ocircumflexgrave :: Int32
-_KEY_Ocircumflexgrave = 16785106
--- constant _KEY_Ocircumflexhook
-
-_KEY_Ocircumflexhook :: Int32
-_KEY_Ocircumflexhook = 16785108
--- constant _KEY_Ocircumflextilde
-
-_KEY_Ocircumflextilde :: Int32
-_KEY_Ocircumflextilde = 16785110
--- constant _KEY_Odiaeresis
-
-_KEY_Odiaeresis :: Int32
-_KEY_Odiaeresis = 214
--- constant _KEY_Odoubleacute
-
-_KEY_Odoubleacute :: Int32
-_KEY_Odoubleacute = 469
--- constant _KEY_OfficeHome
-
-_KEY_OfficeHome :: Int32
-_KEY_OfficeHome = 269025130
--- constant _KEY_Ograve
-
-_KEY_Ograve :: Int32
-_KEY_Ograve = 210
--- constant _KEY_Ohook
-
-_KEY_Ohook :: Int32
-_KEY_Ohook = 16785102
--- constant _KEY_Ohorn
-
-_KEY_Ohorn :: Int32
-_KEY_Ohorn = 16777632
--- constant _KEY_Ohornacute
-
-_KEY_Ohornacute :: Int32
-_KEY_Ohornacute = 16785114
--- constant _KEY_Ohornbelowdot
-
-_KEY_Ohornbelowdot :: Int32
-_KEY_Ohornbelowdot = 16785122
--- constant _KEY_Ohorngrave
-
-_KEY_Ohorngrave :: Int32
-_KEY_Ohorngrave = 16785116
--- constant _KEY_Ohornhook
-
-_KEY_Ohornhook :: Int32
-_KEY_Ohornhook = 16785118
--- constant _KEY_Ohorntilde
-
-_KEY_Ohorntilde :: Int32
-_KEY_Ohorntilde = 16785120
--- constant _KEY_Omacron
-
-_KEY_Omacron :: Int32
-_KEY_Omacron = 978
--- constant _KEY_Ooblique
-
-_KEY_Ooblique :: Int32
-_KEY_Ooblique = 216
--- constant _KEY_Open
-
-_KEY_Open :: Int32
-_KEY_Open = 269025131
--- constant _KEY_OpenURL
-
-_KEY_OpenURL :: Int32
-_KEY_OpenURL = 269025080
--- constant _KEY_Option
-
-_KEY_Option :: Int32
-_KEY_Option = 269025132
--- constant _KEY_Oslash
-
-_KEY_Oslash :: Int32
-_KEY_Oslash = 216
--- constant _KEY_Otilde
-
-_KEY_Otilde :: Int32
-_KEY_Otilde = 213
--- constant _KEY_Overlay1_Enable
-
-_KEY_Overlay1_Enable :: Int32
-_KEY_Overlay1_Enable = 65144
--- constant _KEY_Overlay2_Enable
-
-_KEY_Overlay2_Enable :: Int32
-_KEY_Overlay2_Enable = 65145
--- constant _KEY_P
-
-_KEY_P :: Int32
-_KEY_P = 80
--- constant _KEY_Pabovedot
-
-_KEY_Pabovedot :: Int32
-_KEY_Pabovedot = 16784982
--- constant _KEY_Page_Down
-
-_KEY_Page_Down :: Int32
-_KEY_Page_Down = 65366
--- constant _KEY_Page_Up
-
-_KEY_Page_Up :: Int32
-_KEY_Page_Up = 65365
--- constant _KEY_Paste
-
-_KEY_Paste :: Int32
-_KEY_Paste = 269025133
--- constant _KEY_Pause
-
-_KEY_Pause :: Int32
-_KEY_Pause = 65299
--- constant _KEY_PesetaSign
-
-_KEY_PesetaSign :: Int32
-_KEY_PesetaSign = 16785575
--- constant _KEY_Phone
-
-_KEY_Phone :: Int32
-_KEY_Phone = 269025134
--- constant _KEY_Pictures
-
-_KEY_Pictures :: Int32
-_KEY_Pictures = 269025169
--- constant _KEY_Pointer_Accelerate
-
-_KEY_Pointer_Accelerate :: Int32
-_KEY_Pointer_Accelerate = 65274
--- constant _KEY_Pointer_Button1
-
-_KEY_Pointer_Button1 :: Int32
-_KEY_Pointer_Button1 = 65257
--- constant _KEY_Pointer_Button2
-
-_KEY_Pointer_Button2 :: Int32
-_KEY_Pointer_Button2 = 65258
--- constant _KEY_Pointer_Button3
-
-_KEY_Pointer_Button3 :: Int32
-_KEY_Pointer_Button3 = 65259
--- constant _KEY_Pointer_Button4
-
-_KEY_Pointer_Button4 :: Int32
-_KEY_Pointer_Button4 = 65260
--- constant _KEY_Pointer_Button5
-
-_KEY_Pointer_Button5 :: Int32
-_KEY_Pointer_Button5 = 65261
--- constant _KEY_Pointer_Button_Dflt
-
-_KEY_Pointer_Button_Dflt :: Int32
-_KEY_Pointer_Button_Dflt = 65256
--- constant _KEY_Pointer_DblClick1
-
-_KEY_Pointer_DblClick1 :: Int32
-_KEY_Pointer_DblClick1 = 65263
--- constant _KEY_Pointer_DblClick2
-
-_KEY_Pointer_DblClick2 :: Int32
-_KEY_Pointer_DblClick2 = 65264
--- constant _KEY_Pointer_DblClick3
-
-_KEY_Pointer_DblClick3 :: Int32
-_KEY_Pointer_DblClick3 = 65265
--- constant _KEY_Pointer_DblClick4
-
-_KEY_Pointer_DblClick4 :: Int32
-_KEY_Pointer_DblClick4 = 65266
--- constant _KEY_Pointer_DblClick5
-
-_KEY_Pointer_DblClick5 :: Int32
-_KEY_Pointer_DblClick5 = 65267
--- constant _KEY_Pointer_DblClick_Dflt
-
-_KEY_Pointer_DblClick_Dflt :: Int32
-_KEY_Pointer_DblClick_Dflt = 65262
--- constant _KEY_Pointer_DfltBtnNext
-
-_KEY_Pointer_DfltBtnNext :: Int32
-_KEY_Pointer_DfltBtnNext = 65275
--- constant _KEY_Pointer_DfltBtnPrev
-
-_KEY_Pointer_DfltBtnPrev :: Int32
-_KEY_Pointer_DfltBtnPrev = 65276
--- constant _KEY_Pointer_Down
-
-_KEY_Pointer_Down :: Int32
-_KEY_Pointer_Down = 65251
--- constant _KEY_Pointer_DownLeft
-
-_KEY_Pointer_DownLeft :: Int32
-_KEY_Pointer_DownLeft = 65254
--- constant _KEY_Pointer_DownRight
-
-_KEY_Pointer_DownRight :: Int32
-_KEY_Pointer_DownRight = 65255
--- constant _KEY_Pointer_Drag1
-
-_KEY_Pointer_Drag1 :: Int32
-_KEY_Pointer_Drag1 = 65269
--- constant _KEY_Pointer_Drag2
-
-_KEY_Pointer_Drag2 :: Int32
-_KEY_Pointer_Drag2 = 65270
--- constant _KEY_Pointer_Drag3
-
-_KEY_Pointer_Drag3 :: Int32
-_KEY_Pointer_Drag3 = 65271
--- constant _KEY_Pointer_Drag4
-
-_KEY_Pointer_Drag4 :: Int32
-_KEY_Pointer_Drag4 = 65272
--- constant _KEY_Pointer_Drag5
-
-_KEY_Pointer_Drag5 :: Int32
-_KEY_Pointer_Drag5 = 65277
--- constant _KEY_Pointer_Drag_Dflt
-
-_KEY_Pointer_Drag_Dflt :: Int32
-_KEY_Pointer_Drag_Dflt = 65268
--- constant _KEY_Pointer_EnableKeys
-
-_KEY_Pointer_EnableKeys :: Int32
-_KEY_Pointer_EnableKeys = 65273
--- constant _KEY_Pointer_Left
-
-_KEY_Pointer_Left :: Int32
-_KEY_Pointer_Left = 65248
--- constant _KEY_Pointer_Right
-
-_KEY_Pointer_Right :: Int32
-_KEY_Pointer_Right = 65249
--- constant _KEY_Pointer_Up
-
-_KEY_Pointer_Up :: Int32
-_KEY_Pointer_Up = 65250
--- constant _KEY_Pointer_UpLeft
-
-_KEY_Pointer_UpLeft :: Int32
-_KEY_Pointer_UpLeft = 65252
--- constant _KEY_Pointer_UpRight
-
-_KEY_Pointer_UpRight :: Int32
-_KEY_Pointer_UpRight = 65253
--- constant _KEY_PowerDown
-
-_KEY_PowerDown :: Int32
-_KEY_PowerDown = 269025057
--- constant _KEY_PowerOff
-
-_KEY_PowerOff :: Int32
-_KEY_PowerOff = 269025066
--- constant _KEY_Prev_VMode
-
-_KEY_Prev_VMode :: Int32
-_KEY_Prev_VMode = 269024803
--- constant _KEY_Prev_Virtual_Screen
-
-_KEY_Prev_Virtual_Screen :: Int32
-_KEY_Prev_Virtual_Screen = 65233
--- constant _KEY_PreviousCandidate
-
-_KEY_PreviousCandidate :: Int32
-_KEY_PreviousCandidate = 65342
--- constant _KEY_Print
-
-_KEY_Print :: Int32
-_KEY_Print = 65377
--- constant _KEY_Prior
-
-_KEY_Prior :: Int32
-_KEY_Prior = 65365
--- constant _KEY_Q
-
-_KEY_Q :: Int32
-_KEY_Q = 81
--- constant _KEY_R
-
-_KEY_R :: Int32
-_KEY_R = 82
--- constant _KEY_R1
-
-_KEY_R1 :: Int32
-_KEY_R1 = 65490
--- constant _KEY_R10
-
-_KEY_R10 :: Int32
-_KEY_R10 = 65499
--- constant _KEY_R11
-
-_KEY_R11 :: Int32
-_KEY_R11 = 65500
--- constant _KEY_R12
-
-_KEY_R12 :: Int32
-_KEY_R12 = 65501
--- constant _KEY_R13
-
-_KEY_R13 :: Int32
-_KEY_R13 = 65502
--- constant _KEY_R14
-
-_KEY_R14 :: Int32
-_KEY_R14 = 65503
--- constant _KEY_R15
-
-_KEY_R15 :: Int32
-_KEY_R15 = 65504
--- constant _KEY_R2
-
-_KEY_R2 :: Int32
-_KEY_R2 = 65491
--- constant _KEY_R3
-
-_KEY_R3 :: Int32
-_KEY_R3 = 65492
--- constant _KEY_R4
-
-_KEY_R4 :: Int32
-_KEY_R4 = 65493
--- constant _KEY_R5
-
-_KEY_R5 :: Int32
-_KEY_R5 = 65494
--- constant _KEY_R6
-
-_KEY_R6 :: Int32
-_KEY_R6 = 65495
--- constant _KEY_R7
-
-_KEY_R7 :: Int32
-_KEY_R7 = 65496
--- constant _KEY_R8
-
-_KEY_R8 :: Int32
-_KEY_R8 = 65497
--- constant _KEY_R9
-
-_KEY_R9 :: Int32
-_KEY_R9 = 65498
--- constant _KEY_Racute
-
-_KEY_Racute :: Int32
-_KEY_Racute = 448
--- constant _KEY_Rcaron
-
-_KEY_Rcaron :: Int32
-_KEY_Rcaron = 472
--- constant _KEY_Rcedilla
-
-_KEY_Rcedilla :: Int32
-_KEY_Rcedilla = 931
--- constant _KEY_Red
-
-_KEY_Red :: Int32
-_KEY_Red = 269025187
--- constant _KEY_Redo
-
-_KEY_Redo :: Int32
-_KEY_Redo = 65382
--- constant _KEY_Refresh
-
-_KEY_Refresh :: Int32
-_KEY_Refresh = 269025065
--- constant _KEY_Reload
-
-_KEY_Reload :: Int32
-_KEY_Reload = 269025139
--- constant _KEY_RepeatKeys_Enable
-
-_KEY_RepeatKeys_Enable :: Int32
-_KEY_RepeatKeys_Enable = 65138
--- constant _KEY_Reply
-
-_KEY_Reply :: Int32
-_KEY_Reply = 269025138
--- constant _KEY_Return
-
-_KEY_Return :: Int32
-_KEY_Return = 65293
--- constant _KEY_Right
-
-_KEY_Right :: Int32
-_KEY_Right = 65363
--- constant _KEY_RockerDown
-
-_KEY_RockerDown :: Int32
-_KEY_RockerDown = 269025060
--- constant _KEY_RockerEnter
-
-_KEY_RockerEnter :: Int32
-_KEY_RockerEnter = 269025061
--- constant _KEY_RockerUp
-
-_KEY_RockerUp :: Int32
-_KEY_RockerUp = 269025059
--- constant _KEY_Romaji
-
-_KEY_Romaji :: Int32
-_KEY_Romaji = 65316
--- constant _KEY_RotateWindows
-
-_KEY_RotateWindows :: Int32
-_KEY_RotateWindows = 269025140
--- constant _KEY_RotationKB
-
-_KEY_RotationKB :: Int32
-_KEY_RotationKB = 269025142
--- constant _KEY_RotationPB
-
-_KEY_RotationPB :: Int32
-_KEY_RotationPB = 269025141
--- constant _KEY_RupeeSign
-
-_KEY_RupeeSign :: Int32
-_KEY_RupeeSign = 16785576
--- constant _KEY_S
-
-_KEY_S :: Int32
-_KEY_S = 83
--- constant _KEY_SCHWA
-
-_KEY_SCHWA :: Int32
-_KEY_SCHWA = 16777615
--- constant _KEY_Sabovedot
-
-_KEY_Sabovedot :: Int32
-_KEY_Sabovedot = 16784992
--- constant _KEY_Sacute
-
-_KEY_Sacute :: Int32
-_KEY_Sacute = 422
--- constant _KEY_Save
-
-_KEY_Save :: Int32
-_KEY_Save = 269025143
--- constant _KEY_Scaron
-
-_KEY_Scaron :: Int32
-_KEY_Scaron = 425
--- constant _KEY_Scedilla
-
-_KEY_Scedilla :: Int32
-_KEY_Scedilla = 426
--- constant _KEY_Scircumflex
-
-_KEY_Scircumflex :: Int32
-_KEY_Scircumflex = 734
--- constant _KEY_ScreenSaver
-
-_KEY_ScreenSaver :: Int32
-_KEY_ScreenSaver = 269025069
--- constant _KEY_ScrollClick
-
-_KEY_ScrollClick :: Int32
-_KEY_ScrollClick = 269025146
--- constant _KEY_ScrollDown
-
-_KEY_ScrollDown :: Int32
-_KEY_ScrollDown = 269025145
--- constant _KEY_ScrollUp
-
-_KEY_ScrollUp :: Int32
-_KEY_ScrollUp = 269025144
--- constant _KEY_Scroll_Lock
-
-_KEY_Scroll_Lock :: Int32
-_KEY_Scroll_Lock = 65300
--- constant _KEY_Search
-
-_KEY_Search :: Int32
-_KEY_Search = 269025051
--- constant _KEY_Select
-
-_KEY_Select :: Int32
-_KEY_Select = 65376
--- constant _KEY_SelectButton
-
-_KEY_SelectButton :: Int32
-_KEY_SelectButton = 269025184
--- constant _KEY_Send
-
-_KEY_Send :: Int32
-_KEY_Send = 269025147
--- constant _KEY_Serbian_DJE
-
-_KEY_Serbian_DJE :: Int32
-_KEY_Serbian_DJE = 1713
--- constant _KEY_Serbian_DZE
-
-_KEY_Serbian_DZE :: Int32
-_KEY_Serbian_DZE = 1727
--- constant _KEY_Serbian_JE
-
-_KEY_Serbian_JE :: Int32
-_KEY_Serbian_JE = 1720
--- constant _KEY_Serbian_LJE
-
-_KEY_Serbian_LJE :: Int32
-_KEY_Serbian_LJE = 1721
--- constant _KEY_Serbian_NJE
-
-_KEY_Serbian_NJE :: Int32
-_KEY_Serbian_NJE = 1722
--- constant _KEY_Serbian_TSHE
-
-_KEY_Serbian_TSHE :: Int32
-_KEY_Serbian_TSHE = 1723
--- constant _KEY_Serbian_dje
-
-_KEY_Serbian_dje :: Int32
-_KEY_Serbian_dje = 1697
--- constant _KEY_Serbian_dze
-
-_KEY_Serbian_dze :: Int32
-_KEY_Serbian_dze = 1711
--- constant _KEY_Serbian_je
-
-_KEY_Serbian_je :: Int32
-_KEY_Serbian_je = 1704
--- constant _KEY_Serbian_lje
-
-_KEY_Serbian_lje :: Int32
-_KEY_Serbian_lje = 1705
--- constant _KEY_Serbian_nje
-
-_KEY_Serbian_nje :: Int32
-_KEY_Serbian_nje = 1706
--- constant _KEY_Serbian_tshe
-
-_KEY_Serbian_tshe :: Int32
-_KEY_Serbian_tshe = 1707
--- constant _KEY_Shift_L
-
-_KEY_Shift_L :: Int32
-_KEY_Shift_L = 65505
--- constant _KEY_Shift_Lock
-
-_KEY_Shift_Lock :: Int32
-_KEY_Shift_Lock = 65510
--- constant _KEY_Shift_R
-
-_KEY_Shift_R :: Int32
-_KEY_Shift_R = 65506
--- constant _KEY_Shop
-
-_KEY_Shop :: Int32
-_KEY_Shop = 269025078
--- constant _KEY_SingleCandidate
-
-_KEY_SingleCandidate :: Int32
-_KEY_SingleCandidate = 65340
--- constant _KEY_Sinh_a
-
-_KEY_Sinh_a :: Int32
-_KEY_Sinh_a = 16780677
--- constant _KEY_Sinh_aa
-
-_KEY_Sinh_aa :: Int32
-_KEY_Sinh_aa = 16780678
--- constant _KEY_Sinh_aa2
-
-_KEY_Sinh_aa2 :: Int32
-_KEY_Sinh_aa2 = 16780751
--- constant _KEY_Sinh_ae
-
-_KEY_Sinh_ae :: Int32
-_KEY_Sinh_ae = 16780679
--- constant _KEY_Sinh_ae2
-
-_KEY_Sinh_ae2 :: Int32
-_KEY_Sinh_ae2 = 16780752
--- constant _KEY_Sinh_aee
-
-_KEY_Sinh_aee :: Int32
-_KEY_Sinh_aee = 16780680
--- constant _KEY_Sinh_aee2
-
-_KEY_Sinh_aee2 :: Int32
-_KEY_Sinh_aee2 = 16780753
--- constant _KEY_Sinh_ai
-
-_KEY_Sinh_ai :: Int32
-_KEY_Sinh_ai = 16780691
--- constant _KEY_Sinh_ai2
-
-_KEY_Sinh_ai2 :: Int32
-_KEY_Sinh_ai2 = 16780763
--- constant _KEY_Sinh_al
-
-_KEY_Sinh_al :: Int32
-_KEY_Sinh_al = 16780746
--- constant _KEY_Sinh_au
-
-_KEY_Sinh_au :: Int32
-_KEY_Sinh_au = 16780694
--- constant _KEY_Sinh_au2
-
-_KEY_Sinh_au2 :: Int32
-_KEY_Sinh_au2 = 16780766
--- constant _KEY_Sinh_ba
-
-_KEY_Sinh_ba :: Int32
-_KEY_Sinh_ba = 16780726
--- constant _KEY_Sinh_bha
-
-_KEY_Sinh_bha :: Int32
-_KEY_Sinh_bha = 16780727
--- constant _KEY_Sinh_ca
-
-_KEY_Sinh_ca :: Int32
-_KEY_Sinh_ca = 16780704
--- constant _KEY_Sinh_cha
-
-_KEY_Sinh_cha :: Int32
-_KEY_Sinh_cha = 16780705
--- constant _KEY_Sinh_dda
-
-_KEY_Sinh_dda :: Int32
-_KEY_Sinh_dda = 16780713
--- constant _KEY_Sinh_ddha
-
-_KEY_Sinh_ddha :: Int32
-_KEY_Sinh_ddha = 16780714
--- constant _KEY_Sinh_dha
-
-_KEY_Sinh_dha :: Int32
-_KEY_Sinh_dha = 16780719
--- constant _KEY_Sinh_dhha
-
-_KEY_Sinh_dhha :: Int32
-_KEY_Sinh_dhha = 16780720
--- constant _KEY_Sinh_e
-
-_KEY_Sinh_e :: Int32
-_KEY_Sinh_e = 16780689
--- constant _KEY_Sinh_e2
-
-_KEY_Sinh_e2 :: Int32
-_KEY_Sinh_e2 = 16780761
--- constant _KEY_Sinh_ee
-
-_KEY_Sinh_ee :: Int32
-_KEY_Sinh_ee = 16780690
--- constant _KEY_Sinh_ee2
-
-_KEY_Sinh_ee2 :: Int32
-_KEY_Sinh_ee2 = 16780762
--- constant _KEY_Sinh_fa
-
-_KEY_Sinh_fa :: Int32
-_KEY_Sinh_fa = 16780742
--- constant _KEY_Sinh_ga
-
-_KEY_Sinh_ga :: Int32
-_KEY_Sinh_ga = 16780700
--- constant _KEY_Sinh_gha
-
-_KEY_Sinh_gha :: Int32
-_KEY_Sinh_gha = 16780701
--- constant _KEY_Sinh_h2
-
-_KEY_Sinh_h2 :: Int32
-_KEY_Sinh_h2 = 16780675
--- constant _KEY_Sinh_ha
-
-_KEY_Sinh_ha :: Int32
-_KEY_Sinh_ha = 16780740
--- constant _KEY_Sinh_i
-
-_KEY_Sinh_i :: Int32
-_KEY_Sinh_i = 16780681
--- constant _KEY_Sinh_i2
-
-_KEY_Sinh_i2 :: Int32
-_KEY_Sinh_i2 = 16780754
--- constant _KEY_Sinh_ii
-
-_KEY_Sinh_ii :: Int32
-_KEY_Sinh_ii = 16780682
--- constant _KEY_Sinh_ii2
-
-_KEY_Sinh_ii2 :: Int32
-_KEY_Sinh_ii2 = 16780755
--- constant _KEY_Sinh_ja
-
-_KEY_Sinh_ja :: Int32
-_KEY_Sinh_ja = 16780706
--- constant _KEY_Sinh_jha
-
-_KEY_Sinh_jha :: Int32
-_KEY_Sinh_jha = 16780707
--- constant _KEY_Sinh_jnya
-
-_KEY_Sinh_jnya :: Int32
-_KEY_Sinh_jnya = 16780709
--- constant _KEY_Sinh_ka
-
-_KEY_Sinh_ka :: Int32
-_KEY_Sinh_ka = 16780698
--- constant _KEY_Sinh_kha
-
-_KEY_Sinh_kha :: Int32
-_KEY_Sinh_kha = 16780699
--- constant _KEY_Sinh_kunddaliya
-
-_KEY_Sinh_kunddaliya :: Int32
-_KEY_Sinh_kunddaliya = 16780788
--- constant _KEY_Sinh_la
-
-_KEY_Sinh_la :: Int32
-_KEY_Sinh_la = 16780733
--- constant _KEY_Sinh_lla
-
-_KEY_Sinh_lla :: Int32
-_KEY_Sinh_lla = 16780741
--- constant _KEY_Sinh_lu
-
-_KEY_Sinh_lu :: Int32
-_KEY_Sinh_lu = 16780687
--- constant _KEY_Sinh_lu2
-
-_KEY_Sinh_lu2 :: Int32
-_KEY_Sinh_lu2 = 16780767
--- constant _KEY_Sinh_luu
-
-_KEY_Sinh_luu :: Int32
-_KEY_Sinh_luu = 16780688
--- constant _KEY_Sinh_luu2
-
-_KEY_Sinh_luu2 :: Int32
-_KEY_Sinh_luu2 = 16780787
--- constant _KEY_Sinh_ma
-
-_KEY_Sinh_ma :: Int32
-_KEY_Sinh_ma = 16780728
--- constant _KEY_Sinh_mba
-
-_KEY_Sinh_mba :: Int32
-_KEY_Sinh_mba = 16780729
--- constant _KEY_Sinh_na
-
-_KEY_Sinh_na :: Int32
-_KEY_Sinh_na = 16780721
--- constant _KEY_Sinh_ndda
-
-_KEY_Sinh_ndda :: Int32
-_KEY_Sinh_ndda = 16780716
--- constant _KEY_Sinh_ndha
-
-_KEY_Sinh_ndha :: Int32
-_KEY_Sinh_ndha = 16780723
--- constant _KEY_Sinh_ng
-
-_KEY_Sinh_ng :: Int32
-_KEY_Sinh_ng = 16780674
--- constant _KEY_Sinh_ng2
-
-_KEY_Sinh_ng2 :: Int32
-_KEY_Sinh_ng2 = 16780702
--- constant _KEY_Sinh_nga
-
-_KEY_Sinh_nga :: Int32
-_KEY_Sinh_nga = 16780703
--- constant _KEY_Sinh_nja
-
-_KEY_Sinh_nja :: Int32
-_KEY_Sinh_nja = 16780710
--- constant _KEY_Sinh_nna
-
-_KEY_Sinh_nna :: Int32
-_KEY_Sinh_nna = 16780715
--- constant _KEY_Sinh_nya
-
-_KEY_Sinh_nya :: Int32
-_KEY_Sinh_nya = 16780708
--- constant _KEY_Sinh_o
-
-_KEY_Sinh_o :: Int32
-_KEY_Sinh_o = 16780692
--- constant _KEY_Sinh_o2
-
-_KEY_Sinh_o2 :: Int32
-_KEY_Sinh_o2 = 16780764
--- constant _KEY_Sinh_oo
-
-_KEY_Sinh_oo :: Int32
-_KEY_Sinh_oo = 16780693
--- constant _KEY_Sinh_oo2
-
-_KEY_Sinh_oo2 :: Int32
-_KEY_Sinh_oo2 = 16780765
--- constant _KEY_Sinh_pa
-
-_KEY_Sinh_pa :: Int32
-_KEY_Sinh_pa = 16780724
--- constant _KEY_Sinh_pha
-
-_KEY_Sinh_pha :: Int32
-_KEY_Sinh_pha = 16780725
--- constant _KEY_Sinh_ra
-
-_KEY_Sinh_ra :: Int32
-_KEY_Sinh_ra = 16780731
--- constant _KEY_Sinh_ri
-
-_KEY_Sinh_ri :: Int32
-_KEY_Sinh_ri = 16780685
--- constant _KEY_Sinh_rii
-
-_KEY_Sinh_rii :: Int32
-_KEY_Sinh_rii = 16780686
--- constant _KEY_Sinh_ru2
-
-_KEY_Sinh_ru2 :: Int32
-_KEY_Sinh_ru2 = 16780760
--- constant _KEY_Sinh_ruu2
-
-_KEY_Sinh_ruu2 :: Int32
-_KEY_Sinh_ruu2 = 16780786
--- constant _KEY_Sinh_sa
-
-_KEY_Sinh_sa :: Int32
-_KEY_Sinh_sa = 16780739
--- constant _KEY_Sinh_sha
-
-_KEY_Sinh_sha :: Int32
-_KEY_Sinh_sha = 16780737
--- constant _KEY_Sinh_ssha
-
-_KEY_Sinh_ssha :: Int32
-_KEY_Sinh_ssha = 16780738
--- constant _KEY_Sinh_tha
-
-_KEY_Sinh_tha :: Int32
-_KEY_Sinh_tha = 16780717
--- constant _KEY_Sinh_thha
-
-_KEY_Sinh_thha :: Int32
-_KEY_Sinh_thha = 16780718
--- constant _KEY_Sinh_tta
-
-_KEY_Sinh_tta :: Int32
-_KEY_Sinh_tta = 16780711
--- constant _KEY_Sinh_ttha
-
-_KEY_Sinh_ttha :: Int32
-_KEY_Sinh_ttha = 16780712
--- constant _KEY_Sinh_u
-
-_KEY_Sinh_u :: Int32
-_KEY_Sinh_u = 16780683
--- constant _KEY_Sinh_u2
-
-_KEY_Sinh_u2 :: Int32
-_KEY_Sinh_u2 = 16780756
--- constant _KEY_Sinh_uu
-
-_KEY_Sinh_uu :: Int32
-_KEY_Sinh_uu = 16780684
--- constant _KEY_Sinh_uu2
-
-_KEY_Sinh_uu2 :: Int32
-_KEY_Sinh_uu2 = 16780758
--- constant _KEY_Sinh_va
-
-_KEY_Sinh_va :: Int32
-_KEY_Sinh_va = 16780736
--- constant _KEY_Sinh_ya
-
-_KEY_Sinh_ya :: Int32
-_KEY_Sinh_ya = 16780730
--- constant _KEY_Sleep
-
-_KEY_Sleep :: Int32
-_KEY_Sleep = 269025071
--- constant _KEY_SlowKeys_Enable
-
-_KEY_SlowKeys_Enable :: Int32
-_KEY_SlowKeys_Enable = 65139
--- constant _KEY_Spell
-
-_KEY_Spell :: Int32
-_KEY_Spell = 269025148
--- constant _KEY_SplitScreen
-
-_KEY_SplitScreen :: Int32
-_KEY_SplitScreen = 269025149
--- constant _KEY_Standby
-
-_KEY_Standby :: Int32
-_KEY_Standby = 269025040
--- constant _KEY_Start
-
-_KEY_Start :: Int32
-_KEY_Start = 269025050
--- constant _KEY_StickyKeys_Enable
-
-_KEY_StickyKeys_Enable :: Int32
-_KEY_StickyKeys_Enable = 65141
--- constant _KEY_Stop
-
-_KEY_Stop :: Int32
-_KEY_Stop = 269025064
--- constant _KEY_Subtitle
-
-_KEY_Subtitle :: Int32
-_KEY_Subtitle = 269025178
--- constant _KEY_Super_L
-
-_KEY_Super_L :: Int32
-_KEY_Super_L = 65515
--- constant _KEY_Super_R
-
-_KEY_Super_R :: Int32
-_KEY_Super_R = 65516
--- constant _KEY_Support
-
-_KEY_Support :: Int32
-_KEY_Support = 269025150
--- constant _KEY_Suspend
-
-_KEY_Suspend :: Int32
-_KEY_Suspend = 269025191
--- constant _KEY_Switch_VT_1
-
-_KEY_Switch_VT_1 :: Int32
-_KEY_Switch_VT_1 = 269024769
--- constant _KEY_Switch_VT_10
-
-_KEY_Switch_VT_10 :: Int32
-_KEY_Switch_VT_10 = 269024778
--- constant _KEY_Switch_VT_11
-
-_KEY_Switch_VT_11 :: Int32
-_KEY_Switch_VT_11 = 269024779
--- constant _KEY_Switch_VT_12
-
-_KEY_Switch_VT_12 :: Int32
-_KEY_Switch_VT_12 = 269024780
--- constant _KEY_Switch_VT_2
-
-_KEY_Switch_VT_2 :: Int32
-_KEY_Switch_VT_2 = 269024770
--- constant _KEY_Switch_VT_3
-
-_KEY_Switch_VT_3 :: Int32
-_KEY_Switch_VT_3 = 269024771
--- constant _KEY_Switch_VT_4
-
-_KEY_Switch_VT_4 :: Int32
-_KEY_Switch_VT_4 = 269024772
--- constant _KEY_Switch_VT_5
-
-_KEY_Switch_VT_5 :: Int32
-_KEY_Switch_VT_5 = 269024773
--- constant _KEY_Switch_VT_6
-
-_KEY_Switch_VT_6 :: Int32
-_KEY_Switch_VT_6 = 269024774
--- constant _KEY_Switch_VT_7
-
-_KEY_Switch_VT_7 :: Int32
-_KEY_Switch_VT_7 = 269024775
--- constant _KEY_Switch_VT_8
-
-_KEY_Switch_VT_8 :: Int32
-_KEY_Switch_VT_8 = 269024776
--- constant _KEY_Switch_VT_9
-
-_KEY_Switch_VT_9 :: Int32
-_KEY_Switch_VT_9 = 269024777
--- constant _KEY_Sys_Req
-
-_KEY_Sys_Req :: Int32
-_KEY_Sys_Req = 65301
--- constant _KEY_T
-
-_KEY_T :: Int32
-_KEY_T = 84
--- constant _KEY_THORN
-
-_KEY_THORN :: Int32
-_KEY_THORN = 222
--- constant _KEY_Tab
-
-_KEY_Tab :: Int32
-_KEY_Tab = 65289
--- constant _KEY_Tabovedot
-
-_KEY_Tabovedot :: Int32
-_KEY_Tabovedot = 16785002
--- constant _KEY_TaskPane
-
-_KEY_TaskPane :: Int32
-_KEY_TaskPane = 269025151
--- constant _KEY_Tcaron
-
-_KEY_Tcaron :: Int32
-_KEY_Tcaron = 427
--- constant _KEY_Tcedilla
-
-_KEY_Tcedilla :: Int32
-_KEY_Tcedilla = 478
--- constant _KEY_Terminal
-
-_KEY_Terminal :: Int32
-_KEY_Terminal = 269025152
--- constant _KEY_Terminate_Server
-
-_KEY_Terminate_Server :: Int32
-_KEY_Terminate_Server = 65237
--- constant _KEY_Thai_baht
-
-_KEY_Thai_baht :: Int32
-_KEY_Thai_baht = 3551
--- constant _KEY_Thai_bobaimai
-
-_KEY_Thai_bobaimai :: Int32
-_KEY_Thai_bobaimai = 3514
--- constant _KEY_Thai_chochan
-
-_KEY_Thai_chochan :: Int32
-_KEY_Thai_chochan = 3496
--- constant _KEY_Thai_chochang
-
-_KEY_Thai_chochang :: Int32
-_KEY_Thai_chochang = 3498
--- constant _KEY_Thai_choching
-
-_KEY_Thai_choching :: Int32
-_KEY_Thai_choching = 3497
--- constant _KEY_Thai_chochoe
-
-_KEY_Thai_chochoe :: Int32
-_KEY_Thai_chochoe = 3500
--- constant _KEY_Thai_dochada
-
-_KEY_Thai_dochada :: Int32
-_KEY_Thai_dochada = 3502
--- constant _KEY_Thai_dodek
-
-_KEY_Thai_dodek :: Int32
-_KEY_Thai_dodek = 3508
--- constant _KEY_Thai_fofa
-
-_KEY_Thai_fofa :: Int32
-_KEY_Thai_fofa = 3517
--- constant _KEY_Thai_fofan
-
-_KEY_Thai_fofan :: Int32
-_KEY_Thai_fofan = 3519
--- constant _KEY_Thai_hohip
-
-_KEY_Thai_hohip :: Int32
-_KEY_Thai_hohip = 3531
--- constant _KEY_Thai_honokhuk
-
-_KEY_Thai_honokhuk :: Int32
-_KEY_Thai_honokhuk = 3534
--- constant _KEY_Thai_khokhai
-
-_KEY_Thai_khokhai :: Int32
-_KEY_Thai_khokhai = 3490
--- constant _KEY_Thai_khokhon
-
-_KEY_Thai_khokhon :: Int32
-_KEY_Thai_khokhon = 3493
--- constant _KEY_Thai_khokhuat
-
-_KEY_Thai_khokhuat :: Int32
-_KEY_Thai_khokhuat = 3491
--- constant _KEY_Thai_khokhwai
-
-_KEY_Thai_khokhwai :: Int32
-_KEY_Thai_khokhwai = 3492
--- constant _KEY_Thai_khorakhang
-
-_KEY_Thai_khorakhang :: Int32
-_KEY_Thai_khorakhang = 3494
--- constant _KEY_Thai_kokai
-
-_KEY_Thai_kokai :: Int32
-_KEY_Thai_kokai = 3489
--- constant _KEY_Thai_lakkhangyao
-
-_KEY_Thai_lakkhangyao :: Int32
-_KEY_Thai_lakkhangyao = 3557
--- constant _KEY_Thai_lekchet
-
-_KEY_Thai_lekchet :: Int32
-_KEY_Thai_lekchet = 3575
--- constant _KEY_Thai_lekha
-
-_KEY_Thai_lekha :: Int32
-_KEY_Thai_lekha = 3573
--- constant _KEY_Thai_lekhok
-
-_KEY_Thai_lekhok :: Int32
-_KEY_Thai_lekhok = 3574
--- constant _KEY_Thai_lekkao
-
-_KEY_Thai_lekkao :: Int32
-_KEY_Thai_lekkao = 3577
--- constant _KEY_Thai_leknung
-
-_KEY_Thai_leknung :: Int32
-_KEY_Thai_leknung = 3569
--- constant _KEY_Thai_lekpaet
-
-_KEY_Thai_lekpaet :: Int32
-_KEY_Thai_lekpaet = 3576
--- constant _KEY_Thai_leksam
-
-_KEY_Thai_leksam :: Int32
-_KEY_Thai_leksam = 3571
--- constant _KEY_Thai_leksi
-
-_KEY_Thai_leksi :: Int32
-_KEY_Thai_leksi = 3572
--- constant _KEY_Thai_leksong
-
-_KEY_Thai_leksong :: Int32
-_KEY_Thai_leksong = 3570
--- constant _KEY_Thai_leksun
-
-_KEY_Thai_leksun :: Int32
-_KEY_Thai_leksun = 3568
--- constant _KEY_Thai_lochula
-
-_KEY_Thai_lochula :: Int32
-_KEY_Thai_lochula = 3532
--- constant _KEY_Thai_loling
-
-_KEY_Thai_loling :: Int32
-_KEY_Thai_loling = 3525
--- constant _KEY_Thai_lu
-
-_KEY_Thai_lu :: Int32
-_KEY_Thai_lu = 3526
--- constant _KEY_Thai_maichattawa
-
-_KEY_Thai_maichattawa :: Int32
-_KEY_Thai_maichattawa = 3563
--- constant _KEY_Thai_maiek
-
-_KEY_Thai_maiek :: Int32
-_KEY_Thai_maiek = 3560
--- constant _KEY_Thai_maihanakat
-
-_KEY_Thai_maihanakat :: Int32
-_KEY_Thai_maihanakat = 3537
--- constant _KEY_Thai_maihanakat_maitho
-
-_KEY_Thai_maihanakat_maitho :: Int32
-_KEY_Thai_maihanakat_maitho = 3550
--- constant _KEY_Thai_maitaikhu
-
-_KEY_Thai_maitaikhu :: Int32
-_KEY_Thai_maitaikhu = 3559
--- constant _KEY_Thai_maitho
-
-_KEY_Thai_maitho :: Int32
-_KEY_Thai_maitho = 3561
--- constant _KEY_Thai_maitri
-
-_KEY_Thai_maitri :: Int32
-_KEY_Thai_maitri = 3562
--- constant _KEY_Thai_maiyamok
-
-_KEY_Thai_maiyamok :: Int32
-_KEY_Thai_maiyamok = 3558
--- constant _KEY_Thai_moma
-
-_KEY_Thai_moma :: Int32
-_KEY_Thai_moma = 3521
--- constant _KEY_Thai_ngongu
-
-_KEY_Thai_ngongu :: Int32
-_KEY_Thai_ngongu = 3495
--- constant _KEY_Thai_nikhahit
-
-_KEY_Thai_nikhahit :: Int32
-_KEY_Thai_nikhahit = 3565
--- constant _KEY_Thai_nonen
-
-_KEY_Thai_nonen :: Int32
-_KEY_Thai_nonen = 3507
--- constant _KEY_Thai_nonu
-
-_KEY_Thai_nonu :: Int32
-_KEY_Thai_nonu = 3513
--- constant _KEY_Thai_oang
-
-_KEY_Thai_oang :: Int32
-_KEY_Thai_oang = 3533
--- constant _KEY_Thai_paiyannoi
-
-_KEY_Thai_paiyannoi :: Int32
-_KEY_Thai_paiyannoi = 3535
--- constant _KEY_Thai_phinthu
-
-_KEY_Thai_phinthu :: Int32
-_KEY_Thai_phinthu = 3546
--- constant _KEY_Thai_phophan
-
-_KEY_Thai_phophan :: Int32
-_KEY_Thai_phophan = 3518
--- constant _KEY_Thai_phophung
-
-_KEY_Thai_phophung :: Int32
-_KEY_Thai_phophung = 3516
--- constant _KEY_Thai_phosamphao
-
-_KEY_Thai_phosamphao :: Int32
-_KEY_Thai_phosamphao = 3520
--- constant _KEY_Thai_popla
-
-_KEY_Thai_popla :: Int32
-_KEY_Thai_popla = 3515
--- constant _KEY_Thai_rorua
-
-_KEY_Thai_rorua :: Int32
-_KEY_Thai_rorua = 3523
--- constant _KEY_Thai_ru
-
-_KEY_Thai_ru :: Int32
-_KEY_Thai_ru = 3524
--- constant _KEY_Thai_saraa
-
-_KEY_Thai_saraa :: Int32
-_KEY_Thai_saraa = 3536
--- constant _KEY_Thai_saraaa
-
-_KEY_Thai_saraaa :: Int32
-_KEY_Thai_saraaa = 3538
--- constant _KEY_Thai_saraae
-
-_KEY_Thai_saraae :: Int32
-_KEY_Thai_saraae = 3553
--- constant _KEY_Thai_saraaimaimalai
-
-_KEY_Thai_saraaimaimalai :: Int32
-_KEY_Thai_saraaimaimalai = 3556
--- constant _KEY_Thai_saraaimaimuan
-
-_KEY_Thai_saraaimaimuan :: Int32
-_KEY_Thai_saraaimaimuan = 3555
--- constant _KEY_Thai_saraam
-
-_KEY_Thai_saraam :: Int32
-_KEY_Thai_saraam = 3539
--- constant _KEY_Thai_sarae
-
-_KEY_Thai_sarae :: Int32
-_KEY_Thai_sarae = 3552
--- constant _KEY_Thai_sarai
-
-_KEY_Thai_sarai :: Int32
-_KEY_Thai_sarai = 3540
--- constant _KEY_Thai_saraii
-
-_KEY_Thai_saraii :: Int32
-_KEY_Thai_saraii = 3541
--- constant _KEY_Thai_sarao
-
-_KEY_Thai_sarao :: Int32
-_KEY_Thai_sarao = 3554
--- constant _KEY_Thai_sarau
-
-_KEY_Thai_sarau :: Int32
-_KEY_Thai_sarau = 3544
--- constant _KEY_Thai_saraue
-
-_KEY_Thai_saraue :: Int32
-_KEY_Thai_saraue = 3542
--- constant _KEY_Thai_sarauee
-
-_KEY_Thai_sarauee :: Int32
-_KEY_Thai_sarauee = 3543
--- constant _KEY_Thai_sarauu
-
-_KEY_Thai_sarauu :: Int32
-_KEY_Thai_sarauu = 3545
--- constant _KEY_Thai_sorusi
-
-_KEY_Thai_sorusi :: Int32
-_KEY_Thai_sorusi = 3529
--- constant _KEY_Thai_sosala
-
-_KEY_Thai_sosala :: Int32
-_KEY_Thai_sosala = 3528
--- constant _KEY_Thai_soso
-
-_KEY_Thai_soso :: Int32
-_KEY_Thai_soso = 3499
--- constant _KEY_Thai_sosua
-
-_KEY_Thai_sosua :: Int32
-_KEY_Thai_sosua = 3530
--- constant _KEY_Thai_thanthakhat
-
-_KEY_Thai_thanthakhat :: Int32
-_KEY_Thai_thanthakhat = 3564
--- constant _KEY_Thai_thonangmontho
-
-_KEY_Thai_thonangmontho :: Int32
-_KEY_Thai_thonangmontho = 3505
--- constant _KEY_Thai_thophuthao
-
-_KEY_Thai_thophuthao :: Int32
-_KEY_Thai_thophuthao = 3506
--- constant _KEY_Thai_thothahan
-
-_KEY_Thai_thothahan :: Int32
-_KEY_Thai_thothahan = 3511
--- constant _KEY_Thai_thothan
-
-_KEY_Thai_thothan :: Int32
-_KEY_Thai_thothan = 3504
--- constant _KEY_Thai_thothong
-
-_KEY_Thai_thothong :: Int32
-_KEY_Thai_thothong = 3512
--- constant _KEY_Thai_thothung
-
-_KEY_Thai_thothung :: Int32
-_KEY_Thai_thothung = 3510
--- constant _KEY_Thai_topatak
-
-_KEY_Thai_topatak :: Int32
-_KEY_Thai_topatak = 3503
--- constant _KEY_Thai_totao
-
-_KEY_Thai_totao :: Int32
-_KEY_Thai_totao = 3509
--- constant _KEY_Thai_wowaen
-
-_KEY_Thai_wowaen :: Int32
-_KEY_Thai_wowaen = 3527
--- constant _KEY_Thai_yoyak
-
-_KEY_Thai_yoyak :: Int32
-_KEY_Thai_yoyak = 3522
--- constant _KEY_Thai_yoying
-
-_KEY_Thai_yoying :: Int32
-_KEY_Thai_yoying = 3501
--- constant _KEY_Thorn
-
-_KEY_Thorn :: Int32
-_KEY_Thorn = 222
--- constant _KEY_Time
-
-_KEY_Time :: Int32
-_KEY_Time = 269025183
--- constant _KEY_ToDoList
-
-_KEY_ToDoList :: Int32
-_KEY_ToDoList = 269025055
--- constant _KEY_Tools
-
-_KEY_Tools :: Int32
-_KEY_Tools = 269025153
--- constant _KEY_TopMenu
-
-_KEY_TopMenu :: Int32
-_KEY_TopMenu = 269025186
--- constant _KEY_TouchpadOff
-
-_KEY_TouchpadOff :: Int32
-_KEY_TouchpadOff = 269025201
--- constant _KEY_TouchpadOn
-
-_KEY_TouchpadOn :: Int32
-_KEY_TouchpadOn = 269025200
--- constant _KEY_TouchpadToggle
-
-_KEY_TouchpadToggle :: Int32
-_KEY_TouchpadToggle = 269025193
--- constant _KEY_Touroku
-
-_KEY_Touroku :: Int32
-_KEY_Touroku = 65323
--- constant _KEY_Travel
-
-_KEY_Travel :: Int32
-_KEY_Travel = 269025154
--- constant _KEY_Tslash
-
-_KEY_Tslash :: Int32
-_KEY_Tslash = 940
--- constant _KEY_U
-
-_KEY_U :: Int32
-_KEY_U = 85
--- constant _KEY_UWB
-
-_KEY_UWB :: Int32
-_KEY_UWB = 269025174
--- constant _KEY_Uacute
-
-_KEY_Uacute :: Int32
-_KEY_Uacute = 218
--- constant _KEY_Ubelowdot
-
-_KEY_Ubelowdot :: Int32
-_KEY_Ubelowdot = 16785124
--- constant _KEY_Ubreve
-
-_KEY_Ubreve :: Int32
-_KEY_Ubreve = 733
--- constant _KEY_Ucircumflex
-
-_KEY_Ucircumflex :: Int32
-_KEY_Ucircumflex = 219
--- constant _KEY_Udiaeresis
-
-_KEY_Udiaeresis :: Int32
-_KEY_Udiaeresis = 220
--- constant _KEY_Udoubleacute
-
-_KEY_Udoubleacute :: Int32
-_KEY_Udoubleacute = 475
--- constant _KEY_Ugrave
-
-_KEY_Ugrave :: Int32
-_KEY_Ugrave = 217
--- constant _KEY_Uhook
-
-_KEY_Uhook :: Int32
-_KEY_Uhook = 16785126
--- constant _KEY_Uhorn
-
-_KEY_Uhorn :: Int32
-_KEY_Uhorn = 16777647
--- constant _KEY_Uhornacute
-
-_KEY_Uhornacute :: Int32
-_KEY_Uhornacute = 16785128
--- constant _KEY_Uhornbelowdot
-
-_KEY_Uhornbelowdot :: Int32
-_KEY_Uhornbelowdot = 16785136
--- constant _KEY_Uhorngrave
-
-_KEY_Uhorngrave :: Int32
-_KEY_Uhorngrave = 16785130
--- constant _KEY_Uhornhook
-
-_KEY_Uhornhook :: Int32
-_KEY_Uhornhook = 16785132
--- constant _KEY_Uhorntilde
-
-_KEY_Uhorntilde :: Int32
-_KEY_Uhorntilde = 16785134
--- constant _KEY_Ukrainian_GHE_WITH_UPTURN
-
-_KEY_Ukrainian_GHE_WITH_UPTURN :: Int32
-_KEY_Ukrainian_GHE_WITH_UPTURN = 1725
--- constant _KEY_Ukrainian_I
-
-_KEY_Ukrainian_I :: Int32
-_KEY_Ukrainian_I = 1718
--- constant _KEY_Ukrainian_IE
-
-_KEY_Ukrainian_IE :: Int32
-_KEY_Ukrainian_IE = 1716
--- constant _KEY_Ukrainian_YI
-
-_KEY_Ukrainian_YI :: Int32
-_KEY_Ukrainian_YI = 1719
--- constant _KEY_Ukrainian_ghe_with_upturn
-
-_KEY_Ukrainian_ghe_with_upturn :: Int32
-_KEY_Ukrainian_ghe_with_upturn = 1709
--- constant _KEY_Ukrainian_i
-
-_KEY_Ukrainian_i :: Int32
-_KEY_Ukrainian_i = 1702
--- constant _KEY_Ukrainian_ie
-
-_KEY_Ukrainian_ie :: Int32
-_KEY_Ukrainian_ie = 1700
--- constant _KEY_Ukrainian_yi
-
-_KEY_Ukrainian_yi :: Int32
-_KEY_Ukrainian_yi = 1703
--- constant _KEY_Ukranian_I
-
-_KEY_Ukranian_I :: Int32
-_KEY_Ukranian_I = 1718
--- constant _KEY_Ukranian_JE
-
-_KEY_Ukranian_JE :: Int32
-_KEY_Ukranian_JE = 1716
--- constant _KEY_Ukranian_YI
-
-_KEY_Ukranian_YI :: Int32
-_KEY_Ukranian_YI = 1719
--- constant _KEY_Ukranian_i
-
-_KEY_Ukranian_i :: Int32
-_KEY_Ukranian_i = 1702
--- constant _KEY_Ukranian_je
-
-_KEY_Ukranian_je :: Int32
-_KEY_Ukranian_je = 1700
--- constant _KEY_Ukranian_yi
-
-_KEY_Ukranian_yi :: Int32
-_KEY_Ukranian_yi = 1703
--- constant _KEY_Umacron
-
-_KEY_Umacron :: Int32
-_KEY_Umacron = 990
--- constant _KEY_Undo
-
-_KEY_Undo :: Int32
-_KEY_Undo = 65381
--- constant _KEY_Ungrab
-
-_KEY_Ungrab :: Int32
-_KEY_Ungrab = 269024800
--- constant _KEY_Uogonek
-
-_KEY_Uogonek :: Int32
-_KEY_Uogonek = 985
--- constant _KEY_Up
-
-_KEY_Up :: Int32
-_KEY_Up = 65362
--- constant _KEY_Uring
-
-_KEY_Uring :: Int32
-_KEY_Uring = 473
--- constant _KEY_User1KB
-
-_KEY_User1KB :: Int32
-_KEY_User1KB = 269025157
--- constant _KEY_User2KB
-
-_KEY_User2KB :: Int32
-_KEY_User2KB = 269025158
--- constant _KEY_UserPB
-
-_KEY_UserPB :: Int32
-_KEY_UserPB = 269025156
--- constant _KEY_Utilde
-
-_KEY_Utilde :: Int32
-_KEY_Utilde = 989
--- constant _KEY_V
-
-_KEY_V :: Int32
-_KEY_V = 86
--- constant _KEY_VendorHome
-
-_KEY_VendorHome :: Int32
-_KEY_VendorHome = 269025076
--- constant _KEY_Video
-
-_KEY_Video :: Int32
-_KEY_Video = 269025159
--- constant _KEY_View
-
-_KEY_View :: Int32
-_KEY_View = 269025185
--- constant _KEY_VoidSymbol
-
-_KEY_VoidSymbol :: Int32
-_KEY_VoidSymbol = 16777215
--- constant _KEY_W
-
-_KEY_W :: Int32
-_KEY_W = 87
--- constant _KEY_WLAN
-
-_KEY_WLAN :: Int32
-_KEY_WLAN = 269025173
--- constant _KEY_WWW
-
-_KEY_WWW :: Int32
-_KEY_WWW = 269025070
--- constant _KEY_Wacute
-
-_KEY_Wacute :: Int32
-_KEY_Wacute = 16785026
--- constant _KEY_WakeUp
-
-_KEY_WakeUp :: Int32
-_KEY_WakeUp = 269025067
--- constant _KEY_Wcircumflex
-
-_KEY_Wcircumflex :: Int32
-_KEY_Wcircumflex = 16777588
--- constant _KEY_Wdiaeresis
-
-_KEY_Wdiaeresis :: Int32
-_KEY_Wdiaeresis = 16785028
--- constant _KEY_WebCam
-
-_KEY_WebCam :: Int32
-_KEY_WebCam = 269025167
--- constant _KEY_Wgrave
-
-_KEY_Wgrave :: Int32
-_KEY_Wgrave = 16785024
--- constant _KEY_WheelButton
-
-_KEY_WheelButton :: Int32
-_KEY_WheelButton = 269025160
--- constant _KEY_WindowClear
-
-_KEY_WindowClear :: Int32
-_KEY_WindowClear = 269025109
--- constant _KEY_WonSign
-
-_KEY_WonSign :: Int32
-_KEY_WonSign = 16785577
--- constant _KEY_Word
-
-_KEY_Word :: Int32
-_KEY_Word = 269025161
--- constant _KEY_X
-
-_KEY_X :: Int32
-_KEY_X = 88
--- constant _KEY_Xabovedot
-
-_KEY_Xabovedot :: Int32
-_KEY_Xabovedot = 16785034
--- constant _KEY_Xfer
-
-_KEY_Xfer :: Int32
-_KEY_Xfer = 269025162
--- constant _KEY_Y
-
-_KEY_Y :: Int32
-_KEY_Y = 89
--- constant _KEY_Yacute
-
-_KEY_Yacute :: Int32
-_KEY_Yacute = 221
--- constant _KEY_Ybelowdot
-
-_KEY_Ybelowdot :: Int32
-_KEY_Ybelowdot = 16785140
--- constant _KEY_Ycircumflex
-
-_KEY_Ycircumflex :: Int32
-_KEY_Ycircumflex = 16777590
--- constant _KEY_Ydiaeresis
-
-_KEY_Ydiaeresis :: Int32
-_KEY_Ydiaeresis = 5054
--- constant _KEY_Yellow
-
-_KEY_Yellow :: Int32
-_KEY_Yellow = 269025189
--- constant _KEY_Ygrave
-
-_KEY_Ygrave :: Int32
-_KEY_Ygrave = 16785138
--- constant _KEY_Yhook
-
-_KEY_Yhook :: Int32
-_KEY_Yhook = 16785142
--- constant _KEY_Ytilde
-
-_KEY_Ytilde :: Int32
-_KEY_Ytilde = 16785144
--- constant _KEY_Z
-
-_KEY_Z :: Int32
-_KEY_Z = 90
--- constant _KEY_Zabovedot
-
-_KEY_Zabovedot :: Int32
-_KEY_Zabovedot = 431
--- constant _KEY_Zacute
-
-_KEY_Zacute :: Int32
-_KEY_Zacute = 428
--- constant _KEY_Zcaron
-
-_KEY_Zcaron :: Int32
-_KEY_Zcaron = 430
--- constant _KEY_Zen_Koho
-
-_KEY_Zen_Koho :: Int32
-_KEY_Zen_Koho = 65341
--- constant _KEY_Zenkaku
-
-_KEY_Zenkaku :: Int32
-_KEY_Zenkaku = 65320
--- constant _KEY_Zenkaku_Hankaku
-
-_KEY_Zenkaku_Hankaku :: Int32
-_KEY_Zenkaku_Hankaku = 65322
--- constant _KEY_ZoomIn
-
-_KEY_ZoomIn :: Int32
-_KEY_ZoomIn = 269025163
--- constant _KEY_ZoomOut
-
-_KEY_ZoomOut :: Int32
-_KEY_ZoomOut = 269025164
--- constant _KEY_Zstroke
-
-_KEY_Zstroke :: Int32
-_KEY_Zstroke = 16777653
--- constant _KEY_a
-
-_KEY_a :: Int32
-_KEY_a = 97
--- constant _KEY_aacute
-
-_KEY_aacute :: Int32
-_KEY_aacute = 225
--- constant _KEY_abelowdot
-
-_KEY_abelowdot :: Int32
-_KEY_abelowdot = 16785057
--- constant _KEY_abovedot
-
-_KEY_abovedot :: Int32
-_KEY_abovedot = 511
--- constant _KEY_abreve
-
-_KEY_abreve :: Int32
-_KEY_abreve = 483
--- constant _KEY_abreveacute
-
-_KEY_abreveacute :: Int32
-_KEY_abreveacute = 16785071
--- constant _KEY_abrevebelowdot
-
-_KEY_abrevebelowdot :: Int32
-_KEY_abrevebelowdot = 16785079
--- constant _KEY_abrevegrave
-
-_KEY_abrevegrave :: Int32
-_KEY_abrevegrave = 16785073
--- constant _KEY_abrevehook
-
-_KEY_abrevehook :: Int32
-_KEY_abrevehook = 16785075
--- constant _KEY_abrevetilde
-
-_KEY_abrevetilde :: Int32
-_KEY_abrevetilde = 16785077
--- constant _KEY_acircumflex
-
-_KEY_acircumflex :: Int32
-_KEY_acircumflex = 226
--- constant _KEY_acircumflexacute
-
-_KEY_acircumflexacute :: Int32
-_KEY_acircumflexacute = 16785061
--- constant _KEY_acircumflexbelowdot
-
-_KEY_acircumflexbelowdot :: Int32
-_KEY_acircumflexbelowdot = 16785069
--- constant _KEY_acircumflexgrave
-
-_KEY_acircumflexgrave :: Int32
-_KEY_acircumflexgrave = 16785063
--- constant _KEY_acircumflexhook
-
-_KEY_acircumflexhook :: Int32
-_KEY_acircumflexhook = 16785065
--- constant _KEY_acircumflextilde
-
-_KEY_acircumflextilde :: Int32
-_KEY_acircumflextilde = 16785067
--- constant _KEY_acute
-
-_KEY_acute :: Int32
-_KEY_acute = 180
--- constant _KEY_adiaeresis
-
-_KEY_adiaeresis :: Int32
-_KEY_adiaeresis = 228
--- constant _KEY_ae
-
-_KEY_ae :: Int32
-_KEY_ae = 230
--- constant _KEY_agrave
-
-_KEY_agrave :: Int32
-_KEY_agrave = 224
--- constant _KEY_ahook
-
-_KEY_ahook :: Int32
-_KEY_ahook = 16785059
--- constant _KEY_amacron
-
-_KEY_amacron :: Int32
-_KEY_amacron = 992
--- constant _KEY_ampersand
-
-_KEY_ampersand :: Int32
-_KEY_ampersand = 38
--- constant _KEY_aogonek
-
-_KEY_aogonek :: Int32
-_KEY_aogonek = 433
--- constant _KEY_apostrophe
-
-_KEY_apostrophe :: Int32
-_KEY_apostrophe = 39
--- constant _KEY_approxeq
-
-_KEY_approxeq :: Int32
-_KEY_approxeq = 16785992
--- constant _KEY_approximate
-
-_KEY_approximate :: Int32
-_KEY_approximate = 2248
--- constant _KEY_aring
-
-_KEY_aring :: Int32
-_KEY_aring = 229
--- constant _KEY_asciicircum
-
-_KEY_asciicircum :: Int32
-_KEY_asciicircum = 94
--- constant _KEY_asciitilde
-
-_KEY_asciitilde :: Int32
-_KEY_asciitilde = 126
--- constant _KEY_asterisk
-
-_KEY_asterisk :: Int32
-_KEY_asterisk = 42
--- constant _KEY_at
-
-_KEY_at :: Int32
-_KEY_at = 64
--- constant _KEY_atilde
-
-_KEY_atilde :: Int32
-_KEY_atilde = 227
--- constant _KEY_b
-
-_KEY_b :: Int32
-_KEY_b = 98
--- constant _KEY_babovedot
-
-_KEY_babovedot :: Int32
-_KEY_babovedot = 16784899
--- constant _KEY_backslash
-
-_KEY_backslash :: Int32
-_KEY_backslash = 92
--- constant _KEY_ballotcross
-
-_KEY_ballotcross :: Int32
-_KEY_ballotcross = 2804
--- constant _KEY_bar
-
-_KEY_bar :: Int32
-_KEY_bar = 124
--- constant _KEY_because
-
-_KEY_because :: Int32
-_KEY_because = 16785973
--- constant _KEY_blank
-
-_KEY_blank :: Int32
-_KEY_blank = 2527
--- constant _KEY_botintegral
-
-_KEY_botintegral :: Int32
-_KEY_botintegral = 2213
--- constant _KEY_botleftparens
-
-_KEY_botleftparens :: Int32
-_KEY_botleftparens = 2220
--- constant _KEY_botleftsqbracket
-
-_KEY_botleftsqbracket :: Int32
-_KEY_botleftsqbracket = 2216
--- constant _KEY_botleftsummation
-
-_KEY_botleftsummation :: Int32
-_KEY_botleftsummation = 2226
--- constant _KEY_botrightparens
-
-_KEY_botrightparens :: Int32
-_KEY_botrightparens = 2222
--- constant _KEY_botrightsqbracket
-
-_KEY_botrightsqbracket :: Int32
-_KEY_botrightsqbracket = 2218
--- constant _KEY_botrightsummation
-
-_KEY_botrightsummation :: Int32
-_KEY_botrightsummation = 2230
--- constant _KEY_bott
-
-_KEY_bott :: Int32
-_KEY_bott = 2550
--- constant _KEY_botvertsummationconnector
-
-_KEY_botvertsummationconnector :: Int32
-_KEY_botvertsummationconnector = 2228
--- constant _KEY_braceleft
-
-_KEY_braceleft :: Int32
-_KEY_braceleft = 123
--- constant _KEY_braceright
-
-_KEY_braceright :: Int32
-_KEY_braceright = 125
--- constant _KEY_bracketleft
-
-_KEY_bracketleft :: Int32
-_KEY_bracketleft = 91
--- constant _KEY_bracketright
-
-_KEY_bracketright :: Int32
-_KEY_bracketright = 93
--- constant _KEY_braille_blank
-
-_KEY_braille_blank :: Int32
-_KEY_braille_blank = 16787456
--- constant _KEY_braille_dot_1
-
-_KEY_braille_dot_1 :: Int32
-_KEY_braille_dot_1 = 65521
--- constant _KEY_braille_dot_10
-
-_KEY_braille_dot_10 :: Int32
-_KEY_braille_dot_10 = 65530
--- constant _KEY_braille_dot_2
-
-_KEY_braille_dot_2 :: Int32
-_KEY_braille_dot_2 = 65522
--- constant _KEY_braille_dot_3
-
-_KEY_braille_dot_3 :: Int32
-_KEY_braille_dot_3 = 65523
--- constant _KEY_braille_dot_4
-
-_KEY_braille_dot_4 :: Int32
-_KEY_braille_dot_4 = 65524
--- constant _KEY_braille_dot_5
-
-_KEY_braille_dot_5 :: Int32
-_KEY_braille_dot_5 = 65525
--- constant _KEY_braille_dot_6
-
-_KEY_braille_dot_6 :: Int32
-_KEY_braille_dot_6 = 65526
--- constant _KEY_braille_dot_7
-
-_KEY_braille_dot_7 :: Int32
-_KEY_braille_dot_7 = 65527
--- constant _KEY_braille_dot_8
-
-_KEY_braille_dot_8 :: Int32
-_KEY_braille_dot_8 = 65528
--- constant _KEY_braille_dot_9
-
-_KEY_braille_dot_9 :: Int32
-_KEY_braille_dot_9 = 65529
--- constant _KEY_braille_dots_1
-
-_KEY_braille_dots_1 :: Int32
-_KEY_braille_dots_1 = 16787457
--- constant _KEY_braille_dots_12
-
-_KEY_braille_dots_12 :: Int32
-_KEY_braille_dots_12 = 16787459
--- constant _KEY_braille_dots_123
-
-_KEY_braille_dots_123 :: Int32
-_KEY_braille_dots_123 = 16787463
--- constant _KEY_braille_dots_1234
-
-_KEY_braille_dots_1234 :: Int32
-_KEY_braille_dots_1234 = 16787471
--- constant _KEY_braille_dots_12345
-
-_KEY_braille_dots_12345 :: Int32
-_KEY_braille_dots_12345 = 16787487
--- constant _KEY_braille_dots_123456
-
-_KEY_braille_dots_123456 :: Int32
-_KEY_braille_dots_123456 = 16787519
--- constant _KEY_braille_dots_1234567
-
-_KEY_braille_dots_1234567 :: Int32
-_KEY_braille_dots_1234567 = 16787583
--- constant _KEY_braille_dots_12345678
-
-_KEY_braille_dots_12345678 :: Int32
-_KEY_braille_dots_12345678 = 16787711
--- constant _KEY_braille_dots_1234568
-
-_KEY_braille_dots_1234568 :: Int32
-_KEY_braille_dots_1234568 = 16787647
--- constant _KEY_braille_dots_123457
-
-_KEY_braille_dots_123457 :: Int32
-_KEY_braille_dots_123457 = 16787551
--- constant _KEY_braille_dots_1234578
-
-_KEY_braille_dots_1234578 :: Int32
-_KEY_braille_dots_1234578 = 16787679
--- constant _KEY_braille_dots_123458
-
-_KEY_braille_dots_123458 :: Int32
-_KEY_braille_dots_123458 = 16787615
--- constant _KEY_braille_dots_12346
-
-_KEY_braille_dots_12346 :: Int32
-_KEY_braille_dots_12346 = 16787503
--- constant _KEY_braille_dots_123467
-
-_KEY_braille_dots_123467 :: Int32
-_KEY_braille_dots_123467 = 16787567
--- constant _KEY_braille_dots_1234678
-
-_KEY_braille_dots_1234678 :: Int32
-_KEY_braille_dots_1234678 = 16787695
--- constant _KEY_braille_dots_123468
-
-_KEY_braille_dots_123468 :: Int32
-_KEY_braille_dots_123468 = 16787631
--- constant _KEY_braille_dots_12347
-
-_KEY_braille_dots_12347 :: Int32
-_KEY_braille_dots_12347 = 16787535
--- constant _KEY_braille_dots_123478
-
-_KEY_braille_dots_123478 :: Int32
-_KEY_braille_dots_123478 = 16787663
--- constant _KEY_braille_dots_12348
-
-_KEY_braille_dots_12348 :: Int32
-_KEY_braille_dots_12348 = 16787599
--- constant _KEY_braille_dots_1235
-
-_KEY_braille_dots_1235 :: Int32
-_KEY_braille_dots_1235 = 16787479
--- constant _KEY_braille_dots_12356
-
-_KEY_braille_dots_12356 :: Int32
-_KEY_braille_dots_12356 = 16787511
--- constant _KEY_braille_dots_123567
-
-_KEY_braille_dots_123567 :: Int32
-_KEY_braille_dots_123567 = 16787575
--- constant _KEY_braille_dots_1235678
-
-_KEY_braille_dots_1235678 :: Int32
-_KEY_braille_dots_1235678 = 16787703
--- constant _KEY_braille_dots_123568
-
-_KEY_braille_dots_123568 :: Int32
-_KEY_braille_dots_123568 = 16787639
--- constant _KEY_braille_dots_12357
-
-_KEY_braille_dots_12357 :: Int32
-_KEY_braille_dots_12357 = 16787543
--- constant _KEY_braille_dots_123578
-
-_KEY_braille_dots_123578 :: Int32
-_KEY_braille_dots_123578 = 16787671
--- constant _KEY_braille_dots_12358
-
-_KEY_braille_dots_12358 :: Int32
-_KEY_braille_dots_12358 = 16787607
--- constant _KEY_braille_dots_1236
-
-_KEY_braille_dots_1236 :: Int32
-_KEY_braille_dots_1236 = 16787495
--- constant _KEY_braille_dots_12367
-
-_KEY_braille_dots_12367 :: Int32
-_KEY_braille_dots_12367 = 16787559
--- constant _KEY_braille_dots_123678
-
-_KEY_braille_dots_123678 :: Int32
-_KEY_braille_dots_123678 = 16787687
--- constant _KEY_braille_dots_12368
-
-_KEY_braille_dots_12368 :: Int32
-_KEY_braille_dots_12368 = 16787623
--- constant _KEY_braille_dots_1237
-
-_KEY_braille_dots_1237 :: Int32
-_KEY_braille_dots_1237 = 16787527
--- constant _KEY_braille_dots_12378
-
-_KEY_braille_dots_12378 :: Int32
-_KEY_braille_dots_12378 = 16787655
--- constant _KEY_braille_dots_1238
-
-_KEY_braille_dots_1238 :: Int32
-_KEY_braille_dots_1238 = 16787591
--- constant _KEY_braille_dots_124
-
-_KEY_braille_dots_124 :: Int32
-_KEY_braille_dots_124 = 16787467
--- constant _KEY_braille_dots_1245
-
-_KEY_braille_dots_1245 :: Int32
-_KEY_braille_dots_1245 = 16787483
--- constant _KEY_braille_dots_12456
-
-_KEY_braille_dots_12456 :: Int32
-_KEY_braille_dots_12456 = 16787515
--- constant _KEY_braille_dots_124567
-
-_KEY_braille_dots_124567 :: Int32
-_KEY_braille_dots_124567 = 16787579
--- constant _KEY_braille_dots_1245678
-
-_KEY_braille_dots_1245678 :: Int32
-_KEY_braille_dots_1245678 = 16787707
--- constant _KEY_braille_dots_124568
-
-_KEY_braille_dots_124568 :: Int32
-_KEY_braille_dots_124568 = 16787643
--- constant _KEY_braille_dots_12457
-
-_KEY_braille_dots_12457 :: Int32
-_KEY_braille_dots_12457 = 16787547
--- constant _KEY_braille_dots_124578
-
-_KEY_braille_dots_124578 :: Int32
-_KEY_braille_dots_124578 = 16787675
--- constant _KEY_braille_dots_12458
-
-_KEY_braille_dots_12458 :: Int32
-_KEY_braille_dots_12458 = 16787611
--- constant _KEY_braille_dots_1246
-
-_KEY_braille_dots_1246 :: Int32
-_KEY_braille_dots_1246 = 16787499
--- constant _KEY_braille_dots_12467
-
-_KEY_braille_dots_12467 :: Int32
-_KEY_braille_dots_12467 = 16787563
--- constant _KEY_braille_dots_124678
-
-_KEY_braille_dots_124678 :: Int32
-_KEY_braille_dots_124678 = 16787691
--- constant _KEY_braille_dots_12468
-
-_KEY_braille_dots_12468 :: Int32
-_KEY_braille_dots_12468 = 16787627
--- constant _KEY_braille_dots_1247
-
-_KEY_braille_dots_1247 :: Int32
-_KEY_braille_dots_1247 = 16787531
--- constant _KEY_braille_dots_12478
-
-_KEY_braille_dots_12478 :: Int32
-_KEY_braille_dots_12478 = 16787659
--- constant _KEY_braille_dots_1248
-
-_KEY_braille_dots_1248 :: Int32
-_KEY_braille_dots_1248 = 16787595
--- constant _KEY_braille_dots_125
-
-_KEY_braille_dots_125 :: Int32
-_KEY_braille_dots_125 = 16787475
--- constant _KEY_braille_dots_1256
-
-_KEY_braille_dots_1256 :: Int32
-_KEY_braille_dots_1256 = 16787507
--- constant _KEY_braille_dots_12567
-
-_KEY_braille_dots_12567 :: Int32
-_KEY_braille_dots_12567 = 16787571
--- constant _KEY_braille_dots_125678
-
-_KEY_braille_dots_125678 :: Int32
-_KEY_braille_dots_125678 = 16787699
--- constant _KEY_braille_dots_12568
-
-_KEY_braille_dots_12568 :: Int32
-_KEY_braille_dots_12568 = 16787635
--- constant _KEY_braille_dots_1257
-
-_KEY_braille_dots_1257 :: Int32
-_KEY_braille_dots_1257 = 16787539
--- constant _KEY_braille_dots_12578
-
-_KEY_braille_dots_12578 :: Int32
-_KEY_braille_dots_12578 = 16787667
--- constant _KEY_braille_dots_1258
-
-_KEY_braille_dots_1258 :: Int32
-_KEY_braille_dots_1258 = 16787603
--- constant _KEY_braille_dots_126
-
-_KEY_braille_dots_126 :: Int32
-_KEY_braille_dots_126 = 16787491
--- constant _KEY_braille_dots_1267
-
-_KEY_braille_dots_1267 :: Int32
-_KEY_braille_dots_1267 = 16787555
--- constant _KEY_braille_dots_12678
-
-_KEY_braille_dots_12678 :: Int32
-_KEY_braille_dots_12678 = 16787683
--- constant _KEY_braille_dots_1268
-
-_KEY_braille_dots_1268 :: Int32
-_KEY_braille_dots_1268 = 16787619
--- constant _KEY_braille_dots_127
-
-_KEY_braille_dots_127 :: Int32
-_KEY_braille_dots_127 = 16787523
--- constant _KEY_braille_dots_1278
-
-_KEY_braille_dots_1278 :: Int32
-_KEY_braille_dots_1278 = 16787651
--- constant _KEY_braille_dots_128
-
-_KEY_braille_dots_128 :: Int32
-_KEY_braille_dots_128 = 16787587
--- constant _KEY_braille_dots_13
-
-_KEY_braille_dots_13 :: Int32
-_KEY_braille_dots_13 = 16787461
--- constant _KEY_braille_dots_134
-
-_KEY_braille_dots_134 :: Int32
-_KEY_braille_dots_134 = 16787469
--- constant _KEY_braille_dots_1345
-
-_KEY_braille_dots_1345 :: Int32
-_KEY_braille_dots_1345 = 16787485
--- constant _KEY_braille_dots_13456
-
-_KEY_braille_dots_13456 :: Int32
-_KEY_braille_dots_13456 = 16787517
--- constant _KEY_braille_dots_134567
-
-_KEY_braille_dots_134567 :: Int32
-_KEY_braille_dots_134567 = 16787581
--- constant _KEY_braille_dots_1345678
-
-_KEY_braille_dots_1345678 :: Int32
-_KEY_braille_dots_1345678 = 16787709
--- constant _KEY_braille_dots_134568
-
-_KEY_braille_dots_134568 :: Int32
-_KEY_braille_dots_134568 = 16787645
--- constant _KEY_braille_dots_13457
-
-_KEY_braille_dots_13457 :: Int32
-_KEY_braille_dots_13457 = 16787549
--- constant _KEY_braille_dots_134578
-
-_KEY_braille_dots_134578 :: Int32
-_KEY_braille_dots_134578 = 16787677
--- constant _KEY_braille_dots_13458
-
-_KEY_braille_dots_13458 :: Int32
-_KEY_braille_dots_13458 = 16787613
--- constant _KEY_braille_dots_1346
-
-_KEY_braille_dots_1346 :: Int32
-_KEY_braille_dots_1346 = 16787501
--- constant _KEY_braille_dots_13467
-
-_KEY_braille_dots_13467 :: Int32
-_KEY_braille_dots_13467 = 16787565
--- constant _KEY_braille_dots_134678
-
-_KEY_braille_dots_134678 :: Int32
-_KEY_braille_dots_134678 = 16787693
--- constant _KEY_braille_dots_13468
-
-_KEY_braille_dots_13468 :: Int32
-_KEY_braille_dots_13468 = 16787629
--- constant _KEY_braille_dots_1347
-
-_KEY_braille_dots_1347 :: Int32
-_KEY_braille_dots_1347 = 16787533
--- constant _KEY_braille_dots_13478
-
-_KEY_braille_dots_13478 :: Int32
-_KEY_braille_dots_13478 = 16787661
--- constant _KEY_braille_dots_1348
-
-_KEY_braille_dots_1348 :: Int32
-_KEY_braille_dots_1348 = 16787597
--- constant _KEY_braille_dots_135
-
-_KEY_braille_dots_135 :: Int32
-_KEY_braille_dots_135 = 16787477
--- constant _KEY_braille_dots_1356
-
-_KEY_braille_dots_1356 :: Int32
-_KEY_braille_dots_1356 = 16787509
--- constant _KEY_braille_dots_13567
-
-_KEY_braille_dots_13567 :: Int32
-_KEY_braille_dots_13567 = 16787573
--- constant _KEY_braille_dots_135678
-
-_KEY_braille_dots_135678 :: Int32
-_KEY_braille_dots_135678 = 16787701
--- constant _KEY_braille_dots_13568
-
-_KEY_braille_dots_13568 :: Int32
-_KEY_braille_dots_13568 = 16787637
--- constant _KEY_braille_dots_1357
-
-_KEY_braille_dots_1357 :: Int32
-_KEY_braille_dots_1357 = 16787541
--- constant _KEY_braille_dots_13578
-
-_KEY_braille_dots_13578 :: Int32
-_KEY_braille_dots_13578 = 16787669
--- constant _KEY_braille_dots_1358
-
-_KEY_braille_dots_1358 :: Int32
-_KEY_braille_dots_1358 = 16787605
--- constant _KEY_braille_dots_136
-
-_KEY_braille_dots_136 :: Int32
-_KEY_braille_dots_136 = 16787493
--- constant _KEY_braille_dots_1367
-
-_KEY_braille_dots_1367 :: Int32
-_KEY_braille_dots_1367 = 16787557
--- constant _KEY_braille_dots_13678
-
-_KEY_braille_dots_13678 :: Int32
-_KEY_braille_dots_13678 = 16787685
--- constant _KEY_braille_dots_1368
-
-_KEY_braille_dots_1368 :: Int32
-_KEY_braille_dots_1368 = 16787621
--- constant _KEY_braille_dots_137
-
-_KEY_braille_dots_137 :: Int32
-_KEY_braille_dots_137 = 16787525
--- constant _KEY_braille_dots_1378
-
-_KEY_braille_dots_1378 :: Int32
-_KEY_braille_dots_1378 = 16787653
--- constant _KEY_braille_dots_138
-
-_KEY_braille_dots_138 :: Int32
-_KEY_braille_dots_138 = 16787589
--- constant _KEY_braille_dots_14
-
-_KEY_braille_dots_14 :: Int32
-_KEY_braille_dots_14 = 16787465
--- constant _KEY_braille_dots_145
-
-_KEY_braille_dots_145 :: Int32
-_KEY_braille_dots_145 = 16787481
--- constant _KEY_braille_dots_1456
-
-_KEY_braille_dots_1456 :: Int32
-_KEY_braille_dots_1456 = 16787513
--- constant _KEY_braille_dots_14567
-
-_KEY_braille_dots_14567 :: Int32
-_KEY_braille_dots_14567 = 16787577
--- constant _KEY_braille_dots_145678
-
-_KEY_braille_dots_145678 :: Int32
-_KEY_braille_dots_145678 = 16787705
--- constant _KEY_braille_dots_14568
-
-_KEY_braille_dots_14568 :: Int32
-_KEY_braille_dots_14568 = 16787641
--- constant _KEY_braille_dots_1457
-
-_KEY_braille_dots_1457 :: Int32
-_KEY_braille_dots_1457 = 16787545
--- constant _KEY_braille_dots_14578
-
-_KEY_braille_dots_14578 :: Int32
-_KEY_braille_dots_14578 = 16787673
--- constant _KEY_braille_dots_1458
-
-_KEY_braille_dots_1458 :: Int32
-_KEY_braille_dots_1458 = 16787609
--- constant _KEY_braille_dots_146
-
-_KEY_braille_dots_146 :: Int32
-_KEY_braille_dots_146 = 16787497
--- constant _KEY_braille_dots_1467
-
-_KEY_braille_dots_1467 :: Int32
-_KEY_braille_dots_1467 = 16787561
--- constant _KEY_braille_dots_14678
-
-_KEY_braille_dots_14678 :: Int32
-_KEY_braille_dots_14678 = 16787689
--- constant _KEY_braille_dots_1468
-
-_KEY_braille_dots_1468 :: Int32
-_KEY_braille_dots_1468 = 16787625
--- constant _KEY_braille_dots_147
-
-_KEY_braille_dots_147 :: Int32
-_KEY_braille_dots_147 = 16787529
--- constant _KEY_braille_dots_1478
-
-_KEY_braille_dots_1478 :: Int32
-_KEY_braille_dots_1478 = 16787657
--- constant _KEY_braille_dots_148
-
-_KEY_braille_dots_148 :: Int32
-_KEY_braille_dots_148 = 16787593
--- constant _KEY_braille_dots_15
-
-_KEY_braille_dots_15 :: Int32
-_KEY_braille_dots_15 = 16787473
--- constant _KEY_braille_dots_156
-
-_KEY_braille_dots_156 :: Int32
-_KEY_braille_dots_156 = 16787505
--- constant _KEY_braille_dots_1567
-
-_KEY_braille_dots_1567 :: Int32
-_KEY_braille_dots_1567 = 16787569
--- constant _KEY_braille_dots_15678
-
-_KEY_braille_dots_15678 :: Int32
-_KEY_braille_dots_15678 = 16787697
--- constant _KEY_braille_dots_1568
-
-_KEY_braille_dots_1568 :: Int32
-_KEY_braille_dots_1568 = 16787633
--- constant _KEY_braille_dots_157
-
-_KEY_braille_dots_157 :: Int32
-_KEY_braille_dots_157 = 16787537
--- constant _KEY_braille_dots_1578
-
-_KEY_braille_dots_1578 :: Int32
-_KEY_braille_dots_1578 = 16787665
--- constant _KEY_braille_dots_158
-
-_KEY_braille_dots_158 :: Int32
-_KEY_braille_dots_158 = 16787601
--- constant _KEY_braille_dots_16
-
-_KEY_braille_dots_16 :: Int32
-_KEY_braille_dots_16 = 16787489
--- constant _KEY_braille_dots_167
-
-_KEY_braille_dots_167 :: Int32
-_KEY_braille_dots_167 = 16787553
--- constant _KEY_braille_dots_1678
-
-_KEY_braille_dots_1678 :: Int32
-_KEY_braille_dots_1678 = 16787681
--- constant _KEY_braille_dots_168
-
-_KEY_braille_dots_168 :: Int32
-_KEY_braille_dots_168 = 16787617
--- constant _KEY_braille_dots_17
-
-_KEY_braille_dots_17 :: Int32
-_KEY_braille_dots_17 = 16787521
--- constant _KEY_braille_dots_178
-
-_KEY_braille_dots_178 :: Int32
-_KEY_braille_dots_178 = 16787649
--- constant _KEY_braille_dots_18
-
-_KEY_braille_dots_18 :: Int32
-_KEY_braille_dots_18 = 16787585
--- constant _KEY_braille_dots_2
-
-_KEY_braille_dots_2 :: Int32
-_KEY_braille_dots_2 = 16787458
--- constant _KEY_braille_dots_23
-
-_KEY_braille_dots_23 :: Int32
-_KEY_braille_dots_23 = 16787462
--- constant _KEY_braille_dots_234
-
-_KEY_braille_dots_234 :: Int32
-_KEY_braille_dots_234 = 16787470
--- constant _KEY_braille_dots_2345
-
-_KEY_braille_dots_2345 :: Int32
-_KEY_braille_dots_2345 = 16787486
--- constant _KEY_braille_dots_23456
-
-_KEY_braille_dots_23456 :: Int32
-_KEY_braille_dots_23456 = 16787518
--- constant _KEY_braille_dots_234567
-
-_KEY_braille_dots_234567 :: Int32
-_KEY_braille_dots_234567 = 16787582
--- constant _KEY_braille_dots_2345678
-
-_KEY_braille_dots_2345678 :: Int32
-_KEY_braille_dots_2345678 = 16787710
--- constant _KEY_braille_dots_234568
-
-_KEY_braille_dots_234568 :: Int32
-_KEY_braille_dots_234568 = 16787646
--- constant _KEY_braille_dots_23457
-
-_KEY_braille_dots_23457 :: Int32
-_KEY_braille_dots_23457 = 16787550
--- constant _KEY_braille_dots_234578
-
-_KEY_braille_dots_234578 :: Int32
-_KEY_braille_dots_234578 = 16787678
--- constant _KEY_braille_dots_23458
-
-_KEY_braille_dots_23458 :: Int32
-_KEY_braille_dots_23458 = 16787614
--- constant _KEY_braille_dots_2346
-
-_KEY_braille_dots_2346 :: Int32
-_KEY_braille_dots_2346 = 16787502
--- constant _KEY_braille_dots_23467
-
-_KEY_braille_dots_23467 :: Int32
-_KEY_braille_dots_23467 = 16787566
--- constant _KEY_braille_dots_234678
-
-_KEY_braille_dots_234678 :: Int32
-_KEY_braille_dots_234678 = 16787694
--- constant _KEY_braille_dots_23468
-
-_KEY_braille_dots_23468 :: Int32
-_KEY_braille_dots_23468 = 16787630
--- constant _KEY_braille_dots_2347
-
-_KEY_braille_dots_2347 :: Int32
-_KEY_braille_dots_2347 = 16787534
--- constant _KEY_braille_dots_23478
-
-_KEY_braille_dots_23478 :: Int32
-_KEY_braille_dots_23478 = 16787662
--- constant _KEY_braille_dots_2348
-
-_KEY_braille_dots_2348 :: Int32
-_KEY_braille_dots_2348 = 16787598
--- constant _KEY_braille_dots_235
-
-_KEY_braille_dots_235 :: Int32
-_KEY_braille_dots_235 = 16787478
--- constant _KEY_braille_dots_2356
-
-_KEY_braille_dots_2356 :: Int32
-_KEY_braille_dots_2356 = 16787510
--- constant _KEY_braille_dots_23567
-
-_KEY_braille_dots_23567 :: Int32
-_KEY_braille_dots_23567 = 16787574
--- constant _KEY_braille_dots_235678
-
-_KEY_braille_dots_235678 :: Int32
-_KEY_braille_dots_235678 = 16787702
--- constant _KEY_braille_dots_23568
-
-_KEY_braille_dots_23568 :: Int32
-_KEY_braille_dots_23568 = 16787638
--- constant _KEY_braille_dots_2357
-
-_KEY_braille_dots_2357 :: Int32
-_KEY_braille_dots_2357 = 16787542
--- constant _KEY_braille_dots_23578
-
-_KEY_braille_dots_23578 :: Int32
-_KEY_braille_dots_23578 = 16787670
--- constant _KEY_braille_dots_2358
-
-_KEY_braille_dots_2358 :: Int32
-_KEY_braille_dots_2358 = 16787606
--- constant _KEY_braille_dots_236
-
-_KEY_braille_dots_236 :: Int32
-_KEY_braille_dots_236 = 16787494
--- constant _KEY_braille_dots_2367
-
-_KEY_braille_dots_2367 :: Int32
-_KEY_braille_dots_2367 = 16787558
--- constant _KEY_braille_dots_23678
-
-_KEY_braille_dots_23678 :: Int32
-_KEY_braille_dots_23678 = 16787686
--- constant _KEY_braille_dots_2368
-
-_KEY_braille_dots_2368 :: Int32
-_KEY_braille_dots_2368 = 16787622
--- constant _KEY_braille_dots_237
-
-_KEY_braille_dots_237 :: Int32
-_KEY_braille_dots_237 = 16787526
--- constant _KEY_braille_dots_2378
-
-_KEY_braille_dots_2378 :: Int32
-_KEY_braille_dots_2378 = 16787654
--- constant _KEY_braille_dots_238
-
-_KEY_braille_dots_238 :: Int32
-_KEY_braille_dots_238 = 16787590
--- constant _KEY_braille_dots_24
-
-_KEY_braille_dots_24 :: Int32
-_KEY_braille_dots_24 = 16787466
--- constant _KEY_braille_dots_245
-
-_KEY_braille_dots_245 :: Int32
-_KEY_braille_dots_245 = 16787482
--- constant _KEY_braille_dots_2456
-
-_KEY_braille_dots_2456 :: Int32
-_KEY_braille_dots_2456 = 16787514
--- constant _KEY_braille_dots_24567
-
-_KEY_braille_dots_24567 :: Int32
-_KEY_braille_dots_24567 = 16787578
--- constant _KEY_braille_dots_245678
-
-_KEY_braille_dots_245678 :: Int32
-_KEY_braille_dots_245678 = 16787706
--- constant _KEY_braille_dots_24568
-
-_KEY_braille_dots_24568 :: Int32
-_KEY_braille_dots_24568 = 16787642
--- constant _KEY_braille_dots_2457
-
-_KEY_braille_dots_2457 :: Int32
-_KEY_braille_dots_2457 = 16787546
--- constant _KEY_braille_dots_24578
-
-_KEY_braille_dots_24578 :: Int32
-_KEY_braille_dots_24578 = 16787674
--- constant _KEY_braille_dots_2458
-
-_KEY_braille_dots_2458 :: Int32
-_KEY_braille_dots_2458 = 16787610
--- constant _KEY_braille_dots_246
-
-_KEY_braille_dots_246 :: Int32
-_KEY_braille_dots_246 = 16787498
--- constant _KEY_braille_dots_2467
-
-_KEY_braille_dots_2467 :: Int32
-_KEY_braille_dots_2467 = 16787562
--- constant _KEY_braille_dots_24678
-
-_KEY_braille_dots_24678 :: Int32
-_KEY_braille_dots_24678 = 16787690
--- constant _KEY_braille_dots_2468
-
-_KEY_braille_dots_2468 :: Int32
-_KEY_braille_dots_2468 = 16787626
--- constant _KEY_braille_dots_247
-
-_KEY_braille_dots_247 :: Int32
-_KEY_braille_dots_247 = 16787530
--- constant _KEY_braille_dots_2478
-
-_KEY_braille_dots_2478 :: Int32
-_KEY_braille_dots_2478 = 16787658
--- constant _KEY_braille_dots_248
-
-_KEY_braille_dots_248 :: Int32
-_KEY_braille_dots_248 = 16787594
--- constant _KEY_braille_dots_25
-
-_KEY_braille_dots_25 :: Int32
-_KEY_braille_dots_25 = 16787474
--- constant _KEY_braille_dots_256
-
-_KEY_braille_dots_256 :: Int32
-_KEY_braille_dots_256 = 16787506
--- constant _KEY_braille_dots_2567
-
-_KEY_braille_dots_2567 :: Int32
-_KEY_braille_dots_2567 = 16787570
--- constant _KEY_braille_dots_25678
-
-_KEY_braille_dots_25678 :: Int32
-_KEY_braille_dots_25678 = 16787698
--- constant _KEY_braille_dots_2568
-
-_KEY_braille_dots_2568 :: Int32
-_KEY_braille_dots_2568 = 16787634
--- constant _KEY_braille_dots_257
-
-_KEY_braille_dots_257 :: Int32
-_KEY_braille_dots_257 = 16787538
--- constant _KEY_braille_dots_2578
-
-_KEY_braille_dots_2578 :: Int32
-_KEY_braille_dots_2578 = 16787666
--- constant _KEY_braille_dots_258
-
-_KEY_braille_dots_258 :: Int32
-_KEY_braille_dots_258 = 16787602
--- constant _KEY_braille_dots_26
-
-_KEY_braille_dots_26 :: Int32
-_KEY_braille_dots_26 = 16787490
--- constant _KEY_braille_dots_267
-
-_KEY_braille_dots_267 :: Int32
-_KEY_braille_dots_267 = 16787554
--- constant _KEY_braille_dots_2678
-
-_KEY_braille_dots_2678 :: Int32
-_KEY_braille_dots_2678 = 16787682
--- constant _KEY_braille_dots_268
-
-_KEY_braille_dots_268 :: Int32
-_KEY_braille_dots_268 = 16787618
--- constant _KEY_braille_dots_27
-
-_KEY_braille_dots_27 :: Int32
-_KEY_braille_dots_27 = 16787522
--- constant _KEY_braille_dots_278
-
-_KEY_braille_dots_278 :: Int32
-_KEY_braille_dots_278 = 16787650
--- constant _KEY_braille_dots_28
-
-_KEY_braille_dots_28 :: Int32
-_KEY_braille_dots_28 = 16787586
--- constant _KEY_braille_dots_3
-
-_KEY_braille_dots_3 :: Int32
-_KEY_braille_dots_3 = 16787460
--- constant _KEY_braille_dots_34
-
-_KEY_braille_dots_34 :: Int32
-_KEY_braille_dots_34 = 16787468
--- constant _KEY_braille_dots_345
-
-_KEY_braille_dots_345 :: Int32
-_KEY_braille_dots_345 = 16787484
--- constant _KEY_braille_dots_3456
-
-_KEY_braille_dots_3456 :: Int32
-_KEY_braille_dots_3456 = 16787516
--- constant _KEY_braille_dots_34567
-
-_KEY_braille_dots_34567 :: Int32
-_KEY_braille_dots_34567 = 16787580
--- constant _KEY_braille_dots_345678
-
-_KEY_braille_dots_345678 :: Int32
-_KEY_braille_dots_345678 = 16787708
--- constant _KEY_braille_dots_34568
-
-_KEY_braille_dots_34568 :: Int32
-_KEY_braille_dots_34568 = 16787644
--- constant _KEY_braille_dots_3457
-
-_KEY_braille_dots_3457 :: Int32
-_KEY_braille_dots_3457 = 16787548
--- constant _KEY_braille_dots_34578
-
-_KEY_braille_dots_34578 :: Int32
-_KEY_braille_dots_34578 = 16787676
--- constant _KEY_braille_dots_3458
-
-_KEY_braille_dots_3458 :: Int32
-_KEY_braille_dots_3458 = 16787612
--- constant _KEY_braille_dots_346
-
-_KEY_braille_dots_346 :: Int32
-_KEY_braille_dots_346 = 16787500
--- constant _KEY_braille_dots_3467
-
-_KEY_braille_dots_3467 :: Int32
-_KEY_braille_dots_3467 = 16787564
--- constant _KEY_braille_dots_34678
-
-_KEY_braille_dots_34678 :: Int32
-_KEY_braille_dots_34678 = 16787692
--- constant _KEY_braille_dots_3468
-
-_KEY_braille_dots_3468 :: Int32
-_KEY_braille_dots_3468 = 16787628
--- constant _KEY_braille_dots_347
-
-_KEY_braille_dots_347 :: Int32
-_KEY_braille_dots_347 = 16787532
--- constant _KEY_braille_dots_3478
-
-_KEY_braille_dots_3478 :: Int32
-_KEY_braille_dots_3478 = 16787660
--- constant _KEY_braille_dots_348
-
-_KEY_braille_dots_348 :: Int32
-_KEY_braille_dots_348 = 16787596
--- constant _KEY_braille_dots_35
-
-_KEY_braille_dots_35 :: Int32
-_KEY_braille_dots_35 = 16787476
--- constant _KEY_braille_dots_356
-
-_KEY_braille_dots_356 :: Int32
-_KEY_braille_dots_356 = 16787508
--- constant _KEY_braille_dots_3567
-
-_KEY_braille_dots_3567 :: Int32
-_KEY_braille_dots_3567 = 16787572
--- constant _KEY_braille_dots_35678
-
-_KEY_braille_dots_35678 :: Int32
-_KEY_braille_dots_35678 = 16787700
--- constant _KEY_braille_dots_3568
-
-_KEY_braille_dots_3568 :: Int32
-_KEY_braille_dots_3568 = 16787636
--- constant _KEY_braille_dots_357
-
-_KEY_braille_dots_357 :: Int32
-_KEY_braille_dots_357 = 16787540
--- constant _KEY_braille_dots_3578
-
-_KEY_braille_dots_3578 :: Int32
-_KEY_braille_dots_3578 = 16787668
--- constant _KEY_braille_dots_358
-
-_KEY_braille_dots_358 :: Int32
-_KEY_braille_dots_358 = 16787604
--- constant _KEY_braille_dots_36
-
-_KEY_braille_dots_36 :: Int32
-_KEY_braille_dots_36 = 16787492
--- constant _KEY_braille_dots_367
-
-_KEY_braille_dots_367 :: Int32
-_KEY_braille_dots_367 = 16787556
--- constant _KEY_braille_dots_3678
-
-_KEY_braille_dots_3678 :: Int32
-_KEY_braille_dots_3678 = 16787684
--- constant _KEY_braille_dots_368
-
-_KEY_braille_dots_368 :: Int32
-_KEY_braille_dots_368 = 16787620
--- constant _KEY_braille_dots_37
-
-_KEY_braille_dots_37 :: Int32
-_KEY_braille_dots_37 = 16787524
--- constant _KEY_braille_dots_378
-
-_KEY_braille_dots_378 :: Int32
-_KEY_braille_dots_378 = 16787652
--- constant _KEY_braille_dots_38
-
-_KEY_braille_dots_38 :: Int32
-_KEY_braille_dots_38 = 16787588
--- constant _KEY_braille_dots_4
-
-_KEY_braille_dots_4 :: Int32
-_KEY_braille_dots_4 = 16787464
--- constant _KEY_braille_dots_45
-
-_KEY_braille_dots_45 :: Int32
-_KEY_braille_dots_45 = 16787480
--- constant _KEY_braille_dots_456
-
-_KEY_braille_dots_456 :: Int32
-_KEY_braille_dots_456 = 16787512
--- constant _KEY_braille_dots_4567
-
-_KEY_braille_dots_4567 :: Int32
-_KEY_braille_dots_4567 = 16787576
--- constant _KEY_braille_dots_45678
-
-_KEY_braille_dots_45678 :: Int32
-_KEY_braille_dots_45678 = 16787704
--- constant _KEY_braille_dots_4568
-
-_KEY_braille_dots_4568 :: Int32
-_KEY_braille_dots_4568 = 16787640
--- constant _KEY_braille_dots_457
-
-_KEY_braille_dots_457 :: Int32
-_KEY_braille_dots_457 = 16787544
--- constant _KEY_braille_dots_4578
-
-_KEY_braille_dots_4578 :: Int32
-_KEY_braille_dots_4578 = 16787672
--- constant _KEY_braille_dots_458
-
-_KEY_braille_dots_458 :: Int32
-_KEY_braille_dots_458 = 16787608
--- constant _KEY_braille_dots_46
-
-_KEY_braille_dots_46 :: Int32
-_KEY_braille_dots_46 = 16787496
--- constant _KEY_braille_dots_467
-
-_KEY_braille_dots_467 :: Int32
-_KEY_braille_dots_467 = 16787560
--- constant _KEY_braille_dots_4678
-
-_KEY_braille_dots_4678 :: Int32
-_KEY_braille_dots_4678 = 16787688
--- constant _KEY_braille_dots_468
-
-_KEY_braille_dots_468 :: Int32
-_KEY_braille_dots_468 = 16787624
--- constant _KEY_braille_dots_47
-
-_KEY_braille_dots_47 :: Int32
-_KEY_braille_dots_47 = 16787528
--- constant _KEY_braille_dots_478
-
-_KEY_braille_dots_478 :: Int32
-_KEY_braille_dots_478 = 16787656
--- constant _KEY_braille_dots_48
-
-_KEY_braille_dots_48 :: Int32
-_KEY_braille_dots_48 = 16787592
--- constant _KEY_braille_dots_5
-
-_KEY_braille_dots_5 :: Int32
-_KEY_braille_dots_5 = 16787472
--- constant _KEY_braille_dots_56
-
-_KEY_braille_dots_56 :: Int32
-_KEY_braille_dots_56 = 16787504
--- constant _KEY_braille_dots_567
-
-_KEY_braille_dots_567 :: Int32
-_KEY_braille_dots_567 = 16787568
--- constant _KEY_braille_dots_5678
-
-_KEY_braille_dots_5678 :: Int32
-_KEY_braille_dots_5678 = 16787696
--- constant _KEY_braille_dots_568
-
-_KEY_braille_dots_568 :: Int32
-_KEY_braille_dots_568 = 16787632
--- constant _KEY_braille_dots_57
-
-_KEY_braille_dots_57 :: Int32
-_KEY_braille_dots_57 = 16787536
--- constant _KEY_braille_dots_578
-
-_KEY_braille_dots_578 :: Int32
-_KEY_braille_dots_578 = 16787664
--- constant _KEY_braille_dots_58
-
-_KEY_braille_dots_58 :: Int32
-_KEY_braille_dots_58 = 16787600
--- constant _KEY_braille_dots_6
-
-_KEY_braille_dots_6 :: Int32
-_KEY_braille_dots_6 = 16787488
--- constant _KEY_braille_dots_67
-
-_KEY_braille_dots_67 :: Int32
-_KEY_braille_dots_67 = 16787552
--- constant _KEY_braille_dots_678
-
-_KEY_braille_dots_678 :: Int32
-_KEY_braille_dots_678 = 16787680
--- constant _KEY_braille_dots_68
-
-_KEY_braille_dots_68 :: Int32
-_KEY_braille_dots_68 = 16787616
--- constant _KEY_braille_dots_7
-
-_KEY_braille_dots_7 :: Int32
-_KEY_braille_dots_7 = 16787520
--- constant _KEY_braille_dots_78
-
-_KEY_braille_dots_78 :: Int32
-_KEY_braille_dots_78 = 16787648
--- constant _KEY_braille_dots_8
-
-_KEY_braille_dots_8 :: Int32
-_KEY_braille_dots_8 = 16787584
--- constant _KEY_breve
-
-_KEY_breve :: Int32
-_KEY_breve = 418
--- constant _KEY_brokenbar
-
-_KEY_brokenbar :: Int32
-_KEY_brokenbar = 166
--- constant _KEY_c
-
-_KEY_c :: Int32
-_KEY_c = 99
--- constant _KEY_c_h
-
-_KEY_c_h :: Int32
-_KEY_c_h = 65187
--- constant _KEY_cabovedot
-
-_KEY_cabovedot :: Int32
-_KEY_cabovedot = 741
--- constant _KEY_cacute
-
-_KEY_cacute :: Int32
-_KEY_cacute = 486
--- constant _KEY_careof
-
-_KEY_careof :: Int32
-_KEY_careof = 2744
--- constant _KEY_caret
-
-_KEY_caret :: Int32
-_KEY_caret = 2812
--- constant _KEY_caron
-
-_KEY_caron :: Int32
-_KEY_caron = 439
--- constant _KEY_ccaron
-
-_KEY_ccaron :: Int32
-_KEY_ccaron = 488
--- constant _KEY_ccedilla
-
-_KEY_ccedilla :: Int32
-_KEY_ccedilla = 231
--- constant _KEY_ccircumflex
-
-_KEY_ccircumflex :: Int32
-_KEY_ccircumflex = 742
--- constant _KEY_cedilla
-
-_KEY_cedilla :: Int32
-_KEY_cedilla = 184
--- constant _KEY_cent
-
-_KEY_cent :: Int32
-_KEY_cent = 162
--- constant _KEY_ch
-
-_KEY_ch :: Int32
-_KEY_ch = 65184
--- constant _KEY_checkerboard
-
-_KEY_checkerboard :: Int32
-_KEY_checkerboard = 2529
--- constant _KEY_checkmark
-
-_KEY_checkmark :: Int32
-_KEY_checkmark = 2803
--- constant _KEY_circle
-
-_KEY_circle :: Int32
-_KEY_circle = 3023
--- constant _KEY_club
-
-_KEY_club :: Int32
-_KEY_club = 2796
--- constant _KEY_colon
-
-_KEY_colon :: Int32
-_KEY_colon = 58
--- constant _KEY_comma
-
-_KEY_comma :: Int32
-_KEY_comma = 44
--- constant _KEY_containsas
-
-_KEY_containsas :: Int32
-_KEY_containsas = 16785931
--- constant _KEY_copyright
-
-_KEY_copyright :: Int32
-_KEY_copyright = 169
--- constant _KEY_cr
-
-_KEY_cr :: Int32
-_KEY_cr = 2532
--- constant _KEY_crossinglines
-
-_KEY_crossinglines :: Int32
-_KEY_crossinglines = 2542
--- constant _KEY_cuberoot
-
-_KEY_cuberoot :: Int32
-_KEY_cuberoot = 16785947
--- constant _KEY_currency
-
-_KEY_currency :: Int32
-_KEY_currency = 164
--- constant _KEY_cursor
-
-_KEY_cursor :: Int32
-_KEY_cursor = 2815
--- constant _KEY_d
-
-_KEY_d :: Int32
-_KEY_d = 100
--- constant _KEY_dabovedot
-
-_KEY_dabovedot :: Int32
-_KEY_dabovedot = 16784907
--- constant _KEY_dagger
-
-_KEY_dagger :: Int32
-_KEY_dagger = 2801
--- constant _KEY_dcaron
-
-_KEY_dcaron :: Int32
-_KEY_dcaron = 495
--- constant _KEY_dead_A
-
-_KEY_dead_A :: Int32
-_KEY_dead_A = 65153
--- constant _KEY_dead_E
-
-_KEY_dead_E :: Int32
-_KEY_dead_E = 65155
--- constant _KEY_dead_I
-
-_KEY_dead_I :: Int32
-_KEY_dead_I = 65157
--- constant _KEY_dead_O
-
-_KEY_dead_O :: Int32
-_KEY_dead_O = 65159
--- constant _KEY_dead_U
-
-_KEY_dead_U :: Int32
-_KEY_dead_U = 65161
--- constant _KEY_dead_a
-
-_KEY_dead_a :: Int32
-_KEY_dead_a = 65152
--- constant _KEY_dead_abovecomma
-
-_KEY_dead_abovecomma :: Int32
-_KEY_dead_abovecomma = 65124
--- constant _KEY_dead_abovedot
-
-_KEY_dead_abovedot :: Int32
-_KEY_dead_abovedot = 65110
--- constant _KEY_dead_abovereversedcomma
-
-_KEY_dead_abovereversedcomma :: Int32
-_KEY_dead_abovereversedcomma = 65125
--- constant _KEY_dead_abovering
-
-_KEY_dead_abovering :: Int32
-_KEY_dead_abovering = 65112
--- constant _KEY_dead_acute
-
-_KEY_dead_acute :: Int32
-_KEY_dead_acute = 65105
--- constant _KEY_dead_belowbreve
-
-_KEY_dead_belowbreve :: Int32
-_KEY_dead_belowbreve = 65131
--- constant _KEY_dead_belowcircumflex
-
-_KEY_dead_belowcircumflex :: Int32
-_KEY_dead_belowcircumflex = 65129
--- constant _KEY_dead_belowcomma
-
-_KEY_dead_belowcomma :: Int32
-_KEY_dead_belowcomma = 65134
--- constant _KEY_dead_belowdiaeresis
-
-_KEY_dead_belowdiaeresis :: Int32
-_KEY_dead_belowdiaeresis = 65132
--- constant _KEY_dead_belowdot
-
-_KEY_dead_belowdot :: Int32
-_KEY_dead_belowdot = 65120
--- constant _KEY_dead_belowmacron
-
-_KEY_dead_belowmacron :: Int32
-_KEY_dead_belowmacron = 65128
--- constant _KEY_dead_belowring
-
-_KEY_dead_belowring :: Int32
-_KEY_dead_belowring = 65127
--- constant _KEY_dead_belowtilde
-
-_KEY_dead_belowtilde :: Int32
-_KEY_dead_belowtilde = 65130
--- constant _KEY_dead_breve
-
-_KEY_dead_breve :: Int32
-_KEY_dead_breve = 65109
--- constant _KEY_dead_capital_schwa
-
-_KEY_dead_capital_schwa :: Int32
-_KEY_dead_capital_schwa = 65163
--- constant _KEY_dead_caron
-
-_KEY_dead_caron :: Int32
-_KEY_dead_caron = 65114
--- constant _KEY_dead_cedilla
-
-_KEY_dead_cedilla :: Int32
-_KEY_dead_cedilla = 65115
--- constant _KEY_dead_circumflex
-
-_KEY_dead_circumflex :: Int32
-_KEY_dead_circumflex = 65106
--- constant _KEY_dead_currency
-
-_KEY_dead_currency :: Int32
-_KEY_dead_currency = 65135
--- constant _KEY_dead_dasia
-
-_KEY_dead_dasia :: Int32
-_KEY_dead_dasia = 65125
--- constant _KEY_dead_diaeresis
-
-_KEY_dead_diaeresis :: Int32
-_KEY_dead_diaeresis = 65111
--- constant _KEY_dead_doubleacute
-
-_KEY_dead_doubleacute :: Int32
-_KEY_dead_doubleacute = 65113
--- constant _KEY_dead_doublegrave
-
-_KEY_dead_doublegrave :: Int32
-_KEY_dead_doublegrave = 65126
--- constant _KEY_dead_e
-
-_KEY_dead_e :: Int32
-_KEY_dead_e = 65154
--- constant _KEY_dead_grave
-
-_KEY_dead_grave :: Int32
-_KEY_dead_grave = 65104
--- constant _KEY_dead_greek
-
-_KEY_dead_greek :: Int32
-_KEY_dead_greek = 65164
--- constant _KEY_dead_hook
-
-_KEY_dead_hook :: Int32
-_KEY_dead_hook = 65121
--- constant _KEY_dead_horn
-
-_KEY_dead_horn :: Int32
-_KEY_dead_horn = 65122
--- constant _KEY_dead_i
-
-_KEY_dead_i :: Int32
-_KEY_dead_i = 65156
--- constant _KEY_dead_invertedbreve
-
-_KEY_dead_invertedbreve :: Int32
-_KEY_dead_invertedbreve = 65133
--- constant _KEY_dead_iota
-
-_KEY_dead_iota :: Int32
-_KEY_dead_iota = 65117
--- constant _KEY_dead_macron
-
-_KEY_dead_macron :: Int32
-_KEY_dead_macron = 65108
--- constant _KEY_dead_o
-
-_KEY_dead_o :: Int32
-_KEY_dead_o = 65158
--- constant _KEY_dead_ogonek
-
-_KEY_dead_ogonek :: Int32
-_KEY_dead_ogonek = 65116
--- constant _KEY_dead_perispomeni
-
-_KEY_dead_perispomeni :: Int32
-_KEY_dead_perispomeni = 65107
--- constant _KEY_dead_psili
-
-_KEY_dead_psili :: Int32
-_KEY_dead_psili = 65124
--- constant _KEY_dead_semivoiced_sound
-
-_KEY_dead_semivoiced_sound :: Int32
-_KEY_dead_semivoiced_sound = 65119
--- constant _KEY_dead_small_schwa
-
-_KEY_dead_small_schwa :: Int32
-_KEY_dead_small_schwa = 65162
--- constant _KEY_dead_stroke
-
-_KEY_dead_stroke :: Int32
-_KEY_dead_stroke = 65123
--- constant _KEY_dead_tilde
-
-_KEY_dead_tilde :: Int32
-_KEY_dead_tilde = 65107
--- constant _KEY_dead_u
-
-_KEY_dead_u :: Int32
-_KEY_dead_u = 65160
--- constant _KEY_dead_voiced_sound
-
-_KEY_dead_voiced_sound :: Int32
-_KEY_dead_voiced_sound = 65118
--- constant _KEY_decimalpoint
-
-_KEY_decimalpoint :: Int32
-_KEY_decimalpoint = 2749
--- constant _KEY_degree
-
-_KEY_degree :: Int32
-_KEY_degree = 176
--- constant _KEY_diaeresis
-
-_KEY_diaeresis :: Int32
-_KEY_diaeresis = 168
--- constant _KEY_diamond
-
-_KEY_diamond :: Int32
-_KEY_diamond = 2797
--- constant _KEY_digitspace
-
-_KEY_digitspace :: Int32
-_KEY_digitspace = 2725
--- constant _KEY_dintegral
-
-_KEY_dintegral :: Int32
-_KEY_dintegral = 16785964
--- constant _KEY_division
-
-_KEY_division :: Int32
-_KEY_division = 247
--- constant _KEY_dollar
-
-_KEY_dollar :: Int32
-_KEY_dollar = 36
--- constant _KEY_doubbaselinedot
-
-_KEY_doubbaselinedot :: Int32
-_KEY_doubbaselinedot = 2735
--- constant _KEY_doubleacute
-
-_KEY_doubleacute :: Int32
-_KEY_doubleacute = 445
--- constant _KEY_doubledagger
-
-_KEY_doubledagger :: Int32
-_KEY_doubledagger = 2802
--- constant _KEY_doublelowquotemark
-
-_KEY_doublelowquotemark :: Int32
-_KEY_doublelowquotemark = 2814
--- constant _KEY_downarrow
-
-_KEY_downarrow :: Int32
-_KEY_downarrow = 2302
--- constant _KEY_downcaret
-
-_KEY_downcaret :: Int32
-_KEY_downcaret = 2984
--- constant _KEY_downshoe
-
-_KEY_downshoe :: Int32
-_KEY_downshoe = 3030
--- constant _KEY_downstile
-
-_KEY_downstile :: Int32
-_KEY_downstile = 3012
--- constant _KEY_downtack
-
-_KEY_downtack :: Int32
-_KEY_downtack = 3010
--- constant _KEY_dstroke
-
-_KEY_dstroke :: Int32
-_KEY_dstroke = 496
--- constant _KEY_e
-
-_KEY_e :: Int32
-_KEY_e = 101
--- constant _KEY_eabovedot
-
-_KEY_eabovedot :: Int32
-_KEY_eabovedot = 1004
--- constant _KEY_eacute
-
-_KEY_eacute :: Int32
-_KEY_eacute = 233
--- constant _KEY_ebelowdot
-
-_KEY_ebelowdot :: Int32
-_KEY_ebelowdot = 16785081
--- constant _KEY_ecaron
-
-_KEY_ecaron :: Int32
-_KEY_ecaron = 492
--- constant _KEY_ecircumflex
-
-_KEY_ecircumflex :: Int32
-_KEY_ecircumflex = 234
--- constant _KEY_ecircumflexacute
-
-_KEY_ecircumflexacute :: Int32
-_KEY_ecircumflexacute = 16785087
--- constant _KEY_ecircumflexbelowdot
-
-_KEY_ecircumflexbelowdot :: Int32
-_KEY_ecircumflexbelowdot = 16785095
--- constant _KEY_ecircumflexgrave
-
-_KEY_ecircumflexgrave :: Int32
-_KEY_ecircumflexgrave = 16785089
--- constant _KEY_ecircumflexhook
-
-_KEY_ecircumflexhook :: Int32
-_KEY_ecircumflexhook = 16785091
--- constant _KEY_ecircumflextilde
-
-_KEY_ecircumflextilde :: Int32
-_KEY_ecircumflextilde = 16785093
--- constant _KEY_ediaeresis
-
-_KEY_ediaeresis :: Int32
-_KEY_ediaeresis = 235
--- constant _KEY_egrave
-
-_KEY_egrave :: Int32
-_KEY_egrave = 232
--- constant _KEY_ehook
-
-_KEY_ehook :: Int32
-_KEY_ehook = 16785083
--- constant _KEY_eightsubscript
-
-_KEY_eightsubscript :: Int32
-_KEY_eightsubscript = 16785544
--- constant _KEY_eightsuperior
-
-_KEY_eightsuperior :: Int32
-_KEY_eightsuperior = 16785528
--- constant _KEY_elementof
-
-_KEY_elementof :: Int32
-_KEY_elementof = 16785928
--- constant _KEY_ellipsis
-
-_KEY_ellipsis :: Int32
-_KEY_ellipsis = 2734
--- constant _KEY_em3space
-
-_KEY_em3space :: Int32
-_KEY_em3space = 2723
--- constant _KEY_em4space
-
-_KEY_em4space :: Int32
-_KEY_em4space = 2724
--- constant _KEY_emacron
-
-_KEY_emacron :: Int32
-_KEY_emacron = 954
--- constant _KEY_emdash
-
-_KEY_emdash :: Int32
-_KEY_emdash = 2729
--- constant _KEY_emfilledcircle
-
-_KEY_emfilledcircle :: Int32
-_KEY_emfilledcircle = 2782
--- constant _KEY_emfilledrect
-
-_KEY_emfilledrect :: Int32
-_KEY_emfilledrect = 2783
--- constant _KEY_emopencircle
-
-_KEY_emopencircle :: Int32
-_KEY_emopencircle = 2766
--- constant _KEY_emopenrectangle
-
-_KEY_emopenrectangle :: Int32
-_KEY_emopenrectangle = 2767
--- constant _KEY_emptyset
-
-_KEY_emptyset :: Int32
-_KEY_emptyset = 16785925
--- constant _KEY_emspace
-
-_KEY_emspace :: Int32
-_KEY_emspace = 2721
--- constant _KEY_endash
-
-_KEY_endash :: Int32
-_KEY_endash = 2730
--- constant _KEY_enfilledcircbullet
-
-_KEY_enfilledcircbullet :: Int32
-_KEY_enfilledcircbullet = 2790
--- constant _KEY_enfilledsqbullet
-
-_KEY_enfilledsqbullet :: Int32
-_KEY_enfilledsqbullet = 2791
--- constant _KEY_eng
-
-_KEY_eng :: Int32
-_KEY_eng = 959
--- constant _KEY_enopencircbullet
-
-_KEY_enopencircbullet :: Int32
-_KEY_enopencircbullet = 2784
--- constant _KEY_enopensquarebullet
-
-_KEY_enopensquarebullet :: Int32
-_KEY_enopensquarebullet = 2785
--- constant _KEY_enspace
-
-_KEY_enspace :: Int32
-_KEY_enspace = 2722
--- constant _KEY_eogonek
-
-_KEY_eogonek :: Int32
-_KEY_eogonek = 490
--- constant _KEY_equal
-
-_KEY_equal :: Int32
-_KEY_equal = 61
--- constant _KEY_eth
-
-_KEY_eth :: Int32
-_KEY_eth = 240
--- constant _KEY_etilde
-
-_KEY_etilde :: Int32
-_KEY_etilde = 16785085
--- constant _KEY_exclam
-
-_KEY_exclam :: Int32
-_KEY_exclam = 33
--- constant _KEY_exclamdown
-
-_KEY_exclamdown :: Int32
-_KEY_exclamdown = 161
--- constant _KEY_ezh
-
-_KEY_ezh :: Int32
-_KEY_ezh = 16777874
--- constant _KEY_f
-
-_KEY_f :: Int32
-_KEY_f = 102
--- constant _KEY_fabovedot
-
-_KEY_fabovedot :: Int32
-_KEY_fabovedot = 16784927
--- constant _KEY_femalesymbol
-
-_KEY_femalesymbol :: Int32
-_KEY_femalesymbol = 2808
--- constant _KEY_ff
-
-_KEY_ff :: Int32
-_KEY_ff = 2531
--- constant _KEY_figdash
-
-_KEY_figdash :: Int32
-_KEY_figdash = 2747
--- constant _KEY_filledlefttribullet
-
-_KEY_filledlefttribullet :: Int32
-_KEY_filledlefttribullet = 2780
--- constant _KEY_filledrectbullet
-
-_KEY_filledrectbullet :: Int32
-_KEY_filledrectbullet = 2779
--- constant _KEY_filledrighttribullet
-
-_KEY_filledrighttribullet :: Int32
-_KEY_filledrighttribullet = 2781
--- constant _KEY_filledtribulletdown
-
-_KEY_filledtribulletdown :: Int32
-_KEY_filledtribulletdown = 2793
--- constant _KEY_filledtribulletup
-
-_KEY_filledtribulletup :: Int32
-_KEY_filledtribulletup = 2792
--- constant _KEY_fiveeighths
-
-_KEY_fiveeighths :: Int32
-_KEY_fiveeighths = 2757
--- constant _KEY_fivesixths
-
-_KEY_fivesixths :: Int32
-_KEY_fivesixths = 2743
--- constant _KEY_fivesubscript
-
-_KEY_fivesubscript :: Int32
-_KEY_fivesubscript = 16785541
--- constant _KEY_fivesuperior
-
-_KEY_fivesuperior :: Int32
-_KEY_fivesuperior = 16785525
--- constant _KEY_fourfifths
-
-_KEY_fourfifths :: Int32
-_KEY_fourfifths = 2741
--- constant _KEY_foursubscript
-
-_KEY_foursubscript :: Int32
-_KEY_foursubscript = 16785540
--- constant _KEY_foursuperior
-
-_KEY_foursuperior :: Int32
-_KEY_foursuperior = 16785524
--- constant _KEY_fourthroot
-
-_KEY_fourthroot :: Int32
-_KEY_fourthroot = 16785948
--- constant _KEY_function
-
-_KEY_function :: Int32
-_KEY_function = 2294
--- constant _KEY_g
-
-_KEY_g :: Int32
-_KEY_g = 103
--- constant _KEY_gabovedot
-
-_KEY_gabovedot :: Int32
-_KEY_gabovedot = 757
--- constant _KEY_gbreve
-
-_KEY_gbreve :: Int32
-_KEY_gbreve = 699
--- constant _KEY_gcaron
-
-_KEY_gcaron :: Int32
-_KEY_gcaron = 16777703
--- constant _KEY_gcedilla
-
-_KEY_gcedilla :: Int32
-_KEY_gcedilla = 955
--- constant _KEY_gcircumflex
-
-_KEY_gcircumflex :: Int32
-_KEY_gcircumflex = 760
--- constant _KEY_grave
-
-_KEY_grave :: Int32
-_KEY_grave = 96
--- constant _KEY_greater
-
-_KEY_greater :: Int32
-_KEY_greater = 62
--- constant _KEY_greaterthanequal
-
-_KEY_greaterthanequal :: Int32
-_KEY_greaterthanequal = 2238
--- constant _KEY_guillemotleft
-
-_KEY_guillemotleft :: Int32
-_KEY_guillemotleft = 171
--- constant _KEY_guillemotright
-
-_KEY_guillemotright :: Int32
-_KEY_guillemotright = 187
--- constant _KEY_h
-
-_KEY_h :: Int32
-_KEY_h = 104
--- constant _KEY_hairspace
-
-_KEY_hairspace :: Int32
-_KEY_hairspace = 2728
--- constant _KEY_hcircumflex
-
-_KEY_hcircumflex :: Int32
-_KEY_hcircumflex = 694
--- constant _KEY_heart
-
-_KEY_heart :: Int32
-_KEY_heart = 2798
--- constant _KEY_hebrew_aleph
-
-_KEY_hebrew_aleph :: Int32
-_KEY_hebrew_aleph = 3296
--- constant _KEY_hebrew_ayin
-
-_KEY_hebrew_ayin :: Int32
-_KEY_hebrew_ayin = 3314
--- constant _KEY_hebrew_bet
-
-_KEY_hebrew_bet :: Int32
-_KEY_hebrew_bet = 3297
--- constant _KEY_hebrew_beth
-
-_KEY_hebrew_beth :: Int32
-_KEY_hebrew_beth = 3297
--- constant _KEY_hebrew_chet
-
-_KEY_hebrew_chet :: Int32
-_KEY_hebrew_chet = 3303
--- constant _KEY_hebrew_dalet
-
-_KEY_hebrew_dalet :: Int32
-_KEY_hebrew_dalet = 3299
--- constant _KEY_hebrew_daleth
-
-_KEY_hebrew_daleth :: Int32
-_KEY_hebrew_daleth = 3299
--- constant _KEY_hebrew_doublelowline
-
-_KEY_hebrew_doublelowline :: Int32
-_KEY_hebrew_doublelowline = 3295
--- constant _KEY_hebrew_finalkaph
-
-_KEY_hebrew_finalkaph :: Int32
-_KEY_hebrew_finalkaph = 3306
--- constant _KEY_hebrew_finalmem
-
-_KEY_hebrew_finalmem :: Int32
-_KEY_hebrew_finalmem = 3309
--- constant _KEY_hebrew_finalnun
-
-_KEY_hebrew_finalnun :: Int32
-_KEY_hebrew_finalnun = 3311
--- constant _KEY_hebrew_finalpe
-
-_KEY_hebrew_finalpe :: Int32
-_KEY_hebrew_finalpe = 3315
--- constant _KEY_hebrew_finalzade
-
-_KEY_hebrew_finalzade :: Int32
-_KEY_hebrew_finalzade = 3317
--- constant _KEY_hebrew_finalzadi
-
-_KEY_hebrew_finalzadi :: Int32
-_KEY_hebrew_finalzadi = 3317
--- constant _KEY_hebrew_gimel
-
-_KEY_hebrew_gimel :: Int32
-_KEY_hebrew_gimel = 3298
--- constant _KEY_hebrew_gimmel
-
-_KEY_hebrew_gimmel :: Int32
-_KEY_hebrew_gimmel = 3298
--- constant _KEY_hebrew_he
-
-_KEY_hebrew_he :: Int32
-_KEY_hebrew_he = 3300
--- constant _KEY_hebrew_het
-
-_KEY_hebrew_het :: Int32
-_KEY_hebrew_het = 3303
--- constant _KEY_hebrew_kaph
-
-_KEY_hebrew_kaph :: Int32
-_KEY_hebrew_kaph = 3307
--- constant _KEY_hebrew_kuf
-
-_KEY_hebrew_kuf :: Int32
-_KEY_hebrew_kuf = 3319
--- constant _KEY_hebrew_lamed
-
-_KEY_hebrew_lamed :: Int32
-_KEY_hebrew_lamed = 3308
--- constant _KEY_hebrew_mem
-
-_KEY_hebrew_mem :: Int32
-_KEY_hebrew_mem = 3310
--- constant _KEY_hebrew_nun
-
-_KEY_hebrew_nun :: Int32
-_KEY_hebrew_nun = 3312
--- constant _KEY_hebrew_pe
-
-_KEY_hebrew_pe :: Int32
-_KEY_hebrew_pe = 3316
--- constant _KEY_hebrew_qoph
-
-_KEY_hebrew_qoph :: Int32
-_KEY_hebrew_qoph = 3319
--- constant _KEY_hebrew_resh
-
-_KEY_hebrew_resh :: Int32
-_KEY_hebrew_resh = 3320
--- constant _KEY_hebrew_samech
-
-_KEY_hebrew_samech :: Int32
-_KEY_hebrew_samech = 3313
--- constant _KEY_hebrew_samekh
-
-_KEY_hebrew_samekh :: Int32
-_KEY_hebrew_samekh = 3313
--- constant _KEY_hebrew_shin
-
-_KEY_hebrew_shin :: Int32
-_KEY_hebrew_shin = 3321
--- constant _KEY_hebrew_taf
-
-_KEY_hebrew_taf :: Int32
-_KEY_hebrew_taf = 3322
--- constant _KEY_hebrew_taw
-
-_KEY_hebrew_taw :: Int32
-_KEY_hebrew_taw = 3322
--- constant _KEY_hebrew_tet
-
-_KEY_hebrew_tet :: Int32
-_KEY_hebrew_tet = 3304
--- constant _KEY_hebrew_teth
-
-_KEY_hebrew_teth :: Int32
-_KEY_hebrew_teth = 3304
--- constant _KEY_hebrew_waw
-
-_KEY_hebrew_waw :: Int32
-_KEY_hebrew_waw = 3301
--- constant _KEY_hebrew_yod
-
-_KEY_hebrew_yod :: Int32
-_KEY_hebrew_yod = 3305
--- constant _KEY_hebrew_zade
-
-_KEY_hebrew_zade :: Int32
-_KEY_hebrew_zade = 3318
--- constant _KEY_hebrew_zadi
-
-_KEY_hebrew_zadi :: Int32
-_KEY_hebrew_zadi = 3318
--- constant _KEY_hebrew_zain
-
-_KEY_hebrew_zain :: Int32
-_KEY_hebrew_zain = 3302
--- constant _KEY_hebrew_zayin
-
-_KEY_hebrew_zayin :: Int32
-_KEY_hebrew_zayin = 3302
--- constant _KEY_hexagram
-
-_KEY_hexagram :: Int32
-_KEY_hexagram = 2778
--- constant _KEY_horizconnector
-
-_KEY_horizconnector :: Int32
-_KEY_horizconnector = 2211
--- constant _KEY_horizlinescan1
-
-_KEY_horizlinescan1 :: Int32
-_KEY_horizlinescan1 = 2543
--- constant _KEY_horizlinescan3
-
-_KEY_horizlinescan3 :: Int32
-_KEY_horizlinescan3 = 2544
--- constant _KEY_horizlinescan5
-
-_KEY_horizlinescan5 :: Int32
-_KEY_horizlinescan5 = 2545
--- constant _KEY_horizlinescan7
-
-_KEY_horizlinescan7 :: Int32
-_KEY_horizlinescan7 = 2546
--- constant _KEY_horizlinescan9
-
-_KEY_horizlinescan9 :: Int32
-_KEY_horizlinescan9 = 2547
--- constant _KEY_hstroke
-
-_KEY_hstroke :: Int32
-_KEY_hstroke = 689
--- constant _KEY_ht
-
-_KEY_ht :: Int32
-_KEY_ht = 2530
--- constant _KEY_hyphen
-
-_KEY_hyphen :: Int32
-_KEY_hyphen = 173
--- constant _KEY_i
-
-_KEY_i :: Int32
-_KEY_i = 105
--- constant _KEY_iTouch
-
-_KEY_iTouch :: Int32
-_KEY_iTouch = 269025120
--- constant _KEY_iacute
-
-_KEY_iacute :: Int32
-_KEY_iacute = 237
--- constant _KEY_ibelowdot
-
-_KEY_ibelowdot :: Int32
-_KEY_ibelowdot = 16785099
--- constant _KEY_ibreve
-
-_KEY_ibreve :: Int32
-_KEY_ibreve = 16777517
--- constant _KEY_icircumflex
-
-_KEY_icircumflex :: Int32
-_KEY_icircumflex = 238
--- constant _KEY_identical
-
-_KEY_identical :: Int32
-_KEY_identical = 2255
--- constant _KEY_idiaeresis
-
-_KEY_idiaeresis :: Int32
-_KEY_idiaeresis = 239
--- constant _KEY_idotless
-
-_KEY_idotless :: Int32
-_KEY_idotless = 697
--- constant _KEY_ifonlyif
-
-_KEY_ifonlyif :: Int32
-_KEY_ifonlyif = 2253
--- constant _KEY_igrave
-
-_KEY_igrave :: Int32
-_KEY_igrave = 236
--- constant _KEY_ihook
-
-_KEY_ihook :: Int32
-_KEY_ihook = 16785097
--- constant _KEY_imacron
-
-_KEY_imacron :: Int32
-_KEY_imacron = 1007
--- constant _KEY_implies
-
-_KEY_implies :: Int32
-_KEY_implies = 2254
--- constant _KEY_includedin
-
-_KEY_includedin :: Int32
-_KEY_includedin = 2266
--- constant _KEY_includes
-
-_KEY_includes :: Int32
-_KEY_includes = 2267
--- constant _KEY_infinity
-
-_KEY_infinity :: Int32
-_KEY_infinity = 2242
--- constant _KEY_integral
-
-_KEY_integral :: Int32
-_KEY_integral = 2239
--- constant _KEY_intersection
-
-_KEY_intersection :: Int32
-_KEY_intersection = 2268
--- constant _KEY_iogonek
-
-_KEY_iogonek :: Int32
-_KEY_iogonek = 999
--- constant _KEY_itilde
-
-_KEY_itilde :: Int32
-_KEY_itilde = 949
--- constant _KEY_j
-
-_KEY_j :: Int32
-_KEY_j = 106
--- constant _KEY_jcircumflex
-
-_KEY_jcircumflex :: Int32
-_KEY_jcircumflex = 700
--- constant _KEY_jot
-
-_KEY_jot :: Int32
-_KEY_jot = 3018
--- constant _KEY_k
-
-_KEY_k :: Int32
-_KEY_k = 107
--- constant _KEY_kana_A
-
-_KEY_kana_A :: Int32
-_KEY_kana_A = 1201
--- constant _KEY_kana_CHI
-
-_KEY_kana_CHI :: Int32
-_KEY_kana_CHI = 1217
--- constant _KEY_kana_E
-
-_KEY_kana_E :: Int32
-_KEY_kana_E = 1204
--- constant _KEY_kana_FU
-
-_KEY_kana_FU :: Int32
-_KEY_kana_FU = 1228
--- constant _KEY_kana_HA
-
-_KEY_kana_HA :: Int32
-_KEY_kana_HA = 1226
--- constant _KEY_kana_HE
-
-_KEY_kana_HE :: Int32
-_KEY_kana_HE = 1229
--- constant _KEY_kana_HI
-
-_KEY_kana_HI :: Int32
-_KEY_kana_HI = 1227
--- constant _KEY_kana_HO
-
-_KEY_kana_HO :: Int32
-_KEY_kana_HO = 1230
--- constant _KEY_kana_HU
-
-_KEY_kana_HU :: Int32
-_KEY_kana_HU = 1228
--- constant _KEY_kana_I
-
-_KEY_kana_I :: Int32
-_KEY_kana_I = 1202
--- constant _KEY_kana_KA
-
-_KEY_kana_KA :: Int32
-_KEY_kana_KA = 1206
--- constant _KEY_kana_KE
-
-_KEY_kana_KE :: Int32
-_KEY_kana_KE = 1209
--- constant _KEY_kana_KI
-
-_KEY_kana_KI :: Int32
-_KEY_kana_KI = 1207
--- constant _KEY_kana_KO
-
-_KEY_kana_KO :: Int32
-_KEY_kana_KO = 1210
--- constant _KEY_kana_KU
-
-_KEY_kana_KU :: Int32
-_KEY_kana_KU = 1208
--- constant _KEY_kana_MA
-
-_KEY_kana_MA :: Int32
-_KEY_kana_MA = 1231
--- constant _KEY_kana_ME
-
-_KEY_kana_ME :: Int32
-_KEY_kana_ME = 1234
--- constant _KEY_kana_MI
-
-_KEY_kana_MI :: Int32
-_KEY_kana_MI = 1232
--- constant _KEY_kana_MO
-
-_KEY_kana_MO :: Int32
-_KEY_kana_MO = 1235
--- constant _KEY_kana_MU
-
-_KEY_kana_MU :: Int32
-_KEY_kana_MU = 1233
--- constant _KEY_kana_N
-
-_KEY_kana_N :: Int32
-_KEY_kana_N = 1245
--- constant _KEY_kana_NA
-
-_KEY_kana_NA :: Int32
-_KEY_kana_NA = 1221
--- constant _KEY_kana_NE
-
-_KEY_kana_NE :: Int32
-_KEY_kana_NE = 1224
--- constant _KEY_kana_NI
-
-_KEY_kana_NI :: Int32
-_KEY_kana_NI = 1222
--- constant _KEY_kana_NO
-
-_KEY_kana_NO :: Int32
-_KEY_kana_NO = 1225
--- constant _KEY_kana_NU
-
-_KEY_kana_NU :: Int32
-_KEY_kana_NU = 1223
--- constant _KEY_kana_O
-
-_KEY_kana_O :: Int32
-_KEY_kana_O = 1205
--- constant _KEY_kana_RA
-
-_KEY_kana_RA :: Int32
-_KEY_kana_RA = 1239
--- constant _KEY_kana_RE
-
-_KEY_kana_RE :: Int32
-_KEY_kana_RE = 1242
--- constant _KEY_kana_RI
-
-_KEY_kana_RI :: Int32
-_KEY_kana_RI = 1240
--- constant _KEY_kana_RO
-
-_KEY_kana_RO :: Int32
-_KEY_kana_RO = 1243
--- constant _KEY_kana_RU
-
-_KEY_kana_RU :: Int32
-_KEY_kana_RU = 1241
--- constant _KEY_kana_SA
-
-_KEY_kana_SA :: Int32
-_KEY_kana_SA = 1211
--- constant _KEY_kana_SE
-
-_KEY_kana_SE :: Int32
-_KEY_kana_SE = 1214
--- constant _KEY_kana_SHI
-
-_KEY_kana_SHI :: Int32
-_KEY_kana_SHI = 1212
--- constant _KEY_kana_SO
-
-_KEY_kana_SO :: Int32
-_KEY_kana_SO = 1215
--- constant _KEY_kana_SU
-
-_KEY_kana_SU :: Int32
-_KEY_kana_SU = 1213
--- constant _KEY_kana_TA
-
-_KEY_kana_TA :: Int32
-_KEY_kana_TA = 1216
--- constant _KEY_kana_TE
-
-_KEY_kana_TE :: Int32
-_KEY_kana_TE = 1219
--- constant _KEY_kana_TI
-
-_KEY_kana_TI :: Int32
-_KEY_kana_TI = 1217
--- constant _KEY_kana_TO
-
-_KEY_kana_TO :: Int32
-_KEY_kana_TO = 1220
--- constant _KEY_kana_TSU
-
-_KEY_kana_TSU :: Int32
-_KEY_kana_TSU = 1218
--- constant _KEY_kana_TU
-
-_KEY_kana_TU :: Int32
-_KEY_kana_TU = 1218
--- constant _KEY_kana_U
-
-_KEY_kana_U :: Int32
-_KEY_kana_U = 1203
--- constant _KEY_kana_WA
-
-_KEY_kana_WA :: Int32
-_KEY_kana_WA = 1244
--- constant _KEY_kana_WO
-
-_KEY_kana_WO :: Int32
-_KEY_kana_WO = 1190
--- constant _KEY_kana_YA
-
-_KEY_kana_YA :: Int32
-_KEY_kana_YA = 1236
--- constant _KEY_kana_YO
-
-_KEY_kana_YO :: Int32
-_KEY_kana_YO = 1238
--- constant _KEY_kana_YU
-
-_KEY_kana_YU :: Int32
-_KEY_kana_YU = 1237
--- constant _KEY_kana_a
-
-_KEY_kana_a :: Int32
-_KEY_kana_a = 1191
--- constant _KEY_kana_closingbracket
-
-_KEY_kana_closingbracket :: Int32
-_KEY_kana_closingbracket = 1187
--- constant _KEY_kana_comma
-
-_KEY_kana_comma :: Int32
-_KEY_kana_comma = 1188
--- constant _KEY_kana_conjunctive
-
-_KEY_kana_conjunctive :: Int32
-_KEY_kana_conjunctive = 1189
--- constant _KEY_kana_e
-
-_KEY_kana_e :: Int32
-_KEY_kana_e = 1194
--- constant _KEY_kana_fullstop
-
-_KEY_kana_fullstop :: Int32
-_KEY_kana_fullstop = 1185
--- constant _KEY_kana_i
-
-_KEY_kana_i :: Int32
-_KEY_kana_i = 1192
--- constant _KEY_kana_middledot
-
-_KEY_kana_middledot :: Int32
-_KEY_kana_middledot = 1189
--- constant _KEY_kana_o
-
-_KEY_kana_o :: Int32
-_KEY_kana_o = 1195
--- constant _KEY_kana_openingbracket
-
-_KEY_kana_openingbracket :: Int32
-_KEY_kana_openingbracket = 1186
--- constant _KEY_kana_switch
-
-_KEY_kana_switch :: Int32
-_KEY_kana_switch = 65406
--- constant _KEY_kana_tsu
-
-_KEY_kana_tsu :: Int32
-_KEY_kana_tsu = 1199
--- constant _KEY_kana_tu
-
-_KEY_kana_tu :: Int32
-_KEY_kana_tu = 1199
--- constant _KEY_kana_u
-
-_KEY_kana_u :: Int32
-_KEY_kana_u = 1193
--- constant _KEY_kana_ya
-
-_KEY_kana_ya :: Int32
-_KEY_kana_ya = 1196
--- constant _KEY_kana_yo
-
-_KEY_kana_yo :: Int32
-_KEY_kana_yo = 1198
--- constant _KEY_kana_yu
-
-_KEY_kana_yu :: Int32
-_KEY_kana_yu = 1197
--- constant _KEY_kappa
-
-_KEY_kappa :: Int32
-_KEY_kappa = 930
--- constant _KEY_kcedilla
-
-_KEY_kcedilla :: Int32
-_KEY_kcedilla = 1011
--- constant _KEY_kra
-
-_KEY_kra :: Int32
-_KEY_kra = 930
--- constant _KEY_l
-
-_KEY_l :: Int32
-_KEY_l = 108
--- constant _KEY_lacute
-
-_KEY_lacute :: Int32
-_KEY_lacute = 485
--- constant _KEY_latincross
-
-_KEY_latincross :: Int32
-_KEY_latincross = 2777
--- constant _KEY_lbelowdot
-
-_KEY_lbelowdot :: Int32
-_KEY_lbelowdot = 16784951
--- constant _KEY_lcaron
-
-_KEY_lcaron :: Int32
-_KEY_lcaron = 437
--- constant _KEY_lcedilla
-
-_KEY_lcedilla :: Int32
-_KEY_lcedilla = 950
--- constant _KEY_leftanglebracket
-
-_KEY_leftanglebracket :: Int32
-_KEY_leftanglebracket = 2748
--- constant _KEY_leftarrow
-
-_KEY_leftarrow :: Int32
-_KEY_leftarrow = 2299
--- constant _KEY_leftcaret
-
-_KEY_leftcaret :: Int32
-_KEY_leftcaret = 2979
--- constant _KEY_leftdoublequotemark
-
-_KEY_leftdoublequotemark :: Int32
-_KEY_leftdoublequotemark = 2770
--- constant _KEY_leftmiddlecurlybrace
-
-_KEY_leftmiddlecurlybrace :: Int32
-_KEY_leftmiddlecurlybrace = 2223
--- constant _KEY_leftopentriangle
-
-_KEY_leftopentriangle :: Int32
-_KEY_leftopentriangle = 2764
--- constant _KEY_leftpointer
-
-_KEY_leftpointer :: Int32
-_KEY_leftpointer = 2794
--- constant _KEY_leftradical
-
-_KEY_leftradical :: Int32
-_KEY_leftradical = 2209
--- constant _KEY_leftshoe
-
-_KEY_leftshoe :: Int32
-_KEY_leftshoe = 3034
--- constant _KEY_leftsinglequotemark
-
-_KEY_leftsinglequotemark :: Int32
-_KEY_leftsinglequotemark = 2768
--- constant _KEY_leftt
-
-_KEY_leftt :: Int32
-_KEY_leftt = 2548
--- constant _KEY_lefttack
-
-_KEY_lefttack :: Int32
-_KEY_lefttack = 3036
--- constant _KEY_less
-
-_KEY_less :: Int32
-_KEY_less = 60
--- constant _KEY_lessthanequal
-
-_KEY_lessthanequal :: Int32
-_KEY_lessthanequal = 2236
--- constant _KEY_lf
-
-_KEY_lf :: Int32
-_KEY_lf = 2533
--- constant _KEY_logicaland
-
-_KEY_logicaland :: Int32
-_KEY_logicaland = 2270
--- constant _KEY_logicalor
-
-_KEY_logicalor :: Int32
-_KEY_logicalor = 2271
--- constant _KEY_lowleftcorner
-
-_KEY_lowleftcorner :: Int32
-_KEY_lowleftcorner = 2541
--- constant _KEY_lowrightcorner
-
-_KEY_lowrightcorner :: Int32
-_KEY_lowrightcorner = 2538
--- constant _KEY_lstroke
-
-_KEY_lstroke :: Int32
-_KEY_lstroke = 435
--- constant _KEY_m
-
-_KEY_m :: Int32
-_KEY_m = 109
--- constant _KEY_mabovedot
-
-_KEY_mabovedot :: Int32
-_KEY_mabovedot = 16784961
--- constant _KEY_macron
-
-_KEY_macron :: Int32
-_KEY_macron = 175
--- constant _KEY_malesymbol
-
-_KEY_malesymbol :: Int32
-_KEY_malesymbol = 2807
--- constant _KEY_maltesecross
-
-_KEY_maltesecross :: Int32
-_KEY_maltesecross = 2800
--- constant _KEY_marker
-
-_KEY_marker :: Int32
-_KEY_marker = 2751
--- constant _KEY_masculine
-
-_KEY_masculine :: Int32
-_KEY_masculine = 186
--- constant _KEY_minus
-
-_KEY_minus :: Int32
-_KEY_minus = 45
--- constant _KEY_minutes
-
-_KEY_minutes :: Int32
-_KEY_minutes = 2774
--- constant _KEY_mu
-
-_KEY_mu :: Int32
-_KEY_mu = 181
--- constant _KEY_multiply
-
-_KEY_multiply :: Int32
-_KEY_multiply = 215
--- constant _KEY_musicalflat
-
-_KEY_musicalflat :: Int32
-_KEY_musicalflat = 2806
--- constant _KEY_musicalsharp
-
-_KEY_musicalsharp :: Int32
-_KEY_musicalsharp = 2805
--- constant _KEY_n
-
-_KEY_n :: Int32
-_KEY_n = 110
--- constant _KEY_nabla
-
-_KEY_nabla :: Int32
-_KEY_nabla = 2245
--- constant _KEY_nacute
-
-_KEY_nacute :: Int32
-_KEY_nacute = 497
--- constant _KEY_ncaron
-
-_KEY_ncaron :: Int32
-_KEY_ncaron = 498
--- constant _KEY_ncedilla
-
-_KEY_ncedilla :: Int32
-_KEY_ncedilla = 1009
--- constant _KEY_ninesubscript
-
-_KEY_ninesubscript :: Int32
-_KEY_ninesubscript = 16785545
--- constant _KEY_ninesuperior
-
-_KEY_ninesuperior :: Int32
-_KEY_ninesuperior = 16785529
--- constant _KEY_nl
-
-_KEY_nl :: Int32
-_KEY_nl = 2536
--- constant _KEY_nobreakspace
-
-_KEY_nobreakspace :: Int32
-_KEY_nobreakspace = 160
--- constant _KEY_notapproxeq
-
-_KEY_notapproxeq :: Int32
-_KEY_notapproxeq = 16785991
--- constant _KEY_notelementof
-
-_KEY_notelementof :: Int32
-_KEY_notelementof = 16785929
--- constant _KEY_notequal
-
-_KEY_notequal :: Int32
-_KEY_notequal = 2237
--- constant _KEY_notidentical
-
-_KEY_notidentical :: Int32
-_KEY_notidentical = 16786018
--- constant _KEY_notsign
-
-_KEY_notsign :: Int32
-_KEY_notsign = 172
--- constant _KEY_ntilde
-
-_KEY_ntilde :: Int32
-_KEY_ntilde = 241
--- constant _KEY_numbersign
-
-_KEY_numbersign :: Int32
-_KEY_numbersign = 35
--- constant _KEY_numerosign
-
-_KEY_numerosign :: Int32
-_KEY_numerosign = 1712
--- constant _KEY_o
-
-_KEY_o :: Int32
-_KEY_o = 111
--- constant _KEY_oacute
-
-_KEY_oacute :: Int32
-_KEY_oacute = 243
--- constant _KEY_obarred
-
-_KEY_obarred :: Int32
-_KEY_obarred = 16777845
--- constant _KEY_obelowdot
-
-_KEY_obelowdot :: Int32
-_KEY_obelowdot = 16785101
--- constant _KEY_ocaron
-
-_KEY_ocaron :: Int32
-_KEY_ocaron = 16777682
--- constant _KEY_ocircumflex
-
-_KEY_ocircumflex :: Int32
-_KEY_ocircumflex = 244
--- constant _KEY_ocircumflexacute
-
-_KEY_ocircumflexacute :: Int32
-_KEY_ocircumflexacute = 16785105
--- constant _KEY_ocircumflexbelowdot
-
-_KEY_ocircumflexbelowdot :: Int32
-_KEY_ocircumflexbelowdot = 16785113
--- constant _KEY_ocircumflexgrave
-
-_KEY_ocircumflexgrave :: Int32
-_KEY_ocircumflexgrave = 16785107
--- constant _KEY_ocircumflexhook
-
-_KEY_ocircumflexhook :: Int32
-_KEY_ocircumflexhook = 16785109
--- constant _KEY_ocircumflextilde
-
-_KEY_ocircumflextilde :: Int32
-_KEY_ocircumflextilde = 16785111
--- constant _KEY_odiaeresis
-
-_KEY_odiaeresis :: Int32
-_KEY_odiaeresis = 246
--- constant _KEY_odoubleacute
-
-_KEY_odoubleacute :: Int32
-_KEY_odoubleacute = 501
--- constant _KEY_oe
-
-_KEY_oe :: Int32
-_KEY_oe = 5053
--- constant _KEY_ogonek
-
-_KEY_ogonek :: Int32
-_KEY_ogonek = 434
--- constant _KEY_ograve
-
-_KEY_ograve :: Int32
-_KEY_ograve = 242
--- constant _KEY_ohook
-
-_KEY_ohook :: Int32
-_KEY_ohook = 16785103
--- constant _KEY_ohorn
-
-_KEY_ohorn :: Int32
-_KEY_ohorn = 16777633
--- constant _KEY_ohornacute
-
-_KEY_ohornacute :: Int32
-_KEY_ohornacute = 16785115
--- constant _KEY_ohornbelowdot
-
-_KEY_ohornbelowdot :: Int32
-_KEY_ohornbelowdot = 16785123
--- constant _KEY_ohorngrave
-
-_KEY_ohorngrave :: Int32
-_KEY_ohorngrave = 16785117
--- constant _KEY_ohornhook
-
-_KEY_ohornhook :: Int32
-_KEY_ohornhook = 16785119
--- constant _KEY_ohorntilde
-
-_KEY_ohorntilde :: Int32
-_KEY_ohorntilde = 16785121
--- constant _KEY_omacron
-
-_KEY_omacron :: Int32
-_KEY_omacron = 1010
--- constant _KEY_oneeighth
-
-_KEY_oneeighth :: Int32
-_KEY_oneeighth = 2755
--- constant _KEY_onefifth
-
-_KEY_onefifth :: Int32
-_KEY_onefifth = 2738
--- constant _KEY_onehalf
-
-_KEY_onehalf :: Int32
-_KEY_onehalf = 189
--- constant _KEY_onequarter
-
-_KEY_onequarter :: Int32
-_KEY_onequarter = 188
--- constant _KEY_onesixth
-
-_KEY_onesixth :: Int32
-_KEY_onesixth = 2742
--- constant _KEY_onesubscript
-
-_KEY_onesubscript :: Int32
-_KEY_onesubscript = 16785537
--- constant _KEY_onesuperior
-
-_KEY_onesuperior :: Int32
-_KEY_onesuperior = 185
--- constant _KEY_onethird
-
-_KEY_onethird :: Int32
-_KEY_onethird = 2736
--- constant _KEY_ooblique
-
-_KEY_ooblique :: Int32
-_KEY_ooblique = 248
--- constant _KEY_openrectbullet
-
-_KEY_openrectbullet :: Int32
-_KEY_openrectbullet = 2786
--- constant _KEY_openstar
-
-_KEY_openstar :: Int32
-_KEY_openstar = 2789
--- constant _KEY_opentribulletdown
-
-_KEY_opentribulletdown :: Int32
-_KEY_opentribulletdown = 2788
--- constant _KEY_opentribulletup
-
-_KEY_opentribulletup :: Int32
-_KEY_opentribulletup = 2787
--- constant _KEY_ordfeminine
-
-_KEY_ordfeminine :: Int32
-_KEY_ordfeminine = 170
--- constant _KEY_oslash
-
-_KEY_oslash :: Int32
-_KEY_oslash = 248
--- constant _KEY_otilde
-
-_KEY_otilde :: Int32
-_KEY_otilde = 245
--- constant _KEY_overbar
-
-_KEY_overbar :: Int32
-_KEY_overbar = 3008
--- constant _KEY_overline
-
-_KEY_overline :: Int32
-_KEY_overline = 1150
--- constant _KEY_p
-
-_KEY_p :: Int32
-_KEY_p = 112
--- constant _KEY_pabovedot
-
-_KEY_pabovedot :: Int32
-_KEY_pabovedot = 16784983
--- constant _KEY_paragraph
-
-_KEY_paragraph :: Int32
-_KEY_paragraph = 182
--- constant _KEY_parenleft
-
-_KEY_parenleft :: Int32
-_KEY_parenleft = 40
--- constant _KEY_parenright
-
-_KEY_parenright :: Int32
-_KEY_parenright = 41
--- constant _KEY_partdifferential
-
-_KEY_partdifferential :: Int32
-_KEY_partdifferential = 16785922
--- constant _KEY_partialderivative
-
-_KEY_partialderivative :: Int32
-_KEY_partialderivative = 2287
--- constant _KEY_percent
-
-_KEY_percent :: Int32
-_KEY_percent = 37
--- constant _KEY_period
-
-_KEY_period :: Int32
-_KEY_period = 46
--- constant _KEY_periodcentered
-
-_KEY_periodcentered :: Int32
-_KEY_periodcentered = 183
--- constant _KEY_permille
-
-_KEY_permille :: Int32
-_KEY_permille = 2773
--- constant _KEY_phonographcopyright
-
-_KEY_phonographcopyright :: Int32
-_KEY_phonographcopyright = 2811
--- constant _KEY_plus
-
-_KEY_plus :: Int32
-_KEY_plus = 43
--- constant _KEY_plusminus
-
-_KEY_plusminus :: Int32
-_KEY_plusminus = 177
--- constant _KEY_prescription
-
-_KEY_prescription :: Int32
-_KEY_prescription = 2772
--- constant _KEY_prolongedsound
-
-_KEY_prolongedsound :: Int32
-_KEY_prolongedsound = 1200
--- constant _KEY_punctspace
-
-_KEY_punctspace :: Int32
-_KEY_punctspace = 2726
--- constant _KEY_q
-
-_KEY_q :: Int32
-_KEY_q = 113
--- constant _KEY_quad
-
-_KEY_quad :: Int32
-_KEY_quad = 3020
--- constant _KEY_question
-
-_KEY_question :: Int32
-_KEY_question = 63
--- constant _KEY_questiondown
-
-_KEY_questiondown :: Int32
-_KEY_questiondown = 191
--- constant _KEY_quotedbl
-
-_KEY_quotedbl :: Int32
-_KEY_quotedbl = 34
--- constant _KEY_quoteleft
-
-_KEY_quoteleft :: Int32
-_KEY_quoteleft = 96
--- constant _KEY_quoteright
-
-_KEY_quoteright :: Int32
-_KEY_quoteright = 39
--- constant _KEY_r
-
-_KEY_r :: Int32
-_KEY_r = 114
--- constant _KEY_racute
-
-_KEY_racute :: Int32
-_KEY_racute = 480
--- constant _KEY_radical
-
-_KEY_radical :: Int32
-_KEY_radical = 2262
--- constant _KEY_rcaron
-
-_KEY_rcaron :: Int32
-_KEY_rcaron = 504
--- constant _KEY_rcedilla
-
-_KEY_rcedilla :: Int32
-_KEY_rcedilla = 947
--- constant _KEY_registered
-
-_KEY_registered :: Int32
-_KEY_registered = 174
--- constant _KEY_rightanglebracket
-
-_KEY_rightanglebracket :: Int32
-_KEY_rightanglebracket = 2750
--- constant _KEY_rightarrow
-
-_KEY_rightarrow :: Int32
-_KEY_rightarrow = 2301
--- constant _KEY_rightcaret
-
-_KEY_rightcaret :: Int32
-_KEY_rightcaret = 2982
--- constant _KEY_rightdoublequotemark
-
-_KEY_rightdoublequotemark :: Int32
-_KEY_rightdoublequotemark = 2771
--- constant _KEY_rightmiddlecurlybrace
-
-_KEY_rightmiddlecurlybrace :: Int32
-_KEY_rightmiddlecurlybrace = 2224
--- constant _KEY_rightmiddlesummation
-
-_KEY_rightmiddlesummation :: Int32
-_KEY_rightmiddlesummation = 2231
--- constant _KEY_rightopentriangle
-
-_KEY_rightopentriangle :: Int32
-_KEY_rightopentriangle = 2765
--- constant _KEY_rightpointer
-
-_KEY_rightpointer :: Int32
-_KEY_rightpointer = 2795
--- constant _KEY_rightshoe
-
-_KEY_rightshoe :: Int32
-_KEY_rightshoe = 3032
--- constant _KEY_rightsinglequotemark
-
-_KEY_rightsinglequotemark :: Int32
-_KEY_rightsinglequotemark = 2769
--- constant _KEY_rightt
-
-_KEY_rightt :: Int32
-_KEY_rightt = 2549
--- constant _KEY_righttack
-
-_KEY_righttack :: Int32
-_KEY_righttack = 3068
--- constant _KEY_s
-
-_KEY_s :: Int32
-_KEY_s = 115
--- constant _KEY_sabovedot
-
-_KEY_sabovedot :: Int32
-_KEY_sabovedot = 16784993
--- constant _KEY_sacute
-
-_KEY_sacute :: Int32
-_KEY_sacute = 438
--- constant _KEY_scaron
-
-_KEY_scaron :: Int32
-_KEY_scaron = 441
--- constant _KEY_scedilla
-
-_KEY_scedilla :: Int32
-_KEY_scedilla = 442
--- constant _KEY_schwa
-
-_KEY_schwa :: Int32
-_KEY_schwa = 16777817
--- constant _KEY_scircumflex
-
-_KEY_scircumflex :: Int32
-_KEY_scircumflex = 766
--- constant _KEY_script_switch
-
-_KEY_script_switch :: Int32
-_KEY_script_switch = 65406
--- constant _KEY_seconds
-
-_KEY_seconds :: Int32
-_KEY_seconds = 2775
--- constant _KEY_section
-
-_KEY_section :: Int32
-_KEY_section = 167
--- constant _KEY_semicolon
-
-_KEY_semicolon :: Int32
-_KEY_semicolon = 59
--- constant _KEY_semivoicedsound
-
-_KEY_semivoicedsound :: Int32
-_KEY_semivoicedsound = 1247
--- constant _KEY_seveneighths
-
-_KEY_seveneighths :: Int32
-_KEY_seveneighths = 2758
--- constant _KEY_sevensubscript
-
-_KEY_sevensubscript :: Int32
-_KEY_sevensubscript = 16785543
--- constant _KEY_sevensuperior
-
-_KEY_sevensuperior :: Int32
-_KEY_sevensuperior = 16785527
--- constant _KEY_signaturemark
-
-_KEY_signaturemark :: Int32
-_KEY_signaturemark = 2762
--- constant _KEY_signifblank
-
-_KEY_signifblank :: Int32
-_KEY_signifblank = 2732
--- constant _KEY_similarequal
-
-_KEY_similarequal :: Int32
-_KEY_similarequal = 2249
--- constant _KEY_singlelowquotemark
-
-_KEY_singlelowquotemark :: Int32
-_KEY_singlelowquotemark = 2813
--- constant _KEY_sixsubscript
-
-_KEY_sixsubscript :: Int32
-_KEY_sixsubscript = 16785542
--- constant _KEY_sixsuperior
-
-_KEY_sixsuperior :: Int32
-_KEY_sixsuperior = 16785526
--- constant _KEY_slash
-
-_KEY_slash :: Int32
-_KEY_slash = 47
--- constant _KEY_soliddiamond
-
-_KEY_soliddiamond :: Int32
-_KEY_soliddiamond = 2528
--- constant _KEY_space
-
-_KEY_space :: Int32
-_KEY_space = 32
--- constant _KEY_squareroot
-
-_KEY_squareroot :: Int32
-_KEY_squareroot = 16785946
--- constant _KEY_ssharp
-
-_KEY_ssharp :: Int32
-_KEY_ssharp = 223
--- constant _KEY_sterling
-
-_KEY_sterling :: Int32
-_KEY_sterling = 163
--- constant _KEY_stricteq
-
-_KEY_stricteq :: Int32
-_KEY_stricteq = 16786019
--- constant _KEY_t
-
-_KEY_t :: Int32
-_KEY_t = 116
--- constant _KEY_tabovedot
-
-_KEY_tabovedot :: Int32
-_KEY_tabovedot = 16785003
--- constant _KEY_tcaron
-
-_KEY_tcaron :: Int32
-_KEY_tcaron = 443
--- constant _KEY_tcedilla
-
-_KEY_tcedilla :: Int32
-_KEY_tcedilla = 510
--- constant _KEY_telephone
-
-_KEY_telephone :: Int32
-_KEY_telephone = 2809
--- constant _KEY_telephonerecorder
-
-_KEY_telephonerecorder :: Int32
-_KEY_telephonerecorder = 2810
--- constant _KEY_therefore
-
-_KEY_therefore :: Int32
-_KEY_therefore = 2240
--- constant _KEY_thinspace
-
-_KEY_thinspace :: Int32
-_KEY_thinspace = 2727
--- constant _KEY_thorn
-
-_KEY_thorn :: Int32
-_KEY_thorn = 254
--- constant _KEY_threeeighths
-
-_KEY_threeeighths :: Int32
-_KEY_threeeighths = 2756
--- constant _KEY_threefifths
-
-_KEY_threefifths :: Int32
-_KEY_threefifths = 2740
--- constant _KEY_threequarters
-
-_KEY_threequarters :: Int32
-_KEY_threequarters = 190
--- constant _KEY_threesubscript
-
-_KEY_threesubscript :: Int32
-_KEY_threesubscript = 16785539
--- constant _KEY_threesuperior
-
-_KEY_threesuperior :: Int32
-_KEY_threesuperior = 179
--- constant _KEY_tintegral
-
-_KEY_tintegral :: Int32
-_KEY_tintegral = 16785965
--- constant _KEY_topintegral
-
-_KEY_topintegral :: Int32
-_KEY_topintegral = 2212
--- constant _KEY_topleftparens
-
-_KEY_topleftparens :: Int32
-_KEY_topleftparens = 2219
--- constant _KEY_topleftradical
-
-_KEY_topleftradical :: Int32
-_KEY_topleftradical = 2210
--- constant _KEY_topleftsqbracket
-
-_KEY_topleftsqbracket :: Int32
-_KEY_topleftsqbracket = 2215
--- constant _KEY_topleftsummation
-
-_KEY_topleftsummation :: Int32
-_KEY_topleftsummation = 2225
--- constant _KEY_toprightparens
-
-_KEY_toprightparens :: Int32
-_KEY_toprightparens = 2221
--- constant _KEY_toprightsqbracket
-
-_KEY_toprightsqbracket :: Int32
-_KEY_toprightsqbracket = 2217
--- constant _KEY_toprightsummation
-
-_KEY_toprightsummation :: Int32
-_KEY_toprightsummation = 2229
--- constant _KEY_topt
-
-_KEY_topt :: Int32
-_KEY_topt = 2551
--- constant _KEY_topvertsummationconnector
-
-_KEY_topvertsummationconnector :: Int32
-_KEY_topvertsummationconnector = 2227
--- constant _KEY_trademark
-
-_KEY_trademark :: Int32
-_KEY_trademark = 2761
--- constant _KEY_trademarkincircle
-
-_KEY_trademarkincircle :: Int32
-_KEY_trademarkincircle = 2763
--- constant _KEY_tslash
-
-_KEY_tslash :: Int32
-_KEY_tslash = 956
--- constant _KEY_twofifths
-
-_KEY_twofifths :: Int32
-_KEY_twofifths = 2739
--- constant _KEY_twosubscript
-
-_KEY_twosubscript :: Int32
-_KEY_twosubscript = 16785538
--- constant _KEY_twosuperior
-
-_KEY_twosuperior :: Int32
-_KEY_twosuperior = 178
--- constant _KEY_twothirds
-
-_KEY_twothirds :: Int32
-_KEY_twothirds = 2737
--- constant _KEY_u
-
-_KEY_u :: Int32
-_KEY_u = 117
--- constant _KEY_uacute
-
-_KEY_uacute :: Int32
-_KEY_uacute = 250
--- constant _KEY_ubelowdot
-
-_KEY_ubelowdot :: Int32
-_KEY_ubelowdot = 16785125
--- constant _KEY_ubreve
-
-_KEY_ubreve :: Int32
-_KEY_ubreve = 765
--- constant _KEY_ucircumflex
-
-_KEY_ucircumflex :: Int32
-_KEY_ucircumflex = 251
--- constant _KEY_udiaeresis
-
-_KEY_udiaeresis :: Int32
-_KEY_udiaeresis = 252
--- constant _KEY_udoubleacute
-
-_KEY_udoubleacute :: Int32
-_KEY_udoubleacute = 507
--- constant _KEY_ugrave
-
-_KEY_ugrave :: Int32
-_KEY_ugrave = 249
--- constant _KEY_uhook
-
-_KEY_uhook :: Int32
-_KEY_uhook = 16785127
--- constant _KEY_uhorn
-
-_KEY_uhorn :: Int32
-_KEY_uhorn = 16777648
--- constant _KEY_uhornacute
-
-_KEY_uhornacute :: Int32
-_KEY_uhornacute = 16785129
--- constant _KEY_uhornbelowdot
-
-_KEY_uhornbelowdot :: Int32
-_KEY_uhornbelowdot = 16785137
--- constant _KEY_uhorngrave
-
-_KEY_uhorngrave :: Int32
-_KEY_uhorngrave = 16785131
--- constant _KEY_uhornhook
-
-_KEY_uhornhook :: Int32
-_KEY_uhornhook = 16785133
--- constant _KEY_uhorntilde
-
-_KEY_uhorntilde :: Int32
-_KEY_uhorntilde = 16785135
--- constant _KEY_umacron
-
-_KEY_umacron :: Int32
-_KEY_umacron = 1022
--- constant _KEY_underbar
-
-_KEY_underbar :: Int32
-_KEY_underbar = 3014
--- constant _KEY_underscore
-
-_KEY_underscore :: Int32
-_KEY_underscore = 95
--- constant _KEY_union
-
-_KEY_union :: Int32
-_KEY_union = 2269
--- constant _KEY_uogonek
-
-_KEY_uogonek :: Int32
-_KEY_uogonek = 1017
--- constant _KEY_uparrow
-
-_KEY_uparrow :: Int32
-_KEY_uparrow = 2300
--- constant _KEY_upcaret
-
-_KEY_upcaret :: Int32
-_KEY_upcaret = 2985
--- constant _KEY_upleftcorner
-
-_KEY_upleftcorner :: Int32
-_KEY_upleftcorner = 2540
--- constant _KEY_uprightcorner
-
-_KEY_uprightcorner :: Int32
-_KEY_uprightcorner = 2539
--- constant _KEY_upshoe
-
-_KEY_upshoe :: Int32
-_KEY_upshoe = 3011
--- constant _KEY_upstile
-
-_KEY_upstile :: Int32
-_KEY_upstile = 3027
--- constant _KEY_uptack
-
-_KEY_uptack :: Int32
-_KEY_uptack = 3022
--- constant _KEY_uring
-
-_KEY_uring :: Int32
-_KEY_uring = 505
--- constant _KEY_utilde
-
-_KEY_utilde :: Int32
-_KEY_utilde = 1021
--- constant _KEY_v
-
-_KEY_v :: Int32
-_KEY_v = 118
--- constant _KEY_variation
-
-_KEY_variation :: Int32
-_KEY_variation = 2241
--- constant _KEY_vertbar
-
-_KEY_vertbar :: Int32
-_KEY_vertbar = 2552
--- constant _KEY_vertconnector
-
-_KEY_vertconnector :: Int32
-_KEY_vertconnector = 2214
--- constant _KEY_voicedsound
-
-_KEY_voicedsound :: Int32
-_KEY_voicedsound = 1246
--- constant _KEY_vt
-
-_KEY_vt :: Int32
-_KEY_vt = 2537
--- constant _KEY_w
-
-_KEY_w :: Int32
-_KEY_w = 119
--- constant _KEY_wacute
-
-_KEY_wacute :: Int32
-_KEY_wacute = 16785027
--- constant _KEY_wcircumflex
-
-_KEY_wcircumflex :: Int32
-_KEY_wcircumflex = 16777589
--- constant _KEY_wdiaeresis
-
-_KEY_wdiaeresis :: Int32
-_KEY_wdiaeresis = 16785029
--- constant _KEY_wgrave
-
-_KEY_wgrave :: Int32
-_KEY_wgrave = 16785025
--- constant _KEY_x
-
-_KEY_x :: Int32
-_KEY_x = 120
--- constant _KEY_xabovedot
-
-_KEY_xabovedot :: Int32
-_KEY_xabovedot = 16785035
--- constant _KEY_y
-
-_KEY_y :: Int32
-_KEY_y = 121
--- constant _KEY_yacute
-
-_KEY_yacute :: Int32
-_KEY_yacute = 253
--- constant _KEY_ybelowdot
-
-_KEY_ybelowdot :: Int32
-_KEY_ybelowdot = 16785141
--- constant _KEY_ycircumflex
-
-_KEY_ycircumflex :: Int32
-_KEY_ycircumflex = 16777591
--- constant _KEY_ydiaeresis
-
-_KEY_ydiaeresis :: Int32
-_KEY_ydiaeresis = 255
--- constant _KEY_yen
-
-_KEY_yen :: Int32
-_KEY_yen = 165
--- constant _KEY_ygrave
-
-_KEY_ygrave :: Int32
-_KEY_ygrave = 16785139
--- constant _KEY_yhook
-
-_KEY_yhook :: Int32
-_KEY_yhook = 16785143
--- constant _KEY_ytilde
-
-_KEY_ytilde :: Int32
-_KEY_ytilde = 16785145
--- constant _KEY_z
-
-_KEY_z :: Int32
-_KEY_z = 122
--- constant _KEY_zabovedot
-
-_KEY_zabovedot :: Int32
-_KEY_zabovedot = 447
--- constant _KEY_zacute
-
-_KEY_zacute :: Int32
-_KEY_zacute = 444
--- constant _KEY_zcaron
-
-_KEY_zcaron :: Int32
-_KEY_zcaron = 446
--- constant _KEY_zerosubscript
-
-_KEY_zerosubscript :: Int32
-_KEY_zerosubscript = 16785536
--- constant _KEY_zerosuperior
-
-_KEY_zerosuperior :: Int32
-_KEY_zerosuperior = 16785520
--- constant _KEY_zstroke
-
-_KEY_zstroke :: Int32
-_KEY_zstroke = 16777654
--- constant _MAX_TIMECOORD_AXES
-
-_MAX_TIMECOORD_AXES :: Int32
-_MAX_TIMECOORD_AXES = 128
--- constant _PARENT_RELATIVE
-
-_PARENT_RELATIVE :: Int32
-_PARENT_RELATIVE = 1
--- constant _PRIORITY_REDRAW
-
-_PRIORITY_REDRAW :: Int32
-_PRIORITY_REDRAW = 20
--- function gdk_add_option_entries_libgtk_only
--- Args : [Arg {argName = "group", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "group", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_add_option_entries_libgtk_only" gdk_add_option_entries_libgtk_only :: 
-    Ptr GLib.OptionGroup ->                 -- group : TInterface "GLib" "OptionGroup"
-    IO ()
-
-{-# DEPRECATED addOptionEntriesLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside","  of GTK+"]#-}
-addOptionEntriesLibgtkOnly ::
-    (MonadIO m) =>
-    GLib.OptionGroup ->                     -- group
-    m ()
-addOptionEntriesLibgtkOnly group = liftIO $ do
-    let group' = unsafeManagedPtrGetPtr group
-    gdk_add_option_entries_libgtk_only group'
-    touchManagedPtr group
-    return ()
-
--- function gdk_atom_intern
--- Args : [Arg {argName = "atom_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "only_if_exists", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "atom_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "only_if_exists", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Atom"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_atom_intern" gdk_atom_intern :: 
-    CString ->                              -- atom_name : TBasicType TUTF8
-    CInt ->                                 -- only_if_exists : TBasicType TBoolean
-    IO (Ptr Atom)
-
-
-atomIntern ::
-    (MonadIO m) =>
-    T.Text ->                               -- atom_name
-    Bool ->                                 -- only_if_exists
-    m Atom
-atomIntern atom_name only_if_exists = liftIO $ do
-    atom_name' <- textToCString atom_name
-    let only_if_exists' = (fromIntegral . fromEnum) only_if_exists
-    result <- gdk_atom_intern atom_name' only_if_exists'
-    checkUnexpectedReturnNULL "gdk_atom_intern" result
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    result' <- (\x -> Atom <$> newForeignPtr_ x) result
-    freeMem atom_name'
-    return result'
-
--- function gdk_atom_intern_static_string
--- Args : [Arg {argName = "atom_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "atom_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Atom"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_atom_intern_static_string" gdk_atom_intern_static_string :: 
-    CString ->                              -- atom_name : TBasicType TUTF8
-    IO (Ptr Atom)
-
-
-atomInternStaticString ::
-    (MonadIO m) =>
-    T.Text ->                               -- atom_name
-    m Atom
-atomInternStaticString atom_name = liftIO $ do
-    atom_name' <- textToCString atom_name
-    result <- gdk_atom_intern_static_string atom_name'
-    checkUnexpectedReturnNULL "gdk_atom_intern_static_string" result
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    result' <- (\x -> Atom <$> newForeignPtr_ x) result
-    freeMem atom_name'
-    return result'
-
--- function gdk_beep
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_beep" gdk_beep :: 
-    IO ()
-
-
-beep ::
-    (MonadIO m) =>
-    m ()
-beep  = liftIO $ do
-    gdk_beep
-    return ()
-
--- function gdk_cairo_create
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Context"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_create" gdk_cairo_create :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    IO (Ptr Cairo.Context)
-
-
-cairoCreate ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    m Cairo.Context
-cairoCreate window = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    result <- gdk_cairo_create window'
-    checkUnexpectedReturnNULL "gdk_cairo_create" result
-    result' <- (wrapBoxed Cairo.Context) result
-    touchManagedPtr window
-    return result'
-
--- function gdk_cairo_draw_from_gl
--- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source_type", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffer_scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source_type", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffer_scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_draw_from_gl" gdk_cairo_draw_from_gl :: 
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Int32 ->                                -- source : TBasicType TInt32
-    Int32 ->                                -- source_type : TBasicType TInt32
-    Int32 ->                                -- buffer_scale : TBasicType TInt32
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
-    IO ()
-
-
-cairoDrawFromGl ::
-    (MonadIO m, WindowK a) =>
-    Cairo.Context ->                        -- cr
-    a ->                                    -- window
-    Int32 ->                                -- source
-    Int32 ->                                -- source_type
-    Int32 ->                                -- buffer_scale
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    Int32 ->                                -- width
-    Int32 ->                                -- height
-    m ()
-cairoDrawFromGl cr window source source_type buffer_scale x y width height = liftIO $ do
-    let cr' = unsafeManagedPtrGetPtr cr
-    let window' = unsafeManagedPtrCastPtr window
-    gdk_cairo_draw_from_gl cr' window' source source_type buffer_scale x y width height
-    touchManagedPtr cr
-    touchManagedPtr window
-    return ()
-
--- function gdk_cairo_get_clip_rectangle
--- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_get_clip_rectangle" gdk_cairo_get_clip_rectangle :: 
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    Ptr Rectangle ->                        -- rect : TInterface "Gdk" "Rectangle"
-    IO CInt
-
-
-cairoGetClipRectangle ::
-    (MonadIO m) =>
-    Cairo.Context ->                        -- cr
-    m (Bool,Rectangle)
-cairoGetClipRectangle cr = liftIO $ do
-    let cr' = unsafeManagedPtrGetPtr cr
-    rect <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
-    result <- gdk_cairo_get_clip_rectangle cr' rect
-    let result' = (/= 0) result
-    rect' <- (wrapBoxed Rectangle) rect
-    touchManagedPtr cr
-    return (result', rect')
-
--- function gdk_cairo_rectangle
--- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rectangle", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rectangle", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_rectangle" gdk_cairo_rectangle :: 
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    Ptr Rectangle ->                        -- rectangle : TInterface "Gdk" "Rectangle"
-    IO ()
-
-
-cairoRectangle ::
-    (MonadIO m) =>
-    Cairo.Context ->                        -- cr
-    Rectangle ->                            -- rectangle
-    m ()
-cairoRectangle cr rectangle = liftIO $ do
-    let cr' = unsafeManagedPtrGetPtr cr
-    let rectangle' = unsafeManagedPtrGetPtr rectangle
-    gdk_cairo_rectangle cr' rectangle'
-    touchManagedPtr cr
-    touchManagedPtr rectangle
-    return ()
-
--- function gdk_cairo_region
--- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_region" gdk_cairo_region :: 
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
-    IO ()
-
-
-cairoRegion ::
-    (MonadIO m) =>
-    Cairo.Context ->                        -- cr
-    Cairo.Region ->                         -- region
-    m ()
-cairoRegion cr region = liftIO $ do
-    let cr' = unsafeManagedPtrGetPtr cr
-    let region' = unsafeManagedPtrGetPtr region
-    gdk_cairo_region cr' region'
-    touchManagedPtr cr
-    touchManagedPtr region
-    return ()
-
--- function gdk_cairo_region_create_from_surface
--- Args : [Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Region"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_region_create_from_surface" gdk_cairo_region_create_from_surface :: 
-    Ptr Cairo.Surface ->                    -- surface : TInterface "cairo" "Surface"
-    IO (Ptr Cairo.Region)
-
-
-cairoRegionCreateFromSurface ::
-    (MonadIO m) =>
-    Cairo.Surface ->                        -- surface
-    m Cairo.Region
-cairoRegionCreateFromSurface surface = liftIO $ do
-    let surface' = unsafeManagedPtrGetPtr surface
-    result <- gdk_cairo_region_create_from_surface surface'
-    checkUnexpectedReturnNULL "gdk_cairo_region_create_from_surface" result
-    result' <- (wrapBoxed Cairo.Region) result
-    touchManagedPtr surface
-    return result'
-
--- function gdk_cairo_set_source_color
--- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_set_source_color" gdk_cairo_set_source_color :: 
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    Ptr Color ->                            -- color : TInterface "Gdk" "Color"
-    IO ()
-
-{-# DEPRECATED cairoSetSourceColor ["(Since version 3.4)","Use gdk_cairo_set_source_rgba() instead"]#-}
-cairoSetSourceColor ::
-    (MonadIO m) =>
-    Cairo.Context ->                        -- cr
-    Color ->                                -- color
-    m ()
-cairoSetSourceColor cr color = liftIO $ do
-    let cr' = unsafeManagedPtrGetPtr cr
-    let color' = unsafeManagedPtrGetPtr color
-    gdk_cairo_set_source_color cr' color'
-    touchManagedPtr cr
-    touchManagedPtr color
-    return ()
-
--- function gdk_cairo_set_source_pixbuf
--- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_set_source_pixbuf" gdk_cairo_set_source_pixbuf :: 
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    Ptr GdkPixbuf.Pixbuf ->                 -- pixbuf : TInterface "GdkPixbuf" "Pixbuf"
-    CDouble ->                              -- pixbuf_x : TBasicType TDouble
-    CDouble ->                              -- pixbuf_y : TBasicType TDouble
-    IO ()
-
-
-cairoSetSourcePixbuf ::
-    (MonadIO m, GdkPixbuf.PixbufK a) =>
-    Cairo.Context ->                        -- cr
-    a ->                                    -- pixbuf
-    Double ->                               -- pixbuf_x
-    Double ->                               -- pixbuf_y
-    m ()
-cairoSetSourcePixbuf cr pixbuf pixbuf_x pixbuf_y = liftIO $ do
-    let cr' = unsafeManagedPtrGetPtr cr
-    let pixbuf' = unsafeManagedPtrCastPtr pixbuf
-    let pixbuf_x' = realToFrac pixbuf_x
-    let pixbuf_y' = realToFrac pixbuf_y
-    gdk_cairo_set_source_pixbuf cr' pixbuf' pixbuf_x' pixbuf_y'
-    touchManagedPtr cr
-    touchManagedPtr pixbuf
-    return ()
-
--- function gdk_cairo_set_source_rgba
--- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_set_source_rgba" gdk_cairo_set_source_rgba :: 
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    Ptr RGBA ->                             -- rgba : TInterface "Gdk" "RGBA"
-    IO ()
-
-
-cairoSetSourceRgba ::
-    (MonadIO m) =>
-    Cairo.Context ->                        -- cr
-    RGBA ->                                 -- rgba
-    m ()
-cairoSetSourceRgba cr rgba = liftIO $ do
-    let cr' = unsafeManagedPtrGetPtr cr
-    let rgba' = unsafeManagedPtrGetPtr rgba
-    gdk_cairo_set_source_rgba cr' rgba'
-    touchManagedPtr cr
-    touchManagedPtr rgba
-    return ()
-
--- function gdk_cairo_set_source_window
--- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_set_source_window" gdk_cairo_set_source_window :: 
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    CDouble ->                              -- x : TBasicType TDouble
-    CDouble ->                              -- y : TBasicType TDouble
-    IO ()
-
-
-cairoSetSourceWindow ::
-    (MonadIO m, WindowK a) =>
-    Cairo.Context ->                        -- cr
-    a ->                                    -- window
-    Double ->                               -- x
-    Double ->                               -- y
-    m ()
-cairoSetSourceWindow cr window x y = liftIO $ do
-    let cr' = unsafeManagedPtrGetPtr cr
-    let window' = unsafeManagedPtrCastPtr window
-    let x' = realToFrac x
-    let y' = realToFrac y
-    gdk_cairo_set_source_window cr' window' x' y'
-    touchManagedPtr cr
-    touchManagedPtr window
-    return ()
-
--- function gdk_cairo_surface_create_from_pixbuf
--- Args : [Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "for_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "for_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Surface"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_surface_create_from_pixbuf" gdk_cairo_surface_create_from_pixbuf :: 
-    Ptr GdkPixbuf.Pixbuf ->                 -- pixbuf : TInterface "GdkPixbuf" "Pixbuf"
-    Int32 ->                                -- scale : TBasicType TInt32
-    Ptr Window ->                           -- for_window : TInterface "Gdk" "Window"
-    IO (Ptr Cairo.Surface)
-
-
-cairoSurfaceCreateFromPixbuf ::
-    (MonadIO m, GdkPixbuf.PixbufK a, WindowK b) =>
-    a ->                                    -- pixbuf
-    Int32 ->                                -- scale
-    Maybe (b) ->                            -- for_window
-    m Cairo.Surface
-cairoSurfaceCreateFromPixbuf pixbuf scale for_window = liftIO $ do
-    let pixbuf' = unsafeManagedPtrCastPtr pixbuf
-    maybeFor_window <- case for_window of
-        Nothing -> return nullPtr
-        Just jFor_window -> do
-            let jFor_window' = unsafeManagedPtrCastPtr jFor_window
-            return jFor_window'
-    result <- gdk_cairo_surface_create_from_pixbuf pixbuf' scale maybeFor_window
-    checkUnexpectedReturnNULL "gdk_cairo_surface_create_from_pixbuf" result
-    result' <- (wrapBoxed Cairo.Surface) result
-    touchManagedPtr pixbuf
-    whenJust for_window touchManagedPtr
-    return result'
-
--- function gdk_color_parse
--- Args : [Arg {argName = "spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_color_parse" gdk_color_parse :: 
-    CString ->                              -- spec : TBasicType TUTF8
-    Ptr Color ->                            -- color : TInterface "Gdk" "Color"
-    IO CInt
-
-{-# DEPRECATED colorParse ["(Since version 3.14)","Use #GdkRGBA"]#-}
-colorParse ::
-    (MonadIO m) =>
-    T.Text ->                               -- spec
-    m (Bool,Color)
-colorParse spec = liftIO $ do
-    spec' <- textToCString spec
-    color <- callocBoxedBytes 12 :: IO (Ptr Color)
-    result <- gdk_color_parse spec' color
-    let result' = (/= 0) result
-    color' <- (wrapBoxed Color) color
-    freeMem spec'
-    return (result', color')
-
--- function gdk_disable_multidevice
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_disable_multidevice" gdk_disable_multidevice :: 
-    IO ()
-
-
-disableMultidevice ::
-    (MonadIO m) =>
-    m ()
-disableMultidevice  = liftIO $ do
-    gdk_disable_multidevice
-    return ()
-
--- function gdk_drag_abort
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_abort" gdk_drag_abort :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-dragAbort ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- context
-    Word32 ->                               -- time_
-    m ()
-dragAbort context time_ = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    gdk_drag_abort context' time_
-    touchManagedPtr context
-    return ()
-
--- function gdk_drag_begin
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TGList (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TGList (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "DragContext"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_begin" gdk_drag_begin :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Ptr (GList (Ptr Atom)) ->               -- targets : TGList (TInterface "Gdk" "Atom")
-    IO (Ptr DragContext)
-
-
-dragBegin ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    [Atom] ->                               -- targets
-    m DragContext
-dragBegin window targets = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let targets' = map unsafeManagedPtrGetPtr targets
-    targets'' <- packGList targets'
-    result <- gdk_drag_begin window' targets''
-    checkUnexpectedReturnNULL "gdk_drag_begin" result
-    result' <- (wrapObject DragContext) result
-    touchManagedPtr window
-    mapM_ touchManagedPtr targets
-    g_list_free targets''
-    return result'
-
--- function gdk_drag_begin_for_device
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TGList (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TGList (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "DragContext"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_begin_for_device" gdk_drag_begin_for_device :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    Ptr (GList (Ptr Atom)) ->               -- targets : TGList (TInterface "Gdk" "Atom")
-    IO (Ptr DragContext)
-
-
-dragBeginForDevice ::
-    (MonadIO m, WindowK a, DeviceK b) =>
-    a ->                                    -- window
-    b ->                                    -- device
-    [Atom] ->                               -- targets
-    m DragContext
-dragBeginForDevice window device targets = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let device' = unsafeManagedPtrCastPtr device
-    let targets' = map unsafeManagedPtrGetPtr targets
-    targets'' <- packGList targets'
-    result <- gdk_drag_begin_for_device window' device' targets''
-    checkUnexpectedReturnNULL "gdk_drag_begin_for_device" result
-    result' <- (wrapObject DragContext) result
-    touchManagedPtr window
-    touchManagedPtr device
-    mapM_ touchManagedPtr targets
-    g_list_free targets''
-    return result'
-
--- function gdk_drag_drop
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_drop" gdk_drag_drop :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-dragDrop ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- context
-    Word32 ->                               -- time_
-    m ()
-dragDrop context time_ = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    gdk_drag_drop context' time_
-    touchManagedPtr context
-    return ()
-
--- function gdk_drag_drop_succeeded
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_drop_succeeded" gdk_drag_drop_succeeded :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    IO CInt
-
-
-dragDropSucceeded ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- context
-    m Bool
-dragDropSucceeded context = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    result <- gdk_drag_drop_succeeded context'
-    let result' = (/= 0) result
-    touchManagedPtr context
-    return result'
-
--- function gdk_drag_find_window_for_screen
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "drag_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_window", argType = TInterface "Gdk" "Window", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "protocol", argType = TInterface "Gdk" "DragProtocol", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "drag_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_find_window_for_screen" gdk_drag_find_window_for_screen :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    Ptr Window ->                           -- drag_window : TInterface "Gdk" "Window"
-    Ptr Screen ->                           -- screen : TInterface "Gdk" "Screen"
-    Int32 ->                                -- x_root : TBasicType TInt32
-    Int32 ->                                -- y_root : TBasicType TInt32
-    Ptr (Ptr Window) ->                     -- dest_window : TInterface "Gdk" "Window"
-    Ptr CUInt ->                            -- protocol : TInterface "Gdk" "DragProtocol"
-    IO ()
-
-
-dragFindWindowForScreen ::
-    (MonadIO m, DragContextK a, WindowK b, ScreenK c) =>
-    a ->                                    -- context
-    b ->                                    -- drag_window
-    c ->                                    -- screen
-    Int32 ->                                -- x_root
-    Int32 ->                                -- y_root
-    m (Window,DragProtocol)
-dragFindWindowForScreen context drag_window screen x_root y_root = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    let drag_window' = unsafeManagedPtrCastPtr drag_window
-    let screen' = unsafeManagedPtrCastPtr screen
-    dest_window <- allocMem :: IO (Ptr (Ptr Window))
-    protocol <- allocMem :: IO (Ptr CUInt)
-    gdk_drag_find_window_for_screen context' drag_window' screen' x_root y_root dest_window protocol
-    dest_window' <- peek dest_window
-    dest_window'' <- (wrapObject Window) dest_window'
-    protocol' <- peek protocol
-    let protocol'' = (toEnum . fromIntegral) protocol'
-    touchManagedPtr context
-    touchManagedPtr drag_window
-    touchManagedPtr screen
-    freeMem dest_window
-    freeMem protocol
-    return (dest_window'', protocol'')
-
--- function gdk_drag_get_selection
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Atom"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_get_selection" gdk_drag_get_selection :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    IO (Ptr Atom)
-
-
-dragGetSelection ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- context
-    m Atom
-dragGetSelection context = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    result <- gdk_drag_get_selection context'
-    checkUnexpectedReturnNULL "gdk_drag_get_selection" result
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    result' <- (\x -> Atom <$> newForeignPtr_ x) result
-    touchManagedPtr context
-    return result'
-
--- function gdk_drag_motion
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "protocol", argType = TInterface "Gdk" "DragProtocol", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "suggested_action", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "possible_actions", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "protocol", argType = TInterface "Gdk" "DragProtocol", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "suggested_action", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "possible_actions", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_motion" gdk_drag_motion :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    Ptr Window ->                           -- dest_window : TInterface "Gdk" "Window"
-    CUInt ->                                -- protocol : TInterface "Gdk" "DragProtocol"
-    Int32 ->                                -- x_root : TBasicType TInt32
-    Int32 ->                                -- y_root : TBasicType TInt32
-    CUInt ->                                -- suggested_action : TInterface "Gdk" "DragAction"
-    CUInt ->                                -- possible_actions : TInterface "Gdk" "DragAction"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO CInt
-
-
-dragMotion ::
-    (MonadIO m, DragContextK a, WindowK b) =>
-    a ->                                    -- context
-    b ->                                    -- dest_window
-    DragProtocol ->                         -- protocol
-    Int32 ->                                -- x_root
-    Int32 ->                                -- y_root
-    [DragAction] ->                         -- suggested_action
-    [DragAction] ->                         -- possible_actions
-    Word32 ->                               -- time_
-    m Bool
-dragMotion context dest_window protocol x_root y_root suggested_action possible_actions time_ = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    let dest_window' = unsafeManagedPtrCastPtr dest_window
-    let protocol' = (fromIntegral . fromEnum) protocol
-    let suggested_action' = gflagsToWord suggested_action
-    let possible_actions' = gflagsToWord possible_actions
-    result <- gdk_drag_motion context' dest_window' protocol' x_root y_root suggested_action' possible_actions' time_
-    let result' = (/= 0) result
-    touchManagedPtr context
-    touchManagedPtr dest_window
-    return result'
-
--- function gdk_drag_status
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "action", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "action", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_status" gdk_drag_status :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    CUInt ->                                -- action : TInterface "Gdk" "DragAction"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-dragStatus ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- context
-    [DragAction] ->                         -- action
-    Word32 ->                               -- time_
-    m ()
-dragStatus context action time_ = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    let action' = gflagsToWord action
-    gdk_drag_status context' action' time_
-    touchManagedPtr context
-    return ()
-
--- function gdk_drop_finish
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "success", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "success", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drop_finish" gdk_drop_finish :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    CInt ->                                 -- success : TBasicType TBoolean
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-dropFinish ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- context
-    Bool ->                                 -- success
-    Word32 ->                               -- time_
-    m ()
-dropFinish context success time_ = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    let success' = (fromIntegral . fromEnum) success
-    gdk_drop_finish context' success' time_
-    touchManagedPtr context
-    return ()
-
--- function gdk_drop_reply
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "accepted", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "accepted", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drop_reply" gdk_drop_reply :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    CInt ->                                 -- accepted : TBasicType TBoolean
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-dropReply ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- context
-    Bool ->                                 -- accepted
-    Word32 ->                               -- time_
-    m ()
-dropReply context accepted time_ = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    let accepted' = (fromIntegral . fromEnum) accepted
-    gdk_drop_reply context' accepted' time_
-    touchManagedPtr context
-    return ()
-
--- function gdk_error_trap_pop
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_error_trap_pop" gdk_error_trap_pop :: 
-    IO Int32
-
-
-errorTrapPop ::
-    (MonadIO m) =>
-    m Int32
-errorTrapPop  = liftIO $ do
-    result <- gdk_error_trap_pop
-    return result
-
--- function gdk_error_trap_pop_ignored
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_error_trap_pop_ignored" gdk_error_trap_pop_ignored :: 
-    IO ()
-
-
-errorTrapPopIgnored ::
-    (MonadIO m) =>
-    m ()
-errorTrapPopIgnored  = liftIO $ do
-    gdk_error_trap_pop_ignored
-    return ()
-
--- function gdk_error_trap_push
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_error_trap_push" gdk_error_trap_push :: 
-    IO ()
-
-
-errorTrapPush ::
-    (MonadIO m) =>
-    m ()
-errorTrapPush  = liftIO $ do
-    gdk_error_trap_push
-    return ()
-
--- function gdk_event_get
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "Event"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get" gdk_event_get :: 
-    IO (Ptr Event)
-
-
-eventGet ::
-    (MonadIO m) =>
-    m Event
-eventGet  = liftIO $ do
-    result <- gdk_event_get
-    checkUnexpectedReturnNULL "gdk_event_get" result
-    result' <- (wrapBoxed Event) result
-    return result'
-
--- function gdk_event_handler_set
--- Args : [Arg {argName = "func", argType = TInterface "Gdk" "EventFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 1, argDestroy = 2, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "func", argType = TInterface "Gdk" "EventFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 1, argDestroy = 2, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_handler_set" gdk_event_handler_set :: 
-    FunPtr EventFuncC ->                    -- func : TInterface "Gdk" "EventFunc"
-    Ptr () ->                               -- data : TBasicType TVoid
-    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"
-    IO ()
-
-
-eventHandlerSet ::
-    (MonadIO m) =>
-    EventFunc ->                            -- func
-    m ()
-eventHandlerSet func = liftIO $ do
-    func' <- mkEventFunc (eventFuncWrapper Nothing func)
-    let data_ = castFunPtrToPtr func'
-    let notify = safeFreeFunPtrPtr
-    gdk_event_handler_set func' data_ notify
-    return ()
-
--- function gdk_event_peek
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "Event"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_peek" gdk_event_peek :: 
-    IO (Ptr Event)
-
-
-eventPeek ::
-    (MonadIO m) =>
-    m Event
-eventPeek  = liftIO $ do
-    result <- gdk_event_peek
-    checkUnexpectedReturnNULL "gdk_event_peek" result
-    result' <- (wrapBoxed Event) result
-    return result'
-
--- function gdk_event_request_motions
--- Args : [Arg {argName = "event", argType = TInterface "Gdk" "EventMotion", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "event", argType = TInterface "Gdk" "EventMotion", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_request_motions" gdk_event_request_motions :: 
-    Ptr EventMotion ->                      -- event : TInterface "Gdk" "EventMotion"
-    IO ()
-
-
-eventRequestMotions ::
-    (MonadIO m) =>
-    EventMotion ->                          -- event
-    m ()
-eventRequestMotions event = liftIO $ do
-    let event' = unsafeManagedPtrGetPtr event
-    gdk_event_request_motions event'
-    touchManagedPtr event
-    return ()
-
--- function gdk_events_get_angle
--- Args : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "angle", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_events_get_angle" gdk_events_get_angle :: 
-    Ptr Event ->                            -- event1 : TInterface "Gdk" "Event"
-    Ptr Event ->                            -- event2 : TInterface "Gdk" "Event"
-    Ptr CDouble ->                          -- angle : TBasicType TDouble
-    IO CInt
-
-
-eventsGetAngle ::
-    (MonadIO m) =>
-    Event ->                                -- event1
-    Event ->                                -- event2
-    m (Bool,Double)
-eventsGetAngle event1 event2 = liftIO $ do
-    let event1' = unsafeManagedPtrGetPtr event1
-    let event2' = unsafeManagedPtrGetPtr event2
-    angle <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_events_get_angle event1' event2' angle
-    let result' = (/= 0) result
-    angle' <- peek angle
-    let angle'' = realToFrac angle'
-    touchManagedPtr event1
-    touchManagedPtr event2
-    freeMem angle
-    return (result', angle'')
-
--- function gdk_events_get_center
--- Args : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_events_get_center" gdk_events_get_center :: 
-    Ptr Event ->                            -- event1 : TInterface "Gdk" "Event"
-    Ptr Event ->                            -- event2 : TInterface "Gdk" "Event"
-    Ptr CDouble ->                          -- x : TBasicType TDouble
-    Ptr CDouble ->                          -- y : TBasicType TDouble
-    IO CInt
-
-
-eventsGetCenter ::
-    (MonadIO m) =>
-    Event ->                                -- event1
-    Event ->                                -- event2
-    m (Bool,Double,Double)
-eventsGetCenter event1 event2 = liftIO $ do
-    let event1' = unsafeManagedPtrGetPtr event1
-    let event2' = unsafeManagedPtrGetPtr event2
-    x <- allocMem :: IO (Ptr CDouble)
-    y <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_events_get_center event1' event2' x y
-    let result' = (/= 0) result
-    x' <- peek x
-    let x'' = realToFrac x'
-    y' <- peek y
-    let y'' = realToFrac y'
-    touchManagedPtr event1
-    touchManagedPtr event2
-    freeMem x
-    freeMem y
-    return (result', x'', y'')
-
--- function gdk_events_get_distance
--- Args : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "distance", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_events_get_distance" gdk_events_get_distance :: 
-    Ptr Event ->                            -- event1 : TInterface "Gdk" "Event"
-    Ptr Event ->                            -- event2 : TInterface "Gdk" "Event"
-    Ptr CDouble ->                          -- distance : TBasicType TDouble
-    IO CInt
-
-
-eventsGetDistance ::
-    (MonadIO m) =>
-    Event ->                                -- event1
-    Event ->                                -- event2
-    m (Bool,Double)
-eventsGetDistance event1 event2 = liftIO $ do
-    let event1' = unsafeManagedPtrGetPtr event1
-    let event2' = unsafeManagedPtrGetPtr event2
-    distance <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_events_get_distance event1' event2' distance
-    let result' = (/= 0) result
-    distance' <- peek distance
-    let distance'' = realToFrac distance'
-    touchManagedPtr event1
-    touchManagedPtr event2
-    freeMem distance
-    return (result', distance'')
-
--- function gdk_events_pending
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_events_pending" gdk_events_pending :: 
-    IO CInt
-
-
-eventsPending ::
-    (MonadIO m) =>
-    m Bool
-eventsPending  = liftIO $ do
-    result <- gdk_events_pending
-    let result' = (/= 0) result
-    return result'
-
--- function gdk_flush
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_flush" gdk_flush :: 
-    IO ()
-
-
-flush ::
-    (MonadIO m) =>
-    m ()
-flush  = liftIO $ do
-    gdk_flush
-    return ()
-
--- function gdk_get_default_root_window
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_get_default_root_window" gdk_get_default_root_window :: 
-    IO (Ptr Window)
-
-
-getDefaultRootWindow ::
-    (MonadIO m) =>
-    m Window
-getDefaultRootWindow  = liftIO $ do
-    result <- gdk_get_default_root_window
-    checkUnexpectedReturnNULL "gdk_get_default_root_window" result
-    result' <- (newObject Window) result
-    return result'
-
--- function gdk_get_display
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_get_display" gdk_get_display :: 
-    IO CString
-
-{-# DEPRECATED getDisplay ["(Since version 3.8)","Call gdk_display_get_name (gdk_display_get_default ()))","   instead."]#-}
-getDisplay ::
-    (MonadIO m) =>
-    m T.Text
-getDisplay  = liftIO $ do
-    result <- gdk_get_display
-    checkUnexpectedReturnNULL "gdk_get_display" result
-    result' <- cstringToText result
-    freeMem result
-    return result'
-
--- function gdk_get_display_arg_name
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_get_display_arg_name" gdk_get_display_arg_name :: 
-    IO CString
-
-
-getDisplayArgName ::
-    (MonadIO m) =>
-    m T.Text
-getDisplayArgName  = liftIO $ do
-    result <- gdk_get_display_arg_name
-    checkUnexpectedReturnNULL "gdk_get_display_arg_name" result
-    result' <- cstringToText result
-    return result'
-
--- function gdk_get_program_class
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_get_program_class" gdk_get_program_class :: 
-    IO CString
-
-
-getProgramClass ::
-    (MonadIO m) =>
-    m T.Text
-getProgramClass  = liftIO $ do
-    result <- gdk_get_program_class
-    checkUnexpectedReturnNULL "gdk_get_program_class" result
-    result' <- cstringToText result
-    return result'
-
--- function gdk_get_show_events
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_get_show_events" gdk_get_show_events :: 
-    IO CInt
-
-
-getShowEvents ::
-    (MonadIO m) =>
-    m Bool
-getShowEvents  = liftIO $ do
-    result <- gdk_get_show_events
-    let result' = (/= 0) result
-    return result'
-
--- function gdk_gl_error_quark
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_gl_error_quark" gdk_gl_error_quark :: 
-    IO Word32
-
-
-glErrorQuark ::
-    (MonadIO m) =>
-    m Word32
-glErrorQuark  = liftIO $ do
-    result <- gdk_gl_error_quark
-    return result
-
--- function gdk_init
--- Args : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : [Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_init" gdk_init :: 
-    Ptr Int32 ->                            -- argc : TBasicType TInt32
-    Ptr (Ptr CString) ->                    -- argv : TCArray False (-1) 0 (TBasicType TUTF8)
-    IO ()
-
-
-init ::
-    (MonadIO m) =>
-    [T.Text] ->                             -- argv
-    m ([T.Text])
-init argv = liftIO $ do
-    let argc = fromIntegral $ length argv
-    argc' <- allocMem :: IO (Ptr Int32)
-    poke argc' argc
-    argv' <- packUTF8CArray argv
-    argv'' <- allocMem :: IO (Ptr (Ptr CString))
-    poke argv'' argv'
-    gdk_init argc' argv''
-    argc'' <- peek argc'
-    argv''' <- peek argv''
-    argv'''' <- (unpackUTF8CArrayWithLength argc'') argv'''
-    (mapCArrayWithLength argc'') freeMem argv'''
-    freeMem argv'''
-    freeMem argc'
-    freeMem argv''
-    return argv''''
-
--- function gdk_init_check
--- Args : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : [Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_init_check" gdk_init_check :: 
-    Ptr Int32 ->                            -- argc : TBasicType TInt32
-    Ptr (Ptr CString) ->                    -- argv : TCArray False (-1) 0 (TBasicType TUTF8)
-    IO CInt
-
-
-initCheck ::
-    (MonadIO m) =>
-    [T.Text] ->                             -- argv
-    m (Bool,[T.Text])
-initCheck argv = liftIO $ do
-    let argc = fromIntegral $ length argv
-    argc' <- allocMem :: IO (Ptr Int32)
-    poke argc' argc
-    argv' <- packUTF8CArray argv
-    argv'' <- allocMem :: IO (Ptr (Ptr CString))
-    poke argv'' argv'
-    result <- gdk_init_check argc' argv''
-    argc'' <- peek argc'
-    let result' = (/= 0) result
-    argv''' <- peek argv''
-    argv'''' <- (unpackUTF8CArrayWithLength argc'') argv'''
-    (mapCArrayWithLength argc'') freeMem argv'''
-    freeMem argv'''
-    freeMem argc'
-    freeMem argv''
-    return (result', argv'''')
-
--- function gdk_keyboard_grab
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "GrabStatus"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keyboard_grab" gdk_keyboard_grab :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    CInt ->                                 -- owner_events : TBasicType TBoolean
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO CUInt
-
-{-# DEPRECATED keyboardGrab ["(Since version 3.0)","Use gdk_device_grab() instead."]#-}
-keyboardGrab ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    Bool ->                                 -- owner_events
-    Word32 ->                               -- time_
-    m GrabStatus
-keyboardGrab window owner_events time_ = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let owner_events' = (fromIntegral . fromEnum) owner_events
-    result <- gdk_keyboard_grab window' owner_events' time_
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr window
-    return result'
-
--- function gdk_keyboard_ungrab
--- Args : [Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keyboard_ungrab" gdk_keyboard_ungrab :: 
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-{-# DEPRECATED keyboardUngrab ["(Since version 3.0)","Use gdk_device_ungrab(), together with gdk_device_grab()","            instead."]#-}
-keyboardUngrab ::
-    (MonadIO m) =>
-    Word32 ->                               -- time_
-    m ()
-keyboardUngrab time_ = liftIO $ do
-    gdk_keyboard_ungrab time_
-    return ()
-
--- function gdk_keyval_convert_case
--- Args : [Arg {argName = "symbol", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lower", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "upper", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "symbol", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keyval_convert_case" gdk_keyval_convert_case :: 
-    Word32 ->                               -- symbol : TBasicType TUInt32
-    Ptr Word32 ->                           -- lower : TBasicType TUInt32
-    Ptr Word32 ->                           -- upper : TBasicType TUInt32
-    IO ()
-
-
-keyvalConvertCase ::
-    (MonadIO m) =>
-    Word32 ->                               -- symbol
-    m (Word32,Word32)
-keyvalConvertCase symbol = liftIO $ do
-    lower <- allocMem :: IO (Ptr Word32)
-    upper <- allocMem :: IO (Ptr Word32)
-    gdk_keyval_convert_case symbol lower upper
-    lower' <- peek lower
-    upper' <- peek upper
-    freeMem lower
-    freeMem upper
-    return (lower', upper')
-
--- function gdk_keyval_from_name
--- Args : [Arg {argName = "keyval_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "keyval_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keyval_from_name" gdk_keyval_from_name :: 
-    CString ->                              -- keyval_name : TBasicType TUTF8
-    IO Word32
-
-
-keyvalFromName ::
-    (MonadIO m) =>
-    T.Text ->                               -- keyval_name
-    m Word32
-keyvalFromName keyval_name = liftIO $ do
-    keyval_name' <- textToCString keyval_name
-    result <- gdk_keyval_from_name keyval_name'
-    freeMem keyval_name'
-    return result
-
--- function gdk_keyval_is_lower
--- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keyval_is_lower" gdk_keyval_is_lower :: 
-    Word32 ->                               -- keyval : TBasicType TUInt32
-    IO CInt
-
-
-keyvalIsLower ::
-    (MonadIO m) =>
-    Word32 ->                               -- keyval
-    m Bool
-keyvalIsLower keyval = liftIO $ do
-    result <- gdk_keyval_is_lower keyval
-    let result' = (/= 0) result
-    return result'
-
--- function gdk_keyval_is_upper
--- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keyval_is_upper" gdk_keyval_is_upper :: 
-    Word32 ->                               -- keyval : TBasicType TUInt32
-    IO CInt
-
-
-keyvalIsUpper ::
-    (MonadIO m) =>
-    Word32 ->                               -- keyval
-    m Bool
-keyvalIsUpper keyval = liftIO $ do
-    result <- gdk_keyval_is_upper keyval
-    let result' = (/= 0) result
-    return result'
-
--- function gdk_keyval_name
--- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keyval_name" gdk_keyval_name :: 
-    Word32 ->                               -- keyval : TBasicType TUInt32
-    IO CString
-
-
-keyvalName ::
-    (MonadIO m) =>
-    Word32 ->                               -- keyval
-    m T.Text
-keyvalName keyval = liftIO $ do
-    result <- gdk_keyval_name keyval
-    checkUnexpectedReturnNULL "gdk_keyval_name" result
-    result' <- cstringToText result
-    return result'
-
--- function gdk_keyval_to_lower
--- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keyval_to_lower" gdk_keyval_to_lower :: 
-    Word32 ->                               -- keyval : TBasicType TUInt32
-    IO Word32
-
-
-keyvalToLower ::
-    (MonadIO m) =>
-    Word32 ->                               -- keyval
-    m Word32
-keyvalToLower keyval = liftIO $ do
-    result <- gdk_keyval_to_lower keyval
-    return result
-
--- function gdk_keyval_to_unicode
--- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keyval_to_unicode" gdk_keyval_to_unicode :: 
-    Word32 ->                               -- keyval : TBasicType TUInt32
-    IO Word32
-
-
-keyvalToUnicode ::
-    (MonadIO m) =>
-    Word32 ->                               -- keyval
-    m Word32
-keyvalToUnicode keyval = liftIO $ do
-    result <- gdk_keyval_to_unicode keyval
-    return result
-
--- function gdk_keyval_to_upper
--- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keyval_to_upper" gdk_keyval_to_upper :: 
-    Word32 ->                               -- keyval : TBasicType TUInt32
-    IO Word32
-
-
-keyvalToUpper ::
-    (MonadIO m) =>
-    Word32 ->                               -- keyval
-    m Word32
-keyvalToUpper keyval = liftIO $ do
-    result <- gdk_keyval_to_upper keyval
-    return result
-
--- function gdk_list_visuals
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TGList (TInterface "Gdk" "Visual")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_list_visuals" gdk_list_visuals :: 
-    IO (Ptr (GList (Ptr Visual)))
-
-
-listVisuals ::
-    (MonadIO m) =>
-    m [Visual]
-listVisuals  = liftIO $ do
-    result <- gdk_list_visuals
-    checkUnexpectedReturnNULL "gdk_list_visuals" result
-    result' <- unpackGList result
-    result'' <- mapM (newObject Visual) result'
-    g_list_free result
-    return result''
-
--- function gdk_notify_startup_complete
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_notify_startup_complete" gdk_notify_startup_complete :: 
-    IO ()
-
-
-notifyStartupComplete ::
-    (MonadIO m) =>
-    m ()
-notifyStartupComplete  = liftIO $ do
-    gdk_notify_startup_complete
-    return ()
-
--- function gdk_notify_startup_complete_with_id
--- Args : [Arg {argName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_notify_startup_complete_with_id" gdk_notify_startup_complete_with_id :: 
-    CString ->                              -- startup_id : TBasicType TUTF8
-    IO ()
-
-
-notifyStartupCompleteWithId ::
-    (MonadIO m) =>
-    T.Text ->                               -- startup_id
-    m ()
-notifyStartupCompleteWithId startup_id = liftIO $ do
-    startup_id' <- textToCString startup_id
-    gdk_notify_startup_complete_with_id startup_id'
-    freeMem startup_id'
-    return ()
-
--- function gdk_offscreen_window_get_embedder
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_offscreen_window_get_embedder" gdk_offscreen_window_get_embedder :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    IO (Ptr Window)
-
-
-offscreenWindowGetEmbedder ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    m Window
-offscreenWindowGetEmbedder window = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    result <- gdk_offscreen_window_get_embedder window'
-    checkUnexpectedReturnNULL "gdk_offscreen_window_get_embedder" result
-    result' <- (newObject Window) result
-    touchManagedPtr window
-    return result'
-
--- function gdk_offscreen_window_get_surface
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Surface"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_offscreen_window_get_surface" gdk_offscreen_window_get_surface :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    IO (Ptr Cairo.Surface)
-
-
-offscreenWindowGetSurface ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    m Cairo.Surface
-offscreenWindowGetSurface window = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    result <- gdk_offscreen_window_get_surface window'
-    checkUnexpectedReturnNULL "gdk_offscreen_window_get_surface" result
-    result' <- (newBoxed Cairo.Surface) result
-    touchManagedPtr window
-    return result'
-
--- function gdk_offscreen_window_set_embedder
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "embedder", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "embedder", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_offscreen_window_set_embedder" gdk_offscreen_window_set_embedder :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Ptr Window ->                           -- embedder : TInterface "Gdk" "Window"
-    IO ()
-
-
-offscreenWindowSetEmbedder ::
-    (MonadIO m, WindowK a, WindowK b) =>
-    a ->                                    -- window
-    b ->                                    -- embedder
-    m ()
-offscreenWindowSetEmbedder window embedder = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let embedder' = unsafeManagedPtrCastPtr embedder
-    gdk_offscreen_window_set_embedder window' embedder'
-    touchManagedPtr window
-    touchManagedPtr embedder
-    return ()
-
--- function gdk_pango_context_get
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Pango" "Context"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_pango_context_get" gdk_pango_context_get :: 
-    IO (Ptr Pango.Context)
-
-
-pangoContextGet ::
-    (MonadIO m) =>
-    m Pango.Context
-pangoContextGet  = liftIO $ do
-    result <- gdk_pango_context_get
-    checkUnexpectedReturnNULL "gdk_pango_context_get" result
-    result' <- (wrapObject Pango.Context) result
-    return result'
-
--- function gdk_pango_context_get_for_screen
--- Args : [Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Pango" "Context"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_pango_context_get_for_screen" gdk_pango_context_get_for_screen :: 
-    Ptr Screen ->                           -- screen : TInterface "Gdk" "Screen"
-    IO (Ptr Pango.Context)
-
-
-pangoContextGetForScreen ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- screen
-    m Pango.Context
-pangoContextGetForScreen screen = liftIO $ do
-    let screen' = unsafeManagedPtrCastPtr screen
-    result <- gdk_pango_context_get_for_screen screen'
-    checkUnexpectedReturnNULL "gdk_pango_context_get_for_screen" result
-    result' <- (wrapObject Pango.Context) result
-    touchManagedPtr screen
-    return result'
-
--- function gdk_parse_args
--- Args : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- hInArgs : [Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_parse_args" gdk_parse_args :: 
-    Ptr Int32 ->                            -- argc : TBasicType TInt32
-    Ptr (Ptr CString) ->                    -- argv : TCArray False (-1) 0 (TBasicType TUTF8)
-    IO ()
-
-
-parseArgs ::
-    (MonadIO m) =>
-    [T.Text] ->                             -- argv
-    m ([T.Text])
-parseArgs argv = liftIO $ do
-    let argc = fromIntegral $ length argv
-    argc' <- allocMem :: IO (Ptr Int32)
-    poke argc' argc
-    argv' <- packUTF8CArray argv
-    argv'' <- allocMem :: IO (Ptr (Ptr CString))
-    poke argv'' argv'
-    gdk_parse_args argc' argv''
-    argc'' <- peek argc'
-    argv''' <- peek argv''
-    argv'''' <- (unpackUTF8CArrayWithLength argc'') argv'''
-    (mapCArrayWithLength argc'') freeMem argv'''
-    freeMem argv'''
-    freeMem argc'
-    freeMem argv''
-    return argv''''
-
--- function gdk_pixbuf_get_from_surface
--- Args : [Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GdkPixbuf" "Pixbuf"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_pixbuf_get_from_surface" gdk_pixbuf_get_from_surface :: 
-    Ptr Cairo.Surface ->                    -- surface : TInterface "cairo" "Surface"
-    Int32 ->                                -- src_x : TBasicType TInt32
-    Int32 ->                                -- src_y : TBasicType TInt32
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
-    IO (Ptr GdkPixbuf.Pixbuf)
-
-
-pixbufGetFromSurface ::
-    (MonadIO m) =>
-    Cairo.Surface ->                        -- surface
-    Int32 ->                                -- src_x
-    Int32 ->                                -- src_y
-    Int32 ->                                -- width
-    Int32 ->                                -- height
-    m GdkPixbuf.Pixbuf
-pixbufGetFromSurface surface src_x src_y width height = liftIO $ do
-    let surface' = unsafeManagedPtrGetPtr surface
-    result <- gdk_pixbuf_get_from_surface surface' src_x src_y width height
-    checkUnexpectedReturnNULL "gdk_pixbuf_get_from_surface" result
-    result' <- (wrapObject GdkPixbuf.Pixbuf) result
-    touchManagedPtr surface
-    return result'
-
--- function gdk_pixbuf_get_from_window
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GdkPixbuf" "Pixbuf"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_pixbuf_get_from_window" gdk_pixbuf_get_from_window :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Int32 ->                                -- src_x : TBasicType TInt32
-    Int32 ->                                -- src_y : TBasicType TInt32
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
-    IO (Ptr GdkPixbuf.Pixbuf)
-
-
-pixbufGetFromWindow ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    Int32 ->                                -- src_x
-    Int32 ->                                -- src_y
-    Int32 ->                                -- width
-    Int32 ->                                -- height
-    m GdkPixbuf.Pixbuf
-pixbufGetFromWindow window src_x src_y width height = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    result <- gdk_pixbuf_get_from_window window' src_x src_y width height
-    checkUnexpectedReturnNULL "gdk_pixbuf_get_from_window" result
-    result' <- (wrapObject GdkPixbuf.Pixbuf) result
-    touchManagedPtr window
-    return result'
-
--- function gdk_pointer_grab
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "confine_to", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "confine_to", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "GrabStatus"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_pointer_grab" gdk_pointer_grab :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    CInt ->                                 -- owner_events : TBasicType TBoolean
-    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
-    Ptr Window ->                           -- confine_to : TInterface "Gdk" "Window"
-    Ptr Cursor ->                           -- cursor : TInterface "Gdk" "Cursor"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO CUInt
-
-{-# DEPRECATED pointerGrab ["(Since version 3.0)","Use gdk_device_grab() instead."]#-}
-pointerGrab ::
-    (MonadIO m, WindowK a, WindowK b, CursorK c) =>
-    a ->                                    -- window
-    Bool ->                                 -- owner_events
-    [EventMask] ->                          -- event_mask
-    Maybe (b) ->                            -- confine_to
-    Maybe (c) ->                            -- cursor
-    Word32 ->                               -- time_
-    m GrabStatus
-pointerGrab window owner_events event_mask confine_to cursor time_ = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let owner_events' = (fromIntegral . fromEnum) owner_events
-    let event_mask' = gflagsToWord event_mask
-    maybeConfine_to <- case confine_to of
-        Nothing -> return nullPtr
-        Just jConfine_to -> do
-            let jConfine_to' = unsafeManagedPtrCastPtr jConfine_to
-            return jConfine_to'
-    maybeCursor <- case cursor of
-        Nothing -> return nullPtr
-        Just jCursor -> do
-            let jCursor' = unsafeManagedPtrCastPtr jCursor
-            return jCursor'
-    result <- gdk_pointer_grab window' owner_events' event_mask' maybeConfine_to maybeCursor time_
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr window
-    whenJust confine_to touchManagedPtr
-    whenJust cursor touchManagedPtr
-    return result'
-
--- function gdk_pointer_is_grabbed
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_pointer_is_grabbed" gdk_pointer_is_grabbed :: 
-    IO CInt
-
-{-# DEPRECATED pointerIsGrabbed ["(Since version 3.0)","Use gdk_display_device_is_grabbed() instead."]#-}
-pointerIsGrabbed ::
-    (MonadIO m) =>
-    m Bool
-pointerIsGrabbed  = liftIO $ do
-    result <- gdk_pointer_is_grabbed
-    let result' = (/= 0) result
-    return result'
-
--- function gdk_pointer_ungrab
--- Args : [Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_pointer_ungrab" gdk_pointer_ungrab :: 
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-{-# DEPRECATED pointerUngrab ["(Since version 3.0)","Use gdk_device_ungrab(), together with gdk_device_grab()","            instead."]#-}
-pointerUngrab ::
-    (MonadIO m) =>
-    Word32 ->                               -- time_
-    m ()
-pointerUngrab time_ = liftIO $ do
-    gdk_pointer_ungrab time_
-    return ()
-
--- function gdk_pre_parse_libgtk_only
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_pre_parse_libgtk_only" gdk_pre_parse_libgtk_only :: 
-    IO ()
-
-{-# DEPRECATED preParseLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside","  of GTK+"]#-}
-preParseLibgtkOnly ::
-    (MonadIO m) =>
-    m ()
-preParseLibgtkOnly  = liftIO $ do
-    gdk_pre_parse_libgtk_only
-    return ()
-
--- function gdk_property_delete
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_property_delete" gdk_property_delete :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Ptr Atom ->                             -- property : TInterface "Gdk" "Atom"
-    IO ()
-
-
-propertyDelete ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    Atom ->                                 -- property
-    m ()
-propertyDelete window property = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let property' = unsafeManagedPtrGetPtr property
-    gdk_property_delete window' property'
-    touchManagedPtr window
-    touchManagedPtr property
-    return ()
-
--- function gdk_property_get
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pdelete", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "actual_property_type", argType = TInterface "Gdk" "Atom", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "actual_format", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "actual_length", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "data", argType = TCArray False (-1) 8 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "actual_length", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pdelete", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_property_get" gdk_property_get :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Ptr Atom ->                             -- property : TInterface "Gdk" "Atom"
-    Ptr Atom ->                             -- type : TInterface "Gdk" "Atom"
-    Word64 ->                               -- offset : TBasicType TUInt64
-    Word64 ->                               -- length : TBasicType TUInt64
-    Int32 ->                                -- pdelete : TBasicType TInt32
-    Ptr (Ptr Atom) ->                       -- actual_property_type : TInterface "Gdk" "Atom"
-    Ptr Int32 ->                            -- actual_format : TBasicType TInt32
-    Ptr Int32 ->                            -- actual_length : TBasicType TInt32
-    Ptr (Ptr Word8) ->                      -- data : TCArray False (-1) 8 (TBasicType TUInt8)
-    IO CInt
-
-
-propertyGet ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    Atom ->                                 -- property
-    Atom ->                                 -- type
-    Word64 ->                               -- offset
-    Word64 ->                               -- length
-    Int32 ->                                -- pdelete
-    m (Bool,Atom,Int32,ByteString)
-propertyGet window property type_ offset length_ pdelete = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let property' = unsafeManagedPtrGetPtr property
-    let type_' = unsafeManagedPtrGetPtr type_
-    actual_property_type <- allocMem :: IO (Ptr (Ptr Atom))
-    actual_format <- allocMem :: IO (Ptr Int32)
-    actual_length <- allocMem :: IO (Ptr Int32)
-    data_ <- allocMem :: IO (Ptr (Ptr Word8))
-    result <- gdk_property_get window' property' type_' offset length_ pdelete actual_property_type actual_format actual_length data_
-    actual_length' <- peek actual_length
-    let result' = (/= 0) result
-    actual_property_type' <- peek actual_property_type
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    actual_property_type'' <- (\x -> Atom <$> newForeignPtr_ x) actual_property_type'
-    actual_format' <- peek actual_format
-    data_' <- peek data_
-    data_'' <- (unpackByteStringWithLength actual_length') data_'
-    freeMem data_'
-    touchManagedPtr window
-    touchManagedPtr property
-    touchManagedPtr type_
-    freeMem actual_property_type
-    freeMem actual_format
-    freeMem actual_length
-    freeMem data_
-    return (result', actual_property_type'', actual_format', data_'')
-
--- function gdk_query_depths
--- Args : [Arg {argName = "depths", argType = TCArray False (-1) 1 (TBasicType TInt32), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "count", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "count", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_query_depths" gdk_query_depths :: 
-    Ptr (Ptr Int32) ->                      -- depths : TCArray False (-1) 1 (TBasicType TInt32)
-    Ptr Int32 ->                            -- count : TBasicType TInt32
-    IO ()
-
-
-queryDepths ::
-    (MonadIO m) =>
-    m ([Int32])
-queryDepths  = liftIO $ do
-    depths <- allocMem :: IO (Ptr (Ptr Int32))
-    count <- allocMem :: IO (Ptr Int32)
-    gdk_query_depths depths count
-    count' <- peek count
-    depths' <- peek depths
-    depths'' <- (unpackStorableArrayWithLength count') depths'
-    freeMem depths
-    freeMem count
-    return depths''
-
--- function gdk_query_visual_types
--- Args : [Arg {argName = "visual_types", argType = TCArray False (-1) 1 (TInterface "Gdk" "VisualType"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "count", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "count", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_query_visual_types" gdk_query_visual_types :: 
-    Ptr (Ptr CUInt) ->                      -- visual_types : TCArray False (-1) 1 (TInterface "Gdk" "VisualType")
-    Ptr Int32 ->                            -- count : TBasicType TInt32
-    IO ()
-
-
-queryVisualTypes ::
-    (MonadIO m) =>
-    m ([VisualType])
-queryVisualTypes  = liftIO $ do
-    visual_types <- allocMem :: IO (Ptr (Ptr CUInt))
-    count <- allocMem :: IO (Ptr Int32)
-    gdk_query_visual_types visual_types count
-    count' <- peek count
-    visual_types' <- peek visual_types
-    visual_types'' <- (unpackStorableArrayWithLength count') visual_types'
-    let visual_types''' = map (toEnum . fromIntegral) visual_types''
-    freeMem visual_types
-    freeMem count
-    return visual_types'''
-
--- function gdk_selection_convert
--- Args : [Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_selection_convert" gdk_selection_convert :: 
-    Ptr Window ->                           -- requestor : TInterface "Gdk" "Window"
-    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
-    Ptr Atom ->                             -- target : TInterface "Gdk" "Atom"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-selectionConvert ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- requestor
-    Atom ->                                 -- selection
-    Atom ->                                 -- target
-    Word32 ->                               -- time_
-    m ()
-selectionConvert requestor selection target time_ = liftIO $ do
-    let requestor' = unsafeManagedPtrCastPtr requestor
-    let selection' = unsafeManagedPtrGetPtr selection
-    let target' = unsafeManagedPtrGetPtr target
-    gdk_selection_convert requestor' selection' target' time_
-    touchManagedPtr requestor
-    touchManagedPtr selection
-    touchManagedPtr target
-    return ()
-
--- function gdk_selection_owner_get
--- Args : [Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_selection_owner_get" gdk_selection_owner_get :: 
-    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
-    IO (Ptr Window)
-
-
-selectionOwnerGet ::
-    (MonadIO m) =>
-    Atom ->                                 -- selection
-    m Window
-selectionOwnerGet selection = liftIO $ do
-    let selection' = unsafeManagedPtrGetPtr selection
-    result <- gdk_selection_owner_get selection'
-    checkUnexpectedReturnNULL "gdk_selection_owner_get" result
-    result' <- (newObject Window) result
-    touchManagedPtr selection
-    return result'
-
--- function gdk_selection_owner_get_for_display
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_selection_owner_get_for_display" gdk_selection_owner_get_for_display :: 
-    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
-    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
-    IO (Ptr Window)
-
-
-selectionOwnerGetForDisplay ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- display
-    Atom ->                                 -- selection
-    m Window
-selectionOwnerGetForDisplay display selection = liftIO $ do
-    let display' = unsafeManagedPtrCastPtr display
-    let selection' = unsafeManagedPtrGetPtr selection
-    result <- gdk_selection_owner_get_for_display display' selection'
-    checkUnexpectedReturnNULL "gdk_selection_owner_get_for_display" result
-    result' <- (newObject Window) result
-    touchManagedPtr display
-    touchManagedPtr selection
-    return result'
-
--- function gdk_selection_owner_set
--- Args : [Arg {argName = "owner", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "send_event", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "owner", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "send_event", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_selection_owner_set" gdk_selection_owner_set :: 
-    Ptr Window ->                           -- owner : TInterface "Gdk" "Window"
-    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    CInt ->                                 -- send_event : TBasicType TBoolean
-    IO CInt
-
-
-selectionOwnerSet ::
-    (MonadIO m, WindowK a) =>
-    Maybe (a) ->                            -- owner
-    Atom ->                                 -- selection
-    Word32 ->                               -- time_
-    Bool ->                                 -- send_event
-    m Bool
-selectionOwnerSet owner selection time_ send_event = liftIO $ do
-    maybeOwner <- case owner of
-        Nothing -> return nullPtr
-        Just jOwner -> do
-            let jOwner' = unsafeManagedPtrCastPtr jOwner
-            return jOwner'
-    let selection' = unsafeManagedPtrGetPtr selection
-    let send_event' = (fromIntegral . fromEnum) send_event
-    result <- gdk_selection_owner_set maybeOwner selection' time_ send_event'
-    let result' = (/= 0) result
-    whenJust owner touchManagedPtr
-    touchManagedPtr selection
-    return result'
-
--- function gdk_selection_owner_set_for_display
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "send_event", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "send_event", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_selection_owner_set_for_display" gdk_selection_owner_set_for_display :: 
-    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
-    Ptr Window ->                           -- owner : TInterface "Gdk" "Window"
-    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    CInt ->                                 -- send_event : TBasicType TBoolean
-    IO CInt
-
-
-selectionOwnerSetForDisplay ::
-    (MonadIO m, DisplayK a, WindowK b) =>
-    a ->                                    -- display
-    Maybe (b) ->                            -- owner
-    Atom ->                                 -- selection
-    Word32 ->                               -- time_
-    Bool ->                                 -- send_event
-    m Bool
-selectionOwnerSetForDisplay display owner selection time_ send_event = liftIO $ do
-    let display' = unsafeManagedPtrCastPtr display
-    maybeOwner <- case owner of
-        Nothing -> return nullPtr
-        Just jOwner -> do
-            let jOwner' = unsafeManagedPtrCastPtr jOwner
-            return jOwner'
-    let selection' = unsafeManagedPtrGetPtr selection
-    let send_event' = (fromIntegral . fromEnum) send_event
-    result <- gdk_selection_owner_set_for_display display' maybeOwner selection' time_ send_event'
-    let result' = (/= 0) result
-    touchManagedPtr display
-    whenJust owner touchManagedPtr
-    touchManagedPtr selection
-    return result'
-
--- function gdk_selection_send_notify
--- Args : [Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_selection_send_notify" gdk_selection_send_notify :: 
-    Ptr Window ->                           -- requestor : TInterface "Gdk" "Window"
-    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
-    Ptr Atom ->                             -- target : TInterface "Gdk" "Atom"
-    Ptr Atom ->                             -- property : TInterface "Gdk" "Atom"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-selectionSendNotify ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- requestor
-    Atom ->                                 -- selection
-    Atom ->                                 -- target
-    Atom ->                                 -- property
-    Word32 ->                               -- time_
-    m ()
-selectionSendNotify requestor selection target property time_ = liftIO $ do
-    let requestor' = unsafeManagedPtrCastPtr requestor
-    let selection' = unsafeManagedPtrGetPtr selection
-    let target' = unsafeManagedPtrGetPtr target
-    let property' = unsafeManagedPtrGetPtr property
-    gdk_selection_send_notify requestor' selection' target' property' time_
-    touchManagedPtr requestor
-    touchManagedPtr selection
-    touchManagedPtr target
-    touchManagedPtr property
-    return ()
-
--- function gdk_selection_send_notify_for_display
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_selection_send_notify_for_display" gdk_selection_send_notify_for_display :: 
-    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
-    Ptr Window ->                           -- requestor : TInterface "Gdk" "Window"
-    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
-    Ptr Atom ->                             -- target : TInterface "Gdk" "Atom"
-    Ptr Atom ->                             -- property : TInterface "Gdk" "Atom"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-selectionSendNotifyForDisplay ::
-    (MonadIO m, DisplayK a, WindowK b) =>
-    a ->                                    -- display
-    b ->                                    -- requestor
-    Atom ->                                 -- selection
-    Atom ->                                 -- target
-    Atom ->                                 -- property
-    Word32 ->                               -- time_
-    m ()
-selectionSendNotifyForDisplay display requestor selection target property time_ = liftIO $ do
-    let display' = unsafeManagedPtrCastPtr display
-    let requestor' = unsafeManagedPtrCastPtr requestor
-    let selection' = unsafeManagedPtrGetPtr selection
-    let target' = unsafeManagedPtrGetPtr target
-    let property' = unsafeManagedPtrGetPtr property
-    gdk_selection_send_notify_for_display display' requestor' selection' target' property' time_
-    touchManagedPtr display
-    touchManagedPtr requestor
-    touchManagedPtr selection
-    touchManagedPtr target
-    touchManagedPtr property
-    return ()
-
--- function gdk_set_allowed_backends
--- Args : [Arg {argName = "backends", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "backends", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_set_allowed_backends" gdk_set_allowed_backends :: 
-    CString ->                              -- backends : TBasicType TUTF8
-    IO ()
-
-
-setAllowedBackends ::
-    (MonadIO m) =>
-    T.Text ->                               -- backends
-    m ()
-setAllowedBackends backends = liftIO $ do
-    backends' <- textToCString backends
-    gdk_set_allowed_backends backends'
-    freeMem backends'
-    return ()
-
--- function gdk_set_double_click_time
--- Args : [Arg {argName = "msec", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "msec", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_set_double_click_time" gdk_set_double_click_time :: 
-    Word32 ->                               -- msec : TBasicType TUInt32
-    IO ()
-
-
-setDoubleClickTime ::
-    (MonadIO m) =>
-    Word32 ->                               -- msec
-    m ()
-setDoubleClickTime msec = liftIO $ do
-    gdk_set_double_click_time msec
-    return ()
-
--- function gdk_set_program_class
--- Args : [Arg {argName = "program_class", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "program_class", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_set_program_class" gdk_set_program_class :: 
-    CString ->                              -- program_class : TBasicType TUTF8
-    IO ()
-
-
-setProgramClass ::
-    (MonadIO m) =>
-    T.Text ->                               -- program_class
-    m ()
-setProgramClass program_class = liftIO $ do
-    program_class' <- textToCString program_class
-    gdk_set_program_class program_class'
-    freeMem program_class'
-    return ()
-
--- function gdk_set_show_events
--- Args : [Arg {argName = "show_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "show_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_set_show_events" gdk_set_show_events :: 
-    CInt ->                                 -- show_events : TBasicType TBoolean
-    IO ()
-
-
-setShowEvents ::
-    (MonadIO m) =>
-    Bool ->                                 -- show_events
-    m ()
-setShowEvents show_events = liftIO $ do
-    let show_events' = (fromIntegral . fromEnum) show_events
-    gdk_set_show_events show_events'
-    return ()
-
--- function gdk_setting_get
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_setting_get" gdk_setting_get :: 
-    CString ->                              -- name : TBasicType TUTF8
-    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
-    IO CInt
-
-
-settingGet ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    GValue ->                               -- value
-    m Bool
-settingGet name value = liftIO $ do
-    name' <- textToCString name
-    let value' = unsafeManagedPtrGetPtr value
-    result <- gdk_setting_get name' value'
-    let result' = (/= 0) result
-    touchManagedPtr value
-    freeMem name'
-    return result'
-
--- function gdk_synthesize_window_state
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "unset_flags", argType = TInterface "Gdk" "WindowState", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "set_flags", argType = TInterface "Gdk" "WindowState", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "unset_flags", argType = TInterface "Gdk" "WindowState", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "set_flags", argType = TInterface "Gdk" "WindowState", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_synthesize_window_state" gdk_synthesize_window_state :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    CUInt ->                                -- unset_flags : TInterface "Gdk" "WindowState"
-    CUInt ->                                -- set_flags : TInterface "Gdk" "WindowState"
-    IO ()
-
-
-synthesizeWindowState ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    [WindowState] ->                        -- unset_flags
-    [WindowState] ->                        -- set_flags
-    m ()
-synthesizeWindowState window unset_flags set_flags_ = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let unset_flags' = gflagsToWord unset_flags
-    let set_flags_' = gflagsToWord set_flags_
-    gdk_synthesize_window_state window' unset_flags' set_flags_'
-    touchManagedPtr window
-    return ()
-
--- function gdk_test_render_sync
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_test_render_sync" gdk_test_render_sync :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    IO ()
-
-
-testRenderSync ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    m ()
-testRenderSync window = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    gdk_test_render_sync window'
-    touchManagedPtr window
-    return ()
-
--- function gdk_test_simulate_button
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button_pressrelease", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button_pressrelease", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_test_simulate_button" gdk_test_simulate_button :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    Word32 ->                               -- button : TBasicType TUInt32
-    CUInt ->                                -- modifiers : TInterface "Gdk" "ModifierType"
-    CUInt ->                                -- button_pressrelease : TInterface "Gdk" "EventType"
-    IO CInt
-
-
-testSimulateButton ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    Word32 ->                               -- button
-    [ModifierType] ->                       -- modifiers
-    EventType ->                            -- button_pressrelease
-    m Bool
-testSimulateButton window x y button modifiers button_pressrelease = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let modifiers' = gflagsToWord modifiers
-    let button_pressrelease' = (fromIntegral . fromEnum) button_pressrelease
-    result <- gdk_test_simulate_button window' x y button modifiers' button_pressrelease'
-    let result' = (/= 0) result
-    touchManagedPtr window
-    return result'
-
--- function gdk_test_simulate_key
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key_pressrelease", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key_pressrelease", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_test_simulate_key" gdk_test_simulate_key :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    Word32 ->                               -- keyval : TBasicType TUInt32
-    CUInt ->                                -- modifiers : TInterface "Gdk" "ModifierType"
-    CUInt ->                                -- key_pressrelease : TInterface "Gdk" "EventType"
-    IO CInt
-
-
-testSimulateKey ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    Word32 ->                               -- keyval
-    [ModifierType] ->                       -- modifiers
-    EventType ->                            -- key_pressrelease
-    m Bool
-testSimulateKey window x y keyval modifiers key_pressrelease = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let modifiers' = gflagsToWord modifiers
-    let key_pressrelease' = (fromIntegral . fromEnum) key_pressrelease
-    result <- gdk_test_simulate_key window' x y keyval modifiers' key_pressrelease'
-    let result' = (/= 0) result
-    touchManagedPtr window
-    return result'
-
--- function gdk_text_property_to_utf8_list_for_display
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "encoding", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TCArray False (-1) 4 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "encoding", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TCArray False (-1) 4 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_text_property_to_utf8_list_for_display" gdk_text_property_to_utf8_list_for_display :: 
-    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
-    Ptr Atom ->                             -- encoding : TInterface "Gdk" "Atom"
-    Int32 ->                                -- format : TBasicType TInt32
-    Ptr Word8 ->                            -- text : TCArray False (-1) 4 (TBasicType TUInt8)
-    Int32 ->                                -- length : TBasicType TInt32
-    Ptr (Ptr CString) ->                    -- list : TCArray True (-1) (-1) (TBasicType TUTF8)
-    IO Int32
-
-
-textPropertyToUtf8ListForDisplay ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- display
-    Atom ->                                 -- encoding
-    Int32 ->                                -- format
-    ByteString ->                           -- text
-    m (Int32,[T.Text])
-textPropertyToUtf8ListForDisplay display encoding format text = liftIO $ do
-    let length_ = fromIntegral $ B.length text
-    let display' = unsafeManagedPtrCastPtr display
-    let encoding' = unsafeManagedPtrGetPtr encoding
-    text' <- packByteString text
-    list <- allocMem :: IO (Ptr (Ptr CString))
-    result <- gdk_text_property_to_utf8_list_for_display display' encoding' format text' length_ list
-    list' <- peek list
-    list'' <- unpackZeroTerminatedUTF8CArray list'
-    mapZeroTerminatedCArray freeMem list'
-    freeMem list'
-    touchManagedPtr display
-    touchManagedPtr encoding
-    freeMem text'
-    freeMem list
-    return (result, list'')
-
--- function gdk_threads_add_idle_full
--- Args : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_threads_add_idle_full" gdk_threads_add_idle_full :: 
-    Int32 ->                                -- priority : TBasicType TInt32
-    FunPtr GLib.SourceFuncC ->              -- function : TInterface "GLib" "SourceFunc"
-    Ptr () ->                               -- data : TBasicType TVoid
-    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"
-    IO Word32
-
-
-threadsAddIdle ::
-    (MonadIO m) =>
-    Int32 ->                                -- priority
-    GLib.SourceFunc ->                      -- function
-    m Word32
-threadsAddIdle priority function = liftIO $ do
-    function' <- GLib.mkSourceFunc (GLib.sourceFuncWrapper Nothing function)
-    let data_ = castFunPtrToPtr function'
-    let notify = safeFreeFunPtrPtr
-    result <- gdk_threads_add_idle_full priority function' data_ notify
-    return result
-
--- function gdk_threads_add_timeout_full
--- Args : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_threads_add_timeout_full" gdk_threads_add_timeout_full :: 
-    Int32 ->                                -- priority : TBasicType TInt32
-    Word32 ->                               -- interval : TBasicType TUInt32
-    FunPtr GLib.SourceFuncC ->              -- function : TInterface "GLib" "SourceFunc"
-    Ptr () ->                               -- data : TBasicType TVoid
-    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"
-    IO Word32
-
-
-threadsAddTimeout ::
-    (MonadIO m) =>
-    Int32 ->                                -- priority
-    Word32 ->                               -- interval
-    GLib.SourceFunc ->                      -- function
-    m Word32
-threadsAddTimeout priority interval function = liftIO $ do
-    function' <- GLib.mkSourceFunc (GLib.sourceFuncWrapper Nothing function)
-    let data_ = castFunPtrToPtr function'
-    let notify = safeFreeFunPtrPtr
-    result <- gdk_threads_add_timeout_full priority interval function' data_ notify
-    return result
-
--- function gdk_threads_add_timeout_seconds_full
--- Args : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_threads_add_timeout_seconds_full" gdk_threads_add_timeout_seconds_full :: 
-    Int32 ->                                -- priority : TBasicType TInt32
-    Word32 ->                               -- interval : TBasicType TUInt32
-    FunPtr GLib.SourceFuncC ->              -- function : TInterface "GLib" "SourceFunc"
-    Ptr () ->                               -- data : TBasicType TVoid
-    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"
-    IO Word32
-
-
-threadsAddTimeoutSeconds ::
-    (MonadIO m) =>
-    Int32 ->                                -- priority
-    Word32 ->                               -- interval
-    GLib.SourceFunc ->                      -- function
-    m Word32
-threadsAddTimeoutSeconds priority interval function = liftIO $ do
-    function' <- GLib.mkSourceFunc (GLib.sourceFuncWrapper Nothing function)
-    let data_ = castFunPtrToPtr function'
-    let notify = safeFreeFunPtrPtr
-    result <- gdk_threads_add_timeout_seconds_full priority interval function' data_ notify
-    return result
-
--- function gdk_threads_enter
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_threads_enter" gdk_threads_enter :: 
-    IO ()
-
-{-# DEPRECATED threadsEnter ["(Since version 3.6)","All GDK and GTK+ calls should be made from the main","    thread"]#-}
-threadsEnter ::
-    (MonadIO m) =>
-    m ()
-threadsEnter  = liftIO $ do
-    gdk_threads_enter
-    return ()
-
--- function gdk_threads_init
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_threads_init" gdk_threads_init :: 
-    IO ()
-
-{-# DEPRECATED threadsInit ["(Since version 3.6)","All GDK and GTK+ calls should be made from the main","    thread"]#-}
-threadsInit ::
-    (MonadIO m) =>
-    m ()
-threadsInit  = liftIO $ do
-    gdk_threads_init
-    return ()
-
--- function gdk_threads_leave
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_threads_leave" gdk_threads_leave :: 
-    IO ()
-
-{-# DEPRECATED threadsLeave ["(Since version 3.6)","All GDK and GTK+ calls should be made from the main","    thread"]#-}
-threadsLeave ::
-    (MonadIO m) =>
-    m ()
-threadsLeave  = liftIO $ do
-    gdk_threads_leave
-    return ()
-
--- function gdk_unicode_to_keyval
--- Args : [Arg {argName = "wc", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "wc", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_unicode_to_keyval" gdk_unicode_to_keyval :: 
-    Word32 ->                               -- wc : TBasicType TUInt32
-    IO Word32
-
-
-unicodeToKeyval ::
-    (MonadIO m) =>
-    Word32 ->                               -- wc
-    m Word32
-unicodeToKeyval wc = liftIO $ do
-    result <- gdk_unicode_to_keyval wc
-    return result
-
--- function gdk_utf8_to_string_target
--- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_utf8_to_string_target" gdk_utf8_to_string_target :: 
-    CString ->                              -- str : TBasicType TUTF8
-    IO CString
-
-
-utf8ToStringTarget ::
-    (MonadIO m) =>
-    T.Text ->                               -- str
-    m T.Text
-utf8ToStringTarget str = liftIO $ do
-    str' <- textToCString str
-    result <- gdk_utf8_to_string_target str'
-    checkUnexpectedReturnNULL "gdk_utf8_to_string_target" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    return result'
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk
+    (     module GI.Gdk.Callbacks                 ,
+    module GI.Gdk.Constants                 ,
+    module GI.Gdk.Enums                     ,
+    module GI.Gdk.Flags                     ,
+    module GI.Gdk.Functions                 ,
+    module GI.Gdk.Objects                   ,
+    module GI.Gdk.Structs                   ,
+    module GI.Gdk.Unions                    ,
+
+
+    ) where
+
+import GI.Gdk.Callbacks
+import GI.Gdk.Constants
+import GI.Gdk.Enums
+import GI.Gdk.Flags
+import GI.Gdk.Functions
+import GI.Gdk.Objects
+import GI.Gdk.Structs
+import GI.Gdk.Unions
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
 
diff --git a/GI/Gdk/Callbacks.hs b/GI/Gdk/Callbacks.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Callbacks.hs
@@ -0,0 +1,196 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Callbacks
+    ( 
+
+ -- * Signals
+-- ** EventFunc
+    EventFunc                               ,
+    EventFuncC                              ,
+    eventFuncClosure                        ,
+    eventFuncWrapper                        ,
+    mkEventFunc                             ,
+    noEventFunc                             ,
+
+
+-- ** FilterFunc
+    FilterFunc                              ,
+    FilterFuncC                             ,
+    filterFuncClosure                       ,
+    filterFuncWrapper                       ,
+    mkFilterFunc                            ,
+    noFilterFunc                            ,
+
+
+-- ** WindowChildFunc
+    WindowChildFunc                         ,
+    WindowChildFuncC                        ,
+    mkWindowChildFunc                       ,
+    noWindowChildFunc                       ,
+    windowChildFuncClosure                  ,
+    windowChildFuncWrapper                  ,
+
+
+-- ** WindowInvalidateHandlerFunc
+    WindowInvalidateHandlerFunc             ,
+    WindowInvalidateHandlerFuncC            ,
+    mkWindowInvalidateHandlerFunc           ,
+    noWindowInvalidateHandlerFunc           ,
+    windowInvalidateHandlerFuncClosure      ,
+    windowInvalidateHandlerFuncWrapper      ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+
+import qualified GI.Cairo as Cairo
+
+-- callback WindowInvalidateHandlerFunc
+windowInvalidateHandlerFuncClosure :: WindowInvalidateHandlerFunc -> IO Closure
+windowInvalidateHandlerFuncClosure cb = newCClosure =<< mkWindowInvalidateHandlerFunc wrapped
+    where wrapped = windowInvalidateHandlerFuncWrapper Nothing cb
+
+type WindowInvalidateHandlerFuncC =
+    Ptr Window ->
+    Ptr Cairo.Region ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkWindowInvalidateHandlerFunc :: WindowInvalidateHandlerFuncC -> IO (FunPtr WindowInvalidateHandlerFuncC)
+
+type WindowInvalidateHandlerFunc =
+    Window ->
+    Cairo.Region ->
+    IO ()
+
+noWindowInvalidateHandlerFunc :: Maybe WindowInvalidateHandlerFunc
+noWindowInvalidateHandlerFunc = Nothing
+
+windowInvalidateHandlerFuncWrapper ::
+    Maybe (Ptr (FunPtr (WindowInvalidateHandlerFuncC))) ->
+    WindowInvalidateHandlerFunc ->
+    Ptr Window ->
+    Ptr Cairo.Region ->
+    IO ()
+windowInvalidateHandlerFuncWrapper funptrptr _cb window region = do
+    window' <- (newObject Window) window
+    region' <- (newBoxed Cairo.Region) region
+    _cb  window' region'
+    maybeReleaseFunPtr funptrptr
+
+-- callback WindowChildFunc
+windowChildFuncClosure :: WindowChildFunc -> IO Closure
+windowChildFuncClosure cb = newCClosure =<< mkWindowChildFunc wrapped
+    where wrapped = windowChildFuncWrapper Nothing cb
+
+type WindowChildFuncC =
+    Ptr Window ->
+    Ptr () ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkWindowChildFunc :: WindowChildFuncC -> IO (FunPtr WindowChildFuncC)
+
+type WindowChildFunc =
+    Window ->
+    IO Bool
+
+noWindowChildFunc :: Maybe WindowChildFunc
+noWindowChildFunc = Nothing
+
+windowChildFuncWrapper ::
+    Maybe (Ptr (FunPtr (WindowChildFuncC))) ->
+    WindowChildFunc ->
+    Ptr Window ->
+    Ptr () ->
+    IO CInt
+windowChildFuncWrapper funptrptr _cb window _ = do
+    window' <- (newObject Window) window
+    result <- _cb  window'
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- callback FilterFunc
+filterFuncClosure :: FilterFunc -> IO Closure
+filterFuncClosure cb = newCClosure =<< mkFilterFunc wrapped
+    where wrapped = filterFuncWrapper Nothing cb
+
+type FilterFuncC =
+    Ptr () ->
+    Ptr Event ->
+    Ptr () ->
+    IO CUInt
+
+foreign import ccall "wrapper"
+    mkFilterFunc :: FilterFuncC -> IO (FunPtr FilterFuncC)
+
+type FilterFunc =
+    Ptr () ->
+    Event ->
+    IO FilterReturn
+
+noFilterFunc :: Maybe FilterFunc
+noFilterFunc = Nothing
+
+filterFuncWrapper ::
+    Maybe (Ptr (FunPtr (FilterFuncC))) ->
+    FilterFunc ->
+    Ptr () ->
+    Ptr Event ->
+    Ptr () ->
+    IO CUInt
+filterFuncWrapper funptrptr _cb xevent event _ = do
+    event' <- (newBoxed Event) event
+    result <- _cb  xevent event'
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- callback EventFunc
+eventFuncClosure :: EventFunc -> IO Closure
+eventFuncClosure cb = newCClosure =<< mkEventFunc wrapped
+    where wrapped = eventFuncWrapper Nothing cb
+
+type EventFuncC =
+    Ptr Event ->
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkEventFunc :: EventFuncC -> IO (FunPtr EventFuncC)
+
+type EventFunc =
+    Event ->
+    IO ()
+
+noEventFunc :: Maybe EventFunc
+noEventFunc = Nothing
+
+eventFuncWrapper ::
+    Maybe (Ptr (FunPtr (EventFuncC))) ->
+    EventFunc ->
+    Ptr Event ->
+    Ptr () ->
+    IO ()
+eventFuncWrapper funptrptr _cb event _ = do
+    event' <- (newBoxed Event) event
+    _cb  event'
+    maybeReleaseFunPtr funptrptr
+
+
diff --git a/GI/Gdk/Constants.hs b/GI/Gdk/Constants.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Constants.hs
@@ -0,0 +1,9140 @@
+{-# LANGUAGE PatternSynonyms, ScopedTypeVariables, ViewPatterns #-}
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Constants
+    ( 
+    pattern PRIORITY_REDRAW                 ,
+    pattern PARENT_RELATIVE                 ,
+    pattern MAX_TIMECOORD_AXES              ,
+    pattern KEY_zstroke                     ,
+    pattern KEY_zerosuperior                ,
+    pattern KEY_zerosubscript               ,
+    pattern KEY_zcaron                      ,
+    pattern KEY_zacute                      ,
+    pattern KEY_zabovedot                   ,
+    pattern KEY_z                           ,
+    pattern KEY_ytilde                      ,
+    pattern KEY_yhook                       ,
+    pattern KEY_ygrave                      ,
+    pattern KEY_yen                         ,
+    pattern KEY_ydiaeresis                  ,
+    pattern KEY_ycircumflex                 ,
+    pattern KEY_ybelowdot                   ,
+    pattern KEY_yacute                      ,
+    pattern KEY_y                           ,
+    pattern KEY_xabovedot                   ,
+    pattern KEY_x                           ,
+    pattern KEY_wgrave                      ,
+    pattern KEY_wdiaeresis                  ,
+    pattern KEY_wcircumflex                 ,
+    pattern KEY_wacute                      ,
+    pattern KEY_w                           ,
+    pattern KEY_vt                          ,
+    pattern KEY_voicedsound                 ,
+    pattern KEY_vertconnector               ,
+    pattern KEY_vertbar                     ,
+    pattern KEY_variation                   ,
+    pattern KEY_v                           ,
+    pattern KEY_utilde                      ,
+    pattern KEY_uring                       ,
+    pattern KEY_uptack                      ,
+    pattern KEY_upstile                     ,
+    pattern KEY_upshoe                      ,
+    pattern KEY_uprightcorner               ,
+    pattern KEY_upleftcorner                ,
+    pattern KEY_upcaret                     ,
+    pattern KEY_uparrow                     ,
+    pattern KEY_uogonek                     ,
+    pattern KEY_union                       ,
+    pattern KEY_underscore                  ,
+    pattern KEY_underbar                    ,
+    pattern KEY_umacron                     ,
+    pattern KEY_uhorntilde                  ,
+    pattern KEY_uhornhook                   ,
+    pattern KEY_uhorngrave                  ,
+    pattern KEY_uhornbelowdot               ,
+    pattern KEY_uhornacute                  ,
+    pattern KEY_uhorn                       ,
+    pattern KEY_uhook                       ,
+    pattern KEY_ugrave                      ,
+    pattern KEY_udoubleacute                ,
+    pattern KEY_udiaeresis                  ,
+    pattern KEY_ucircumflex                 ,
+    pattern KEY_ubreve                      ,
+    pattern KEY_ubelowdot                   ,
+    pattern KEY_uacute                      ,
+    pattern KEY_u                           ,
+    pattern KEY_twothirds                   ,
+    pattern KEY_twosuperior                 ,
+    pattern KEY_twosubscript                ,
+    pattern KEY_twofifths                   ,
+    pattern KEY_tslash                      ,
+    pattern KEY_trademarkincircle           ,
+    pattern KEY_trademark                   ,
+    pattern KEY_topvertsummationconnector   ,
+    pattern KEY_topt                        ,
+    pattern KEY_toprightsummation           ,
+    pattern KEY_toprightsqbracket           ,
+    pattern KEY_toprightparens              ,
+    pattern KEY_topleftsummation            ,
+    pattern KEY_topleftsqbracket            ,
+    pattern KEY_topleftradical              ,
+    pattern KEY_topleftparens               ,
+    pattern KEY_topintegral                 ,
+    pattern KEY_tintegral                   ,
+    pattern KEY_threesuperior               ,
+    pattern KEY_threesubscript              ,
+    pattern KEY_threequarters               ,
+    pattern KEY_threefifths                 ,
+    pattern KEY_threeeighths                ,
+    pattern KEY_thorn                       ,
+    pattern KEY_thinspace                   ,
+    pattern KEY_therefore                   ,
+    pattern KEY_telephonerecorder           ,
+    pattern KEY_telephone                   ,
+    pattern KEY_tcedilla                    ,
+    pattern KEY_tcaron                      ,
+    pattern KEY_tabovedot                   ,
+    pattern KEY_t                           ,
+    pattern KEY_stricteq                    ,
+    pattern KEY_sterling                    ,
+    pattern KEY_ssharp                      ,
+    pattern KEY_squareroot                  ,
+    pattern KEY_space                       ,
+    pattern KEY_soliddiamond                ,
+    pattern KEY_slash                       ,
+    pattern KEY_sixsuperior                 ,
+    pattern KEY_sixsubscript                ,
+    pattern KEY_singlelowquotemark          ,
+    pattern KEY_similarequal                ,
+    pattern KEY_signifblank                 ,
+    pattern KEY_signaturemark               ,
+    pattern KEY_sevensuperior               ,
+    pattern KEY_sevensubscript              ,
+    pattern KEY_seveneighths                ,
+    pattern KEY_semivoicedsound             ,
+    pattern KEY_semicolon                   ,
+    pattern KEY_section                     ,
+    pattern KEY_seconds                     ,
+    pattern KEY_script_switch               ,
+    pattern KEY_scircumflex                 ,
+    pattern KEY_schwa                       ,
+    pattern KEY_scedilla                    ,
+    pattern KEY_scaron                      ,
+    pattern KEY_sacute                      ,
+    pattern KEY_sabovedot                   ,
+    pattern KEY_s                           ,
+    pattern KEY_righttack                   ,
+    pattern KEY_rightt                      ,
+    pattern KEY_rightsinglequotemark        ,
+    pattern KEY_rightshoe                   ,
+    pattern KEY_rightpointer                ,
+    pattern KEY_rightopentriangle           ,
+    pattern KEY_rightmiddlesummation        ,
+    pattern KEY_rightmiddlecurlybrace       ,
+    pattern KEY_rightdoublequotemark        ,
+    pattern KEY_rightcaret                  ,
+    pattern KEY_rightarrow                  ,
+    pattern KEY_rightanglebracket           ,
+    pattern KEY_registered                  ,
+    pattern KEY_rcedilla                    ,
+    pattern KEY_rcaron                      ,
+    pattern KEY_radical                     ,
+    pattern KEY_racute                      ,
+    pattern KEY_r                           ,
+    pattern KEY_quoteright                  ,
+    pattern KEY_quoteleft                   ,
+    pattern KEY_quotedbl                    ,
+    pattern KEY_questiondown                ,
+    pattern KEY_question                    ,
+    pattern KEY_quad                        ,
+    pattern KEY_q                           ,
+    pattern KEY_punctspace                  ,
+    pattern KEY_prolongedsound              ,
+    pattern KEY_prescription                ,
+    pattern KEY_plusminus                   ,
+    pattern KEY_plus                        ,
+    pattern KEY_phonographcopyright         ,
+    pattern KEY_permille                    ,
+    pattern KEY_periodcentered              ,
+    pattern KEY_period                      ,
+    pattern KEY_percent                     ,
+    pattern KEY_partialderivative           ,
+    pattern KEY_partdifferential            ,
+    pattern KEY_parenright                  ,
+    pattern KEY_parenleft                   ,
+    pattern KEY_paragraph                   ,
+    pattern KEY_pabovedot                   ,
+    pattern KEY_p                           ,
+    pattern KEY_overline                    ,
+    pattern KEY_overbar                     ,
+    pattern KEY_otilde                      ,
+    pattern KEY_oslash                      ,
+    pattern KEY_ordfeminine                 ,
+    pattern KEY_opentribulletup             ,
+    pattern KEY_opentribulletdown           ,
+    pattern KEY_openstar                    ,
+    pattern KEY_openrectbullet              ,
+    pattern KEY_ooblique                    ,
+    pattern KEY_onethird                    ,
+    pattern KEY_onesuperior                 ,
+    pattern KEY_onesubscript                ,
+    pattern KEY_onesixth                    ,
+    pattern KEY_onequarter                  ,
+    pattern KEY_onehalf                     ,
+    pattern KEY_onefifth                    ,
+    pattern KEY_oneeighth                   ,
+    pattern KEY_omacron                     ,
+    pattern KEY_ohorntilde                  ,
+    pattern KEY_ohornhook                   ,
+    pattern KEY_ohorngrave                  ,
+    pattern KEY_ohornbelowdot               ,
+    pattern KEY_ohornacute                  ,
+    pattern KEY_ohorn                       ,
+    pattern KEY_ohook                       ,
+    pattern KEY_ograve                      ,
+    pattern KEY_ogonek                      ,
+    pattern KEY_oe                          ,
+    pattern KEY_odoubleacute                ,
+    pattern KEY_odiaeresis                  ,
+    pattern KEY_ocircumflextilde            ,
+    pattern KEY_ocircumflexhook             ,
+    pattern KEY_ocircumflexgrave            ,
+    pattern KEY_ocircumflexbelowdot         ,
+    pattern KEY_ocircumflexacute            ,
+    pattern KEY_ocircumflex                 ,
+    pattern KEY_ocaron                      ,
+    pattern KEY_obelowdot                   ,
+    pattern KEY_obarred                     ,
+    pattern KEY_oacute                      ,
+    pattern KEY_o                           ,
+    pattern KEY_numerosign                  ,
+    pattern KEY_numbersign                  ,
+    pattern KEY_ntilde                      ,
+    pattern KEY_notsign                     ,
+    pattern KEY_notidentical                ,
+    pattern KEY_notequal                    ,
+    pattern KEY_notelementof                ,
+    pattern KEY_notapproxeq                 ,
+    pattern KEY_nobreakspace                ,
+    pattern KEY_nl                          ,
+    pattern KEY_ninesuperior                ,
+    pattern KEY_ninesubscript               ,
+    pattern KEY_ncedilla                    ,
+    pattern KEY_ncaron                      ,
+    pattern KEY_nacute                      ,
+    pattern KEY_nabla                       ,
+    pattern KEY_n                           ,
+    pattern KEY_musicalsharp                ,
+    pattern KEY_musicalflat                 ,
+    pattern KEY_multiply                    ,
+    pattern KEY_mu                          ,
+    pattern KEY_minutes                     ,
+    pattern KEY_minus                       ,
+    pattern KEY_masculine                   ,
+    pattern KEY_marker                      ,
+    pattern KEY_maltesecross                ,
+    pattern KEY_malesymbol                  ,
+    pattern KEY_macron                      ,
+    pattern KEY_mabovedot                   ,
+    pattern KEY_m                           ,
+    pattern KEY_lstroke                     ,
+    pattern KEY_lowrightcorner              ,
+    pattern KEY_lowleftcorner               ,
+    pattern KEY_logicalor                   ,
+    pattern KEY_logicaland                  ,
+    pattern KEY_lf                          ,
+    pattern KEY_lessthanequal               ,
+    pattern KEY_less                        ,
+    pattern KEY_lefttack                    ,
+    pattern KEY_leftt                       ,
+    pattern KEY_leftsinglequotemark         ,
+    pattern KEY_leftshoe                    ,
+    pattern KEY_leftradical                 ,
+    pattern KEY_leftpointer                 ,
+    pattern KEY_leftopentriangle            ,
+    pattern KEY_leftmiddlecurlybrace        ,
+    pattern KEY_leftdoublequotemark         ,
+    pattern KEY_leftcaret                   ,
+    pattern KEY_leftarrow                   ,
+    pattern KEY_leftanglebracket            ,
+    pattern KEY_lcedilla                    ,
+    pattern KEY_lcaron                      ,
+    pattern KEY_lbelowdot                   ,
+    pattern KEY_latincross                  ,
+    pattern KEY_lacute                      ,
+    pattern KEY_l                           ,
+    pattern KEY_kra                         ,
+    pattern KEY_kcedilla                    ,
+    pattern KEY_kappa                       ,
+    pattern KEY_kana_yu                     ,
+    pattern KEY_kana_yo                     ,
+    pattern KEY_kana_ya                     ,
+    pattern KEY_kana_u                      ,
+    pattern KEY_kana_tu                     ,
+    pattern KEY_kana_tsu                    ,
+    pattern KEY_kana_switch                 ,
+    pattern KEY_kana_openingbracket         ,
+    pattern KEY_kana_o                      ,
+    pattern KEY_kana_middledot              ,
+    pattern KEY_kana_i                      ,
+    pattern KEY_kana_fullstop               ,
+    pattern KEY_kana_e                      ,
+    pattern KEY_kana_conjunctive            ,
+    pattern KEY_kana_comma                  ,
+    pattern KEY_kana_closingbracket         ,
+    pattern KEY_kana_a                      ,
+    pattern KEY_kana_YU                     ,
+    pattern KEY_kana_YO                     ,
+    pattern KEY_kana_YA                     ,
+    pattern KEY_kana_WO                     ,
+    pattern KEY_kana_WA                     ,
+    pattern KEY_kana_U                      ,
+    pattern KEY_kana_TU                     ,
+    pattern KEY_kana_TSU                    ,
+    pattern KEY_kana_TO                     ,
+    pattern KEY_kana_TI                     ,
+    pattern KEY_kana_TE                     ,
+    pattern KEY_kana_TA                     ,
+    pattern KEY_kana_SU                     ,
+    pattern KEY_kana_SO                     ,
+    pattern KEY_kana_SHI                    ,
+    pattern KEY_kana_SE                     ,
+    pattern KEY_kana_SA                     ,
+    pattern KEY_kana_RU                     ,
+    pattern KEY_kana_RO                     ,
+    pattern KEY_kana_RI                     ,
+    pattern KEY_kana_RE                     ,
+    pattern KEY_kana_RA                     ,
+    pattern KEY_kana_O                      ,
+    pattern KEY_kana_NU                     ,
+    pattern KEY_kana_NO                     ,
+    pattern KEY_kana_NI                     ,
+    pattern KEY_kana_NE                     ,
+    pattern KEY_kana_NA                     ,
+    pattern KEY_kana_N                      ,
+    pattern KEY_kana_MU                     ,
+    pattern KEY_kana_MO                     ,
+    pattern KEY_kana_MI                     ,
+    pattern KEY_kana_ME                     ,
+    pattern KEY_kana_MA                     ,
+    pattern KEY_kana_KU                     ,
+    pattern KEY_kana_KO                     ,
+    pattern KEY_kana_KI                     ,
+    pattern KEY_kana_KE                     ,
+    pattern KEY_kana_KA                     ,
+    pattern KEY_kana_I                      ,
+    pattern KEY_kana_HU                     ,
+    pattern KEY_kana_HO                     ,
+    pattern KEY_kana_HI                     ,
+    pattern KEY_kana_HE                     ,
+    pattern KEY_kana_HA                     ,
+    pattern KEY_kana_FU                     ,
+    pattern KEY_kana_E                      ,
+    pattern KEY_kana_CHI                    ,
+    pattern KEY_kana_A                      ,
+    pattern KEY_k                           ,
+    pattern KEY_jot                         ,
+    pattern KEY_jcircumflex                 ,
+    pattern KEY_j                           ,
+    pattern KEY_itilde                      ,
+    pattern KEY_iogonek                     ,
+    pattern KEY_intersection                ,
+    pattern KEY_integral                    ,
+    pattern KEY_infinity                    ,
+    pattern KEY_includes                    ,
+    pattern KEY_includedin                  ,
+    pattern KEY_implies                     ,
+    pattern KEY_imacron                     ,
+    pattern KEY_ihook                       ,
+    pattern KEY_igrave                      ,
+    pattern KEY_ifonlyif                    ,
+    pattern KEY_idotless                    ,
+    pattern KEY_idiaeresis                  ,
+    pattern KEY_identical                   ,
+    pattern KEY_icircumflex                 ,
+    pattern KEY_ibreve                      ,
+    pattern KEY_ibelowdot                   ,
+    pattern KEY_iacute                      ,
+    pattern KEY_iTouch                      ,
+    pattern KEY_i                           ,
+    pattern KEY_hyphen                      ,
+    pattern KEY_ht                          ,
+    pattern KEY_hstroke                     ,
+    pattern KEY_horizlinescan9              ,
+    pattern KEY_horizlinescan7              ,
+    pattern KEY_horizlinescan5              ,
+    pattern KEY_horizlinescan3              ,
+    pattern KEY_horizlinescan1              ,
+    pattern KEY_horizconnector              ,
+    pattern KEY_hexagram                    ,
+    pattern KEY_hebrew_zayin                ,
+    pattern KEY_hebrew_zain                 ,
+    pattern KEY_hebrew_zadi                 ,
+    pattern KEY_hebrew_zade                 ,
+    pattern KEY_hebrew_yod                  ,
+    pattern KEY_hebrew_waw                  ,
+    pattern KEY_hebrew_teth                 ,
+    pattern KEY_hebrew_tet                  ,
+    pattern KEY_hebrew_taw                  ,
+    pattern KEY_hebrew_taf                  ,
+    pattern KEY_hebrew_shin                 ,
+    pattern KEY_hebrew_samekh               ,
+    pattern KEY_hebrew_samech               ,
+    pattern KEY_hebrew_resh                 ,
+    pattern KEY_hebrew_qoph                 ,
+    pattern KEY_hebrew_pe                   ,
+    pattern KEY_hebrew_nun                  ,
+    pattern KEY_hebrew_mem                  ,
+    pattern KEY_hebrew_lamed                ,
+    pattern KEY_hebrew_kuf                  ,
+    pattern KEY_hebrew_kaph                 ,
+    pattern KEY_hebrew_het                  ,
+    pattern KEY_hebrew_he                   ,
+    pattern KEY_hebrew_gimmel               ,
+    pattern KEY_hebrew_gimel                ,
+    pattern KEY_hebrew_finalzadi            ,
+    pattern KEY_hebrew_finalzade            ,
+    pattern KEY_hebrew_finalpe              ,
+    pattern KEY_hebrew_finalnun             ,
+    pattern KEY_hebrew_finalmem             ,
+    pattern KEY_hebrew_finalkaph            ,
+    pattern KEY_hebrew_doublelowline        ,
+    pattern KEY_hebrew_daleth               ,
+    pattern KEY_hebrew_dalet                ,
+    pattern KEY_hebrew_chet                 ,
+    pattern KEY_hebrew_beth                 ,
+    pattern KEY_hebrew_bet                  ,
+    pattern KEY_hebrew_ayin                 ,
+    pattern KEY_hebrew_aleph                ,
+    pattern KEY_heart                       ,
+    pattern KEY_hcircumflex                 ,
+    pattern KEY_hairspace                   ,
+    pattern KEY_h                           ,
+    pattern KEY_guillemotright              ,
+    pattern KEY_guillemotleft               ,
+    pattern KEY_greaterthanequal            ,
+    pattern KEY_greater                     ,
+    pattern KEY_grave                       ,
+    pattern KEY_gcircumflex                 ,
+    pattern KEY_gcedilla                    ,
+    pattern KEY_gcaron                      ,
+    pattern KEY_gbreve                      ,
+    pattern KEY_gabovedot                   ,
+    pattern KEY_g                           ,
+    pattern KEY_function                    ,
+    pattern KEY_fourthroot                  ,
+    pattern KEY_foursuperior                ,
+    pattern KEY_foursubscript               ,
+    pattern KEY_fourfifths                  ,
+    pattern KEY_fivesuperior                ,
+    pattern KEY_fivesubscript               ,
+    pattern KEY_fivesixths                  ,
+    pattern KEY_fiveeighths                 ,
+    pattern KEY_filledtribulletup           ,
+    pattern KEY_filledtribulletdown         ,
+    pattern KEY_filledrighttribullet        ,
+    pattern KEY_filledrectbullet            ,
+    pattern KEY_filledlefttribullet         ,
+    pattern KEY_figdash                     ,
+    pattern KEY_ff                          ,
+    pattern KEY_femalesymbol                ,
+    pattern KEY_fabovedot                   ,
+    pattern KEY_f                           ,
+    pattern KEY_ezh                         ,
+    pattern KEY_exclamdown                  ,
+    pattern KEY_exclam                      ,
+    pattern KEY_etilde                      ,
+    pattern KEY_eth                         ,
+    pattern KEY_equal                       ,
+    pattern KEY_eogonek                     ,
+    pattern KEY_enspace                     ,
+    pattern KEY_enopensquarebullet          ,
+    pattern KEY_enopencircbullet            ,
+    pattern KEY_eng                         ,
+    pattern KEY_enfilledsqbullet            ,
+    pattern KEY_enfilledcircbullet          ,
+    pattern KEY_endash                      ,
+    pattern KEY_emspace                     ,
+    pattern KEY_emptyset                    ,
+    pattern KEY_emopenrectangle             ,
+    pattern KEY_emopencircle                ,
+    pattern KEY_emfilledrect                ,
+    pattern KEY_emfilledcircle              ,
+    pattern KEY_emdash                      ,
+    pattern KEY_emacron                     ,
+    pattern KEY_em4space                    ,
+    pattern KEY_em3space                    ,
+    pattern KEY_ellipsis                    ,
+    pattern KEY_elementof                   ,
+    pattern KEY_eightsuperior               ,
+    pattern KEY_eightsubscript              ,
+    pattern KEY_ehook                       ,
+    pattern KEY_egrave                      ,
+    pattern KEY_ediaeresis                  ,
+    pattern KEY_ecircumflextilde            ,
+    pattern KEY_ecircumflexhook             ,
+    pattern KEY_ecircumflexgrave            ,
+    pattern KEY_ecircumflexbelowdot         ,
+    pattern KEY_ecircumflexacute            ,
+    pattern KEY_ecircumflex                 ,
+    pattern KEY_ecaron                      ,
+    pattern KEY_ebelowdot                   ,
+    pattern KEY_eacute                      ,
+    pattern KEY_eabovedot                   ,
+    pattern KEY_e                           ,
+    pattern KEY_dstroke                     ,
+    pattern KEY_downtack                    ,
+    pattern KEY_downstile                   ,
+    pattern KEY_downshoe                    ,
+    pattern KEY_downcaret                   ,
+    pattern KEY_downarrow                   ,
+    pattern KEY_doublelowquotemark          ,
+    pattern KEY_doubledagger                ,
+    pattern KEY_doubleacute                 ,
+    pattern KEY_doubbaselinedot             ,
+    pattern KEY_dollar                      ,
+    pattern KEY_division                    ,
+    pattern KEY_dintegral                   ,
+    pattern KEY_digitspace                  ,
+    pattern KEY_diamond                     ,
+    pattern KEY_diaeresis                   ,
+    pattern KEY_degree                      ,
+    pattern KEY_decimalpoint                ,
+    pattern KEY_dead_voiced_sound           ,
+    pattern KEY_dead_u                      ,
+    pattern KEY_dead_tilde                  ,
+    pattern KEY_dead_stroke                 ,
+    pattern KEY_dead_small_schwa            ,
+    pattern KEY_dead_semivoiced_sound       ,
+    pattern KEY_dead_psili                  ,
+    pattern KEY_dead_perispomeni            ,
+    pattern KEY_dead_ogonek                 ,
+    pattern KEY_dead_o                      ,
+    pattern KEY_dead_macron                 ,
+    pattern KEY_dead_iota                   ,
+    pattern KEY_dead_invertedbreve          ,
+    pattern KEY_dead_i                      ,
+    pattern KEY_dead_horn                   ,
+    pattern KEY_dead_hook                   ,
+    pattern KEY_dead_greek                  ,
+    pattern KEY_dead_grave                  ,
+    pattern KEY_dead_e                      ,
+    pattern KEY_dead_doublegrave            ,
+    pattern KEY_dead_doubleacute            ,
+    pattern KEY_dead_diaeresis              ,
+    pattern KEY_dead_dasia                  ,
+    pattern KEY_dead_currency               ,
+    pattern KEY_dead_circumflex             ,
+    pattern KEY_dead_cedilla                ,
+    pattern KEY_dead_caron                  ,
+    pattern KEY_dead_capital_schwa          ,
+    pattern KEY_dead_breve                  ,
+    pattern KEY_dead_belowtilde             ,
+    pattern KEY_dead_belowring              ,
+    pattern KEY_dead_belowmacron            ,
+    pattern KEY_dead_belowdot               ,
+    pattern KEY_dead_belowdiaeresis         ,
+    pattern KEY_dead_belowcomma             ,
+    pattern KEY_dead_belowcircumflex        ,
+    pattern KEY_dead_belowbreve             ,
+    pattern KEY_dead_acute                  ,
+    pattern KEY_dead_abovering              ,
+    pattern KEY_dead_abovereversedcomma     ,
+    pattern KEY_dead_abovedot               ,
+    pattern KEY_dead_abovecomma             ,
+    pattern KEY_dead_a                      ,
+    pattern KEY_dead_U                      ,
+    pattern KEY_dead_O                      ,
+    pattern KEY_dead_I                      ,
+    pattern KEY_dead_E                      ,
+    pattern KEY_dead_A                      ,
+    pattern KEY_dcaron                      ,
+    pattern KEY_dagger                      ,
+    pattern KEY_dabovedot                   ,
+    pattern KEY_d                           ,
+    pattern KEY_cursor                      ,
+    pattern KEY_currency                    ,
+    pattern KEY_cuberoot                    ,
+    pattern KEY_crossinglines               ,
+    pattern KEY_cr                          ,
+    pattern KEY_copyright                   ,
+    pattern KEY_containsas                  ,
+    pattern KEY_comma                       ,
+    pattern KEY_colon                       ,
+    pattern KEY_club                        ,
+    pattern KEY_circle                      ,
+    pattern KEY_checkmark                   ,
+    pattern KEY_checkerboard                ,
+    pattern KEY_ch                          ,
+    pattern KEY_cent                        ,
+    pattern KEY_cedilla                     ,
+    pattern KEY_ccircumflex                 ,
+    pattern KEY_ccedilla                    ,
+    pattern KEY_ccaron                      ,
+    pattern KEY_caron                       ,
+    pattern KEY_caret                       ,
+    pattern KEY_careof                      ,
+    pattern KEY_cacute                      ,
+    pattern KEY_cabovedot                   ,
+    pattern KEY_c_h                         ,
+    pattern KEY_c                           ,
+    pattern KEY_brokenbar                   ,
+    pattern KEY_breve                       ,
+    pattern KEY_braille_dots_8              ,
+    pattern KEY_braille_dots_78             ,
+    pattern KEY_braille_dots_7              ,
+    pattern KEY_braille_dots_68             ,
+    pattern KEY_braille_dots_678            ,
+    pattern KEY_braille_dots_67             ,
+    pattern KEY_braille_dots_6              ,
+    pattern KEY_braille_dots_58             ,
+    pattern KEY_braille_dots_578            ,
+    pattern KEY_braille_dots_57             ,
+    pattern KEY_braille_dots_568            ,
+    pattern KEY_braille_dots_5678           ,
+    pattern KEY_braille_dots_567            ,
+    pattern KEY_braille_dots_56             ,
+    pattern KEY_braille_dots_5              ,
+    pattern KEY_braille_dots_48             ,
+    pattern KEY_braille_dots_478            ,
+    pattern KEY_braille_dots_47             ,
+    pattern KEY_braille_dots_468            ,
+    pattern KEY_braille_dots_4678           ,
+    pattern KEY_braille_dots_467            ,
+    pattern KEY_braille_dots_46             ,
+    pattern KEY_braille_dots_458            ,
+    pattern KEY_braille_dots_4578           ,
+    pattern KEY_braille_dots_457            ,
+    pattern KEY_braille_dots_4568           ,
+    pattern KEY_braille_dots_45678          ,
+    pattern KEY_braille_dots_4567           ,
+    pattern KEY_braille_dots_456            ,
+    pattern KEY_braille_dots_45             ,
+    pattern KEY_braille_dots_4              ,
+    pattern KEY_braille_dots_38             ,
+    pattern KEY_braille_dots_378            ,
+    pattern KEY_braille_dots_37             ,
+    pattern KEY_braille_dots_368            ,
+    pattern KEY_braille_dots_3678           ,
+    pattern KEY_braille_dots_367            ,
+    pattern KEY_braille_dots_36             ,
+    pattern KEY_braille_dots_358            ,
+    pattern KEY_braille_dots_3578           ,
+    pattern KEY_braille_dots_357            ,
+    pattern KEY_braille_dots_3568           ,
+    pattern KEY_braille_dots_35678          ,
+    pattern KEY_braille_dots_3567           ,
+    pattern KEY_braille_dots_356            ,
+    pattern KEY_braille_dots_35             ,
+    pattern KEY_braille_dots_348            ,
+    pattern KEY_braille_dots_3478           ,
+    pattern KEY_braille_dots_347            ,
+    pattern KEY_braille_dots_3468           ,
+    pattern KEY_braille_dots_34678          ,
+    pattern KEY_braille_dots_3467           ,
+    pattern KEY_braille_dots_346            ,
+    pattern KEY_braille_dots_3458           ,
+    pattern KEY_braille_dots_34578          ,
+    pattern KEY_braille_dots_3457           ,
+    pattern KEY_braille_dots_34568          ,
+    pattern KEY_braille_dots_345678         ,
+    pattern KEY_braille_dots_34567          ,
+    pattern KEY_braille_dots_3456           ,
+    pattern KEY_braille_dots_345            ,
+    pattern KEY_braille_dots_34             ,
+    pattern KEY_braille_dots_3              ,
+    pattern KEY_braille_dots_28             ,
+    pattern KEY_braille_dots_278            ,
+    pattern KEY_braille_dots_27             ,
+    pattern KEY_braille_dots_268            ,
+    pattern KEY_braille_dots_2678           ,
+    pattern KEY_braille_dots_267            ,
+    pattern KEY_braille_dots_26             ,
+    pattern KEY_braille_dots_258            ,
+    pattern KEY_braille_dots_2578           ,
+    pattern KEY_braille_dots_257            ,
+    pattern KEY_braille_dots_2568           ,
+    pattern KEY_braille_dots_25678          ,
+    pattern KEY_braille_dots_2567           ,
+    pattern KEY_braille_dots_256            ,
+    pattern KEY_braille_dots_25             ,
+    pattern KEY_braille_dots_248            ,
+    pattern KEY_braille_dots_2478           ,
+    pattern KEY_braille_dots_247            ,
+    pattern KEY_braille_dots_2468           ,
+    pattern KEY_braille_dots_24678          ,
+    pattern KEY_braille_dots_2467           ,
+    pattern KEY_braille_dots_246            ,
+    pattern KEY_braille_dots_2458           ,
+    pattern KEY_braille_dots_24578          ,
+    pattern KEY_braille_dots_2457           ,
+    pattern KEY_braille_dots_24568          ,
+    pattern KEY_braille_dots_245678         ,
+    pattern KEY_braille_dots_24567          ,
+    pattern KEY_braille_dots_2456           ,
+    pattern KEY_braille_dots_245            ,
+    pattern KEY_braille_dots_24             ,
+    pattern KEY_braille_dots_238            ,
+    pattern KEY_braille_dots_2378           ,
+    pattern KEY_braille_dots_237            ,
+    pattern KEY_braille_dots_2368           ,
+    pattern KEY_braille_dots_23678          ,
+    pattern KEY_braille_dots_2367           ,
+    pattern KEY_braille_dots_236            ,
+    pattern KEY_braille_dots_2358           ,
+    pattern KEY_braille_dots_23578          ,
+    pattern KEY_braille_dots_2357           ,
+    pattern KEY_braille_dots_23568          ,
+    pattern KEY_braille_dots_235678         ,
+    pattern KEY_braille_dots_23567          ,
+    pattern KEY_braille_dots_2356           ,
+    pattern KEY_braille_dots_235            ,
+    pattern KEY_braille_dots_2348           ,
+    pattern KEY_braille_dots_23478          ,
+    pattern KEY_braille_dots_2347           ,
+    pattern KEY_braille_dots_23468          ,
+    pattern KEY_braille_dots_234678         ,
+    pattern KEY_braille_dots_23467          ,
+    pattern KEY_braille_dots_2346           ,
+    pattern KEY_braille_dots_23458          ,
+    pattern KEY_braille_dots_234578         ,
+    pattern KEY_braille_dots_23457          ,
+    pattern KEY_braille_dots_234568         ,
+    pattern KEY_braille_dots_2345678        ,
+    pattern KEY_braille_dots_234567         ,
+    pattern KEY_braille_dots_23456          ,
+    pattern KEY_braille_dots_2345           ,
+    pattern KEY_braille_dots_234            ,
+    pattern KEY_braille_dots_23             ,
+    pattern KEY_braille_dots_2              ,
+    pattern KEY_braille_dots_18             ,
+    pattern KEY_braille_dots_178            ,
+    pattern KEY_braille_dots_17             ,
+    pattern KEY_braille_dots_168            ,
+    pattern KEY_braille_dots_1678           ,
+    pattern KEY_braille_dots_167            ,
+    pattern KEY_braille_dots_16             ,
+    pattern KEY_braille_dots_158            ,
+    pattern KEY_braille_dots_1578           ,
+    pattern KEY_braille_dots_157            ,
+    pattern KEY_braille_dots_1568           ,
+    pattern KEY_braille_dots_15678          ,
+    pattern KEY_braille_dots_1567           ,
+    pattern KEY_braille_dots_156            ,
+    pattern KEY_braille_dots_15             ,
+    pattern KEY_braille_dots_148            ,
+    pattern KEY_braille_dots_1478           ,
+    pattern KEY_braille_dots_147            ,
+    pattern KEY_braille_dots_1468           ,
+    pattern KEY_braille_dots_14678          ,
+    pattern KEY_braille_dots_1467           ,
+    pattern KEY_braille_dots_146            ,
+    pattern KEY_braille_dots_1458           ,
+    pattern KEY_braille_dots_14578          ,
+    pattern KEY_braille_dots_1457           ,
+    pattern KEY_braille_dots_14568          ,
+    pattern KEY_braille_dots_145678         ,
+    pattern KEY_braille_dots_14567          ,
+    pattern KEY_braille_dots_1456           ,
+    pattern KEY_braille_dots_145            ,
+    pattern KEY_braille_dots_14             ,
+    pattern KEY_braille_dots_138            ,
+    pattern KEY_braille_dots_1378           ,
+    pattern KEY_braille_dots_137            ,
+    pattern KEY_braille_dots_1368           ,
+    pattern KEY_braille_dots_13678          ,
+    pattern KEY_braille_dots_1367           ,
+    pattern KEY_braille_dots_136            ,
+    pattern KEY_braille_dots_1358           ,
+    pattern KEY_braille_dots_13578          ,
+    pattern KEY_braille_dots_1357           ,
+    pattern KEY_braille_dots_13568          ,
+    pattern KEY_braille_dots_135678         ,
+    pattern KEY_braille_dots_13567          ,
+    pattern KEY_braille_dots_1356           ,
+    pattern KEY_braille_dots_135            ,
+    pattern KEY_braille_dots_1348           ,
+    pattern KEY_braille_dots_13478          ,
+    pattern KEY_braille_dots_1347           ,
+    pattern KEY_braille_dots_13468          ,
+    pattern KEY_braille_dots_134678         ,
+    pattern KEY_braille_dots_13467          ,
+    pattern KEY_braille_dots_1346           ,
+    pattern KEY_braille_dots_13458          ,
+    pattern KEY_braille_dots_134578         ,
+    pattern KEY_braille_dots_13457          ,
+    pattern KEY_braille_dots_134568         ,
+    pattern KEY_braille_dots_1345678        ,
+    pattern KEY_braille_dots_134567         ,
+    pattern KEY_braille_dots_13456          ,
+    pattern KEY_braille_dots_1345           ,
+    pattern KEY_braille_dots_134            ,
+    pattern KEY_braille_dots_13             ,
+    pattern KEY_braille_dots_128            ,
+    pattern KEY_braille_dots_1278           ,
+    pattern KEY_braille_dots_127            ,
+    pattern KEY_braille_dots_1268           ,
+    pattern KEY_braille_dots_12678          ,
+    pattern KEY_braille_dots_1267           ,
+    pattern KEY_braille_dots_126            ,
+    pattern KEY_braille_dots_1258           ,
+    pattern KEY_braille_dots_12578          ,
+    pattern KEY_braille_dots_1257           ,
+    pattern KEY_braille_dots_12568          ,
+    pattern KEY_braille_dots_125678         ,
+    pattern KEY_braille_dots_12567          ,
+    pattern KEY_braille_dots_1256           ,
+    pattern KEY_braille_dots_125            ,
+    pattern KEY_braille_dots_1248           ,
+    pattern KEY_braille_dots_12478          ,
+    pattern KEY_braille_dots_1247           ,
+    pattern KEY_braille_dots_12468          ,
+    pattern KEY_braille_dots_124678         ,
+    pattern KEY_braille_dots_12467          ,
+    pattern KEY_braille_dots_1246           ,
+    pattern KEY_braille_dots_12458          ,
+    pattern KEY_braille_dots_124578         ,
+    pattern KEY_braille_dots_12457          ,
+    pattern KEY_braille_dots_124568         ,
+    pattern KEY_braille_dots_1245678        ,
+    pattern KEY_braille_dots_124567         ,
+    pattern KEY_braille_dots_12456          ,
+    pattern KEY_braille_dots_1245           ,
+    pattern KEY_braille_dots_124            ,
+    pattern KEY_braille_dots_1238           ,
+    pattern KEY_braille_dots_12378          ,
+    pattern KEY_braille_dots_1237           ,
+    pattern KEY_braille_dots_12368          ,
+    pattern KEY_braille_dots_123678         ,
+    pattern KEY_braille_dots_12367          ,
+    pattern KEY_braille_dots_1236           ,
+    pattern KEY_braille_dots_12358          ,
+    pattern KEY_braille_dots_123578         ,
+    pattern KEY_braille_dots_12357          ,
+    pattern KEY_braille_dots_123568         ,
+    pattern KEY_braille_dots_1235678        ,
+    pattern KEY_braille_dots_123567         ,
+    pattern KEY_braille_dots_12356          ,
+    pattern KEY_braille_dots_1235           ,
+    pattern KEY_braille_dots_12348          ,
+    pattern KEY_braille_dots_123478         ,
+    pattern KEY_braille_dots_12347          ,
+    pattern KEY_braille_dots_123468         ,
+    pattern KEY_braille_dots_1234678        ,
+    pattern KEY_braille_dots_123467         ,
+    pattern KEY_braille_dots_12346          ,
+    pattern KEY_braille_dots_123458         ,
+    pattern KEY_braille_dots_1234578        ,
+    pattern KEY_braille_dots_123457         ,
+    pattern KEY_braille_dots_1234568        ,
+    pattern KEY_braille_dots_12345678       ,
+    pattern KEY_braille_dots_1234567        ,
+    pattern KEY_braille_dots_123456         ,
+    pattern KEY_braille_dots_12345          ,
+    pattern KEY_braille_dots_1234           ,
+    pattern KEY_braille_dots_123            ,
+    pattern KEY_braille_dots_12             ,
+    pattern KEY_braille_dots_1              ,
+    pattern KEY_braille_dot_9               ,
+    pattern KEY_braille_dot_8               ,
+    pattern KEY_braille_dot_7               ,
+    pattern KEY_braille_dot_6               ,
+    pattern KEY_braille_dot_5               ,
+    pattern KEY_braille_dot_4               ,
+    pattern KEY_braille_dot_3               ,
+    pattern KEY_braille_dot_2               ,
+    pattern KEY_braille_dot_10              ,
+    pattern KEY_braille_dot_1               ,
+    pattern KEY_braille_blank               ,
+    pattern KEY_bracketright                ,
+    pattern KEY_bracketleft                 ,
+    pattern KEY_braceright                  ,
+    pattern KEY_braceleft                   ,
+    pattern KEY_botvertsummationconnector   ,
+    pattern KEY_bott                        ,
+    pattern KEY_botrightsummation           ,
+    pattern KEY_botrightsqbracket           ,
+    pattern KEY_botrightparens              ,
+    pattern KEY_botleftsummation            ,
+    pattern KEY_botleftsqbracket            ,
+    pattern KEY_botleftparens               ,
+    pattern KEY_botintegral                 ,
+    pattern KEY_blank                       ,
+    pattern KEY_because                     ,
+    pattern KEY_bar                         ,
+    pattern KEY_ballotcross                 ,
+    pattern KEY_backslash                   ,
+    pattern KEY_babovedot                   ,
+    pattern KEY_b                           ,
+    pattern KEY_atilde                      ,
+    pattern KEY_at                          ,
+    pattern KEY_asterisk                    ,
+    pattern KEY_asciitilde                  ,
+    pattern KEY_asciicircum                 ,
+    pattern KEY_aring                       ,
+    pattern KEY_approximate                 ,
+    pattern KEY_approxeq                    ,
+    pattern KEY_apostrophe                  ,
+    pattern KEY_aogonek                     ,
+    pattern KEY_ampersand                   ,
+    pattern KEY_amacron                     ,
+    pattern KEY_ahook                       ,
+    pattern KEY_agrave                      ,
+    pattern KEY_ae                          ,
+    pattern KEY_adiaeresis                  ,
+    pattern KEY_acute                       ,
+    pattern KEY_acircumflextilde            ,
+    pattern KEY_acircumflexhook             ,
+    pattern KEY_acircumflexgrave            ,
+    pattern KEY_acircumflexbelowdot         ,
+    pattern KEY_acircumflexacute            ,
+    pattern KEY_acircumflex                 ,
+    pattern KEY_abrevetilde                 ,
+    pattern KEY_abrevehook                  ,
+    pattern KEY_abrevegrave                 ,
+    pattern KEY_abrevebelowdot              ,
+    pattern KEY_abreveacute                 ,
+    pattern KEY_abreve                      ,
+    pattern KEY_abovedot                    ,
+    pattern KEY_abelowdot                   ,
+    pattern KEY_aacute                      ,
+    pattern KEY_a                           ,
+    pattern KEY_Zstroke                     ,
+    pattern KEY_ZoomOut                     ,
+    pattern KEY_ZoomIn                      ,
+    pattern KEY_Zenkaku_Hankaku             ,
+    pattern KEY_Zenkaku                     ,
+    pattern KEY_Zen_Koho                    ,
+    pattern KEY_Zcaron                      ,
+    pattern KEY_Zacute                      ,
+    pattern KEY_Zabovedot                   ,
+    pattern KEY_Z                           ,
+    pattern KEY_Ytilde                      ,
+    pattern KEY_Yhook                       ,
+    pattern KEY_Ygrave                      ,
+    pattern KEY_Yellow                      ,
+    pattern KEY_Ydiaeresis                  ,
+    pattern KEY_Ycircumflex                 ,
+    pattern KEY_Ybelowdot                   ,
+    pattern KEY_Yacute                      ,
+    pattern KEY_Y                           ,
+    pattern KEY_Xfer                        ,
+    pattern KEY_Xabovedot                   ,
+    pattern KEY_X                           ,
+    pattern KEY_Word                        ,
+    pattern KEY_WonSign                     ,
+    pattern KEY_WindowClear                 ,
+    pattern KEY_WheelButton                 ,
+    pattern KEY_Wgrave                      ,
+    pattern KEY_WebCam                      ,
+    pattern KEY_Wdiaeresis                  ,
+    pattern KEY_Wcircumflex                 ,
+    pattern KEY_WakeUp                      ,
+    pattern KEY_Wacute                      ,
+    pattern KEY_WWW                         ,
+    pattern KEY_WLAN                        ,
+    pattern KEY_W                           ,
+    pattern KEY_VoidSymbol                  ,
+    pattern KEY_View                        ,
+    pattern KEY_Video                       ,
+    pattern KEY_VendorHome                  ,
+    pattern KEY_V                           ,
+    pattern KEY_Utilde                      ,
+    pattern KEY_UserPB                      ,
+    pattern KEY_User2KB                     ,
+    pattern KEY_User1KB                     ,
+    pattern KEY_Uring                       ,
+    pattern KEY_Up                          ,
+    pattern KEY_Uogonek                     ,
+    pattern KEY_Ungrab                      ,
+    pattern KEY_Undo                        ,
+    pattern KEY_Umacron                     ,
+    pattern KEY_Ukranian_yi                 ,
+    pattern KEY_Ukranian_je                 ,
+    pattern KEY_Ukranian_i                  ,
+    pattern KEY_Ukranian_YI                 ,
+    pattern KEY_Ukranian_JE                 ,
+    pattern KEY_Ukranian_I                  ,
+    pattern KEY_Ukrainian_yi                ,
+    pattern KEY_Ukrainian_ie                ,
+    pattern KEY_Ukrainian_i                 ,
+    pattern KEY_Ukrainian_ghe_with_upturn   ,
+    pattern KEY_Ukrainian_YI                ,
+    pattern KEY_Ukrainian_IE                ,
+    pattern KEY_Ukrainian_I                 ,
+    pattern KEY_Ukrainian_GHE_WITH_UPTURN   ,
+    pattern KEY_Uhorntilde                  ,
+    pattern KEY_Uhornhook                   ,
+    pattern KEY_Uhorngrave                  ,
+    pattern KEY_Uhornbelowdot               ,
+    pattern KEY_Uhornacute                  ,
+    pattern KEY_Uhorn                       ,
+    pattern KEY_Uhook                       ,
+    pattern KEY_Ugrave                      ,
+    pattern KEY_Udoubleacute                ,
+    pattern KEY_Udiaeresis                  ,
+    pattern KEY_Ucircumflex                 ,
+    pattern KEY_Ubreve                      ,
+    pattern KEY_Ubelowdot                   ,
+    pattern KEY_Uacute                      ,
+    pattern KEY_UWB                         ,
+    pattern KEY_U                           ,
+    pattern KEY_Tslash                      ,
+    pattern KEY_Travel                      ,
+    pattern KEY_Touroku                     ,
+    pattern KEY_TouchpadToggle              ,
+    pattern KEY_TouchpadOn                  ,
+    pattern KEY_TouchpadOff                 ,
+    pattern KEY_TopMenu                     ,
+    pattern KEY_Tools                       ,
+    pattern KEY_ToDoList                    ,
+    pattern KEY_Time                        ,
+    pattern KEY_Thorn                       ,
+    pattern KEY_Thai_yoying                 ,
+    pattern KEY_Thai_yoyak                  ,
+    pattern KEY_Thai_wowaen                 ,
+    pattern KEY_Thai_totao                  ,
+    pattern KEY_Thai_topatak                ,
+    pattern KEY_Thai_thothung               ,
+    pattern KEY_Thai_thothong               ,
+    pattern KEY_Thai_thothan                ,
+    pattern KEY_Thai_thothahan              ,
+    pattern KEY_Thai_thophuthao             ,
+    pattern KEY_Thai_thonangmontho          ,
+    pattern KEY_Thai_thanthakhat            ,
+    pattern KEY_Thai_sosua                  ,
+    pattern KEY_Thai_soso                   ,
+    pattern KEY_Thai_sosala                 ,
+    pattern KEY_Thai_sorusi                 ,
+    pattern KEY_Thai_sarauu                 ,
+    pattern KEY_Thai_sarauee                ,
+    pattern KEY_Thai_saraue                 ,
+    pattern KEY_Thai_sarau                  ,
+    pattern KEY_Thai_sarao                  ,
+    pattern KEY_Thai_saraii                 ,
+    pattern KEY_Thai_sarai                  ,
+    pattern KEY_Thai_sarae                  ,
+    pattern KEY_Thai_saraam                 ,
+    pattern KEY_Thai_saraaimaimuan          ,
+    pattern KEY_Thai_saraaimaimalai         ,
+    pattern KEY_Thai_saraae                 ,
+    pattern KEY_Thai_saraaa                 ,
+    pattern KEY_Thai_saraa                  ,
+    pattern KEY_Thai_ru                     ,
+    pattern KEY_Thai_rorua                  ,
+    pattern KEY_Thai_popla                  ,
+    pattern KEY_Thai_phosamphao             ,
+    pattern KEY_Thai_phophung               ,
+    pattern KEY_Thai_phophan                ,
+    pattern KEY_Thai_phinthu                ,
+    pattern KEY_Thai_paiyannoi              ,
+    pattern KEY_Thai_oang                   ,
+    pattern KEY_Thai_nonu                   ,
+    pattern KEY_Thai_nonen                  ,
+    pattern KEY_Thai_nikhahit               ,
+    pattern KEY_Thai_ngongu                 ,
+    pattern KEY_Thai_moma                   ,
+    pattern KEY_Thai_maiyamok               ,
+    pattern KEY_Thai_maitri                 ,
+    pattern KEY_Thai_maitho                 ,
+    pattern KEY_Thai_maitaikhu              ,
+    pattern KEY_Thai_maihanakat_maitho      ,
+    pattern KEY_Thai_maihanakat             ,
+    pattern KEY_Thai_maiek                  ,
+    pattern KEY_Thai_maichattawa            ,
+    pattern KEY_Thai_lu                     ,
+    pattern KEY_Thai_loling                 ,
+    pattern KEY_Thai_lochula                ,
+    pattern KEY_Thai_leksun                 ,
+    pattern KEY_Thai_leksong                ,
+    pattern KEY_Thai_leksi                  ,
+    pattern KEY_Thai_leksam                 ,
+    pattern KEY_Thai_lekpaet                ,
+    pattern KEY_Thai_leknung                ,
+    pattern KEY_Thai_lekkao                 ,
+    pattern KEY_Thai_lekhok                 ,
+    pattern KEY_Thai_lekha                  ,
+    pattern KEY_Thai_lekchet                ,
+    pattern KEY_Thai_lakkhangyao            ,
+    pattern KEY_Thai_kokai                  ,
+    pattern KEY_Thai_khorakhang             ,
+    pattern KEY_Thai_khokhwai               ,
+    pattern KEY_Thai_khokhuat               ,
+    pattern KEY_Thai_khokhon                ,
+    pattern KEY_Thai_khokhai                ,
+    pattern KEY_Thai_honokhuk               ,
+    pattern KEY_Thai_hohip                  ,
+    pattern KEY_Thai_fofan                  ,
+    pattern KEY_Thai_fofa                   ,
+    pattern KEY_Thai_dodek                  ,
+    pattern KEY_Thai_dochada                ,
+    pattern KEY_Thai_chochoe                ,
+    pattern KEY_Thai_choching               ,
+    pattern KEY_Thai_chochang               ,
+    pattern KEY_Thai_chochan                ,
+    pattern KEY_Thai_bobaimai               ,
+    pattern KEY_Thai_baht                   ,
+    pattern KEY_Terminate_Server            ,
+    pattern KEY_Terminal                    ,
+    pattern KEY_Tcedilla                    ,
+    pattern KEY_Tcaron                      ,
+    pattern KEY_TaskPane                    ,
+    pattern KEY_Tabovedot                   ,
+    pattern KEY_Tab                         ,
+    pattern KEY_THORN                       ,
+    pattern KEY_T                           ,
+    pattern KEY_Sys_Req                     ,
+    pattern KEY_Switch_VT_9                 ,
+    pattern KEY_Switch_VT_8                 ,
+    pattern KEY_Switch_VT_7                 ,
+    pattern KEY_Switch_VT_6                 ,
+    pattern KEY_Switch_VT_5                 ,
+    pattern KEY_Switch_VT_4                 ,
+    pattern KEY_Switch_VT_3                 ,
+    pattern KEY_Switch_VT_2                 ,
+    pattern KEY_Switch_VT_12                ,
+    pattern KEY_Switch_VT_11                ,
+    pattern KEY_Switch_VT_10                ,
+    pattern KEY_Switch_VT_1                 ,
+    pattern KEY_Suspend                     ,
+    pattern KEY_Support                     ,
+    pattern KEY_Super_R                     ,
+    pattern KEY_Super_L                     ,
+    pattern KEY_Subtitle                    ,
+    pattern KEY_Stop                        ,
+    pattern KEY_StickyKeys_Enable           ,
+    pattern KEY_Start                       ,
+    pattern KEY_Standby                     ,
+    pattern KEY_SplitScreen                 ,
+    pattern KEY_Spell                       ,
+    pattern KEY_SlowKeys_Enable             ,
+    pattern KEY_Sleep                       ,
+    pattern KEY_Sinh_ya                     ,
+    pattern KEY_Sinh_va                     ,
+    pattern KEY_Sinh_uu2                    ,
+    pattern KEY_Sinh_uu                     ,
+    pattern KEY_Sinh_u2                     ,
+    pattern KEY_Sinh_u                      ,
+    pattern KEY_Sinh_ttha                   ,
+    pattern KEY_Sinh_tta                    ,
+    pattern KEY_Sinh_thha                   ,
+    pattern KEY_Sinh_tha                    ,
+    pattern KEY_Sinh_ssha                   ,
+    pattern KEY_Sinh_sha                    ,
+    pattern KEY_Sinh_sa                     ,
+    pattern KEY_Sinh_ruu2                   ,
+    pattern KEY_Sinh_ru2                    ,
+    pattern KEY_Sinh_rii                    ,
+    pattern KEY_Sinh_ri                     ,
+    pattern KEY_Sinh_ra                     ,
+    pattern KEY_Sinh_pha                    ,
+    pattern KEY_Sinh_pa                     ,
+    pattern KEY_Sinh_oo2                    ,
+    pattern KEY_Sinh_oo                     ,
+    pattern KEY_Sinh_o2                     ,
+    pattern KEY_Sinh_o                      ,
+    pattern KEY_Sinh_nya                    ,
+    pattern KEY_Sinh_nna                    ,
+    pattern KEY_Sinh_nja                    ,
+    pattern KEY_Sinh_nga                    ,
+    pattern KEY_Sinh_ng2                    ,
+    pattern KEY_Sinh_ng                     ,
+    pattern KEY_Sinh_ndha                   ,
+    pattern KEY_Sinh_ndda                   ,
+    pattern KEY_Sinh_na                     ,
+    pattern KEY_Sinh_mba                    ,
+    pattern KEY_Sinh_ma                     ,
+    pattern KEY_Sinh_luu2                   ,
+    pattern KEY_Sinh_luu                    ,
+    pattern KEY_Sinh_lu2                    ,
+    pattern KEY_Sinh_lu                     ,
+    pattern KEY_Sinh_lla                    ,
+    pattern KEY_Sinh_la                     ,
+    pattern KEY_Sinh_kunddaliya             ,
+    pattern KEY_Sinh_kha                    ,
+    pattern KEY_Sinh_ka                     ,
+    pattern KEY_Sinh_jnya                   ,
+    pattern KEY_Sinh_jha                    ,
+    pattern KEY_Sinh_ja                     ,
+    pattern KEY_Sinh_ii2                    ,
+    pattern KEY_Sinh_ii                     ,
+    pattern KEY_Sinh_i2                     ,
+    pattern KEY_Sinh_i                      ,
+    pattern KEY_Sinh_ha                     ,
+    pattern KEY_Sinh_h2                     ,
+    pattern KEY_Sinh_gha                    ,
+    pattern KEY_Sinh_ga                     ,
+    pattern KEY_Sinh_fa                     ,
+    pattern KEY_Sinh_ee2                    ,
+    pattern KEY_Sinh_ee                     ,
+    pattern KEY_Sinh_e2                     ,
+    pattern KEY_Sinh_e                      ,
+    pattern KEY_Sinh_dhha                   ,
+    pattern KEY_Sinh_dha                    ,
+    pattern KEY_Sinh_ddha                   ,
+    pattern KEY_Sinh_dda                    ,
+    pattern KEY_Sinh_cha                    ,
+    pattern KEY_Sinh_ca                     ,
+    pattern KEY_Sinh_bha                    ,
+    pattern KEY_Sinh_ba                     ,
+    pattern KEY_Sinh_au2                    ,
+    pattern KEY_Sinh_au                     ,
+    pattern KEY_Sinh_al                     ,
+    pattern KEY_Sinh_ai2                    ,
+    pattern KEY_Sinh_ai                     ,
+    pattern KEY_Sinh_aee2                   ,
+    pattern KEY_Sinh_aee                    ,
+    pattern KEY_Sinh_ae2                    ,
+    pattern KEY_Sinh_ae                     ,
+    pattern KEY_Sinh_aa2                    ,
+    pattern KEY_Sinh_aa                     ,
+    pattern KEY_Sinh_a                      ,
+    pattern KEY_SingleCandidate             ,
+    pattern KEY_Shop                        ,
+    pattern KEY_Shift_R                     ,
+    pattern KEY_Shift_Lock                  ,
+    pattern KEY_Shift_L                     ,
+    pattern KEY_Serbian_tshe                ,
+    pattern KEY_Serbian_nje                 ,
+    pattern KEY_Serbian_lje                 ,
+    pattern KEY_Serbian_je                  ,
+    pattern KEY_Serbian_dze                 ,
+    pattern KEY_Serbian_dje                 ,
+    pattern KEY_Serbian_TSHE                ,
+    pattern KEY_Serbian_NJE                 ,
+    pattern KEY_Serbian_LJE                 ,
+    pattern KEY_Serbian_JE                  ,
+    pattern KEY_Serbian_DZE                 ,
+    pattern KEY_Serbian_DJE                 ,
+    pattern KEY_Send                        ,
+    pattern KEY_SelectButton                ,
+    pattern KEY_Select                      ,
+    pattern KEY_Search                      ,
+    pattern KEY_Scroll_Lock                 ,
+    pattern KEY_ScrollUp                    ,
+    pattern KEY_ScrollDown                  ,
+    pattern KEY_ScrollClick                 ,
+    pattern KEY_ScreenSaver                 ,
+    pattern KEY_Scircumflex                 ,
+    pattern KEY_Scedilla                    ,
+    pattern KEY_Scaron                      ,
+    pattern KEY_Save                        ,
+    pattern KEY_Sacute                      ,
+    pattern KEY_Sabovedot                   ,
+    pattern KEY_SCHWA                       ,
+    pattern KEY_S                           ,
+    pattern KEY_RupeeSign                   ,
+    pattern KEY_RotationPB                  ,
+    pattern KEY_RotationKB                  ,
+    pattern KEY_RotateWindows               ,
+    pattern KEY_Romaji                      ,
+    pattern KEY_RockerUp                    ,
+    pattern KEY_RockerEnter                 ,
+    pattern KEY_RockerDown                  ,
+    pattern KEY_Right                       ,
+    pattern KEY_Return                      ,
+    pattern KEY_Reply                       ,
+    pattern KEY_RepeatKeys_Enable           ,
+    pattern KEY_Reload                      ,
+    pattern KEY_Refresh                     ,
+    pattern KEY_Redo                        ,
+    pattern KEY_Red                         ,
+    pattern KEY_Rcedilla                    ,
+    pattern KEY_Rcaron                      ,
+    pattern KEY_Racute                      ,
+    pattern KEY_R9                          ,
+    pattern KEY_R8                          ,
+    pattern KEY_R7                          ,
+    pattern KEY_R6                          ,
+    pattern KEY_R5                          ,
+    pattern KEY_R4                          ,
+    pattern KEY_R3                          ,
+    pattern KEY_R2                          ,
+    pattern KEY_R15                         ,
+    pattern KEY_R14                         ,
+    pattern KEY_R13                         ,
+    pattern KEY_R12                         ,
+    pattern KEY_R11                         ,
+    pattern KEY_R10                         ,
+    pattern KEY_R1                          ,
+    pattern KEY_R                           ,
+    pattern KEY_Q                           ,
+    pattern KEY_Prior                       ,
+    pattern KEY_Print                       ,
+    pattern KEY_PreviousCandidate           ,
+    pattern KEY_Prev_Virtual_Screen         ,
+    pattern KEY_Prev_VMode                  ,
+    pattern KEY_PowerOff                    ,
+    pattern KEY_PowerDown                   ,
+    pattern KEY_Pointer_UpRight             ,
+    pattern KEY_Pointer_UpLeft              ,
+    pattern KEY_Pointer_Up                  ,
+    pattern KEY_Pointer_Right               ,
+    pattern KEY_Pointer_Left                ,
+    pattern KEY_Pointer_EnableKeys          ,
+    pattern KEY_Pointer_Drag_Dflt           ,
+    pattern KEY_Pointer_Drag5               ,
+    pattern KEY_Pointer_Drag4               ,
+    pattern KEY_Pointer_Drag3               ,
+    pattern KEY_Pointer_Drag2               ,
+    pattern KEY_Pointer_Drag1               ,
+    pattern KEY_Pointer_DownRight           ,
+    pattern KEY_Pointer_DownLeft            ,
+    pattern KEY_Pointer_Down                ,
+    pattern KEY_Pointer_DfltBtnPrev         ,
+    pattern KEY_Pointer_DfltBtnNext         ,
+    pattern KEY_Pointer_DblClick_Dflt       ,
+    pattern KEY_Pointer_DblClick5           ,
+    pattern KEY_Pointer_DblClick4           ,
+    pattern KEY_Pointer_DblClick3           ,
+    pattern KEY_Pointer_DblClick2           ,
+    pattern KEY_Pointer_DblClick1           ,
+    pattern KEY_Pointer_Button_Dflt         ,
+    pattern KEY_Pointer_Button5             ,
+    pattern KEY_Pointer_Button4             ,
+    pattern KEY_Pointer_Button3             ,
+    pattern KEY_Pointer_Button2             ,
+    pattern KEY_Pointer_Button1             ,
+    pattern KEY_Pointer_Accelerate          ,
+    pattern KEY_Pictures                    ,
+    pattern KEY_Phone                       ,
+    pattern KEY_PesetaSign                  ,
+    pattern KEY_Pause                       ,
+    pattern KEY_Paste                       ,
+    pattern KEY_Page_Up                     ,
+    pattern KEY_Page_Down                   ,
+    pattern KEY_Pabovedot                   ,
+    pattern KEY_P                           ,
+    pattern KEY_Overlay2_Enable             ,
+    pattern KEY_Overlay1_Enable             ,
+    pattern KEY_Otilde                      ,
+    pattern KEY_Oslash                      ,
+    pattern KEY_Option                      ,
+    pattern KEY_OpenURL                     ,
+    pattern KEY_Open                        ,
+    pattern KEY_Ooblique                    ,
+    pattern KEY_Omacron                     ,
+    pattern KEY_Ohorntilde                  ,
+    pattern KEY_Ohornhook                   ,
+    pattern KEY_Ohorngrave                  ,
+    pattern KEY_Ohornbelowdot               ,
+    pattern KEY_Ohornacute                  ,
+    pattern KEY_Ohorn                       ,
+    pattern KEY_Ohook                       ,
+    pattern KEY_Ograve                      ,
+    pattern KEY_OfficeHome                  ,
+    pattern KEY_Odoubleacute                ,
+    pattern KEY_Odiaeresis                  ,
+    pattern KEY_Ocircumflextilde            ,
+    pattern KEY_Ocircumflexhook             ,
+    pattern KEY_Ocircumflexgrave            ,
+    pattern KEY_Ocircumflexbelowdot         ,
+    pattern KEY_Ocircumflexacute            ,
+    pattern KEY_Ocircumflex                 ,
+    pattern KEY_Ocaron                      ,
+    pattern KEY_Obelowdot                   ,
+    pattern KEY_Obarred                     ,
+    pattern KEY_Oacute                      ,
+    pattern KEY_OE                          ,
+    pattern KEY_O                           ,
+    pattern KEY_Num_Lock                    ,
+    pattern KEY_Ntilde                      ,
+    pattern KEY_Next_Virtual_Screen         ,
+    pattern KEY_Next_VMode                  ,
+    pattern KEY_Next                        ,
+    pattern KEY_News                        ,
+    pattern KEY_NewSheqelSign               ,
+    pattern KEY_New                         ,
+    pattern KEY_Ncedilla                    ,
+    pattern KEY_Ncaron                      ,
+    pattern KEY_NairaSign                   ,
+    pattern KEY_Nacute                      ,
+    pattern KEY_N                           ,
+    pattern KEY_MySites                     ,
+    pattern KEY_MyComputer                  ,
+    pattern KEY_Music                       ,
+    pattern KEY_MultipleCandidate           ,
+    pattern KEY_Multi_key                   ,
+    pattern KEY_Muhenkan                    ,
+    pattern KEY_MouseKeys_Enable            ,
+    pattern KEY_MouseKeys_Accel_Enable      ,
+    pattern KEY_MonBrightnessUp             ,
+    pattern KEY_MonBrightnessDown           ,
+    pattern KEY_Mode_switch                 ,
+    pattern KEY_ModeLock                    ,
+    pattern KEY_MillSign                    ,
+    pattern KEY_Meta_R                      ,
+    pattern KEY_Meta_L                      ,
+    pattern KEY_Messenger                   ,
+    pattern KEY_MenuPB                      ,
+    pattern KEY_MenuKB                      ,
+    pattern KEY_Menu                        ,
+    pattern KEY_Memo                        ,
+    pattern KEY_Meeting                     ,
+    pattern KEY_Massyo                      ,
+    pattern KEY_Market                      ,
+    pattern KEY_MailForward                 ,
+    pattern KEY_Mail                        ,
+    pattern KEY_Mae_Koho                    ,
+    pattern KEY_Macedonia_kje               ,
+    pattern KEY_Macedonia_gje               ,
+    pattern KEY_Macedonia_dse               ,
+    pattern KEY_Macedonia_KJE               ,
+    pattern KEY_Macedonia_GJE               ,
+    pattern KEY_Macedonia_DSE               ,
+    pattern KEY_Mabovedot                   ,
+    pattern KEY_M                           ,
+    pattern KEY_Lstroke                     ,
+    pattern KEY_LogWindowTree               ,
+    pattern KEY_LogOff                      ,
+    pattern KEY_LogGrabInfo                 ,
+    pattern KEY_LiraSign                    ,
+    pattern KEY_Linefeed                    ,
+    pattern KEY_LightBulb                   ,
+    pattern KEY_Left                        ,
+    pattern KEY_Lcedilla                    ,
+    pattern KEY_Lcaron                      ,
+    pattern KEY_Lbelowdot                   ,
+    pattern KEY_LaunchF                     ,
+    pattern KEY_LaunchE                     ,
+    pattern KEY_LaunchD                     ,
+    pattern KEY_LaunchC                     ,
+    pattern KEY_LaunchB                     ,
+    pattern KEY_LaunchA                     ,
+    pattern KEY_Launch9                     ,
+    pattern KEY_Launch8                     ,
+    pattern KEY_Launch7                     ,
+    pattern KEY_Launch6                     ,
+    pattern KEY_Launch5                     ,
+    pattern KEY_Launch4                     ,
+    pattern KEY_Launch3                     ,
+    pattern KEY_Launch2                     ,
+    pattern KEY_Launch1                     ,
+    pattern KEY_Launch0                     ,
+    pattern KEY_Last_Virtual_Screen         ,
+    pattern KEY_Lacute                      ,
+    pattern KEY_L9                          ,
+    pattern KEY_L8                          ,
+    pattern KEY_L7                          ,
+    pattern KEY_L6                          ,
+    pattern KEY_L5                          ,
+    pattern KEY_L4                          ,
+    pattern KEY_L3                          ,
+    pattern KEY_L2                          ,
+    pattern KEY_L10                         ,
+    pattern KEY_L1                          ,
+    pattern KEY_L                           ,
+    pattern KEY_Korean_Won                  ,
+    pattern KEY_Kcedilla                    ,
+    pattern KEY_KbdLightOnOff               ,
+    pattern KEY_KbdBrightnessUp             ,
+    pattern KEY_KbdBrightnessDown           ,
+    pattern KEY_Katakana                    ,
+    pattern KEY_Kanji_Bangou                ,
+    pattern KEY_Kanji                       ,
+    pattern KEY_Kana_Shift                  ,
+    pattern KEY_Kana_Lock                   ,
+    pattern KEY_KP_Up                       ,
+    pattern KEY_KP_Tab                      ,
+    pattern KEY_KP_Subtract                 ,
+    pattern KEY_KP_Space                    ,
+    pattern KEY_KP_Separator                ,
+    pattern KEY_KP_Right                    ,
+    pattern KEY_KP_Prior                    ,
+    pattern KEY_KP_Page_Up                  ,
+    pattern KEY_KP_Page_Down                ,
+    pattern KEY_KP_Next                     ,
+    pattern KEY_KP_Multiply                 ,
+    pattern KEY_KP_Left                     ,
+    pattern KEY_KP_Insert                   ,
+    pattern KEY_KP_Home                     ,
+    pattern KEY_KP_F4                       ,
+    pattern KEY_KP_F3                       ,
+    pattern KEY_KP_F2                       ,
+    pattern KEY_KP_F1                       ,
+    pattern KEY_KP_Equal                    ,
+    pattern KEY_KP_Enter                    ,
+    pattern KEY_KP_End                      ,
+    pattern KEY_KP_Down                     ,
+    pattern KEY_KP_Divide                   ,
+    pattern KEY_KP_Delete                   ,
+    pattern KEY_KP_Decimal                  ,
+    pattern KEY_KP_Begin                    ,
+    pattern KEY_KP_Add                      ,
+    pattern KEY_KP_9                        ,
+    pattern KEY_KP_8                        ,
+    pattern KEY_KP_7                        ,
+    pattern KEY_KP_6                        ,
+    pattern KEY_KP_5                        ,
+    pattern KEY_KP_4                        ,
+    pattern KEY_KP_3                        ,
+    pattern KEY_KP_2                        ,
+    pattern KEY_KP_1                        ,
+    pattern KEY_KP_0                        ,
+    pattern KEY_K                           ,
+    pattern KEY_Jcircumflex                 ,
+    pattern KEY_J                           ,
+    pattern KEY_Itilde                      ,
+    pattern KEY_Iogonek                     ,
+    pattern KEY_Insert                      ,
+    pattern KEY_Imacron                     ,
+    pattern KEY_Ihook                       ,
+    pattern KEY_Igrave                      ,
+    pattern KEY_Idiaeresis                  ,
+    pattern KEY_Icircumflex                 ,
+    pattern KEY_Ibreve                      ,
+    pattern KEY_Ibelowdot                   ,
+    pattern KEY_Iacute                      ,
+    pattern KEY_Iabovedot                   ,
+    pattern KEY_ISO_Set_Margin_Right        ,
+    pattern KEY_ISO_Set_Margin_Left         ,
+    pattern KEY_ISO_Release_Margin_Right    ,
+    pattern KEY_ISO_Release_Margin_Left     ,
+    pattern KEY_ISO_Release_Both_Margins    ,
+    pattern KEY_ISO_Prev_Group_Lock         ,
+    pattern KEY_ISO_Prev_Group              ,
+    pattern KEY_ISO_Partial_Space_Right     ,
+    pattern KEY_ISO_Partial_Space_Left      ,
+    pattern KEY_ISO_Partial_Line_Up         ,
+    pattern KEY_ISO_Partial_Line_Down       ,
+    pattern KEY_ISO_Next_Group_Lock         ,
+    pattern KEY_ISO_Next_Group              ,
+    pattern KEY_ISO_Move_Line_Up            ,
+    pattern KEY_ISO_Move_Line_Down          ,
+    pattern KEY_ISO_Lock                    ,
+    pattern KEY_ISO_Level5_Shift            ,
+    pattern KEY_ISO_Level5_Lock             ,
+    pattern KEY_ISO_Level5_Latch            ,
+    pattern KEY_ISO_Level3_Shift            ,
+    pattern KEY_ISO_Level3_Lock             ,
+    pattern KEY_ISO_Level3_Latch            ,
+    pattern KEY_ISO_Level2_Latch            ,
+    pattern KEY_ISO_Left_Tab                ,
+    pattern KEY_ISO_Last_Group_Lock         ,
+    pattern KEY_ISO_Last_Group              ,
+    pattern KEY_ISO_Group_Shift             ,
+    pattern KEY_ISO_Group_Lock              ,
+    pattern KEY_ISO_Group_Latch             ,
+    pattern KEY_ISO_First_Group_Lock        ,
+    pattern KEY_ISO_First_Group             ,
+    pattern KEY_ISO_Fast_Cursor_Up          ,
+    pattern KEY_ISO_Fast_Cursor_Right       ,
+    pattern KEY_ISO_Fast_Cursor_Left        ,
+    pattern KEY_ISO_Fast_Cursor_Down        ,
+    pattern KEY_ISO_Enter                   ,
+    pattern KEY_ISO_Emphasize               ,
+    pattern KEY_ISO_Discontinuous_Underline ,
+    pattern KEY_ISO_Continuous_Underline    ,
+    pattern KEY_ISO_Center_Object           ,
+    pattern KEY_I                           ,
+    pattern KEY_Hyper_R                     ,
+    pattern KEY_Hyper_L                     ,
+    pattern KEY_Hstroke                     ,
+    pattern KEY_HotLinks                    ,
+    pattern KEY_HomePage                    ,
+    pattern KEY_Home                        ,
+    pattern KEY_History                     ,
+    pattern KEY_Hiragana_Katakana           ,
+    pattern KEY_Hiragana                    ,
+    pattern KEY_Hibernate                   ,
+    pattern KEY_Henkan_Mode                 ,
+    pattern KEY_Henkan                      ,
+    pattern KEY_Help                        ,
+    pattern KEY_Hebrew_switch               ,
+    pattern KEY_Hcircumflex                 ,
+    pattern KEY_Hankaku                     ,
+    pattern KEY_Hangul_switch               ,
+    pattern KEY_Hangul_YeorinHieuh          ,
+    pattern KEY_Hangul_YU                   ,
+    pattern KEY_Hangul_YO                   ,
+    pattern KEY_Hangul_YI                   ,
+    pattern KEY_Hangul_YEO                  ,
+    pattern KEY_Hangul_YE                   ,
+    pattern KEY_Hangul_YAE                  ,
+    pattern KEY_Hangul_YA                   ,
+    pattern KEY_Hangul_WI                   ,
+    pattern KEY_Hangul_WEO                  ,
+    pattern KEY_Hangul_WE                   ,
+    pattern KEY_Hangul_WAE                  ,
+    pattern KEY_Hangul_WA                   ,
+    pattern KEY_Hangul_U                    ,
+    pattern KEY_Hangul_Tieut                ,
+    pattern KEY_Hangul_SunkyeongeumPieub    ,
+    pattern KEY_Hangul_SunkyeongeumPhieuf   ,
+    pattern KEY_Hangul_SunkyeongeumMieum    ,
+    pattern KEY_Hangul_Start                ,
+    pattern KEY_Hangul_SsangSios            ,
+    pattern KEY_Hangul_SsangPieub           ,
+    pattern KEY_Hangul_SsangKiyeog          ,
+    pattern KEY_Hangul_SsangJieuj           ,
+    pattern KEY_Hangul_SsangDikeud          ,
+    pattern KEY_Hangul_Special              ,
+    pattern KEY_Hangul_Sios                 ,
+    pattern KEY_Hangul_SingleCandidate      ,
+    pattern KEY_Hangul_Romaja               ,
+    pattern KEY_Hangul_RieulYeorinHieuh     ,
+    pattern KEY_Hangul_RieulTieut           ,
+    pattern KEY_Hangul_RieulSios            ,
+    pattern KEY_Hangul_RieulPieub           ,
+    pattern KEY_Hangul_RieulPhieuf          ,
+    pattern KEY_Hangul_RieulMieum           ,
+    pattern KEY_Hangul_RieulKiyeog          ,
+    pattern KEY_Hangul_RieulHieuh           ,
+    pattern KEY_Hangul_Rieul                ,
+    pattern KEY_Hangul_PreviousCandidate    ,
+    pattern KEY_Hangul_PreHanja             ,
+    pattern KEY_Hangul_PostHanja            ,
+    pattern KEY_Hangul_PieubSios            ,
+    pattern KEY_Hangul_Pieub                ,
+    pattern KEY_Hangul_Phieuf               ,
+    pattern KEY_Hangul_PanSios              ,
+    pattern KEY_Hangul_OE                   ,
+    pattern KEY_Hangul_O                    ,
+    pattern KEY_Hangul_NieunJieuj           ,
+    pattern KEY_Hangul_NieunHieuh           ,
+    pattern KEY_Hangul_Nieun                ,
+    pattern KEY_Hangul_MultipleCandidate    ,
+    pattern KEY_Hangul_Mieum                ,
+    pattern KEY_Hangul_KkogjiDalrinIeung    ,
+    pattern KEY_Hangul_KiyeogSios           ,
+    pattern KEY_Hangul_Kiyeog               ,
+    pattern KEY_Hangul_Khieuq               ,
+    pattern KEY_Hangul_Jieuj                ,
+    pattern KEY_Hangul_Jeonja               ,
+    pattern KEY_Hangul_Jamo                 ,
+    pattern KEY_Hangul_J_YeorinHieuh        ,
+    pattern KEY_Hangul_J_Tieut              ,
+    pattern KEY_Hangul_J_SsangSios          ,
+    pattern KEY_Hangul_J_SsangKiyeog        ,
+    pattern KEY_Hangul_J_Sios               ,
+    pattern KEY_Hangul_J_RieulTieut         ,
+    pattern KEY_Hangul_J_RieulSios          ,
+    pattern KEY_Hangul_J_RieulPieub         ,
+    pattern KEY_Hangul_J_RieulPhieuf        ,
+    pattern KEY_Hangul_J_RieulMieum         ,
+    pattern KEY_Hangul_J_RieulKiyeog        ,
+    pattern KEY_Hangul_J_RieulHieuh         ,
+    pattern KEY_Hangul_J_Rieul              ,
+    pattern KEY_Hangul_J_PieubSios          ,
+    pattern KEY_Hangul_J_Pieub              ,
+    pattern KEY_Hangul_J_Phieuf             ,
+    pattern KEY_Hangul_J_PanSios            ,
+    pattern KEY_Hangul_J_NieunJieuj         ,
+    pattern KEY_Hangul_J_NieunHieuh         ,
+    pattern KEY_Hangul_J_Nieun              ,
+    pattern KEY_Hangul_J_Mieum              ,
+    pattern KEY_Hangul_J_KkogjiDalrinIeung  ,
+    pattern KEY_Hangul_J_KiyeogSios         ,
+    pattern KEY_Hangul_J_Kiyeog             ,
+    pattern KEY_Hangul_J_Khieuq             ,
+    pattern KEY_Hangul_J_Jieuj              ,
+    pattern KEY_Hangul_J_Ieung              ,
+    pattern KEY_Hangul_J_Hieuh              ,
+    pattern KEY_Hangul_J_Dikeud             ,
+    pattern KEY_Hangul_J_Cieuc              ,
+    pattern KEY_Hangul_Ieung                ,
+    pattern KEY_Hangul_I                    ,
+    pattern KEY_Hangul_Hieuh                ,
+    pattern KEY_Hangul_Hanja                ,
+    pattern KEY_Hangul_End                  ,
+    pattern KEY_Hangul_EU                   ,
+    pattern KEY_Hangul_EO                   ,
+    pattern KEY_Hangul_E                    ,
+    pattern KEY_Hangul_Dikeud               ,
+    pattern KEY_Hangul_Codeinput            ,
+    pattern KEY_Hangul_Cieuc                ,
+    pattern KEY_Hangul_Banja                ,
+    pattern KEY_Hangul_AraeAE               ,
+    pattern KEY_Hangul_AraeA                ,
+    pattern KEY_Hangul_AE                   ,
+    pattern KEY_Hangul_A                    ,
+    pattern KEY_Hangul                      ,
+    pattern KEY_H                           ,
+    pattern KEY_Green                       ,
+    pattern KEY_Greek_zeta                  ,
+    pattern KEY_Greek_xi                    ,
+    pattern KEY_Greek_upsilondieresis       ,
+    pattern KEY_Greek_upsilonaccentdieresis ,
+    pattern KEY_Greek_upsilonaccent         ,
+    pattern KEY_Greek_upsilon               ,
+    pattern KEY_Greek_theta                 ,
+    pattern KEY_Greek_tau                   ,
+    pattern KEY_Greek_switch                ,
+    pattern KEY_Greek_sigma                 ,
+    pattern KEY_Greek_rho                   ,
+    pattern KEY_Greek_psi                   ,
+    pattern KEY_Greek_pi                    ,
+    pattern KEY_Greek_phi                   ,
+    pattern KEY_Greek_omicronaccent         ,
+    pattern KEY_Greek_omicron               ,
+    pattern KEY_Greek_omegaaccent           ,
+    pattern KEY_Greek_omega                 ,
+    pattern KEY_Greek_nu                    ,
+    pattern KEY_Greek_mu                    ,
+    pattern KEY_Greek_lamda                 ,
+    pattern KEY_Greek_lambda                ,
+    pattern KEY_Greek_kappa                 ,
+    pattern KEY_Greek_iotadieresis          ,
+    pattern KEY_Greek_iotaaccentdieresis    ,
+    pattern KEY_Greek_iotaaccent            ,
+    pattern KEY_Greek_iota                  ,
+    pattern KEY_Greek_horizbar              ,
+    pattern KEY_Greek_gamma                 ,
+    pattern KEY_Greek_finalsmallsigma       ,
+    pattern KEY_Greek_etaaccent             ,
+    pattern KEY_Greek_eta                   ,
+    pattern KEY_Greek_epsilonaccent         ,
+    pattern KEY_Greek_epsilon               ,
+    pattern KEY_Greek_delta                 ,
+    pattern KEY_Greek_chi                   ,
+    pattern KEY_Greek_beta                  ,
+    pattern KEY_Greek_alphaaccent           ,
+    pattern KEY_Greek_alpha                 ,
+    pattern KEY_Greek_accentdieresis        ,
+    pattern KEY_Greek_ZETA                  ,
+    pattern KEY_Greek_XI                    ,
+    pattern KEY_Greek_UPSILONdieresis       ,
+    pattern KEY_Greek_UPSILONaccent         ,
+    pattern KEY_Greek_UPSILON               ,
+    pattern KEY_Greek_THETA                 ,
+    pattern KEY_Greek_TAU                   ,
+    pattern KEY_Greek_SIGMA                 ,
+    pattern KEY_Greek_RHO                   ,
+    pattern KEY_Greek_PSI                   ,
+    pattern KEY_Greek_PI                    ,
+    pattern KEY_Greek_PHI                   ,
+    pattern KEY_Greek_OMICRONaccent         ,
+    pattern KEY_Greek_OMICRON               ,
+    pattern KEY_Greek_OMEGAaccent           ,
+    pattern KEY_Greek_OMEGA                 ,
+    pattern KEY_Greek_NU                    ,
+    pattern KEY_Greek_MU                    ,
+    pattern KEY_Greek_LAMDA                 ,
+    pattern KEY_Greek_LAMBDA                ,
+    pattern KEY_Greek_KAPPA                 ,
+    pattern KEY_Greek_IOTAdieresis          ,
+    pattern KEY_Greek_IOTAdiaeresis         ,
+    pattern KEY_Greek_IOTAaccent            ,
+    pattern KEY_Greek_IOTA                  ,
+    pattern KEY_Greek_GAMMA                 ,
+    pattern KEY_Greek_ETAaccent             ,
+    pattern KEY_Greek_ETA                   ,
+    pattern KEY_Greek_EPSILONaccent         ,
+    pattern KEY_Greek_EPSILON               ,
+    pattern KEY_Greek_DELTA                 ,
+    pattern KEY_Greek_CHI                   ,
+    pattern KEY_Greek_BETA                  ,
+    pattern KEY_Greek_ALPHAaccent           ,
+    pattern KEY_Greek_ALPHA                 ,
+    pattern KEY_Go                          ,
+    pattern KEY_Georgian_zhar               ,
+    pattern KEY_Georgian_zen                ,
+    pattern KEY_Georgian_xan                ,
+    pattern KEY_Georgian_we                 ,
+    pattern KEY_Georgian_vin                ,
+    pattern KEY_Georgian_un                 ,
+    pattern KEY_Georgian_tar                ,
+    pattern KEY_Georgian_tan                ,
+    pattern KEY_Georgian_shin               ,
+    pattern KEY_Georgian_san                ,
+    pattern KEY_Georgian_rae                ,
+    pattern KEY_Georgian_qar                ,
+    pattern KEY_Georgian_phar               ,
+    pattern KEY_Georgian_par                ,
+    pattern KEY_Georgian_on                 ,
+    pattern KEY_Georgian_nar                ,
+    pattern KEY_Georgian_man                ,
+    pattern KEY_Georgian_las                ,
+    pattern KEY_Georgian_khar               ,
+    pattern KEY_Georgian_kan                ,
+    pattern KEY_Georgian_jil                ,
+    pattern KEY_Georgian_jhan               ,
+    pattern KEY_Georgian_in                 ,
+    pattern KEY_Georgian_hoe                ,
+    pattern KEY_Georgian_hie                ,
+    pattern KEY_Georgian_he                 ,
+    pattern KEY_Georgian_har                ,
+    pattern KEY_Georgian_hae                ,
+    pattern KEY_Georgian_ghan               ,
+    pattern KEY_Georgian_gan                ,
+    pattern KEY_Georgian_fi                 ,
+    pattern KEY_Georgian_en                 ,
+    pattern KEY_Georgian_don                ,
+    pattern KEY_Georgian_cil                ,
+    pattern KEY_Georgian_chin               ,
+    pattern KEY_Georgian_char               ,
+    pattern KEY_Georgian_can                ,
+    pattern KEY_Georgian_ban                ,
+    pattern KEY_Georgian_an                 ,
+    pattern KEY_Gcircumflex                 ,
+    pattern KEY_Gcedilla                    ,
+    pattern KEY_Gcaron                      ,
+    pattern KEY_Gbreve                      ,
+    pattern KEY_Game                        ,
+    pattern KEY_Gabovedot                   ,
+    pattern KEY_G                           ,
+    pattern KEY_FrameForward                ,
+    pattern KEY_FrameBack                   ,
+    pattern KEY_Forward                     ,
+    pattern KEY_First_Virtual_Screen        ,
+    pattern KEY_Find                        ,
+    pattern KEY_Finance                     ,
+    pattern KEY_Favorites                   ,
+    pattern KEY_Farsi_yeh                   ,
+    pattern KEY_Farsi_9                     ,
+    pattern KEY_Farsi_8                     ,
+    pattern KEY_Farsi_7                     ,
+    pattern KEY_Farsi_6                     ,
+    pattern KEY_Farsi_5                     ,
+    pattern KEY_Farsi_4                     ,
+    pattern KEY_Farsi_3                     ,
+    pattern KEY_Farsi_2                     ,
+    pattern KEY_Farsi_1                     ,
+    pattern KEY_Farsi_0                     ,
+    pattern KEY_Fabovedot                   ,
+    pattern KEY_FFrancSign                  ,
+    pattern KEY_F9                          ,
+    pattern KEY_F8                          ,
+    pattern KEY_F7                          ,
+    pattern KEY_F6                          ,
+    pattern KEY_F5                          ,
+    pattern KEY_F4                          ,
+    pattern KEY_F35                         ,
+    pattern KEY_F34                         ,
+    pattern KEY_F33                         ,
+    pattern KEY_F32                         ,
+    pattern KEY_F31                         ,
+    pattern KEY_F30                         ,
+    pattern KEY_F3                          ,
+    pattern KEY_F29                         ,
+    pattern KEY_F28                         ,
+    pattern KEY_F27                         ,
+    pattern KEY_F26                         ,
+    pattern KEY_F25                         ,
+    pattern KEY_F24                         ,
+    pattern KEY_F23                         ,
+    pattern KEY_F22                         ,
+    pattern KEY_F21                         ,
+    pattern KEY_F20                         ,
+    pattern KEY_F2                          ,
+    pattern KEY_F19                         ,
+    pattern KEY_F18                         ,
+    pattern KEY_F17                         ,
+    pattern KEY_F16                         ,
+    pattern KEY_F15                         ,
+    pattern KEY_F14                         ,
+    pattern KEY_F13                         ,
+    pattern KEY_F12                         ,
+    pattern KEY_F11                         ,
+    pattern KEY_F10                         ,
+    pattern KEY_F1                          ,
+    pattern KEY_F                           ,
+    pattern KEY_Explorer                    ,
+    pattern KEY_Execute                     ,
+    pattern KEY_Excel                       ,
+    pattern KEY_EuroSign                    ,
+    pattern KEY_Etilde                      ,
+    pattern KEY_Eth                         ,
+    pattern KEY_Escape                      ,
+    pattern KEY_Eogonek                     ,
+    pattern KEY_End                         ,
+    pattern KEY_Emacron                     ,
+    pattern KEY_Eject                       ,
+    pattern KEY_Eisu_toggle                 ,
+    pattern KEY_Eisu_Shift                  ,
+    pattern KEY_Ehook                       ,
+    pattern KEY_Egrave                      ,
+    pattern KEY_Ediaeresis                  ,
+    pattern KEY_EcuSign                     ,
+    pattern KEY_Ecircumflextilde            ,
+    pattern KEY_Ecircumflexhook             ,
+    pattern KEY_Ecircumflexgrave            ,
+    pattern KEY_Ecircumflexbelowdot         ,
+    pattern KEY_Ecircumflexacute            ,
+    pattern KEY_Ecircumflex                 ,
+    pattern KEY_Ecaron                      ,
+    pattern KEY_Ebelowdot                   ,
+    pattern KEY_Eacute                      ,
+    pattern KEY_Eabovedot                   ,
+    pattern KEY_EZH                         ,
+    pattern KEY_ETH                         ,
+    pattern KEY_ENG                         ,
+    pattern KEY_E                           ,
+    pattern KEY_Dstroke                     ,
+    pattern KEY_Down                        ,
+    pattern KEY_DongSign                    ,
+    pattern KEY_Documents                   ,
+    pattern KEY_Display                     ,
+    pattern KEY_Delete                      ,
+    pattern KEY_Dcaron                      ,
+    pattern KEY_Dabovedot                   ,
+    pattern KEY_DOS                         ,
+    pattern KEY_D                           ,
+    pattern KEY_Cyrillic_zhe_descender      ,
+    pattern KEY_Cyrillic_zhe                ,
+    pattern KEY_Cyrillic_ze                 ,
+    pattern KEY_Cyrillic_yu                 ,
+    pattern KEY_Cyrillic_yeru               ,
+    pattern KEY_Cyrillic_ya                 ,
+    pattern KEY_Cyrillic_ve                 ,
+    pattern KEY_Cyrillic_u_straight_bar     ,
+    pattern KEY_Cyrillic_u_straight         ,
+    pattern KEY_Cyrillic_u_macron           ,
+    pattern KEY_Cyrillic_u                  ,
+    pattern KEY_Cyrillic_tse                ,
+    pattern KEY_Cyrillic_te                 ,
+    pattern KEY_Cyrillic_softsign           ,
+    pattern KEY_Cyrillic_shorti             ,
+    pattern KEY_Cyrillic_shha               ,
+    pattern KEY_Cyrillic_shcha              ,
+    pattern KEY_Cyrillic_sha                ,
+    pattern KEY_Cyrillic_schwa              ,
+    pattern KEY_Cyrillic_pe                 ,
+    pattern KEY_Cyrillic_o_bar              ,
+    pattern KEY_Cyrillic_o                  ,
+    pattern KEY_Cyrillic_nje                ,
+    pattern KEY_Cyrillic_lje                ,
+    pattern KEY_Cyrillic_ka_vertstroke      ,
+    pattern KEY_Cyrillic_ka_descender       ,
+    pattern KEY_Cyrillic_ka                 ,
+    pattern KEY_Cyrillic_je                 ,
+    pattern KEY_Cyrillic_io                 ,
+    pattern KEY_Cyrillic_ie                 ,
+    pattern KEY_Cyrillic_i_macron           ,
+    pattern KEY_Cyrillic_i                  ,
+    pattern KEY_Cyrillic_hardsign           ,
+    pattern KEY_Cyrillic_ha_descender       ,
+    pattern KEY_Cyrillic_ha                 ,
+    pattern KEY_Cyrillic_ghe_bar            ,
+    pattern KEY_Cyrillic_ghe                ,
+    pattern KEY_Cyrillic_es                 ,
+    pattern KEY_Cyrillic_er                 ,
+    pattern KEY_Cyrillic_en_descender       ,
+    pattern KEY_Cyrillic_en                 ,
+    pattern KEY_Cyrillic_em                 ,
+    pattern KEY_Cyrillic_el                 ,
+    pattern KEY_Cyrillic_ef                 ,
+    pattern KEY_Cyrillic_e                  ,
+    pattern KEY_Cyrillic_dzhe               ,
+    pattern KEY_Cyrillic_de                 ,
+    pattern KEY_Cyrillic_che_vertstroke     ,
+    pattern KEY_Cyrillic_che_descender      ,
+    pattern KEY_Cyrillic_che                ,
+    pattern KEY_Cyrillic_be                 ,
+    pattern KEY_Cyrillic_a                  ,
+    pattern KEY_Cyrillic_ZHE_descender      ,
+    pattern KEY_Cyrillic_ZHE                ,
+    pattern KEY_Cyrillic_ZE                 ,
+    pattern KEY_Cyrillic_YU                 ,
+    pattern KEY_Cyrillic_YERU               ,
+    pattern KEY_Cyrillic_YA                 ,
+    pattern KEY_Cyrillic_VE                 ,
+    pattern KEY_Cyrillic_U_straight_bar     ,
+    pattern KEY_Cyrillic_U_straight         ,
+    pattern KEY_Cyrillic_U_macron           ,
+    pattern KEY_Cyrillic_U                  ,
+    pattern KEY_Cyrillic_TSE                ,
+    pattern KEY_Cyrillic_TE                 ,
+    pattern KEY_Cyrillic_SOFTSIGN           ,
+    pattern KEY_Cyrillic_SHORTI             ,
+    pattern KEY_Cyrillic_SHHA               ,
+    pattern KEY_Cyrillic_SHCHA              ,
+    pattern KEY_Cyrillic_SHA                ,
+    pattern KEY_Cyrillic_SCHWA              ,
+    pattern KEY_Cyrillic_PE                 ,
+    pattern KEY_Cyrillic_O_bar              ,
+    pattern KEY_Cyrillic_O                  ,
+    pattern KEY_Cyrillic_NJE                ,
+    pattern KEY_Cyrillic_LJE                ,
+    pattern KEY_Cyrillic_KA_vertstroke      ,
+    pattern KEY_Cyrillic_KA_descender       ,
+    pattern KEY_Cyrillic_KA                 ,
+    pattern KEY_Cyrillic_JE                 ,
+    pattern KEY_Cyrillic_I_macron           ,
+    pattern KEY_Cyrillic_IO                 ,
+    pattern KEY_Cyrillic_IE                 ,
+    pattern KEY_Cyrillic_I                  ,
+    pattern KEY_Cyrillic_HA_descender       ,
+    pattern KEY_Cyrillic_HARDSIGN           ,
+    pattern KEY_Cyrillic_HA                 ,
+    pattern KEY_Cyrillic_GHE_bar            ,
+    pattern KEY_Cyrillic_GHE                ,
+    pattern KEY_Cyrillic_ES                 ,
+    pattern KEY_Cyrillic_ER                 ,
+    pattern KEY_Cyrillic_EN_descender       ,
+    pattern KEY_Cyrillic_EN                 ,
+    pattern KEY_Cyrillic_EM                 ,
+    pattern KEY_Cyrillic_EL                 ,
+    pattern KEY_Cyrillic_EF                 ,
+    pattern KEY_Cyrillic_E                  ,
+    pattern KEY_Cyrillic_DZHE               ,
+    pattern KEY_Cyrillic_DE                 ,
+    pattern KEY_Cyrillic_CHE_vertstroke     ,
+    pattern KEY_Cyrillic_CHE_descender      ,
+    pattern KEY_Cyrillic_CHE                ,
+    pattern KEY_Cyrillic_BE                 ,
+    pattern KEY_Cyrillic_A                  ,
+    pattern KEY_CycleAngle                  ,
+    pattern KEY_Cut                         ,
+    pattern KEY_CruzeiroSign                ,
+    pattern KEY_Copy                        ,
+    pattern KEY_Control_R                   ,
+    pattern KEY_Control_L                   ,
+    pattern KEY_ContrastAdjust              ,
+    pattern KEY_Community                   ,
+    pattern KEY_ColonSign                   ,
+    pattern KEY_Codeinput                   ,
+    pattern KEY_Close                       ,
+    pattern KEY_ClearGrab                   ,
+    pattern KEY_Clear                       ,
+    pattern KEY_Ch                          ,
+    pattern KEY_Ccircumflex                 ,
+    pattern KEY_Ccedilla                    ,
+    pattern KEY_Ccaron                      ,
+    pattern KEY_Caps_Lock                   ,
+    pattern KEY_Cancel                      ,
+    pattern KEY_Calendar                    ,
+    pattern KEY_Calculator                  ,
+    pattern KEY_Cacute                      ,
+    pattern KEY_Cabovedot                   ,
+    pattern KEY_C_h                         ,
+    pattern KEY_C_H                         ,
+    pattern KEY_CH                          ,
+    pattern KEY_CD                          ,
+    pattern KEY_C                           ,
+    pattern KEY_Byelorussian_shortu         ,
+    pattern KEY_Byelorussian_SHORTU         ,
+    pattern KEY_BrightnessAdjust            ,
+    pattern KEY_Break                       ,
+    pattern KEY_BounceKeys_Enable           ,
+    pattern KEY_Book                        ,
+    pattern KEY_Bluetooth                   ,
+    pattern KEY_Blue                        ,
+    pattern KEY_Begin                       ,
+    pattern KEY_Battery                     ,
+    pattern KEY_BackSpace                   ,
+    pattern KEY_BackForward                 ,
+    pattern KEY_Back                        ,
+    pattern KEY_Babovedot                   ,
+    pattern KEY_B                           ,
+    pattern KEY_Away                        ,
+    pattern KEY_AudioStop                   ,
+    pattern KEY_AudioRewind                 ,
+    pattern KEY_AudioRepeat                 ,
+    pattern KEY_AudioRecord                 ,
+    pattern KEY_AudioRandomPlay             ,
+    pattern KEY_AudioRaiseVolume            ,
+    pattern KEY_AudioPrev                   ,
+    pattern KEY_AudioPlay                   ,
+    pattern KEY_AudioPause                  ,
+    pattern KEY_AudioNext                   ,
+    pattern KEY_AudioMute                   ,
+    pattern KEY_AudioMicMute                ,
+    pattern KEY_AudioMedia                  ,
+    pattern KEY_AudioLowerVolume            ,
+    pattern KEY_AudioForward                ,
+    pattern KEY_AudioCycleTrack             ,
+    pattern KEY_AudibleBell_Enable          ,
+    pattern KEY_Atilde                      ,
+    pattern KEY_Armenian_zhe                ,
+    pattern KEY_Armenian_za                 ,
+    pattern KEY_Armenian_yentamna           ,
+    pattern KEY_Armenian_yech               ,
+    pattern KEY_Armenian_vyun               ,
+    pattern KEY_Armenian_vo                 ,
+    pattern KEY_Armenian_vev                ,
+    pattern KEY_Armenian_verjaket           ,
+    pattern KEY_Armenian_tyun               ,
+    pattern KEY_Armenian_tso                ,
+    pattern KEY_Armenian_tsa                ,
+    pattern KEY_Armenian_to                 ,
+    pattern KEY_Armenian_tche               ,
+    pattern KEY_Armenian_shesht             ,
+    pattern KEY_Armenian_sha                ,
+    pattern KEY_Armenian_separation_mark    ,
+    pattern KEY_Armenian_se                 ,
+    pattern KEY_Armenian_re                 ,
+    pattern KEY_Armenian_ra                 ,
+    pattern KEY_Armenian_question           ,
+    pattern KEY_Armenian_pyur               ,
+    pattern KEY_Armenian_pe                 ,
+    pattern KEY_Armenian_paruyk             ,
+    pattern KEY_Armenian_o                  ,
+    pattern KEY_Armenian_nu                 ,
+    pattern KEY_Armenian_men                ,
+    pattern KEY_Armenian_lyun               ,
+    pattern KEY_Armenian_ligature_ew        ,
+    pattern KEY_Armenian_khe                ,
+    pattern KEY_Armenian_ken                ,
+    pattern KEY_Armenian_ke                 ,
+    pattern KEY_Armenian_je                 ,
+    pattern KEY_Armenian_ini                ,
+    pattern KEY_Armenian_hyphen             ,
+    pattern KEY_Armenian_ho                 ,
+    pattern KEY_Armenian_hi                 ,
+    pattern KEY_Armenian_gim                ,
+    pattern KEY_Armenian_ghat               ,
+    pattern KEY_Armenian_full_stop          ,
+    pattern KEY_Armenian_fe                 ,
+    pattern KEY_Armenian_exclam             ,
+    pattern KEY_Armenian_e                  ,
+    pattern KEY_Armenian_dza                ,
+    pattern KEY_Armenian_da                 ,
+    pattern KEY_Armenian_cha                ,
+    pattern KEY_Armenian_but                ,
+    pattern KEY_Armenian_ben                ,
+    pattern KEY_Armenian_ayb                ,
+    pattern KEY_Armenian_at                 ,
+    pattern KEY_Armenian_apostrophe         ,
+    pattern KEY_Armenian_amanak             ,
+    pattern KEY_Armenian_accent             ,
+    pattern KEY_Armenian_ZHE                ,
+    pattern KEY_Armenian_ZA                 ,
+    pattern KEY_Armenian_YECH               ,
+    pattern KEY_Armenian_VYUN               ,
+    pattern KEY_Armenian_VO                 ,
+    pattern KEY_Armenian_VEV                ,
+    pattern KEY_Armenian_TYUN               ,
+    pattern KEY_Armenian_TSO                ,
+    pattern KEY_Armenian_TSA                ,
+    pattern KEY_Armenian_TO                 ,
+    pattern KEY_Armenian_TCHE               ,
+    pattern KEY_Armenian_SHA                ,
+    pattern KEY_Armenian_SE                 ,
+    pattern KEY_Armenian_RE                 ,
+    pattern KEY_Armenian_RA                 ,
+    pattern KEY_Armenian_PYUR               ,
+    pattern KEY_Armenian_PE                 ,
+    pattern KEY_Armenian_O                  ,
+    pattern KEY_Armenian_NU                 ,
+    pattern KEY_Armenian_MEN                ,
+    pattern KEY_Armenian_LYUN               ,
+    pattern KEY_Armenian_KHE                ,
+    pattern KEY_Armenian_KEN                ,
+    pattern KEY_Armenian_KE                 ,
+    pattern KEY_Armenian_JE                 ,
+    pattern KEY_Armenian_INI                ,
+    pattern KEY_Armenian_HO                 ,
+    pattern KEY_Armenian_HI                 ,
+    pattern KEY_Armenian_GIM                ,
+    pattern KEY_Armenian_GHAT               ,
+    pattern KEY_Armenian_FE                 ,
+    pattern KEY_Armenian_E                  ,
+    pattern KEY_Armenian_DZA                ,
+    pattern KEY_Armenian_DA                 ,
+    pattern KEY_Armenian_CHA                ,
+    pattern KEY_Armenian_BEN                ,
+    pattern KEY_Armenian_AYB                ,
+    pattern KEY_Armenian_AT                 ,
+    pattern KEY_Aring                       ,
+    pattern KEY_Arabic_zain                 ,
+    pattern KEY_Arabic_zah                  ,
+    pattern KEY_Arabic_yeh_baree            ,
+    pattern KEY_Arabic_yeh                  ,
+    pattern KEY_Arabic_waw                  ,
+    pattern KEY_Arabic_veh                  ,
+    pattern KEY_Arabic_tteh                 ,
+    pattern KEY_Arabic_theh                 ,
+    pattern KEY_Arabic_thal                 ,
+    pattern KEY_Arabic_tehmarbuta           ,
+    pattern KEY_Arabic_teh                  ,
+    pattern KEY_Arabic_tcheh                ,
+    pattern KEY_Arabic_tatweel              ,
+    pattern KEY_Arabic_tah                  ,
+    pattern KEY_Arabic_switch               ,
+    pattern KEY_Arabic_superscript_alef     ,
+    pattern KEY_Arabic_sukun                ,
+    pattern KEY_Arabic_sheen                ,
+    pattern KEY_Arabic_shadda               ,
+    pattern KEY_Arabic_semicolon            ,
+    pattern KEY_Arabic_seen                 ,
+    pattern KEY_Arabic_sad                  ,
+    pattern KEY_Arabic_rreh                 ,
+    pattern KEY_Arabic_ra                   ,
+    pattern KEY_Arabic_question_mark        ,
+    pattern KEY_Arabic_qaf                  ,
+    pattern KEY_Arabic_percent              ,
+    pattern KEY_Arabic_peh                  ,
+    pattern KEY_Arabic_noon_ghunna          ,
+    pattern KEY_Arabic_noon                 ,
+    pattern KEY_Arabic_meem                 ,
+    pattern KEY_Arabic_maddaonalef          ,
+    pattern KEY_Arabic_madda_above          ,
+    pattern KEY_Arabic_lam                  ,
+    pattern KEY_Arabic_khah                 ,
+    pattern KEY_Arabic_keheh                ,
+    pattern KEY_Arabic_kasratan             ,
+    pattern KEY_Arabic_kasra                ,
+    pattern KEY_Arabic_kaf                  ,
+    pattern KEY_Arabic_jeh                  ,
+    pattern KEY_Arabic_jeem                 ,
+    pattern KEY_Arabic_heh_goal             ,
+    pattern KEY_Arabic_heh_doachashmee      ,
+    pattern KEY_Arabic_heh                  ,
+    pattern KEY_Arabic_hamzaunderalef       ,
+    pattern KEY_Arabic_hamzaonyeh           ,
+    pattern KEY_Arabic_hamzaonwaw           ,
+    pattern KEY_Arabic_hamzaonalef          ,
+    pattern KEY_Arabic_hamza_below          ,
+    pattern KEY_Arabic_hamza_above          ,
+    pattern KEY_Arabic_hamza                ,
+    pattern KEY_Arabic_hah                  ,
+    pattern KEY_Arabic_ha                   ,
+    pattern KEY_Arabic_ghain                ,
+    pattern KEY_Arabic_gaf                  ,
+    pattern KEY_Arabic_fullstop             ,
+    pattern KEY_Arabic_feh                  ,
+    pattern KEY_Arabic_fathatan             ,
+    pattern KEY_Arabic_fatha                ,
+    pattern KEY_Arabic_farsi_yeh            ,
+    pattern KEY_Arabic_ddal                 ,
+    pattern KEY_Arabic_dammatan             ,
+    pattern KEY_Arabic_damma                ,
+    pattern KEY_Arabic_dal                  ,
+    pattern KEY_Arabic_dad                  ,
+    pattern KEY_Arabic_comma                ,
+    pattern KEY_Arabic_beh                  ,
+    pattern KEY_Arabic_alefmaksura          ,
+    pattern KEY_Arabic_alef                 ,
+    pattern KEY_Arabic_ain                  ,
+    pattern KEY_Arabic_9                    ,
+    pattern KEY_Arabic_8                    ,
+    pattern KEY_Arabic_7                    ,
+    pattern KEY_Arabic_6                    ,
+    pattern KEY_Arabic_5                    ,
+    pattern KEY_Arabic_4                    ,
+    pattern KEY_Arabic_3                    ,
+    pattern KEY_Arabic_2                    ,
+    pattern KEY_Arabic_1                    ,
+    pattern KEY_Arabic_0                    ,
+    pattern KEY_ApplicationRight            ,
+    pattern KEY_ApplicationLeft             ,
+    pattern KEY_Aogonek                     ,
+    pattern KEY_Amacron                     ,
+    pattern KEY_Alt_R                       ,
+    pattern KEY_Alt_L                       ,
+    pattern KEY_Ahook                       ,
+    pattern KEY_Agrave                      ,
+    pattern KEY_Adiaeresis                  ,
+    pattern KEY_AddFavorite                 ,
+    pattern KEY_Acircumflextilde            ,
+    pattern KEY_Acircumflexhook             ,
+    pattern KEY_Acircumflexgrave            ,
+    pattern KEY_Acircumflexbelowdot         ,
+    pattern KEY_Acircumflexacute            ,
+    pattern KEY_Acircumflex                 ,
+    pattern KEY_AccessX_Feedback_Enable     ,
+    pattern KEY_AccessX_Enable              ,
+    pattern KEY_Abrevetilde                 ,
+    pattern KEY_Abrevehook                  ,
+    pattern KEY_Abrevegrave                 ,
+    pattern KEY_Abrevebelowdot              ,
+    pattern KEY_Abreveacute                 ,
+    pattern KEY_Abreve                      ,
+    pattern KEY_Abelowdot                   ,
+    pattern KEY_Aacute                      ,
+    pattern KEY_AE                          ,
+    pattern KEY_A                           ,
+    pattern KEY_9                           ,
+    pattern KEY_8                           ,
+    pattern KEY_7                           ,
+    pattern KEY_6                           ,
+    pattern KEY_5                           ,
+    pattern KEY_4                           ,
+    pattern KEY_3270_Test                   ,
+    pattern KEY_3270_Setup                  ,
+    pattern KEY_3270_Rule                   ,
+    pattern KEY_3270_Right2                 ,
+    pattern KEY_3270_Reset                  ,
+    pattern KEY_3270_Record                 ,
+    pattern KEY_3270_Quit                   ,
+    pattern KEY_3270_PrintScreen            ,
+    pattern KEY_3270_Play                   ,
+    pattern KEY_3270_PA3                    ,
+    pattern KEY_3270_PA2                    ,
+    pattern KEY_3270_PA1                    ,
+    pattern KEY_3270_Left2                  ,
+    pattern KEY_3270_KeyClick               ,
+    pattern KEY_3270_Jump                   ,
+    pattern KEY_3270_Ident                  ,
+    pattern KEY_3270_FieldMark              ,
+    pattern KEY_3270_ExSelect               ,
+    pattern KEY_3270_EraseInput             ,
+    pattern KEY_3270_EraseEOF               ,
+    pattern KEY_3270_Enter                  ,
+    pattern KEY_3270_Duplicate              ,
+    pattern KEY_3270_DeleteWord             ,
+    pattern KEY_3270_CursorSelect           ,
+    pattern KEY_3270_CursorBlink            ,
+    pattern KEY_3270_Copy                   ,
+    pattern KEY_3270_ChangeScreen           ,
+    pattern KEY_3270_BackTab                ,
+    pattern KEY_3270_Attn                   ,
+    pattern KEY_3270_AltCursor              ,
+    pattern KEY_3                           ,
+    pattern KEY_2                           ,
+    pattern KEY_1                           ,
+    pattern KEY_0                           ,
+    pattern EVENT_STOP                      ,
+    pattern EVENT_PROPAGATE                 ,
+    pattern CURRENT_TIME                    ,
+    pattern BUTTON_SECONDARY                ,
+    pattern BUTTON_PRIMARY                  ,
+    pattern BUTTON_MIDDLE                   ,
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+
+pattern PRIORITY_REDRAW = 20 :: Int32
+
+
+pattern PARENT_RELATIVE = 1 :: Int32
+
+
+pattern MAX_TIMECOORD_AXES = 128 :: Int32
+
+
+pattern KEY_zstroke = 16777654 :: Int32
+
+
+pattern KEY_zerosuperior = 16785520 :: Int32
+
+
+pattern KEY_zerosubscript = 16785536 :: Int32
+
+
+pattern KEY_zcaron = 446 :: Int32
+
+
+pattern KEY_zacute = 444 :: Int32
+
+
+pattern KEY_zabovedot = 447 :: Int32
+
+
+pattern KEY_z = 122 :: Int32
+
+
+pattern KEY_ytilde = 16785145 :: Int32
+
+
+pattern KEY_yhook = 16785143 :: Int32
+
+
+pattern KEY_ygrave = 16785139 :: Int32
+
+
+pattern KEY_yen = 165 :: Int32
+
+
+pattern KEY_ydiaeresis = 255 :: Int32
+
+
+pattern KEY_ycircumflex = 16777591 :: Int32
+
+
+pattern KEY_ybelowdot = 16785141 :: Int32
+
+
+pattern KEY_yacute = 253 :: Int32
+
+
+pattern KEY_y = 121 :: Int32
+
+
+pattern KEY_xabovedot = 16785035 :: Int32
+
+
+pattern KEY_x = 120 :: Int32
+
+
+pattern KEY_wgrave = 16785025 :: Int32
+
+
+pattern KEY_wdiaeresis = 16785029 :: Int32
+
+
+pattern KEY_wcircumflex = 16777589 :: Int32
+
+
+pattern KEY_wacute = 16785027 :: Int32
+
+
+pattern KEY_w = 119 :: Int32
+
+
+pattern KEY_vt = 2537 :: Int32
+
+
+pattern KEY_voicedsound = 1246 :: Int32
+
+
+pattern KEY_vertconnector = 2214 :: Int32
+
+
+pattern KEY_vertbar = 2552 :: Int32
+
+
+pattern KEY_variation = 2241 :: Int32
+
+
+pattern KEY_v = 118 :: Int32
+
+
+pattern KEY_utilde = 1021 :: Int32
+
+
+pattern KEY_uring = 505 :: Int32
+
+
+pattern KEY_uptack = 3022 :: Int32
+
+
+pattern KEY_upstile = 3027 :: Int32
+
+
+pattern KEY_upshoe = 3011 :: Int32
+
+
+pattern KEY_uprightcorner = 2539 :: Int32
+
+
+pattern KEY_upleftcorner = 2540 :: Int32
+
+
+pattern KEY_upcaret = 2985 :: Int32
+
+
+pattern KEY_uparrow = 2300 :: Int32
+
+
+pattern KEY_uogonek = 1017 :: Int32
+
+
+pattern KEY_union = 2269 :: Int32
+
+
+pattern KEY_underscore = 95 :: Int32
+
+
+pattern KEY_underbar = 3014 :: Int32
+
+
+pattern KEY_umacron = 1022 :: Int32
+
+
+pattern KEY_uhorntilde = 16785135 :: Int32
+
+
+pattern KEY_uhornhook = 16785133 :: Int32
+
+
+pattern KEY_uhorngrave = 16785131 :: Int32
+
+
+pattern KEY_uhornbelowdot = 16785137 :: Int32
+
+
+pattern KEY_uhornacute = 16785129 :: Int32
+
+
+pattern KEY_uhorn = 16777648 :: Int32
+
+
+pattern KEY_uhook = 16785127 :: Int32
+
+
+pattern KEY_ugrave = 249 :: Int32
+
+
+pattern KEY_udoubleacute = 507 :: Int32
+
+
+pattern KEY_udiaeresis = 252 :: Int32
+
+
+pattern KEY_ucircumflex = 251 :: Int32
+
+
+pattern KEY_ubreve = 765 :: Int32
+
+
+pattern KEY_ubelowdot = 16785125 :: Int32
+
+
+pattern KEY_uacute = 250 :: Int32
+
+
+pattern KEY_u = 117 :: Int32
+
+
+pattern KEY_twothirds = 2737 :: Int32
+
+
+pattern KEY_twosuperior = 178 :: Int32
+
+
+pattern KEY_twosubscript = 16785538 :: Int32
+
+
+pattern KEY_twofifths = 2739 :: Int32
+
+
+pattern KEY_tslash = 956 :: Int32
+
+
+pattern KEY_trademarkincircle = 2763 :: Int32
+
+
+pattern KEY_trademark = 2761 :: Int32
+
+
+pattern KEY_topvertsummationconnector = 2227 :: Int32
+
+
+pattern KEY_topt = 2551 :: Int32
+
+
+pattern KEY_toprightsummation = 2229 :: Int32
+
+
+pattern KEY_toprightsqbracket = 2217 :: Int32
+
+
+pattern KEY_toprightparens = 2221 :: Int32
+
+
+pattern KEY_topleftsummation = 2225 :: Int32
+
+
+pattern KEY_topleftsqbracket = 2215 :: Int32
+
+
+pattern KEY_topleftradical = 2210 :: Int32
+
+
+pattern KEY_topleftparens = 2219 :: Int32
+
+
+pattern KEY_topintegral = 2212 :: Int32
+
+
+pattern KEY_tintegral = 16785965 :: Int32
+
+
+pattern KEY_threesuperior = 179 :: Int32
+
+
+pattern KEY_threesubscript = 16785539 :: Int32
+
+
+pattern KEY_threequarters = 190 :: Int32
+
+
+pattern KEY_threefifths = 2740 :: Int32
+
+
+pattern KEY_threeeighths = 2756 :: Int32
+
+
+pattern KEY_thorn = 254 :: Int32
+
+
+pattern KEY_thinspace = 2727 :: Int32
+
+
+pattern KEY_therefore = 2240 :: Int32
+
+
+pattern KEY_telephonerecorder = 2810 :: Int32
+
+
+pattern KEY_telephone = 2809 :: Int32
+
+
+pattern KEY_tcedilla = 510 :: Int32
+
+
+pattern KEY_tcaron = 443 :: Int32
+
+
+pattern KEY_tabovedot = 16785003 :: Int32
+
+
+pattern KEY_t = 116 :: Int32
+
+
+pattern KEY_stricteq = 16786019 :: Int32
+
+
+pattern KEY_sterling = 163 :: Int32
+
+
+pattern KEY_ssharp = 223 :: Int32
+
+
+pattern KEY_squareroot = 16785946 :: Int32
+
+
+pattern KEY_space = 32 :: Int32
+
+
+pattern KEY_soliddiamond = 2528 :: Int32
+
+
+pattern KEY_slash = 47 :: Int32
+
+
+pattern KEY_sixsuperior = 16785526 :: Int32
+
+
+pattern KEY_sixsubscript = 16785542 :: Int32
+
+
+pattern KEY_singlelowquotemark = 2813 :: Int32
+
+
+pattern KEY_similarequal = 2249 :: Int32
+
+
+pattern KEY_signifblank = 2732 :: Int32
+
+
+pattern KEY_signaturemark = 2762 :: Int32
+
+
+pattern KEY_sevensuperior = 16785527 :: Int32
+
+
+pattern KEY_sevensubscript = 16785543 :: Int32
+
+
+pattern KEY_seveneighths = 2758 :: Int32
+
+
+pattern KEY_semivoicedsound = 1247 :: Int32
+
+
+pattern KEY_semicolon = 59 :: Int32
+
+
+pattern KEY_section = 167 :: Int32
+
+
+pattern KEY_seconds = 2775 :: Int32
+
+
+pattern KEY_script_switch = 65406 :: Int32
+
+
+pattern KEY_scircumflex = 766 :: Int32
+
+
+pattern KEY_schwa = 16777817 :: Int32
+
+
+pattern KEY_scedilla = 442 :: Int32
+
+
+pattern KEY_scaron = 441 :: Int32
+
+
+pattern KEY_sacute = 438 :: Int32
+
+
+pattern KEY_sabovedot = 16784993 :: Int32
+
+
+pattern KEY_s = 115 :: Int32
+
+
+pattern KEY_righttack = 3068 :: Int32
+
+
+pattern KEY_rightt = 2549 :: Int32
+
+
+pattern KEY_rightsinglequotemark = 2769 :: Int32
+
+
+pattern KEY_rightshoe = 3032 :: Int32
+
+
+pattern KEY_rightpointer = 2795 :: Int32
+
+
+pattern KEY_rightopentriangle = 2765 :: Int32
+
+
+pattern KEY_rightmiddlesummation = 2231 :: Int32
+
+
+pattern KEY_rightmiddlecurlybrace = 2224 :: Int32
+
+
+pattern KEY_rightdoublequotemark = 2771 :: Int32
+
+
+pattern KEY_rightcaret = 2982 :: Int32
+
+
+pattern KEY_rightarrow = 2301 :: Int32
+
+
+pattern KEY_rightanglebracket = 2750 :: Int32
+
+
+pattern KEY_registered = 174 :: Int32
+
+
+pattern KEY_rcedilla = 947 :: Int32
+
+
+pattern KEY_rcaron = 504 :: Int32
+
+
+pattern KEY_radical = 2262 :: Int32
+
+
+pattern KEY_racute = 480 :: Int32
+
+
+pattern KEY_r = 114 :: Int32
+
+
+pattern KEY_quoteright = 39 :: Int32
+
+
+pattern KEY_quoteleft = 96 :: Int32
+
+
+pattern KEY_quotedbl = 34 :: Int32
+
+
+pattern KEY_questiondown = 191 :: Int32
+
+
+pattern KEY_question = 63 :: Int32
+
+
+pattern KEY_quad = 3020 :: Int32
+
+
+pattern KEY_q = 113 :: Int32
+
+
+pattern KEY_punctspace = 2726 :: Int32
+
+
+pattern KEY_prolongedsound = 1200 :: Int32
+
+
+pattern KEY_prescription = 2772 :: Int32
+
+
+pattern KEY_plusminus = 177 :: Int32
+
+
+pattern KEY_plus = 43 :: Int32
+
+
+pattern KEY_phonographcopyright = 2811 :: Int32
+
+
+pattern KEY_permille = 2773 :: Int32
+
+
+pattern KEY_periodcentered = 183 :: Int32
+
+
+pattern KEY_period = 46 :: Int32
+
+
+pattern KEY_percent = 37 :: Int32
+
+
+pattern KEY_partialderivative = 2287 :: Int32
+
+
+pattern KEY_partdifferential = 16785922 :: Int32
+
+
+pattern KEY_parenright = 41 :: Int32
+
+
+pattern KEY_parenleft = 40 :: Int32
+
+
+pattern KEY_paragraph = 182 :: Int32
+
+
+pattern KEY_pabovedot = 16784983 :: Int32
+
+
+pattern KEY_p = 112 :: Int32
+
+
+pattern KEY_overline = 1150 :: Int32
+
+
+pattern KEY_overbar = 3008 :: Int32
+
+
+pattern KEY_otilde = 245 :: Int32
+
+
+pattern KEY_oslash = 248 :: Int32
+
+
+pattern KEY_ordfeminine = 170 :: Int32
+
+
+pattern KEY_opentribulletup = 2787 :: Int32
+
+
+pattern KEY_opentribulletdown = 2788 :: Int32
+
+
+pattern KEY_openstar = 2789 :: Int32
+
+
+pattern KEY_openrectbullet = 2786 :: Int32
+
+
+pattern KEY_ooblique = 248 :: Int32
+
+
+pattern KEY_onethird = 2736 :: Int32
+
+
+pattern KEY_onesuperior = 185 :: Int32
+
+
+pattern KEY_onesubscript = 16785537 :: Int32
+
+
+pattern KEY_onesixth = 2742 :: Int32
+
+
+pattern KEY_onequarter = 188 :: Int32
+
+
+pattern KEY_onehalf = 189 :: Int32
+
+
+pattern KEY_onefifth = 2738 :: Int32
+
+
+pattern KEY_oneeighth = 2755 :: Int32
+
+
+pattern KEY_omacron = 1010 :: Int32
+
+
+pattern KEY_ohorntilde = 16785121 :: Int32
+
+
+pattern KEY_ohornhook = 16785119 :: Int32
+
+
+pattern KEY_ohorngrave = 16785117 :: Int32
+
+
+pattern KEY_ohornbelowdot = 16785123 :: Int32
+
+
+pattern KEY_ohornacute = 16785115 :: Int32
+
+
+pattern KEY_ohorn = 16777633 :: Int32
+
+
+pattern KEY_ohook = 16785103 :: Int32
+
+
+pattern KEY_ograve = 242 :: Int32
+
+
+pattern KEY_ogonek = 434 :: Int32
+
+
+pattern KEY_oe = 5053 :: Int32
+
+
+pattern KEY_odoubleacute = 501 :: Int32
+
+
+pattern KEY_odiaeresis = 246 :: Int32
+
+
+pattern KEY_ocircumflextilde = 16785111 :: Int32
+
+
+pattern KEY_ocircumflexhook = 16785109 :: Int32
+
+
+pattern KEY_ocircumflexgrave = 16785107 :: Int32
+
+
+pattern KEY_ocircumflexbelowdot = 16785113 :: Int32
+
+
+pattern KEY_ocircumflexacute = 16785105 :: Int32
+
+
+pattern KEY_ocircumflex = 244 :: Int32
+
+
+pattern KEY_ocaron = 16777682 :: Int32
+
+
+pattern KEY_obelowdot = 16785101 :: Int32
+
+
+pattern KEY_obarred = 16777845 :: Int32
+
+
+pattern KEY_oacute = 243 :: Int32
+
+
+pattern KEY_o = 111 :: Int32
+
+
+pattern KEY_numerosign = 1712 :: Int32
+
+
+pattern KEY_numbersign = 35 :: Int32
+
+
+pattern KEY_ntilde = 241 :: Int32
+
+
+pattern KEY_notsign = 172 :: Int32
+
+
+pattern KEY_notidentical = 16786018 :: Int32
+
+
+pattern KEY_notequal = 2237 :: Int32
+
+
+pattern KEY_notelementof = 16785929 :: Int32
+
+
+pattern KEY_notapproxeq = 16785991 :: Int32
+
+
+pattern KEY_nobreakspace = 160 :: Int32
+
+
+pattern KEY_nl = 2536 :: Int32
+
+
+pattern KEY_ninesuperior = 16785529 :: Int32
+
+
+pattern KEY_ninesubscript = 16785545 :: Int32
+
+
+pattern KEY_ncedilla = 1009 :: Int32
+
+
+pattern KEY_ncaron = 498 :: Int32
+
+
+pattern KEY_nacute = 497 :: Int32
+
+
+pattern KEY_nabla = 2245 :: Int32
+
+
+pattern KEY_n = 110 :: Int32
+
+
+pattern KEY_musicalsharp = 2805 :: Int32
+
+
+pattern KEY_musicalflat = 2806 :: Int32
+
+
+pattern KEY_multiply = 215 :: Int32
+
+
+pattern KEY_mu = 181 :: Int32
+
+
+pattern KEY_minutes = 2774 :: Int32
+
+
+pattern KEY_minus = 45 :: Int32
+
+
+pattern KEY_masculine = 186 :: Int32
+
+
+pattern KEY_marker = 2751 :: Int32
+
+
+pattern KEY_maltesecross = 2800 :: Int32
+
+
+pattern KEY_malesymbol = 2807 :: Int32
+
+
+pattern KEY_macron = 175 :: Int32
+
+
+pattern KEY_mabovedot = 16784961 :: Int32
+
+
+pattern KEY_m = 109 :: Int32
+
+
+pattern KEY_lstroke = 435 :: Int32
+
+
+pattern KEY_lowrightcorner = 2538 :: Int32
+
+
+pattern KEY_lowleftcorner = 2541 :: Int32
+
+
+pattern KEY_logicalor = 2271 :: Int32
+
+
+pattern KEY_logicaland = 2270 :: Int32
+
+
+pattern KEY_lf = 2533 :: Int32
+
+
+pattern KEY_lessthanequal = 2236 :: Int32
+
+
+pattern KEY_less = 60 :: Int32
+
+
+pattern KEY_lefttack = 3036 :: Int32
+
+
+pattern KEY_leftt = 2548 :: Int32
+
+
+pattern KEY_leftsinglequotemark = 2768 :: Int32
+
+
+pattern KEY_leftshoe = 3034 :: Int32
+
+
+pattern KEY_leftradical = 2209 :: Int32
+
+
+pattern KEY_leftpointer = 2794 :: Int32
+
+
+pattern KEY_leftopentriangle = 2764 :: Int32
+
+
+pattern KEY_leftmiddlecurlybrace = 2223 :: Int32
+
+
+pattern KEY_leftdoublequotemark = 2770 :: Int32
+
+
+pattern KEY_leftcaret = 2979 :: Int32
+
+
+pattern KEY_leftarrow = 2299 :: Int32
+
+
+pattern KEY_leftanglebracket = 2748 :: Int32
+
+
+pattern KEY_lcedilla = 950 :: Int32
+
+
+pattern KEY_lcaron = 437 :: Int32
+
+
+pattern KEY_lbelowdot = 16784951 :: Int32
+
+
+pattern KEY_latincross = 2777 :: Int32
+
+
+pattern KEY_lacute = 485 :: Int32
+
+
+pattern KEY_l = 108 :: Int32
+
+
+pattern KEY_kra = 930 :: Int32
+
+
+pattern KEY_kcedilla = 1011 :: Int32
+
+
+pattern KEY_kappa = 930 :: Int32
+
+
+pattern KEY_kana_yu = 1197 :: Int32
+
+
+pattern KEY_kana_yo = 1198 :: Int32
+
+
+pattern KEY_kana_ya = 1196 :: Int32
+
+
+pattern KEY_kana_u = 1193 :: Int32
+
+
+pattern KEY_kana_tu = 1199 :: Int32
+
+
+pattern KEY_kana_tsu = 1199 :: Int32
+
+
+pattern KEY_kana_switch = 65406 :: Int32
+
+
+pattern KEY_kana_openingbracket = 1186 :: Int32
+
+
+pattern KEY_kana_o = 1195 :: Int32
+
+
+pattern KEY_kana_middledot = 1189 :: Int32
+
+
+pattern KEY_kana_i = 1192 :: Int32
+
+
+pattern KEY_kana_fullstop = 1185 :: Int32
+
+
+pattern KEY_kana_e = 1194 :: Int32
+
+
+pattern KEY_kana_conjunctive = 1189 :: Int32
+
+
+pattern KEY_kana_comma = 1188 :: Int32
+
+
+pattern KEY_kana_closingbracket = 1187 :: Int32
+
+
+pattern KEY_kana_a = 1191 :: Int32
+
+
+pattern KEY_kana_YU = 1237 :: Int32
+
+
+pattern KEY_kana_YO = 1238 :: Int32
+
+
+pattern KEY_kana_YA = 1236 :: Int32
+
+
+pattern KEY_kana_WO = 1190 :: Int32
+
+
+pattern KEY_kana_WA = 1244 :: Int32
+
+
+pattern KEY_kana_U = 1203 :: Int32
+
+
+pattern KEY_kana_TU = 1218 :: Int32
+
+
+pattern KEY_kana_TSU = 1218 :: Int32
+
+
+pattern KEY_kana_TO = 1220 :: Int32
+
+
+pattern KEY_kana_TI = 1217 :: Int32
+
+
+pattern KEY_kana_TE = 1219 :: Int32
+
+
+pattern KEY_kana_TA = 1216 :: Int32
+
+
+pattern KEY_kana_SU = 1213 :: Int32
+
+
+pattern KEY_kana_SO = 1215 :: Int32
+
+
+pattern KEY_kana_SHI = 1212 :: Int32
+
+
+pattern KEY_kana_SE = 1214 :: Int32
+
+
+pattern KEY_kana_SA = 1211 :: Int32
+
+
+pattern KEY_kana_RU = 1241 :: Int32
+
+
+pattern KEY_kana_RO = 1243 :: Int32
+
+
+pattern KEY_kana_RI = 1240 :: Int32
+
+
+pattern KEY_kana_RE = 1242 :: Int32
+
+
+pattern KEY_kana_RA = 1239 :: Int32
+
+
+pattern KEY_kana_O = 1205 :: Int32
+
+
+pattern KEY_kana_NU = 1223 :: Int32
+
+
+pattern KEY_kana_NO = 1225 :: Int32
+
+
+pattern KEY_kana_NI = 1222 :: Int32
+
+
+pattern KEY_kana_NE = 1224 :: Int32
+
+
+pattern KEY_kana_NA = 1221 :: Int32
+
+
+pattern KEY_kana_N = 1245 :: Int32
+
+
+pattern KEY_kana_MU = 1233 :: Int32
+
+
+pattern KEY_kana_MO = 1235 :: Int32
+
+
+pattern KEY_kana_MI = 1232 :: Int32
+
+
+pattern KEY_kana_ME = 1234 :: Int32
+
+
+pattern KEY_kana_MA = 1231 :: Int32
+
+
+pattern KEY_kana_KU = 1208 :: Int32
+
+
+pattern KEY_kana_KO = 1210 :: Int32
+
+
+pattern KEY_kana_KI = 1207 :: Int32
+
+
+pattern KEY_kana_KE = 1209 :: Int32
+
+
+pattern KEY_kana_KA = 1206 :: Int32
+
+
+pattern KEY_kana_I = 1202 :: Int32
+
+
+pattern KEY_kana_HU = 1228 :: Int32
+
+
+pattern KEY_kana_HO = 1230 :: Int32
+
+
+pattern KEY_kana_HI = 1227 :: Int32
+
+
+pattern KEY_kana_HE = 1229 :: Int32
+
+
+pattern KEY_kana_HA = 1226 :: Int32
+
+
+pattern KEY_kana_FU = 1228 :: Int32
+
+
+pattern KEY_kana_E = 1204 :: Int32
+
+
+pattern KEY_kana_CHI = 1217 :: Int32
+
+
+pattern KEY_kana_A = 1201 :: Int32
+
+
+pattern KEY_k = 107 :: Int32
+
+
+pattern KEY_jot = 3018 :: Int32
+
+
+pattern KEY_jcircumflex = 700 :: Int32
+
+
+pattern KEY_j = 106 :: Int32
+
+
+pattern KEY_itilde = 949 :: Int32
+
+
+pattern KEY_iogonek = 999 :: Int32
+
+
+pattern KEY_intersection = 2268 :: Int32
+
+
+pattern KEY_integral = 2239 :: Int32
+
+
+pattern KEY_infinity = 2242 :: Int32
+
+
+pattern KEY_includes = 2267 :: Int32
+
+
+pattern KEY_includedin = 2266 :: Int32
+
+
+pattern KEY_implies = 2254 :: Int32
+
+
+pattern KEY_imacron = 1007 :: Int32
+
+
+pattern KEY_ihook = 16785097 :: Int32
+
+
+pattern KEY_igrave = 236 :: Int32
+
+
+pattern KEY_ifonlyif = 2253 :: Int32
+
+
+pattern KEY_idotless = 697 :: Int32
+
+
+pattern KEY_idiaeresis = 239 :: Int32
+
+
+pattern KEY_identical = 2255 :: Int32
+
+
+pattern KEY_icircumflex = 238 :: Int32
+
+
+pattern KEY_ibreve = 16777517 :: Int32
+
+
+pattern KEY_ibelowdot = 16785099 :: Int32
+
+
+pattern KEY_iacute = 237 :: Int32
+
+
+pattern KEY_iTouch = 269025120 :: Int32
+
+
+pattern KEY_i = 105 :: Int32
+
+
+pattern KEY_hyphen = 173 :: Int32
+
+
+pattern KEY_ht = 2530 :: Int32
+
+
+pattern KEY_hstroke = 689 :: Int32
+
+
+pattern KEY_horizlinescan9 = 2547 :: Int32
+
+
+pattern KEY_horizlinescan7 = 2546 :: Int32
+
+
+pattern KEY_horizlinescan5 = 2545 :: Int32
+
+
+pattern KEY_horizlinescan3 = 2544 :: Int32
+
+
+pattern KEY_horizlinescan1 = 2543 :: Int32
+
+
+pattern KEY_horizconnector = 2211 :: Int32
+
+
+pattern KEY_hexagram = 2778 :: Int32
+
+
+pattern KEY_hebrew_zayin = 3302 :: Int32
+
+
+pattern KEY_hebrew_zain = 3302 :: Int32
+
+
+pattern KEY_hebrew_zadi = 3318 :: Int32
+
+
+pattern KEY_hebrew_zade = 3318 :: Int32
+
+
+pattern KEY_hebrew_yod = 3305 :: Int32
+
+
+pattern KEY_hebrew_waw = 3301 :: Int32
+
+
+pattern KEY_hebrew_teth = 3304 :: Int32
+
+
+pattern KEY_hebrew_tet = 3304 :: Int32
+
+
+pattern KEY_hebrew_taw = 3322 :: Int32
+
+
+pattern KEY_hebrew_taf = 3322 :: Int32
+
+
+pattern KEY_hebrew_shin = 3321 :: Int32
+
+
+pattern KEY_hebrew_samekh = 3313 :: Int32
+
+
+pattern KEY_hebrew_samech = 3313 :: Int32
+
+
+pattern KEY_hebrew_resh = 3320 :: Int32
+
+
+pattern KEY_hebrew_qoph = 3319 :: Int32
+
+
+pattern KEY_hebrew_pe = 3316 :: Int32
+
+
+pattern KEY_hebrew_nun = 3312 :: Int32
+
+
+pattern KEY_hebrew_mem = 3310 :: Int32
+
+
+pattern KEY_hebrew_lamed = 3308 :: Int32
+
+
+pattern KEY_hebrew_kuf = 3319 :: Int32
+
+
+pattern KEY_hebrew_kaph = 3307 :: Int32
+
+
+pattern KEY_hebrew_het = 3303 :: Int32
+
+
+pattern KEY_hebrew_he = 3300 :: Int32
+
+
+pattern KEY_hebrew_gimmel = 3298 :: Int32
+
+
+pattern KEY_hebrew_gimel = 3298 :: Int32
+
+
+pattern KEY_hebrew_finalzadi = 3317 :: Int32
+
+
+pattern KEY_hebrew_finalzade = 3317 :: Int32
+
+
+pattern KEY_hebrew_finalpe = 3315 :: Int32
+
+
+pattern KEY_hebrew_finalnun = 3311 :: Int32
+
+
+pattern KEY_hebrew_finalmem = 3309 :: Int32
+
+
+pattern KEY_hebrew_finalkaph = 3306 :: Int32
+
+
+pattern KEY_hebrew_doublelowline = 3295 :: Int32
+
+
+pattern KEY_hebrew_daleth = 3299 :: Int32
+
+
+pattern KEY_hebrew_dalet = 3299 :: Int32
+
+
+pattern KEY_hebrew_chet = 3303 :: Int32
+
+
+pattern KEY_hebrew_beth = 3297 :: Int32
+
+
+pattern KEY_hebrew_bet = 3297 :: Int32
+
+
+pattern KEY_hebrew_ayin = 3314 :: Int32
+
+
+pattern KEY_hebrew_aleph = 3296 :: Int32
+
+
+pattern KEY_heart = 2798 :: Int32
+
+
+pattern KEY_hcircumflex = 694 :: Int32
+
+
+pattern KEY_hairspace = 2728 :: Int32
+
+
+pattern KEY_h = 104 :: Int32
+
+
+pattern KEY_guillemotright = 187 :: Int32
+
+
+pattern KEY_guillemotleft = 171 :: Int32
+
+
+pattern KEY_greaterthanequal = 2238 :: Int32
+
+
+pattern KEY_greater = 62 :: Int32
+
+
+pattern KEY_grave = 96 :: Int32
+
+
+pattern KEY_gcircumflex = 760 :: Int32
+
+
+pattern KEY_gcedilla = 955 :: Int32
+
+
+pattern KEY_gcaron = 16777703 :: Int32
+
+
+pattern KEY_gbreve = 699 :: Int32
+
+
+pattern KEY_gabovedot = 757 :: Int32
+
+
+pattern KEY_g = 103 :: Int32
+
+
+pattern KEY_function = 2294 :: Int32
+
+
+pattern KEY_fourthroot = 16785948 :: Int32
+
+
+pattern KEY_foursuperior = 16785524 :: Int32
+
+
+pattern KEY_foursubscript = 16785540 :: Int32
+
+
+pattern KEY_fourfifths = 2741 :: Int32
+
+
+pattern KEY_fivesuperior = 16785525 :: Int32
+
+
+pattern KEY_fivesubscript = 16785541 :: Int32
+
+
+pattern KEY_fivesixths = 2743 :: Int32
+
+
+pattern KEY_fiveeighths = 2757 :: Int32
+
+
+pattern KEY_filledtribulletup = 2792 :: Int32
+
+
+pattern KEY_filledtribulletdown = 2793 :: Int32
+
+
+pattern KEY_filledrighttribullet = 2781 :: Int32
+
+
+pattern KEY_filledrectbullet = 2779 :: Int32
+
+
+pattern KEY_filledlefttribullet = 2780 :: Int32
+
+
+pattern KEY_figdash = 2747 :: Int32
+
+
+pattern KEY_ff = 2531 :: Int32
+
+
+pattern KEY_femalesymbol = 2808 :: Int32
+
+
+pattern KEY_fabovedot = 16784927 :: Int32
+
+
+pattern KEY_f = 102 :: Int32
+
+
+pattern KEY_ezh = 16777874 :: Int32
+
+
+pattern KEY_exclamdown = 161 :: Int32
+
+
+pattern KEY_exclam = 33 :: Int32
+
+
+pattern KEY_etilde = 16785085 :: Int32
+
+
+pattern KEY_eth = 240 :: Int32
+
+
+pattern KEY_equal = 61 :: Int32
+
+
+pattern KEY_eogonek = 490 :: Int32
+
+
+pattern KEY_enspace = 2722 :: Int32
+
+
+pattern KEY_enopensquarebullet = 2785 :: Int32
+
+
+pattern KEY_enopencircbullet = 2784 :: Int32
+
+
+pattern KEY_eng = 959 :: Int32
+
+
+pattern KEY_enfilledsqbullet = 2791 :: Int32
+
+
+pattern KEY_enfilledcircbullet = 2790 :: Int32
+
+
+pattern KEY_endash = 2730 :: Int32
+
+
+pattern KEY_emspace = 2721 :: Int32
+
+
+pattern KEY_emptyset = 16785925 :: Int32
+
+
+pattern KEY_emopenrectangle = 2767 :: Int32
+
+
+pattern KEY_emopencircle = 2766 :: Int32
+
+
+pattern KEY_emfilledrect = 2783 :: Int32
+
+
+pattern KEY_emfilledcircle = 2782 :: Int32
+
+
+pattern KEY_emdash = 2729 :: Int32
+
+
+pattern KEY_emacron = 954 :: Int32
+
+
+pattern KEY_em4space = 2724 :: Int32
+
+
+pattern KEY_em3space = 2723 :: Int32
+
+
+pattern KEY_ellipsis = 2734 :: Int32
+
+
+pattern KEY_elementof = 16785928 :: Int32
+
+
+pattern KEY_eightsuperior = 16785528 :: Int32
+
+
+pattern KEY_eightsubscript = 16785544 :: Int32
+
+
+pattern KEY_ehook = 16785083 :: Int32
+
+
+pattern KEY_egrave = 232 :: Int32
+
+
+pattern KEY_ediaeresis = 235 :: Int32
+
+
+pattern KEY_ecircumflextilde = 16785093 :: Int32
+
+
+pattern KEY_ecircumflexhook = 16785091 :: Int32
+
+
+pattern KEY_ecircumflexgrave = 16785089 :: Int32
+
+
+pattern KEY_ecircumflexbelowdot = 16785095 :: Int32
+
+
+pattern KEY_ecircumflexacute = 16785087 :: Int32
+
+
+pattern KEY_ecircumflex = 234 :: Int32
+
+
+pattern KEY_ecaron = 492 :: Int32
+
+
+pattern KEY_ebelowdot = 16785081 :: Int32
+
+
+pattern KEY_eacute = 233 :: Int32
+
+
+pattern KEY_eabovedot = 1004 :: Int32
+
+
+pattern KEY_e = 101 :: Int32
+
+
+pattern KEY_dstroke = 496 :: Int32
+
+
+pattern KEY_downtack = 3010 :: Int32
+
+
+pattern KEY_downstile = 3012 :: Int32
+
+
+pattern KEY_downshoe = 3030 :: Int32
+
+
+pattern KEY_downcaret = 2984 :: Int32
+
+
+pattern KEY_downarrow = 2302 :: Int32
+
+
+pattern KEY_doublelowquotemark = 2814 :: Int32
+
+
+pattern KEY_doubledagger = 2802 :: Int32
+
+
+pattern KEY_doubleacute = 445 :: Int32
+
+
+pattern KEY_doubbaselinedot = 2735 :: Int32
+
+
+pattern KEY_dollar = 36 :: Int32
+
+
+pattern KEY_division = 247 :: Int32
+
+
+pattern KEY_dintegral = 16785964 :: Int32
+
+
+pattern KEY_digitspace = 2725 :: Int32
+
+
+pattern KEY_diamond = 2797 :: Int32
+
+
+pattern KEY_diaeresis = 168 :: Int32
+
+
+pattern KEY_degree = 176 :: Int32
+
+
+pattern KEY_decimalpoint = 2749 :: Int32
+
+
+pattern KEY_dead_voiced_sound = 65118 :: Int32
+
+
+pattern KEY_dead_u = 65160 :: Int32
+
+
+pattern KEY_dead_tilde = 65107 :: Int32
+
+
+pattern KEY_dead_stroke = 65123 :: Int32
+
+
+pattern KEY_dead_small_schwa = 65162 :: Int32
+
+
+pattern KEY_dead_semivoiced_sound = 65119 :: Int32
+
+
+pattern KEY_dead_psili = 65124 :: Int32
+
+
+pattern KEY_dead_perispomeni = 65107 :: Int32
+
+
+pattern KEY_dead_ogonek = 65116 :: Int32
+
+
+pattern KEY_dead_o = 65158 :: Int32
+
+
+pattern KEY_dead_macron = 65108 :: Int32
+
+
+pattern KEY_dead_iota = 65117 :: Int32
+
+
+pattern KEY_dead_invertedbreve = 65133 :: Int32
+
+
+pattern KEY_dead_i = 65156 :: Int32
+
+
+pattern KEY_dead_horn = 65122 :: Int32
+
+
+pattern KEY_dead_hook = 65121 :: Int32
+
+
+pattern KEY_dead_greek = 65164 :: Int32
+
+
+pattern KEY_dead_grave = 65104 :: Int32
+
+
+pattern KEY_dead_e = 65154 :: Int32
+
+
+pattern KEY_dead_doublegrave = 65126 :: Int32
+
+
+pattern KEY_dead_doubleacute = 65113 :: Int32
+
+
+pattern KEY_dead_diaeresis = 65111 :: Int32
+
+
+pattern KEY_dead_dasia = 65125 :: Int32
+
+
+pattern KEY_dead_currency = 65135 :: Int32
+
+
+pattern KEY_dead_circumflex = 65106 :: Int32
+
+
+pattern KEY_dead_cedilla = 65115 :: Int32
+
+
+pattern KEY_dead_caron = 65114 :: Int32
+
+
+pattern KEY_dead_capital_schwa = 65163 :: Int32
+
+
+pattern KEY_dead_breve = 65109 :: Int32
+
+
+pattern KEY_dead_belowtilde = 65130 :: Int32
+
+
+pattern KEY_dead_belowring = 65127 :: Int32
+
+
+pattern KEY_dead_belowmacron = 65128 :: Int32
+
+
+pattern KEY_dead_belowdot = 65120 :: Int32
+
+
+pattern KEY_dead_belowdiaeresis = 65132 :: Int32
+
+
+pattern KEY_dead_belowcomma = 65134 :: Int32
+
+
+pattern KEY_dead_belowcircumflex = 65129 :: Int32
+
+
+pattern KEY_dead_belowbreve = 65131 :: Int32
+
+
+pattern KEY_dead_acute = 65105 :: Int32
+
+
+pattern KEY_dead_abovering = 65112 :: Int32
+
+
+pattern KEY_dead_abovereversedcomma = 65125 :: Int32
+
+
+pattern KEY_dead_abovedot = 65110 :: Int32
+
+
+pattern KEY_dead_abovecomma = 65124 :: Int32
+
+
+pattern KEY_dead_a = 65152 :: Int32
+
+
+pattern KEY_dead_U = 65161 :: Int32
+
+
+pattern KEY_dead_O = 65159 :: Int32
+
+
+pattern KEY_dead_I = 65157 :: Int32
+
+
+pattern KEY_dead_E = 65155 :: Int32
+
+
+pattern KEY_dead_A = 65153 :: Int32
+
+
+pattern KEY_dcaron = 495 :: Int32
+
+
+pattern KEY_dagger = 2801 :: Int32
+
+
+pattern KEY_dabovedot = 16784907 :: Int32
+
+
+pattern KEY_d = 100 :: Int32
+
+
+pattern KEY_cursor = 2815 :: Int32
+
+
+pattern KEY_currency = 164 :: Int32
+
+
+pattern KEY_cuberoot = 16785947 :: Int32
+
+
+pattern KEY_crossinglines = 2542 :: Int32
+
+
+pattern KEY_cr = 2532 :: Int32
+
+
+pattern KEY_copyright = 169 :: Int32
+
+
+pattern KEY_containsas = 16785931 :: Int32
+
+
+pattern KEY_comma = 44 :: Int32
+
+
+pattern KEY_colon = 58 :: Int32
+
+
+pattern KEY_club = 2796 :: Int32
+
+
+pattern KEY_circle = 3023 :: Int32
+
+
+pattern KEY_checkmark = 2803 :: Int32
+
+
+pattern KEY_checkerboard = 2529 :: Int32
+
+
+pattern KEY_ch = 65184 :: Int32
+
+
+pattern KEY_cent = 162 :: Int32
+
+
+pattern KEY_cedilla = 184 :: Int32
+
+
+pattern KEY_ccircumflex = 742 :: Int32
+
+
+pattern KEY_ccedilla = 231 :: Int32
+
+
+pattern KEY_ccaron = 488 :: Int32
+
+
+pattern KEY_caron = 439 :: Int32
+
+
+pattern KEY_caret = 2812 :: Int32
+
+
+pattern KEY_careof = 2744 :: Int32
+
+
+pattern KEY_cacute = 486 :: Int32
+
+
+pattern KEY_cabovedot = 741 :: Int32
+
+
+pattern KEY_c_h = 65187 :: Int32
+
+
+pattern KEY_c = 99 :: Int32
+
+
+pattern KEY_brokenbar = 166 :: Int32
+
+
+pattern KEY_breve = 418 :: Int32
+
+
+pattern KEY_braille_dots_8 = 16787584 :: Int32
+
+
+pattern KEY_braille_dots_78 = 16787648 :: Int32
+
+
+pattern KEY_braille_dots_7 = 16787520 :: Int32
+
+
+pattern KEY_braille_dots_68 = 16787616 :: Int32
+
+
+pattern KEY_braille_dots_678 = 16787680 :: Int32
+
+
+pattern KEY_braille_dots_67 = 16787552 :: Int32
+
+
+pattern KEY_braille_dots_6 = 16787488 :: Int32
+
+
+pattern KEY_braille_dots_58 = 16787600 :: Int32
+
+
+pattern KEY_braille_dots_578 = 16787664 :: Int32
+
+
+pattern KEY_braille_dots_57 = 16787536 :: Int32
+
+
+pattern KEY_braille_dots_568 = 16787632 :: Int32
+
+
+pattern KEY_braille_dots_5678 = 16787696 :: Int32
+
+
+pattern KEY_braille_dots_567 = 16787568 :: Int32
+
+
+pattern KEY_braille_dots_56 = 16787504 :: Int32
+
+
+pattern KEY_braille_dots_5 = 16787472 :: Int32
+
+
+pattern KEY_braille_dots_48 = 16787592 :: Int32
+
+
+pattern KEY_braille_dots_478 = 16787656 :: Int32
+
+
+pattern KEY_braille_dots_47 = 16787528 :: Int32
+
+
+pattern KEY_braille_dots_468 = 16787624 :: Int32
+
+
+pattern KEY_braille_dots_4678 = 16787688 :: Int32
+
+
+pattern KEY_braille_dots_467 = 16787560 :: Int32
+
+
+pattern KEY_braille_dots_46 = 16787496 :: Int32
+
+
+pattern KEY_braille_dots_458 = 16787608 :: Int32
+
+
+pattern KEY_braille_dots_4578 = 16787672 :: Int32
+
+
+pattern KEY_braille_dots_457 = 16787544 :: Int32
+
+
+pattern KEY_braille_dots_4568 = 16787640 :: Int32
+
+
+pattern KEY_braille_dots_45678 = 16787704 :: Int32
+
+
+pattern KEY_braille_dots_4567 = 16787576 :: Int32
+
+
+pattern KEY_braille_dots_456 = 16787512 :: Int32
+
+
+pattern KEY_braille_dots_45 = 16787480 :: Int32
+
+
+pattern KEY_braille_dots_4 = 16787464 :: Int32
+
+
+pattern KEY_braille_dots_38 = 16787588 :: Int32
+
+
+pattern KEY_braille_dots_378 = 16787652 :: Int32
+
+
+pattern KEY_braille_dots_37 = 16787524 :: Int32
+
+
+pattern KEY_braille_dots_368 = 16787620 :: Int32
+
+
+pattern KEY_braille_dots_3678 = 16787684 :: Int32
+
+
+pattern KEY_braille_dots_367 = 16787556 :: Int32
+
+
+pattern KEY_braille_dots_36 = 16787492 :: Int32
+
+
+pattern KEY_braille_dots_358 = 16787604 :: Int32
+
+
+pattern KEY_braille_dots_3578 = 16787668 :: Int32
+
+
+pattern KEY_braille_dots_357 = 16787540 :: Int32
+
+
+pattern KEY_braille_dots_3568 = 16787636 :: Int32
+
+
+pattern KEY_braille_dots_35678 = 16787700 :: Int32
+
+
+pattern KEY_braille_dots_3567 = 16787572 :: Int32
+
+
+pattern KEY_braille_dots_356 = 16787508 :: Int32
+
+
+pattern KEY_braille_dots_35 = 16787476 :: Int32
+
+
+pattern KEY_braille_dots_348 = 16787596 :: Int32
+
+
+pattern KEY_braille_dots_3478 = 16787660 :: Int32
+
+
+pattern KEY_braille_dots_347 = 16787532 :: Int32
+
+
+pattern KEY_braille_dots_3468 = 16787628 :: Int32
+
+
+pattern KEY_braille_dots_34678 = 16787692 :: Int32
+
+
+pattern KEY_braille_dots_3467 = 16787564 :: Int32
+
+
+pattern KEY_braille_dots_346 = 16787500 :: Int32
+
+
+pattern KEY_braille_dots_3458 = 16787612 :: Int32
+
+
+pattern KEY_braille_dots_34578 = 16787676 :: Int32
+
+
+pattern KEY_braille_dots_3457 = 16787548 :: Int32
+
+
+pattern KEY_braille_dots_34568 = 16787644 :: Int32
+
+
+pattern KEY_braille_dots_345678 = 16787708 :: Int32
+
+
+pattern KEY_braille_dots_34567 = 16787580 :: Int32
+
+
+pattern KEY_braille_dots_3456 = 16787516 :: Int32
+
+
+pattern KEY_braille_dots_345 = 16787484 :: Int32
+
+
+pattern KEY_braille_dots_34 = 16787468 :: Int32
+
+
+pattern KEY_braille_dots_3 = 16787460 :: Int32
+
+
+pattern KEY_braille_dots_28 = 16787586 :: Int32
+
+
+pattern KEY_braille_dots_278 = 16787650 :: Int32
+
+
+pattern KEY_braille_dots_27 = 16787522 :: Int32
+
+
+pattern KEY_braille_dots_268 = 16787618 :: Int32
+
+
+pattern KEY_braille_dots_2678 = 16787682 :: Int32
+
+
+pattern KEY_braille_dots_267 = 16787554 :: Int32
+
+
+pattern KEY_braille_dots_26 = 16787490 :: Int32
+
+
+pattern KEY_braille_dots_258 = 16787602 :: Int32
+
+
+pattern KEY_braille_dots_2578 = 16787666 :: Int32
+
+
+pattern KEY_braille_dots_257 = 16787538 :: Int32
+
+
+pattern KEY_braille_dots_2568 = 16787634 :: Int32
+
+
+pattern KEY_braille_dots_25678 = 16787698 :: Int32
+
+
+pattern KEY_braille_dots_2567 = 16787570 :: Int32
+
+
+pattern KEY_braille_dots_256 = 16787506 :: Int32
+
+
+pattern KEY_braille_dots_25 = 16787474 :: Int32
+
+
+pattern KEY_braille_dots_248 = 16787594 :: Int32
+
+
+pattern KEY_braille_dots_2478 = 16787658 :: Int32
+
+
+pattern KEY_braille_dots_247 = 16787530 :: Int32
+
+
+pattern KEY_braille_dots_2468 = 16787626 :: Int32
+
+
+pattern KEY_braille_dots_24678 = 16787690 :: Int32
+
+
+pattern KEY_braille_dots_2467 = 16787562 :: Int32
+
+
+pattern KEY_braille_dots_246 = 16787498 :: Int32
+
+
+pattern KEY_braille_dots_2458 = 16787610 :: Int32
+
+
+pattern KEY_braille_dots_24578 = 16787674 :: Int32
+
+
+pattern KEY_braille_dots_2457 = 16787546 :: Int32
+
+
+pattern KEY_braille_dots_24568 = 16787642 :: Int32
+
+
+pattern KEY_braille_dots_245678 = 16787706 :: Int32
+
+
+pattern KEY_braille_dots_24567 = 16787578 :: Int32
+
+
+pattern KEY_braille_dots_2456 = 16787514 :: Int32
+
+
+pattern KEY_braille_dots_245 = 16787482 :: Int32
+
+
+pattern KEY_braille_dots_24 = 16787466 :: Int32
+
+
+pattern KEY_braille_dots_238 = 16787590 :: Int32
+
+
+pattern KEY_braille_dots_2378 = 16787654 :: Int32
+
+
+pattern KEY_braille_dots_237 = 16787526 :: Int32
+
+
+pattern KEY_braille_dots_2368 = 16787622 :: Int32
+
+
+pattern KEY_braille_dots_23678 = 16787686 :: Int32
+
+
+pattern KEY_braille_dots_2367 = 16787558 :: Int32
+
+
+pattern KEY_braille_dots_236 = 16787494 :: Int32
+
+
+pattern KEY_braille_dots_2358 = 16787606 :: Int32
+
+
+pattern KEY_braille_dots_23578 = 16787670 :: Int32
+
+
+pattern KEY_braille_dots_2357 = 16787542 :: Int32
+
+
+pattern KEY_braille_dots_23568 = 16787638 :: Int32
+
+
+pattern KEY_braille_dots_235678 = 16787702 :: Int32
+
+
+pattern KEY_braille_dots_23567 = 16787574 :: Int32
+
+
+pattern KEY_braille_dots_2356 = 16787510 :: Int32
+
+
+pattern KEY_braille_dots_235 = 16787478 :: Int32
+
+
+pattern KEY_braille_dots_2348 = 16787598 :: Int32
+
+
+pattern KEY_braille_dots_23478 = 16787662 :: Int32
+
+
+pattern KEY_braille_dots_2347 = 16787534 :: Int32
+
+
+pattern KEY_braille_dots_23468 = 16787630 :: Int32
+
+
+pattern KEY_braille_dots_234678 = 16787694 :: Int32
+
+
+pattern KEY_braille_dots_23467 = 16787566 :: Int32
+
+
+pattern KEY_braille_dots_2346 = 16787502 :: Int32
+
+
+pattern KEY_braille_dots_23458 = 16787614 :: Int32
+
+
+pattern KEY_braille_dots_234578 = 16787678 :: Int32
+
+
+pattern KEY_braille_dots_23457 = 16787550 :: Int32
+
+
+pattern KEY_braille_dots_234568 = 16787646 :: Int32
+
+
+pattern KEY_braille_dots_2345678 = 16787710 :: Int32
+
+
+pattern KEY_braille_dots_234567 = 16787582 :: Int32
+
+
+pattern KEY_braille_dots_23456 = 16787518 :: Int32
+
+
+pattern KEY_braille_dots_2345 = 16787486 :: Int32
+
+
+pattern KEY_braille_dots_234 = 16787470 :: Int32
+
+
+pattern KEY_braille_dots_23 = 16787462 :: Int32
+
+
+pattern KEY_braille_dots_2 = 16787458 :: Int32
+
+
+pattern KEY_braille_dots_18 = 16787585 :: Int32
+
+
+pattern KEY_braille_dots_178 = 16787649 :: Int32
+
+
+pattern KEY_braille_dots_17 = 16787521 :: Int32
+
+
+pattern KEY_braille_dots_168 = 16787617 :: Int32
+
+
+pattern KEY_braille_dots_1678 = 16787681 :: Int32
+
+
+pattern KEY_braille_dots_167 = 16787553 :: Int32
+
+
+pattern KEY_braille_dots_16 = 16787489 :: Int32
+
+
+pattern KEY_braille_dots_158 = 16787601 :: Int32
+
+
+pattern KEY_braille_dots_1578 = 16787665 :: Int32
+
+
+pattern KEY_braille_dots_157 = 16787537 :: Int32
+
+
+pattern KEY_braille_dots_1568 = 16787633 :: Int32
+
+
+pattern KEY_braille_dots_15678 = 16787697 :: Int32
+
+
+pattern KEY_braille_dots_1567 = 16787569 :: Int32
+
+
+pattern KEY_braille_dots_156 = 16787505 :: Int32
+
+
+pattern KEY_braille_dots_15 = 16787473 :: Int32
+
+
+pattern KEY_braille_dots_148 = 16787593 :: Int32
+
+
+pattern KEY_braille_dots_1478 = 16787657 :: Int32
+
+
+pattern KEY_braille_dots_147 = 16787529 :: Int32
+
+
+pattern KEY_braille_dots_1468 = 16787625 :: Int32
+
+
+pattern KEY_braille_dots_14678 = 16787689 :: Int32
+
+
+pattern KEY_braille_dots_1467 = 16787561 :: Int32
+
+
+pattern KEY_braille_dots_146 = 16787497 :: Int32
+
+
+pattern KEY_braille_dots_1458 = 16787609 :: Int32
+
+
+pattern KEY_braille_dots_14578 = 16787673 :: Int32
+
+
+pattern KEY_braille_dots_1457 = 16787545 :: Int32
+
+
+pattern KEY_braille_dots_14568 = 16787641 :: Int32
+
+
+pattern KEY_braille_dots_145678 = 16787705 :: Int32
+
+
+pattern KEY_braille_dots_14567 = 16787577 :: Int32
+
+
+pattern KEY_braille_dots_1456 = 16787513 :: Int32
+
+
+pattern KEY_braille_dots_145 = 16787481 :: Int32
+
+
+pattern KEY_braille_dots_14 = 16787465 :: Int32
+
+
+pattern KEY_braille_dots_138 = 16787589 :: Int32
+
+
+pattern KEY_braille_dots_1378 = 16787653 :: Int32
+
+
+pattern KEY_braille_dots_137 = 16787525 :: Int32
+
+
+pattern KEY_braille_dots_1368 = 16787621 :: Int32
+
+
+pattern KEY_braille_dots_13678 = 16787685 :: Int32
+
+
+pattern KEY_braille_dots_1367 = 16787557 :: Int32
+
+
+pattern KEY_braille_dots_136 = 16787493 :: Int32
+
+
+pattern KEY_braille_dots_1358 = 16787605 :: Int32
+
+
+pattern KEY_braille_dots_13578 = 16787669 :: Int32
+
+
+pattern KEY_braille_dots_1357 = 16787541 :: Int32
+
+
+pattern KEY_braille_dots_13568 = 16787637 :: Int32
+
+
+pattern KEY_braille_dots_135678 = 16787701 :: Int32
+
+
+pattern KEY_braille_dots_13567 = 16787573 :: Int32
+
+
+pattern KEY_braille_dots_1356 = 16787509 :: Int32
+
+
+pattern KEY_braille_dots_135 = 16787477 :: Int32
+
+
+pattern KEY_braille_dots_1348 = 16787597 :: Int32
+
+
+pattern KEY_braille_dots_13478 = 16787661 :: Int32
+
+
+pattern KEY_braille_dots_1347 = 16787533 :: Int32
+
+
+pattern KEY_braille_dots_13468 = 16787629 :: Int32
+
+
+pattern KEY_braille_dots_134678 = 16787693 :: Int32
+
+
+pattern KEY_braille_dots_13467 = 16787565 :: Int32
+
+
+pattern KEY_braille_dots_1346 = 16787501 :: Int32
+
+
+pattern KEY_braille_dots_13458 = 16787613 :: Int32
+
+
+pattern KEY_braille_dots_134578 = 16787677 :: Int32
+
+
+pattern KEY_braille_dots_13457 = 16787549 :: Int32
+
+
+pattern KEY_braille_dots_134568 = 16787645 :: Int32
+
+
+pattern KEY_braille_dots_1345678 = 16787709 :: Int32
+
+
+pattern KEY_braille_dots_134567 = 16787581 :: Int32
+
+
+pattern KEY_braille_dots_13456 = 16787517 :: Int32
+
+
+pattern KEY_braille_dots_1345 = 16787485 :: Int32
+
+
+pattern KEY_braille_dots_134 = 16787469 :: Int32
+
+
+pattern KEY_braille_dots_13 = 16787461 :: Int32
+
+
+pattern KEY_braille_dots_128 = 16787587 :: Int32
+
+
+pattern KEY_braille_dots_1278 = 16787651 :: Int32
+
+
+pattern KEY_braille_dots_127 = 16787523 :: Int32
+
+
+pattern KEY_braille_dots_1268 = 16787619 :: Int32
+
+
+pattern KEY_braille_dots_12678 = 16787683 :: Int32
+
+
+pattern KEY_braille_dots_1267 = 16787555 :: Int32
+
+
+pattern KEY_braille_dots_126 = 16787491 :: Int32
+
+
+pattern KEY_braille_dots_1258 = 16787603 :: Int32
+
+
+pattern KEY_braille_dots_12578 = 16787667 :: Int32
+
+
+pattern KEY_braille_dots_1257 = 16787539 :: Int32
+
+
+pattern KEY_braille_dots_12568 = 16787635 :: Int32
+
+
+pattern KEY_braille_dots_125678 = 16787699 :: Int32
+
+
+pattern KEY_braille_dots_12567 = 16787571 :: Int32
+
+
+pattern KEY_braille_dots_1256 = 16787507 :: Int32
+
+
+pattern KEY_braille_dots_125 = 16787475 :: Int32
+
+
+pattern KEY_braille_dots_1248 = 16787595 :: Int32
+
+
+pattern KEY_braille_dots_12478 = 16787659 :: Int32
+
+
+pattern KEY_braille_dots_1247 = 16787531 :: Int32
+
+
+pattern KEY_braille_dots_12468 = 16787627 :: Int32
+
+
+pattern KEY_braille_dots_124678 = 16787691 :: Int32
+
+
+pattern KEY_braille_dots_12467 = 16787563 :: Int32
+
+
+pattern KEY_braille_dots_1246 = 16787499 :: Int32
+
+
+pattern KEY_braille_dots_12458 = 16787611 :: Int32
+
+
+pattern KEY_braille_dots_124578 = 16787675 :: Int32
+
+
+pattern KEY_braille_dots_12457 = 16787547 :: Int32
+
+
+pattern KEY_braille_dots_124568 = 16787643 :: Int32
+
+
+pattern KEY_braille_dots_1245678 = 16787707 :: Int32
+
+
+pattern KEY_braille_dots_124567 = 16787579 :: Int32
+
+
+pattern KEY_braille_dots_12456 = 16787515 :: Int32
+
+
+pattern KEY_braille_dots_1245 = 16787483 :: Int32
+
+
+pattern KEY_braille_dots_124 = 16787467 :: Int32
+
+
+pattern KEY_braille_dots_1238 = 16787591 :: Int32
+
+
+pattern KEY_braille_dots_12378 = 16787655 :: Int32
+
+
+pattern KEY_braille_dots_1237 = 16787527 :: Int32
+
+
+pattern KEY_braille_dots_12368 = 16787623 :: Int32
+
+
+pattern KEY_braille_dots_123678 = 16787687 :: Int32
+
+
+pattern KEY_braille_dots_12367 = 16787559 :: Int32
+
+
+pattern KEY_braille_dots_1236 = 16787495 :: Int32
+
+
+pattern KEY_braille_dots_12358 = 16787607 :: Int32
+
+
+pattern KEY_braille_dots_123578 = 16787671 :: Int32
+
+
+pattern KEY_braille_dots_12357 = 16787543 :: Int32
+
+
+pattern KEY_braille_dots_123568 = 16787639 :: Int32
+
+
+pattern KEY_braille_dots_1235678 = 16787703 :: Int32
+
+
+pattern KEY_braille_dots_123567 = 16787575 :: Int32
+
+
+pattern KEY_braille_dots_12356 = 16787511 :: Int32
+
+
+pattern KEY_braille_dots_1235 = 16787479 :: Int32
+
+
+pattern KEY_braille_dots_12348 = 16787599 :: Int32
+
+
+pattern KEY_braille_dots_123478 = 16787663 :: Int32
+
+
+pattern KEY_braille_dots_12347 = 16787535 :: Int32
+
+
+pattern KEY_braille_dots_123468 = 16787631 :: Int32
+
+
+pattern KEY_braille_dots_1234678 = 16787695 :: Int32
+
+
+pattern KEY_braille_dots_123467 = 16787567 :: Int32
+
+
+pattern KEY_braille_dots_12346 = 16787503 :: Int32
+
+
+pattern KEY_braille_dots_123458 = 16787615 :: Int32
+
+
+pattern KEY_braille_dots_1234578 = 16787679 :: Int32
+
+
+pattern KEY_braille_dots_123457 = 16787551 :: Int32
+
+
+pattern KEY_braille_dots_1234568 = 16787647 :: Int32
+
+
+pattern KEY_braille_dots_12345678 = 16787711 :: Int32
+
+
+pattern KEY_braille_dots_1234567 = 16787583 :: Int32
+
+
+pattern KEY_braille_dots_123456 = 16787519 :: Int32
+
+
+pattern KEY_braille_dots_12345 = 16787487 :: Int32
+
+
+pattern KEY_braille_dots_1234 = 16787471 :: Int32
+
+
+pattern KEY_braille_dots_123 = 16787463 :: Int32
+
+
+pattern KEY_braille_dots_12 = 16787459 :: Int32
+
+
+pattern KEY_braille_dots_1 = 16787457 :: Int32
+
+
+pattern KEY_braille_dot_9 = 65529 :: Int32
+
+
+pattern KEY_braille_dot_8 = 65528 :: Int32
+
+
+pattern KEY_braille_dot_7 = 65527 :: Int32
+
+
+pattern KEY_braille_dot_6 = 65526 :: Int32
+
+
+pattern KEY_braille_dot_5 = 65525 :: Int32
+
+
+pattern KEY_braille_dot_4 = 65524 :: Int32
+
+
+pattern KEY_braille_dot_3 = 65523 :: Int32
+
+
+pattern KEY_braille_dot_2 = 65522 :: Int32
+
+
+pattern KEY_braille_dot_10 = 65530 :: Int32
+
+
+pattern KEY_braille_dot_1 = 65521 :: Int32
+
+
+pattern KEY_braille_blank = 16787456 :: Int32
+
+
+pattern KEY_bracketright = 93 :: Int32
+
+
+pattern KEY_bracketleft = 91 :: Int32
+
+
+pattern KEY_braceright = 125 :: Int32
+
+
+pattern KEY_braceleft = 123 :: Int32
+
+
+pattern KEY_botvertsummationconnector = 2228 :: Int32
+
+
+pattern KEY_bott = 2550 :: Int32
+
+
+pattern KEY_botrightsummation = 2230 :: Int32
+
+
+pattern KEY_botrightsqbracket = 2218 :: Int32
+
+
+pattern KEY_botrightparens = 2222 :: Int32
+
+
+pattern KEY_botleftsummation = 2226 :: Int32
+
+
+pattern KEY_botleftsqbracket = 2216 :: Int32
+
+
+pattern KEY_botleftparens = 2220 :: Int32
+
+
+pattern KEY_botintegral = 2213 :: Int32
+
+
+pattern KEY_blank = 2527 :: Int32
+
+
+pattern KEY_because = 16785973 :: Int32
+
+
+pattern KEY_bar = 124 :: Int32
+
+
+pattern KEY_ballotcross = 2804 :: Int32
+
+
+pattern KEY_backslash = 92 :: Int32
+
+
+pattern KEY_babovedot = 16784899 :: Int32
+
+
+pattern KEY_b = 98 :: Int32
+
+
+pattern KEY_atilde = 227 :: Int32
+
+
+pattern KEY_at = 64 :: Int32
+
+
+pattern KEY_asterisk = 42 :: Int32
+
+
+pattern KEY_asciitilde = 126 :: Int32
+
+
+pattern KEY_asciicircum = 94 :: Int32
+
+
+pattern KEY_aring = 229 :: Int32
+
+
+pattern KEY_approximate = 2248 :: Int32
+
+
+pattern KEY_approxeq = 16785992 :: Int32
+
+
+pattern KEY_apostrophe = 39 :: Int32
+
+
+pattern KEY_aogonek = 433 :: Int32
+
+
+pattern KEY_ampersand = 38 :: Int32
+
+
+pattern KEY_amacron = 992 :: Int32
+
+
+pattern KEY_ahook = 16785059 :: Int32
+
+
+pattern KEY_agrave = 224 :: Int32
+
+
+pattern KEY_ae = 230 :: Int32
+
+
+pattern KEY_adiaeresis = 228 :: Int32
+
+
+pattern KEY_acute = 180 :: Int32
+
+
+pattern KEY_acircumflextilde = 16785067 :: Int32
+
+
+pattern KEY_acircumflexhook = 16785065 :: Int32
+
+
+pattern KEY_acircumflexgrave = 16785063 :: Int32
+
+
+pattern KEY_acircumflexbelowdot = 16785069 :: Int32
+
+
+pattern KEY_acircumflexacute = 16785061 :: Int32
+
+
+pattern KEY_acircumflex = 226 :: Int32
+
+
+pattern KEY_abrevetilde = 16785077 :: Int32
+
+
+pattern KEY_abrevehook = 16785075 :: Int32
+
+
+pattern KEY_abrevegrave = 16785073 :: Int32
+
+
+pattern KEY_abrevebelowdot = 16785079 :: Int32
+
+
+pattern KEY_abreveacute = 16785071 :: Int32
+
+
+pattern KEY_abreve = 483 :: Int32
+
+
+pattern KEY_abovedot = 511 :: Int32
+
+
+pattern KEY_abelowdot = 16785057 :: Int32
+
+
+pattern KEY_aacute = 225 :: Int32
+
+
+pattern KEY_a = 97 :: Int32
+
+
+pattern KEY_Zstroke = 16777653 :: Int32
+
+
+pattern KEY_ZoomOut = 269025164 :: Int32
+
+
+pattern KEY_ZoomIn = 269025163 :: Int32
+
+
+pattern KEY_Zenkaku_Hankaku = 65322 :: Int32
+
+
+pattern KEY_Zenkaku = 65320 :: Int32
+
+
+pattern KEY_Zen_Koho = 65341 :: Int32
+
+
+pattern KEY_Zcaron = 430 :: Int32
+
+
+pattern KEY_Zacute = 428 :: Int32
+
+
+pattern KEY_Zabovedot = 431 :: Int32
+
+
+pattern KEY_Z = 90 :: Int32
+
+
+pattern KEY_Ytilde = 16785144 :: Int32
+
+
+pattern KEY_Yhook = 16785142 :: Int32
+
+
+pattern KEY_Ygrave = 16785138 :: Int32
+
+
+pattern KEY_Yellow = 269025189 :: Int32
+
+
+pattern KEY_Ydiaeresis = 5054 :: Int32
+
+
+pattern KEY_Ycircumflex = 16777590 :: Int32
+
+
+pattern KEY_Ybelowdot = 16785140 :: Int32
+
+
+pattern KEY_Yacute = 221 :: Int32
+
+
+pattern KEY_Y = 89 :: Int32
+
+
+pattern KEY_Xfer = 269025162 :: Int32
+
+
+pattern KEY_Xabovedot = 16785034 :: Int32
+
+
+pattern KEY_X = 88 :: Int32
+
+
+pattern KEY_Word = 269025161 :: Int32
+
+
+pattern KEY_WonSign = 16785577 :: Int32
+
+
+pattern KEY_WindowClear = 269025109 :: Int32
+
+
+pattern KEY_WheelButton = 269025160 :: Int32
+
+
+pattern KEY_Wgrave = 16785024 :: Int32
+
+
+pattern KEY_WebCam = 269025167 :: Int32
+
+
+pattern KEY_Wdiaeresis = 16785028 :: Int32
+
+
+pattern KEY_Wcircumflex = 16777588 :: Int32
+
+
+pattern KEY_WakeUp = 269025067 :: Int32
+
+
+pattern KEY_Wacute = 16785026 :: Int32
+
+
+pattern KEY_WWW = 269025070 :: Int32
+
+
+pattern KEY_WLAN = 269025173 :: Int32
+
+
+pattern KEY_W = 87 :: Int32
+
+
+pattern KEY_VoidSymbol = 16777215 :: Int32
+
+
+pattern KEY_View = 269025185 :: Int32
+
+
+pattern KEY_Video = 269025159 :: Int32
+
+
+pattern KEY_VendorHome = 269025076 :: Int32
+
+
+pattern KEY_V = 86 :: Int32
+
+
+pattern KEY_Utilde = 989 :: Int32
+
+
+pattern KEY_UserPB = 269025156 :: Int32
+
+
+pattern KEY_User2KB = 269025158 :: Int32
+
+
+pattern KEY_User1KB = 269025157 :: Int32
+
+
+pattern KEY_Uring = 473 :: Int32
+
+
+pattern KEY_Up = 65362 :: Int32
+
+
+pattern KEY_Uogonek = 985 :: Int32
+
+
+pattern KEY_Ungrab = 269024800 :: Int32
+
+
+pattern KEY_Undo = 65381 :: Int32
+
+
+pattern KEY_Umacron = 990 :: Int32
+
+
+pattern KEY_Ukranian_yi = 1703 :: Int32
+
+
+pattern KEY_Ukranian_je = 1700 :: Int32
+
+
+pattern KEY_Ukranian_i = 1702 :: Int32
+
+
+pattern KEY_Ukranian_YI = 1719 :: Int32
+
+
+pattern KEY_Ukranian_JE = 1716 :: Int32
+
+
+pattern KEY_Ukranian_I = 1718 :: Int32
+
+
+pattern KEY_Ukrainian_yi = 1703 :: Int32
+
+
+pattern KEY_Ukrainian_ie = 1700 :: Int32
+
+
+pattern KEY_Ukrainian_i = 1702 :: Int32
+
+
+pattern KEY_Ukrainian_ghe_with_upturn = 1709 :: Int32
+
+
+pattern KEY_Ukrainian_YI = 1719 :: Int32
+
+
+pattern KEY_Ukrainian_IE = 1716 :: Int32
+
+
+pattern KEY_Ukrainian_I = 1718 :: Int32
+
+
+pattern KEY_Ukrainian_GHE_WITH_UPTURN = 1725 :: Int32
+
+
+pattern KEY_Uhorntilde = 16785134 :: Int32
+
+
+pattern KEY_Uhornhook = 16785132 :: Int32
+
+
+pattern KEY_Uhorngrave = 16785130 :: Int32
+
+
+pattern KEY_Uhornbelowdot = 16785136 :: Int32
+
+
+pattern KEY_Uhornacute = 16785128 :: Int32
+
+
+pattern KEY_Uhorn = 16777647 :: Int32
+
+
+pattern KEY_Uhook = 16785126 :: Int32
+
+
+pattern KEY_Ugrave = 217 :: Int32
+
+
+pattern KEY_Udoubleacute = 475 :: Int32
+
+
+pattern KEY_Udiaeresis = 220 :: Int32
+
+
+pattern KEY_Ucircumflex = 219 :: Int32
+
+
+pattern KEY_Ubreve = 733 :: Int32
+
+
+pattern KEY_Ubelowdot = 16785124 :: Int32
+
+
+pattern KEY_Uacute = 218 :: Int32
+
+
+pattern KEY_UWB = 269025174 :: Int32
+
+
+pattern KEY_U = 85 :: Int32
+
+
+pattern KEY_Tslash = 940 :: Int32
+
+
+pattern KEY_Travel = 269025154 :: Int32
+
+
+pattern KEY_Touroku = 65323 :: Int32
+
+
+pattern KEY_TouchpadToggle = 269025193 :: Int32
+
+
+pattern KEY_TouchpadOn = 269025200 :: Int32
+
+
+pattern KEY_TouchpadOff = 269025201 :: Int32
+
+
+pattern KEY_TopMenu = 269025186 :: Int32
+
+
+pattern KEY_Tools = 269025153 :: Int32
+
+
+pattern KEY_ToDoList = 269025055 :: Int32
+
+
+pattern KEY_Time = 269025183 :: Int32
+
+
+pattern KEY_Thorn = 222 :: Int32
+
+
+pattern KEY_Thai_yoying = 3501 :: Int32
+
+
+pattern KEY_Thai_yoyak = 3522 :: Int32
+
+
+pattern KEY_Thai_wowaen = 3527 :: Int32
+
+
+pattern KEY_Thai_totao = 3509 :: Int32
+
+
+pattern KEY_Thai_topatak = 3503 :: Int32
+
+
+pattern KEY_Thai_thothung = 3510 :: Int32
+
+
+pattern KEY_Thai_thothong = 3512 :: Int32
+
+
+pattern KEY_Thai_thothan = 3504 :: Int32
+
+
+pattern KEY_Thai_thothahan = 3511 :: Int32
+
+
+pattern KEY_Thai_thophuthao = 3506 :: Int32
+
+
+pattern KEY_Thai_thonangmontho = 3505 :: Int32
+
+
+pattern KEY_Thai_thanthakhat = 3564 :: Int32
+
+
+pattern KEY_Thai_sosua = 3530 :: Int32
+
+
+pattern KEY_Thai_soso = 3499 :: Int32
+
+
+pattern KEY_Thai_sosala = 3528 :: Int32
+
+
+pattern KEY_Thai_sorusi = 3529 :: Int32
+
+
+pattern KEY_Thai_sarauu = 3545 :: Int32
+
+
+pattern KEY_Thai_sarauee = 3543 :: Int32
+
+
+pattern KEY_Thai_saraue = 3542 :: Int32
+
+
+pattern KEY_Thai_sarau = 3544 :: Int32
+
+
+pattern KEY_Thai_sarao = 3554 :: Int32
+
+
+pattern KEY_Thai_saraii = 3541 :: Int32
+
+
+pattern KEY_Thai_sarai = 3540 :: Int32
+
+
+pattern KEY_Thai_sarae = 3552 :: Int32
+
+
+pattern KEY_Thai_saraam = 3539 :: Int32
+
+
+pattern KEY_Thai_saraaimaimuan = 3555 :: Int32
+
+
+pattern KEY_Thai_saraaimaimalai = 3556 :: Int32
+
+
+pattern KEY_Thai_saraae = 3553 :: Int32
+
+
+pattern KEY_Thai_saraaa = 3538 :: Int32
+
+
+pattern KEY_Thai_saraa = 3536 :: Int32
+
+
+pattern KEY_Thai_ru = 3524 :: Int32
+
+
+pattern KEY_Thai_rorua = 3523 :: Int32
+
+
+pattern KEY_Thai_popla = 3515 :: Int32
+
+
+pattern KEY_Thai_phosamphao = 3520 :: Int32
+
+
+pattern KEY_Thai_phophung = 3516 :: Int32
+
+
+pattern KEY_Thai_phophan = 3518 :: Int32
+
+
+pattern KEY_Thai_phinthu = 3546 :: Int32
+
+
+pattern KEY_Thai_paiyannoi = 3535 :: Int32
+
+
+pattern KEY_Thai_oang = 3533 :: Int32
+
+
+pattern KEY_Thai_nonu = 3513 :: Int32
+
+
+pattern KEY_Thai_nonen = 3507 :: Int32
+
+
+pattern KEY_Thai_nikhahit = 3565 :: Int32
+
+
+pattern KEY_Thai_ngongu = 3495 :: Int32
+
+
+pattern KEY_Thai_moma = 3521 :: Int32
+
+
+pattern KEY_Thai_maiyamok = 3558 :: Int32
+
+
+pattern KEY_Thai_maitri = 3562 :: Int32
+
+
+pattern KEY_Thai_maitho = 3561 :: Int32
+
+
+pattern KEY_Thai_maitaikhu = 3559 :: Int32
+
+
+pattern KEY_Thai_maihanakat_maitho = 3550 :: Int32
+
+
+pattern KEY_Thai_maihanakat = 3537 :: Int32
+
+
+pattern KEY_Thai_maiek = 3560 :: Int32
+
+
+pattern KEY_Thai_maichattawa = 3563 :: Int32
+
+
+pattern KEY_Thai_lu = 3526 :: Int32
+
+
+pattern KEY_Thai_loling = 3525 :: Int32
+
+
+pattern KEY_Thai_lochula = 3532 :: Int32
+
+
+pattern KEY_Thai_leksun = 3568 :: Int32
+
+
+pattern KEY_Thai_leksong = 3570 :: Int32
+
+
+pattern KEY_Thai_leksi = 3572 :: Int32
+
+
+pattern KEY_Thai_leksam = 3571 :: Int32
+
+
+pattern KEY_Thai_lekpaet = 3576 :: Int32
+
+
+pattern KEY_Thai_leknung = 3569 :: Int32
+
+
+pattern KEY_Thai_lekkao = 3577 :: Int32
+
+
+pattern KEY_Thai_lekhok = 3574 :: Int32
+
+
+pattern KEY_Thai_lekha = 3573 :: Int32
+
+
+pattern KEY_Thai_lekchet = 3575 :: Int32
+
+
+pattern KEY_Thai_lakkhangyao = 3557 :: Int32
+
+
+pattern KEY_Thai_kokai = 3489 :: Int32
+
+
+pattern KEY_Thai_khorakhang = 3494 :: Int32
+
+
+pattern KEY_Thai_khokhwai = 3492 :: Int32
+
+
+pattern KEY_Thai_khokhuat = 3491 :: Int32
+
+
+pattern KEY_Thai_khokhon = 3493 :: Int32
+
+
+pattern KEY_Thai_khokhai = 3490 :: Int32
+
+
+pattern KEY_Thai_honokhuk = 3534 :: Int32
+
+
+pattern KEY_Thai_hohip = 3531 :: Int32
+
+
+pattern KEY_Thai_fofan = 3519 :: Int32
+
+
+pattern KEY_Thai_fofa = 3517 :: Int32
+
+
+pattern KEY_Thai_dodek = 3508 :: Int32
+
+
+pattern KEY_Thai_dochada = 3502 :: Int32
+
+
+pattern KEY_Thai_chochoe = 3500 :: Int32
+
+
+pattern KEY_Thai_choching = 3497 :: Int32
+
+
+pattern KEY_Thai_chochang = 3498 :: Int32
+
+
+pattern KEY_Thai_chochan = 3496 :: Int32
+
+
+pattern KEY_Thai_bobaimai = 3514 :: Int32
+
+
+pattern KEY_Thai_baht = 3551 :: Int32
+
+
+pattern KEY_Terminate_Server = 65237 :: Int32
+
+
+pattern KEY_Terminal = 269025152 :: Int32
+
+
+pattern KEY_Tcedilla = 478 :: Int32
+
+
+pattern KEY_Tcaron = 427 :: Int32
+
+
+pattern KEY_TaskPane = 269025151 :: Int32
+
+
+pattern KEY_Tabovedot = 16785002 :: Int32
+
+
+pattern KEY_Tab = 65289 :: Int32
+
+
+pattern KEY_THORN = 222 :: Int32
+
+
+pattern KEY_T = 84 :: Int32
+
+
+pattern KEY_Sys_Req = 65301 :: Int32
+
+
+pattern KEY_Switch_VT_9 = 269024777 :: Int32
+
+
+pattern KEY_Switch_VT_8 = 269024776 :: Int32
+
+
+pattern KEY_Switch_VT_7 = 269024775 :: Int32
+
+
+pattern KEY_Switch_VT_6 = 269024774 :: Int32
+
+
+pattern KEY_Switch_VT_5 = 269024773 :: Int32
+
+
+pattern KEY_Switch_VT_4 = 269024772 :: Int32
+
+
+pattern KEY_Switch_VT_3 = 269024771 :: Int32
+
+
+pattern KEY_Switch_VT_2 = 269024770 :: Int32
+
+
+pattern KEY_Switch_VT_12 = 269024780 :: Int32
+
+
+pattern KEY_Switch_VT_11 = 269024779 :: Int32
+
+
+pattern KEY_Switch_VT_10 = 269024778 :: Int32
+
+
+pattern KEY_Switch_VT_1 = 269024769 :: Int32
+
+
+pattern KEY_Suspend = 269025191 :: Int32
+
+
+pattern KEY_Support = 269025150 :: Int32
+
+
+pattern KEY_Super_R = 65516 :: Int32
+
+
+pattern KEY_Super_L = 65515 :: Int32
+
+
+pattern KEY_Subtitle = 269025178 :: Int32
+
+
+pattern KEY_Stop = 269025064 :: Int32
+
+
+pattern KEY_StickyKeys_Enable = 65141 :: Int32
+
+
+pattern KEY_Start = 269025050 :: Int32
+
+
+pattern KEY_Standby = 269025040 :: Int32
+
+
+pattern KEY_SplitScreen = 269025149 :: Int32
+
+
+pattern KEY_Spell = 269025148 :: Int32
+
+
+pattern KEY_SlowKeys_Enable = 65139 :: Int32
+
+
+pattern KEY_Sleep = 269025071 :: Int32
+
+
+pattern KEY_Sinh_ya = 16780730 :: Int32
+
+
+pattern KEY_Sinh_va = 16780736 :: Int32
+
+
+pattern KEY_Sinh_uu2 = 16780758 :: Int32
+
+
+pattern KEY_Sinh_uu = 16780684 :: Int32
+
+
+pattern KEY_Sinh_u2 = 16780756 :: Int32
+
+
+pattern KEY_Sinh_u = 16780683 :: Int32
+
+
+pattern KEY_Sinh_ttha = 16780712 :: Int32
+
+
+pattern KEY_Sinh_tta = 16780711 :: Int32
+
+
+pattern KEY_Sinh_thha = 16780718 :: Int32
+
+
+pattern KEY_Sinh_tha = 16780717 :: Int32
+
+
+pattern KEY_Sinh_ssha = 16780738 :: Int32
+
+
+pattern KEY_Sinh_sha = 16780737 :: Int32
+
+
+pattern KEY_Sinh_sa = 16780739 :: Int32
+
+
+pattern KEY_Sinh_ruu2 = 16780786 :: Int32
+
+
+pattern KEY_Sinh_ru2 = 16780760 :: Int32
+
+
+pattern KEY_Sinh_rii = 16780686 :: Int32
+
+
+pattern KEY_Sinh_ri = 16780685 :: Int32
+
+
+pattern KEY_Sinh_ra = 16780731 :: Int32
+
+
+pattern KEY_Sinh_pha = 16780725 :: Int32
+
+
+pattern KEY_Sinh_pa = 16780724 :: Int32
+
+
+pattern KEY_Sinh_oo2 = 16780765 :: Int32
+
+
+pattern KEY_Sinh_oo = 16780693 :: Int32
+
+
+pattern KEY_Sinh_o2 = 16780764 :: Int32
+
+
+pattern KEY_Sinh_o = 16780692 :: Int32
+
+
+pattern KEY_Sinh_nya = 16780708 :: Int32
+
+
+pattern KEY_Sinh_nna = 16780715 :: Int32
+
+
+pattern KEY_Sinh_nja = 16780710 :: Int32
+
+
+pattern KEY_Sinh_nga = 16780703 :: Int32
+
+
+pattern KEY_Sinh_ng2 = 16780702 :: Int32
+
+
+pattern KEY_Sinh_ng = 16780674 :: Int32
+
+
+pattern KEY_Sinh_ndha = 16780723 :: Int32
+
+
+pattern KEY_Sinh_ndda = 16780716 :: Int32
+
+
+pattern KEY_Sinh_na = 16780721 :: Int32
+
+
+pattern KEY_Sinh_mba = 16780729 :: Int32
+
+
+pattern KEY_Sinh_ma = 16780728 :: Int32
+
+
+pattern KEY_Sinh_luu2 = 16780787 :: Int32
+
+
+pattern KEY_Sinh_luu = 16780688 :: Int32
+
+
+pattern KEY_Sinh_lu2 = 16780767 :: Int32
+
+
+pattern KEY_Sinh_lu = 16780687 :: Int32
+
+
+pattern KEY_Sinh_lla = 16780741 :: Int32
+
+
+pattern KEY_Sinh_la = 16780733 :: Int32
+
+
+pattern KEY_Sinh_kunddaliya = 16780788 :: Int32
+
+
+pattern KEY_Sinh_kha = 16780699 :: Int32
+
+
+pattern KEY_Sinh_ka = 16780698 :: Int32
+
+
+pattern KEY_Sinh_jnya = 16780709 :: Int32
+
+
+pattern KEY_Sinh_jha = 16780707 :: Int32
+
+
+pattern KEY_Sinh_ja = 16780706 :: Int32
+
+
+pattern KEY_Sinh_ii2 = 16780755 :: Int32
+
+
+pattern KEY_Sinh_ii = 16780682 :: Int32
+
+
+pattern KEY_Sinh_i2 = 16780754 :: Int32
+
+
+pattern KEY_Sinh_i = 16780681 :: Int32
+
+
+pattern KEY_Sinh_ha = 16780740 :: Int32
+
+
+pattern KEY_Sinh_h2 = 16780675 :: Int32
+
+
+pattern KEY_Sinh_gha = 16780701 :: Int32
+
+
+pattern KEY_Sinh_ga = 16780700 :: Int32
+
+
+pattern KEY_Sinh_fa = 16780742 :: Int32
+
+
+pattern KEY_Sinh_ee2 = 16780762 :: Int32
+
+
+pattern KEY_Sinh_ee = 16780690 :: Int32
+
+
+pattern KEY_Sinh_e2 = 16780761 :: Int32
+
+
+pattern KEY_Sinh_e = 16780689 :: Int32
+
+
+pattern KEY_Sinh_dhha = 16780720 :: Int32
+
+
+pattern KEY_Sinh_dha = 16780719 :: Int32
+
+
+pattern KEY_Sinh_ddha = 16780714 :: Int32
+
+
+pattern KEY_Sinh_dda = 16780713 :: Int32
+
+
+pattern KEY_Sinh_cha = 16780705 :: Int32
+
+
+pattern KEY_Sinh_ca = 16780704 :: Int32
+
+
+pattern KEY_Sinh_bha = 16780727 :: Int32
+
+
+pattern KEY_Sinh_ba = 16780726 :: Int32
+
+
+pattern KEY_Sinh_au2 = 16780766 :: Int32
+
+
+pattern KEY_Sinh_au = 16780694 :: Int32
+
+
+pattern KEY_Sinh_al = 16780746 :: Int32
+
+
+pattern KEY_Sinh_ai2 = 16780763 :: Int32
+
+
+pattern KEY_Sinh_ai = 16780691 :: Int32
+
+
+pattern KEY_Sinh_aee2 = 16780753 :: Int32
+
+
+pattern KEY_Sinh_aee = 16780680 :: Int32
+
+
+pattern KEY_Sinh_ae2 = 16780752 :: Int32
+
+
+pattern KEY_Sinh_ae = 16780679 :: Int32
+
+
+pattern KEY_Sinh_aa2 = 16780751 :: Int32
+
+
+pattern KEY_Sinh_aa = 16780678 :: Int32
+
+
+pattern KEY_Sinh_a = 16780677 :: Int32
+
+
+pattern KEY_SingleCandidate = 65340 :: Int32
+
+
+pattern KEY_Shop = 269025078 :: Int32
+
+
+pattern KEY_Shift_R = 65506 :: Int32
+
+
+pattern KEY_Shift_Lock = 65510 :: Int32
+
+
+pattern KEY_Shift_L = 65505 :: Int32
+
+
+pattern KEY_Serbian_tshe = 1707 :: Int32
+
+
+pattern KEY_Serbian_nje = 1706 :: Int32
+
+
+pattern KEY_Serbian_lje = 1705 :: Int32
+
+
+pattern KEY_Serbian_je = 1704 :: Int32
+
+
+pattern KEY_Serbian_dze = 1711 :: Int32
+
+
+pattern KEY_Serbian_dje = 1697 :: Int32
+
+
+pattern KEY_Serbian_TSHE = 1723 :: Int32
+
+
+pattern KEY_Serbian_NJE = 1722 :: Int32
+
+
+pattern KEY_Serbian_LJE = 1721 :: Int32
+
+
+pattern KEY_Serbian_JE = 1720 :: Int32
+
+
+pattern KEY_Serbian_DZE = 1727 :: Int32
+
+
+pattern KEY_Serbian_DJE = 1713 :: Int32
+
+
+pattern KEY_Send = 269025147 :: Int32
+
+
+pattern KEY_SelectButton = 269025184 :: Int32
+
+
+pattern KEY_Select = 65376 :: Int32
+
+
+pattern KEY_Search = 269025051 :: Int32
+
+
+pattern KEY_Scroll_Lock = 65300 :: Int32
+
+
+pattern KEY_ScrollUp = 269025144 :: Int32
+
+
+pattern KEY_ScrollDown = 269025145 :: Int32
+
+
+pattern KEY_ScrollClick = 269025146 :: Int32
+
+
+pattern KEY_ScreenSaver = 269025069 :: Int32
+
+
+pattern KEY_Scircumflex = 734 :: Int32
+
+
+pattern KEY_Scedilla = 426 :: Int32
+
+
+pattern KEY_Scaron = 425 :: Int32
+
+
+pattern KEY_Save = 269025143 :: Int32
+
+
+pattern KEY_Sacute = 422 :: Int32
+
+
+pattern KEY_Sabovedot = 16784992 :: Int32
+
+
+pattern KEY_SCHWA = 16777615 :: Int32
+
+
+pattern KEY_S = 83 :: Int32
+
+
+pattern KEY_RupeeSign = 16785576 :: Int32
+
+
+pattern KEY_RotationPB = 269025141 :: Int32
+
+
+pattern KEY_RotationKB = 269025142 :: Int32
+
+
+pattern KEY_RotateWindows = 269025140 :: Int32
+
+
+pattern KEY_Romaji = 65316 :: Int32
+
+
+pattern KEY_RockerUp = 269025059 :: Int32
+
+
+pattern KEY_RockerEnter = 269025061 :: Int32
+
+
+pattern KEY_RockerDown = 269025060 :: Int32
+
+
+pattern KEY_Right = 65363 :: Int32
+
+
+pattern KEY_Return = 65293 :: Int32
+
+
+pattern KEY_Reply = 269025138 :: Int32
+
+
+pattern KEY_RepeatKeys_Enable = 65138 :: Int32
+
+
+pattern KEY_Reload = 269025139 :: Int32
+
+
+pattern KEY_Refresh = 269025065 :: Int32
+
+
+pattern KEY_Redo = 65382 :: Int32
+
+
+pattern KEY_Red = 269025187 :: Int32
+
+
+pattern KEY_Rcedilla = 931 :: Int32
+
+
+pattern KEY_Rcaron = 472 :: Int32
+
+
+pattern KEY_Racute = 448 :: Int32
+
+
+pattern KEY_R9 = 65498 :: Int32
+
+
+pattern KEY_R8 = 65497 :: Int32
+
+
+pattern KEY_R7 = 65496 :: Int32
+
+
+pattern KEY_R6 = 65495 :: Int32
+
+
+pattern KEY_R5 = 65494 :: Int32
+
+
+pattern KEY_R4 = 65493 :: Int32
+
+
+pattern KEY_R3 = 65492 :: Int32
+
+
+pattern KEY_R2 = 65491 :: Int32
+
+
+pattern KEY_R15 = 65504 :: Int32
+
+
+pattern KEY_R14 = 65503 :: Int32
+
+
+pattern KEY_R13 = 65502 :: Int32
+
+
+pattern KEY_R12 = 65501 :: Int32
+
+
+pattern KEY_R11 = 65500 :: Int32
+
+
+pattern KEY_R10 = 65499 :: Int32
+
+
+pattern KEY_R1 = 65490 :: Int32
+
+
+pattern KEY_R = 82 :: Int32
+
+
+pattern KEY_Q = 81 :: Int32
+
+
+pattern KEY_Prior = 65365 :: Int32
+
+
+pattern KEY_Print = 65377 :: Int32
+
+
+pattern KEY_PreviousCandidate = 65342 :: Int32
+
+
+pattern KEY_Prev_Virtual_Screen = 65233 :: Int32
+
+
+pattern KEY_Prev_VMode = 269024803 :: Int32
+
+
+pattern KEY_PowerOff = 269025066 :: Int32
+
+
+pattern KEY_PowerDown = 269025057 :: Int32
+
+
+pattern KEY_Pointer_UpRight = 65253 :: Int32
+
+
+pattern KEY_Pointer_UpLeft = 65252 :: Int32
+
+
+pattern KEY_Pointer_Up = 65250 :: Int32
+
+
+pattern KEY_Pointer_Right = 65249 :: Int32
+
+
+pattern KEY_Pointer_Left = 65248 :: Int32
+
+
+pattern KEY_Pointer_EnableKeys = 65273 :: Int32
+
+
+pattern KEY_Pointer_Drag_Dflt = 65268 :: Int32
+
+
+pattern KEY_Pointer_Drag5 = 65277 :: Int32
+
+
+pattern KEY_Pointer_Drag4 = 65272 :: Int32
+
+
+pattern KEY_Pointer_Drag3 = 65271 :: Int32
+
+
+pattern KEY_Pointer_Drag2 = 65270 :: Int32
+
+
+pattern KEY_Pointer_Drag1 = 65269 :: Int32
+
+
+pattern KEY_Pointer_DownRight = 65255 :: Int32
+
+
+pattern KEY_Pointer_DownLeft = 65254 :: Int32
+
+
+pattern KEY_Pointer_Down = 65251 :: Int32
+
+
+pattern KEY_Pointer_DfltBtnPrev = 65276 :: Int32
+
+
+pattern KEY_Pointer_DfltBtnNext = 65275 :: Int32
+
+
+pattern KEY_Pointer_DblClick_Dflt = 65262 :: Int32
+
+
+pattern KEY_Pointer_DblClick5 = 65267 :: Int32
+
+
+pattern KEY_Pointer_DblClick4 = 65266 :: Int32
+
+
+pattern KEY_Pointer_DblClick3 = 65265 :: Int32
+
+
+pattern KEY_Pointer_DblClick2 = 65264 :: Int32
+
+
+pattern KEY_Pointer_DblClick1 = 65263 :: Int32
+
+
+pattern KEY_Pointer_Button_Dflt = 65256 :: Int32
+
+
+pattern KEY_Pointer_Button5 = 65261 :: Int32
+
+
+pattern KEY_Pointer_Button4 = 65260 :: Int32
+
+
+pattern KEY_Pointer_Button3 = 65259 :: Int32
+
+
+pattern KEY_Pointer_Button2 = 65258 :: Int32
+
+
+pattern KEY_Pointer_Button1 = 65257 :: Int32
+
+
+pattern KEY_Pointer_Accelerate = 65274 :: Int32
+
+
+pattern KEY_Pictures = 269025169 :: Int32
+
+
+pattern KEY_Phone = 269025134 :: Int32
+
+
+pattern KEY_PesetaSign = 16785575 :: Int32
+
+
+pattern KEY_Pause = 65299 :: Int32
+
+
+pattern KEY_Paste = 269025133 :: Int32
+
+
+pattern KEY_Page_Up = 65365 :: Int32
+
+
+pattern KEY_Page_Down = 65366 :: Int32
+
+
+pattern KEY_Pabovedot = 16784982 :: Int32
+
+
+pattern KEY_P = 80 :: Int32
+
+
+pattern KEY_Overlay2_Enable = 65145 :: Int32
+
+
+pattern KEY_Overlay1_Enable = 65144 :: Int32
+
+
+pattern KEY_Otilde = 213 :: Int32
+
+
+pattern KEY_Oslash = 216 :: Int32
+
+
+pattern KEY_Option = 269025132 :: Int32
+
+
+pattern KEY_OpenURL = 269025080 :: Int32
+
+
+pattern KEY_Open = 269025131 :: Int32
+
+
+pattern KEY_Ooblique = 216 :: Int32
+
+
+pattern KEY_Omacron = 978 :: Int32
+
+
+pattern KEY_Ohorntilde = 16785120 :: Int32
+
+
+pattern KEY_Ohornhook = 16785118 :: Int32
+
+
+pattern KEY_Ohorngrave = 16785116 :: Int32
+
+
+pattern KEY_Ohornbelowdot = 16785122 :: Int32
+
+
+pattern KEY_Ohornacute = 16785114 :: Int32
+
+
+pattern KEY_Ohorn = 16777632 :: Int32
+
+
+pattern KEY_Ohook = 16785102 :: Int32
+
+
+pattern KEY_Ograve = 210 :: Int32
+
+
+pattern KEY_OfficeHome = 269025130 :: Int32
+
+
+pattern KEY_Odoubleacute = 469 :: Int32
+
+
+pattern KEY_Odiaeresis = 214 :: Int32
+
+
+pattern KEY_Ocircumflextilde = 16785110 :: Int32
+
+
+pattern KEY_Ocircumflexhook = 16785108 :: Int32
+
+
+pattern KEY_Ocircumflexgrave = 16785106 :: Int32
+
+
+pattern KEY_Ocircumflexbelowdot = 16785112 :: Int32
+
+
+pattern KEY_Ocircumflexacute = 16785104 :: Int32
+
+
+pattern KEY_Ocircumflex = 212 :: Int32
+
+
+pattern KEY_Ocaron = 16777681 :: Int32
+
+
+pattern KEY_Obelowdot = 16785100 :: Int32
+
+
+pattern KEY_Obarred = 16777631 :: Int32
+
+
+pattern KEY_Oacute = 211 :: Int32
+
+
+pattern KEY_OE = 5052 :: Int32
+
+
+pattern KEY_O = 79 :: Int32
+
+
+pattern KEY_Num_Lock = 65407 :: Int32
+
+
+pattern KEY_Ntilde = 209 :: Int32
+
+
+pattern KEY_Next_Virtual_Screen = 65234 :: Int32
+
+
+pattern KEY_Next_VMode = 269024802 :: Int32
+
+
+pattern KEY_Next = 65366 :: Int32
+
+
+pattern KEY_News = 269025129 :: Int32
+
+
+pattern KEY_NewSheqelSign = 16785578 :: Int32
+
+
+pattern KEY_New = 269025128 :: Int32
+
+
+pattern KEY_Ncedilla = 977 :: Int32
+
+
+pattern KEY_Ncaron = 466 :: Int32
+
+
+pattern KEY_NairaSign = 16785574 :: Int32
+
+
+pattern KEY_Nacute = 465 :: Int32
+
+
+pattern KEY_N = 78 :: Int32
+
+
+pattern KEY_MySites = 269025127 :: Int32
+
+
+pattern KEY_MyComputer = 269025075 :: Int32
+
+
+pattern KEY_Music = 269025170 :: Int32
+
+
+pattern KEY_MultipleCandidate = 65341 :: Int32
+
+
+pattern KEY_Multi_key = 65312 :: Int32
+
+
+pattern KEY_Muhenkan = 65314 :: Int32
+
+
+pattern KEY_MouseKeys_Enable = 65142 :: Int32
+
+
+pattern KEY_MouseKeys_Accel_Enable = 65143 :: Int32
+
+
+pattern KEY_MonBrightnessUp = 269025026 :: Int32
+
+
+pattern KEY_MonBrightnessDown = 269025027 :: Int32
+
+
+pattern KEY_Mode_switch = 65406 :: Int32
+
+
+pattern KEY_ModeLock = 269025025 :: Int32
+
+
+pattern KEY_MillSign = 16785573 :: Int32
+
+
+pattern KEY_Meta_R = 65512 :: Int32
+
+
+pattern KEY_Meta_L = 65511 :: Int32
+
+
+pattern KEY_Messenger = 269025166 :: Int32
+
+
+pattern KEY_MenuPB = 269025126 :: Int32
+
+
+pattern KEY_MenuKB = 269025125 :: Int32
+
+
+pattern KEY_Menu = 65383 :: Int32
+
+
+pattern KEY_Memo = 269025054 :: Int32
+
+
+pattern KEY_Meeting = 269025123 :: Int32
+
+
+pattern KEY_Massyo = 65324 :: Int32
+
+
+pattern KEY_Market = 269025122 :: Int32
+
+
+pattern KEY_MailForward = 269025168 :: Int32
+
+
+pattern KEY_Mail = 269025049 :: Int32
+
+
+pattern KEY_Mae_Koho = 65342 :: Int32
+
+
+pattern KEY_Macedonia_kje = 1708 :: Int32
+
+
+pattern KEY_Macedonia_gje = 1698 :: Int32
+
+
+pattern KEY_Macedonia_dse = 1701 :: Int32
+
+
+pattern KEY_Macedonia_KJE = 1724 :: Int32
+
+
+pattern KEY_Macedonia_GJE = 1714 :: Int32
+
+
+pattern KEY_Macedonia_DSE = 1717 :: Int32
+
+
+pattern KEY_Mabovedot = 16784960 :: Int32
+
+
+pattern KEY_M = 77 :: Int32
+
+
+pattern KEY_Lstroke = 419 :: Int32
+
+
+pattern KEY_LogWindowTree = 269024804 :: Int32
+
+
+pattern KEY_LogOff = 269025121 :: Int32
+
+
+pattern KEY_LogGrabInfo = 269024805 :: Int32
+
+
+pattern KEY_LiraSign = 16785572 :: Int32
+
+
+pattern KEY_Linefeed = 65290 :: Int32
+
+
+pattern KEY_LightBulb = 269025077 :: Int32
+
+
+pattern KEY_Left = 65361 :: Int32
+
+
+pattern KEY_Lcedilla = 934 :: Int32
+
+
+pattern KEY_Lcaron = 421 :: Int32
+
+
+pattern KEY_Lbelowdot = 16784950 :: Int32
+
+
+pattern KEY_LaunchF = 269025103 :: Int32
+
+
+pattern KEY_LaunchE = 269025102 :: Int32
+
+
+pattern KEY_LaunchD = 269025101 :: Int32
+
+
+pattern KEY_LaunchC = 269025100 :: Int32
+
+
+pattern KEY_LaunchB = 269025099 :: Int32
+
+
+pattern KEY_LaunchA = 269025098 :: Int32
+
+
+pattern KEY_Launch9 = 269025097 :: Int32
+
+
+pattern KEY_Launch8 = 269025096 :: Int32
+
+
+pattern KEY_Launch7 = 269025095 :: Int32
+
+
+pattern KEY_Launch6 = 269025094 :: Int32
+
+
+pattern KEY_Launch5 = 269025093 :: Int32
+
+
+pattern KEY_Launch4 = 269025092 :: Int32
+
+
+pattern KEY_Launch3 = 269025091 :: Int32
+
+
+pattern KEY_Launch2 = 269025090 :: Int32
+
+
+pattern KEY_Launch1 = 269025089 :: Int32
+
+
+pattern KEY_Launch0 = 269025088 :: Int32
+
+
+pattern KEY_Last_Virtual_Screen = 65236 :: Int32
+
+
+pattern KEY_Lacute = 453 :: Int32
+
+
+pattern KEY_L9 = 65488 :: Int32
+
+
+pattern KEY_L8 = 65487 :: Int32
+
+
+pattern KEY_L7 = 65486 :: Int32
+
+
+pattern KEY_L6 = 65485 :: Int32
+
+
+pattern KEY_L5 = 65484 :: Int32
+
+
+pattern KEY_L4 = 65483 :: Int32
+
+
+pattern KEY_L3 = 65482 :: Int32
+
+
+pattern KEY_L2 = 65481 :: Int32
+
+
+pattern KEY_L10 = 65489 :: Int32
+
+
+pattern KEY_L1 = 65480 :: Int32
+
+
+pattern KEY_L = 76 :: Int32
+
+
+pattern KEY_Korean_Won = 3839 :: Int32
+
+
+pattern KEY_Kcedilla = 979 :: Int32
+
+
+pattern KEY_KbdLightOnOff = 269025028 :: Int32
+
+
+pattern KEY_KbdBrightnessUp = 269025029 :: Int32
+
+
+pattern KEY_KbdBrightnessDown = 269025030 :: Int32
+
+
+pattern KEY_Katakana = 65318 :: Int32
+
+
+pattern KEY_Kanji_Bangou = 65335 :: Int32
+
+
+pattern KEY_Kanji = 65313 :: Int32
+
+
+pattern KEY_Kana_Shift = 65326 :: Int32
+
+
+pattern KEY_Kana_Lock = 65325 :: Int32
+
+
+pattern KEY_KP_Up = 65431 :: Int32
+
+
+pattern KEY_KP_Tab = 65417 :: Int32
+
+
+pattern KEY_KP_Subtract = 65453 :: Int32
+
+
+pattern KEY_KP_Space = 65408 :: Int32
+
+
+pattern KEY_KP_Separator = 65452 :: Int32
+
+
+pattern KEY_KP_Right = 65432 :: Int32
+
+
+pattern KEY_KP_Prior = 65434 :: Int32
+
+
+pattern KEY_KP_Page_Up = 65434 :: Int32
+
+
+pattern KEY_KP_Page_Down = 65435 :: Int32
+
+
+pattern KEY_KP_Next = 65435 :: Int32
+
+
+pattern KEY_KP_Multiply = 65450 :: Int32
+
+
+pattern KEY_KP_Left = 65430 :: Int32
+
+
+pattern KEY_KP_Insert = 65438 :: Int32
+
+
+pattern KEY_KP_Home = 65429 :: Int32
+
+
+pattern KEY_KP_F4 = 65428 :: Int32
+
+
+pattern KEY_KP_F3 = 65427 :: Int32
+
+
+pattern KEY_KP_F2 = 65426 :: Int32
+
+
+pattern KEY_KP_F1 = 65425 :: Int32
+
+
+pattern KEY_KP_Equal = 65469 :: Int32
+
+
+pattern KEY_KP_Enter = 65421 :: Int32
+
+
+pattern KEY_KP_End = 65436 :: Int32
+
+
+pattern KEY_KP_Down = 65433 :: Int32
+
+
+pattern KEY_KP_Divide = 65455 :: Int32
+
+
+pattern KEY_KP_Delete = 65439 :: Int32
+
+
+pattern KEY_KP_Decimal = 65454 :: Int32
+
+
+pattern KEY_KP_Begin = 65437 :: Int32
+
+
+pattern KEY_KP_Add = 65451 :: Int32
+
+
+pattern KEY_KP_9 = 65465 :: Int32
+
+
+pattern KEY_KP_8 = 65464 :: Int32
+
+
+pattern KEY_KP_7 = 65463 :: Int32
+
+
+pattern KEY_KP_6 = 65462 :: Int32
+
+
+pattern KEY_KP_5 = 65461 :: Int32
+
+
+pattern KEY_KP_4 = 65460 :: Int32
+
+
+pattern KEY_KP_3 = 65459 :: Int32
+
+
+pattern KEY_KP_2 = 65458 :: Int32
+
+
+pattern KEY_KP_1 = 65457 :: Int32
+
+
+pattern KEY_KP_0 = 65456 :: Int32
+
+
+pattern KEY_K = 75 :: Int32
+
+
+pattern KEY_Jcircumflex = 684 :: Int32
+
+
+pattern KEY_J = 74 :: Int32
+
+
+pattern KEY_Itilde = 933 :: Int32
+
+
+pattern KEY_Iogonek = 967 :: Int32
+
+
+pattern KEY_Insert = 65379 :: Int32
+
+
+pattern KEY_Imacron = 975 :: Int32
+
+
+pattern KEY_Ihook = 16785096 :: Int32
+
+
+pattern KEY_Igrave = 204 :: Int32
+
+
+pattern KEY_Idiaeresis = 207 :: Int32
+
+
+pattern KEY_Icircumflex = 206 :: Int32
+
+
+pattern KEY_Ibreve = 16777516 :: Int32
+
+
+pattern KEY_Ibelowdot = 16785098 :: Int32
+
+
+pattern KEY_Iacute = 205 :: Int32
+
+
+pattern KEY_Iabovedot = 681 :: Int32
+
+
+pattern KEY_ISO_Set_Margin_Right = 65064 :: Int32
+
+
+pattern KEY_ISO_Set_Margin_Left = 65063 :: Int32
+
+
+pattern KEY_ISO_Release_Margin_Right = 65066 :: Int32
+
+
+pattern KEY_ISO_Release_Margin_Left = 65065 :: Int32
+
+
+pattern KEY_ISO_Release_Both_Margins = 65067 :: Int32
+
+
+pattern KEY_ISO_Prev_Group_Lock = 65035 :: Int32
+
+
+pattern KEY_ISO_Prev_Group = 65034 :: Int32
+
+
+pattern KEY_ISO_Partial_Space_Right = 65062 :: Int32
+
+
+pattern KEY_ISO_Partial_Space_Left = 65061 :: Int32
+
+
+pattern KEY_ISO_Partial_Line_Up = 65059 :: Int32
+
+
+pattern KEY_ISO_Partial_Line_Down = 65060 :: Int32
+
+
+pattern KEY_ISO_Next_Group_Lock = 65033 :: Int32
+
+
+pattern KEY_ISO_Next_Group = 65032 :: Int32
+
+
+pattern KEY_ISO_Move_Line_Up = 65057 :: Int32
+
+
+pattern KEY_ISO_Move_Line_Down = 65058 :: Int32
+
+
+pattern KEY_ISO_Lock = 65025 :: Int32
+
+
+pattern KEY_ISO_Level5_Shift = 65041 :: Int32
+
+
+pattern KEY_ISO_Level5_Lock = 65043 :: Int32
+
+
+pattern KEY_ISO_Level5_Latch = 65042 :: Int32
+
+
+pattern KEY_ISO_Level3_Shift = 65027 :: Int32
+
+
+pattern KEY_ISO_Level3_Lock = 65029 :: Int32
+
+
+pattern KEY_ISO_Level3_Latch = 65028 :: Int32
+
+
+pattern KEY_ISO_Level2_Latch = 65026 :: Int32
+
+
+pattern KEY_ISO_Left_Tab = 65056 :: Int32
+
+
+pattern KEY_ISO_Last_Group_Lock = 65039 :: Int32
+
+
+pattern KEY_ISO_Last_Group = 65038 :: Int32
+
+
+pattern KEY_ISO_Group_Shift = 65406 :: Int32
+
+
+pattern KEY_ISO_Group_Lock = 65031 :: Int32
+
+
+pattern KEY_ISO_Group_Latch = 65030 :: Int32
+
+
+pattern KEY_ISO_First_Group_Lock = 65037 :: Int32
+
+
+pattern KEY_ISO_First_Group = 65036 :: Int32
+
+
+pattern KEY_ISO_Fast_Cursor_Up = 65070 :: Int32
+
+
+pattern KEY_ISO_Fast_Cursor_Right = 65069 :: Int32
+
+
+pattern KEY_ISO_Fast_Cursor_Left = 65068 :: Int32
+
+
+pattern KEY_ISO_Fast_Cursor_Down = 65071 :: Int32
+
+
+pattern KEY_ISO_Enter = 65076 :: Int32
+
+
+pattern KEY_ISO_Emphasize = 65074 :: Int32
+
+
+pattern KEY_ISO_Discontinuous_Underline = 65073 :: Int32
+
+
+pattern KEY_ISO_Continuous_Underline = 65072 :: Int32
+
+
+pattern KEY_ISO_Center_Object = 65075 :: Int32
+
+
+pattern KEY_I = 73 :: Int32
+
+
+pattern KEY_Hyper_R = 65518 :: Int32
+
+
+pattern KEY_Hyper_L = 65517 :: Int32
+
+
+pattern KEY_Hstroke = 673 :: Int32
+
+
+pattern KEY_HotLinks = 269025082 :: Int32
+
+
+pattern KEY_HomePage = 269025048 :: Int32
+
+
+pattern KEY_Home = 65360 :: Int32
+
+
+pattern KEY_History = 269025079 :: Int32
+
+
+pattern KEY_Hiragana_Katakana = 65319 :: Int32
+
+
+pattern KEY_Hiragana = 65317 :: Int32
+
+
+pattern KEY_Hibernate = 269025192 :: Int32
+
+
+pattern KEY_Henkan_Mode = 65315 :: Int32
+
+
+pattern KEY_Henkan = 65315 :: Int32
+
+
+pattern KEY_Help = 65386 :: Int32
+
+
+pattern KEY_Hebrew_switch = 65406 :: Int32
+
+
+pattern KEY_Hcircumflex = 678 :: Int32
+
+
+pattern KEY_Hankaku = 65321 :: Int32
+
+
+pattern KEY_Hangul_switch = 65406 :: Int32
+
+
+pattern KEY_Hangul_YeorinHieuh = 3829 :: Int32
+
+
+pattern KEY_Hangul_YU = 3792 :: Int32
+
+
+pattern KEY_Hangul_YO = 3787 :: Int32
+
+
+pattern KEY_Hangul_YI = 3794 :: Int32
+
+
+pattern KEY_Hangul_YEO = 3781 :: Int32
+
+
+pattern KEY_Hangul_YE = 3782 :: Int32
+
+
+pattern KEY_Hangul_YAE = 3778 :: Int32
+
+
+pattern KEY_Hangul_YA = 3777 :: Int32
+
+
+pattern KEY_Hangul_WI = 3791 :: Int32
+
+
+pattern KEY_Hangul_WEO = 3789 :: Int32
+
+
+pattern KEY_Hangul_WE = 3790 :: Int32
+
+
+pattern KEY_Hangul_WAE = 3785 :: Int32
+
+
+pattern KEY_Hangul_WA = 3784 :: Int32
+
+
+pattern KEY_Hangul_U = 3788 :: Int32
+
+
+pattern KEY_Hangul_Tieut = 3772 :: Int32
+
+
+pattern KEY_Hangul_SunkyeongeumPieub = 3825 :: Int32
+
+
+pattern KEY_Hangul_SunkyeongeumPhieuf = 3828 :: Int32
+
+
+pattern KEY_Hangul_SunkyeongeumMieum = 3824 :: Int32
+
+
+pattern KEY_Hangul_Start = 65330 :: Int32
+
+
+pattern KEY_Hangul_SsangSios = 3766 :: Int32
+
+
+pattern KEY_Hangul_SsangPieub = 3763 :: Int32
+
+
+pattern KEY_Hangul_SsangKiyeog = 3746 :: Int32
+
+
+pattern KEY_Hangul_SsangJieuj = 3769 :: Int32
+
+
+pattern KEY_Hangul_SsangDikeud = 3752 :: Int32
+
+
+pattern KEY_Hangul_Special = 65343 :: Int32
+
+
+pattern KEY_Hangul_Sios = 3765 :: Int32
+
+
+pattern KEY_Hangul_SingleCandidate = 65340 :: Int32
+
+
+pattern KEY_Hangul_Romaja = 65334 :: Int32
+
+
+pattern KEY_Hangul_RieulYeorinHieuh = 3823 :: Int32
+
+
+pattern KEY_Hangul_RieulTieut = 3758 :: Int32
+
+
+pattern KEY_Hangul_RieulSios = 3757 :: Int32
+
+
+pattern KEY_Hangul_RieulPieub = 3756 :: Int32
+
+
+pattern KEY_Hangul_RieulPhieuf = 3759 :: Int32
+
+
+pattern KEY_Hangul_RieulMieum = 3755 :: Int32
+
+
+pattern KEY_Hangul_RieulKiyeog = 3754 :: Int32
+
+
+pattern KEY_Hangul_RieulHieuh = 3760 :: Int32
+
+
+pattern KEY_Hangul_Rieul = 3753 :: Int32
+
+
+pattern KEY_Hangul_PreviousCandidate = 65342 :: Int32
+
+
+pattern KEY_Hangul_PreHanja = 65338 :: Int32
+
+
+pattern KEY_Hangul_PostHanja = 65339 :: Int32
+
+
+pattern KEY_Hangul_PieubSios = 3764 :: Int32
+
+
+pattern KEY_Hangul_Pieub = 3762 :: Int32
+
+
+pattern KEY_Hangul_Phieuf = 3773 :: Int32
+
+
+pattern KEY_Hangul_PanSios = 3826 :: Int32
+
+
+pattern KEY_Hangul_OE = 3786 :: Int32
+
+
+pattern KEY_Hangul_O = 3783 :: Int32
+
+
+pattern KEY_Hangul_NieunJieuj = 3749 :: Int32
+
+
+pattern KEY_Hangul_NieunHieuh = 3750 :: Int32
+
+
+pattern KEY_Hangul_Nieun = 3748 :: Int32
+
+
+pattern KEY_Hangul_MultipleCandidate = 65341 :: Int32
+
+
+pattern KEY_Hangul_Mieum = 3761 :: Int32
+
+
+pattern KEY_Hangul_KkogjiDalrinIeung = 3827 :: Int32
+
+
+pattern KEY_Hangul_KiyeogSios = 3747 :: Int32
+
+
+pattern KEY_Hangul_Kiyeog = 3745 :: Int32
+
+
+pattern KEY_Hangul_Khieuq = 3771 :: Int32
+
+
+pattern KEY_Hangul_Jieuj = 3768 :: Int32
+
+
+pattern KEY_Hangul_Jeonja = 65336 :: Int32
+
+
+pattern KEY_Hangul_Jamo = 65333 :: Int32
+
+
+pattern KEY_Hangul_J_YeorinHieuh = 3834 :: Int32
+
+
+pattern KEY_Hangul_J_Tieut = 3820 :: Int32
+
+
+pattern KEY_Hangul_J_SsangSios = 3815 :: Int32
+
+
+pattern KEY_Hangul_J_SsangKiyeog = 3797 :: Int32
+
+
+pattern KEY_Hangul_J_Sios = 3814 :: Int32
+
+
+pattern KEY_Hangul_J_RieulTieut = 3808 :: Int32
+
+
+pattern KEY_Hangul_J_RieulSios = 3807 :: Int32
+
+
+pattern KEY_Hangul_J_RieulPieub = 3806 :: Int32
+
+
+pattern KEY_Hangul_J_RieulPhieuf = 3809 :: Int32
+
+
+pattern KEY_Hangul_J_RieulMieum = 3805 :: Int32
+
+
+pattern KEY_Hangul_J_RieulKiyeog = 3804 :: Int32
+
+
+pattern KEY_Hangul_J_RieulHieuh = 3810 :: Int32
+
+
+pattern KEY_Hangul_J_Rieul = 3803 :: Int32
+
+
+pattern KEY_Hangul_J_PieubSios = 3813 :: Int32
+
+
+pattern KEY_Hangul_J_Pieub = 3812 :: Int32
+
+
+pattern KEY_Hangul_J_Phieuf = 3821 :: Int32
+
+
+pattern KEY_Hangul_J_PanSios = 3832 :: Int32
+
+
+pattern KEY_Hangul_J_NieunJieuj = 3800 :: Int32
+
+
+pattern KEY_Hangul_J_NieunHieuh = 3801 :: Int32
+
+
+pattern KEY_Hangul_J_Nieun = 3799 :: Int32
+
+
+pattern KEY_Hangul_J_Mieum = 3811 :: Int32
+
+
+pattern KEY_Hangul_J_KkogjiDalrinIeung = 3833 :: Int32
+
+
+pattern KEY_Hangul_J_KiyeogSios = 3798 :: Int32
+
+
+pattern KEY_Hangul_J_Kiyeog = 3796 :: Int32
+
+
+pattern KEY_Hangul_J_Khieuq = 3819 :: Int32
+
+
+pattern KEY_Hangul_J_Jieuj = 3817 :: Int32
+
+
+pattern KEY_Hangul_J_Ieung = 3816 :: Int32
+
+
+pattern KEY_Hangul_J_Hieuh = 3822 :: Int32
+
+
+pattern KEY_Hangul_J_Dikeud = 3802 :: Int32
+
+
+pattern KEY_Hangul_J_Cieuc = 3818 :: Int32
+
+
+pattern KEY_Hangul_Ieung = 3767 :: Int32
+
+
+pattern KEY_Hangul_I = 3795 :: Int32
+
+
+pattern KEY_Hangul_Hieuh = 3774 :: Int32
+
+
+pattern KEY_Hangul_Hanja = 65332 :: Int32
+
+
+pattern KEY_Hangul_End = 65331 :: Int32
+
+
+pattern KEY_Hangul_EU = 3793 :: Int32
+
+
+pattern KEY_Hangul_EO = 3779 :: Int32
+
+
+pattern KEY_Hangul_E = 3780 :: Int32
+
+
+pattern KEY_Hangul_Dikeud = 3751 :: Int32
+
+
+pattern KEY_Hangul_Codeinput = 65335 :: Int32
+
+
+pattern KEY_Hangul_Cieuc = 3770 :: Int32
+
+
+pattern KEY_Hangul_Banja = 65337 :: Int32
+
+
+pattern KEY_Hangul_AraeAE = 3831 :: Int32
+
+
+pattern KEY_Hangul_AraeA = 3830 :: Int32
+
+
+pattern KEY_Hangul_AE = 3776 :: Int32
+
+
+pattern KEY_Hangul_A = 3775 :: Int32
+
+
+pattern KEY_Hangul = 65329 :: Int32
+
+
+pattern KEY_H = 72 :: Int32
+
+
+pattern KEY_Green = 269025188 :: Int32
+
+
+pattern KEY_Greek_zeta = 2022 :: Int32
+
+
+pattern KEY_Greek_xi = 2030 :: Int32
+
+
+pattern KEY_Greek_upsilondieresis = 1977 :: Int32
+
+
+pattern KEY_Greek_upsilonaccentdieresis = 1978 :: Int32
+
+
+pattern KEY_Greek_upsilonaccent = 1976 :: Int32
+
+
+pattern KEY_Greek_upsilon = 2037 :: Int32
+
+
+pattern KEY_Greek_theta = 2024 :: Int32
+
+
+pattern KEY_Greek_tau = 2036 :: Int32
+
+
+pattern KEY_Greek_switch = 65406 :: Int32
+
+
+pattern KEY_Greek_sigma = 2034 :: Int32
+
+
+pattern KEY_Greek_rho = 2033 :: Int32
+
+
+pattern KEY_Greek_psi = 2040 :: Int32
+
+
+pattern KEY_Greek_pi = 2032 :: Int32
+
+
+pattern KEY_Greek_phi = 2038 :: Int32
+
+
+pattern KEY_Greek_omicronaccent = 1975 :: Int32
+
+
+pattern KEY_Greek_omicron = 2031 :: Int32
+
+
+pattern KEY_Greek_omegaaccent = 1979 :: Int32
+
+
+pattern KEY_Greek_omega = 2041 :: Int32
+
+
+pattern KEY_Greek_nu = 2029 :: Int32
+
+
+pattern KEY_Greek_mu = 2028 :: Int32
+
+
+pattern KEY_Greek_lamda = 2027 :: Int32
+
+
+pattern KEY_Greek_lambda = 2027 :: Int32
+
+
+pattern KEY_Greek_kappa = 2026 :: Int32
+
+
+pattern KEY_Greek_iotadieresis = 1973 :: Int32
+
+
+pattern KEY_Greek_iotaaccentdieresis = 1974 :: Int32
+
+
+pattern KEY_Greek_iotaaccent = 1972 :: Int32
+
+
+pattern KEY_Greek_iota = 2025 :: Int32
+
+
+pattern KEY_Greek_horizbar = 1967 :: Int32
+
+
+pattern KEY_Greek_gamma = 2019 :: Int32
+
+
+pattern KEY_Greek_finalsmallsigma = 2035 :: Int32
+
+
+pattern KEY_Greek_etaaccent = 1971 :: Int32
+
+
+pattern KEY_Greek_eta = 2023 :: Int32
+
+
+pattern KEY_Greek_epsilonaccent = 1970 :: Int32
+
+
+pattern KEY_Greek_epsilon = 2021 :: Int32
+
+
+pattern KEY_Greek_delta = 2020 :: Int32
+
+
+pattern KEY_Greek_chi = 2039 :: Int32
+
+
+pattern KEY_Greek_beta = 2018 :: Int32
+
+
+pattern KEY_Greek_alphaaccent = 1969 :: Int32
+
+
+pattern KEY_Greek_alpha = 2017 :: Int32
+
+
+pattern KEY_Greek_accentdieresis = 1966 :: Int32
+
+
+pattern KEY_Greek_ZETA = 1990 :: Int32
+
+
+pattern KEY_Greek_XI = 1998 :: Int32
+
+
+pattern KEY_Greek_UPSILONdieresis = 1961 :: Int32
+
+
+pattern KEY_Greek_UPSILONaccent = 1960 :: Int32
+
+
+pattern KEY_Greek_UPSILON = 2005 :: Int32
+
+
+pattern KEY_Greek_THETA = 1992 :: Int32
+
+
+pattern KEY_Greek_TAU = 2004 :: Int32
+
+
+pattern KEY_Greek_SIGMA = 2002 :: Int32
+
+
+pattern KEY_Greek_RHO = 2001 :: Int32
+
+
+pattern KEY_Greek_PSI = 2008 :: Int32
+
+
+pattern KEY_Greek_PI = 2000 :: Int32
+
+
+pattern KEY_Greek_PHI = 2006 :: Int32
+
+
+pattern KEY_Greek_OMICRONaccent = 1959 :: Int32
+
+
+pattern KEY_Greek_OMICRON = 1999 :: Int32
+
+
+pattern KEY_Greek_OMEGAaccent = 1963 :: Int32
+
+
+pattern KEY_Greek_OMEGA = 2009 :: Int32
+
+
+pattern KEY_Greek_NU = 1997 :: Int32
+
+
+pattern KEY_Greek_MU = 1996 :: Int32
+
+
+pattern KEY_Greek_LAMDA = 1995 :: Int32
+
+
+pattern KEY_Greek_LAMBDA = 1995 :: Int32
+
+
+pattern KEY_Greek_KAPPA = 1994 :: Int32
+
+
+pattern KEY_Greek_IOTAdieresis = 1957 :: Int32
+
+
+pattern KEY_Greek_IOTAdiaeresis = 1957 :: Int32
+
+
+pattern KEY_Greek_IOTAaccent = 1956 :: Int32
+
+
+pattern KEY_Greek_IOTA = 1993 :: Int32
+
+
+pattern KEY_Greek_GAMMA = 1987 :: Int32
+
+
+pattern KEY_Greek_ETAaccent = 1955 :: Int32
+
+
+pattern KEY_Greek_ETA = 1991 :: Int32
+
+
+pattern KEY_Greek_EPSILONaccent = 1954 :: Int32
+
+
+pattern KEY_Greek_EPSILON = 1989 :: Int32
+
+
+pattern KEY_Greek_DELTA = 1988 :: Int32
+
+
+pattern KEY_Greek_CHI = 2007 :: Int32
+
+
+pattern KEY_Greek_BETA = 1986 :: Int32
+
+
+pattern KEY_Greek_ALPHAaccent = 1953 :: Int32
+
+
+pattern KEY_Greek_ALPHA = 1985 :: Int32
+
+
+pattern KEY_Go = 269025119 :: Int32
+
+
+pattern KEY_Georgian_zhar = 16781535 :: Int32
+
+
+pattern KEY_Georgian_zen = 16781526 :: Int32
+
+
+pattern KEY_Georgian_xan = 16781550 :: Int32
+
+
+pattern KEY_Georgian_we = 16781555 :: Int32
+
+
+pattern KEY_Georgian_vin = 16781525 :: Int32
+
+
+pattern KEY_Georgian_un = 16781539 :: Int32
+
+
+pattern KEY_Georgian_tar = 16781538 :: Int32
+
+
+pattern KEY_Georgian_tan = 16781527 :: Int32
+
+
+pattern KEY_Georgian_shin = 16781544 :: Int32
+
+
+pattern KEY_Georgian_san = 16781537 :: Int32
+
+
+pattern KEY_Georgian_rae = 16781536 :: Int32
+
+
+pattern KEY_Georgian_qar = 16781543 :: Int32
+
+
+pattern KEY_Georgian_phar = 16781540 :: Int32
+
+
+pattern KEY_Georgian_par = 16781534 :: Int32
+
+
+pattern KEY_Georgian_on = 16781533 :: Int32
+
+
+pattern KEY_Georgian_nar = 16781532 :: Int32
+
+
+pattern KEY_Georgian_man = 16781531 :: Int32
+
+
+pattern KEY_Georgian_las = 16781530 :: Int32
+
+
+pattern KEY_Georgian_khar = 16781541 :: Int32
+
+
+pattern KEY_Georgian_kan = 16781529 :: Int32
+
+
+pattern KEY_Georgian_jil = 16781547 :: Int32
+
+
+pattern KEY_Georgian_jhan = 16781551 :: Int32
+
+
+pattern KEY_Georgian_in = 16781528 :: Int32
+
+
+pattern KEY_Georgian_hoe = 16781557 :: Int32
+
+
+pattern KEY_Georgian_hie = 16781554 :: Int32
+
+
+pattern KEY_Georgian_he = 16781553 :: Int32
+
+
+pattern KEY_Georgian_har = 16781556 :: Int32
+
+
+pattern KEY_Georgian_hae = 16781552 :: Int32
+
+
+pattern KEY_Georgian_ghan = 16781542 :: Int32
+
+
+pattern KEY_Georgian_gan = 16781522 :: Int32
+
+
+pattern KEY_Georgian_fi = 16781558 :: Int32
+
+
+pattern KEY_Georgian_en = 16781524 :: Int32
+
+
+pattern KEY_Georgian_don = 16781523 :: Int32
+
+
+pattern KEY_Georgian_cil = 16781548 :: Int32
+
+
+pattern KEY_Georgian_chin = 16781545 :: Int32
+
+
+pattern KEY_Georgian_char = 16781549 :: Int32
+
+
+pattern KEY_Georgian_can = 16781546 :: Int32
+
+
+pattern KEY_Georgian_ban = 16781521 :: Int32
+
+
+pattern KEY_Georgian_an = 16781520 :: Int32
+
+
+pattern KEY_Gcircumflex = 728 :: Int32
+
+
+pattern KEY_Gcedilla = 939 :: Int32
+
+
+pattern KEY_Gcaron = 16777702 :: Int32
+
+
+pattern KEY_Gbreve = 683 :: Int32
+
+
+pattern KEY_Game = 269025118 :: Int32
+
+
+pattern KEY_Gabovedot = 725 :: Int32
+
+
+pattern KEY_G = 71 :: Int32
+
+
+pattern KEY_FrameForward = 269025182 :: Int32
+
+
+pattern KEY_FrameBack = 269025181 :: Int32
+
+
+pattern KEY_Forward = 269025063 :: Int32
+
+
+pattern KEY_First_Virtual_Screen = 65232 :: Int32
+
+
+pattern KEY_Find = 65384 :: Int32
+
+
+pattern KEY_Finance = 269025084 :: Int32
+
+
+pattern KEY_Favorites = 269025072 :: Int32
+
+
+pattern KEY_Farsi_yeh = 16778956 :: Int32
+
+
+pattern KEY_Farsi_9 = 16779001 :: Int32
+
+
+pattern KEY_Farsi_8 = 16779000 :: Int32
+
+
+pattern KEY_Farsi_7 = 16778999 :: Int32
+
+
+pattern KEY_Farsi_6 = 16778998 :: Int32
+
+
+pattern KEY_Farsi_5 = 16778997 :: Int32
+
+
+pattern KEY_Farsi_4 = 16778996 :: Int32
+
+
+pattern KEY_Farsi_3 = 16778995 :: Int32
+
+
+pattern KEY_Farsi_2 = 16778994 :: Int32
+
+
+pattern KEY_Farsi_1 = 16778993 :: Int32
+
+
+pattern KEY_Farsi_0 = 16778992 :: Int32
+
+
+pattern KEY_Fabovedot = 16784926 :: Int32
+
+
+pattern KEY_FFrancSign = 16785571 :: Int32
+
+
+pattern KEY_F9 = 65478 :: Int32
+
+
+pattern KEY_F8 = 65477 :: Int32
+
+
+pattern KEY_F7 = 65476 :: Int32
+
+
+pattern KEY_F6 = 65475 :: Int32
+
+
+pattern KEY_F5 = 65474 :: Int32
+
+
+pattern KEY_F4 = 65473 :: Int32
+
+
+pattern KEY_F35 = 65504 :: Int32
+
+
+pattern KEY_F34 = 65503 :: Int32
+
+
+pattern KEY_F33 = 65502 :: Int32
+
+
+pattern KEY_F32 = 65501 :: Int32
+
+
+pattern KEY_F31 = 65500 :: Int32
+
+
+pattern KEY_F30 = 65499 :: Int32
+
+
+pattern KEY_F3 = 65472 :: Int32
+
+
+pattern KEY_F29 = 65498 :: Int32
+
+
+pattern KEY_F28 = 65497 :: Int32
+
+
+pattern KEY_F27 = 65496 :: Int32
+
+
+pattern KEY_F26 = 65495 :: Int32
+
+
+pattern KEY_F25 = 65494 :: Int32
+
+
+pattern KEY_F24 = 65493 :: Int32
+
+
+pattern KEY_F23 = 65492 :: Int32
+
+
+pattern KEY_F22 = 65491 :: Int32
+
+
+pattern KEY_F21 = 65490 :: Int32
+
+
+pattern KEY_F20 = 65489 :: Int32
+
+
+pattern KEY_F2 = 65471 :: Int32
+
+
+pattern KEY_F19 = 65488 :: Int32
+
+
+pattern KEY_F18 = 65487 :: Int32
+
+
+pattern KEY_F17 = 65486 :: Int32
+
+
+pattern KEY_F16 = 65485 :: Int32
+
+
+pattern KEY_F15 = 65484 :: Int32
+
+
+pattern KEY_F14 = 65483 :: Int32
+
+
+pattern KEY_F13 = 65482 :: Int32
+
+
+pattern KEY_F12 = 65481 :: Int32
+
+
+pattern KEY_F11 = 65480 :: Int32
+
+
+pattern KEY_F10 = 65479 :: Int32
+
+
+pattern KEY_F1 = 65470 :: Int32
+
+
+pattern KEY_F = 70 :: Int32
+
+
+pattern KEY_Explorer = 269025117 :: Int32
+
+
+pattern KEY_Execute = 65378 :: Int32
+
+
+pattern KEY_Excel = 269025116 :: Int32
+
+
+pattern KEY_EuroSign = 8364 :: Int32
+
+
+pattern KEY_Etilde = 16785084 :: Int32
+
+
+pattern KEY_Eth = 208 :: Int32
+
+
+pattern KEY_Escape = 65307 :: Int32
+
+
+pattern KEY_Eogonek = 458 :: Int32
+
+
+pattern KEY_End = 65367 :: Int32
+
+
+pattern KEY_Emacron = 938 :: Int32
+
+
+pattern KEY_Eject = 269025068 :: Int32
+
+
+pattern KEY_Eisu_toggle = 65328 :: Int32
+
+
+pattern KEY_Eisu_Shift = 65327 :: Int32
+
+
+pattern KEY_Ehook = 16785082 :: Int32
+
+
+pattern KEY_Egrave = 200 :: Int32
+
+
+pattern KEY_Ediaeresis = 203 :: Int32
+
+
+pattern KEY_EcuSign = 16785568 :: Int32
+
+
+pattern KEY_Ecircumflextilde = 16785092 :: Int32
+
+
+pattern KEY_Ecircumflexhook = 16785090 :: Int32
+
+
+pattern KEY_Ecircumflexgrave = 16785088 :: Int32
+
+
+pattern KEY_Ecircumflexbelowdot = 16785094 :: Int32
+
+
+pattern KEY_Ecircumflexacute = 16785086 :: Int32
+
+
+pattern KEY_Ecircumflex = 202 :: Int32
+
+
+pattern KEY_Ecaron = 460 :: Int32
+
+
+pattern KEY_Ebelowdot = 16785080 :: Int32
+
+
+pattern KEY_Eacute = 201 :: Int32
+
+
+pattern KEY_Eabovedot = 972 :: Int32
+
+
+pattern KEY_EZH = 16777655 :: Int32
+
+
+pattern KEY_ETH = 208 :: Int32
+
+
+pattern KEY_ENG = 957 :: Int32
+
+
+pattern KEY_E = 69 :: Int32
+
+
+pattern KEY_Dstroke = 464 :: Int32
+
+
+pattern KEY_Down = 65364 :: Int32
+
+
+pattern KEY_DongSign = 16785579 :: Int32
+
+
+pattern KEY_Documents = 269025115 :: Int32
+
+
+pattern KEY_Display = 269025113 :: Int32
+
+
+pattern KEY_Delete = 65535 :: Int32
+
+
+pattern KEY_Dcaron = 463 :: Int32
+
+
+pattern KEY_Dabovedot = 16784906 :: Int32
+
+
+pattern KEY_DOS = 269025114 :: Int32
+
+
+pattern KEY_D = 68 :: Int32
+
+
+pattern KEY_Cyrillic_zhe_descender = 16778391 :: Int32
+
+
+pattern KEY_Cyrillic_zhe = 1750 :: Int32
+
+
+pattern KEY_Cyrillic_ze = 1754 :: Int32
+
+
+pattern KEY_Cyrillic_yu = 1728 :: Int32
+
+
+pattern KEY_Cyrillic_yeru = 1753 :: Int32
+
+
+pattern KEY_Cyrillic_ya = 1745 :: Int32
+
+
+pattern KEY_Cyrillic_ve = 1751 :: Int32
+
+
+pattern KEY_Cyrillic_u_straight_bar = 16778417 :: Int32
+
+
+pattern KEY_Cyrillic_u_straight = 16778415 :: Int32
+
+
+pattern KEY_Cyrillic_u_macron = 16778479 :: Int32
+
+
+pattern KEY_Cyrillic_u = 1749 :: Int32
+
+
+pattern KEY_Cyrillic_tse = 1731 :: Int32
+
+
+pattern KEY_Cyrillic_te = 1748 :: Int32
+
+
+pattern KEY_Cyrillic_softsign = 1752 :: Int32
+
+
+pattern KEY_Cyrillic_shorti = 1738 :: Int32
+
+
+pattern KEY_Cyrillic_shha = 16778427 :: Int32
+
+
+pattern KEY_Cyrillic_shcha = 1757 :: Int32
+
+
+pattern KEY_Cyrillic_sha = 1755 :: Int32
+
+
+pattern KEY_Cyrillic_schwa = 16778457 :: Int32
+
+
+pattern KEY_Cyrillic_pe = 1744 :: Int32
+
+
+pattern KEY_Cyrillic_o_bar = 16778473 :: Int32
+
+
+pattern KEY_Cyrillic_o = 1743 :: Int32
+
+
+pattern KEY_Cyrillic_nje = 1706 :: Int32
+
+
+pattern KEY_Cyrillic_lje = 1705 :: Int32
+
+
+pattern KEY_Cyrillic_ka_vertstroke = 16778397 :: Int32
+
+
+pattern KEY_Cyrillic_ka_descender = 16778395 :: Int32
+
+
+pattern KEY_Cyrillic_ka = 1739 :: Int32
+
+
+pattern KEY_Cyrillic_je = 1704 :: Int32
+
+
+pattern KEY_Cyrillic_io = 1699 :: Int32
+
+
+pattern KEY_Cyrillic_ie = 1733 :: Int32
+
+
+pattern KEY_Cyrillic_i_macron = 16778467 :: Int32
+
+
+pattern KEY_Cyrillic_i = 1737 :: Int32
+
+
+pattern KEY_Cyrillic_hardsign = 1759 :: Int32
+
+
+pattern KEY_Cyrillic_ha_descender = 16778419 :: Int32
+
+
+pattern KEY_Cyrillic_ha = 1736 :: Int32
+
+
+pattern KEY_Cyrillic_ghe_bar = 16778387 :: Int32
+
+
+pattern KEY_Cyrillic_ghe = 1735 :: Int32
+
+
+pattern KEY_Cyrillic_es = 1747 :: Int32
+
+
+pattern KEY_Cyrillic_er = 1746 :: Int32
+
+
+pattern KEY_Cyrillic_en_descender = 16778403 :: Int32
+
+
+pattern KEY_Cyrillic_en = 1742 :: Int32
+
+
+pattern KEY_Cyrillic_em = 1741 :: Int32
+
+
+pattern KEY_Cyrillic_el = 1740 :: Int32
+
+
+pattern KEY_Cyrillic_ef = 1734 :: Int32
+
+
+pattern KEY_Cyrillic_e = 1756 :: Int32
+
+
+pattern KEY_Cyrillic_dzhe = 1711 :: Int32
+
+
+pattern KEY_Cyrillic_de = 1732 :: Int32
+
+
+pattern KEY_Cyrillic_che_vertstroke = 16778425 :: Int32
+
+
+pattern KEY_Cyrillic_che_descender = 16778423 :: Int32
+
+
+pattern KEY_Cyrillic_che = 1758 :: Int32
+
+
+pattern KEY_Cyrillic_be = 1730 :: Int32
+
+
+pattern KEY_Cyrillic_a = 1729 :: Int32
+
+
+pattern KEY_Cyrillic_ZHE_descender = 16778390 :: Int32
+
+
+pattern KEY_Cyrillic_ZHE = 1782 :: Int32
+
+
+pattern KEY_Cyrillic_ZE = 1786 :: Int32
+
+
+pattern KEY_Cyrillic_YU = 1760 :: Int32
+
+
+pattern KEY_Cyrillic_YERU = 1785 :: Int32
+
+
+pattern KEY_Cyrillic_YA = 1777 :: Int32
+
+
+pattern KEY_Cyrillic_VE = 1783 :: Int32
+
+
+pattern KEY_Cyrillic_U_straight_bar = 16778416 :: Int32
+
+
+pattern KEY_Cyrillic_U_straight = 16778414 :: Int32
+
+
+pattern KEY_Cyrillic_U_macron = 16778478 :: Int32
+
+
+pattern KEY_Cyrillic_U = 1781 :: Int32
+
+
+pattern KEY_Cyrillic_TSE = 1763 :: Int32
+
+
+pattern KEY_Cyrillic_TE = 1780 :: Int32
+
+
+pattern KEY_Cyrillic_SOFTSIGN = 1784 :: Int32
+
+
+pattern KEY_Cyrillic_SHORTI = 1770 :: Int32
+
+
+pattern KEY_Cyrillic_SHHA = 16778426 :: Int32
+
+
+pattern KEY_Cyrillic_SHCHA = 1789 :: Int32
+
+
+pattern KEY_Cyrillic_SHA = 1787 :: Int32
+
+
+pattern KEY_Cyrillic_SCHWA = 16778456 :: Int32
+
+
+pattern KEY_Cyrillic_PE = 1776 :: Int32
+
+
+pattern KEY_Cyrillic_O_bar = 16778472 :: Int32
+
+
+pattern KEY_Cyrillic_O = 1775 :: Int32
+
+
+pattern KEY_Cyrillic_NJE = 1722 :: Int32
+
+
+pattern KEY_Cyrillic_LJE = 1721 :: Int32
+
+
+pattern KEY_Cyrillic_KA_vertstroke = 16778396 :: Int32
+
+
+pattern KEY_Cyrillic_KA_descender = 16778394 :: Int32
+
+
+pattern KEY_Cyrillic_KA = 1771 :: Int32
+
+
+pattern KEY_Cyrillic_JE = 1720 :: Int32
+
+
+pattern KEY_Cyrillic_I_macron = 16778466 :: Int32
+
+
+pattern KEY_Cyrillic_IO = 1715 :: Int32
+
+
+pattern KEY_Cyrillic_IE = 1765 :: Int32
+
+
+pattern KEY_Cyrillic_I = 1769 :: Int32
+
+
+pattern KEY_Cyrillic_HA_descender = 16778418 :: Int32
+
+
+pattern KEY_Cyrillic_HARDSIGN = 1791 :: Int32
+
+
+pattern KEY_Cyrillic_HA = 1768 :: Int32
+
+
+pattern KEY_Cyrillic_GHE_bar = 16778386 :: Int32
+
+
+pattern KEY_Cyrillic_GHE = 1767 :: Int32
+
+
+pattern KEY_Cyrillic_ES = 1779 :: Int32
+
+
+pattern KEY_Cyrillic_ER = 1778 :: Int32
+
+
+pattern KEY_Cyrillic_EN_descender = 16778402 :: Int32
+
+
+pattern KEY_Cyrillic_EN = 1774 :: Int32
+
+
+pattern KEY_Cyrillic_EM = 1773 :: Int32
+
+
+pattern KEY_Cyrillic_EL = 1772 :: Int32
+
+
+pattern KEY_Cyrillic_EF = 1766 :: Int32
+
+
+pattern KEY_Cyrillic_E = 1788 :: Int32
+
+
+pattern KEY_Cyrillic_DZHE = 1727 :: Int32
+
+
+pattern KEY_Cyrillic_DE = 1764 :: Int32
+
+
+pattern KEY_Cyrillic_CHE_vertstroke = 16778424 :: Int32
+
+
+pattern KEY_Cyrillic_CHE_descender = 16778422 :: Int32
+
+
+pattern KEY_Cyrillic_CHE = 1790 :: Int32
+
+
+pattern KEY_Cyrillic_BE = 1762 :: Int32
+
+
+pattern KEY_Cyrillic_A = 1761 :: Int32
+
+
+pattern KEY_CycleAngle = 269025180 :: Int32
+
+
+pattern KEY_Cut = 269025112 :: Int32
+
+
+pattern KEY_CruzeiroSign = 16785570 :: Int32
+
+
+pattern KEY_Copy = 269025111 :: Int32
+
+
+pattern KEY_Control_R = 65508 :: Int32
+
+
+pattern KEY_Control_L = 65507 :: Int32
+
+
+pattern KEY_ContrastAdjust = 269025058 :: Int32
+
+
+pattern KEY_Community = 269025085 :: Int32
+
+
+pattern KEY_ColonSign = 16785569 :: Int32
+
+
+pattern KEY_Codeinput = 65335 :: Int32
+
+
+pattern KEY_Close = 269025110 :: Int32
+
+
+pattern KEY_ClearGrab = 269024801 :: Int32
+
+
+pattern KEY_Clear = 65291 :: Int32
+
+
+pattern KEY_Ch = 65185 :: Int32
+
+
+pattern KEY_Ccircumflex = 710 :: Int32
+
+
+pattern KEY_Ccedilla = 199 :: Int32
+
+
+pattern KEY_Ccaron = 456 :: Int32
+
+
+pattern KEY_Caps_Lock = 65509 :: Int32
+
+
+pattern KEY_Cancel = 65385 :: Int32
+
+
+pattern KEY_Calendar = 269025056 :: Int32
+
+
+pattern KEY_Calculator = 269025053 :: Int32
+
+
+pattern KEY_Cacute = 454 :: Int32
+
+
+pattern KEY_Cabovedot = 709 :: Int32
+
+
+pattern KEY_C_h = 65188 :: Int32
+
+
+pattern KEY_C_H = 65189 :: Int32
+
+
+pattern KEY_CH = 65186 :: Int32
+
+
+pattern KEY_CD = 269025107 :: Int32
+
+
+pattern KEY_C = 67 :: Int32
+
+
+pattern KEY_Byelorussian_shortu = 1710 :: Int32
+
+
+pattern KEY_Byelorussian_SHORTU = 1726 :: Int32
+
+
+pattern KEY_BrightnessAdjust = 269025083 :: Int32
+
+
+pattern KEY_Break = 65387 :: Int32
+
+
+pattern KEY_BounceKeys_Enable = 65140 :: Int32
+
+
+pattern KEY_Book = 269025106 :: Int32
+
+
+pattern KEY_Bluetooth = 269025172 :: Int32
+
+
+pattern KEY_Blue = 269025190 :: Int32
+
+
+pattern KEY_Begin = 65368 :: Int32
+
+
+pattern KEY_Battery = 269025171 :: Int32
+
+
+pattern KEY_BackSpace = 65288 :: Int32
+
+
+pattern KEY_BackForward = 269025087 :: Int32
+
+
+pattern KEY_Back = 269025062 :: Int32
+
+
+pattern KEY_Babovedot = 16784898 :: Int32
+
+
+pattern KEY_B = 66 :: Int32
+
+
+pattern KEY_Away = 269025165 :: Int32
+
+
+pattern KEY_AudioStop = 269025045 :: Int32
+
+
+pattern KEY_AudioRewind = 269025086 :: Int32
+
+
+pattern KEY_AudioRepeat = 269025176 :: Int32
+
+
+pattern KEY_AudioRecord = 269025052 :: Int32
+
+
+pattern KEY_AudioRandomPlay = 269025177 :: Int32
+
+
+pattern KEY_AudioRaiseVolume = 269025043 :: Int32
+
+
+pattern KEY_AudioPrev = 269025046 :: Int32
+
+
+pattern KEY_AudioPlay = 269025044 :: Int32
+
+
+pattern KEY_AudioPause = 269025073 :: Int32
+
+
+pattern KEY_AudioNext = 269025047 :: Int32
+
+
+pattern KEY_AudioMute = 269025042 :: Int32
+
+
+pattern KEY_AudioMicMute = 269025202 :: Int32
+
+
+pattern KEY_AudioMedia = 269025074 :: Int32
+
+
+pattern KEY_AudioLowerVolume = 269025041 :: Int32
+
+
+pattern KEY_AudioForward = 269025175 :: Int32
+
+
+pattern KEY_AudioCycleTrack = 269025179 :: Int32
+
+
+pattern KEY_AudibleBell_Enable = 65146 :: Int32
+
+
+pattern KEY_Atilde = 195 :: Int32
+
+
+pattern KEY_Armenian_zhe = 16778602 :: Int32
+
+
+pattern KEY_Armenian_za = 16778598 :: Int32
+
+
+pattern KEY_Armenian_yentamna = 16778634 :: Int32
+
+
+pattern KEY_Armenian_yech = 16778597 :: Int32
+
+
+pattern KEY_Armenian_vyun = 16778626 :: Int32
+
+
+pattern KEY_Armenian_vo = 16778616 :: Int32
+
+
+pattern KEY_Armenian_vev = 16778622 :: Int32
+
+
+pattern KEY_Armenian_verjaket = 16778633 :: Int32
+
+
+pattern KEY_Armenian_tyun = 16778623 :: Int32
+
+
+pattern KEY_Armenian_tso = 16778625 :: Int32
+
+
+pattern KEY_Armenian_tsa = 16778606 :: Int32
+
+
+pattern KEY_Armenian_to = 16778601 :: Int32
+
+
+pattern KEY_Armenian_tche = 16778611 :: Int32
+
+
+pattern KEY_Armenian_shesht = 16778587 :: Int32
+
+
+pattern KEY_Armenian_sha = 16778615 :: Int32
+
+
+pattern KEY_Armenian_separation_mark = 16778589 :: Int32
+
+
+pattern KEY_Armenian_se = 16778621 :: Int32
+
+
+pattern KEY_Armenian_re = 16778624 :: Int32
+
+
+pattern KEY_Armenian_ra = 16778620 :: Int32
+
+
+pattern KEY_Armenian_question = 16778590 :: Int32
+
+
+pattern KEY_Armenian_pyur = 16778627 :: Int32
+
+
+pattern KEY_Armenian_pe = 16778618 :: Int32
+
+
+pattern KEY_Armenian_paruyk = 16778590 :: Int32
+
+
+pattern KEY_Armenian_o = 16778629 :: Int32
+
+
+pattern KEY_Armenian_nu = 16778614 :: Int32
+
+
+pattern KEY_Armenian_men = 16778612 :: Int32
+
+
+pattern KEY_Armenian_lyun = 16778604 :: Int32
+
+
+pattern KEY_Armenian_ligature_ew = 16778631 :: Int32
+
+
+pattern KEY_Armenian_khe = 16778605 :: Int32
+
+
+pattern KEY_Armenian_ken = 16778607 :: Int32
+
+
+pattern KEY_Armenian_ke = 16778628 :: Int32
+
+
+pattern KEY_Armenian_je = 16778619 :: Int32
+
+
+pattern KEY_Armenian_ini = 16778603 :: Int32
+
+
+pattern KEY_Armenian_hyphen = 16778634 :: Int32
+
+
+pattern KEY_Armenian_ho = 16778608 :: Int32
+
+
+pattern KEY_Armenian_hi = 16778613 :: Int32
+
+
+pattern KEY_Armenian_gim = 16778595 :: Int32
+
+
+pattern KEY_Armenian_ghat = 16778610 :: Int32
+
+
+pattern KEY_Armenian_full_stop = 16778633 :: Int32
+
+
+pattern KEY_Armenian_fe = 16778630 :: Int32
+
+
+pattern KEY_Armenian_exclam = 16778588 :: Int32
+
+
+pattern KEY_Armenian_e = 16778599 :: Int32
+
+
+pattern KEY_Armenian_dza = 16778609 :: Int32
+
+
+pattern KEY_Armenian_da = 16778596 :: Int32
+
+
+pattern KEY_Armenian_cha = 16778617 :: Int32
+
+
+pattern KEY_Armenian_but = 16778589 :: Int32
+
+
+pattern KEY_Armenian_ben = 16778594 :: Int32
+
+
+pattern KEY_Armenian_ayb = 16778593 :: Int32
+
+
+pattern KEY_Armenian_at = 16778600 :: Int32
+
+
+pattern KEY_Armenian_apostrophe = 16778586 :: Int32
+
+
+pattern KEY_Armenian_amanak = 16778588 :: Int32
+
+
+pattern KEY_Armenian_accent = 16778587 :: Int32
+
+
+pattern KEY_Armenian_ZHE = 16778554 :: Int32
+
+
+pattern KEY_Armenian_ZA = 16778550 :: Int32
+
+
+pattern KEY_Armenian_YECH = 16778549 :: Int32
+
+
+pattern KEY_Armenian_VYUN = 16778578 :: Int32
+
+
+pattern KEY_Armenian_VO = 16778568 :: Int32
+
+
+pattern KEY_Armenian_VEV = 16778574 :: Int32
+
+
+pattern KEY_Armenian_TYUN = 16778575 :: Int32
+
+
+pattern KEY_Armenian_TSO = 16778577 :: Int32
+
+
+pattern KEY_Armenian_TSA = 16778558 :: Int32
+
+
+pattern KEY_Armenian_TO = 16778553 :: Int32
+
+
+pattern KEY_Armenian_TCHE = 16778563 :: Int32
+
+
+pattern KEY_Armenian_SHA = 16778567 :: Int32
+
+
+pattern KEY_Armenian_SE = 16778573 :: Int32
+
+
+pattern KEY_Armenian_RE = 16778576 :: Int32
+
+
+pattern KEY_Armenian_RA = 16778572 :: Int32
+
+
+pattern KEY_Armenian_PYUR = 16778579 :: Int32
+
+
+pattern KEY_Armenian_PE = 16778570 :: Int32
+
+
+pattern KEY_Armenian_O = 16778581 :: Int32
+
+
+pattern KEY_Armenian_NU = 16778566 :: Int32
+
+
+pattern KEY_Armenian_MEN = 16778564 :: Int32
+
+
+pattern KEY_Armenian_LYUN = 16778556 :: Int32
+
+
+pattern KEY_Armenian_KHE = 16778557 :: Int32
+
+
+pattern KEY_Armenian_KEN = 16778559 :: Int32
+
+
+pattern KEY_Armenian_KE = 16778580 :: Int32
+
+
+pattern KEY_Armenian_JE = 16778571 :: Int32
+
+
+pattern KEY_Armenian_INI = 16778555 :: Int32
+
+
+pattern KEY_Armenian_HO = 16778560 :: Int32
+
+
+pattern KEY_Armenian_HI = 16778565 :: Int32
+
+
+pattern KEY_Armenian_GIM = 16778547 :: Int32
+
+
+pattern KEY_Armenian_GHAT = 16778562 :: Int32
+
+
+pattern KEY_Armenian_FE = 16778582 :: Int32
+
+
+pattern KEY_Armenian_E = 16778551 :: Int32
+
+
+pattern KEY_Armenian_DZA = 16778561 :: Int32
+
+
+pattern KEY_Armenian_DA = 16778548 :: Int32
+
+
+pattern KEY_Armenian_CHA = 16778569 :: Int32
+
+
+pattern KEY_Armenian_BEN = 16778546 :: Int32
+
+
+pattern KEY_Armenian_AYB = 16778545 :: Int32
+
+
+pattern KEY_Armenian_AT = 16778552 :: Int32
+
+
+pattern KEY_Aring = 197 :: Int32
+
+
+pattern KEY_Arabic_zain = 1490 :: Int32
+
+
+pattern KEY_Arabic_zah = 1496 :: Int32
+
+
+pattern KEY_Arabic_yeh_baree = 16778962 :: Int32
+
+
+pattern KEY_Arabic_yeh = 1514 :: Int32
+
+
+pattern KEY_Arabic_waw = 1512 :: Int32
+
+
+pattern KEY_Arabic_veh = 16778916 :: Int32
+
+
+pattern KEY_Arabic_tteh = 16778873 :: Int32
+
+
+pattern KEY_Arabic_theh = 1483 :: Int32
+
+
+pattern KEY_Arabic_thal = 1488 :: Int32
+
+
+pattern KEY_Arabic_tehmarbuta = 1481 :: Int32
+
+
+pattern KEY_Arabic_teh = 1482 :: Int32
+
+
+pattern KEY_Arabic_tcheh = 16778886 :: Int32
+
+
+pattern KEY_Arabic_tatweel = 1504 :: Int32
+
+
+pattern KEY_Arabic_tah = 1495 :: Int32
+
+
+pattern KEY_Arabic_switch = 65406 :: Int32
+
+
+pattern KEY_Arabic_superscript_alef = 16778864 :: Int32
+
+
+pattern KEY_Arabic_sukun = 1522 :: Int32
+
+
+pattern KEY_Arabic_sheen = 1492 :: Int32
+
+
+pattern KEY_Arabic_shadda = 1521 :: Int32
+
+
+pattern KEY_Arabic_semicolon = 1467 :: Int32
+
+
+pattern KEY_Arabic_seen = 1491 :: Int32
+
+
+pattern KEY_Arabic_sad = 1493 :: Int32
+
+
+pattern KEY_Arabic_rreh = 16778897 :: Int32
+
+
+pattern KEY_Arabic_ra = 1489 :: Int32
+
+
+pattern KEY_Arabic_question_mark = 1471 :: Int32
+
+
+pattern KEY_Arabic_qaf = 1506 :: Int32
+
+
+pattern KEY_Arabic_percent = 16778858 :: Int32
+
+
+pattern KEY_Arabic_peh = 16778878 :: Int32
+
+
+pattern KEY_Arabic_noon_ghunna = 16778938 :: Int32
+
+
+pattern KEY_Arabic_noon = 1510 :: Int32
+
+
+pattern KEY_Arabic_meem = 1509 :: Int32
+
+
+pattern KEY_Arabic_maddaonalef = 1474 :: Int32
+
+
+pattern KEY_Arabic_madda_above = 16778835 :: Int32
+
+
+pattern KEY_Arabic_lam = 1508 :: Int32
+
+
+pattern KEY_Arabic_khah = 1486 :: Int32
+
+
+pattern KEY_Arabic_keheh = 16778921 :: Int32
+
+
+pattern KEY_Arabic_kasratan = 1517 :: Int32
+
+
+pattern KEY_Arabic_kasra = 1520 :: Int32
+
+
+pattern KEY_Arabic_kaf = 1507 :: Int32
+
+
+pattern KEY_Arabic_jeh = 16778904 :: Int32
+
+
+pattern KEY_Arabic_jeem = 1484 :: Int32
+
+
+pattern KEY_Arabic_heh_goal = 16778945 :: Int32
+
+
+pattern KEY_Arabic_heh_doachashmee = 16778942 :: Int32
+
+
+pattern KEY_Arabic_heh = 1511 :: Int32
+
+
+pattern KEY_Arabic_hamzaunderalef = 1477 :: Int32
+
+
+pattern KEY_Arabic_hamzaonyeh = 1478 :: Int32
+
+
+pattern KEY_Arabic_hamzaonwaw = 1476 :: Int32
+
+
+pattern KEY_Arabic_hamzaonalef = 1475 :: Int32
+
+
+pattern KEY_Arabic_hamza_below = 16778837 :: Int32
+
+
+pattern KEY_Arabic_hamza_above = 16778836 :: Int32
+
+
+pattern KEY_Arabic_hamza = 1473 :: Int32
+
+
+pattern KEY_Arabic_hah = 1485 :: Int32
+
+
+pattern KEY_Arabic_ha = 1511 :: Int32
+
+
+pattern KEY_Arabic_ghain = 1498 :: Int32
+
+
+pattern KEY_Arabic_gaf = 16778927 :: Int32
+
+
+pattern KEY_Arabic_fullstop = 16778964 :: Int32
+
+
+pattern KEY_Arabic_feh = 1505 :: Int32
+
+
+pattern KEY_Arabic_fathatan = 1515 :: Int32
+
+
+pattern KEY_Arabic_fatha = 1518 :: Int32
+
+
+pattern KEY_Arabic_farsi_yeh = 16778956 :: Int32
+
+
+pattern KEY_Arabic_ddal = 16778888 :: Int32
+
+
+pattern KEY_Arabic_dammatan = 1516 :: Int32
+
+
+pattern KEY_Arabic_damma = 1519 :: Int32
+
+
+pattern KEY_Arabic_dal = 1487 :: Int32
+
+
+pattern KEY_Arabic_dad = 1494 :: Int32
+
+
+pattern KEY_Arabic_comma = 1452 :: Int32
+
+
+pattern KEY_Arabic_beh = 1480 :: Int32
+
+
+pattern KEY_Arabic_alefmaksura = 1513 :: Int32
+
+
+pattern KEY_Arabic_alef = 1479 :: Int32
+
+
+pattern KEY_Arabic_ain = 1497 :: Int32
+
+
+pattern KEY_Arabic_9 = 16778857 :: Int32
+
+
+pattern KEY_Arabic_8 = 16778856 :: Int32
+
+
+pattern KEY_Arabic_7 = 16778855 :: Int32
+
+
+pattern KEY_Arabic_6 = 16778854 :: Int32
+
+
+pattern KEY_Arabic_5 = 16778853 :: Int32
+
+
+pattern KEY_Arabic_4 = 16778852 :: Int32
+
+
+pattern KEY_Arabic_3 = 16778851 :: Int32
+
+
+pattern KEY_Arabic_2 = 16778850 :: Int32
+
+
+pattern KEY_Arabic_1 = 16778849 :: Int32
+
+
+pattern KEY_Arabic_0 = 16778848 :: Int32
+
+
+pattern KEY_ApplicationRight = 269025105 :: Int32
+
+
+pattern KEY_ApplicationLeft = 269025104 :: Int32
+
+
+pattern KEY_Aogonek = 417 :: Int32
+
+
+pattern KEY_Amacron = 960 :: Int32
+
+
+pattern KEY_Alt_R = 65514 :: Int32
+
+
+pattern KEY_Alt_L = 65513 :: Int32
+
+
+pattern KEY_Ahook = 16785058 :: Int32
+
+
+pattern KEY_Agrave = 192 :: Int32
+
+
+pattern KEY_Adiaeresis = 196 :: Int32
+
+
+pattern KEY_AddFavorite = 269025081 :: Int32
+
+
+pattern KEY_Acircumflextilde = 16785066 :: Int32
+
+
+pattern KEY_Acircumflexhook = 16785064 :: Int32
+
+
+pattern KEY_Acircumflexgrave = 16785062 :: Int32
+
+
+pattern KEY_Acircumflexbelowdot = 16785068 :: Int32
+
+
+pattern KEY_Acircumflexacute = 16785060 :: Int32
+
+
+pattern KEY_Acircumflex = 194 :: Int32
+
+
+pattern KEY_AccessX_Feedback_Enable = 65137 :: Int32
+
+
+pattern KEY_AccessX_Enable = 65136 :: Int32
+
+
+pattern KEY_Abrevetilde = 16785076 :: Int32
+
+
+pattern KEY_Abrevehook = 16785074 :: Int32
+
+
+pattern KEY_Abrevegrave = 16785072 :: Int32
+
+
+pattern KEY_Abrevebelowdot = 16785078 :: Int32
+
+
+pattern KEY_Abreveacute = 16785070 :: Int32
+
+
+pattern KEY_Abreve = 451 :: Int32
+
+
+pattern KEY_Abelowdot = 16785056 :: Int32
+
+
+pattern KEY_Aacute = 193 :: Int32
+
+
+pattern KEY_AE = 198 :: Int32
+
+
+pattern KEY_A = 65 :: Int32
+
+
+pattern KEY_9 = 57 :: Int32
+
+
+pattern KEY_8 = 56 :: Int32
+
+
+pattern KEY_7 = 55 :: Int32
+
+
+pattern KEY_6 = 54 :: Int32
+
+
+pattern KEY_5 = 53 :: Int32
+
+
+pattern KEY_4 = 52 :: Int32
+
+
+pattern KEY_3270_Test = 64781 :: Int32
+
+
+pattern KEY_3270_Setup = 64791 :: Int32
+
+
+pattern KEY_3270_Rule = 64788 :: Int32
+
+
+pattern KEY_3270_Right2 = 64771 :: Int32
+
+
+pattern KEY_3270_Reset = 64776 :: Int32
+
+
+pattern KEY_3270_Record = 64792 :: Int32
+
+
+pattern KEY_3270_Quit = 64777 :: Int32
+
+
+pattern KEY_3270_PrintScreen = 64797 :: Int32
+
+
+pattern KEY_3270_Play = 64790 :: Int32
+
+
+pattern KEY_3270_PA3 = 64780 :: Int32
+
+
+pattern KEY_3270_PA2 = 64779 :: Int32
+
+
+pattern KEY_3270_PA1 = 64778 :: Int32
+
+
+pattern KEY_3270_Left2 = 64772 :: Int32
+
+
+pattern KEY_3270_KeyClick = 64785 :: Int32
+
+
+pattern KEY_3270_Jump = 64786 :: Int32
+
+
+pattern KEY_3270_Ident = 64787 :: Int32
+
+
+pattern KEY_3270_FieldMark = 64770 :: Int32
+
+
+pattern KEY_3270_ExSelect = 64795 :: Int32
+
+
+pattern KEY_3270_EraseInput = 64775 :: Int32
+
+
+pattern KEY_3270_EraseEOF = 64774 :: Int32
+
+
+pattern KEY_3270_Enter = 64798 :: Int32
+
+
+pattern KEY_3270_Duplicate = 64769 :: Int32
+
+
+pattern KEY_3270_DeleteWord = 64794 :: Int32
+
+
+pattern KEY_3270_CursorSelect = 64796 :: Int32
+
+
+pattern KEY_3270_CursorBlink = 64783 :: Int32
+
+
+pattern KEY_3270_Copy = 64789 :: Int32
+
+
+pattern KEY_3270_ChangeScreen = 64793 :: Int32
+
+
+pattern KEY_3270_BackTab = 64773 :: Int32
+
+
+pattern KEY_3270_Attn = 64782 :: Int32
+
+
+pattern KEY_3270_AltCursor = 64784 :: Int32
+
+
+pattern KEY_3 = 51 :: Int32
+
+
+pattern KEY_2 = 50 :: Int32
+
+
+pattern KEY_1 = 49 :: Int32
+
+
+pattern KEY_0 = 48 :: Int32
+
+
+pattern EVENT_STOP = True :: Bool
+
+
+pattern EVENT_PROPAGATE = False :: Bool
+
+
+pattern CURRENT_TIME = 0 :: Int32
+
+
+pattern BUTTON_SECONDARY = 3 :: Int32
+
+
+pattern BUTTON_PRIMARY = 1 :: Int32
+
+
+pattern BUTTON_MIDDLE = 2 :: Int32
+
+
diff --git a/GI/Gdk/Enums.hs b/GI/Gdk/Enums.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Enums.hs
@@ -0,0 +1,1394 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Enums
+    ( 
+    catchGLError                            ,
+    handleGLError                           ,
+
+-- * Exported types
+    WindowWindowClass(..)                   ,
+    WindowTypeHint(..)                      ,
+    WindowType(..)                          ,
+    WindowEdge(..)                          ,
+    VisualType(..)                          ,
+    VisibilityState(..)                     ,
+    TouchpadGesturePhase(..)                ,
+    Status(..)                              ,
+    SettingAction(..)                       ,
+    ScrollDirection(..)                     ,
+    PropertyState(..)                       ,
+    PropMode(..)                            ,
+    OwnerChange(..)                         ,
+    NotifyType(..)                          ,
+    ModifierIntent(..)                      ,
+    InputSource(..)                         ,
+    InputMode(..)                           ,
+    Gravity(..)                             ,
+    GrabStatus(..)                          ,
+    GrabOwnership(..)                       ,
+    GLError(..)                             ,
+    FullscreenMode(..)                      ,
+    FilterReturn(..)                        ,
+    EventType(..)                           ,
+    DragProtocol(..)                        ,
+    DeviceType(..)                          ,
+    CursorType(..)                          ,
+    CrossingMode(..)                        ,
+    ByteOrder(..)                           ,
+    AxisUse(..)                             ,
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+
+
+
+-- Enum WindowWindowClass
+
+data WindowWindowClass = 
+      WindowWindowClassInputOutput
+    | WindowWindowClassInputOnly
+    | AnotherWindowWindowClass Int
+    deriving (Show, Eq)
+
+instance Enum WindowWindowClass where
+    fromEnum WindowWindowClassInputOutput = 0
+    fromEnum WindowWindowClassInputOnly = 1
+    fromEnum (AnotherWindowWindowClass k) = k
+
+    toEnum 0 = WindowWindowClassInputOutput
+    toEnum 1 = WindowWindowClassInputOnly
+    toEnum k = AnotherWindowWindowClass k
+
+foreign import ccall "gdk_window_window_class_get_type" c_gdk_window_window_class_get_type :: 
+    IO GType
+
+instance BoxedEnum WindowWindowClass where
+    boxedEnumType _ = c_gdk_window_window_class_get_type
+
+-- Enum WindowTypeHint
+
+data WindowTypeHint = 
+      WindowTypeHintNormal
+    | WindowTypeHintDialog
+    | WindowTypeHintMenu
+    | WindowTypeHintToolbar
+    | WindowTypeHintSplashscreen
+    | WindowTypeHintUtility
+    | WindowTypeHintDock
+    | WindowTypeHintDesktop
+    | WindowTypeHintDropdownMenu
+    | WindowTypeHintPopupMenu
+    | WindowTypeHintTooltip
+    | WindowTypeHintNotification
+    | WindowTypeHintCombo
+    | WindowTypeHintDnd
+    | AnotherWindowTypeHint Int
+    deriving (Show, Eq)
+
+instance Enum WindowTypeHint where
+    fromEnum WindowTypeHintNormal = 0
+    fromEnum WindowTypeHintDialog = 1
+    fromEnum WindowTypeHintMenu = 2
+    fromEnum WindowTypeHintToolbar = 3
+    fromEnum WindowTypeHintSplashscreen = 4
+    fromEnum WindowTypeHintUtility = 5
+    fromEnum WindowTypeHintDock = 6
+    fromEnum WindowTypeHintDesktop = 7
+    fromEnum WindowTypeHintDropdownMenu = 8
+    fromEnum WindowTypeHintPopupMenu = 9
+    fromEnum WindowTypeHintTooltip = 10
+    fromEnum WindowTypeHintNotification = 11
+    fromEnum WindowTypeHintCombo = 12
+    fromEnum WindowTypeHintDnd = 13
+    fromEnum (AnotherWindowTypeHint k) = k
+
+    toEnum 0 = WindowTypeHintNormal
+    toEnum 1 = WindowTypeHintDialog
+    toEnum 2 = WindowTypeHintMenu
+    toEnum 3 = WindowTypeHintToolbar
+    toEnum 4 = WindowTypeHintSplashscreen
+    toEnum 5 = WindowTypeHintUtility
+    toEnum 6 = WindowTypeHintDock
+    toEnum 7 = WindowTypeHintDesktop
+    toEnum 8 = WindowTypeHintDropdownMenu
+    toEnum 9 = WindowTypeHintPopupMenu
+    toEnum 10 = WindowTypeHintTooltip
+    toEnum 11 = WindowTypeHintNotification
+    toEnum 12 = WindowTypeHintCombo
+    toEnum 13 = WindowTypeHintDnd
+    toEnum k = AnotherWindowTypeHint k
+
+foreign import ccall "gdk_window_type_hint_get_type" c_gdk_window_type_hint_get_type :: 
+    IO GType
+
+instance BoxedEnum WindowTypeHint where
+    boxedEnumType _ = c_gdk_window_type_hint_get_type
+
+-- Enum WindowType
+
+data WindowType = 
+      WindowTypeRoot
+    | WindowTypeToplevel
+    | WindowTypeChild
+    | WindowTypeTemp
+    | WindowTypeForeign
+    | WindowTypeOffscreen
+    | WindowTypeSubsurface
+    | AnotherWindowType Int
+    deriving (Show, Eq)
+
+instance Enum WindowType where
+    fromEnum WindowTypeRoot = 0
+    fromEnum WindowTypeToplevel = 1
+    fromEnum WindowTypeChild = 2
+    fromEnum WindowTypeTemp = 3
+    fromEnum WindowTypeForeign = 4
+    fromEnum WindowTypeOffscreen = 5
+    fromEnum WindowTypeSubsurface = 6
+    fromEnum (AnotherWindowType k) = k
+
+    toEnum 0 = WindowTypeRoot
+    toEnum 1 = WindowTypeToplevel
+    toEnum 2 = WindowTypeChild
+    toEnum 3 = WindowTypeTemp
+    toEnum 4 = WindowTypeForeign
+    toEnum 5 = WindowTypeOffscreen
+    toEnum 6 = WindowTypeSubsurface
+    toEnum k = AnotherWindowType k
+
+foreign import ccall "gdk_window_type_get_type" c_gdk_window_type_get_type :: 
+    IO GType
+
+instance BoxedEnum WindowType where
+    boxedEnumType _ = c_gdk_window_type_get_type
+
+-- Enum WindowEdge
+
+data WindowEdge = 
+      WindowEdgeNorthWest
+    | WindowEdgeNorth
+    | WindowEdgeNorthEast
+    | WindowEdgeWest
+    | WindowEdgeEast
+    | WindowEdgeSouthWest
+    | WindowEdgeSouth
+    | WindowEdgeSouthEast
+    | AnotherWindowEdge Int
+    deriving (Show, Eq)
+
+instance Enum WindowEdge where
+    fromEnum WindowEdgeNorthWest = 0
+    fromEnum WindowEdgeNorth = 1
+    fromEnum WindowEdgeNorthEast = 2
+    fromEnum WindowEdgeWest = 3
+    fromEnum WindowEdgeEast = 4
+    fromEnum WindowEdgeSouthWest = 5
+    fromEnum WindowEdgeSouth = 6
+    fromEnum WindowEdgeSouthEast = 7
+    fromEnum (AnotherWindowEdge k) = k
+
+    toEnum 0 = WindowEdgeNorthWest
+    toEnum 1 = WindowEdgeNorth
+    toEnum 2 = WindowEdgeNorthEast
+    toEnum 3 = WindowEdgeWest
+    toEnum 4 = WindowEdgeEast
+    toEnum 5 = WindowEdgeSouthWest
+    toEnum 6 = WindowEdgeSouth
+    toEnum 7 = WindowEdgeSouthEast
+    toEnum k = AnotherWindowEdge k
+
+foreign import ccall "gdk_window_edge_get_type" c_gdk_window_edge_get_type :: 
+    IO GType
+
+instance BoxedEnum WindowEdge where
+    boxedEnumType _ = c_gdk_window_edge_get_type
+
+-- Enum VisualType
+
+data VisualType = 
+      VisualTypeStaticGray
+    | VisualTypeGrayscale
+    | VisualTypeStaticColor
+    | VisualTypePseudoColor
+    | VisualTypeTrueColor
+    | VisualTypeDirectColor
+    | AnotherVisualType Int
+    deriving (Show, Eq)
+
+instance Enum VisualType where
+    fromEnum VisualTypeStaticGray = 0
+    fromEnum VisualTypeGrayscale = 1
+    fromEnum VisualTypeStaticColor = 2
+    fromEnum VisualTypePseudoColor = 3
+    fromEnum VisualTypeTrueColor = 4
+    fromEnum VisualTypeDirectColor = 5
+    fromEnum (AnotherVisualType k) = k
+
+    toEnum 0 = VisualTypeStaticGray
+    toEnum 1 = VisualTypeGrayscale
+    toEnum 2 = VisualTypeStaticColor
+    toEnum 3 = VisualTypePseudoColor
+    toEnum 4 = VisualTypeTrueColor
+    toEnum 5 = VisualTypeDirectColor
+    toEnum k = AnotherVisualType k
+
+foreign import ccall "gdk_visual_type_get_type" c_gdk_visual_type_get_type :: 
+    IO GType
+
+instance BoxedEnum VisualType where
+    boxedEnumType _ = c_gdk_visual_type_get_type
+
+-- Enum VisibilityState
+
+data VisibilityState = 
+      VisibilityStateUnobscured
+    | VisibilityStatePartial
+    | VisibilityStateFullyObscured
+    | AnotherVisibilityState Int
+    deriving (Show, Eq)
+
+instance Enum VisibilityState where
+    fromEnum VisibilityStateUnobscured = 0
+    fromEnum VisibilityStatePartial = 1
+    fromEnum VisibilityStateFullyObscured = 2
+    fromEnum (AnotherVisibilityState k) = k
+
+    toEnum 0 = VisibilityStateUnobscured
+    toEnum 1 = VisibilityStatePartial
+    toEnum 2 = VisibilityStateFullyObscured
+    toEnum k = AnotherVisibilityState k
+
+foreign import ccall "gdk_visibility_state_get_type" c_gdk_visibility_state_get_type :: 
+    IO GType
+
+instance BoxedEnum VisibilityState where
+    boxedEnumType _ = c_gdk_visibility_state_get_type
+
+-- Enum TouchpadGesturePhase
+
+data TouchpadGesturePhase = 
+      TouchpadGesturePhaseBegin
+    | TouchpadGesturePhaseUpdate
+    | TouchpadGesturePhaseEnd
+    | TouchpadGesturePhaseCancel
+    | AnotherTouchpadGesturePhase Int
+    deriving (Show, Eq)
+
+instance Enum TouchpadGesturePhase where
+    fromEnum TouchpadGesturePhaseBegin = 0
+    fromEnum TouchpadGesturePhaseUpdate = 1
+    fromEnum TouchpadGesturePhaseEnd = 2
+    fromEnum TouchpadGesturePhaseCancel = 3
+    fromEnum (AnotherTouchpadGesturePhase k) = k
+
+    toEnum 0 = TouchpadGesturePhaseBegin
+    toEnum 1 = TouchpadGesturePhaseUpdate
+    toEnum 2 = TouchpadGesturePhaseEnd
+    toEnum 3 = TouchpadGesturePhaseCancel
+    toEnum k = AnotherTouchpadGesturePhase k
+
+foreign import ccall "gdk_touchpad_gesture_phase_get_type" c_gdk_touchpad_gesture_phase_get_type :: 
+    IO GType
+
+instance BoxedEnum TouchpadGesturePhase where
+    boxedEnumType _ = c_gdk_touchpad_gesture_phase_get_type
+
+-- Enum Status
+
+data Status = 
+      StatusOk
+    | StatusError
+    | StatusErrorParam
+    | StatusErrorFile
+    | StatusErrorMem
+    | AnotherStatus Int
+    deriving (Show, Eq)
+
+instance Enum Status where
+    fromEnum StatusOk = 0
+    fromEnum StatusError = -1
+    fromEnum StatusErrorParam = -2
+    fromEnum StatusErrorFile = -3
+    fromEnum StatusErrorMem = -4
+    fromEnum (AnotherStatus k) = k
+
+    toEnum -4 = StatusErrorMem
+    toEnum -3 = StatusErrorFile
+    toEnum -2 = StatusErrorParam
+    toEnum -1 = StatusError
+    toEnum 0 = StatusOk
+    toEnum k = AnotherStatus k
+
+foreign import ccall "gdk_status_get_type" c_gdk_status_get_type :: 
+    IO GType
+
+instance BoxedEnum Status where
+    boxedEnumType _ = c_gdk_status_get_type
+
+-- Enum SettingAction
+
+data SettingAction = 
+      SettingActionNew
+    | SettingActionChanged
+    | SettingActionDeleted
+    | AnotherSettingAction Int
+    deriving (Show, Eq)
+
+instance Enum SettingAction where
+    fromEnum SettingActionNew = 0
+    fromEnum SettingActionChanged = 1
+    fromEnum SettingActionDeleted = 2
+    fromEnum (AnotherSettingAction k) = k
+
+    toEnum 0 = SettingActionNew
+    toEnum 1 = SettingActionChanged
+    toEnum 2 = SettingActionDeleted
+    toEnum k = AnotherSettingAction k
+
+foreign import ccall "gdk_setting_action_get_type" c_gdk_setting_action_get_type :: 
+    IO GType
+
+instance BoxedEnum SettingAction where
+    boxedEnumType _ = c_gdk_setting_action_get_type
+
+-- Enum ScrollDirection
+
+data ScrollDirection = 
+      ScrollDirectionUp
+    | ScrollDirectionDown
+    | ScrollDirectionLeft
+    | ScrollDirectionRight
+    | ScrollDirectionSmooth
+    | AnotherScrollDirection Int
+    deriving (Show, Eq)
+
+instance Enum ScrollDirection where
+    fromEnum ScrollDirectionUp = 0
+    fromEnum ScrollDirectionDown = 1
+    fromEnum ScrollDirectionLeft = 2
+    fromEnum ScrollDirectionRight = 3
+    fromEnum ScrollDirectionSmooth = 4
+    fromEnum (AnotherScrollDirection k) = k
+
+    toEnum 0 = ScrollDirectionUp
+    toEnum 1 = ScrollDirectionDown
+    toEnum 2 = ScrollDirectionLeft
+    toEnum 3 = ScrollDirectionRight
+    toEnum 4 = ScrollDirectionSmooth
+    toEnum k = AnotherScrollDirection k
+
+foreign import ccall "gdk_scroll_direction_get_type" c_gdk_scroll_direction_get_type :: 
+    IO GType
+
+instance BoxedEnum ScrollDirection where
+    boxedEnumType _ = c_gdk_scroll_direction_get_type
+
+-- Enum PropertyState
+
+data PropertyState = 
+      PropertyStateNewValue
+    | PropertyStateDelete
+    | AnotherPropertyState Int
+    deriving (Show, Eq)
+
+instance Enum PropertyState where
+    fromEnum PropertyStateNewValue = 0
+    fromEnum PropertyStateDelete = 1
+    fromEnum (AnotherPropertyState k) = k
+
+    toEnum 0 = PropertyStateNewValue
+    toEnum 1 = PropertyStateDelete
+    toEnum k = AnotherPropertyState k
+
+foreign import ccall "gdk_property_state_get_type" c_gdk_property_state_get_type :: 
+    IO GType
+
+instance BoxedEnum PropertyState where
+    boxedEnumType _ = c_gdk_property_state_get_type
+
+-- Enum PropMode
+
+data PropMode = 
+      PropModeReplace
+    | PropModePrepend
+    | PropModeAppend
+    | AnotherPropMode Int
+    deriving (Show, Eq)
+
+instance Enum PropMode where
+    fromEnum PropModeReplace = 0
+    fromEnum PropModePrepend = 1
+    fromEnum PropModeAppend = 2
+    fromEnum (AnotherPropMode k) = k
+
+    toEnum 0 = PropModeReplace
+    toEnum 1 = PropModePrepend
+    toEnum 2 = PropModeAppend
+    toEnum k = AnotherPropMode k
+
+foreign import ccall "gdk_prop_mode_get_type" c_gdk_prop_mode_get_type :: 
+    IO GType
+
+instance BoxedEnum PropMode where
+    boxedEnumType _ = c_gdk_prop_mode_get_type
+
+-- Enum OwnerChange
+
+data OwnerChange = 
+      OwnerChangeNewOwner
+    | OwnerChangeDestroy
+    | OwnerChangeClose
+    | AnotherOwnerChange Int
+    deriving (Show, Eq)
+
+instance Enum OwnerChange where
+    fromEnum OwnerChangeNewOwner = 0
+    fromEnum OwnerChangeDestroy = 1
+    fromEnum OwnerChangeClose = 2
+    fromEnum (AnotherOwnerChange k) = k
+
+    toEnum 0 = OwnerChangeNewOwner
+    toEnum 1 = OwnerChangeDestroy
+    toEnum 2 = OwnerChangeClose
+    toEnum k = AnotherOwnerChange k
+
+foreign import ccall "gdk_owner_change_get_type" c_gdk_owner_change_get_type :: 
+    IO GType
+
+instance BoxedEnum OwnerChange where
+    boxedEnumType _ = c_gdk_owner_change_get_type
+
+-- Enum NotifyType
+
+data NotifyType = 
+      NotifyTypeAncestor
+    | NotifyTypeVirtual
+    | NotifyTypeInferior
+    | NotifyTypeNonlinear
+    | NotifyTypeNonlinearVirtual
+    | NotifyTypeUnknown
+    | AnotherNotifyType Int
+    deriving (Show, Eq)
+
+instance Enum NotifyType where
+    fromEnum NotifyTypeAncestor = 0
+    fromEnum NotifyTypeVirtual = 1
+    fromEnum NotifyTypeInferior = 2
+    fromEnum NotifyTypeNonlinear = 3
+    fromEnum NotifyTypeNonlinearVirtual = 4
+    fromEnum NotifyTypeUnknown = 5
+    fromEnum (AnotherNotifyType k) = k
+
+    toEnum 0 = NotifyTypeAncestor
+    toEnum 1 = NotifyTypeVirtual
+    toEnum 2 = NotifyTypeInferior
+    toEnum 3 = NotifyTypeNonlinear
+    toEnum 4 = NotifyTypeNonlinearVirtual
+    toEnum 5 = NotifyTypeUnknown
+    toEnum k = AnotherNotifyType k
+
+foreign import ccall "gdk_notify_type_get_type" c_gdk_notify_type_get_type :: 
+    IO GType
+
+instance BoxedEnum NotifyType where
+    boxedEnumType _ = c_gdk_notify_type_get_type
+
+-- Enum ModifierIntent
+
+data ModifierIntent = 
+      ModifierIntentPrimaryAccelerator
+    | ModifierIntentContextMenu
+    | ModifierIntentExtendSelection
+    | ModifierIntentModifySelection
+    | ModifierIntentNoTextInput
+    | ModifierIntentShiftGroup
+    | ModifierIntentDefaultModMask
+    | AnotherModifierIntent Int
+    deriving (Show, Eq)
+
+instance Enum ModifierIntent where
+    fromEnum ModifierIntentPrimaryAccelerator = 0
+    fromEnum ModifierIntentContextMenu = 1
+    fromEnum ModifierIntentExtendSelection = 2
+    fromEnum ModifierIntentModifySelection = 3
+    fromEnum ModifierIntentNoTextInput = 4
+    fromEnum ModifierIntentShiftGroup = 5
+    fromEnum ModifierIntentDefaultModMask = 6
+    fromEnum (AnotherModifierIntent k) = k
+
+    toEnum 0 = ModifierIntentPrimaryAccelerator
+    toEnum 1 = ModifierIntentContextMenu
+    toEnum 2 = ModifierIntentExtendSelection
+    toEnum 3 = ModifierIntentModifySelection
+    toEnum 4 = ModifierIntentNoTextInput
+    toEnum 5 = ModifierIntentShiftGroup
+    toEnum 6 = ModifierIntentDefaultModMask
+    toEnum k = AnotherModifierIntent k
+
+foreign import ccall "gdk_modifier_intent_get_type" c_gdk_modifier_intent_get_type :: 
+    IO GType
+
+instance BoxedEnum ModifierIntent where
+    boxedEnumType _ = c_gdk_modifier_intent_get_type
+
+-- Enum InputSource
+
+data InputSource = 
+      InputSourceMouse
+    | InputSourcePen
+    | InputSourceEraser
+    | InputSourceCursor
+    | InputSourceKeyboard
+    | InputSourceTouchscreen
+    | InputSourceTouchpad
+    | AnotherInputSource Int
+    deriving (Show, Eq)
+
+instance Enum InputSource where
+    fromEnum InputSourceMouse = 0
+    fromEnum InputSourcePen = 1
+    fromEnum InputSourceEraser = 2
+    fromEnum InputSourceCursor = 3
+    fromEnum InputSourceKeyboard = 4
+    fromEnum InputSourceTouchscreen = 5
+    fromEnum InputSourceTouchpad = 6
+    fromEnum (AnotherInputSource k) = k
+
+    toEnum 0 = InputSourceMouse
+    toEnum 1 = InputSourcePen
+    toEnum 2 = InputSourceEraser
+    toEnum 3 = InputSourceCursor
+    toEnum 4 = InputSourceKeyboard
+    toEnum 5 = InputSourceTouchscreen
+    toEnum 6 = InputSourceTouchpad
+    toEnum k = AnotherInputSource k
+
+foreign import ccall "gdk_input_source_get_type" c_gdk_input_source_get_type :: 
+    IO GType
+
+instance BoxedEnum InputSource where
+    boxedEnumType _ = c_gdk_input_source_get_type
+
+-- Enum InputMode
+
+data InputMode = 
+      InputModeDisabled
+    | InputModeScreen
+    | InputModeWindow
+    | AnotherInputMode Int
+    deriving (Show, Eq)
+
+instance Enum InputMode where
+    fromEnum InputModeDisabled = 0
+    fromEnum InputModeScreen = 1
+    fromEnum InputModeWindow = 2
+    fromEnum (AnotherInputMode k) = k
+
+    toEnum 0 = InputModeDisabled
+    toEnum 1 = InputModeScreen
+    toEnum 2 = InputModeWindow
+    toEnum k = AnotherInputMode k
+
+foreign import ccall "gdk_input_mode_get_type" c_gdk_input_mode_get_type :: 
+    IO GType
+
+instance BoxedEnum InputMode where
+    boxedEnumType _ = c_gdk_input_mode_get_type
+
+-- Enum Gravity
+
+data Gravity = 
+      GravityNorthWest
+    | GravityNorth
+    | GravityNorthEast
+    | GravityWest
+    | GravityCenter
+    | GravityEast
+    | GravitySouthWest
+    | GravitySouth
+    | GravitySouthEast
+    | GravityStatic
+    | AnotherGravity Int
+    deriving (Show, Eq)
+
+instance Enum Gravity where
+    fromEnum GravityNorthWest = 1
+    fromEnum GravityNorth = 2
+    fromEnum GravityNorthEast = 3
+    fromEnum GravityWest = 4
+    fromEnum GravityCenter = 5
+    fromEnum GravityEast = 6
+    fromEnum GravitySouthWest = 7
+    fromEnum GravitySouth = 8
+    fromEnum GravitySouthEast = 9
+    fromEnum GravityStatic = 10
+    fromEnum (AnotherGravity k) = k
+
+    toEnum 1 = GravityNorthWest
+    toEnum 2 = GravityNorth
+    toEnum 3 = GravityNorthEast
+    toEnum 4 = GravityWest
+    toEnum 5 = GravityCenter
+    toEnum 6 = GravityEast
+    toEnum 7 = GravitySouthWest
+    toEnum 8 = GravitySouth
+    toEnum 9 = GravitySouthEast
+    toEnum 10 = GravityStatic
+    toEnum k = AnotherGravity k
+
+foreign import ccall "gdk_gravity_get_type" c_gdk_gravity_get_type :: 
+    IO GType
+
+instance BoxedEnum Gravity where
+    boxedEnumType _ = c_gdk_gravity_get_type
+
+-- Enum GrabStatus
+
+data GrabStatus = 
+      GrabStatusSuccess
+    | GrabStatusAlreadyGrabbed
+    | GrabStatusInvalidTime
+    | GrabStatusNotViewable
+    | GrabStatusFrozen
+    | GrabStatusFailed
+    | AnotherGrabStatus Int
+    deriving (Show, Eq)
+
+instance Enum GrabStatus where
+    fromEnum GrabStatusSuccess = 0
+    fromEnum GrabStatusAlreadyGrabbed = 1
+    fromEnum GrabStatusInvalidTime = 2
+    fromEnum GrabStatusNotViewable = 3
+    fromEnum GrabStatusFrozen = 4
+    fromEnum GrabStatusFailed = 5
+    fromEnum (AnotherGrabStatus k) = k
+
+    toEnum 0 = GrabStatusSuccess
+    toEnum 1 = GrabStatusAlreadyGrabbed
+    toEnum 2 = GrabStatusInvalidTime
+    toEnum 3 = GrabStatusNotViewable
+    toEnum 4 = GrabStatusFrozen
+    toEnum 5 = GrabStatusFailed
+    toEnum k = AnotherGrabStatus k
+
+foreign import ccall "gdk_grab_status_get_type" c_gdk_grab_status_get_type :: 
+    IO GType
+
+instance BoxedEnum GrabStatus where
+    boxedEnumType _ = c_gdk_grab_status_get_type
+
+-- Enum GrabOwnership
+
+data GrabOwnership = 
+      GrabOwnershipNone
+    | GrabOwnershipWindow
+    | GrabOwnershipApplication
+    | AnotherGrabOwnership Int
+    deriving (Show, Eq)
+
+instance Enum GrabOwnership where
+    fromEnum GrabOwnershipNone = 0
+    fromEnum GrabOwnershipWindow = 1
+    fromEnum GrabOwnershipApplication = 2
+    fromEnum (AnotherGrabOwnership k) = k
+
+    toEnum 0 = GrabOwnershipNone
+    toEnum 1 = GrabOwnershipWindow
+    toEnum 2 = GrabOwnershipApplication
+    toEnum k = AnotherGrabOwnership k
+
+foreign import ccall "gdk_grab_ownership_get_type" c_gdk_grab_ownership_get_type :: 
+    IO GType
+
+instance BoxedEnum GrabOwnership where
+    boxedEnumType _ = c_gdk_grab_ownership_get_type
+
+-- Enum GLError
+
+data GLError = 
+      GLErrorNotAvailable
+    | GLErrorUnsupportedFormat
+    | GLErrorUnsupportedProfile
+    | AnotherGLError Int
+    deriving (Show, Eq)
+
+instance Enum GLError where
+    fromEnum GLErrorNotAvailable = 0
+    fromEnum GLErrorUnsupportedFormat = 1
+    fromEnum GLErrorUnsupportedProfile = 2
+    fromEnum (AnotherGLError k) = k
+
+    toEnum 0 = GLErrorNotAvailable
+    toEnum 1 = GLErrorUnsupportedFormat
+    toEnum 2 = GLErrorUnsupportedProfile
+    toEnum k = AnotherGLError k
+
+instance GErrorClass GLError where
+    gerrorClassDomain _ = "gdk-gl-error-quark"
+
+catchGLError ::
+    IO a ->
+    (GLError -> GErrorMessage -> IO a) ->
+    IO a
+catchGLError = catchGErrorJustDomain
+
+handleGLError ::
+    (GLError -> GErrorMessage -> IO a) ->
+    IO a ->
+    IO a
+handleGLError = handleGErrorJustDomain
+
+foreign import ccall "gdk_gl_error_get_type" c_gdk_gl_error_get_type :: 
+    IO GType
+
+instance BoxedEnum GLError where
+    boxedEnumType _ = c_gdk_gl_error_get_type
+
+-- Enum FullscreenMode
+
+data FullscreenMode = 
+      FullscreenModeCurrentMonitor
+    | FullscreenModeAllMonitors
+    | AnotherFullscreenMode Int
+    deriving (Show, Eq)
+
+instance Enum FullscreenMode where
+    fromEnum FullscreenModeCurrentMonitor = 0
+    fromEnum FullscreenModeAllMonitors = 1
+    fromEnum (AnotherFullscreenMode k) = k
+
+    toEnum 0 = FullscreenModeCurrentMonitor
+    toEnum 1 = FullscreenModeAllMonitors
+    toEnum k = AnotherFullscreenMode k
+
+foreign import ccall "gdk_fullscreen_mode_get_type" c_gdk_fullscreen_mode_get_type :: 
+    IO GType
+
+instance BoxedEnum FullscreenMode where
+    boxedEnumType _ = c_gdk_fullscreen_mode_get_type
+
+-- Enum FilterReturn
+
+data FilterReturn = 
+      FilterReturnContinue
+    | FilterReturnTranslate
+    | FilterReturnRemove
+    | AnotherFilterReturn Int
+    deriving (Show, Eq)
+
+instance Enum FilterReturn where
+    fromEnum FilterReturnContinue = 0
+    fromEnum FilterReturnTranslate = 1
+    fromEnum FilterReturnRemove = 2
+    fromEnum (AnotherFilterReturn k) = k
+
+    toEnum 0 = FilterReturnContinue
+    toEnum 1 = FilterReturnTranslate
+    toEnum 2 = FilterReturnRemove
+    toEnum k = AnotherFilterReturn k
+
+foreign import ccall "gdk_filter_return_get_type" c_gdk_filter_return_get_type :: 
+    IO GType
+
+instance BoxedEnum FilterReturn where
+    boxedEnumType _ = c_gdk_filter_return_get_type
+
+-- Enum EventType
+
+data EventType = 
+      EventTypeNothing
+    | EventTypeDelete
+    | EventTypeDestroy
+    | EventTypeExpose
+    | EventTypeMotionNotify
+    | EventTypeButtonPress
+    | EventType2buttonPress
+    | EventTypeDoubleButtonPress
+    | EventType3buttonPress
+    | EventTypeTripleButtonPress
+    | EventTypeButtonRelease
+    | EventTypeKeyPress
+    | EventTypeKeyRelease
+    | EventTypeEnterNotify
+    | EventTypeLeaveNotify
+    | EventTypeFocusChange
+    | EventTypeConfigure
+    | EventTypeMap
+    | EventTypeUnmap
+    | EventTypePropertyNotify
+    | EventTypeSelectionClear
+    | EventTypeSelectionRequest
+    | EventTypeSelectionNotify
+    | EventTypeProximityIn
+    | EventTypeProximityOut
+    | EventTypeDragEnter
+    | EventTypeDragLeave
+    | EventTypeDragMotion
+    | EventTypeDragStatus
+    | EventTypeDropStart
+    | EventTypeDropFinished
+    | EventTypeClientEvent
+    | EventTypeVisibilityNotify
+    | EventTypeScroll
+    | EventTypeWindowState
+    | EventTypeSetting
+    | EventTypeOwnerChange
+    | EventTypeGrabBroken
+    | EventTypeDamage
+    | EventTypeTouchBegin
+    | EventTypeTouchUpdate
+    | EventTypeTouchEnd
+    | EventTypeTouchCancel
+    | EventTypeTouchpadSwipe
+    | EventTypeTouchpadPinch
+    | EventTypeEventLast
+    | AnotherEventType Int
+    deriving (Show, Eq)
+
+instance Enum EventType where
+    fromEnum EventTypeNothing = -1
+    fromEnum EventTypeDelete = 0
+    fromEnum EventTypeDestroy = 1
+    fromEnum EventTypeExpose = 2
+    fromEnum EventTypeMotionNotify = 3
+    fromEnum EventTypeButtonPress = 4
+    fromEnum EventType2buttonPress = 5
+    fromEnum EventTypeDoubleButtonPress = 5
+    fromEnum EventType3buttonPress = 6
+    fromEnum EventTypeTripleButtonPress = 6
+    fromEnum EventTypeButtonRelease = 7
+    fromEnum EventTypeKeyPress = 8
+    fromEnum EventTypeKeyRelease = 9
+    fromEnum EventTypeEnterNotify = 10
+    fromEnum EventTypeLeaveNotify = 11
+    fromEnum EventTypeFocusChange = 12
+    fromEnum EventTypeConfigure = 13
+    fromEnum EventTypeMap = 14
+    fromEnum EventTypeUnmap = 15
+    fromEnum EventTypePropertyNotify = 16
+    fromEnum EventTypeSelectionClear = 17
+    fromEnum EventTypeSelectionRequest = 18
+    fromEnum EventTypeSelectionNotify = 19
+    fromEnum EventTypeProximityIn = 20
+    fromEnum EventTypeProximityOut = 21
+    fromEnum EventTypeDragEnter = 22
+    fromEnum EventTypeDragLeave = 23
+    fromEnum EventTypeDragMotion = 24
+    fromEnum EventTypeDragStatus = 25
+    fromEnum EventTypeDropStart = 26
+    fromEnum EventTypeDropFinished = 27
+    fromEnum EventTypeClientEvent = 28
+    fromEnum EventTypeVisibilityNotify = 29
+    fromEnum EventTypeScroll = 31
+    fromEnum EventTypeWindowState = 32
+    fromEnum EventTypeSetting = 33
+    fromEnum EventTypeOwnerChange = 34
+    fromEnum EventTypeGrabBroken = 35
+    fromEnum EventTypeDamage = 36
+    fromEnum EventTypeTouchBegin = 37
+    fromEnum EventTypeTouchUpdate = 38
+    fromEnum EventTypeTouchEnd = 39
+    fromEnum EventTypeTouchCancel = 40
+    fromEnum EventTypeTouchpadSwipe = 41
+    fromEnum EventTypeTouchpadPinch = 42
+    fromEnum EventTypeEventLast = 43
+    fromEnum (AnotherEventType k) = k
+
+    toEnum -1 = EventTypeNothing
+    toEnum 0 = EventTypeDelete
+    toEnum 1 = EventTypeDestroy
+    toEnum 2 = EventTypeExpose
+    toEnum 3 = EventTypeMotionNotify
+    toEnum 4 = EventTypeButtonPress
+    toEnum 5 = EventType2buttonPress
+    toEnum 6 = EventType3buttonPress
+    toEnum 7 = EventTypeButtonRelease
+    toEnum 8 = EventTypeKeyPress
+    toEnum 9 = EventTypeKeyRelease
+    toEnum 10 = EventTypeEnterNotify
+    toEnum 11 = EventTypeLeaveNotify
+    toEnum 12 = EventTypeFocusChange
+    toEnum 13 = EventTypeConfigure
+    toEnum 14 = EventTypeMap
+    toEnum 15 = EventTypeUnmap
+    toEnum 16 = EventTypePropertyNotify
+    toEnum 17 = EventTypeSelectionClear
+    toEnum 18 = EventTypeSelectionRequest
+    toEnum 19 = EventTypeSelectionNotify
+    toEnum 20 = EventTypeProximityIn
+    toEnum 21 = EventTypeProximityOut
+    toEnum 22 = EventTypeDragEnter
+    toEnum 23 = EventTypeDragLeave
+    toEnum 24 = EventTypeDragMotion
+    toEnum 25 = EventTypeDragStatus
+    toEnum 26 = EventTypeDropStart
+    toEnum 27 = EventTypeDropFinished
+    toEnum 28 = EventTypeClientEvent
+    toEnum 29 = EventTypeVisibilityNotify
+    toEnum 31 = EventTypeScroll
+    toEnum 32 = EventTypeWindowState
+    toEnum 33 = EventTypeSetting
+    toEnum 34 = EventTypeOwnerChange
+    toEnum 35 = EventTypeGrabBroken
+    toEnum 36 = EventTypeDamage
+    toEnum 37 = EventTypeTouchBegin
+    toEnum 38 = EventTypeTouchUpdate
+    toEnum 39 = EventTypeTouchEnd
+    toEnum 40 = EventTypeTouchCancel
+    toEnum 41 = EventTypeTouchpadSwipe
+    toEnum 42 = EventTypeTouchpadPinch
+    toEnum 43 = EventTypeEventLast
+    toEnum k = AnotherEventType k
+
+foreign import ccall "gdk_event_type_get_type" c_gdk_event_type_get_type :: 
+    IO GType
+
+instance BoxedEnum EventType where
+    boxedEnumType _ = c_gdk_event_type_get_type
+
+-- Enum DragProtocol
+
+data DragProtocol = 
+      DragProtocolNone
+    | DragProtocolMotif
+    | DragProtocolXdnd
+    | DragProtocolRootwin
+    | DragProtocolWin32Dropfiles
+    | DragProtocolOle2
+    | DragProtocolLocal
+    | DragProtocolWayland
+    | AnotherDragProtocol Int
+    deriving (Show, Eq)
+
+instance Enum DragProtocol where
+    fromEnum DragProtocolNone = 0
+    fromEnum DragProtocolMotif = 1
+    fromEnum DragProtocolXdnd = 2
+    fromEnum DragProtocolRootwin = 3
+    fromEnum DragProtocolWin32Dropfiles = 4
+    fromEnum DragProtocolOle2 = 5
+    fromEnum DragProtocolLocal = 6
+    fromEnum DragProtocolWayland = 7
+    fromEnum (AnotherDragProtocol k) = k
+
+    toEnum 0 = DragProtocolNone
+    toEnum 1 = DragProtocolMotif
+    toEnum 2 = DragProtocolXdnd
+    toEnum 3 = DragProtocolRootwin
+    toEnum 4 = DragProtocolWin32Dropfiles
+    toEnum 5 = DragProtocolOle2
+    toEnum 6 = DragProtocolLocal
+    toEnum 7 = DragProtocolWayland
+    toEnum k = AnotherDragProtocol k
+
+foreign import ccall "gdk_drag_protocol_get_type" c_gdk_drag_protocol_get_type :: 
+    IO GType
+
+instance BoxedEnum DragProtocol where
+    boxedEnumType _ = c_gdk_drag_protocol_get_type
+
+-- Enum DeviceType
+
+data DeviceType = 
+      DeviceTypeMaster
+    | DeviceTypeSlave
+    | DeviceTypeFloating
+    | AnotherDeviceType Int
+    deriving (Show, Eq)
+
+instance Enum DeviceType where
+    fromEnum DeviceTypeMaster = 0
+    fromEnum DeviceTypeSlave = 1
+    fromEnum DeviceTypeFloating = 2
+    fromEnum (AnotherDeviceType k) = k
+
+    toEnum 0 = DeviceTypeMaster
+    toEnum 1 = DeviceTypeSlave
+    toEnum 2 = DeviceTypeFloating
+    toEnum k = AnotherDeviceType k
+
+foreign import ccall "gdk_device_type_get_type" c_gdk_device_type_get_type :: 
+    IO GType
+
+instance BoxedEnum DeviceType where
+    boxedEnumType _ = c_gdk_device_type_get_type
+
+-- Enum CursorType
+
+data CursorType = 
+      CursorTypeXCursor
+    | CursorTypeArrow
+    | CursorTypeBasedArrowDown
+    | CursorTypeBasedArrowUp
+    | CursorTypeBoat
+    | CursorTypeBogosity
+    | CursorTypeBottomLeftCorner
+    | CursorTypeBottomRightCorner
+    | CursorTypeBottomSide
+    | CursorTypeBottomTee
+    | CursorTypeBoxSpiral
+    | CursorTypeCenterPtr
+    | CursorTypeCircle
+    | CursorTypeClock
+    | CursorTypeCoffeeMug
+    | CursorTypeCross
+    | CursorTypeCrossReverse
+    | CursorTypeCrosshair
+    | CursorTypeDiamondCross
+    | CursorTypeDot
+    | CursorTypeDotbox
+    | CursorTypeDoubleArrow
+    | CursorTypeDraftLarge
+    | CursorTypeDraftSmall
+    | CursorTypeDrapedBox
+    | CursorTypeExchange
+    | CursorTypeFleur
+    | CursorTypeGobbler
+    | CursorTypeGumby
+    | CursorTypeHand1
+    | CursorTypeHand2
+    | CursorTypeHeart
+    | CursorTypeIcon
+    | CursorTypeIronCross
+    | CursorTypeLeftPtr
+    | CursorTypeLeftSide
+    | CursorTypeLeftTee
+    | CursorTypeLeftbutton
+    | CursorTypeLlAngle
+    | CursorTypeLrAngle
+    | CursorTypeMan
+    | CursorTypeMiddlebutton
+    | CursorTypeMouse
+    | CursorTypePencil
+    | CursorTypePirate
+    | CursorTypePlus
+    | CursorTypeQuestionArrow
+    | CursorTypeRightPtr
+    | CursorTypeRightSide
+    | CursorTypeRightTee
+    | CursorTypeRightbutton
+    | CursorTypeRtlLogo
+    | CursorTypeSailboat
+    | CursorTypeSbDownArrow
+    | CursorTypeSbHDoubleArrow
+    | CursorTypeSbLeftArrow
+    | CursorTypeSbRightArrow
+    | CursorTypeSbUpArrow
+    | CursorTypeSbVDoubleArrow
+    | CursorTypeShuttle
+    | CursorTypeSizing
+    | CursorTypeSpider
+    | CursorTypeSpraycan
+    | CursorTypeStar
+    | CursorTypeTarget
+    | CursorTypeTcross
+    | CursorTypeTopLeftArrow
+    | CursorTypeTopLeftCorner
+    | CursorTypeTopRightCorner
+    | CursorTypeTopSide
+    | CursorTypeTopTee
+    | CursorTypeTrek
+    | CursorTypeUlAngle
+    | CursorTypeUmbrella
+    | CursorTypeUrAngle
+    | CursorTypeWatch
+    | CursorTypeXterm
+    | CursorTypeLastCursor
+    | CursorTypeBlankCursor
+    | CursorTypeCursorIsPixmap
+    | AnotherCursorType Int
+    deriving (Show, Eq)
+
+instance Enum CursorType where
+    fromEnum CursorTypeXCursor = 0
+    fromEnum CursorTypeArrow = 2
+    fromEnum CursorTypeBasedArrowDown = 4
+    fromEnum CursorTypeBasedArrowUp = 6
+    fromEnum CursorTypeBoat = 8
+    fromEnum CursorTypeBogosity = 10
+    fromEnum CursorTypeBottomLeftCorner = 12
+    fromEnum CursorTypeBottomRightCorner = 14
+    fromEnum CursorTypeBottomSide = 16
+    fromEnum CursorTypeBottomTee = 18
+    fromEnum CursorTypeBoxSpiral = 20
+    fromEnum CursorTypeCenterPtr = 22
+    fromEnum CursorTypeCircle = 24
+    fromEnum CursorTypeClock = 26
+    fromEnum CursorTypeCoffeeMug = 28
+    fromEnum CursorTypeCross = 30
+    fromEnum CursorTypeCrossReverse = 32
+    fromEnum CursorTypeCrosshair = 34
+    fromEnum CursorTypeDiamondCross = 36
+    fromEnum CursorTypeDot = 38
+    fromEnum CursorTypeDotbox = 40
+    fromEnum CursorTypeDoubleArrow = 42
+    fromEnum CursorTypeDraftLarge = 44
+    fromEnum CursorTypeDraftSmall = 46
+    fromEnum CursorTypeDrapedBox = 48
+    fromEnum CursorTypeExchange = 50
+    fromEnum CursorTypeFleur = 52
+    fromEnum CursorTypeGobbler = 54
+    fromEnum CursorTypeGumby = 56
+    fromEnum CursorTypeHand1 = 58
+    fromEnum CursorTypeHand2 = 60
+    fromEnum CursorTypeHeart = 62
+    fromEnum CursorTypeIcon = 64
+    fromEnum CursorTypeIronCross = 66
+    fromEnum CursorTypeLeftPtr = 68
+    fromEnum CursorTypeLeftSide = 70
+    fromEnum CursorTypeLeftTee = 72
+    fromEnum CursorTypeLeftbutton = 74
+    fromEnum CursorTypeLlAngle = 76
+    fromEnum CursorTypeLrAngle = 78
+    fromEnum CursorTypeMan = 80
+    fromEnum CursorTypeMiddlebutton = 82
+    fromEnum CursorTypeMouse = 84
+    fromEnum CursorTypePencil = 86
+    fromEnum CursorTypePirate = 88
+    fromEnum CursorTypePlus = 90
+    fromEnum CursorTypeQuestionArrow = 92
+    fromEnum CursorTypeRightPtr = 94
+    fromEnum CursorTypeRightSide = 96
+    fromEnum CursorTypeRightTee = 98
+    fromEnum CursorTypeRightbutton = 100
+    fromEnum CursorTypeRtlLogo = 102
+    fromEnum CursorTypeSailboat = 104
+    fromEnum CursorTypeSbDownArrow = 106
+    fromEnum CursorTypeSbHDoubleArrow = 108
+    fromEnum CursorTypeSbLeftArrow = 110
+    fromEnum CursorTypeSbRightArrow = 112
+    fromEnum CursorTypeSbUpArrow = 114
+    fromEnum CursorTypeSbVDoubleArrow = 116
+    fromEnum CursorTypeShuttle = 118
+    fromEnum CursorTypeSizing = 120
+    fromEnum CursorTypeSpider = 122
+    fromEnum CursorTypeSpraycan = 124
+    fromEnum CursorTypeStar = 126
+    fromEnum CursorTypeTarget = 128
+    fromEnum CursorTypeTcross = 130
+    fromEnum CursorTypeTopLeftArrow = 132
+    fromEnum CursorTypeTopLeftCorner = 134
+    fromEnum CursorTypeTopRightCorner = 136
+    fromEnum CursorTypeTopSide = 138
+    fromEnum CursorTypeTopTee = 140
+    fromEnum CursorTypeTrek = 142
+    fromEnum CursorTypeUlAngle = 144
+    fromEnum CursorTypeUmbrella = 146
+    fromEnum CursorTypeUrAngle = 148
+    fromEnum CursorTypeWatch = 150
+    fromEnum CursorTypeXterm = 152
+    fromEnum CursorTypeLastCursor = 153
+    fromEnum CursorTypeBlankCursor = -2
+    fromEnum CursorTypeCursorIsPixmap = -1
+    fromEnum (AnotherCursorType k) = k
+
+    toEnum -2 = CursorTypeBlankCursor
+    toEnum -1 = CursorTypeCursorIsPixmap
+    toEnum 0 = CursorTypeXCursor
+    toEnum 2 = CursorTypeArrow
+    toEnum 4 = CursorTypeBasedArrowDown
+    toEnum 6 = CursorTypeBasedArrowUp
+    toEnum 8 = CursorTypeBoat
+    toEnum 10 = CursorTypeBogosity
+    toEnum 12 = CursorTypeBottomLeftCorner
+    toEnum 14 = CursorTypeBottomRightCorner
+    toEnum 16 = CursorTypeBottomSide
+    toEnum 18 = CursorTypeBottomTee
+    toEnum 20 = CursorTypeBoxSpiral
+    toEnum 22 = CursorTypeCenterPtr
+    toEnum 24 = CursorTypeCircle
+    toEnum 26 = CursorTypeClock
+    toEnum 28 = CursorTypeCoffeeMug
+    toEnum 30 = CursorTypeCross
+    toEnum 32 = CursorTypeCrossReverse
+    toEnum 34 = CursorTypeCrosshair
+    toEnum 36 = CursorTypeDiamondCross
+    toEnum 38 = CursorTypeDot
+    toEnum 40 = CursorTypeDotbox
+    toEnum 42 = CursorTypeDoubleArrow
+    toEnum 44 = CursorTypeDraftLarge
+    toEnum 46 = CursorTypeDraftSmall
+    toEnum 48 = CursorTypeDrapedBox
+    toEnum 50 = CursorTypeExchange
+    toEnum 52 = CursorTypeFleur
+    toEnum 54 = CursorTypeGobbler
+    toEnum 56 = CursorTypeGumby
+    toEnum 58 = CursorTypeHand1
+    toEnum 60 = CursorTypeHand2
+    toEnum 62 = CursorTypeHeart
+    toEnum 64 = CursorTypeIcon
+    toEnum 66 = CursorTypeIronCross
+    toEnum 68 = CursorTypeLeftPtr
+    toEnum 70 = CursorTypeLeftSide
+    toEnum 72 = CursorTypeLeftTee
+    toEnum 74 = CursorTypeLeftbutton
+    toEnum 76 = CursorTypeLlAngle
+    toEnum 78 = CursorTypeLrAngle
+    toEnum 80 = CursorTypeMan
+    toEnum 82 = CursorTypeMiddlebutton
+    toEnum 84 = CursorTypeMouse
+    toEnum 86 = CursorTypePencil
+    toEnum 88 = CursorTypePirate
+    toEnum 90 = CursorTypePlus
+    toEnum 92 = CursorTypeQuestionArrow
+    toEnum 94 = CursorTypeRightPtr
+    toEnum 96 = CursorTypeRightSide
+    toEnum 98 = CursorTypeRightTee
+    toEnum 100 = CursorTypeRightbutton
+    toEnum 102 = CursorTypeRtlLogo
+    toEnum 104 = CursorTypeSailboat
+    toEnum 106 = CursorTypeSbDownArrow
+    toEnum 108 = CursorTypeSbHDoubleArrow
+    toEnum 110 = CursorTypeSbLeftArrow
+    toEnum 112 = CursorTypeSbRightArrow
+    toEnum 114 = CursorTypeSbUpArrow
+    toEnum 116 = CursorTypeSbVDoubleArrow
+    toEnum 118 = CursorTypeShuttle
+    toEnum 120 = CursorTypeSizing
+    toEnum 122 = CursorTypeSpider
+    toEnum 124 = CursorTypeSpraycan
+    toEnum 126 = CursorTypeStar
+    toEnum 128 = CursorTypeTarget
+    toEnum 130 = CursorTypeTcross
+    toEnum 132 = CursorTypeTopLeftArrow
+    toEnum 134 = CursorTypeTopLeftCorner
+    toEnum 136 = CursorTypeTopRightCorner
+    toEnum 138 = CursorTypeTopSide
+    toEnum 140 = CursorTypeTopTee
+    toEnum 142 = CursorTypeTrek
+    toEnum 144 = CursorTypeUlAngle
+    toEnum 146 = CursorTypeUmbrella
+    toEnum 148 = CursorTypeUrAngle
+    toEnum 150 = CursorTypeWatch
+    toEnum 152 = CursorTypeXterm
+    toEnum 153 = CursorTypeLastCursor
+    toEnum k = AnotherCursorType k
+
+foreign import ccall "gdk_cursor_type_get_type" c_gdk_cursor_type_get_type :: 
+    IO GType
+
+instance BoxedEnum CursorType where
+    boxedEnumType _ = c_gdk_cursor_type_get_type
+
+-- Enum CrossingMode
+
+data CrossingMode = 
+      CrossingModeNormal
+    | CrossingModeGrab
+    | CrossingModeUngrab
+    | CrossingModeGtkGrab
+    | CrossingModeGtkUngrab
+    | CrossingModeStateChanged
+    | CrossingModeTouchBegin
+    | CrossingModeTouchEnd
+    | CrossingModeDeviceSwitch
+    | AnotherCrossingMode Int
+    deriving (Show, Eq)
+
+instance Enum CrossingMode where
+    fromEnum CrossingModeNormal = 0
+    fromEnum CrossingModeGrab = 1
+    fromEnum CrossingModeUngrab = 2
+    fromEnum CrossingModeGtkGrab = 3
+    fromEnum CrossingModeGtkUngrab = 4
+    fromEnum CrossingModeStateChanged = 5
+    fromEnum CrossingModeTouchBegin = 6
+    fromEnum CrossingModeTouchEnd = 7
+    fromEnum CrossingModeDeviceSwitch = 8
+    fromEnum (AnotherCrossingMode k) = k
+
+    toEnum 0 = CrossingModeNormal
+    toEnum 1 = CrossingModeGrab
+    toEnum 2 = CrossingModeUngrab
+    toEnum 3 = CrossingModeGtkGrab
+    toEnum 4 = CrossingModeGtkUngrab
+    toEnum 5 = CrossingModeStateChanged
+    toEnum 6 = CrossingModeTouchBegin
+    toEnum 7 = CrossingModeTouchEnd
+    toEnum 8 = CrossingModeDeviceSwitch
+    toEnum k = AnotherCrossingMode k
+
+foreign import ccall "gdk_crossing_mode_get_type" c_gdk_crossing_mode_get_type :: 
+    IO GType
+
+instance BoxedEnum CrossingMode where
+    boxedEnumType _ = c_gdk_crossing_mode_get_type
+
+-- Enum ByteOrder
+
+data ByteOrder = 
+      ByteOrderLsbFirst
+    | ByteOrderMsbFirst
+    | AnotherByteOrder Int
+    deriving (Show, Eq)
+
+instance Enum ByteOrder where
+    fromEnum ByteOrderLsbFirst = 0
+    fromEnum ByteOrderMsbFirst = 1
+    fromEnum (AnotherByteOrder k) = k
+
+    toEnum 0 = ByteOrderLsbFirst
+    toEnum 1 = ByteOrderMsbFirst
+    toEnum k = AnotherByteOrder k
+
+foreign import ccall "gdk_byte_order_get_type" c_gdk_byte_order_get_type :: 
+    IO GType
+
+instance BoxedEnum ByteOrder where
+    boxedEnumType _ = c_gdk_byte_order_get_type
+
+-- Enum AxisUse
+
+data AxisUse = 
+      AxisUseIgnore
+    | AxisUseX
+    | AxisUseY
+    | AxisUsePressure
+    | AxisUseXtilt
+    | AxisUseYtilt
+    | AxisUseWheel
+    | AxisUseLast
+    | AnotherAxisUse Int
+    deriving (Show, Eq)
+
+instance Enum AxisUse where
+    fromEnum AxisUseIgnore = 0
+    fromEnum AxisUseX = 1
+    fromEnum AxisUseY = 2
+    fromEnum AxisUsePressure = 3
+    fromEnum AxisUseXtilt = 4
+    fromEnum AxisUseYtilt = 5
+    fromEnum AxisUseWheel = 6
+    fromEnum AxisUseLast = 7
+    fromEnum (AnotherAxisUse k) = k
+
+    toEnum 0 = AxisUseIgnore
+    toEnum 1 = AxisUseX
+    toEnum 2 = AxisUseY
+    toEnum 3 = AxisUsePressure
+    toEnum 4 = AxisUseXtilt
+    toEnum 5 = AxisUseYtilt
+    toEnum 6 = AxisUseWheel
+    toEnum 7 = AxisUseLast
+    toEnum k = AnotherAxisUse k
+
+foreign import ccall "gdk_axis_use_get_type" c_gdk_axis_use_get_type :: 
+    IO GType
+
+instance BoxedEnum AxisUse where
+    boxedEnumType _ = c_gdk_axis_use_get_type
+
+
diff --git a/GI/Gdk/Flags.hs b/GI/Gdk/Flags.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Flags.hs
@@ -0,0 +1,536 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Flags
+    ( 
+
+-- * Exported types
+    WindowState(..)                         ,
+    WindowHints(..)                         ,
+    WindowAttributesType(..)                ,
+    WMFunction(..)                          ,
+    WMDecoration(..)                        ,
+    ModifierType(..)                        ,
+    FrameClockPhase(..)                     ,
+    EventMask(..)                           ,
+    DragAction(..)                          ,
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+
+
+
+-- Flags WindowState
+
+data WindowState = 
+      WindowStateWithdrawn
+    | WindowStateIconified
+    | WindowStateMaximized
+    | WindowStateSticky
+    | WindowStateFullscreen
+    | WindowStateAbove
+    | WindowStateBelow
+    | WindowStateFocused
+    | WindowStateTiled
+    | AnotherWindowState Int
+    deriving (Show, Eq)
+
+instance Enum WindowState where
+    fromEnum WindowStateWithdrawn = 1
+    fromEnum WindowStateIconified = 2
+    fromEnum WindowStateMaximized = 4
+    fromEnum WindowStateSticky = 8
+    fromEnum WindowStateFullscreen = 16
+    fromEnum WindowStateAbove = 32
+    fromEnum WindowStateBelow = 64
+    fromEnum WindowStateFocused = 128
+    fromEnum WindowStateTiled = 256
+    fromEnum (AnotherWindowState k) = k
+
+    toEnum 1 = WindowStateWithdrawn
+    toEnum 2 = WindowStateIconified
+    toEnum 4 = WindowStateMaximized
+    toEnum 8 = WindowStateSticky
+    toEnum 16 = WindowStateFullscreen
+    toEnum 32 = WindowStateAbove
+    toEnum 64 = WindowStateBelow
+    toEnum 128 = WindowStateFocused
+    toEnum 256 = WindowStateTiled
+    toEnum k = AnotherWindowState k
+
+foreign import ccall "gdk_window_state_get_type" c_gdk_window_state_get_type :: 
+    IO GType
+
+instance BoxedEnum WindowState where
+    boxedEnumType _ = c_gdk_window_state_get_type
+
+instance IsGFlag WindowState
+
+-- Flags WindowHints
+
+data WindowHints = 
+      WindowHintsPos
+    | WindowHintsMinSize
+    | WindowHintsMaxSize
+    | WindowHintsBaseSize
+    | WindowHintsAspect
+    | WindowHintsResizeInc
+    | WindowHintsWinGravity
+    | WindowHintsUserPos
+    | WindowHintsUserSize
+    | AnotherWindowHints Int
+    deriving (Show, Eq)
+
+instance Enum WindowHints where
+    fromEnum WindowHintsPos = 1
+    fromEnum WindowHintsMinSize = 2
+    fromEnum WindowHintsMaxSize = 4
+    fromEnum WindowHintsBaseSize = 8
+    fromEnum WindowHintsAspect = 16
+    fromEnum WindowHintsResizeInc = 32
+    fromEnum WindowHintsWinGravity = 64
+    fromEnum WindowHintsUserPos = 128
+    fromEnum WindowHintsUserSize = 256
+    fromEnum (AnotherWindowHints k) = k
+
+    toEnum 1 = WindowHintsPos
+    toEnum 2 = WindowHintsMinSize
+    toEnum 4 = WindowHintsMaxSize
+    toEnum 8 = WindowHintsBaseSize
+    toEnum 16 = WindowHintsAspect
+    toEnum 32 = WindowHintsResizeInc
+    toEnum 64 = WindowHintsWinGravity
+    toEnum 128 = WindowHintsUserPos
+    toEnum 256 = WindowHintsUserSize
+    toEnum k = AnotherWindowHints k
+
+foreign import ccall "gdk_window_hints_get_type" c_gdk_window_hints_get_type :: 
+    IO GType
+
+instance BoxedEnum WindowHints where
+    boxedEnumType _ = c_gdk_window_hints_get_type
+
+instance IsGFlag WindowHints
+
+-- Flags WindowAttributesType
+
+data WindowAttributesType = 
+      WindowAttributesTypeTitle
+    | WindowAttributesTypeX
+    | WindowAttributesTypeY
+    | WindowAttributesTypeCursor
+    | WindowAttributesTypeVisual
+    | WindowAttributesTypeWmclass
+    | WindowAttributesTypeNoredir
+    | WindowAttributesTypeTypeHint
+    | AnotherWindowAttributesType Int
+    deriving (Show, Eq)
+
+instance Enum WindowAttributesType where
+    fromEnum WindowAttributesTypeTitle = 2
+    fromEnum WindowAttributesTypeX = 4
+    fromEnum WindowAttributesTypeY = 8
+    fromEnum WindowAttributesTypeCursor = 16
+    fromEnum WindowAttributesTypeVisual = 32
+    fromEnum WindowAttributesTypeWmclass = 64
+    fromEnum WindowAttributesTypeNoredir = 128
+    fromEnum WindowAttributesTypeTypeHint = 256
+    fromEnum (AnotherWindowAttributesType k) = k
+
+    toEnum 2 = WindowAttributesTypeTitle
+    toEnum 4 = WindowAttributesTypeX
+    toEnum 8 = WindowAttributesTypeY
+    toEnum 16 = WindowAttributesTypeCursor
+    toEnum 32 = WindowAttributesTypeVisual
+    toEnum 64 = WindowAttributesTypeWmclass
+    toEnum 128 = WindowAttributesTypeNoredir
+    toEnum 256 = WindowAttributesTypeTypeHint
+    toEnum k = AnotherWindowAttributesType k
+
+foreign import ccall "gdk_window_attributes_type_get_type" c_gdk_window_attributes_type_get_type :: 
+    IO GType
+
+instance BoxedEnum WindowAttributesType where
+    boxedEnumType _ = c_gdk_window_attributes_type_get_type
+
+instance IsGFlag WindowAttributesType
+
+-- Flags WMFunction
+
+data WMFunction = 
+      WMFunctionAll
+    | WMFunctionResize
+    | WMFunctionMove
+    | WMFunctionMinimize
+    | WMFunctionMaximize
+    | WMFunctionClose
+    | AnotherWMFunction Int
+    deriving (Show, Eq)
+
+instance Enum WMFunction where
+    fromEnum WMFunctionAll = 1
+    fromEnum WMFunctionResize = 2
+    fromEnum WMFunctionMove = 4
+    fromEnum WMFunctionMinimize = 8
+    fromEnum WMFunctionMaximize = 16
+    fromEnum WMFunctionClose = 32
+    fromEnum (AnotherWMFunction k) = k
+
+    toEnum 1 = WMFunctionAll
+    toEnum 2 = WMFunctionResize
+    toEnum 4 = WMFunctionMove
+    toEnum 8 = WMFunctionMinimize
+    toEnum 16 = WMFunctionMaximize
+    toEnum 32 = WMFunctionClose
+    toEnum k = AnotherWMFunction k
+
+foreign import ccall "gdk_wm_function_get_type" c_gdk_wm_function_get_type :: 
+    IO GType
+
+instance BoxedEnum WMFunction where
+    boxedEnumType _ = c_gdk_wm_function_get_type
+
+instance IsGFlag WMFunction
+
+-- Flags WMDecoration
+
+data WMDecoration = 
+      WMDecorationAll
+    | WMDecorationBorder
+    | WMDecorationResizeh
+    | WMDecorationTitle
+    | WMDecorationMenu
+    | WMDecorationMinimize
+    | WMDecorationMaximize
+    | AnotherWMDecoration Int
+    deriving (Show, Eq)
+
+instance Enum WMDecoration where
+    fromEnum WMDecorationAll = 1
+    fromEnum WMDecorationBorder = 2
+    fromEnum WMDecorationResizeh = 4
+    fromEnum WMDecorationTitle = 8
+    fromEnum WMDecorationMenu = 16
+    fromEnum WMDecorationMinimize = 32
+    fromEnum WMDecorationMaximize = 64
+    fromEnum (AnotherWMDecoration k) = k
+
+    toEnum 1 = WMDecorationAll
+    toEnum 2 = WMDecorationBorder
+    toEnum 4 = WMDecorationResizeh
+    toEnum 8 = WMDecorationTitle
+    toEnum 16 = WMDecorationMenu
+    toEnum 32 = WMDecorationMinimize
+    toEnum 64 = WMDecorationMaximize
+    toEnum k = AnotherWMDecoration k
+
+foreign import ccall "gdk_wm_decoration_get_type" c_gdk_wm_decoration_get_type :: 
+    IO GType
+
+instance BoxedEnum WMDecoration where
+    boxedEnumType _ = c_gdk_wm_decoration_get_type
+
+instance IsGFlag WMDecoration
+
+-- Flags ModifierType
+
+data ModifierType = 
+      ModifierTypeShiftMask
+    | ModifierTypeLockMask
+    | ModifierTypeControlMask
+    | ModifierTypeMod1Mask
+    | ModifierTypeMod2Mask
+    | ModifierTypeMod3Mask
+    | ModifierTypeMod4Mask
+    | ModifierTypeMod5Mask
+    | ModifierTypeButton1Mask
+    | ModifierTypeButton2Mask
+    | ModifierTypeButton3Mask
+    | ModifierTypeButton4Mask
+    | ModifierTypeButton5Mask
+    | ModifierTypeModifierReserved13Mask
+    | ModifierTypeModifierReserved14Mask
+    | ModifierTypeModifierReserved15Mask
+    | ModifierTypeModifierReserved16Mask
+    | ModifierTypeModifierReserved17Mask
+    | ModifierTypeModifierReserved18Mask
+    | ModifierTypeModifierReserved19Mask
+    | ModifierTypeModifierReserved20Mask
+    | ModifierTypeModifierReserved21Mask
+    | ModifierTypeModifierReserved22Mask
+    | ModifierTypeModifierReserved23Mask
+    | ModifierTypeModifierReserved24Mask
+    | ModifierTypeModifierReserved25Mask
+    | ModifierTypeSuperMask
+    | ModifierTypeHyperMask
+    | ModifierTypeMetaMask
+    | ModifierTypeModifierReserved29Mask
+    | ModifierTypeReleaseMask
+    | ModifierTypeModifierMask
+    | AnotherModifierType Int
+    deriving (Show, Eq)
+
+instance Enum ModifierType where
+    fromEnum ModifierTypeShiftMask = 1
+    fromEnum ModifierTypeLockMask = 2
+    fromEnum ModifierTypeControlMask = 4
+    fromEnum ModifierTypeMod1Mask = 8
+    fromEnum ModifierTypeMod2Mask = 16
+    fromEnum ModifierTypeMod3Mask = 32
+    fromEnum ModifierTypeMod4Mask = 64
+    fromEnum ModifierTypeMod5Mask = 128
+    fromEnum ModifierTypeButton1Mask = 256
+    fromEnum ModifierTypeButton2Mask = 512
+    fromEnum ModifierTypeButton3Mask = 1024
+    fromEnum ModifierTypeButton4Mask = 2048
+    fromEnum ModifierTypeButton5Mask = 4096
+    fromEnum ModifierTypeModifierReserved13Mask = 8192
+    fromEnum ModifierTypeModifierReserved14Mask = 16384
+    fromEnum ModifierTypeModifierReserved15Mask = 32768
+    fromEnum ModifierTypeModifierReserved16Mask = 65536
+    fromEnum ModifierTypeModifierReserved17Mask = 131072
+    fromEnum ModifierTypeModifierReserved18Mask = 262144
+    fromEnum ModifierTypeModifierReserved19Mask = 524288
+    fromEnum ModifierTypeModifierReserved20Mask = 1048576
+    fromEnum ModifierTypeModifierReserved21Mask = 2097152
+    fromEnum ModifierTypeModifierReserved22Mask = 4194304
+    fromEnum ModifierTypeModifierReserved23Mask = 8388608
+    fromEnum ModifierTypeModifierReserved24Mask = 16777216
+    fromEnum ModifierTypeModifierReserved25Mask = 33554432
+    fromEnum ModifierTypeSuperMask = 67108864
+    fromEnum ModifierTypeHyperMask = 134217728
+    fromEnum ModifierTypeMetaMask = 268435456
+    fromEnum ModifierTypeModifierReserved29Mask = 536870912
+    fromEnum ModifierTypeReleaseMask = 1073741824
+    fromEnum ModifierTypeModifierMask = 1543512063
+    fromEnum (AnotherModifierType k) = k
+
+    toEnum 1 = ModifierTypeShiftMask
+    toEnum 2 = ModifierTypeLockMask
+    toEnum 4 = ModifierTypeControlMask
+    toEnum 8 = ModifierTypeMod1Mask
+    toEnum 16 = ModifierTypeMod2Mask
+    toEnum 32 = ModifierTypeMod3Mask
+    toEnum 64 = ModifierTypeMod4Mask
+    toEnum 128 = ModifierTypeMod5Mask
+    toEnum 256 = ModifierTypeButton1Mask
+    toEnum 512 = ModifierTypeButton2Mask
+    toEnum 1024 = ModifierTypeButton3Mask
+    toEnum 2048 = ModifierTypeButton4Mask
+    toEnum 4096 = ModifierTypeButton5Mask
+    toEnum 8192 = ModifierTypeModifierReserved13Mask
+    toEnum 16384 = ModifierTypeModifierReserved14Mask
+    toEnum 32768 = ModifierTypeModifierReserved15Mask
+    toEnum 65536 = ModifierTypeModifierReserved16Mask
+    toEnum 131072 = ModifierTypeModifierReserved17Mask
+    toEnum 262144 = ModifierTypeModifierReserved18Mask
+    toEnum 524288 = ModifierTypeModifierReserved19Mask
+    toEnum 1048576 = ModifierTypeModifierReserved20Mask
+    toEnum 2097152 = ModifierTypeModifierReserved21Mask
+    toEnum 4194304 = ModifierTypeModifierReserved22Mask
+    toEnum 8388608 = ModifierTypeModifierReserved23Mask
+    toEnum 16777216 = ModifierTypeModifierReserved24Mask
+    toEnum 33554432 = ModifierTypeModifierReserved25Mask
+    toEnum 67108864 = ModifierTypeSuperMask
+    toEnum 134217728 = ModifierTypeHyperMask
+    toEnum 268435456 = ModifierTypeMetaMask
+    toEnum 536870912 = ModifierTypeModifierReserved29Mask
+    toEnum 1073741824 = ModifierTypeReleaseMask
+    toEnum 1543512063 = ModifierTypeModifierMask
+    toEnum k = AnotherModifierType k
+
+foreign import ccall "gdk_modifier_type_get_type" c_gdk_modifier_type_get_type :: 
+    IO GType
+
+instance BoxedEnum ModifierType where
+    boxedEnumType _ = c_gdk_modifier_type_get_type
+
+instance IsGFlag ModifierType
+
+-- Flags FrameClockPhase
+
+data FrameClockPhase = 
+      FrameClockPhaseNone
+    | FrameClockPhaseFlushEvents
+    | FrameClockPhaseBeforePaint
+    | FrameClockPhaseUpdate
+    | FrameClockPhaseLayout
+    | FrameClockPhasePaint
+    | FrameClockPhaseResumeEvents
+    | FrameClockPhaseAfterPaint
+    | AnotherFrameClockPhase Int
+    deriving (Show, Eq)
+
+instance Enum FrameClockPhase where
+    fromEnum FrameClockPhaseNone = 0
+    fromEnum FrameClockPhaseFlushEvents = 1
+    fromEnum FrameClockPhaseBeforePaint = 2
+    fromEnum FrameClockPhaseUpdate = 4
+    fromEnum FrameClockPhaseLayout = 8
+    fromEnum FrameClockPhasePaint = 16
+    fromEnum FrameClockPhaseResumeEvents = 32
+    fromEnum FrameClockPhaseAfterPaint = 64
+    fromEnum (AnotherFrameClockPhase k) = k
+
+    toEnum 0 = FrameClockPhaseNone
+    toEnum 1 = FrameClockPhaseFlushEvents
+    toEnum 2 = FrameClockPhaseBeforePaint
+    toEnum 4 = FrameClockPhaseUpdate
+    toEnum 8 = FrameClockPhaseLayout
+    toEnum 16 = FrameClockPhasePaint
+    toEnum 32 = FrameClockPhaseResumeEvents
+    toEnum 64 = FrameClockPhaseAfterPaint
+    toEnum k = AnotherFrameClockPhase k
+
+foreign import ccall "gdk_frame_clock_phase_get_type" c_gdk_frame_clock_phase_get_type :: 
+    IO GType
+
+instance BoxedEnum FrameClockPhase where
+    boxedEnumType _ = c_gdk_frame_clock_phase_get_type
+
+instance IsGFlag FrameClockPhase
+
+-- Flags EventMask
+
+data EventMask = 
+      EventMaskExposureMask
+    | EventMaskPointerMotionMask
+    | EventMaskPointerMotionHintMask
+    | EventMaskButtonMotionMask
+    | EventMaskButton1MotionMask
+    | EventMaskButton2MotionMask
+    | EventMaskButton3MotionMask
+    | EventMaskButtonPressMask
+    | EventMaskButtonReleaseMask
+    | EventMaskKeyPressMask
+    | EventMaskKeyReleaseMask
+    | EventMaskEnterNotifyMask
+    | EventMaskLeaveNotifyMask
+    | EventMaskFocusChangeMask
+    | EventMaskStructureMask
+    | EventMaskPropertyChangeMask
+    | EventMaskVisibilityNotifyMask
+    | EventMaskProximityInMask
+    | EventMaskProximityOutMask
+    | EventMaskSubstructureMask
+    | EventMaskScrollMask
+    | EventMaskTouchMask
+    | EventMaskSmoothScrollMask
+    | EventMaskTouchpadGestureMask
+    | EventMaskAllEventsMask
+    | AnotherEventMask Int
+    deriving (Show, Eq)
+
+instance Enum EventMask where
+    fromEnum EventMaskExposureMask = 2
+    fromEnum EventMaskPointerMotionMask = 4
+    fromEnum EventMaskPointerMotionHintMask = 8
+    fromEnum EventMaskButtonMotionMask = 16
+    fromEnum EventMaskButton1MotionMask = 32
+    fromEnum EventMaskButton2MotionMask = 64
+    fromEnum EventMaskButton3MotionMask = 128
+    fromEnum EventMaskButtonPressMask = 256
+    fromEnum EventMaskButtonReleaseMask = 512
+    fromEnum EventMaskKeyPressMask = 1024
+    fromEnum EventMaskKeyReleaseMask = 2048
+    fromEnum EventMaskEnterNotifyMask = 4096
+    fromEnum EventMaskLeaveNotifyMask = 8192
+    fromEnum EventMaskFocusChangeMask = 16384
+    fromEnum EventMaskStructureMask = 32768
+    fromEnum EventMaskPropertyChangeMask = 65536
+    fromEnum EventMaskVisibilityNotifyMask = 131072
+    fromEnum EventMaskProximityInMask = 262144
+    fromEnum EventMaskProximityOutMask = 524288
+    fromEnum EventMaskSubstructureMask = 1048576
+    fromEnum EventMaskScrollMask = 2097152
+    fromEnum EventMaskTouchMask = 4194304
+    fromEnum EventMaskSmoothScrollMask = 8388608
+    fromEnum EventMaskTouchpadGestureMask = 16777216
+    fromEnum EventMaskAllEventsMask = 16777214
+    fromEnum (AnotherEventMask k) = k
+
+    toEnum 2 = EventMaskExposureMask
+    toEnum 4 = EventMaskPointerMotionMask
+    toEnum 8 = EventMaskPointerMotionHintMask
+    toEnum 16 = EventMaskButtonMotionMask
+    toEnum 32 = EventMaskButton1MotionMask
+    toEnum 64 = EventMaskButton2MotionMask
+    toEnum 128 = EventMaskButton3MotionMask
+    toEnum 256 = EventMaskButtonPressMask
+    toEnum 512 = EventMaskButtonReleaseMask
+    toEnum 1024 = EventMaskKeyPressMask
+    toEnum 2048 = EventMaskKeyReleaseMask
+    toEnum 4096 = EventMaskEnterNotifyMask
+    toEnum 8192 = EventMaskLeaveNotifyMask
+    toEnum 16384 = EventMaskFocusChangeMask
+    toEnum 32768 = EventMaskStructureMask
+    toEnum 65536 = EventMaskPropertyChangeMask
+    toEnum 131072 = EventMaskVisibilityNotifyMask
+    toEnum 262144 = EventMaskProximityInMask
+    toEnum 524288 = EventMaskProximityOutMask
+    toEnum 1048576 = EventMaskSubstructureMask
+    toEnum 2097152 = EventMaskScrollMask
+    toEnum 4194304 = EventMaskTouchMask
+    toEnum 8388608 = EventMaskSmoothScrollMask
+    toEnum 16777214 = EventMaskAllEventsMask
+    toEnum 16777216 = EventMaskTouchpadGestureMask
+    toEnum k = AnotherEventMask k
+
+foreign import ccall "gdk_event_mask_get_type" c_gdk_event_mask_get_type :: 
+    IO GType
+
+instance BoxedEnum EventMask where
+    boxedEnumType _ = c_gdk_event_mask_get_type
+
+instance IsGFlag EventMask
+
+-- Flags DragAction
+
+data DragAction = 
+      DragActionDefault
+    | DragActionCopy
+    | DragActionMove
+    | DragActionLink
+    | DragActionPrivate
+    | DragActionAsk
+    | AnotherDragAction Int
+    deriving (Show, Eq)
+
+instance Enum DragAction where
+    fromEnum DragActionDefault = 1
+    fromEnum DragActionCopy = 2
+    fromEnum DragActionMove = 4
+    fromEnum DragActionLink = 8
+    fromEnum DragActionPrivate = 16
+    fromEnum DragActionAsk = 32
+    fromEnum (AnotherDragAction k) = k
+
+    toEnum 1 = DragActionDefault
+    toEnum 2 = DragActionCopy
+    toEnum 4 = DragActionMove
+    toEnum 8 = DragActionLink
+    toEnum 16 = DragActionPrivate
+    toEnum 32 = DragActionAsk
+    toEnum k = AnotherDragAction k
+
+foreign import ccall "gdk_drag_action_get_type" c_gdk_drag_action_get_type :: 
+    IO GType
+
+instance BoxedEnum DragAction where
+    boxedEnumType _ = c_gdk_drag_action_get_type
+
+instance IsGFlag DragAction
+
+
diff --git a/GI/Gdk/Functions.hs b/GI/Gdk/Functions.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Functions.hs
@@ -0,0 +1,3323 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Functions
+    ( 
+
+ -- * Methods
+-- ** addOptionEntriesLibgtkOnly
+    addOptionEntriesLibgtkOnly              ,
+
+
+-- ** atomIntern
+    atomIntern                              ,
+
+
+-- ** atomInternStaticString
+    atomInternStaticString                  ,
+
+
+-- ** beep
+    beep                                    ,
+
+
+-- ** cairoCreate
+    cairoCreate                             ,
+
+
+-- ** cairoDrawFromGl
+    cairoDrawFromGl                         ,
+
+
+-- ** cairoGetClipRectangle
+    cairoGetClipRectangle                   ,
+
+
+-- ** cairoRectangle
+    cairoRectangle                          ,
+
+
+-- ** cairoRegion
+    cairoRegion                             ,
+
+
+-- ** cairoRegionCreateFromSurface
+    cairoRegionCreateFromSurface            ,
+
+
+-- ** cairoSetSourceColor
+    cairoSetSourceColor                     ,
+
+
+-- ** cairoSetSourcePixbuf
+    cairoSetSourcePixbuf                    ,
+
+
+-- ** cairoSetSourceRgba
+    cairoSetSourceRgba                      ,
+
+
+-- ** cairoSetSourceWindow
+    cairoSetSourceWindow                    ,
+
+
+-- ** cairoSurfaceCreateFromPixbuf
+    cairoSurfaceCreateFromPixbuf            ,
+
+
+-- ** colorParse
+    colorParse                              ,
+
+
+-- ** disableMultidevice
+    disableMultidevice                      ,
+
+
+-- ** dragAbort
+    dragAbort                               ,
+
+
+-- ** dragBegin
+    dragBegin                               ,
+
+
+-- ** dragBeginForDevice
+    dragBeginForDevice                      ,
+
+
+-- ** dragDrop
+    dragDrop                                ,
+
+
+-- ** dragDropSucceeded
+    dragDropSucceeded                       ,
+
+
+-- ** dragFindWindowForScreen
+    dragFindWindowForScreen                 ,
+
+
+-- ** dragGetSelection
+    dragGetSelection                        ,
+
+
+-- ** dragMotion
+    dragMotion                              ,
+
+
+-- ** dragStatus
+    dragStatus                              ,
+
+
+-- ** dropFinish
+    dropFinish                              ,
+
+
+-- ** dropReply
+    dropReply                               ,
+
+
+-- ** errorTrapPop
+    errorTrapPop                            ,
+
+
+-- ** errorTrapPopIgnored
+    errorTrapPopIgnored                     ,
+
+
+-- ** errorTrapPush
+    errorTrapPush                           ,
+
+
+-- ** eventGet
+    eventGet                                ,
+
+
+-- ** eventHandlerSet
+    eventHandlerSet                         ,
+
+
+-- ** eventPeek
+    eventPeek                               ,
+
+
+-- ** eventRequestMotions
+    eventRequestMotions                     ,
+
+
+-- ** eventsGetAngle
+    eventsGetAngle                          ,
+
+
+-- ** eventsGetCenter
+    eventsGetCenter                         ,
+
+
+-- ** eventsGetDistance
+    eventsGetDistance                       ,
+
+
+-- ** eventsPending
+    eventsPending                           ,
+
+
+-- ** flush
+    flush                                   ,
+
+
+-- ** getDefaultRootWindow
+    getDefaultRootWindow                    ,
+
+
+-- ** getDisplay
+    getDisplay                              ,
+
+
+-- ** getDisplayArgName
+    getDisplayArgName                       ,
+
+
+-- ** getProgramClass
+    getProgramClass                         ,
+
+
+-- ** getShowEvents
+    getShowEvents                           ,
+
+
+-- ** glErrorQuark
+    glErrorQuark                            ,
+
+
+-- ** init
+    init                                    ,
+
+
+-- ** initCheck
+    initCheck                               ,
+
+
+-- ** keyboardGrab
+    keyboardGrab                            ,
+
+
+-- ** keyboardUngrab
+    keyboardUngrab                          ,
+
+
+-- ** keyvalConvertCase
+    keyvalConvertCase                       ,
+
+
+-- ** keyvalFromName
+    keyvalFromName                          ,
+
+
+-- ** keyvalIsLower
+    keyvalIsLower                           ,
+
+
+-- ** keyvalIsUpper
+    keyvalIsUpper                           ,
+
+
+-- ** keyvalName
+    keyvalName                              ,
+
+
+-- ** keyvalToLower
+    keyvalToLower                           ,
+
+
+-- ** keyvalToUnicode
+    keyvalToUnicode                         ,
+
+
+-- ** keyvalToUpper
+    keyvalToUpper                           ,
+
+
+-- ** listVisuals
+    listVisuals                             ,
+
+
+-- ** notifyStartupComplete
+    notifyStartupComplete                   ,
+
+
+-- ** notifyStartupCompleteWithId
+    notifyStartupCompleteWithId             ,
+
+
+-- ** offscreenWindowGetEmbedder
+    offscreenWindowGetEmbedder              ,
+
+
+-- ** offscreenWindowGetSurface
+    offscreenWindowGetSurface               ,
+
+
+-- ** offscreenWindowSetEmbedder
+    offscreenWindowSetEmbedder              ,
+
+
+-- ** pangoContextGet
+    pangoContextGet                         ,
+
+
+-- ** pangoContextGetForScreen
+    pangoContextGetForScreen                ,
+
+
+-- ** parseArgs
+    parseArgs                               ,
+
+
+-- ** pixbufGetFromSurface
+    pixbufGetFromSurface                    ,
+
+
+-- ** pixbufGetFromWindow
+    pixbufGetFromWindow                     ,
+
+
+-- ** pointerGrab
+    pointerGrab                             ,
+
+
+-- ** pointerIsGrabbed
+    pointerIsGrabbed                        ,
+
+
+-- ** pointerUngrab
+    pointerUngrab                           ,
+
+
+-- ** preParseLibgtkOnly
+    preParseLibgtkOnly                      ,
+
+
+-- ** propertyDelete
+    propertyDelete                          ,
+
+
+-- ** propertyGet
+    propertyGet                             ,
+
+
+-- ** queryDepths
+    queryDepths                             ,
+
+
+-- ** queryVisualTypes
+    queryVisualTypes                        ,
+
+
+-- ** selectionConvert
+    selectionConvert                        ,
+
+
+-- ** selectionOwnerGet
+    selectionOwnerGet                       ,
+
+
+-- ** selectionOwnerGetForDisplay
+    selectionOwnerGetForDisplay             ,
+
+
+-- ** selectionOwnerSet
+    selectionOwnerSet                       ,
+
+
+-- ** selectionOwnerSetForDisplay
+    selectionOwnerSetForDisplay             ,
+
+
+-- ** selectionSendNotify
+    selectionSendNotify                     ,
+
+
+-- ** selectionSendNotifyForDisplay
+    selectionSendNotifyForDisplay           ,
+
+
+-- ** setAllowedBackends
+    setAllowedBackends                      ,
+
+
+-- ** setDoubleClickTime
+    setDoubleClickTime                      ,
+
+
+-- ** setProgramClass
+    setProgramClass                         ,
+
+
+-- ** setShowEvents
+    setShowEvents                           ,
+
+
+-- ** settingGet
+    settingGet                              ,
+
+
+-- ** synthesizeWindowState
+    synthesizeWindowState                   ,
+
+
+-- ** testRenderSync
+    testRenderSync                          ,
+
+
+-- ** testSimulateButton
+    testSimulateButton                      ,
+
+
+-- ** testSimulateKey
+    testSimulateKey                         ,
+
+
+-- ** textPropertyToUtf8ListForDisplay
+    textPropertyToUtf8ListForDisplay        ,
+
+
+-- ** threadsAddIdle
+    threadsAddIdle                          ,
+
+
+-- ** threadsAddTimeout
+    threadsAddTimeout                       ,
+
+
+-- ** threadsAddTimeoutSeconds
+    threadsAddTimeoutSeconds                ,
+
+
+-- ** threadsEnter
+    threadsEnter                            ,
+
+
+-- ** threadsInit
+    threadsInit                             ,
+
+
+-- ** threadsLeave
+    threadsLeave                            ,
+
+
+-- ** unicodeToKeyval
+    unicodeToKeyval                         ,
+
+
+-- ** utf8ToStringTarget
+    utf8ToStringTarget                      ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.GLib as GLib
+import qualified GI.GdkPixbuf as GdkPixbuf
+import qualified GI.Pango as Pango
+import qualified GI.Cairo as Cairo
+
+-- function gdk_utf8_to_string_target
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_utf8_to_string_target" gdk_utf8_to_string_target :: 
+    CString ->                              -- str : TBasicType TUTF8
+    IO CString
+
+
+utf8ToStringTarget ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    m T.Text
+utf8ToStringTarget str = liftIO $ do
+    str' <- textToCString str
+    result <- gdk_utf8_to_string_target str'
+    checkUnexpectedReturnNULL "gdk_utf8_to_string_target" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function gdk_unicode_to_keyval
+-- Args : [Arg {argName = "wc", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "wc", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_unicode_to_keyval" gdk_unicode_to_keyval :: 
+    Word32 ->                               -- wc : TBasicType TUInt32
+    IO Word32
+
+
+unicodeToKeyval ::
+    (MonadIO m) =>
+    Word32 ->                               -- wc
+    m Word32
+unicodeToKeyval wc = liftIO $ do
+    result <- gdk_unicode_to_keyval wc
+    return result
+
+
+-- function gdk_threads_leave
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_threads_leave" gdk_threads_leave :: 
+    IO ()
+
+{-# DEPRECATED threadsLeave ["(Since version 3.6)","All GDK and GTK+ calls should be made from the main","    thread"]#-}
+threadsLeave ::
+    (MonadIO m) =>
+    m ()
+threadsLeave  = liftIO $ do
+    gdk_threads_leave
+    return ()
+
+
+-- function gdk_threads_init
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_threads_init" gdk_threads_init :: 
+    IO ()
+
+{-# DEPRECATED threadsInit ["(Since version 3.6)","All GDK and GTK+ calls should be made from the main","    thread"]#-}
+threadsInit ::
+    (MonadIO m) =>
+    m ()
+threadsInit  = liftIO $ do
+    gdk_threads_init
+    return ()
+
+
+-- function gdk_threads_enter
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_threads_enter" gdk_threads_enter :: 
+    IO ()
+
+{-# DEPRECATED threadsEnter ["(Since version 3.6)","All GDK and GTK+ calls should be made from the main","    thread"]#-}
+threadsEnter ::
+    (MonadIO m) =>
+    m ()
+threadsEnter  = liftIO $ do
+    gdk_threads_enter
+    return ()
+
+
+-- function gdk_threads_add_timeout_seconds_full
+-- Args : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_threads_add_timeout_seconds_full" gdk_threads_add_timeout_seconds_full :: 
+    Int32 ->                                -- priority : TBasicType TInt32
+    Word32 ->                               -- interval : TBasicType TUInt32
+    FunPtr GLib.SourceFuncC ->              -- function : TInterface "GLib" "SourceFunc"
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+threadsAddTimeoutSeconds ::
+    (MonadIO m) =>
+    Int32 ->                                -- priority
+    Word32 ->                               -- interval
+    GLib.SourceFunc ->                      -- function
+    m Word32
+threadsAddTimeoutSeconds priority interval function = liftIO $ do
+    function' <- GLib.mkSourceFunc (GLib.sourceFuncWrapper Nothing function)
+    let data_ = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- gdk_threads_add_timeout_seconds_full priority interval function' data_ notify
+    return result
+
+
+-- function gdk_threads_add_timeout_full
+-- Args : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_threads_add_timeout_full" gdk_threads_add_timeout_full :: 
+    Int32 ->                                -- priority : TBasicType TInt32
+    Word32 ->                               -- interval : TBasicType TUInt32
+    FunPtr GLib.SourceFuncC ->              -- function : TInterface "GLib" "SourceFunc"
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+threadsAddTimeout ::
+    (MonadIO m) =>
+    Int32 ->                                -- priority
+    Word32 ->                               -- interval
+    GLib.SourceFunc ->                      -- function
+    m Word32
+threadsAddTimeout priority interval function = liftIO $ do
+    function' <- GLib.mkSourceFunc (GLib.sourceFuncWrapper Nothing function)
+    let data_ = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- gdk_threads_add_timeout_full priority interval function' data_ notify
+    return result
+
+
+-- function gdk_threads_add_idle_full
+-- Args : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_threads_add_idle_full" gdk_threads_add_idle_full :: 
+    Int32 ->                                -- priority : TBasicType TInt32
+    FunPtr GLib.SourceFuncC ->              -- function : TInterface "GLib" "SourceFunc"
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+threadsAddIdle ::
+    (MonadIO m) =>
+    Int32 ->                                -- priority
+    GLib.SourceFunc ->                      -- function
+    m Word32
+threadsAddIdle priority function = liftIO $ do
+    function' <- GLib.mkSourceFunc (GLib.sourceFuncWrapper Nothing function)
+    let data_ = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- gdk_threads_add_idle_full priority function' data_ notify
+    return result
+
+
+-- function gdk_text_property_to_utf8_list_for_display
+-- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "encoding", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TCArray False (-1) 4 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "encoding", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TCArray False (-1) 4 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_text_property_to_utf8_list_for_display" gdk_text_property_to_utf8_list_for_display :: 
+    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
+    Ptr Atom ->                             -- encoding : TInterface "Gdk" "Atom"
+    Int32 ->                                -- format : TBasicType TInt32
+    Ptr Word8 ->                            -- text : TCArray False (-1) 4 (TBasicType TUInt8)
+    Int32 ->                                -- length : TBasicType TInt32
+    Ptr (Ptr CString) ->                    -- list : TCArray True (-1) (-1) (TBasicType TUTF8)
+    IO Int32
+
+
+textPropertyToUtf8ListForDisplay ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- display
+    Atom ->                                 -- encoding
+    Int32 ->                                -- format
+    ByteString ->                           -- text
+    m (Int32,[T.Text])
+textPropertyToUtf8ListForDisplay display encoding format text = liftIO $ do
+    let length_ = fromIntegral $ B.length text
+    let display' = unsafeManagedPtrCastPtr display
+    let encoding' = unsafeManagedPtrGetPtr encoding
+    text' <- packByteString text
+    list <- allocMem :: IO (Ptr (Ptr CString))
+    result <- gdk_text_property_to_utf8_list_for_display display' encoding' format text' length_ list
+    list' <- peek list
+    list'' <- unpackZeroTerminatedUTF8CArray list'
+    mapZeroTerminatedCArray freeMem list'
+    freeMem list'
+    touchManagedPtr display
+    touchManagedPtr encoding
+    freeMem text'
+    freeMem list
+    return (result, list'')
+
+
+-- function gdk_test_simulate_key
+-- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key_pressrelease", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key_pressrelease", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_test_simulate_key" gdk_test_simulate_key :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    Word32 ->                               -- keyval : TBasicType TUInt32
+    CUInt ->                                -- modifiers : TInterface "Gdk" "ModifierType"
+    CUInt ->                                -- key_pressrelease : TInterface "Gdk" "EventType"
+    IO CInt
+
+
+testSimulateKey ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- window
+    Int32 ->                                -- x
+    Int32 ->                                -- y
+    Word32 ->                               -- keyval
+    [ModifierType] ->                       -- modifiers
+    EventType ->                            -- key_pressrelease
+    m Bool
+testSimulateKey window x y keyval modifiers key_pressrelease = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let modifiers' = gflagsToWord modifiers
+    let key_pressrelease' = (fromIntegral . fromEnum) key_pressrelease
+    result <- gdk_test_simulate_key window' x y keyval modifiers' key_pressrelease'
+    let result' = (/= 0) result
+    touchManagedPtr window
+    return result'
+
+
+-- function gdk_test_simulate_button
+-- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button_pressrelease", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button_pressrelease", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_test_simulate_button" gdk_test_simulate_button :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    Word32 ->                               -- button : TBasicType TUInt32
+    CUInt ->                                -- modifiers : TInterface "Gdk" "ModifierType"
+    CUInt ->                                -- button_pressrelease : TInterface "Gdk" "EventType"
+    IO CInt
+
+
+testSimulateButton ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- window
+    Int32 ->                                -- x
+    Int32 ->                                -- y
+    Word32 ->                               -- button
+    [ModifierType] ->                       -- modifiers
+    EventType ->                            -- button_pressrelease
+    m Bool
+testSimulateButton window x y button modifiers button_pressrelease = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let modifiers' = gflagsToWord modifiers
+    let button_pressrelease' = (fromIntegral . fromEnum) button_pressrelease
+    result <- gdk_test_simulate_button window' x y button modifiers' button_pressrelease'
+    let result' = (/= 0) result
+    touchManagedPtr window
+    return result'
+
+
+-- function gdk_test_render_sync
+-- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_test_render_sync" gdk_test_render_sync :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    IO ()
+
+
+testRenderSync ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- window
+    m ()
+testRenderSync window = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    gdk_test_render_sync window'
+    touchManagedPtr window
+    return ()
+
+
+-- function gdk_synthesize_window_state
+-- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "unset_flags", argType = TInterface "Gdk" "WindowState", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "set_flags", argType = TInterface "Gdk" "WindowState", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "unset_flags", argType = TInterface "Gdk" "WindowState", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "set_flags", argType = TInterface "Gdk" "WindowState", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_synthesize_window_state" gdk_synthesize_window_state :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    CUInt ->                                -- unset_flags : TInterface "Gdk" "WindowState"
+    CUInt ->                                -- set_flags : TInterface "Gdk" "WindowState"
+    IO ()
+
+
+synthesizeWindowState ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- window
+    [WindowState] ->                        -- unset_flags
+    [WindowState] ->                        -- set_flags
+    m ()
+synthesizeWindowState window unset_flags set_flags_ = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let unset_flags' = gflagsToWord unset_flags
+    let set_flags_' = gflagsToWord set_flags_
+    gdk_synthesize_window_state window' unset_flags' set_flags_'
+    touchManagedPtr window
+    return ()
+
+
+-- function gdk_setting_get
+-- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_setting_get" gdk_setting_get :: 
+    CString ->                              -- name : TBasicType TUTF8
+    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
+    IO CInt
+
+
+settingGet ::
+    (MonadIO m) =>
+    T.Text ->                               -- name
+    GValue ->                               -- value
+    m Bool
+settingGet name value = liftIO $ do
+    name' <- textToCString name
+    let value' = unsafeManagedPtrGetPtr value
+    result <- gdk_setting_get name' value'
+    let result' = (/= 0) result
+    touchManagedPtr value
+    freeMem name'
+    return result'
+
+
+-- function gdk_set_show_events
+-- Args : [Arg {argName = "show_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "show_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_set_show_events" gdk_set_show_events :: 
+    CInt ->                                 -- show_events : TBasicType TBoolean
+    IO ()
+
+
+setShowEvents ::
+    (MonadIO m) =>
+    Bool ->                                 -- show_events
+    m ()
+setShowEvents show_events = liftIO $ do
+    let show_events' = (fromIntegral . fromEnum) show_events
+    gdk_set_show_events show_events'
+    return ()
+
+
+-- function gdk_set_program_class
+-- Args : [Arg {argName = "program_class", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "program_class", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_set_program_class" gdk_set_program_class :: 
+    CString ->                              -- program_class : TBasicType TUTF8
+    IO ()
+
+
+setProgramClass ::
+    (MonadIO m) =>
+    T.Text ->                               -- program_class
+    m ()
+setProgramClass program_class = liftIO $ do
+    program_class' <- textToCString program_class
+    gdk_set_program_class program_class'
+    freeMem program_class'
+    return ()
+
+
+-- function gdk_set_double_click_time
+-- Args : [Arg {argName = "msec", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "msec", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_set_double_click_time" gdk_set_double_click_time :: 
+    Word32 ->                               -- msec : TBasicType TUInt32
+    IO ()
+
+
+setDoubleClickTime ::
+    (MonadIO m) =>
+    Word32 ->                               -- msec
+    m ()
+setDoubleClickTime msec = liftIO $ do
+    gdk_set_double_click_time msec
+    return ()
+
+
+-- function gdk_set_allowed_backends
+-- Args : [Arg {argName = "backends", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "backends", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_set_allowed_backends" gdk_set_allowed_backends :: 
+    CString ->                              -- backends : TBasicType TUTF8
+    IO ()
+
+
+setAllowedBackends ::
+    (MonadIO m) =>
+    T.Text ->                               -- backends
+    m ()
+setAllowedBackends backends = liftIO $ do
+    backends' <- textToCString backends
+    gdk_set_allowed_backends backends'
+    freeMem backends'
+    return ()
+
+
+-- function gdk_selection_send_notify_for_display
+-- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_selection_send_notify_for_display" gdk_selection_send_notify_for_display :: 
+    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
+    Ptr Window ->                           -- requestor : TInterface "Gdk" "Window"
+    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
+    Ptr Atom ->                             -- target : TInterface "Gdk" "Atom"
+    Ptr Atom ->                             -- property : TInterface "Gdk" "Atom"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+selectionSendNotifyForDisplay ::
+    (MonadIO m, DisplayK a, WindowK b) =>
+    a ->                                    -- display
+    b ->                                    -- requestor
+    Atom ->                                 -- selection
+    Atom ->                                 -- target
+    Atom ->                                 -- property
+    Word32 ->                               -- time_
+    m ()
+selectionSendNotifyForDisplay display requestor selection target property time_ = liftIO $ do
+    let display' = unsafeManagedPtrCastPtr display
+    let requestor' = unsafeManagedPtrCastPtr requestor
+    let selection' = unsafeManagedPtrGetPtr selection
+    let target' = unsafeManagedPtrGetPtr target
+    let property' = unsafeManagedPtrGetPtr property
+    gdk_selection_send_notify_for_display display' requestor' selection' target' property' time_
+    touchManagedPtr display
+    touchManagedPtr requestor
+    touchManagedPtr selection
+    touchManagedPtr target
+    touchManagedPtr property
+    return ()
+
+
+-- function gdk_selection_send_notify
+-- Args : [Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_selection_send_notify" gdk_selection_send_notify :: 
+    Ptr Window ->                           -- requestor : TInterface "Gdk" "Window"
+    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
+    Ptr Atom ->                             -- target : TInterface "Gdk" "Atom"
+    Ptr Atom ->                             -- property : TInterface "Gdk" "Atom"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+selectionSendNotify ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- requestor
+    Atom ->                                 -- selection
+    Atom ->                                 -- target
+    Atom ->                                 -- property
+    Word32 ->                               -- time_
+    m ()
+selectionSendNotify requestor selection target property time_ = liftIO $ do
+    let requestor' = unsafeManagedPtrCastPtr requestor
+    let selection' = unsafeManagedPtrGetPtr selection
+    let target' = unsafeManagedPtrGetPtr target
+    let property' = unsafeManagedPtrGetPtr property
+    gdk_selection_send_notify requestor' selection' target' property' time_
+    touchManagedPtr requestor
+    touchManagedPtr selection
+    touchManagedPtr target
+    touchManagedPtr property
+    return ()
+
+
+-- function gdk_selection_owner_set_for_display
+-- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "send_event", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "send_event", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_selection_owner_set_for_display" gdk_selection_owner_set_for_display :: 
+    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
+    Ptr Window ->                           -- owner : TInterface "Gdk" "Window"
+    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    CInt ->                                 -- send_event : TBasicType TBoolean
+    IO CInt
+
+
+selectionOwnerSetForDisplay ::
+    (MonadIO m, DisplayK a, WindowK b) =>
+    a ->                                    -- display
+    Maybe (b) ->                            -- owner
+    Atom ->                                 -- selection
+    Word32 ->                               -- time_
+    Bool ->                                 -- send_event
+    m Bool
+selectionOwnerSetForDisplay display owner selection time_ send_event = liftIO $ do
+    let display' = unsafeManagedPtrCastPtr display
+    maybeOwner <- case owner of
+        Nothing -> return nullPtr
+        Just jOwner -> do
+            let jOwner' = unsafeManagedPtrCastPtr jOwner
+            return jOwner'
+    let selection' = unsafeManagedPtrGetPtr selection
+    let send_event' = (fromIntegral . fromEnum) send_event
+    result <- gdk_selection_owner_set_for_display display' maybeOwner selection' time_ send_event'
+    let result' = (/= 0) result
+    touchManagedPtr display
+    whenJust owner touchManagedPtr
+    touchManagedPtr selection
+    return result'
+
+
+-- function gdk_selection_owner_set
+-- Args : [Arg {argName = "owner", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "send_event", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "owner", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "send_event", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_selection_owner_set" gdk_selection_owner_set :: 
+    Ptr Window ->                           -- owner : TInterface "Gdk" "Window"
+    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    CInt ->                                 -- send_event : TBasicType TBoolean
+    IO CInt
+
+
+selectionOwnerSet ::
+    (MonadIO m, WindowK a) =>
+    Maybe (a) ->                            -- owner
+    Atom ->                                 -- selection
+    Word32 ->                               -- time_
+    Bool ->                                 -- send_event
+    m Bool
+selectionOwnerSet owner selection time_ send_event = liftIO $ do
+    maybeOwner <- case owner of
+        Nothing -> return nullPtr
+        Just jOwner -> do
+            let jOwner' = unsafeManagedPtrCastPtr jOwner
+            return jOwner'
+    let selection' = unsafeManagedPtrGetPtr selection
+    let send_event' = (fromIntegral . fromEnum) send_event
+    result <- gdk_selection_owner_set maybeOwner selection' time_ send_event'
+    let result' = (/= 0) result
+    whenJust owner touchManagedPtr
+    touchManagedPtr selection
+    return result'
+
+
+-- function gdk_selection_owner_get_for_display
+-- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_selection_owner_get_for_display" gdk_selection_owner_get_for_display :: 
+    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
+    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
+    IO (Ptr Window)
+
+
+selectionOwnerGetForDisplay ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- display
+    Atom ->                                 -- selection
+    m Window
+selectionOwnerGetForDisplay display selection = liftIO $ do
+    let display' = unsafeManagedPtrCastPtr display
+    let selection' = unsafeManagedPtrGetPtr selection
+    result <- gdk_selection_owner_get_for_display display' selection'
+    checkUnexpectedReturnNULL "gdk_selection_owner_get_for_display" result
+    result' <- (newObject Window) result
+    touchManagedPtr display
+    touchManagedPtr selection
+    return result'
+
+
+-- function gdk_selection_owner_get
+-- Args : [Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_selection_owner_get" gdk_selection_owner_get :: 
+    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
+    IO (Ptr Window)
+
+
+selectionOwnerGet ::
+    (MonadIO m) =>
+    Atom ->                                 -- selection
+    m Window
+selectionOwnerGet selection = liftIO $ do
+    let selection' = unsafeManagedPtrGetPtr selection
+    result <- gdk_selection_owner_get selection'
+    checkUnexpectedReturnNULL "gdk_selection_owner_get" result
+    result' <- (newObject Window) result
+    touchManagedPtr selection
+    return result'
+
+
+-- function gdk_selection_convert
+-- Args : [Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_selection_convert" gdk_selection_convert :: 
+    Ptr Window ->                           -- requestor : TInterface "Gdk" "Window"
+    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
+    Ptr Atom ->                             -- target : TInterface "Gdk" "Atom"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+selectionConvert ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- requestor
+    Atom ->                                 -- selection
+    Atom ->                                 -- target
+    Word32 ->                               -- time_
+    m ()
+selectionConvert requestor selection target time_ = liftIO $ do
+    let requestor' = unsafeManagedPtrCastPtr requestor
+    let selection' = unsafeManagedPtrGetPtr selection
+    let target' = unsafeManagedPtrGetPtr target
+    gdk_selection_convert requestor' selection' target' time_
+    touchManagedPtr requestor
+    touchManagedPtr selection
+    touchManagedPtr target
+    return ()
+
+
+-- function gdk_query_visual_types
+-- Args : [Arg {argName = "visual_types", argType = TCArray False (-1) 1 (TInterface "Gdk" "VisualType"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "count", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "count", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_query_visual_types" gdk_query_visual_types :: 
+    Ptr (Ptr CUInt) ->                      -- visual_types : TCArray False (-1) 1 (TInterface "Gdk" "VisualType")
+    Ptr Int32 ->                            -- count : TBasicType TInt32
+    IO ()
+
+
+queryVisualTypes ::
+    (MonadIO m) =>
+    m ([VisualType])
+queryVisualTypes  = liftIO $ do
+    visual_types <- allocMem :: IO (Ptr (Ptr CUInt))
+    count <- allocMem :: IO (Ptr Int32)
+    gdk_query_visual_types visual_types count
+    count' <- peek count
+    visual_types' <- peek visual_types
+    visual_types'' <- (unpackStorableArrayWithLength count') visual_types'
+    let visual_types''' = map (toEnum . fromIntegral) visual_types''
+    freeMem visual_types
+    freeMem count
+    return visual_types'''
+
+
+-- function gdk_query_depths
+-- Args : [Arg {argName = "depths", argType = TCArray False (-1) 1 (TBasicType TInt32), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "count", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "count", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_query_depths" gdk_query_depths :: 
+    Ptr (Ptr Int32) ->                      -- depths : TCArray False (-1) 1 (TBasicType TInt32)
+    Ptr Int32 ->                            -- count : TBasicType TInt32
+    IO ()
+
+
+queryDepths ::
+    (MonadIO m) =>
+    m ([Int32])
+queryDepths  = liftIO $ do
+    depths <- allocMem :: IO (Ptr (Ptr Int32))
+    count <- allocMem :: IO (Ptr Int32)
+    gdk_query_depths depths count
+    count' <- peek count
+    depths' <- peek depths
+    depths'' <- (unpackStorableArrayWithLength count') depths'
+    freeMem depths
+    freeMem count
+    return depths''
+
+
+-- function gdk_property_get
+-- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pdelete", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "actual_property_type", argType = TInterface "Gdk" "Atom", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "actual_format", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "actual_length", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "data", argType = TCArray False (-1) 8 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "actual_length", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pdelete", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_property_get" gdk_property_get :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Ptr Atom ->                             -- property : TInterface "Gdk" "Atom"
+    Ptr Atom ->                             -- type : TInterface "Gdk" "Atom"
+    Word64 ->                               -- offset : TBasicType TUInt64
+    Word64 ->                               -- length : TBasicType TUInt64
+    Int32 ->                                -- pdelete : TBasicType TInt32
+    Ptr (Ptr Atom) ->                       -- actual_property_type : TInterface "Gdk" "Atom"
+    Ptr Int32 ->                            -- actual_format : TBasicType TInt32
+    Ptr Int32 ->                            -- actual_length : TBasicType TInt32
+    Ptr (Ptr Word8) ->                      -- data : TCArray False (-1) 8 (TBasicType TUInt8)
+    IO CInt
+
+
+propertyGet ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- window
+    Atom ->                                 -- property
+    Atom ->                                 -- type
+    Word64 ->                               -- offset
+    Word64 ->                               -- length
+    Int32 ->                                -- pdelete
+    m (Bool,Atom,Int32,ByteString)
+propertyGet window property type_ offset length_ pdelete = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let property' = unsafeManagedPtrGetPtr property
+    let type_' = unsafeManagedPtrGetPtr type_
+    actual_property_type <- allocMem :: IO (Ptr (Ptr Atom))
+    actual_format <- allocMem :: IO (Ptr Int32)
+    actual_length <- allocMem :: IO (Ptr Int32)
+    data_ <- allocMem :: IO (Ptr (Ptr Word8))
+    result <- gdk_property_get window' property' type_' offset length_ pdelete actual_property_type actual_format actual_length data_
+    actual_length' <- peek actual_length
+    let result' = (/= 0) result
+    actual_property_type' <- peek actual_property_type
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    actual_property_type'' <- (\x -> Atom <$> newForeignPtr_ x) actual_property_type'
+    actual_format' <- peek actual_format
+    data_' <- peek data_
+    data_'' <- (unpackByteStringWithLength actual_length') data_'
+    freeMem data_'
+    touchManagedPtr window
+    touchManagedPtr property
+    touchManagedPtr type_
+    freeMem actual_property_type
+    freeMem actual_format
+    freeMem actual_length
+    freeMem data_
+    return (result', actual_property_type'', actual_format', data_'')
+
+
+-- function gdk_property_delete
+-- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_property_delete" gdk_property_delete :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Ptr Atom ->                             -- property : TInterface "Gdk" "Atom"
+    IO ()
+
+
+propertyDelete ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- window
+    Atom ->                                 -- property
+    m ()
+propertyDelete window property = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let property' = unsafeManagedPtrGetPtr property
+    gdk_property_delete window' property'
+    touchManagedPtr window
+    touchManagedPtr property
+    return ()
+
+
+-- function gdk_pre_parse_libgtk_only
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_pre_parse_libgtk_only" gdk_pre_parse_libgtk_only :: 
+    IO ()
+
+{-# DEPRECATED preParseLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside","  of GTK+"]#-}
+preParseLibgtkOnly ::
+    (MonadIO m) =>
+    m ()
+preParseLibgtkOnly  = liftIO $ do
+    gdk_pre_parse_libgtk_only
+    return ()
+
+
+-- function gdk_pointer_ungrab
+-- Args : [Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_pointer_ungrab" gdk_pointer_ungrab :: 
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+{-# DEPRECATED pointerUngrab ["(Since version 3.0)","Use gdk_device_ungrab(), together with gdk_device_grab()","            instead."]#-}
+pointerUngrab ::
+    (MonadIO m) =>
+    Word32 ->                               -- time_
+    m ()
+pointerUngrab time_ = liftIO $ do
+    gdk_pointer_ungrab time_
+    return ()
+
+
+-- function gdk_pointer_is_grabbed
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_pointer_is_grabbed" gdk_pointer_is_grabbed :: 
+    IO CInt
+
+{-# DEPRECATED pointerIsGrabbed ["(Since version 3.0)","Use gdk_display_device_is_grabbed() instead."]#-}
+pointerIsGrabbed ::
+    (MonadIO m) =>
+    m Bool
+pointerIsGrabbed  = liftIO $ do
+    result <- gdk_pointer_is_grabbed
+    let result' = (/= 0) result
+    return result'
+
+
+-- function gdk_pointer_grab
+-- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "confine_to", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "confine_to", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "GrabStatus"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_pointer_grab" gdk_pointer_grab :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    CInt ->                                 -- owner_events : TBasicType TBoolean
+    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
+    Ptr Window ->                           -- confine_to : TInterface "Gdk" "Window"
+    Ptr Cursor ->                           -- cursor : TInterface "Gdk" "Cursor"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO CUInt
+
+{-# DEPRECATED pointerGrab ["(Since version 3.0)","Use gdk_device_grab() instead."]#-}
+pointerGrab ::
+    (MonadIO m, WindowK a, WindowK b, CursorK c) =>
+    a ->                                    -- window
+    Bool ->                                 -- owner_events
+    [EventMask] ->                          -- event_mask
+    Maybe (b) ->                            -- confine_to
+    Maybe (c) ->                            -- cursor
+    Word32 ->                               -- time_
+    m GrabStatus
+pointerGrab window owner_events event_mask confine_to cursor time_ = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let owner_events' = (fromIntegral . fromEnum) owner_events
+    let event_mask' = gflagsToWord event_mask
+    maybeConfine_to <- case confine_to of
+        Nothing -> return nullPtr
+        Just jConfine_to -> do
+            let jConfine_to' = unsafeManagedPtrCastPtr jConfine_to
+            return jConfine_to'
+    maybeCursor <- case cursor of
+        Nothing -> return nullPtr
+        Just jCursor -> do
+            let jCursor' = unsafeManagedPtrCastPtr jCursor
+            return jCursor'
+    result <- gdk_pointer_grab window' owner_events' event_mask' maybeConfine_to maybeCursor time_
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr window
+    whenJust confine_to touchManagedPtr
+    whenJust cursor touchManagedPtr
+    return result'
+
+
+-- function gdk_pixbuf_get_from_window
+-- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GdkPixbuf" "Pixbuf"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_pixbuf_get_from_window" gdk_pixbuf_get_from_window :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Int32 ->                                -- src_x : TBasicType TInt32
+    Int32 ->                                -- src_y : TBasicType TInt32
+    Int32 ->                                -- width : TBasicType TInt32
+    Int32 ->                                -- height : TBasicType TInt32
+    IO (Ptr GdkPixbuf.Pixbuf)
+
+
+pixbufGetFromWindow ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- window
+    Int32 ->                                -- src_x
+    Int32 ->                                -- src_y
+    Int32 ->                                -- width
+    Int32 ->                                -- height
+    m GdkPixbuf.Pixbuf
+pixbufGetFromWindow window src_x src_y width height = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    result <- gdk_pixbuf_get_from_window window' src_x src_y width height
+    checkUnexpectedReturnNULL "gdk_pixbuf_get_from_window" result
+    result' <- (wrapObject GdkPixbuf.Pixbuf) result
+    touchManagedPtr window
+    return result'
+
+
+-- function gdk_pixbuf_get_from_surface
+-- Args : [Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GdkPixbuf" "Pixbuf"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_pixbuf_get_from_surface" gdk_pixbuf_get_from_surface :: 
+    Ptr Cairo.Surface ->                    -- surface : TInterface "cairo" "Surface"
+    Int32 ->                                -- src_x : TBasicType TInt32
+    Int32 ->                                -- src_y : TBasicType TInt32
+    Int32 ->                                -- width : TBasicType TInt32
+    Int32 ->                                -- height : TBasicType TInt32
+    IO (Ptr GdkPixbuf.Pixbuf)
+
+
+pixbufGetFromSurface ::
+    (MonadIO m) =>
+    Cairo.Surface ->                        -- surface
+    Int32 ->                                -- src_x
+    Int32 ->                                -- src_y
+    Int32 ->                                -- width
+    Int32 ->                                -- height
+    m GdkPixbuf.Pixbuf
+pixbufGetFromSurface surface src_x src_y width height = liftIO $ do
+    let surface' = unsafeManagedPtrGetPtr surface
+    result <- gdk_pixbuf_get_from_surface surface' src_x src_y width height
+    checkUnexpectedReturnNULL "gdk_pixbuf_get_from_surface" result
+    result' <- (wrapObject GdkPixbuf.Pixbuf) result
+    touchManagedPtr surface
+    return result'
+
+
+-- function gdk_parse_args
+-- Args : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_parse_args" gdk_parse_args :: 
+    Ptr Int32 ->                            -- argc : TBasicType TInt32
+    Ptr (Ptr CString) ->                    -- argv : TCArray False (-1) 0 (TBasicType TUTF8)
+    IO ()
+
+
+parseArgs ::
+    (MonadIO m) =>
+    [T.Text] ->                             -- argv
+    m ([T.Text])
+parseArgs argv = liftIO $ do
+    let argc = fromIntegral $ length argv
+    argc' <- allocMem :: IO (Ptr Int32)
+    poke argc' argc
+    argv' <- packUTF8CArray argv
+    argv'' <- allocMem :: IO (Ptr (Ptr CString))
+    poke argv'' argv'
+    gdk_parse_args argc' argv''
+    argc'' <- peek argc'
+    argv''' <- peek argv''
+    argv'''' <- (unpackUTF8CArrayWithLength argc'') argv'''
+    (mapCArrayWithLength argc'') freeMem argv'''
+    freeMem argv'''
+    freeMem argc'
+    freeMem argv''
+    return argv''''
+
+
+-- function gdk_pango_context_get_for_screen
+-- Args : [Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Pango" "Context"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_pango_context_get_for_screen" gdk_pango_context_get_for_screen :: 
+    Ptr Screen ->                           -- screen : TInterface "Gdk" "Screen"
+    IO (Ptr Pango.Context)
+
+
+pangoContextGetForScreen ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- screen
+    m Pango.Context
+pangoContextGetForScreen screen = liftIO $ do
+    let screen' = unsafeManagedPtrCastPtr screen
+    result <- gdk_pango_context_get_for_screen screen'
+    checkUnexpectedReturnNULL "gdk_pango_context_get_for_screen" result
+    result' <- (wrapObject Pango.Context) result
+    touchManagedPtr screen
+    return result'
+
+
+-- function gdk_pango_context_get
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "Pango" "Context"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_pango_context_get" gdk_pango_context_get :: 
+    IO (Ptr Pango.Context)
+
+
+pangoContextGet ::
+    (MonadIO m) =>
+    m Pango.Context
+pangoContextGet  = liftIO $ do
+    result <- gdk_pango_context_get
+    checkUnexpectedReturnNULL "gdk_pango_context_get" result
+    result' <- (wrapObject Pango.Context) result
+    return result'
+
+
+-- function gdk_offscreen_window_set_embedder
+-- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "embedder", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "embedder", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_offscreen_window_set_embedder" gdk_offscreen_window_set_embedder :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Ptr Window ->                           -- embedder : TInterface "Gdk" "Window"
+    IO ()
+
+
+offscreenWindowSetEmbedder ::
+    (MonadIO m, WindowK a, WindowK b) =>
+    a ->                                    -- window
+    b ->                                    -- embedder
+    m ()
+offscreenWindowSetEmbedder window embedder = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let embedder' = unsafeManagedPtrCastPtr embedder
+    gdk_offscreen_window_set_embedder window' embedder'
+    touchManagedPtr window
+    touchManagedPtr embedder
+    return ()
+
+
+-- function gdk_offscreen_window_get_surface
+-- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "cairo" "Surface"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_offscreen_window_get_surface" gdk_offscreen_window_get_surface :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    IO (Ptr Cairo.Surface)
+
+
+offscreenWindowGetSurface ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- window
+    m Cairo.Surface
+offscreenWindowGetSurface window = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    result <- gdk_offscreen_window_get_surface window'
+    checkUnexpectedReturnNULL "gdk_offscreen_window_get_surface" result
+    result' <- (newBoxed Cairo.Surface) result
+    touchManagedPtr window
+    return result'
+
+
+-- function gdk_offscreen_window_get_embedder
+-- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_offscreen_window_get_embedder" gdk_offscreen_window_get_embedder :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    IO (Ptr Window)
+
+
+offscreenWindowGetEmbedder ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- window
+    m Window
+offscreenWindowGetEmbedder window = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    result <- gdk_offscreen_window_get_embedder window'
+    checkUnexpectedReturnNULL "gdk_offscreen_window_get_embedder" result
+    result' <- (newObject Window) result
+    touchManagedPtr window
+    return result'
+
+
+-- function gdk_notify_startup_complete_with_id
+-- Args : [Arg {argName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_notify_startup_complete_with_id" gdk_notify_startup_complete_with_id :: 
+    CString ->                              -- startup_id : TBasicType TUTF8
+    IO ()
+
+
+notifyStartupCompleteWithId ::
+    (MonadIO m) =>
+    T.Text ->                               -- startup_id
+    m ()
+notifyStartupCompleteWithId startup_id = liftIO $ do
+    startup_id' <- textToCString startup_id
+    gdk_notify_startup_complete_with_id startup_id'
+    freeMem startup_id'
+    return ()
+
+
+-- function gdk_notify_startup_complete
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_notify_startup_complete" gdk_notify_startup_complete :: 
+    IO ()
+
+
+notifyStartupComplete ::
+    (MonadIO m) =>
+    m ()
+notifyStartupComplete  = liftIO $ do
+    gdk_notify_startup_complete
+    return ()
+
+
+-- function gdk_list_visuals
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TGList (TInterface "Gdk" "Visual")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_list_visuals" gdk_list_visuals :: 
+    IO (Ptr (GList (Ptr Visual)))
+
+
+listVisuals ::
+    (MonadIO m) =>
+    m [Visual]
+listVisuals  = liftIO $ do
+    result <- gdk_list_visuals
+    checkUnexpectedReturnNULL "gdk_list_visuals" result
+    result' <- unpackGList result
+    result'' <- mapM (newObject Visual) result'
+    g_list_free result
+    return result''
+
+
+-- function gdk_keyval_to_upper
+-- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keyval_to_upper" gdk_keyval_to_upper :: 
+    Word32 ->                               -- keyval : TBasicType TUInt32
+    IO Word32
+
+
+keyvalToUpper ::
+    (MonadIO m) =>
+    Word32 ->                               -- keyval
+    m Word32
+keyvalToUpper keyval = liftIO $ do
+    result <- gdk_keyval_to_upper keyval
+    return result
+
+
+-- function gdk_keyval_to_unicode
+-- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keyval_to_unicode" gdk_keyval_to_unicode :: 
+    Word32 ->                               -- keyval : TBasicType TUInt32
+    IO Word32
+
+
+keyvalToUnicode ::
+    (MonadIO m) =>
+    Word32 ->                               -- keyval
+    m Word32
+keyvalToUnicode keyval = liftIO $ do
+    result <- gdk_keyval_to_unicode keyval
+    return result
+
+
+-- function gdk_keyval_to_lower
+-- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keyval_to_lower" gdk_keyval_to_lower :: 
+    Word32 ->                               -- keyval : TBasicType TUInt32
+    IO Word32
+
+
+keyvalToLower ::
+    (MonadIO m) =>
+    Word32 ->                               -- keyval
+    m Word32
+keyvalToLower keyval = liftIO $ do
+    result <- gdk_keyval_to_lower keyval
+    return result
+
+
+-- function gdk_keyval_name
+-- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keyval_name" gdk_keyval_name :: 
+    Word32 ->                               -- keyval : TBasicType TUInt32
+    IO CString
+
+
+keyvalName ::
+    (MonadIO m) =>
+    Word32 ->                               -- keyval
+    m T.Text
+keyvalName keyval = liftIO $ do
+    result <- gdk_keyval_name keyval
+    checkUnexpectedReturnNULL "gdk_keyval_name" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function gdk_keyval_is_upper
+-- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keyval_is_upper" gdk_keyval_is_upper :: 
+    Word32 ->                               -- keyval : TBasicType TUInt32
+    IO CInt
+
+
+keyvalIsUpper ::
+    (MonadIO m) =>
+    Word32 ->                               -- keyval
+    m Bool
+keyvalIsUpper keyval = liftIO $ do
+    result <- gdk_keyval_is_upper keyval
+    let result' = (/= 0) result
+    return result'
+
+
+-- function gdk_keyval_is_lower
+-- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keyval_is_lower" gdk_keyval_is_lower :: 
+    Word32 ->                               -- keyval : TBasicType TUInt32
+    IO CInt
+
+
+keyvalIsLower ::
+    (MonadIO m) =>
+    Word32 ->                               -- keyval
+    m Bool
+keyvalIsLower keyval = liftIO $ do
+    result <- gdk_keyval_is_lower keyval
+    let result' = (/= 0) result
+    return result'
+
+
+-- function gdk_keyval_from_name
+-- Args : [Arg {argName = "keyval_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "keyval_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keyval_from_name" gdk_keyval_from_name :: 
+    CString ->                              -- keyval_name : TBasicType TUTF8
+    IO Word32
+
+
+keyvalFromName ::
+    (MonadIO m) =>
+    T.Text ->                               -- keyval_name
+    m Word32
+keyvalFromName keyval_name = liftIO $ do
+    keyval_name' <- textToCString keyval_name
+    result <- gdk_keyval_from_name keyval_name'
+    freeMem keyval_name'
+    return result
+
+
+-- function gdk_keyval_convert_case
+-- Args : [Arg {argName = "symbol", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lower", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "upper", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "symbol", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keyval_convert_case" gdk_keyval_convert_case :: 
+    Word32 ->                               -- symbol : TBasicType TUInt32
+    Ptr Word32 ->                           -- lower : TBasicType TUInt32
+    Ptr Word32 ->                           -- upper : TBasicType TUInt32
+    IO ()
+
+
+keyvalConvertCase ::
+    (MonadIO m) =>
+    Word32 ->                               -- symbol
+    m (Word32,Word32)
+keyvalConvertCase symbol = liftIO $ do
+    lower <- allocMem :: IO (Ptr Word32)
+    upper <- allocMem :: IO (Ptr Word32)
+    gdk_keyval_convert_case symbol lower upper
+    lower' <- peek lower
+    upper' <- peek upper
+    freeMem lower
+    freeMem upper
+    return (lower', upper')
+
+
+-- function gdk_keyboard_ungrab
+-- Args : [Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keyboard_ungrab" gdk_keyboard_ungrab :: 
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+{-# DEPRECATED keyboardUngrab ["(Since version 3.0)","Use gdk_device_ungrab(), together with gdk_device_grab()","            instead."]#-}
+keyboardUngrab ::
+    (MonadIO m) =>
+    Word32 ->                               -- time_
+    m ()
+keyboardUngrab time_ = liftIO $ do
+    gdk_keyboard_ungrab time_
+    return ()
+
+
+-- function gdk_keyboard_grab
+-- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "GrabStatus"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keyboard_grab" gdk_keyboard_grab :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    CInt ->                                 -- owner_events : TBasicType TBoolean
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO CUInt
+
+{-# DEPRECATED keyboardGrab ["(Since version 3.0)","Use gdk_device_grab() instead."]#-}
+keyboardGrab ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- window
+    Bool ->                                 -- owner_events
+    Word32 ->                               -- time_
+    m GrabStatus
+keyboardGrab window owner_events time_ = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let owner_events' = (fromIntegral . fromEnum) owner_events
+    result <- gdk_keyboard_grab window' owner_events' time_
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr window
+    return result'
+
+
+-- function gdk_init_check
+-- Args : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_init_check" gdk_init_check :: 
+    Ptr Int32 ->                            -- argc : TBasicType TInt32
+    Ptr (Ptr CString) ->                    -- argv : TCArray False (-1) 0 (TBasicType TUTF8)
+    IO CInt
+
+
+initCheck ::
+    (MonadIO m) =>
+    [T.Text] ->                             -- argv
+    m (Bool,[T.Text])
+initCheck argv = liftIO $ do
+    let argc = fromIntegral $ length argv
+    argc' <- allocMem :: IO (Ptr Int32)
+    poke argc' argc
+    argv' <- packUTF8CArray argv
+    argv'' <- allocMem :: IO (Ptr (Ptr CString))
+    poke argv'' argv'
+    result <- gdk_init_check argc' argv''
+    argc'' <- peek argc'
+    let result' = (/= 0) result
+    argv''' <- peek argv''
+    argv'''' <- (unpackUTF8CArrayWithLength argc'') argv'''
+    (mapCArrayWithLength argc'') freeMem argv'''
+    freeMem argv'''
+    freeMem argc'
+    freeMem argv''
+    return (result', argv'''')
+
+
+-- function gdk_init
+-- Args : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_init" gdk_init :: 
+    Ptr Int32 ->                            -- argc : TBasicType TInt32
+    Ptr (Ptr CString) ->                    -- argv : TCArray False (-1) 0 (TBasicType TUTF8)
+    IO ()
+
+
+init ::
+    (MonadIO m) =>
+    [T.Text] ->                             -- argv
+    m ([T.Text])
+init argv = liftIO $ do
+    let argc = fromIntegral $ length argv
+    argc' <- allocMem :: IO (Ptr Int32)
+    poke argc' argc
+    argv' <- packUTF8CArray argv
+    argv'' <- allocMem :: IO (Ptr (Ptr CString))
+    poke argv'' argv'
+    gdk_init argc' argv''
+    argc'' <- peek argc'
+    argv''' <- peek argv''
+    argv'''' <- (unpackUTF8CArrayWithLength argc'') argv'''
+    (mapCArrayWithLength argc'') freeMem argv'''
+    freeMem argv'''
+    freeMem argc'
+    freeMem argv''
+    return argv''''
+
+
+-- function gdk_gl_error_quark
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_gl_error_quark" gdk_gl_error_quark :: 
+    IO Word32
+
+
+glErrorQuark ::
+    (MonadIO m) =>
+    m Word32
+glErrorQuark  = liftIO $ do
+    result <- gdk_gl_error_quark
+    return result
+
+
+-- function gdk_get_show_events
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_get_show_events" gdk_get_show_events :: 
+    IO CInt
+
+
+getShowEvents ::
+    (MonadIO m) =>
+    m Bool
+getShowEvents  = liftIO $ do
+    result <- gdk_get_show_events
+    let result' = (/= 0) result
+    return result'
+
+
+-- function gdk_get_program_class
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_get_program_class" gdk_get_program_class :: 
+    IO CString
+
+
+getProgramClass ::
+    (MonadIO m) =>
+    m T.Text
+getProgramClass  = liftIO $ do
+    result <- gdk_get_program_class
+    checkUnexpectedReturnNULL "gdk_get_program_class" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function gdk_get_display_arg_name
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_get_display_arg_name" gdk_get_display_arg_name :: 
+    IO CString
+
+
+getDisplayArgName ::
+    (MonadIO m) =>
+    m T.Text
+getDisplayArgName  = liftIO $ do
+    result <- gdk_get_display_arg_name
+    checkUnexpectedReturnNULL "gdk_get_display_arg_name" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function gdk_get_display
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_get_display" gdk_get_display :: 
+    IO CString
+
+{-# DEPRECATED getDisplay ["(Since version 3.8)","Call gdk_display_get_name (gdk_display_get_default ()))","   instead."]#-}
+getDisplay ::
+    (MonadIO m) =>
+    m T.Text
+getDisplay  = liftIO $ do
+    result <- gdk_get_display
+    checkUnexpectedReturnNULL "gdk_get_display" result
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+
+-- function gdk_get_default_root_window
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_get_default_root_window" gdk_get_default_root_window :: 
+    IO (Ptr Window)
+
+
+getDefaultRootWindow ::
+    (MonadIO m) =>
+    m Window
+getDefaultRootWindow  = liftIO $ do
+    result <- gdk_get_default_root_window
+    checkUnexpectedReturnNULL "gdk_get_default_root_window" result
+    result' <- (newObject Window) result
+    return result'
+
+
+-- function gdk_flush
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_flush" gdk_flush :: 
+    IO ()
+
+
+flush ::
+    (MonadIO m) =>
+    m ()
+flush  = liftIO $ do
+    gdk_flush
+    return ()
+
+
+-- function gdk_events_pending
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_events_pending" gdk_events_pending :: 
+    IO CInt
+
+
+eventsPending ::
+    (MonadIO m) =>
+    m Bool
+eventsPending  = liftIO $ do
+    result <- gdk_events_pending
+    let result' = (/= 0) result
+    return result'
+
+
+-- function gdk_events_get_distance
+-- Args : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "distance", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_events_get_distance" gdk_events_get_distance :: 
+    Ptr Event ->                            -- event1 : TInterface "Gdk" "Event"
+    Ptr Event ->                            -- event2 : TInterface "Gdk" "Event"
+    Ptr CDouble ->                          -- distance : TBasicType TDouble
+    IO CInt
+
+
+eventsGetDistance ::
+    (MonadIO m) =>
+    Event ->                                -- event1
+    Event ->                                -- event2
+    m (Bool,Double)
+eventsGetDistance event1 event2 = liftIO $ do
+    let event1' = unsafeManagedPtrGetPtr event1
+    let event2' = unsafeManagedPtrGetPtr event2
+    distance <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_events_get_distance event1' event2' distance
+    let result' = (/= 0) result
+    distance' <- peek distance
+    let distance'' = realToFrac distance'
+    touchManagedPtr event1
+    touchManagedPtr event2
+    freeMem distance
+    return (result', distance'')
+
+
+-- function gdk_events_get_center
+-- Args : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_events_get_center" gdk_events_get_center :: 
+    Ptr Event ->                            -- event1 : TInterface "Gdk" "Event"
+    Ptr Event ->                            -- event2 : TInterface "Gdk" "Event"
+    Ptr CDouble ->                          -- x : TBasicType TDouble
+    Ptr CDouble ->                          -- y : TBasicType TDouble
+    IO CInt
+
+
+eventsGetCenter ::
+    (MonadIO m) =>
+    Event ->                                -- event1
+    Event ->                                -- event2
+    m (Bool,Double,Double)
+eventsGetCenter event1 event2 = liftIO $ do
+    let event1' = unsafeManagedPtrGetPtr event1
+    let event2' = unsafeManagedPtrGetPtr event2
+    x <- allocMem :: IO (Ptr CDouble)
+    y <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_events_get_center event1' event2' x y
+    let result' = (/= 0) result
+    x' <- peek x
+    let x'' = realToFrac x'
+    y' <- peek y
+    let y'' = realToFrac y'
+    touchManagedPtr event1
+    touchManagedPtr event2
+    freeMem x
+    freeMem y
+    return (result', x'', y'')
+
+
+-- function gdk_events_get_angle
+-- Args : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "angle", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_events_get_angle" gdk_events_get_angle :: 
+    Ptr Event ->                            -- event1 : TInterface "Gdk" "Event"
+    Ptr Event ->                            -- event2 : TInterface "Gdk" "Event"
+    Ptr CDouble ->                          -- angle : TBasicType TDouble
+    IO CInt
+
+
+eventsGetAngle ::
+    (MonadIO m) =>
+    Event ->                                -- event1
+    Event ->                                -- event2
+    m (Bool,Double)
+eventsGetAngle event1 event2 = liftIO $ do
+    let event1' = unsafeManagedPtrGetPtr event1
+    let event2' = unsafeManagedPtrGetPtr event2
+    angle <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_events_get_angle event1' event2' angle
+    let result' = (/= 0) result
+    angle' <- peek angle
+    let angle'' = realToFrac angle'
+    touchManagedPtr event1
+    touchManagedPtr event2
+    freeMem angle
+    return (result', angle'')
+
+
+-- function gdk_event_request_motions
+-- Args : [Arg {argName = "event", argType = TInterface "Gdk" "EventMotion", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "event", argType = TInterface "Gdk" "EventMotion", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_request_motions" gdk_event_request_motions :: 
+    Ptr EventMotion ->                      -- event : TInterface "Gdk" "EventMotion"
+    IO ()
+
+
+eventRequestMotions ::
+    (MonadIO m) =>
+    EventMotion ->                          -- event
+    m ()
+eventRequestMotions event = liftIO $ do
+    let event' = unsafeManagedPtrGetPtr event
+    gdk_event_request_motions event'
+    touchManagedPtr event
+    return ()
+
+
+-- function gdk_event_peek
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "Gdk" "Event"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_peek" gdk_event_peek :: 
+    IO (Ptr Event)
+
+
+eventPeek ::
+    (MonadIO m) =>
+    m Event
+eventPeek  = liftIO $ do
+    result <- gdk_event_peek
+    checkUnexpectedReturnNULL "gdk_event_peek" result
+    result' <- (wrapBoxed Event) result
+    return result'
+
+
+-- function gdk_event_handler_set
+-- Args : [Arg {argName = "func", argType = TInterface "Gdk" "EventFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 1, argDestroy = 2, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "func", argType = TInterface "Gdk" "EventFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 1, argDestroy = 2, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_handler_set" gdk_event_handler_set :: 
+    FunPtr EventFuncC ->                    -- func : TInterface "Gdk" "EventFunc"
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"
+    IO ()
+
+
+eventHandlerSet ::
+    (MonadIO m) =>
+    EventFunc ->                            -- func
+    m ()
+eventHandlerSet func = liftIO $ do
+    func' <- mkEventFunc (eventFuncWrapper Nothing func)
+    let data_ = castFunPtrToPtr func'
+    let notify = safeFreeFunPtrPtr
+    gdk_event_handler_set func' data_ notify
+    return ()
+
+
+-- function gdk_event_get
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "Gdk" "Event"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get" gdk_event_get :: 
+    IO (Ptr Event)
+
+
+eventGet ::
+    (MonadIO m) =>
+    m Event
+eventGet  = liftIO $ do
+    result <- gdk_event_get
+    checkUnexpectedReturnNULL "gdk_event_get" result
+    result' <- (wrapBoxed Event) result
+    return result'
+
+
+-- function gdk_error_trap_push
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_error_trap_push" gdk_error_trap_push :: 
+    IO ()
+
+
+errorTrapPush ::
+    (MonadIO m) =>
+    m ()
+errorTrapPush  = liftIO $ do
+    gdk_error_trap_push
+    return ()
+
+
+-- function gdk_error_trap_pop_ignored
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_error_trap_pop_ignored" gdk_error_trap_pop_ignored :: 
+    IO ()
+
+
+errorTrapPopIgnored ::
+    (MonadIO m) =>
+    m ()
+errorTrapPopIgnored  = liftIO $ do
+    gdk_error_trap_pop_ignored
+    return ()
+
+
+-- function gdk_error_trap_pop
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_error_trap_pop" gdk_error_trap_pop :: 
+    IO Int32
+
+
+errorTrapPop ::
+    (MonadIO m) =>
+    m Int32
+errorTrapPop  = liftIO $ do
+    result <- gdk_error_trap_pop
+    return result
+
+
+-- function gdk_drop_reply
+-- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "accepted", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "accepted", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drop_reply" gdk_drop_reply :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    CInt ->                                 -- accepted : TBasicType TBoolean
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+dropReply ::
+    (MonadIO m, DragContextK a) =>
+    a ->                                    -- context
+    Bool ->                                 -- accepted
+    Word32 ->                               -- time_
+    m ()
+dropReply context accepted time_ = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    let accepted' = (fromIntegral . fromEnum) accepted
+    gdk_drop_reply context' accepted' time_
+    touchManagedPtr context
+    return ()
+
+
+-- function gdk_drop_finish
+-- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "success", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "success", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drop_finish" gdk_drop_finish :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    CInt ->                                 -- success : TBasicType TBoolean
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+dropFinish ::
+    (MonadIO m, DragContextK a) =>
+    a ->                                    -- context
+    Bool ->                                 -- success
+    Word32 ->                               -- time_
+    m ()
+dropFinish context success time_ = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    let success' = (fromIntegral . fromEnum) success
+    gdk_drop_finish context' success' time_
+    touchManagedPtr context
+    return ()
+
+
+-- function gdk_drag_status
+-- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "action", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "action", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_status" gdk_drag_status :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    CUInt ->                                -- action : TInterface "Gdk" "DragAction"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+dragStatus ::
+    (MonadIO m, DragContextK a) =>
+    a ->                                    -- context
+    [DragAction] ->                         -- action
+    Word32 ->                               -- time_
+    m ()
+dragStatus context action time_ = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    let action' = gflagsToWord action
+    gdk_drag_status context' action' time_
+    touchManagedPtr context
+    return ()
+
+
+-- function gdk_drag_motion
+-- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "protocol", argType = TInterface "Gdk" "DragProtocol", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "suggested_action", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "possible_actions", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "protocol", argType = TInterface "Gdk" "DragProtocol", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "suggested_action", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "possible_actions", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_motion" gdk_drag_motion :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    Ptr Window ->                           -- dest_window : TInterface "Gdk" "Window"
+    CUInt ->                                -- protocol : TInterface "Gdk" "DragProtocol"
+    Int32 ->                                -- x_root : TBasicType TInt32
+    Int32 ->                                -- y_root : TBasicType TInt32
+    CUInt ->                                -- suggested_action : TInterface "Gdk" "DragAction"
+    CUInt ->                                -- possible_actions : TInterface "Gdk" "DragAction"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO CInt
+
+
+dragMotion ::
+    (MonadIO m, DragContextK a, WindowK b) =>
+    a ->                                    -- context
+    b ->                                    -- dest_window
+    DragProtocol ->                         -- protocol
+    Int32 ->                                -- x_root
+    Int32 ->                                -- y_root
+    [DragAction] ->                         -- suggested_action
+    [DragAction] ->                         -- possible_actions
+    Word32 ->                               -- time_
+    m Bool
+dragMotion context dest_window protocol x_root y_root suggested_action possible_actions time_ = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    let dest_window' = unsafeManagedPtrCastPtr dest_window
+    let protocol' = (fromIntegral . fromEnum) protocol
+    let suggested_action' = gflagsToWord suggested_action
+    let possible_actions' = gflagsToWord possible_actions
+    result <- gdk_drag_motion context' dest_window' protocol' x_root y_root suggested_action' possible_actions' time_
+    let result' = (/= 0) result
+    touchManagedPtr context
+    touchManagedPtr dest_window
+    return result'
+
+
+-- function gdk_drag_get_selection
+-- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Atom"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_get_selection" gdk_drag_get_selection :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    IO (Ptr Atom)
+
+
+dragGetSelection ::
+    (MonadIO m, DragContextK a) =>
+    a ->                                    -- context
+    m Atom
+dragGetSelection context = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    result <- gdk_drag_get_selection context'
+    checkUnexpectedReturnNULL "gdk_drag_get_selection" result
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    result' <- (\x -> Atom <$> newForeignPtr_ x) result
+    touchManagedPtr context
+    return result'
+
+
+-- function gdk_drag_find_window_for_screen
+-- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "drag_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_window", argType = TInterface "Gdk" "Window", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "protocol", argType = TInterface "Gdk" "DragProtocol", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "drag_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_find_window_for_screen" gdk_drag_find_window_for_screen :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    Ptr Window ->                           -- drag_window : TInterface "Gdk" "Window"
+    Ptr Screen ->                           -- screen : TInterface "Gdk" "Screen"
+    Int32 ->                                -- x_root : TBasicType TInt32
+    Int32 ->                                -- y_root : TBasicType TInt32
+    Ptr (Ptr Window) ->                     -- dest_window : TInterface "Gdk" "Window"
+    Ptr CUInt ->                            -- protocol : TInterface "Gdk" "DragProtocol"
+    IO ()
+
+
+dragFindWindowForScreen ::
+    (MonadIO m, DragContextK a, WindowK b, ScreenK c) =>
+    a ->                                    -- context
+    b ->                                    -- drag_window
+    c ->                                    -- screen
+    Int32 ->                                -- x_root
+    Int32 ->                                -- y_root
+    m (Window,DragProtocol)
+dragFindWindowForScreen context drag_window screen x_root y_root = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    let drag_window' = unsafeManagedPtrCastPtr drag_window
+    let screen' = unsafeManagedPtrCastPtr screen
+    dest_window <- allocMem :: IO (Ptr (Ptr Window))
+    protocol <- allocMem :: IO (Ptr CUInt)
+    gdk_drag_find_window_for_screen context' drag_window' screen' x_root y_root dest_window protocol
+    dest_window' <- peek dest_window
+    dest_window'' <- (wrapObject Window) dest_window'
+    protocol' <- peek protocol
+    let protocol'' = (toEnum . fromIntegral) protocol'
+    touchManagedPtr context
+    touchManagedPtr drag_window
+    touchManagedPtr screen
+    freeMem dest_window
+    freeMem protocol
+    return (dest_window'', protocol'')
+
+
+-- function gdk_drag_drop_succeeded
+-- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_drop_succeeded" gdk_drag_drop_succeeded :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    IO CInt
+
+
+dragDropSucceeded ::
+    (MonadIO m, DragContextK a) =>
+    a ->                                    -- context
+    m Bool
+dragDropSucceeded context = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    result <- gdk_drag_drop_succeeded context'
+    let result' = (/= 0) result
+    touchManagedPtr context
+    return result'
+
+
+-- function gdk_drag_drop
+-- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_drop" gdk_drag_drop :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+dragDrop ::
+    (MonadIO m, DragContextK a) =>
+    a ->                                    -- context
+    Word32 ->                               -- time_
+    m ()
+dragDrop context time_ = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    gdk_drag_drop context' time_
+    touchManagedPtr context
+    return ()
+
+
+-- function gdk_drag_begin_for_device
+-- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TGList (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TGList (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "DragContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_begin_for_device" gdk_drag_begin_for_device :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    Ptr (GList (Ptr Atom)) ->               -- targets : TGList (TInterface "Gdk" "Atom")
+    IO (Ptr DragContext)
+
+
+dragBeginForDevice ::
+    (MonadIO m, WindowK a, DeviceK b) =>
+    a ->                                    -- window
+    b ->                                    -- device
+    [Atom] ->                               -- targets
+    m DragContext
+dragBeginForDevice window device targets = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let device' = unsafeManagedPtrCastPtr device
+    let targets' = map unsafeManagedPtrGetPtr targets
+    targets'' <- packGList targets'
+    result <- gdk_drag_begin_for_device window' device' targets''
+    checkUnexpectedReturnNULL "gdk_drag_begin_for_device" result
+    result' <- (wrapObject DragContext) result
+    touchManagedPtr window
+    touchManagedPtr device
+    mapM_ touchManagedPtr targets
+    g_list_free targets''
+    return result'
+
+
+-- function gdk_drag_begin
+-- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TGList (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TGList (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "DragContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_begin" gdk_drag_begin :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Ptr (GList (Ptr Atom)) ->               -- targets : TGList (TInterface "Gdk" "Atom")
+    IO (Ptr DragContext)
+
+
+dragBegin ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- window
+    [Atom] ->                               -- targets
+    m DragContext
+dragBegin window targets = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let targets' = map unsafeManagedPtrGetPtr targets
+    targets'' <- packGList targets'
+    result <- gdk_drag_begin window' targets''
+    checkUnexpectedReturnNULL "gdk_drag_begin" result
+    result' <- (wrapObject DragContext) result
+    touchManagedPtr window
+    mapM_ touchManagedPtr targets
+    g_list_free targets''
+    return result'
+
+
+-- function gdk_drag_abort
+-- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_abort" gdk_drag_abort :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+dragAbort ::
+    (MonadIO m, DragContextK a) =>
+    a ->                                    -- context
+    Word32 ->                               -- time_
+    m ()
+dragAbort context time_ = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    gdk_drag_abort context' time_
+    touchManagedPtr context
+    return ()
+
+
+-- function gdk_disable_multidevice
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_disable_multidevice" gdk_disable_multidevice :: 
+    IO ()
+
+
+disableMultidevice ::
+    (MonadIO m) =>
+    m ()
+disableMultidevice  = liftIO $ do
+    gdk_disable_multidevice
+    return ()
+
+
+-- function gdk_color_parse
+-- Args : [Arg {argName = "spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_color_parse" gdk_color_parse :: 
+    CString ->                              -- spec : TBasicType TUTF8
+    Ptr Color ->                            -- color : TInterface "Gdk" "Color"
+    IO CInt
+
+{-# DEPRECATED colorParse ["(Since version 3.14)","Use #GdkRGBA"]#-}
+colorParse ::
+    (MonadIO m) =>
+    T.Text ->                               -- spec
+    m (Bool,Color)
+colorParse spec = liftIO $ do
+    spec' <- textToCString spec
+    color <- callocBoxedBytes 12 :: IO (Ptr Color)
+    result <- gdk_color_parse spec' color
+    let result' = (/= 0) result
+    color' <- (wrapBoxed Color) color
+    freeMem spec'
+    return (result', color')
+
+
+-- function gdk_cairo_surface_create_from_pixbuf
+-- Args : [Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "for_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "for_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "cairo" "Surface"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_surface_create_from_pixbuf" gdk_cairo_surface_create_from_pixbuf :: 
+    Ptr GdkPixbuf.Pixbuf ->                 -- pixbuf : TInterface "GdkPixbuf" "Pixbuf"
+    Int32 ->                                -- scale : TBasicType TInt32
+    Ptr Window ->                           -- for_window : TInterface "Gdk" "Window"
+    IO (Ptr Cairo.Surface)
+
+
+cairoSurfaceCreateFromPixbuf ::
+    (MonadIO m, GdkPixbuf.PixbufK a, WindowK b) =>
+    a ->                                    -- pixbuf
+    Int32 ->                                -- scale
+    Maybe (b) ->                            -- for_window
+    m Cairo.Surface
+cairoSurfaceCreateFromPixbuf pixbuf scale for_window = liftIO $ do
+    let pixbuf' = unsafeManagedPtrCastPtr pixbuf
+    maybeFor_window <- case for_window of
+        Nothing -> return nullPtr
+        Just jFor_window -> do
+            let jFor_window' = unsafeManagedPtrCastPtr jFor_window
+            return jFor_window'
+    result <- gdk_cairo_surface_create_from_pixbuf pixbuf' scale maybeFor_window
+    checkUnexpectedReturnNULL "gdk_cairo_surface_create_from_pixbuf" result
+    result' <- (wrapBoxed Cairo.Surface) result
+    touchManagedPtr pixbuf
+    whenJust for_window touchManagedPtr
+    return result'
+
+
+-- function gdk_cairo_set_source_window
+-- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_set_source_window" gdk_cairo_set_source_window :: 
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    CDouble ->                              -- x : TBasicType TDouble
+    CDouble ->                              -- y : TBasicType TDouble
+    IO ()
+
+
+cairoSetSourceWindow ::
+    (MonadIO m, WindowK a) =>
+    Cairo.Context ->                        -- cr
+    a ->                                    -- window
+    Double ->                               -- x
+    Double ->                               -- y
+    m ()
+cairoSetSourceWindow cr window x y = liftIO $ do
+    let cr' = unsafeManagedPtrGetPtr cr
+    let window' = unsafeManagedPtrCastPtr window
+    let x' = realToFrac x
+    let y' = realToFrac y
+    gdk_cairo_set_source_window cr' window' x' y'
+    touchManagedPtr cr
+    touchManagedPtr window
+    return ()
+
+
+-- function gdk_cairo_set_source_rgba
+-- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_set_source_rgba" gdk_cairo_set_source_rgba :: 
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    Ptr RGBA ->                             -- rgba : TInterface "Gdk" "RGBA"
+    IO ()
+
+
+cairoSetSourceRgba ::
+    (MonadIO m) =>
+    Cairo.Context ->                        -- cr
+    RGBA ->                                 -- rgba
+    m ()
+cairoSetSourceRgba cr rgba = liftIO $ do
+    let cr' = unsafeManagedPtrGetPtr cr
+    let rgba' = unsafeManagedPtrGetPtr rgba
+    gdk_cairo_set_source_rgba cr' rgba'
+    touchManagedPtr cr
+    touchManagedPtr rgba
+    return ()
+
+
+-- function gdk_cairo_set_source_pixbuf
+-- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_set_source_pixbuf" gdk_cairo_set_source_pixbuf :: 
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    Ptr GdkPixbuf.Pixbuf ->                 -- pixbuf : TInterface "GdkPixbuf" "Pixbuf"
+    CDouble ->                              -- pixbuf_x : TBasicType TDouble
+    CDouble ->                              -- pixbuf_y : TBasicType TDouble
+    IO ()
+
+
+cairoSetSourcePixbuf ::
+    (MonadIO m, GdkPixbuf.PixbufK a) =>
+    Cairo.Context ->                        -- cr
+    a ->                                    -- pixbuf
+    Double ->                               -- pixbuf_x
+    Double ->                               -- pixbuf_y
+    m ()
+cairoSetSourcePixbuf cr pixbuf pixbuf_x pixbuf_y = liftIO $ do
+    let cr' = unsafeManagedPtrGetPtr cr
+    let pixbuf' = unsafeManagedPtrCastPtr pixbuf
+    let pixbuf_x' = realToFrac pixbuf_x
+    let pixbuf_y' = realToFrac pixbuf_y
+    gdk_cairo_set_source_pixbuf cr' pixbuf' pixbuf_x' pixbuf_y'
+    touchManagedPtr cr
+    touchManagedPtr pixbuf
+    return ()
+
+
+-- function gdk_cairo_set_source_color
+-- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_set_source_color" gdk_cairo_set_source_color :: 
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    Ptr Color ->                            -- color : TInterface "Gdk" "Color"
+    IO ()
+
+{-# DEPRECATED cairoSetSourceColor ["(Since version 3.4)","Use gdk_cairo_set_source_rgba() instead"]#-}
+cairoSetSourceColor ::
+    (MonadIO m) =>
+    Cairo.Context ->                        -- cr
+    Color ->                                -- color
+    m ()
+cairoSetSourceColor cr color = liftIO $ do
+    let cr' = unsafeManagedPtrGetPtr cr
+    let color' = unsafeManagedPtrGetPtr color
+    gdk_cairo_set_source_color cr' color'
+    touchManagedPtr cr
+    touchManagedPtr color
+    return ()
+
+
+-- function gdk_cairo_region_create_from_surface
+-- Args : [Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "cairo" "Region"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_region_create_from_surface" gdk_cairo_region_create_from_surface :: 
+    Ptr Cairo.Surface ->                    -- surface : TInterface "cairo" "Surface"
+    IO (Ptr Cairo.Region)
+
+
+cairoRegionCreateFromSurface ::
+    (MonadIO m) =>
+    Cairo.Surface ->                        -- surface
+    m Cairo.Region
+cairoRegionCreateFromSurface surface = liftIO $ do
+    let surface' = unsafeManagedPtrGetPtr surface
+    result <- gdk_cairo_region_create_from_surface surface'
+    checkUnexpectedReturnNULL "gdk_cairo_region_create_from_surface" result
+    result' <- (wrapBoxed Cairo.Region) result
+    touchManagedPtr surface
+    return result'
+
+
+-- function gdk_cairo_region
+-- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_region" gdk_cairo_region :: 
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
+    IO ()
+
+
+cairoRegion ::
+    (MonadIO m) =>
+    Cairo.Context ->                        -- cr
+    Cairo.Region ->                         -- region
+    m ()
+cairoRegion cr region = liftIO $ do
+    let cr' = unsafeManagedPtrGetPtr cr
+    let region' = unsafeManagedPtrGetPtr region
+    gdk_cairo_region cr' region'
+    touchManagedPtr cr
+    touchManagedPtr region
+    return ()
+
+
+-- function gdk_cairo_rectangle
+-- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rectangle", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rectangle", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_rectangle" gdk_cairo_rectangle :: 
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    Ptr Rectangle ->                        -- rectangle : TInterface "Gdk" "Rectangle"
+    IO ()
+
+
+cairoRectangle ::
+    (MonadIO m) =>
+    Cairo.Context ->                        -- cr
+    Rectangle ->                            -- rectangle
+    m ()
+cairoRectangle cr rectangle = liftIO $ do
+    let cr' = unsafeManagedPtrGetPtr cr
+    let rectangle' = unsafeManagedPtrGetPtr rectangle
+    gdk_cairo_rectangle cr' rectangle'
+    touchManagedPtr cr
+    touchManagedPtr rectangle
+    return ()
+
+
+-- function gdk_cairo_get_clip_rectangle
+-- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_get_clip_rectangle" gdk_cairo_get_clip_rectangle :: 
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    Ptr Rectangle ->                        -- rect : TInterface "Gdk" "Rectangle"
+    IO CInt
+
+
+cairoGetClipRectangle ::
+    (MonadIO m) =>
+    Cairo.Context ->                        -- cr
+    m (Bool,Rectangle)
+cairoGetClipRectangle cr = liftIO $ do
+    let cr' = unsafeManagedPtrGetPtr cr
+    rect <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
+    result <- gdk_cairo_get_clip_rectangle cr' rect
+    let result' = (/= 0) result
+    rect' <- (wrapBoxed Rectangle) rect
+    touchManagedPtr cr
+    return (result', rect')
+
+
+-- function gdk_cairo_draw_from_gl
+-- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source_type", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffer_scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source_type", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffer_scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_draw_from_gl" gdk_cairo_draw_from_gl :: 
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Int32 ->                                -- source : TBasicType TInt32
+    Int32 ->                                -- source_type : TBasicType TInt32
+    Int32 ->                                -- buffer_scale : TBasicType TInt32
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    Int32 ->                                -- width : TBasicType TInt32
+    Int32 ->                                -- height : TBasicType TInt32
+    IO ()
+
+
+cairoDrawFromGl ::
+    (MonadIO m, WindowK a) =>
+    Cairo.Context ->                        -- cr
+    a ->                                    -- window
+    Int32 ->                                -- source
+    Int32 ->                                -- source_type
+    Int32 ->                                -- buffer_scale
+    Int32 ->                                -- x
+    Int32 ->                                -- y
+    Int32 ->                                -- width
+    Int32 ->                                -- height
+    m ()
+cairoDrawFromGl cr window source source_type buffer_scale x y width height = liftIO $ do
+    let cr' = unsafeManagedPtrGetPtr cr
+    let window' = unsafeManagedPtrCastPtr window
+    gdk_cairo_draw_from_gl cr' window' source source_type buffer_scale x y width height
+    touchManagedPtr cr
+    touchManagedPtr window
+    return ()
+
+
+-- function gdk_cairo_create
+-- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "cairo" "Context"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_create" gdk_cairo_create :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    IO (Ptr Cairo.Context)
+
+
+cairoCreate ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- window
+    m Cairo.Context
+cairoCreate window = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    result <- gdk_cairo_create window'
+    checkUnexpectedReturnNULL "gdk_cairo_create" result
+    result' <- (wrapBoxed Cairo.Context) result
+    touchManagedPtr window
+    return result'
+
+
+-- function gdk_beep
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_beep" gdk_beep :: 
+    IO ()
+
+
+beep ::
+    (MonadIO m) =>
+    m ()
+beep  = liftIO $ do
+    gdk_beep
+    return ()
+
+
+-- function gdk_atom_intern_static_string
+-- Args : [Arg {argName = "atom_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atom_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Atom"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_atom_intern_static_string" gdk_atom_intern_static_string :: 
+    CString ->                              -- atom_name : TBasicType TUTF8
+    IO (Ptr Atom)
+
+
+atomInternStaticString ::
+    (MonadIO m) =>
+    T.Text ->                               -- atom_name
+    m Atom
+atomInternStaticString atom_name = liftIO $ do
+    atom_name' <- textToCString atom_name
+    result <- gdk_atom_intern_static_string atom_name'
+    checkUnexpectedReturnNULL "gdk_atom_intern_static_string" result
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    result' <- (\x -> Atom <$> newForeignPtr_ x) result
+    freeMem atom_name'
+    return result'
+
+
+-- function gdk_atom_intern
+-- Args : [Arg {argName = "atom_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "only_if_exists", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atom_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "only_if_exists", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Atom"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_atom_intern" gdk_atom_intern :: 
+    CString ->                              -- atom_name : TBasicType TUTF8
+    CInt ->                                 -- only_if_exists : TBasicType TBoolean
+    IO (Ptr Atom)
+
+
+atomIntern ::
+    (MonadIO m) =>
+    T.Text ->                               -- atom_name
+    Bool ->                                 -- only_if_exists
+    m Atom
+atomIntern atom_name only_if_exists = liftIO $ do
+    atom_name' <- textToCString atom_name
+    let only_if_exists' = (fromIntegral . fromEnum) only_if_exists
+    result <- gdk_atom_intern atom_name' only_if_exists'
+    checkUnexpectedReturnNULL "gdk_atom_intern" result
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    result' <- (\x -> Atom <$> newForeignPtr_ x) result
+    freeMem atom_name'
+    return result'
+
+
+-- function gdk_add_option_entries_libgtk_only
+-- Args : [Arg {argName = "group", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "group", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_add_option_entries_libgtk_only" gdk_add_option_entries_libgtk_only :: 
+    Ptr GLib.OptionGroup ->                 -- group : TInterface "GLib" "OptionGroup"
+    IO ()
+
+{-# DEPRECATED addOptionEntriesLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside","  of GTK+"]#-}
+addOptionEntriesLibgtkOnly ::
+    (MonadIO m) =>
+    GLib.OptionGroup ->                     -- group
+    m ()
+addOptionEntriesLibgtkOnly group = liftIO $ do
+    let group' = unsafeManagedPtrGetPtr group
+    gdk_add_option_entries_libgtk_only group'
+    touchManagedPtr group
+    return ()
+
+
+
diff --git a/GI/Gdk/Objects.hs b/GI/Gdk/Objects.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects.hs
@@ -0,0 +1,50 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Objects
+    (     module GI.Gdk.Objects.AppLaunchContext  ,
+    module GI.Gdk.Objects.Cursor            ,
+    module GI.Gdk.Objects.Device            ,
+    module GI.Gdk.Objects.DeviceManager     ,
+    module GI.Gdk.Objects.Display           ,
+    module GI.Gdk.Objects.DisplayManager    ,
+    module GI.Gdk.Objects.DragContext       ,
+    module GI.Gdk.Objects.FrameClock        ,
+    module GI.Gdk.Objects.GLContext         ,
+    module GI.Gdk.Objects.Keymap            ,
+    module GI.Gdk.Objects.Screen            ,
+    module GI.Gdk.Objects.Visual            ,
+    module GI.Gdk.Objects.Window            ,
+
+
+    ) where
+
+import GI.Gdk.Objects.AppLaunchContext
+import GI.Gdk.Objects.Cursor
+import GI.Gdk.Objects.Device
+import GI.Gdk.Objects.DeviceManager
+import GI.Gdk.Objects.Display
+import GI.Gdk.Objects.DisplayManager
+import GI.Gdk.Objects.DragContext
+import GI.Gdk.Objects.FrameClock
+import GI.Gdk.Objects.GLContext
+import GI.Gdk.Objects.Keymap
+import GI.Gdk.Objects.Screen
+import GI.Gdk.Objects.Visual
+import GI.Gdk.Objects.Window
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+
diff --git a/GI/Gdk/Objects/AppLaunchContext.hs b/GI/Gdk/Objects/AppLaunchContext.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/AppLaunchContext.hs
@@ -0,0 +1,314 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Objects.AppLaunchContext
+    ( 
+
+-- * Exported types
+    AppLaunchContext(..)                    ,
+    AppLaunchContextK                       ,
+    toAppLaunchContext                      ,
+    noAppLaunchContext                      ,
+
+
+ -- * Methods
+-- ** appLaunchContextNew
+    appLaunchContextNew                     ,
+
+
+-- ** appLaunchContextSetDesktop
+    appLaunchContextSetDesktop              ,
+
+
+-- ** appLaunchContextSetDisplay
+    appLaunchContextSetDisplay              ,
+
+
+-- ** appLaunchContextSetIcon
+    appLaunchContextSetIcon                 ,
+
+
+-- ** appLaunchContextSetIconName
+    appLaunchContextSetIconName             ,
+
+
+-- ** appLaunchContextSetScreen
+    appLaunchContextSetScreen               ,
+
+
+-- ** appLaunchContextSetTimestamp
+    appLaunchContextSetTimestamp            ,
+
+
+
+
+ -- * Properties
+-- ** Display
+    AppLaunchContextDisplayPropertyInfo     ,
+    constructAppLaunchContextDisplay        ,
+    getAppLaunchContextDisplay              ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.GObject as GObject
+import qualified GI.Gio as Gio
+
+newtype AppLaunchContext = AppLaunchContext (ForeignPtr AppLaunchContext)
+foreign import ccall "gdk_app_launch_context_get_type"
+    c_gdk_app_launch_context_get_type :: IO GType
+
+type instance ParentTypes AppLaunchContext = AppLaunchContextParentTypes
+type AppLaunchContextParentTypes = '[Gio.AppLaunchContext, GObject.Object]
+
+instance GObject AppLaunchContext where
+    gobjectIsInitiallyUnowned _ = False
+    gobjectType _ = c_gdk_app_launch_context_get_type
+    
+
+class GObject o => AppLaunchContextK o
+instance (GObject o, IsDescendantOf AppLaunchContext o) => AppLaunchContextK o
+
+toAppLaunchContext :: AppLaunchContextK o => o -> IO AppLaunchContext
+toAppLaunchContext = unsafeCastTo AppLaunchContext
+
+noAppLaunchContext :: Maybe AppLaunchContext
+noAppLaunchContext = Nothing
+
+-- VVV Prop "display"
+   -- Type: TInterface "Gdk" "Display"
+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+
+getAppLaunchContextDisplay :: (MonadIO m, AppLaunchContextK o) => o -> m Display
+getAppLaunchContextDisplay obj = liftIO $ getObjectPropertyObject obj "display" Display
+
+constructAppLaunchContextDisplay :: (DisplayK a) => a -> IO ([Char], GValue)
+constructAppLaunchContextDisplay val = constructObjectPropertyObject "display" val
+
+data AppLaunchContextDisplayPropertyInfo
+instance AttrInfo AppLaunchContextDisplayPropertyInfo where
+    type AttrAllowedOps AppLaunchContextDisplayPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint AppLaunchContextDisplayPropertyInfo = DisplayK
+    type AttrBaseTypeConstraint AppLaunchContextDisplayPropertyInfo = AppLaunchContextK
+    type AttrGetType AppLaunchContextDisplayPropertyInfo = Display
+    type AttrLabel AppLaunchContextDisplayPropertyInfo = "AppLaunchContext::display"
+    attrGet _ = getAppLaunchContextDisplay
+    attrSet _ = undefined
+    attrConstruct _ = constructAppLaunchContextDisplay
+
+type instance AttributeList AppLaunchContext = AppLaunchContextAttributeList
+type AppLaunchContextAttributeList = ('[ '("display", AppLaunchContextDisplayPropertyInfo)] :: [(Symbol, *)])
+
+type instance SignalList AppLaunchContext = AppLaunchContextSignalList
+type AppLaunchContextSignalList = ('[ '("launch-failed", Gio.AppLaunchContextLaunchFailedSignalInfo), '("launched", Gio.AppLaunchContextLaunchedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+
+-- method AppLaunchContext::new
+-- method type : Constructor
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "Gdk" "AppLaunchContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_app_launch_context_new" gdk_app_launch_context_new :: 
+    IO (Ptr AppLaunchContext)
+
+{-# DEPRECATED appLaunchContextNew ["(Since version 3.0)","Use gdk_display_get_app_launch_context() instead"]#-}
+appLaunchContextNew ::
+    (MonadIO m) =>
+    m AppLaunchContext
+appLaunchContextNew  = liftIO $ do
+    result <- gdk_app_launch_context_new
+    checkUnexpectedReturnNULL "gdk_app_launch_context_new" result
+    result' <- (wrapObject AppLaunchContext) result
+    return result'
+
+-- method AppLaunchContext::set_desktop
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desktop", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desktop", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_app_launch_context_set_desktop" gdk_app_launch_context_set_desktop :: 
+    Ptr AppLaunchContext ->                 -- _obj : TInterface "Gdk" "AppLaunchContext"
+    Int32 ->                                -- desktop : TBasicType TInt32
+    IO ()
+
+
+appLaunchContextSetDesktop ::
+    (MonadIO m, AppLaunchContextK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- desktop
+    m ()
+appLaunchContextSetDesktop _obj desktop = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_app_launch_context_set_desktop _obj' desktop
+    touchManagedPtr _obj
+    return ()
+
+-- method AppLaunchContext::set_display
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_app_launch_context_set_display" gdk_app_launch_context_set_display :: 
+    Ptr AppLaunchContext ->                 -- _obj : TInterface "Gdk" "AppLaunchContext"
+    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
+    IO ()
+
+{-# DEPRECATED appLaunchContextSetDisplay ["(Since version 3.0)","Use gdk_display_get_app_launch_context() instead"]#-}
+appLaunchContextSetDisplay ::
+    (MonadIO m, AppLaunchContextK a, DisplayK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- display
+    m ()
+appLaunchContextSetDisplay _obj display = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let display' = unsafeManagedPtrCastPtr display
+    gdk_app_launch_context_set_display _obj' display'
+    touchManagedPtr _obj
+    touchManagedPtr display
+    return ()
+
+-- method AppLaunchContext::set_icon
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "icon", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "icon", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_app_launch_context_set_icon" gdk_app_launch_context_set_icon :: 
+    Ptr AppLaunchContext ->                 -- _obj : TInterface "Gdk" "AppLaunchContext"
+    Ptr Gio.Icon ->                         -- icon : TInterface "Gio" "Icon"
+    IO ()
+
+
+appLaunchContextSetIcon ::
+    (MonadIO m, AppLaunchContextK a, Gio.IconK b) =>
+    a ->                                    -- _obj
+    Maybe (b) ->                            -- icon
+    m ()
+appLaunchContextSetIcon _obj icon = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeIcon <- case icon of
+        Nothing -> return nullPtr
+        Just jIcon -> do
+            let jIcon' = unsafeManagedPtrCastPtr jIcon
+            return jIcon'
+    gdk_app_launch_context_set_icon _obj' maybeIcon
+    touchManagedPtr _obj
+    whenJust icon touchManagedPtr
+    return ()
+
+-- method AppLaunchContext::set_icon_name
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "icon_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "icon_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_app_launch_context_set_icon_name" gdk_app_launch_context_set_icon_name :: 
+    Ptr AppLaunchContext ->                 -- _obj : TInterface "Gdk" "AppLaunchContext"
+    CString ->                              -- icon_name : TBasicType TUTF8
+    IO ()
+
+
+appLaunchContextSetIconName ::
+    (MonadIO m, AppLaunchContextK a) =>
+    a ->                                    -- _obj
+    Maybe (T.Text) ->                       -- icon_name
+    m ()
+appLaunchContextSetIconName _obj icon_name = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeIcon_name <- case icon_name of
+        Nothing -> return nullPtr
+        Just jIcon_name -> do
+            jIcon_name' <- textToCString jIcon_name
+            return jIcon_name'
+    gdk_app_launch_context_set_icon_name _obj' maybeIcon_name
+    touchManagedPtr _obj
+    freeMem maybeIcon_name
+    return ()
+
+-- method AppLaunchContext::set_screen
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_app_launch_context_set_screen" gdk_app_launch_context_set_screen :: 
+    Ptr AppLaunchContext ->                 -- _obj : TInterface "Gdk" "AppLaunchContext"
+    Ptr Screen ->                           -- screen : TInterface "Gdk" "Screen"
+    IO ()
+
+
+appLaunchContextSetScreen ::
+    (MonadIO m, AppLaunchContextK a, ScreenK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- screen
+    m ()
+appLaunchContextSetScreen _obj screen = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let screen' = unsafeManagedPtrCastPtr screen
+    gdk_app_launch_context_set_screen _obj' screen'
+    touchManagedPtr _obj
+    touchManagedPtr screen
+    return ()
+
+-- method AppLaunchContext::set_timestamp
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_app_launch_context_set_timestamp" gdk_app_launch_context_set_timestamp :: 
+    Ptr AppLaunchContext ->                 -- _obj : TInterface "Gdk" "AppLaunchContext"
+    Word32 ->                               -- timestamp : TBasicType TUInt32
+    IO ()
+
+
+appLaunchContextSetTimestamp ::
+    (MonadIO m, AppLaunchContextK a) =>
+    a ->                                    -- _obj
+    Word32 ->                               -- timestamp
+    m ()
+appLaunchContextSetTimestamp _obj timestamp = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_app_launch_context_set_timestamp _obj' timestamp
+    touchManagedPtr _obj
+    return ()
+
+
diff --git a/GI/Gdk/Objects/AppLaunchContext.hs-boot b/GI/Gdk/Objects/AppLaunchContext.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/AppLaunchContext.hs-boot
@@ -0,0 +1,14 @@
+module GI.Gdk.Objects.AppLaunchContext where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype AppLaunchContext = AppLaunchContext (ForeignPtr AppLaunchContext)
+instance GObject AppLaunchContext where
+class GObject o => AppLaunchContextK o
+instance (GObject o, IsDescendantOf AppLaunchContext o) => AppLaunchContextK o
+data AppLaunchContextDisplayPropertyInfo
diff --git a/GI/Gdk/Objects/Cursor.hs b/GI/Gdk/Objects/Cursor.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/Cursor.hs
@@ -0,0 +1,481 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Objects.Cursor
+    ( 
+
+-- * Exported types
+    Cursor(..)                              ,
+    CursorK                                 ,
+    toCursor                                ,
+    noCursor                                ,
+
+
+ -- * Methods
+-- ** cursorGetCursorType
+    cursorGetCursorType                     ,
+
+
+-- ** cursorGetDisplay
+    cursorGetDisplay                        ,
+
+
+-- ** cursorGetImage
+    cursorGetImage                          ,
+
+
+-- ** cursorGetSurface
+    cursorGetSurface                        ,
+
+
+-- ** cursorNew
+    cursorNew                               ,
+
+
+-- ** cursorNewForDisplay
+    cursorNewForDisplay                     ,
+
+
+-- ** cursorNewFromName
+    cursorNewFromName                       ,
+
+
+-- ** cursorNewFromPixbuf
+    cursorNewFromPixbuf                     ,
+
+
+-- ** cursorNewFromSurface
+    cursorNewFromSurface                    ,
+
+
+-- ** cursorRef
+    cursorRef                               ,
+
+
+-- ** cursorUnref
+    cursorUnref                             ,
+
+
+
+
+ -- * Properties
+-- ** CursorType
+    CursorCursorTypePropertyInfo            ,
+    constructCursorCursorType               ,
+    getCursorCursorType                     ,
+
+
+-- ** Display
+    CursorDisplayPropertyInfo               ,
+    constructCursorDisplay                  ,
+    getCursorDisplay                        ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.GObject as GObject
+import qualified GI.GdkPixbuf as GdkPixbuf
+import qualified GI.Cairo as Cairo
+
+newtype Cursor = Cursor (ForeignPtr Cursor)
+foreign import ccall "gdk_cursor_get_type"
+    c_gdk_cursor_get_type :: IO GType
+
+type instance ParentTypes Cursor = CursorParentTypes
+type CursorParentTypes = '[GObject.Object]
+
+instance GObject Cursor where
+    gobjectIsInitiallyUnowned _ = False
+    gobjectType _ = c_gdk_cursor_get_type
+    
+
+class GObject o => CursorK o
+instance (GObject o, IsDescendantOf Cursor o) => CursorK o
+
+toCursor :: CursorK o => o -> IO Cursor
+toCursor = unsafeCastTo Cursor
+
+noCursor :: Maybe Cursor
+noCursor = Nothing
+
+-- VVV Prop "cursor-type"
+   -- Type: TInterface "Gdk" "CursorType"
+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+
+getCursorCursorType :: (MonadIO m, CursorK o) => o -> m CursorType
+getCursorCursorType obj = liftIO $ getObjectPropertyEnum obj "cursor-type"
+
+constructCursorCursorType :: CursorType -> IO ([Char], GValue)
+constructCursorCursorType val = constructObjectPropertyEnum "cursor-type" val
+
+data CursorCursorTypePropertyInfo
+instance AttrInfo CursorCursorTypePropertyInfo where
+    type AttrAllowedOps CursorCursorTypePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint CursorCursorTypePropertyInfo = (~) CursorType
+    type AttrBaseTypeConstraint CursorCursorTypePropertyInfo = CursorK
+    type AttrGetType CursorCursorTypePropertyInfo = CursorType
+    type AttrLabel CursorCursorTypePropertyInfo = "Cursor::cursor-type"
+    attrGet _ = getCursorCursorType
+    attrSet _ = undefined
+    attrConstruct _ = constructCursorCursorType
+
+-- VVV Prop "display"
+   -- Type: TInterface "Gdk" "Display"
+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+
+getCursorDisplay :: (MonadIO m, CursorK o) => o -> m Display
+getCursorDisplay obj = liftIO $ getObjectPropertyObject obj "display" Display
+
+constructCursorDisplay :: (DisplayK a) => a -> IO ([Char], GValue)
+constructCursorDisplay val = constructObjectPropertyObject "display" val
+
+data CursorDisplayPropertyInfo
+instance AttrInfo CursorDisplayPropertyInfo where
+    type AttrAllowedOps CursorDisplayPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint CursorDisplayPropertyInfo = DisplayK
+    type AttrBaseTypeConstraint CursorDisplayPropertyInfo = CursorK
+    type AttrGetType CursorDisplayPropertyInfo = Display
+    type AttrLabel CursorDisplayPropertyInfo = "Cursor::display"
+    attrGet _ = getCursorDisplay
+    attrSet _ = undefined
+    attrConstruct _ = constructCursorDisplay
+
+type instance AttributeList Cursor = CursorAttributeList
+type CursorAttributeList = ('[ '("cursor-type", CursorCursorTypePropertyInfo), '("display", CursorDisplayPropertyInfo)] :: [(Symbol, *)])
+
+type instance SignalList Cursor = CursorSignalList
+type CursorSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+
+-- method Cursor::new
+-- method type : Constructor
+-- Args : [Arg {argName = "cursor_type", argType = TInterface "Gdk" "CursorType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "cursor_type", argType = TInterface "Gdk" "CursorType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Cursor"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cursor_new" gdk_cursor_new :: 
+    CUInt ->                                -- cursor_type : TInterface "Gdk" "CursorType"
+    IO (Ptr Cursor)
+
+{-# DEPRECATED cursorNew ["(Since version 3.16)","Use gdk_cursor_new_for_display() instead."]#-}
+cursorNew ::
+    (MonadIO m) =>
+    CursorType ->                           -- cursor_type
+    m Cursor
+cursorNew cursor_type = liftIO $ do
+    let cursor_type' = (fromIntegral . fromEnum) cursor_type
+    result <- gdk_cursor_new cursor_type'
+    checkUnexpectedReturnNULL "gdk_cursor_new" result
+    result' <- (wrapObject Cursor) result
+    return result'
+
+-- method Cursor::new_for_display
+-- method type : Constructor
+-- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor_type", argType = TInterface "Gdk" "CursorType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor_type", argType = TInterface "Gdk" "CursorType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Cursor"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cursor_new_for_display" gdk_cursor_new_for_display :: 
+    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
+    CUInt ->                                -- cursor_type : TInterface "Gdk" "CursorType"
+    IO (Ptr Cursor)
+
+
+cursorNewForDisplay ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- display
+    CursorType ->                           -- cursor_type
+    m Cursor
+cursorNewForDisplay display cursor_type = liftIO $ do
+    let display' = unsafeManagedPtrCastPtr display
+    let cursor_type' = (fromIntegral . fromEnum) cursor_type
+    result <- gdk_cursor_new_for_display display' cursor_type'
+    checkUnexpectedReturnNULL "gdk_cursor_new_for_display" result
+    result' <- (wrapObject Cursor) result
+    touchManagedPtr display
+    return result'
+
+-- method Cursor::new_from_name
+-- method type : Constructor
+-- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Cursor"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cursor_new_from_name" gdk_cursor_new_from_name :: 
+    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
+    CString ->                              -- name : TBasicType TUTF8
+    IO (Ptr Cursor)
+
+
+cursorNewFromName ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- display
+    T.Text ->                               -- name
+    m Cursor
+cursorNewFromName display name = liftIO $ do
+    let display' = unsafeManagedPtrCastPtr display
+    name' <- textToCString name
+    result <- gdk_cursor_new_from_name display' name'
+    checkUnexpectedReturnNULL "gdk_cursor_new_from_name" result
+    result' <- (wrapObject Cursor) result
+    touchManagedPtr display
+    freeMem name'
+    return result'
+
+-- method Cursor::new_from_pixbuf
+-- method type : Constructor
+-- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Cursor"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cursor_new_from_pixbuf" gdk_cursor_new_from_pixbuf :: 
+    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
+    Ptr GdkPixbuf.Pixbuf ->                 -- pixbuf : TInterface "GdkPixbuf" "Pixbuf"
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    IO (Ptr Cursor)
+
+
+cursorNewFromPixbuf ::
+    (MonadIO m, DisplayK a, GdkPixbuf.PixbufK b) =>
+    a ->                                    -- display
+    b ->                                    -- pixbuf
+    Int32 ->                                -- x
+    Int32 ->                                -- y
+    m Cursor
+cursorNewFromPixbuf display pixbuf x y = liftIO $ do
+    let display' = unsafeManagedPtrCastPtr display
+    let pixbuf' = unsafeManagedPtrCastPtr pixbuf
+    result <- gdk_cursor_new_from_pixbuf display' pixbuf' x y
+    checkUnexpectedReturnNULL "gdk_cursor_new_from_pixbuf" result
+    result' <- (wrapObject Cursor) result
+    touchManagedPtr display
+    touchManagedPtr pixbuf
+    return result'
+
+-- method Cursor::new_from_surface
+-- method type : Constructor
+-- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Cursor"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cursor_new_from_surface" gdk_cursor_new_from_surface :: 
+    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
+    Ptr Cairo.Surface ->                    -- surface : TInterface "cairo" "Surface"
+    CDouble ->                              -- x : TBasicType TDouble
+    CDouble ->                              -- y : TBasicType TDouble
+    IO (Ptr Cursor)
+
+
+cursorNewFromSurface ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- display
+    Cairo.Surface ->                        -- surface
+    Double ->                               -- x
+    Double ->                               -- y
+    m Cursor
+cursorNewFromSurface display surface x y = liftIO $ do
+    let display' = unsafeManagedPtrCastPtr display
+    let surface' = unsafeManagedPtrGetPtr surface
+    let x' = realToFrac x
+    let y' = realToFrac y
+    result <- gdk_cursor_new_from_surface display' surface' x' y'
+    checkUnexpectedReturnNULL "gdk_cursor_new_from_surface" result
+    result' <- (wrapObject Cursor) result
+    touchManagedPtr display
+    touchManagedPtr surface
+    return result'
+
+-- method Cursor::get_cursor_type
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "CursorType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cursor_get_cursor_type" gdk_cursor_get_cursor_type :: 
+    Ptr Cursor ->                           -- _obj : TInterface "Gdk" "Cursor"
+    IO CUInt
+
+
+cursorGetCursorType ::
+    (MonadIO m, CursorK a) =>
+    a ->                                    -- _obj
+    m CursorType
+cursorGetCursorType _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_cursor_get_cursor_type _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Cursor::get_display
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Display"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cursor_get_display" gdk_cursor_get_display :: 
+    Ptr Cursor ->                           -- _obj : TInterface "Gdk" "Cursor"
+    IO (Ptr Display)
+
+
+cursorGetDisplay ::
+    (MonadIO m, CursorK a) =>
+    a ->                                    -- _obj
+    m Display
+cursorGetDisplay _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_cursor_get_display _obj'
+    checkUnexpectedReturnNULL "gdk_cursor_get_display" result
+    result' <- (newObject Display) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Cursor::get_image
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GdkPixbuf" "Pixbuf"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cursor_get_image" gdk_cursor_get_image :: 
+    Ptr Cursor ->                           -- _obj : TInterface "Gdk" "Cursor"
+    IO (Ptr GdkPixbuf.Pixbuf)
+
+
+cursorGetImage ::
+    (MonadIO m, CursorK a) =>
+    a ->                                    -- _obj
+    m GdkPixbuf.Pixbuf
+cursorGetImage _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_cursor_get_image _obj'
+    checkUnexpectedReturnNULL "gdk_cursor_get_image" result
+    result' <- (wrapObject GdkPixbuf.Pixbuf) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Cursor::get_surface
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_hot", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y_hot", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "cairo" "Surface"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cursor_get_surface" gdk_cursor_get_surface :: 
+    Ptr Cursor ->                           -- _obj : TInterface "Gdk" "Cursor"
+    Ptr CDouble ->                          -- x_hot : TBasicType TDouble
+    Ptr CDouble ->                          -- y_hot : TBasicType TDouble
+    IO (Ptr Cairo.Surface)
+
+
+cursorGetSurface ::
+    (MonadIO m, CursorK a) =>
+    a ->                                    -- _obj
+    m (Cairo.Surface,Double,Double)
+cursorGetSurface _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    x_hot <- allocMem :: IO (Ptr CDouble)
+    y_hot <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_cursor_get_surface _obj' x_hot y_hot
+    checkUnexpectedReturnNULL "gdk_cursor_get_surface" result
+    result' <- (wrapBoxed Cairo.Surface) result
+    x_hot' <- peek x_hot
+    let x_hot'' = realToFrac x_hot'
+    y_hot' <- peek y_hot
+    let y_hot'' = realToFrac y_hot'
+    touchManagedPtr _obj
+    freeMem x_hot
+    freeMem y_hot
+    return (result', x_hot'', y_hot'')
+
+-- method Cursor::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Cursor"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cursor_ref" gdk_cursor_ref :: 
+    Ptr Cursor ->                           -- _obj : TInterface "Gdk" "Cursor"
+    IO (Ptr Cursor)
+
+{-# DEPRECATED cursorRef ["(Since version 3.0)","Use g_object_ref() instead"]#-}
+cursorRef ::
+    (MonadIO m, CursorK a) =>
+    a ->                                    -- _obj
+    m Cursor
+cursorRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_cursor_ref _obj'
+    checkUnexpectedReturnNULL "gdk_cursor_ref" result
+    result' <- (wrapObject Cursor) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Cursor::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cursor_unref" gdk_cursor_unref :: 
+    Ptr Cursor ->                           -- _obj : TInterface "Gdk" "Cursor"
+    IO ()
+
+{-# DEPRECATED cursorUnref ["(Since version 3.0)","Use g_object_unref() instead"]#-}
+cursorUnref ::
+    (MonadIO m, CursorK a) =>
+    a ->                                    -- _obj
+    m ()
+cursorUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_cursor_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+
diff --git a/GI/Gdk/Objects/Cursor.hs-boot b/GI/Gdk/Objects/Cursor.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/Cursor.hs-boot
@@ -0,0 +1,15 @@
+module GI.Gdk.Objects.Cursor where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype Cursor = Cursor (ForeignPtr Cursor)
+instance GObject Cursor where
+class GObject o => CursorK o
+instance (GObject o, IsDescendantOf Cursor o) => CursorK o
+data CursorCursorTypePropertyInfo
+data CursorDisplayPropertyInfo
diff --git a/GI/Gdk/Objects/Device.hs b/GI/Gdk/Objects/Device.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/Device.hs
@@ -0,0 +1,1326 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Objects.Device
+    ( 
+
+-- * Exported types
+    Device(..)                              ,
+    DeviceK                                 ,
+    toDevice                                ,
+    noDevice                                ,
+
+
+ -- * Methods
+-- ** deviceGetAssociatedDevice
+    deviceGetAssociatedDevice               ,
+
+
+-- ** deviceGetAxisUse
+    deviceGetAxisUse                        ,
+
+
+-- ** deviceGetDeviceType
+    deviceGetDeviceType                     ,
+
+
+-- ** deviceGetDisplay
+    deviceGetDisplay                        ,
+
+
+-- ** deviceGetHasCursor
+    deviceGetHasCursor                      ,
+
+
+-- ** deviceGetKey
+    deviceGetKey                            ,
+
+
+-- ** deviceGetLastEventWindow
+    deviceGetLastEventWindow                ,
+
+
+-- ** deviceGetMode
+    deviceGetMode                           ,
+
+
+-- ** deviceGetNAxes
+    deviceGetNAxes                          ,
+
+
+-- ** deviceGetNKeys
+    deviceGetNKeys                          ,
+
+
+-- ** deviceGetName
+    deviceGetName                           ,
+
+
+-- ** deviceGetPosition
+    deviceGetPosition                       ,
+
+
+-- ** deviceGetPositionDouble
+    deviceGetPositionDouble                 ,
+
+
+-- ** deviceGetProductId
+    deviceGetProductId                      ,
+
+
+-- ** deviceGetSource
+    deviceGetSource                         ,
+
+
+-- ** deviceGetVendorId
+    deviceGetVendorId                       ,
+
+
+-- ** deviceGetWindowAtPosition
+    deviceGetWindowAtPosition               ,
+
+
+-- ** deviceGetWindowAtPositionDouble
+    deviceGetWindowAtPositionDouble         ,
+
+
+-- ** deviceGrab
+    deviceGrab                              ,
+
+
+-- ** deviceGrabInfoLibgtkOnly
+    deviceGrabInfoLibgtkOnly                ,
+
+
+-- ** deviceListAxes
+    deviceListAxes                          ,
+
+
+-- ** deviceListSlaveDevices
+    deviceListSlaveDevices                  ,
+
+
+-- ** deviceSetAxisUse
+    deviceSetAxisUse                        ,
+
+
+-- ** deviceSetKey
+    deviceSetKey                            ,
+
+
+-- ** deviceSetMode
+    deviceSetMode                           ,
+
+
+-- ** deviceUngrab
+    deviceUngrab                            ,
+
+
+-- ** deviceWarp
+    deviceWarp                              ,
+
+
+
+
+ -- * Properties
+-- ** AssociatedDevice
+    DeviceAssociatedDevicePropertyInfo      ,
+    getDeviceAssociatedDevice               ,
+
+
+-- ** DeviceManager
+    DeviceDeviceManagerPropertyInfo         ,
+    constructDeviceDeviceManager            ,
+    getDeviceDeviceManager                  ,
+
+
+-- ** Display
+    DeviceDisplayPropertyInfo               ,
+    constructDeviceDisplay                  ,
+    getDeviceDisplay                        ,
+
+
+-- ** HasCursor
+    DeviceHasCursorPropertyInfo             ,
+    constructDeviceHasCursor                ,
+    getDeviceHasCursor                      ,
+
+
+-- ** InputMode
+    DeviceInputModePropertyInfo             ,
+    constructDeviceInputMode                ,
+    getDeviceInputMode                      ,
+    setDeviceInputMode                      ,
+
+
+-- ** InputSource
+    DeviceInputSourcePropertyInfo           ,
+    constructDeviceInputSource              ,
+    getDeviceInputSource                    ,
+
+
+-- ** NAxes
+    DeviceNAxesPropertyInfo                 ,
+    getDeviceNAxes                          ,
+
+
+-- ** Name
+    DeviceNamePropertyInfo                  ,
+    constructDeviceName                     ,
+    getDeviceName                           ,
+
+
+-- ** ProductId
+    DeviceProductIdPropertyInfo             ,
+    constructDeviceProductId                ,
+    getDeviceProductId                      ,
+
+
+-- ** Type
+    DeviceTypePropertyInfo                  ,
+    constructDeviceType                     ,
+    getDeviceType                           ,
+
+
+-- ** VendorId
+    DeviceVendorIdPropertyInfo              ,
+    constructDeviceVendorId                 ,
+    getDeviceVendorId                       ,
+
+
+
+
+ -- * Signals
+-- ** Changed
+    DeviceChangedCallback                   ,
+    DeviceChangedCallbackC                  ,
+    DeviceChangedSignalInfo                 ,
+    afterDeviceChanged                      ,
+    deviceChangedCallbackWrapper            ,
+    deviceChangedClosure                    ,
+    mkDeviceChangedCallback                 ,
+    noDeviceChangedCallback                 ,
+    onDeviceChanged                         ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.GObject as GObject
+
+newtype Device = Device (ForeignPtr Device)
+foreign import ccall "gdk_device_get_type"
+    c_gdk_device_get_type :: IO GType
+
+type instance ParentTypes Device = DeviceParentTypes
+type DeviceParentTypes = '[GObject.Object]
+
+instance GObject Device where
+    gobjectIsInitiallyUnowned _ = False
+    gobjectType _ = c_gdk_device_get_type
+    
+
+class GObject o => DeviceK o
+instance (GObject o, IsDescendantOf Device o) => DeviceK o
+
+toDevice :: DeviceK o => o -> IO Device
+toDevice = unsafeCastTo Device
+
+noDevice :: Maybe Device
+noDevice = Nothing
+
+-- signal Device::changed
+type DeviceChangedCallback =
+    IO ()
+
+noDeviceChangedCallback :: Maybe DeviceChangedCallback
+noDeviceChangedCallback = Nothing
+
+type DeviceChangedCallbackC =
+    Ptr () ->                               -- object
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkDeviceChangedCallback :: DeviceChangedCallbackC -> IO (FunPtr DeviceChangedCallbackC)
+
+deviceChangedClosure :: DeviceChangedCallback -> IO Closure
+deviceChangedClosure cb = newCClosure =<< mkDeviceChangedCallback wrapped
+    where wrapped = deviceChangedCallbackWrapper cb
+
+deviceChangedCallbackWrapper ::
+    DeviceChangedCallback ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+deviceChangedCallbackWrapper _cb _ _ = do
+    _cb 
+
+onDeviceChanged :: (GObject a, MonadIO m) => a -> DeviceChangedCallback -> m SignalHandlerId
+onDeviceChanged obj cb = liftIO $ connectDeviceChanged obj cb SignalConnectBefore
+afterDeviceChanged :: (GObject a, MonadIO m) => a -> DeviceChangedCallback -> m SignalHandlerId
+afterDeviceChanged obj cb = connectDeviceChanged obj cb SignalConnectAfter
+
+connectDeviceChanged :: (GObject a, MonadIO m) =>
+                        a -> DeviceChangedCallback -> SignalConnectMode -> m SignalHandlerId
+connectDeviceChanged obj cb after = liftIO $ do
+    cb' <- mkDeviceChangedCallback (deviceChangedCallbackWrapper cb)
+    connectSignalFunPtr obj "changed" cb' after
+
+-- VVV Prop "associated-device"
+   -- Type: TInterface "Gdk" "Device"
+   -- Flags: [PropertyReadable]
+
+getDeviceAssociatedDevice :: (MonadIO m, DeviceK o) => o -> m Device
+getDeviceAssociatedDevice obj = liftIO $ getObjectPropertyObject obj "associated-device" Device
+
+data DeviceAssociatedDevicePropertyInfo
+instance AttrInfo DeviceAssociatedDevicePropertyInfo where
+    type AttrAllowedOps DeviceAssociatedDevicePropertyInfo = '[ 'AttrGet]
+    type AttrSetTypeConstraint DeviceAssociatedDevicePropertyInfo = (~) ()
+    type AttrBaseTypeConstraint DeviceAssociatedDevicePropertyInfo = DeviceK
+    type AttrGetType DeviceAssociatedDevicePropertyInfo = Device
+    type AttrLabel DeviceAssociatedDevicePropertyInfo = "Device::associated-device"
+    attrGet _ = getDeviceAssociatedDevice
+    attrSet _ = undefined
+    attrConstruct _ = undefined
+
+-- VVV Prop "device-manager"
+   -- Type: TInterface "Gdk" "DeviceManager"
+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+
+getDeviceDeviceManager :: (MonadIO m, DeviceK o) => o -> m DeviceManager
+getDeviceDeviceManager obj = liftIO $ getObjectPropertyObject obj "device-manager" DeviceManager
+
+constructDeviceDeviceManager :: (DeviceManagerK a) => a -> IO ([Char], GValue)
+constructDeviceDeviceManager val = constructObjectPropertyObject "device-manager" val
+
+data DeviceDeviceManagerPropertyInfo
+instance AttrInfo DeviceDeviceManagerPropertyInfo where
+    type AttrAllowedOps DeviceDeviceManagerPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint DeviceDeviceManagerPropertyInfo = DeviceManagerK
+    type AttrBaseTypeConstraint DeviceDeviceManagerPropertyInfo = DeviceK
+    type AttrGetType DeviceDeviceManagerPropertyInfo = DeviceManager
+    type AttrLabel DeviceDeviceManagerPropertyInfo = "Device::device-manager"
+    attrGet _ = getDeviceDeviceManager
+    attrSet _ = undefined
+    attrConstruct _ = constructDeviceDeviceManager
+
+-- VVV Prop "display"
+   -- Type: TInterface "Gdk" "Display"
+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+
+getDeviceDisplay :: (MonadIO m, DeviceK o) => o -> m Display
+getDeviceDisplay obj = liftIO $ getObjectPropertyObject obj "display" Display
+
+constructDeviceDisplay :: (DisplayK a) => a -> IO ([Char], GValue)
+constructDeviceDisplay val = constructObjectPropertyObject "display" val
+
+data DeviceDisplayPropertyInfo
+instance AttrInfo DeviceDisplayPropertyInfo where
+    type AttrAllowedOps DeviceDisplayPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint DeviceDisplayPropertyInfo = DisplayK
+    type AttrBaseTypeConstraint DeviceDisplayPropertyInfo = DeviceK
+    type AttrGetType DeviceDisplayPropertyInfo = Display
+    type AttrLabel DeviceDisplayPropertyInfo = "Device::display"
+    attrGet _ = getDeviceDisplay
+    attrSet _ = undefined
+    attrConstruct _ = constructDeviceDisplay
+
+-- VVV Prop "has-cursor"
+   -- Type: TBasicType TBoolean
+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+
+getDeviceHasCursor :: (MonadIO m, DeviceK o) => o -> m Bool
+getDeviceHasCursor obj = liftIO $ getObjectPropertyBool obj "has-cursor"
+
+constructDeviceHasCursor :: Bool -> IO ([Char], GValue)
+constructDeviceHasCursor val = constructObjectPropertyBool "has-cursor" val
+
+data DeviceHasCursorPropertyInfo
+instance AttrInfo DeviceHasCursorPropertyInfo where
+    type AttrAllowedOps DeviceHasCursorPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint DeviceHasCursorPropertyInfo = (~) Bool
+    type AttrBaseTypeConstraint DeviceHasCursorPropertyInfo = DeviceK
+    type AttrGetType DeviceHasCursorPropertyInfo = Bool
+    type AttrLabel DeviceHasCursorPropertyInfo = "Device::has-cursor"
+    attrGet _ = getDeviceHasCursor
+    attrSet _ = undefined
+    attrConstruct _ = constructDeviceHasCursor
+
+-- VVV Prop "input-mode"
+   -- Type: TInterface "Gdk" "InputMode"
+   -- Flags: [PropertyReadable,PropertyWritable]
+
+getDeviceInputMode :: (MonadIO m, DeviceK o) => o -> m InputMode
+getDeviceInputMode obj = liftIO $ getObjectPropertyEnum obj "input-mode"
+
+setDeviceInputMode :: (MonadIO m, DeviceK o) => o -> InputMode -> m ()
+setDeviceInputMode obj val = liftIO $ setObjectPropertyEnum obj "input-mode" val
+
+constructDeviceInputMode :: InputMode -> IO ([Char], GValue)
+constructDeviceInputMode val = constructObjectPropertyEnum "input-mode" val
+
+data DeviceInputModePropertyInfo
+instance AttrInfo DeviceInputModePropertyInfo where
+    type AttrAllowedOps DeviceInputModePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint DeviceInputModePropertyInfo = (~) InputMode
+    type AttrBaseTypeConstraint DeviceInputModePropertyInfo = DeviceK
+    type AttrGetType DeviceInputModePropertyInfo = InputMode
+    type AttrLabel DeviceInputModePropertyInfo = "Device::input-mode"
+    attrGet _ = getDeviceInputMode
+    attrSet _ = setDeviceInputMode
+    attrConstruct _ = constructDeviceInputMode
+
+-- VVV Prop "input-source"
+   -- Type: TInterface "Gdk" "InputSource"
+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+
+getDeviceInputSource :: (MonadIO m, DeviceK o) => o -> m InputSource
+getDeviceInputSource obj = liftIO $ getObjectPropertyEnum obj "input-source"
+
+constructDeviceInputSource :: InputSource -> IO ([Char], GValue)
+constructDeviceInputSource val = constructObjectPropertyEnum "input-source" val
+
+data DeviceInputSourcePropertyInfo
+instance AttrInfo DeviceInputSourcePropertyInfo where
+    type AttrAllowedOps DeviceInputSourcePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint DeviceInputSourcePropertyInfo = (~) InputSource
+    type AttrBaseTypeConstraint DeviceInputSourcePropertyInfo = DeviceK
+    type AttrGetType DeviceInputSourcePropertyInfo = InputSource
+    type AttrLabel DeviceInputSourcePropertyInfo = "Device::input-source"
+    attrGet _ = getDeviceInputSource
+    attrSet _ = undefined
+    attrConstruct _ = constructDeviceInputSource
+
+-- VVV Prop "n-axes"
+   -- Type: TBasicType TUInt32
+   -- Flags: [PropertyReadable]
+
+getDeviceNAxes :: (MonadIO m, DeviceK o) => o -> m Word32
+getDeviceNAxes obj = liftIO $ getObjectPropertyCUInt obj "n-axes"
+
+data DeviceNAxesPropertyInfo
+instance AttrInfo DeviceNAxesPropertyInfo where
+    type AttrAllowedOps DeviceNAxesPropertyInfo = '[ 'AttrGet]
+    type AttrSetTypeConstraint DeviceNAxesPropertyInfo = (~) ()
+    type AttrBaseTypeConstraint DeviceNAxesPropertyInfo = DeviceK
+    type AttrGetType DeviceNAxesPropertyInfo = Word32
+    type AttrLabel DeviceNAxesPropertyInfo = "Device::n-axes"
+    attrGet _ = getDeviceNAxes
+    attrSet _ = undefined
+    attrConstruct _ = undefined
+
+-- VVV Prop "name"
+   -- Type: TBasicType TUTF8
+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+
+getDeviceName :: (MonadIO m, DeviceK o) => o -> m T.Text
+getDeviceName obj = liftIO $ getObjectPropertyString obj "name"
+
+constructDeviceName :: T.Text -> IO ([Char], GValue)
+constructDeviceName val = constructObjectPropertyString "name" val
+
+data DeviceNamePropertyInfo
+instance AttrInfo DeviceNamePropertyInfo where
+    type AttrAllowedOps DeviceNamePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint DeviceNamePropertyInfo = (~) T.Text
+    type AttrBaseTypeConstraint DeviceNamePropertyInfo = DeviceK
+    type AttrGetType DeviceNamePropertyInfo = T.Text
+    type AttrLabel DeviceNamePropertyInfo = "Device::name"
+    attrGet _ = getDeviceName
+    attrSet _ = undefined
+    attrConstruct _ = constructDeviceName
+
+-- VVV Prop "product-id"
+   -- Type: TBasicType TUTF8
+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+
+getDeviceProductId :: (MonadIO m, DeviceK o) => o -> m T.Text
+getDeviceProductId obj = liftIO $ getObjectPropertyString obj "product-id"
+
+constructDeviceProductId :: T.Text -> IO ([Char], GValue)
+constructDeviceProductId val = constructObjectPropertyString "product-id" val
+
+data DeviceProductIdPropertyInfo
+instance AttrInfo DeviceProductIdPropertyInfo where
+    type AttrAllowedOps DeviceProductIdPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint DeviceProductIdPropertyInfo = (~) T.Text
+    type AttrBaseTypeConstraint DeviceProductIdPropertyInfo = DeviceK
+    type AttrGetType DeviceProductIdPropertyInfo = T.Text
+    type AttrLabel DeviceProductIdPropertyInfo = "Device::product-id"
+    attrGet _ = getDeviceProductId
+    attrSet _ = undefined
+    attrConstruct _ = constructDeviceProductId
+
+-- VVV Prop "type"
+   -- Type: TInterface "Gdk" "DeviceType"
+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+
+getDeviceType :: (MonadIO m, DeviceK o) => o -> m DeviceType
+getDeviceType obj = liftIO $ getObjectPropertyEnum obj "type"
+
+constructDeviceType :: DeviceType -> IO ([Char], GValue)
+constructDeviceType val = constructObjectPropertyEnum "type" val
+
+data DeviceTypePropertyInfo
+instance AttrInfo DeviceTypePropertyInfo where
+    type AttrAllowedOps DeviceTypePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint DeviceTypePropertyInfo = (~) DeviceType
+    type AttrBaseTypeConstraint DeviceTypePropertyInfo = DeviceK
+    type AttrGetType DeviceTypePropertyInfo = DeviceType
+    type AttrLabel DeviceTypePropertyInfo = "Device::type"
+    attrGet _ = getDeviceType
+    attrSet _ = undefined
+    attrConstruct _ = constructDeviceType
+
+-- VVV Prop "vendor-id"
+   -- Type: TBasicType TUTF8
+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+
+getDeviceVendorId :: (MonadIO m, DeviceK o) => o -> m T.Text
+getDeviceVendorId obj = liftIO $ getObjectPropertyString obj "vendor-id"
+
+constructDeviceVendorId :: T.Text -> IO ([Char], GValue)
+constructDeviceVendorId val = constructObjectPropertyString "vendor-id" val
+
+data DeviceVendorIdPropertyInfo
+instance AttrInfo DeviceVendorIdPropertyInfo where
+    type AttrAllowedOps DeviceVendorIdPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint DeviceVendorIdPropertyInfo = (~) T.Text
+    type AttrBaseTypeConstraint DeviceVendorIdPropertyInfo = DeviceK
+    type AttrGetType DeviceVendorIdPropertyInfo = T.Text
+    type AttrLabel DeviceVendorIdPropertyInfo = "Device::vendor-id"
+    attrGet _ = getDeviceVendorId
+    attrSet _ = undefined
+    attrConstruct _ = constructDeviceVendorId
+
+type instance AttributeList Device = DeviceAttributeList
+type DeviceAttributeList = ('[ '("associated-device", DeviceAssociatedDevicePropertyInfo), '("device-manager", DeviceDeviceManagerPropertyInfo), '("display", DeviceDisplayPropertyInfo), '("has-cursor", DeviceHasCursorPropertyInfo), '("input-mode", DeviceInputModePropertyInfo), '("input-source", DeviceInputSourcePropertyInfo), '("n-axes", DeviceNAxesPropertyInfo), '("name", DeviceNamePropertyInfo), '("product-id", DeviceProductIdPropertyInfo), '("type", DeviceTypePropertyInfo), '("vendor-id", DeviceVendorIdPropertyInfo)] :: [(Symbol, *)])
+
+data DeviceChangedSignalInfo
+instance SignalInfo DeviceChangedSignalInfo where
+    type HaskellCallbackType DeviceChangedSignalInfo = DeviceChangedCallback
+    connectSignal _ = connectDeviceChanged
+
+type instance SignalList Device = DeviceSignalList
+type DeviceSignalList = ('[ '("changed", DeviceChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+
+-- method Device::get_associated_device
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Device"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_associated_device" gdk_device_get_associated_device :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    IO (Ptr Device)
+
+
+deviceGetAssociatedDevice ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m Device
+deviceGetAssociatedDevice _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_get_associated_device _obj'
+    checkUnexpectedReturnNULL "gdk_device_get_associated_device" result
+    result' <- (newObject Device) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Device::get_axis_use
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "AxisUse"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_axis_use" gdk_device_get_axis_use :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    Word32 ->                               -- index_ : TBasicType TUInt32
+    IO CUInt
+
+
+deviceGetAxisUse ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    Word32 ->                               -- index_
+    m AxisUse
+deviceGetAxisUse _obj index_ = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_get_axis_use _obj' index_
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Device::get_device_type
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "DeviceType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_device_type" gdk_device_get_device_type :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    IO CUInt
+
+
+deviceGetDeviceType ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m DeviceType
+deviceGetDeviceType _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_get_device_type _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Device::get_display
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Display"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_display" gdk_device_get_display :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    IO (Ptr Display)
+
+
+deviceGetDisplay ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m Display
+deviceGetDisplay _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_get_display _obj'
+    checkUnexpectedReturnNULL "gdk_device_get_display" result
+    result' <- (newObject Display) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Device::get_has_cursor
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_has_cursor" gdk_device_get_has_cursor :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    IO CInt
+
+
+deviceGetHasCursor ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m Bool
+deviceGetHasCursor _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_get_has_cursor _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Device::get_key
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_key" gdk_device_get_key :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    Word32 ->                               -- index_ : TBasicType TUInt32
+    Ptr Word32 ->                           -- keyval : TBasicType TUInt32
+    Ptr CUInt ->                            -- modifiers : TInterface "Gdk" "ModifierType"
+    IO CInt
+
+
+deviceGetKey ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    Word32 ->                               -- index_
+    m (Bool,Word32,[ModifierType])
+deviceGetKey _obj index_ = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    keyval <- allocMem :: IO (Ptr Word32)
+    modifiers <- allocMem :: IO (Ptr CUInt)
+    result <- gdk_device_get_key _obj' index_ keyval modifiers
+    let result' = (/= 0) result
+    keyval' <- peek keyval
+    modifiers' <- peek modifiers
+    let modifiers'' = wordToGFlags modifiers'
+    touchManagedPtr _obj
+    freeMem keyval
+    freeMem modifiers
+    return (result', keyval', modifiers'')
+
+-- method Device::get_last_event_window
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_last_event_window" gdk_device_get_last_event_window :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    IO (Ptr Window)
+
+
+deviceGetLastEventWindow ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m Window
+deviceGetLastEventWindow _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_get_last_event_window _obj'
+    checkUnexpectedReturnNULL "gdk_device_get_last_event_window" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Device::get_mode
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "InputMode"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_mode" gdk_device_get_mode :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    IO CUInt
+
+
+deviceGetMode ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m InputMode
+deviceGetMode _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_get_mode _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Device::get_n_axes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_n_axes" gdk_device_get_n_axes :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    IO Int32
+
+
+deviceGetNAxes ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m Int32
+deviceGetNAxes _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_get_n_axes _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Device::get_n_keys
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_n_keys" gdk_device_get_n_keys :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    IO Int32
+
+
+deviceGetNKeys ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m Int32
+deviceGetNKeys _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_get_n_keys _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Device::get_name
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_name" gdk_device_get_name :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    IO CString
+
+
+deviceGetName ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m T.Text
+deviceGetName _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_get_name _obj'
+    checkUnexpectedReturnNULL "gdk_device_get_name" result
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- method Device::get_position
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_position" gdk_device_get_position :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    Ptr (Ptr Screen) ->                     -- screen : TInterface "Gdk" "Screen"
+    Ptr Int32 ->                            -- x : TBasicType TInt32
+    Ptr Int32 ->                            -- y : TBasicType TInt32
+    IO ()
+
+
+deviceGetPosition ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m (Screen,Int32,Int32)
+deviceGetPosition _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    screen <- allocMem :: IO (Ptr (Ptr Screen))
+    x <- allocMem :: IO (Ptr Int32)
+    y <- allocMem :: IO (Ptr Int32)
+    gdk_device_get_position _obj' screen x y
+    screen' <- peek screen
+    screen'' <- (newObject Screen) screen'
+    x' <- peek x
+    y' <- peek y
+    touchManagedPtr _obj
+    freeMem screen
+    freeMem x
+    freeMem y
+    return (screen'', x', y')
+
+-- method Device::get_position_double
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_position_double" gdk_device_get_position_double :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    Ptr (Ptr Screen) ->                     -- screen : TInterface "Gdk" "Screen"
+    Ptr CDouble ->                          -- x : TBasicType TDouble
+    Ptr CDouble ->                          -- y : TBasicType TDouble
+    IO ()
+
+
+deviceGetPositionDouble ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m (Screen,Double,Double)
+deviceGetPositionDouble _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    screen <- allocMem :: IO (Ptr (Ptr Screen))
+    x <- allocMem :: IO (Ptr CDouble)
+    y <- allocMem :: IO (Ptr CDouble)
+    gdk_device_get_position_double _obj' screen x y
+    screen' <- peek screen
+    screen'' <- (newObject Screen) screen'
+    x' <- peek x
+    let x'' = realToFrac x'
+    y' <- peek y
+    let y'' = realToFrac y'
+    touchManagedPtr _obj
+    freeMem screen
+    freeMem x
+    freeMem y
+    return (screen'', x'', y'')
+
+-- method Device::get_product_id
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_product_id" gdk_device_get_product_id :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    IO CString
+
+
+deviceGetProductId ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m T.Text
+deviceGetProductId _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_get_product_id _obj'
+    checkUnexpectedReturnNULL "gdk_device_get_product_id" result
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- method Device::get_source
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "InputSource"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_source" gdk_device_get_source :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    IO CUInt
+
+
+deviceGetSource ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m InputSource
+deviceGetSource _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_get_source _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Device::get_vendor_id
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_vendor_id" gdk_device_get_vendor_id :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    IO CString
+
+
+deviceGetVendorId ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m T.Text
+deviceGetVendorId _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_get_vendor_id _obj'
+    checkUnexpectedReturnNULL "gdk_device_get_vendor_id" result
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- method Device::get_window_at_position
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "win_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "win_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_window_at_position" gdk_device_get_window_at_position :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    Ptr Int32 ->                            -- win_x : TBasicType TInt32
+    Ptr Int32 ->                            -- win_y : TBasicType TInt32
+    IO (Ptr Window)
+
+
+deviceGetWindowAtPosition ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m (Window,Int32,Int32)
+deviceGetWindowAtPosition _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    win_x <- allocMem :: IO (Ptr Int32)
+    win_y <- allocMem :: IO (Ptr Int32)
+    result <- gdk_device_get_window_at_position _obj' win_x win_y
+    checkUnexpectedReturnNULL "gdk_device_get_window_at_position" result
+    result' <- (newObject Window) result
+    win_x' <- peek win_x
+    win_y' <- peek win_y
+    touchManagedPtr _obj
+    freeMem win_x
+    freeMem win_y
+    return (result', win_x', win_y')
+
+-- method Device::get_window_at_position_double
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "win_x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "win_y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_get_window_at_position_double" gdk_device_get_window_at_position_double :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    Ptr CDouble ->                          -- win_x : TBasicType TDouble
+    Ptr CDouble ->                          -- win_y : TBasicType TDouble
+    IO (Ptr Window)
+
+
+deviceGetWindowAtPositionDouble ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m (Window,Double,Double)
+deviceGetWindowAtPositionDouble _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    win_x <- allocMem :: IO (Ptr CDouble)
+    win_y <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_device_get_window_at_position_double _obj' win_x win_y
+    checkUnexpectedReturnNULL "gdk_device_get_window_at_position_double" result
+    result' <- (newObject Window) result
+    win_x' <- peek win_x
+    let win_x'' = realToFrac win_x'
+    win_y' <- peek win_y
+    let win_y'' = realToFrac win_y'
+    touchManagedPtr _obj
+    freeMem win_x
+    freeMem win_y
+    return (result', win_x'', win_y'')
+
+-- method Device::grab
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "grab_ownership", argType = TInterface "Gdk" "GrabOwnership", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "grab_ownership", argType = TInterface "Gdk" "GrabOwnership", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "GrabStatus"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_grab" gdk_device_grab :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    CUInt ->                                -- grab_ownership : TInterface "Gdk" "GrabOwnership"
+    CInt ->                                 -- owner_events : TBasicType TBoolean
+    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
+    Ptr Cursor ->                           -- cursor : TInterface "Gdk" "Cursor"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO CUInt
+
+
+deviceGrab ::
+    (MonadIO m, DeviceK a, WindowK b, CursorK c) =>
+    a ->                                    -- _obj
+    b ->                                    -- window
+    GrabOwnership ->                        -- grab_ownership
+    Bool ->                                 -- owner_events
+    [EventMask] ->                          -- event_mask
+    Maybe (c) ->                            -- cursor
+    Word32 ->                               -- time_
+    m GrabStatus
+deviceGrab _obj window grab_ownership owner_events event_mask cursor time_ = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let window' = unsafeManagedPtrCastPtr window
+    let grab_ownership' = (fromIntegral . fromEnum) grab_ownership
+    let owner_events' = (fromIntegral . fromEnum) owner_events
+    let event_mask' = gflagsToWord event_mask
+    maybeCursor <- case cursor of
+        Nothing -> return nullPtr
+        Just jCursor -> do
+            let jCursor' = unsafeManagedPtrCastPtr jCursor
+            return jCursor'
+    result <- gdk_device_grab _obj' window' grab_ownership' owner_events' event_mask' maybeCursor time_
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    touchManagedPtr window
+    whenJust cursor touchManagedPtr
+    return result'
+
+-- method Device::list_axes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TGList (TInterface "Gdk" "Atom")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_list_axes" gdk_device_list_axes :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    IO (Ptr (GList (Ptr Atom)))
+
+
+deviceListAxes ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m [Atom]
+deviceListAxes _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_list_axes _obj'
+    checkUnexpectedReturnNULL "gdk_device_list_axes" result
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    result' <- unpackGList result
+    result'' <- mapM (\x -> Atom <$> newForeignPtr_ x) result'
+    g_list_free result
+    touchManagedPtr _obj
+    return result''
+
+-- method Device::list_slave_devices
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TGList (TInterface "Gdk" "Device")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_list_slave_devices" gdk_device_list_slave_devices :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    IO (Ptr (GList (Ptr Device)))
+
+
+deviceListSlaveDevices ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    m [Device]
+deviceListSlaveDevices _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_list_slave_devices _obj'
+    checkUnexpectedReturnNULL "gdk_device_list_slave_devices" result
+    result' <- unpackGList result
+    result'' <- mapM (newObject Device) result'
+    g_list_free result
+    touchManagedPtr _obj
+    return result''
+
+-- method Device::set_axis_use
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "use", argType = TInterface "Gdk" "AxisUse", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "use", argType = TInterface "Gdk" "AxisUse", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_set_axis_use" gdk_device_set_axis_use :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    Word32 ->                               -- index_ : TBasicType TUInt32
+    CUInt ->                                -- use : TInterface "Gdk" "AxisUse"
+    IO ()
+
+
+deviceSetAxisUse ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    Word32 ->                               -- index_
+    AxisUse ->                              -- use
+    m ()
+deviceSetAxisUse _obj index_ use = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let use' = (fromIntegral . fromEnum) use
+    gdk_device_set_axis_use _obj' index_ use'
+    touchManagedPtr _obj
+    return ()
+
+-- method Device::set_key
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_set_key" gdk_device_set_key :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    Word32 ->                               -- index_ : TBasicType TUInt32
+    Word32 ->                               -- keyval : TBasicType TUInt32
+    CUInt ->                                -- modifiers : TInterface "Gdk" "ModifierType"
+    IO ()
+
+
+deviceSetKey ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    Word32 ->                               -- index_
+    Word32 ->                               -- keyval
+    [ModifierType] ->                       -- modifiers
+    m ()
+deviceSetKey _obj index_ keyval modifiers = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let modifiers' = gflagsToWord modifiers
+    gdk_device_set_key _obj' index_ keyval modifiers'
+    touchManagedPtr _obj
+    return ()
+
+-- method Device::set_mode
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TInterface "Gdk" "InputMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TInterface "Gdk" "InputMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_set_mode" gdk_device_set_mode :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    CUInt ->                                -- mode : TInterface "Gdk" "InputMode"
+    IO CInt
+
+
+deviceSetMode ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    InputMode ->                            -- mode
+    m Bool
+deviceSetMode _obj mode = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let mode' = (fromIntegral . fromEnum) mode
+    result <- gdk_device_set_mode _obj' mode'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Device::ungrab
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_ungrab" gdk_device_ungrab :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+deviceUngrab ::
+    (MonadIO m, DeviceK a) =>
+    a ->                                    -- _obj
+    Word32 ->                               -- time_
+    m ()
+deviceUngrab _obj time_ = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_device_ungrab _obj' time_
+    touchManagedPtr _obj
+    return ()
+
+-- method Device::warp
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_warp" gdk_device_warp :: 
+    Ptr Device ->                           -- _obj : TInterface "Gdk" "Device"
+    Ptr Screen ->                           -- screen : TInterface "Gdk" "Screen"
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    IO ()
+
+
+deviceWarp ::
+    (MonadIO m, DeviceK a, ScreenK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- screen
+    Int32 ->                                -- x
+    Int32 ->                                -- y
+    m ()
+deviceWarp _obj screen x y = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let screen' = unsafeManagedPtrCastPtr screen
+    gdk_device_warp _obj' screen' x y
+    touchManagedPtr _obj
+    touchManagedPtr screen
+    return ()
+
+-- method Device::grab_info_libgtk_only
+-- method type : MemberFunction
+-- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "grab_window", argType = TInterface "Gdk" "Window", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_grab_info_libgtk_only" gdk_device_grab_info_libgtk_only :: 
+    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    Ptr (Ptr Window) ->                     -- grab_window : TInterface "Gdk" "Window"
+    Ptr CInt ->                             -- owner_events : TBasicType TBoolean
+    IO CInt
+
+{-# DEPRECATED deviceGrabInfoLibgtkOnly ["(Since version 3.16)","The symbol was never meant to be used outside","  of GTK+"]#-}
+deviceGrabInfoLibgtkOnly ::
+    (MonadIO m, DisplayK a, DeviceK b) =>
+    a ->                                    -- display
+    b ->                                    -- device
+    m (Bool,Window,Bool)
+deviceGrabInfoLibgtkOnly display device = liftIO $ do
+    let display' = unsafeManagedPtrCastPtr display
+    let device' = unsafeManagedPtrCastPtr device
+    grab_window <- allocMem :: IO (Ptr (Ptr Window))
+    owner_events <- allocMem :: IO (Ptr CInt)
+    result <- gdk_device_grab_info_libgtk_only display' device' grab_window owner_events
+    let result' = (/= 0) result
+    grab_window' <- peek grab_window
+    grab_window'' <- (newObject Window) grab_window'
+    owner_events' <- peek owner_events
+    let owner_events'' = (/= 0) owner_events'
+    touchManagedPtr display
+    touchManagedPtr device
+    freeMem grab_window
+    freeMem owner_events
+    return (result', grab_window'', owner_events'')
+
+
diff --git a/GI/Gdk/Objects/Device.hs-boot b/GI/Gdk/Objects/Device.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/Device.hs-boot
@@ -0,0 +1,25 @@
+module GI.Gdk.Objects.Device where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype Device = Device (ForeignPtr Device)
+instance GObject Device where
+class GObject o => DeviceK o
+instance (GObject o, IsDescendantOf Device o) => DeviceK o
+data DeviceAssociatedDevicePropertyInfo
+data DeviceDeviceManagerPropertyInfo
+data DeviceDisplayPropertyInfo
+data DeviceHasCursorPropertyInfo
+data DeviceInputModePropertyInfo
+data DeviceInputSourcePropertyInfo
+data DeviceNAxesPropertyInfo
+data DeviceNamePropertyInfo
+data DeviceProductIdPropertyInfo
+data DeviceTypePropertyInfo
+data DeviceVendorIdPropertyInfo
+data DeviceChangedSignalInfo
diff --git a/GI/Gdk/Objects/DeviceManager.hs b/GI/Gdk/Objects/DeviceManager.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/DeviceManager.hs
@@ -0,0 +1,366 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Objects.DeviceManager
+    ( 
+
+-- * Exported types
+    DeviceManager(..)                       ,
+    DeviceManagerK                          ,
+    toDeviceManager                         ,
+    noDeviceManager                         ,
+
+
+ -- * Methods
+-- ** deviceManagerGetClientPointer
+    deviceManagerGetClientPointer           ,
+
+
+-- ** deviceManagerGetDisplay
+    deviceManagerGetDisplay                 ,
+
+
+-- ** deviceManagerListDevices
+    deviceManagerListDevices                ,
+
+
+
+
+ -- * Properties
+-- ** Display
+    DeviceManagerDisplayPropertyInfo        ,
+    constructDeviceManagerDisplay           ,
+    getDeviceManagerDisplay                 ,
+
+
+
+
+ -- * Signals
+-- ** DeviceAdded
+    DeviceManagerDeviceAddedCallback        ,
+    DeviceManagerDeviceAddedCallbackC       ,
+    DeviceManagerDeviceAddedSignalInfo      ,
+    afterDeviceManagerDeviceAdded           ,
+    deviceManagerDeviceAddedCallbackWrapper ,
+    deviceManagerDeviceAddedClosure         ,
+    mkDeviceManagerDeviceAddedCallback      ,
+    noDeviceManagerDeviceAddedCallback      ,
+    onDeviceManagerDeviceAdded              ,
+
+
+-- ** DeviceChanged
+    DeviceManagerDeviceChangedCallback      ,
+    DeviceManagerDeviceChangedCallbackC     ,
+    DeviceManagerDeviceChangedSignalInfo    ,
+    afterDeviceManagerDeviceChanged         ,
+    deviceManagerDeviceChangedCallbackWrapper,
+    deviceManagerDeviceChangedClosure       ,
+    mkDeviceManagerDeviceChangedCallback    ,
+    noDeviceManagerDeviceChangedCallback    ,
+    onDeviceManagerDeviceChanged            ,
+
+
+-- ** DeviceRemoved
+    DeviceManagerDeviceRemovedCallback      ,
+    DeviceManagerDeviceRemovedCallbackC     ,
+    DeviceManagerDeviceRemovedSignalInfo    ,
+    afterDeviceManagerDeviceRemoved         ,
+    deviceManagerDeviceRemovedCallbackWrapper,
+    deviceManagerDeviceRemovedClosure       ,
+    mkDeviceManagerDeviceRemovedCallback    ,
+    noDeviceManagerDeviceRemovedCallback    ,
+    onDeviceManagerDeviceRemoved            ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.GObject as GObject
+
+newtype DeviceManager = DeviceManager (ForeignPtr DeviceManager)
+foreign import ccall "gdk_device_manager_get_type"
+    c_gdk_device_manager_get_type :: IO GType
+
+type instance ParentTypes DeviceManager = DeviceManagerParentTypes
+type DeviceManagerParentTypes = '[GObject.Object]
+
+instance GObject DeviceManager where
+    gobjectIsInitiallyUnowned _ = False
+    gobjectType _ = c_gdk_device_manager_get_type
+    
+
+class GObject o => DeviceManagerK o
+instance (GObject o, IsDescendantOf DeviceManager o) => DeviceManagerK o
+
+toDeviceManager :: DeviceManagerK o => o -> IO DeviceManager
+toDeviceManager = unsafeCastTo DeviceManager
+
+noDeviceManager :: Maybe DeviceManager
+noDeviceManager = Nothing
+
+-- signal DeviceManager::device-added
+type DeviceManagerDeviceAddedCallback =
+    Device ->
+    IO ()
+
+noDeviceManagerDeviceAddedCallback :: Maybe DeviceManagerDeviceAddedCallback
+noDeviceManagerDeviceAddedCallback = Nothing
+
+type DeviceManagerDeviceAddedCallbackC =
+    Ptr () ->                               -- object
+    Ptr Device ->
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkDeviceManagerDeviceAddedCallback :: DeviceManagerDeviceAddedCallbackC -> IO (FunPtr DeviceManagerDeviceAddedCallbackC)
+
+deviceManagerDeviceAddedClosure :: DeviceManagerDeviceAddedCallback -> IO Closure
+deviceManagerDeviceAddedClosure cb = newCClosure =<< mkDeviceManagerDeviceAddedCallback wrapped
+    where wrapped = deviceManagerDeviceAddedCallbackWrapper cb
+
+deviceManagerDeviceAddedCallbackWrapper ::
+    DeviceManagerDeviceAddedCallback ->
+    Ptr () ->
+    Ptr Device ->
+    Ptr () ->
+    IO ()
+deviceManagerDeviceAddedCallbackWrapper _cb _ device _ = do
+    device' <- (newObject Device) device
+    _cb  device'
+
+onDeviceManagerDeviceAdded :: (GObject a, MonadIO m) => a -> DeviceManagerDeviceAddedCallback -> m SignalHandlerId
+onDeviceManagerDeviceAdded obj cb = liftIO $ connectDeviceManagerDeviceAdded obj cb SignalConnectBefore
+afterDeviceManagerDeviceAdded :: (GObject a, MonadIO m) => a -> DeviceManagerDeviceAddedCallback -> m SignalHandlerId
+afterDeviceManagerDeviceAdded obj cb = connectDeviceManagerDeviceAdded obj cb SignalConnectAfter
+
+connectDeviceManagerDeviceAdded :: (GObject a, MonadIO m) =>
+                                   a -> DeviceManagerDeviceAddedCallback -> SignalConnectMode -> m SignalHandlerId
+connectDeviceManagerDeviceAdded obj cb after = liftIO $ do
+    cb' <- mkDeviceManagerDeviceAddedCallback (deviceManagerDeviceAddedCallbackWrapper cb)
+    connectSignalFunPtr obj "device-added" cb' after
+
+-- signal DeviceManager::device-changed
+type DeviceManagerDeviceChangedCallback =
+    Device ->
+    IO ()
+
+noDeviceManagerDeviceChangedCallback :: Maybe DeviceManagerDeviceChangedCallback
+noDeviceManagerDeviceChangedCallback = Nothing
+
+type DeviceManagerDeviceChangedCallbackC =
+    Ptr () ->                               -- object
+    Ptr Device ->
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkDeviceManagerDeviceChangedCallback :: DeviceManagerDeviceChangedCallbackC -> IO (FunPtr DeviceManagerDeviceChangedCallbackC)
+
+deviceManagerDeviceChangedClosure :: DeviceManagerDeviceChangedCallback -> IO Closure
+deviceManagerDeviceChangedClosure cb = newCClosure =<< mkDeviceManagerDeviceChangedCallback wrapped
+    where wrapped = deviceManagerDeviceChangedCallbackWrapper cb
+
+deviceManagerDeviceChangedCallbackWrapper ::
+    DeviceManagerDeviceChangedCallback ->
+    Ptr () ->
+    Ptr Device ->
+    Ptr () ->
+    IO ()
+deviceManagerDeviceChangedCallbackWrapper _cb _ device _ = do
+    device' <- (newObject Device) device
+    _cb  device'
+
+onDeviceManagerDeviceChanged :: (GObject a, MonadIO m) => a -> DeviceManagerDeviceChangedCallback -> m SignalHandlerId
+onDeviceManagerDeviceChanged obj cb = liftIO $ connectDeviceManagerDeviceChanged obj cb SignalConnectBefore
+afterDeviceManagerDeviceChanged :: (GObject a, MonadIO m) => a -> DeviceManagerDeviceChangedCallback -> m SignalHandlerId
+afterDeviceManagerDeviceChanged obj cb = connectDeviceManagerDeviceChanged obj cb SignalConnectAfter
+
+connectDeviceManagerDeviceChanged :: (GObject a, MonadIO m) =>
+                                     a -> DeviceManagerDeviceChangedCallback -> SignalConnectMode -> m SignalHandlerId
+connectDeviceManagerDeviceChanged obj cb after = liftIO $ do
+    cb' <- mkDeviceManagerDeviceChangedCallback (deviceManagerDeviceChangedCallbackWrapper cb)
+    connectSignalFunPtr obj "device-changed" cb' after
+
+-- signal DeviceManager::device-removed
+type DeviceManagerDeviceRemovedCallback =
+    Device ->
+    IO ()
+
+noDeviceManagerDeviceRemovedCallback :: Maybe DeviceManagerDeviceRemovedCallback
+noDeviceManagerDeviceRemovedCallback = Nothing
+
+type DeviceManagerDeviceRemovedCallbackC =
+    Ptr () ->                               -- object
+    Ptr Device ->
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkDeviceManagerDeviceRemovedCallback :: DeviceManagerDeviceRemovedCallbackC -> IO (FunPtr DeviceManagerDeviceRemovedCallbackC)
+
+deviceManagerDeviceRemovedClosure :: DeviceManagerDeviceRemovedCallback -> IO Closure
+deviceManagerDeviceRemovedClosure cb = newCClosure =<< mkDeviceManagerDeviceRemovedCallback wrapped
+    where wrapped = deviceManagerDeviceRemovedCallbackWrapper cb
+
+deviceManagerDeviceRemovedCallbackWrapper ::
+    DeviceManagerDeviceRemovedCallback ->
+    Ptr () ->
+    Ptr Device ->
+    Ptr () ->
+    IO ()
+deviceManagerDeviceRemovedCallbackWrapper _cb _ device _ = do
+    device' <- (newObject Device) device
+    _cb  device'
+
+onDeviceManagerDeviceRemoved :: (GObject a, MonadIO m) => a -> DeviceManagerDeviceRemovedCallback -> m SignalHandlerId
+onDeviceManagerDeviceRemoved obj cb = liftIO $ connectDeviceManagerDeviceRemoved obj cb SignalConnectBefore
+afterDeviceManagerDeviceRemoved :: (GObject a, MonadIO m) => a -> DeviceManagerDeviceRemovedCallback -> m SignalHandlerId
+afterDeviceManagerDeviceRemoved obj cb = connectDeviceManagerDeviceRemoved obj cb SignalConnectAfter
+
+connectDeviceManagerDeviceRemoved :: (GObject a, MonadIO m) =>
+                                     a -> DeviceManagerDeviceRemovedCallback -> SignalConnectMode -> m SignalHandlerId
+connectDeviceManagerDeviceRemoved obj cb after = liftIO $ do
+    cb' <- mkDeviceManagerDeviceRemovedCallback (deviceManagerDeviceRemovedCallbackWrapper cb)
+    connectSignalFunPtr obj "device-removed" cb' after
+
+-- VVV Prop "display"
+   -- Type: TInterface "Gdk" "Display"
+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+
+getDeviceManagerDisplay :: (MonadIO m, DeviceManagerK o) => o -> m Display
+getDeviceManagerDisplay obj = liftIO $ getObjectPropertyObject obj "display" Display
+
+constructDeviceManagerDisplay :: (DisplayK a) => a -> IO ([Char], GValue)
+constructDeviceManagerDisplay val = constructObjectPropertyObject "display" val
+
+data DeviceManagerDisplayPropertyInfo
+instance AttrInfo DeviceManagerDisplayPropertyInfo where
+    type AttrAllowedOps DeviceManagerDisplayPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint DeviceManagerDisplayPropertyInfo = DisplayK
+    type AttrBaseTypeConstraint DeviceManagerDisplayPropertyInfo = DeviceManagerK
+    type AttrGetType DeviceManagerDisplayPropertyInfo = Display
+    type AttrLabel DeviceManagerDisplayPropertyInfo = "DeviceManager::display"
+    attrGet _ = getDeviceManagerDisplay
+    attrSet _ = undefined
+    attrConstruct _ = constructDeviceManagerDisplay
+
+type instance AttributeList DeviceManager = DeviceManagerAttributeList
+type DeviceManagerAttributeList = ('[ '("display", DeviceManagerDisplayPropertyInfo)] :: [(Symbol, *)])
+
+data DeviceManagerDeviceAddedSignalInfo
+instance SignalInfo DeviceManagerDeviceAddedSignalInfo where
+    type HaskellCallbackType DeviceManagerDeviceAddedSignalInfo = DeviceManagerDeviceAddedCallback
+    connectSignal _ = connectDeviceManagerDeviceAdded
+
+data DeviceManagerDeviceChangedSignalInfo
+instance SignalInfo DeviceManagerDeviceChangedSignalInfo where
+    type HaskellCallbackType DeviceManagerDeviceChangedSignalInfo = DeviceManagerDeviceChangedCallback
+    connectSignal _ = connectDeviceManagerDeviceChanged
+
+data DeviceManagerDeviceRemovedSignalInfo
+instance SignalInfo DeviceManagerDeviceRemovedSignalInfo where
+    type HaskellCallbackType DeviceManagerDeviceRemovedSignalInfo = DeviceManagerDeviceRemovedCallback
+    connectSignal _ = connectDeviceManagerDeviceRemoved
+
+type instance SignalList DeviceManager = DeviceManagerSignalList
+type DeviceManagerSignalList = ('[ '("device-added", DeviceManagerDeviceAddedSignalInfo), '("device-changed", DeviceManagerDeviceChangedSignalInfo), '("device-removed", DeviceManagerDeviceRemovedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+
+-- method DeviceManager::get_client_pointer
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Device"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_manager_get_client_pointer" gdk_device_manager_get_client_pointer :: 
+    Ptr DeviceManager ->                    -- _obj : TInterface "Gdk" "DeviceManager"
+    IO (Ptr Device)
+
+
+deviceManagerGetClientPointer ::
+    (MonadIO m, DeviceManagerK a) =>
+    a ->                                    -- _obj
+    m Device
+deviceManagerGetClientPointer _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_manager_get_client_pointer _obj'
+    checkUnexpectedReturnNULL "gdk_device_manager_get_client_pointer" result
+    result' <- (newObject Device) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DeviceManager::get_display
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Display"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_manager_get_display" gdk_device_manager_get_display :: 
+    Ptr DeviceManager ->                    -- _obj : TInterface "Gdk" "DeviceManager"
+    IO (Ptr Display)
+
+
+deviceManagerGetDisplay ::
+    (MonadIO m, DeviceManagerK a) =>
+    a ->                                    -- _obj
+    m Display
+deviceManagerGetDisplay _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_device_manager_get_display _obj'
+    checkUnexpectedReturnNULL "gdk_device_manager_get_display" result
+    result' <- (newObject Display) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DeviceManager::list_devices
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "Gdk" "DeviceType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "Gdk" "DeviceType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TGList (TInterface "Gdk" "Device")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_device_manager_list_devices" gdk_device_manager_list_devices :: 
+    Ptr DeviceManager ->                    -- _obj : TInterface "Gdk" "DeviceManager"
+    CUInt ->                                -- type : TInterface "Gdk" "DeviceType"
+    IO (Ptr (GList (Ptr Device)))
+
+
+deviceManagerListDevices ::
+    (MonadIO m, DeviceManagerK a) =>
+    a ->                                    -- _obj
+    DeviceType ->                           -- type
+    m [Device]
+deviceManagerListDevices _obj type_ = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let type_' = (fromIntegral . fromEnum) type_
+    result <- gdk_device_manager_list_devices _obj' type_'
+    checkUnexpectedReturnNULL "gdk_device_manager_list_devices" result
+    result' <- unpackGList result
+    result'' <- mapM (newObject Device) result'
+    g_list_free result
+    touchManagedPtr _obj
+    return result''
+
+
diff --git a/GI/Gdk/Objects/DeviceManager.hs-boot b/GI/Gdk/Objects/DeviceManager.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/DeviceManager.hs-boot
@@ -0,0 +1,17 @@
+module GI.Gdk.Objects.DeviceManager where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype DeviceManager = DeviceManager (ForeignPtr DeviceManager)
+instance GObject DeviceManager where
+class GObject o => DeviceManagerK o
+instance (GObject o, IsDescendantOf DeviceManager o) => DeviceManagerK o
+data DeviceManagerDisplayPropertyInfo
+data DeviceManagerDeviceAddedSignalInfo
+data DeviceManagerDeviceChangedSignalInfo
+data DeviceManagerDeviceRemovedSignalInfo
diff --git a/GI/Gdk/Objects/Display.hs b/GI/Gdk/Objects/Display.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/Display.hs
@@ -0,0 +1,1439 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Objects.Display
+    ( 
+
+-- * Exported types
+    Display(..)                             ,
+    DisplayK                                ,
+    toDisplay                               ,
+    noDisplay                               ,
+
+
+ -- * Methods
+-- ** displayBeep
+    displayBeep                             ,
+
+
+-- ** displayClose
+    displayClose                            ,
+
+
+-- ** displayDeviceIsGrabbed
+    displayDeviceIsGrabbed                  ,
+
+
+-- ** displayFlush
+    displayFlush                            ,
+
+
+-- ** displayGetAppLaunchContext
+    displayGetAppLaunchContext              ,
+
+
+-- ** displayGetDefault
+    displayGetDefault                       ,
+
+
+-- ** displayGetDefaultCursorSize
+    displayGetDefaultCursorSize             ,
+
+
+-- ** displayGetDefaultGroup
+    displayGetDefaultGroup                  ,
+
+
+-- ** displayGetDefaultScreen
+    displayGetDefaultScreen                 ,
+
+
+-- ** displayGetDeviceManager
+    displayGetDeviceManager                 ,
+
+
+-- ** displayGetEvent
+    displayGetEvent                         ,
+
+
+-- ** displayGetMaximalCursorSize
+    displayGetMaximalCursorSize             ,
+
+
+-- ** displayGetNScreens
+    displayGetNScreens                      ,
+
+
+-- ** displayGetName
+    displayGetName                          ,
+
+
+-- ** displayGetPointer
+    displayGetPointer                       ,
+
+
+-- ** displayGetScreen
+    displayGetScreen                        ,
+
+
+-- ** displayGetWindowAtPointer
+    displayGetWindowAtPointer               ,
+
+
+-- ** displayHasPending
+    displayHasPending                       ,
+
+
+-- ** displayIsClosed
+    displayIsClosed                         ,
+
+
+-- ** displayKeyboardUngrab
+    displayKeyboardUngrab                   ,
+
+
+-- ** displayListDevices
+    displayListDevices                      ,
+
+
+-- ** displayNotifyStartupComplete
+    displayNotifyStartupComplete            ,
+
+
+-- ** displayOpen
+    displayOpen                             ,
+
+
+-- ** displayOpenDefaultLibgtkOnly
+    displayOpenDefaultLibgtkOnly            ,
+
+
+-- ** displayPeekEvent
+    displayPeekEvent                        ,
+
+
+-- ** displayPointerIsGrabbed
+    displayPointerIsGrabbed                 ,
+
+
+-- ** displayPointerUngrab
+    displayPointerUngrab                    ,
+
+
+-- ** displayPutEvent
+    displayPutEvent                         ,
+
+
+-- ** displayRequestSelectionNotification
+    displayRequestSelectionNotification     ,
+
+
+-- ** displaySetDoubleClickDistance
+    displaySetDoubleClickDistance           ,
+
+
+-- ** displaySetDoubleClickTime
+    displaySetDoubleClickTime               ,
+
+
+-- ** displayStoreClipboard
+    displayStoreClipboard                   ,
+
+
+-- ** displaySupportsClipboardPersistence
+    displaySupportsClipboardPersistence     ,
+
+
+-- ** displaySupportsComposite
+    displaySupportsComposite                ,
+
+
+-- ** displaySupportsCursorAlpha
+    displaySupportsCursorAlpha              ,
+
+
+-- ** displaySupportsCursorColor
+    displaySupportsCursorColor              ,
+
+
+-- ** displaySupportsInputShapes
+    displaySupportsInputShapes              ,
+
+
+-- ** displaySupportsSelectionNotification
+    displaySupportsSelectionNotification    ,
+
+
+-- ** displaySupportsShapes
+    displaySupportsShapes                   ,
+
+
+-- ** displaySync
+    displaySync                             ,
+
+
+-- ** displayWarpPointer
+    displayWarpPointer                      ,
+
+
+
+
+ -- * Signals
+-- ** Closed
+    DisplayClosedCallback                   ,
+    DisplayClosedCallbackC                  ,
+    DisplayClosedSignalInfo                 ,
+    afterDisplayClosed                      ,
+    displayClosedCallbackWrapper            ,
+    displayClosedClosure                    ,
+    mkDisplayClosedCallback                 ,
+    noDisplayClosedCallback                 ,
+    onDisplayClosed                         ,
+
+
+-- ** Opened
+    DisplayOpenedCallback                   ,
+    DisplayOpenedCallbackC                  ,
+    DisplayOpenedSignalInfo                 ,
+    afterDisplayOpened                      ,
+    displayOpenedCallbackWrapper            ,
+    displayOpenedClosure                    ,
+    mkDisplayOpenedCallback                 ,
+    noDisplayOpenedCallback                 ,
+    onDisplayOpened                         ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.GObject as GObject
+
+newtype Display = Display (ForeignPtr Display)
+foreign import ccall "gdk_display_get_type"
+    c_gdk_display_get_type :: IO GType
+
+type instance ParentTypes Display = DisplayParentTypes
+type DisplayParentTypes = '[GObject.Object]
+
+instance GObject Display where
+    gobjectIsInitiallyUnowned _ = False
+    gobjectType _ = c_gdk_display_get_type
+    
+
+class GObject o => DisplayK o
+instance (GObject o, IsDescendantOf Display o) => DisplayK o
+
+toDisplay :: DisplayK o => o -> IO Display
+toDisplay = unsafeCastTo Display
+
+noDisplay :: Maybe Display
+noDisplay = Nothing
+
+-- signal Display::closed
+type DisplayClosedCallback =
+    Bool ->
+    IO ()
+
+noDisplayClosedCallback :: Maybe DisplayClosedCallback
+noDisplayClosedCallback = Nothing
+
+type DisplayClosedCallbackC =
+    Ptr () ->                               -- object
+    CInt ->
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkDisplayClosedCallback :: DisplayClosedCallbackC -> IO (FunPtr DisplayClosedCallbackC)
+
+displayClosedClosure :: DisplayClosedCallback -> IO Closure
+displayClosedClosure cb = newCClosure =<< mkDisplayClosedCallback wrapped
+    where wrapped = displayClosedCallbackWrapper cb
+
+displayClosedCallbackWrapper ::
+    DisplayClosedCallback ->
+    Ptr () ->
+    CInt ->
+    Ptr () ->
+    IO ()
+displayClosedCallbackWrapper _cb _ is_error _ = do
+    let is_error' = (/= 0) is_error
+    _cb  is_error'
+
+onDisplayClosed :: (GObject a, MonadIO m) => a -> DisplayClosedCallback -> m SignalHandlerId
+onDisplayClosed obj cb = liftIO $ connectDisplayClosed obj cb SignalConnectBefore
+afterDisplayClosed :: (GObject a, MonadIO m) => a -> DisplayClosedCallback -> m SignalHandlerId
+afterDisplayClosed obj cb = connectDisplayClosed obj cb SignalConnectAfter
+
+connectDisplayClosed :: (GObject a, MonadIO m) =>
+                        a -> DisplayClosedCallback -> SignalConnectMode -> m SignalHandlerId
+connectDisplayClosed obj cb after = liftIO $ do
+    cb' <- mkDisplayClosedCallback (displayClosedCallbackWrapper cb)
+    connectSignalFunPtr obj "closed" cb' after
+
+-- signal Display::opened
+type DisplayOpenedCallback =
+    IO ()
+
+noDisplayOpenedCallback :: Maybe DisplayOpenedCallback
+noDisplayOpenedCallback = Nothing
+
+type DisplayOpenedCallbackC =
+    Ptr () ->                               -- object
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkDisplayOpenedCallback :: DisplayOpenedCallbackC -> IO (FunPtr DisplayOpenedCallbackC)
+
+displayOpenedClosure :: DisplayOpenedCallback -> IO Closure
+displayOpenedClosure cb = newCClosure =<< mkDisplayOpenedCallback wrapped
+    where wrapped = displayOpenedCallbackWrapper cb
+
+displayOpenedCallbackWrapper ::
+    DisplayOpenedCallback ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+displayOpenedCallbackWrapper _cb _ _ = do
+    _cb 
+
+onDisplayOpened :: (GObject a, MonadIO m) => a -> DisplayOpenedCallback -> m SignalHandlerId
+onDisplayOpened obj cb = liftIO $ connectDisplayOpened obj cb SignalConnectBefore
+afterDisplayOpened :: (GObject a, MonadIO m) => a -> DisplayOpenedCallback -> m SignalHandlerId
+afterDisplayOpened obj cb = connectDisplayOpened obj cb SignalConnectAfter
+
+connectDisplayOpened :: (GObject a, MonadIO m) =>
+                        a -> DisplayOpenedCallback -> SignalConnectMode -> m SignalHandlerId
+connectDisplayOpened obj cb after = liftIO $ do
+    cb' <- mkDisplayOpenedCallback (displayOpenedCallbackWrapper cb)
+    connectSignalFunPtr obj "opened" cb' after
+
+type instance AttributeList Display = DisplayAttributeList
+type DisplayAttributeList = ('[ ] :: [(Symbol, *)])
+
+data DisplayClosedSignalInfo
+instance SignalInfo DisplayClosedSignalInfo where
+    type HaskellCallbackType DisplayClosedSignalInfo = DisplayClosedCallback
+    connectSignal _ = connectDisplayClosed
+
+data DisplayOpenedSignalInfo
+instance SignalInfo DisplayOpenedSignalInfo where
+    type HaskellCallbackType DisplayOpenedSignalInfo = DisplayOpenedCallback
+    connectSignal _ = connectDisplayOpened
+
+type instance SignalList Display = DisplaySignalList
+type DisplaySignalList = ('[ '("closed", DisplayClosedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("opened", DisplayOpenedSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+
+-- method Display::beep
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_beep" gdk_display_beep :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO ()
+
+
+displayBeep ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m ()
+displayBeep _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_display_beep _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Display::close
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_close" gdk_display_close :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO ()
+
+
+displayClose ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m ()
+displayClose _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_display_close _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Display::device_is_grabbed
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_device_is_grabbed" gdk_display_device_is_grabbed :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    IO CInt
+
+
+displayDeviceIsGrabbed ::
+    (MonadIO m, DisplayK a, DeviceK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- device
+    m Bool
+displayDeviceIsGrabbed _obj device = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    result <- gdk_display_device_is_grabbed _obj' device'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    touchManagedPtr device
+    return result'
+
+-- method Display::flush
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_flush" gdk_display_flush :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO ()
+
+
+displayFlush ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m ()
+displayFlush _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_display_flush _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Display::get_app_launch_context
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "AppLaunchContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_get_app_launch_context" gdk_display_get_app_launch_context :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO (Ptr AppLaunchContext)
+
+
+displayGetAppLaunchContext ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m AppLaunchContext
+displayGetAppLaunchContext _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_get_app_launch_context _obj'
+    checkUnexpectedReturnNULL "gdk_display_get_app_launch_context" result
+    result' <- (wrapObject AppLaunchContext) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::get_default_cursor_size
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_get_default_cursor_size" gdk_display_get_default_cursor_size :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO Word32
+
+
+displayGetDefaultCursorSize ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m Word32
+displayGetDefaultCursorSize _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_get_default_cursor_size _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Display::get_default_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_get_default_group" gdk_display_get_default_group :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO (Ptr Window)
+
+
+displayGetDefaultGroup ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m Window
+displayGetDefaultGroup _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_get_default_group _obj'
+    checkUnexpectedReturnNULL "gdk_display_get_default_group" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::get_default_screen
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Screen"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_get_default_screen" gdk_display_get_default_screen :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO (Ptr Screen)
+
+
+displayGetDefaultScreen ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m Screen
+displayGetDefaultScreen _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_get_default_screen _obj'
+    checkUnexpectedReturnNULL "gdk_display_get_default_screen" result
+    result' <- (newObject Screen) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::get_device_manager
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "DeviceManager"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_get_device_manager" gdk_display_get_device_manager :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO (Ptr DeviceManager)
+
+
+displayGetDeviceManager ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m DeviceManager
+displayGetDeviceManager _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_get_device_manager _obj'
+    checkUnexpectedReturnNULL "gdk_display_get_device_manager" result
+    result' <- (newObject DeviceManager) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::get_event
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Event"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_get_event" gdk_display_get_event :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO (Ptr Event)
+
+
+displayGetEvent ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m Event
+displayGetEvent _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_get_event _obj'
+    checkUnexpectedReturnNULL "gdk_display_get_event" result
+    result' <- (wrapBoxed Event) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::get_maximal_cursor_size
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "height", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_get_maximal_cursor_size" gdk_display_get_maximal_cursor_size :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    Ptr Word32 ->                           -- width : TBasicType TUInt32
+    Ptr Word32 ->                           -- height : TBasicType TUInt32
+    IO ()
+
+
+displayGetMaximalCursorSize ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m (Word32,Word32)
+displayGetMaximalCursorSize _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    width <- allocMem :: IO (Ptr Word32)
+    height <- allocMem :: IO (Ptr Word32)
+    gdk_display_get_maximal_cursor_size _obj' width height
+    width' <- peek width
+    height' <- peek height
+    touchManagedPtr _obj
+    freeMem width
+    freeMem height
+    return (width', height')
+
+-- method Display::get_n_screens
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_get_n_screens" gdk_display_get_n_screens :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO Int32
+
+{-# DEPRECATED displayGetNScreens ["(Since version 3.10)","The number of screens is always 1."]#-}
+displayGetNScreens ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m Int32
+displayGetNScreens _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_get_n_screens _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Display::get_name
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_get_name" gdk_display_get_name :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO CString
+
+
+displayGetName ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m T.Text
+displayGetName _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_get_name _obj'
+    checkUnexpectedReturnNULL "gdk_display_get_name" result
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::get_pointer
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_get_pointer" gdk_display_get_pointer :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    Ptr (Ptr Screen) ->                     -- screen : TInterface "Gdk" "Screen"
+    Ptr Int32 ->                            -- x : TBasicType TInt32
+    Ptr Int32 ->                            -- y : TBasicType TInt32
+    Ptr CUInt ->                            -- mask : TInterface "Gdk" "ModifierType"
+    IO ()
+
+{-# DEPRECATED displayGetPointer ["(Since version 3.0)","Use gdk_device_get_position() instead."]#-}
+displayGetPointer ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m (Screen,Int32,Int32,[ModifierType])
+displayGetPointer _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    screen <- allocMem :: IO (Ptr (Ptr Screen))
+    x <- allocMem :: IO (Ptr Int32)
+    y <- allocMem :: IO (Ptr Int32)
+    mask <- allocMem :: IO (Ptr CUInt)
+    gdk_display_get_pointer _obj' screen x y mask
+    screen' <- peek screen
+    screen'' <- (newObject Screen) screen'
+    x' <- peek x
+    y' <- peek y
+    mask' <- peek mask
+    let mask'' = wordToGFlags mask'
+    touchManagedPtr _obj
+    freeMem screen
+    freeMem x
+    freeMem y
+    freeMem mask
+    return (screen'', x', y', mask'')
+
+-- method Display::get_screen
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Screen"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_get_screen" gdk_display_get_screen :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    Int32 ->                                -- screen_num : TBasicType TInt32
+    IO (Ptr Screen)
+
+
+displayGetScreen ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- screen_num
+    m Screen
+displayGetScreen _obj screen_num = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_get_screen _obj' screen_num
+    checkUnexpectedReturnNULL "gdk_display_get_screen" result
+    result' <- (newObject Screen) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::get_window_at_pointer
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "win_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "win_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_get_window_at_pointer" gdk_display_get_window_at_pointer :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    Ptr Int32 ->                            -- win_x : TBasicType TInt32
+    Ptr Int32 ->                            -- win_y : TBasicType TInt32
+    IO (Ptr Window)
+
+{-# DEPRECATED displayGetWindowAtPointer ["(Since version 3.0)","Use gdk_device_get_window_at_position() instead."]#-}
+displayGetWindowAtPointer ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m (Window,Int32,Int32)
+displayGetWindowAtPointer _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    win_x <- allocMem :: IO (Ptr Int32)
+    win_y <- allocMem :: IO (Ptr Int32)
+    result <- gdk_display_get_window_at_pointer _obj' win_x win_y
+    checkUnexpectedReturnNULL "gdk_display_get_window_at_pointer" result
+    result' <- (newObject Window) result
+    win_x' <- peek win_x
+    win_y' <- peek win_y
+    touchManagedPtr _obj
+    freeMem win_x
+    freeMem win_y
+    return (result', win_x', win_y')
+
+-- method Display::has_pending
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_has_pending" gdk_display_has_pending :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO CInt
+
+
+displayHasPending ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m Bool
+displayHasPending _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_has_pending _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::is_closed
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_is_closed" gdk_display_is_closed :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO CInt
+
+
+displayIsClosed ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m Bool
+displayIsClosed _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_is_closed _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::keyboard_ungrab
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_keyboard_ungrab" gdk_display_keyboard_ungrab :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+{-# DEPRECATED displayKeyboardUngrab ["(Since version 3.0)","Use gdk_device_ungrab(), together with gdk_device_grab()","            instead."]#-}
+displayKeyboardUngrab ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    Word32 ->                               -- time_
+    m ()
+displayKeyboardUngrab _obj time_ = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_display_keyboard_ungrab _obj' time_
+    touchManagedPtr _obj
+    return ()
+
+-- method Display::list_devices
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TGList (TInterface "Gdk" "Device")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_list_devices" gdk_display_list_devices :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO (Ptr (GList (Ptr Device)))
+
+{-# DEPRECATED displayListDevices ["(Since version 3.0)","Use gdk_device_manager_list_devices() instead."]#-}
+displayListDevices ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m [Device]
+displayListDevices _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_list_devices _obj'
+    checkUnexpectedReturnNULL "gdk_display_list_devices" result
+    result' <- unpackGList result
+    result'' <- mapM (newObject Device) result'
+    touchManagedPtr _obj
+    return result''
+
+-- method Display::notify_startup_complete
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_notify_startup_complete" gdk_display_notify_startup_complete :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    CString ->                              -- startup_id : TBasicType TUTF8
+    IO ()
+
+
+displayNotifyStartupComplete ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    T.Text ->                               -- startup_id
+    m ()
+displayNotifyStartupComplete _obj startup_id = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    startup_id' <- textToCString startup_id
+    gdk_display_notify_startup_complete _obj' startup_id'
+    touchManagedPtr _obj
+    freeMem startup_id'
+    return ()
+
+-- method Display::peek_event
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Event"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_peek_event" gdk_display_peek_event :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO (Ptr Event)
+
+
+displayPeekEvent ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m Event
+displayPeekEvent _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_peek_event _obj'
+    checkUnexpectedReturnNULL "gdk_display_peek_event" result
+    result' <- (wrapBoxed Event) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::pointer_is_grabbed
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_pointer_is_grabbed" gdk_display_pointer_is_grabbed :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO CInt
+
+{-# DEPRECATED displayPointerIsGrabbed ["(Since version 3.0)","Use gdk_display_device_is_grabbed() instead."]#-}
+displayPointerIsGrabbed ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m Bool
+displayPointerIsGrabbed _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_pointer_is_grabbed _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::pointer_ungrab
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_pointer_ungrab" gdk_display_pointer_ungrab :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+{-# DEPRECATED displayPointerUngrab ["(Since version 3.0)","Use gdk_device_ungrab(), together with gdk_device_grab()","            instead."]#-}
+displayPointerUngrab ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    Word32 ->                               -- time_
+    m ()
+displayPointerUngrab _obj time_ = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_display_pointer_ungrab _obj' time_
+    touchManagedPtr _obj
+    return ()
+
+-- method Display::put_event
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_put_event" gdk_display_put_event :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    Ptr Event ->                            -- event : TInterface "Gdk" "Event"
+    IO ()
+
+
+displayPutEvent ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    Event ->                                -- event
+    m ()
+displayPutEvent _obj event = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let event' = unsafeManagedPtrGetPtr event
+    gdk_display_put_event _obj' event'
+    touchManagedPtr _obj
+    touchManagedPtr event
+    return ()
+
+-- method Display::request_selection_notification
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_request_selection_notification" gdk_display_request_selection_notification :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
+    IO CInt
+
+
+displayRequestSelectionNotification ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    Atom ->                                 -- selection
+    m Bool
+displayRequestSelectionNotification _obj selection = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let selection' = unsafeManagedPtrGetPtr selection
+    result <- gdk_display_request_selection_notification _obj' selection'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    touchManagedPtr selection
+    return result'
+
+-- method Display::set_double_click_distance
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "distance", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "distance", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_set_double_click_distance" gdk_display_set_double_click_distance :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    Word32 ->                               -- distance : TBasicType TUInt32
+    IO ()
+
+
+displaySetDoubleClickDistance ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    Word32 ->                               -- distance
+    m ()
+displaySetDoubleClickDistance _obj distance = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_display_set_double_click_distance _obj' distance
+    touchManagedPtr _obj
+    return ()
+
+-- method Display::set_double_click_time
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msec", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msec", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_set_double_click_time" gdk_display_set_double_click_time :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    Word32 ->                               -- msec : TBasicType TUInt32
+    IO ()
+
+
+displaySetDoubleClickTime ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    Word32 ->                               -- msec
+    m ()
+displaySetDoubleClickTime _obj msec = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_display_set_double_click_time _obj' msec
+    touchManagedPtr _obj
+    return ()
+
+-- method Display::store_clipboard
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "clipboard_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TCArray False (-1) 4 (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_targets", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "n_targets", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "clipboard_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TCArray False (-1) 4 (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_store_clipboard" gdk_display_store_clipboard :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    Ptr Window ->                           -- clipboard_window : TInterface "Gdk" "Window"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    Ptr (Ptr Atom) ->                       -- targets : TCArray False (-1) 4 (TInterface "Gdk" "Atom")
+    Int32 ->                                -- n_targets : TBasicType TInt32
+    IO ()
+
+
+displayStoreClipboard ::
+    (MonadIO m, DisplayK a, WindowK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- clipboard_window
+    Word32 ->                               -- time_
+    [Atom] ->                               -- targets
+    m ()
+displayStoreClipboard _obj clipboard_window time_ targets = liftIO $ do
+    let n_targets = fromIntegral $ length targets
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let clipboard_window' = unsafeManagedPtrCastPtr clipboard_window
+    let targets' = map unsafeManagedPtrGetPtr targets
+    targets'' <- packPtrArray targets'
+    gdk_display_store_clipboard _obj' clipboard_window' time_ targets'' n_targets
+    touchManagedPtr _obj
+    touchManagedPtr clipboard_window
+    mapM_ touchManagedPtr targets
+    freeMem targets''
+    return ()
+
+-- method Display::supports_clipboard_persistence
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_supports_clipboard_persistence" gdk_display_supports_clipboard_persistence :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO CInt
+
+
+displaySupportsClipboardPersistence ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m Bool
+displaySupportsClipboardPersistence _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_supports_clipboard_persistence _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::supports_composite
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_supports_composite" gdk_display_supports_composite :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO CInt
+
+{-# DEPRECATED displaySupportsComposite ["(Since version 3.16)","Compositing is an outdated technology that","  only ever worked on X11."]#-}
+displaySupportsComposite ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m Bool
+displaySupportsComposite _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_supports_composite _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::supports_cursor_alpha
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_supports_cursor_alpha" gdk_display_supports_cursor_alpha :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO CInt
+
+
+displaySupportsCursorAlpha ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m Bool
+displaySupportsCursorAlpha _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_supports_cursor_alpha _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::supports_cursor_color
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_supports_cursor_color" gdk_display_supports_cursor_color :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO CInt
+
+
+displaySupportsCursorColor ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m Bool
+displaySupportsCursorColor _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_supports_cursor_color _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::supports_input_shapes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_supports_input_shapes" gdk_display_supports_input_shapes :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO CInt
+
+
+displaySupportsInputShapes ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m Bool
+displaySupportsInputShapes _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_supports_input_shapes _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::supports_selection_notification
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_supports_selection_notification" gdk_display_supports_selection_notification :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO CInt
+
+
+displaySupportsSelectionNotification ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m Bool
+displaySupportsSelectionNotification _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_supports_selection_notification _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::supports_shapes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_supports_shapes" gdk_display_supports_shapes :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO CInt
+
+
+displaySupportsShapes ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m Bool
+displaySupportsShapes _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_supports_shapes _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Display::sync
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_sync" gdk_display_sync :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    IO ()
+
+
+displaySync ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- _obj
+    m ()
+displaySync _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_display_sync _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Display::warp_pointer
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_warp_pointer" gdk_display_warp_pointer :: 
+    Ptr Display ->                          -- _obj : TInterface "Gdk" "Display"
+    Ptr Screen ->                           -- screen : TInterface "Gdk" "Screen"
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    IO ()
+
+{-# DEPRECATED displayWarpPointer ["(Since version 3.0)","Use gdk_device_warp() instead."]#-}
+displayWarpPointer ::
+    (MonadIO m, DisplayK a, ScreenK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- screen
+    Int32 ->                                -- x
+    Int32 ->                                -- y
+    m ()
+displayWarpPointer _obj screen x y = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let screen' = unsafeManagedPtrCastPtr screen
+    gdk_display_warp_pointer _obj' screen' x y
+    touchManagedPtr _obj
+    touchManagedPtr screen
+    return ()
+
+-- method Display::get_default
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "Gdk" "Display"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_get_default" gdk_display_get_default :: 
+    IO (Ptr Display)
+
+
+displayGetDefault ::
+    (MonadIO m) =>
+    m Display
+displayGetDefault  = liftIO $ do
+    result <- gdk_display_get_default
+    checkUnexpectedReturnNULL "gdk_display_get_default" result
+    result' <- (newObject Display) result
+    return result'
+
+-- method Display::open
+-- method type : MemberFunction
+-- Args : [Arg {argName = "display_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "display_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Display"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_open" gdk_display_open :: 
+    CString ->                              -- display_name : TBasicType TUTF8
+    IO (Ptr Display)
+
+
+displayOpen ::
+    (MonadIO m) =>
+    T.Text ->                               -- display_name
+    m Display
+displayOpen display_name = liftIO $ do
+    display_name' <- textToCString display_name
+    result <- gdk_display_open display_name'
+    checkUnexpectedReturnNULL "gdk_display_open" result
+    result' <- (newObject Display) result
+    freeMem display_name'
+    return result'
+
+-- method Display::open_default_libgtk_only
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "Gdk" "Display"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_open_default_libgtk_only" gdk_display_open_default_libgtk_only :: 
+    IO (Ptr Display)
+
+{-# DEPRECATED displayOpenDefaultLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside","  of GTK+"]#-}
+displayOpenDefaultLibgtkOnly ::
+    (MonadIO m) =>
+    m Display
+displayOpenDefaultLibgtkOnly  = liftIO $ do
+    result <- gdk_display_open_default_libgtk_only
+    checkUnexpectedReturnNULL "gdk_display_open_default_libgtk_only" result
+    result' <- (newObject Display) result
+    return result'
+
+
diff --git a/GI/Gdk/Objects/Display.hs-boot b/GI/Gdk/Objects/Display.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/Display.hs-boot
@@ -0,0 +1,15 @@
+module GI.Gdk.Objects.Display where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype Display = Display (ForeignPtr Display)
+instance GObject Display where
+class GObject o => DisplayK o
+instance (GObject o, IsDescendantOf Display o) => DisplayK o
+data DisplayClosedSignalInfo
+data DisplayOpenedSignalInfo
diff --git a/GI/Gdk/Objects/DisplayManager.hs b/GI/Gdk/Objects/DisplayManager.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/DisplayManager.hs
@@ -0,0 +1,311 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Objects.DisplayManager
+    ( 
+
+-- * Exported types
+    DisplayManager(..)                      ,
+    DisplayManagerK                         ,
+    toDisplayManager                        ,
+    noDisplayManager                        ,
+
+
+ -- * Methods
+-- ** displayManagerGet
+    displayManagerGet                       ,
+
+
+-- ** displayManagerGetDefaultDisplay
+    displayManagerGetDefaultDisplay         ,
+
+
+-- ** displayManagerListDisplays
+    displayManagerListDisplays              ,
+
+
+-- ** displayManagerOpenDisplay
+    displayManagerOpenDisplay               ,
+
+
+-- ** displayManagerSetDefaultDisplay
+    displayManagerSetDefaultDisplay         ,
+
+
+
+
+ -- * Properties
+-- ** DefaultDisplay
+    DisplayManagerDefaultDisplayPropertyInfo,
+    constructDisplayManagerDefaultDisplay   ,
+    getDisplayManagerDefaultDisplay         ,
+    setDisplayManagerDefaultDisplay         ,
+
+
+
+
+ -- * Signals
+-- ** DisplayOpened
+    DisplayManagerDisplayOpenedCallback     ,
+    DisplayManagerDisplayOpenedCallbackC    ,
+    DisplayManagerDisplayOpenedSignalInfo   ,
+    afterDisplayManagerDisplayOpened        ,
+    displayManagerDisplayOpenedCallbackWrapper,
+    displayManagerDisplayOpenedClosure      ,
+    mkDisplayManagerDisplayOpenedCallback   ,
+    noDisplayManagerDisplayOpenedCallback   ,
+    onDisplayManagerDisplayOpened           ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.GObject as GObject
+
+newtype DisplayManager = DisplayManager (ForeignPtr DisplayManager)
+foreign import ccall "gdk_display_manager_get_type"
+    c_gdk_display_manager_get_type :: IO GType
+
+type instance ParentTypes DisplayManager = DisplayManagerParentTypes
+type DisplayManagerParentTypes = '[GObject.Object]
+
+instance GObject DisplayManager where
+    gobjectIsInitiallyUnowned _ = False
+    gobjectType _ = c_gdk_display_manager_get_type
+    
+
+class GObject o => DisplayManagerK o
+instance (GObject o, IsDescendantOf DisplayManager o) => DisplayManagerK o
+
+toDisplayManager :: DisplayManagerK o => o -> IO DisplayManager
+toDisplayManager = unsafeCastTo DisplayManager
+
+noDisplayManager :: Maybe DisplayManager
+noDisplayManager = Nothing
+
+-- signal DisplayManager::display-opened
+type DisplayManagerDisplayOpenedCallback =
+    Display ->
+    IO ()
+
+noDisplayManagerDisplayOpenedCallback :: Maybe DisplayManagerDisplayOpenedCallback
+noDisplayManagerDisplayOpenedCallback = Nothing
+
+type DisplayManagerDisplayOpenedCallbackC =
+    Ptr () ->                               -- object
+    Ptr Display ->
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkDisplayManagerDisplayOpenedCallback :: DisplayManagerDisplayOpenedCallbackC -> IO (FunPtr DisplayManagerDisplayOpenedCallbackC)
+
+displayManagerDisplayOpenedClosure :: DisplayManagerDisplayOpenedCallback -> IO Closure
+displayManagerDisplayOpenedClosure cb = newCClosure =<< mkDisplayManagerDisplayOpenedCallback wrapped
+    where wrapped = displayManagerDisplayOpenedCallbackWrapper cb
+
+displayManagerDisplayOpenedCallbackWrapper ::
+    DisplayManagerDisplayOpenedCallback ->
+    Ptr () ->
+    Ptr Display ->
+    Ptr () ->
+    IO ()
+displayManagerDisplayOpenedCallbackWrapper _cb _ display _ = do
+    display' <- (newObject Display) display
+    _cb  display'
+
+onDisplayManagerDisplayOpened :: (GObject a, MonadIO m) => a -> DisplayManagerDisplayOpenedCallback -> m SignalHandlerId
+onDisplayManagerDisplayOpened obj cb = liftIO $ connectDisplayManagerDisplayOpened obj cb SignalConnectBefore
+afterDisplayManagerDisplayOpened :: (GObject a, MonadIO m) => a -> DisplayManagerDisplayOpenedCallback -> m SignalHandlerId
+afterDisplayManagerDisplayOpened obj cb = connectDisplayManagerDisplayOpened obj cb SignalConnectAfter
+
+connectDisplayManagerDisplayOpened :: (GObject a, MonadIO m) =>
+                                      a -> DisplayManagerDisplayOpenedCallback -> SignalConnectMode -> m SignalHandlerId
+connectDisplayManagerDisplayOpened obj cb after = liftIO $ do
+    cb' <- mkDisplayManagerDisplayOpenedCallback (displayManagerDisplayOpenedCallbackWrapper cb)
+    connectSignalFunPtr obj "display-opened" cb' after
+
+-- VVV Prop "default-display"
+   -- Type: TInterface "Gdk" "Display"
+   -- Flags: [PropertyReadable,PropertyWritable]
+
+getDisplayManagerDefaultDisplay :: (MonadIO m, DisplayManagerK o) => o -> m Display
+getDisplayManagerDefaultDisplay obj = liftIO $ getObjectPropertyObject obj "default-display" Display
+
+setDisplayManagerDefaultDisplay :: (MonadIO m, DisplayManagerK o, DisplayK a) => o -> a -> m ()
+setDisplayManagerDefaultDisplay obj val = liftIO $ setObjectPropertyObject obj "default-display" val
+
+constructDisplayManagerDefaultDisplay :: (DisplayK a) => a -> IO ([Char], GValue)
+constructDisplayManagerDefaultDisplay val = constructObjectPropertyObject "default-display" val
+
+data DisplayManagerDefaultDisplayPropertyInfo
+instance AttrInfo DisplayManagerDefaultDisplayPropertyInfo where
+    type AttrAllowedOps DisplayManagerDefaultDisplayPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint DisplayManagerDefaultDisplayPropertyInfo = DisplayK
+    type AttrBaseTypeConstraint DisplayManagerDefaultDisplayPropertyInfo = DisplayManagerK
+    type AttrGetType DisplayManagerDefaultDisplayPropertyInfo = Display
+    type AttrLabel DisplayManagerDefaultDisplayPropertyInfo = "DisplayManager::default-display"
+    attrGet _ = getDisplayManagerDefaultDisplay
+    attrSet _ = setDisplayManagerDefaultDisplay
+    attrConstruct _ = constructDisplayManagerDefaultDisplay
+
+type instance AttributeList DisplayManager = DisplayManagerAttributeList
+type DisplayManagerAttributeList = ('[ '("default-display", DisplayManagerDefaultDisplayPropertyInfo)] :: [(Symbol, *)])
+
+data DisplayManagerDisplayOpenedSignalInfo
+instance SignalInfo DisplayManagerDisplayOpenedSignalInfo where
+    type HaskellCallbackType DisplayManagerDisplayOpenedSignalInfo = DisplayManagerDisplayOpenedCallback
+    connectSignal _ = connectDisplayManagerDisplayOpened
+
+type instance SignalList DisplayManager = DisplayManagerSignalList
+type DisplayManagerSignalList = ('[ '("display-opened", DisplayManagerDisplayOpenedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+
+-- method DisplayManager::get_default_display
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Display"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_manager_get_default_display" gdk_display_manager_get_default_display :: 
+    Ptr DisplayManager ->                   -- _obj : TInterface "Gdk" "DisplayManager"
+    IO (Ptr Display)
+
+
+displayManagerGetDefaultDisplay ::
+    (MonadIO m, DisplayManagerK a) =>
+    a ->                                    -- _obj
+    m Display
+displayManagerGetDefaultDisplay _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_manager_get_default_display _obj'
+    checkUnexpectedReturnNULL "gdk_display_manager_get_default_display" result
+    result' <- (newObject Display) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DisplayManager::list_displays
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TGSList (TInterface "Gdk" "Display")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_manager_list_displays" gdk_display_manager_list_displays :: 
+    Ptr DisplayManager ->                   -- _obj : TInterface "Gdk" "DisplayManager"
+    IO (Ptr (GSList (Ptr Display)))
+
+
+displayManagerListDisplays ::
+    (MonadIO m, DisplayManagerK a) =>
+    a ->                                    -- _obj
+    m [Display]
+displayManagerListDisplays _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_display_manager_list_displays _obj'
+    checkUnexpectedReturnNULL "gdk_display_manager_list_displays" result
+    result' <- unpackGSList result
+    result'' <- mapM (newObject Display) result'
+    g_slist_free result
+    touchManagedPtr _obj
+    return result''
+
+-- method DisplayManager::open_display
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Display"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_manager_open_display" gdk_display_manager_open_display :: 
+    Ptr DisplayManager ->                   -- _obj : TInterface "Gdk" "DisplayManager"
+    CString ->                              -- name : TBasicType TUTF8
+    IO (Ptr Display)
+
+
+displayManagerOpenDisplay ::
+    (MonadIO m, DisplayManagerK a) =>
+    a ->                                    -- _obj
+    T.Text ->                               -- name
+    m Display
+displayManagerOpenDisplay _obj name = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    name' <- textToCString name
+    result <- gdk_display_manager_open_display _obj' name'
+    checkUnexpectedReturnNULL "gdk_display_manager_open_display" result
+    result' <- (newObject Display) result
+    touchManagedPtr _obj
+    freeMem name'
+    return result'
+
+-- method DisplayManager::set_default_display
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_manager_set_default_display" gdk_display_manager_set_default_display :: 
+    Ptr DisplayManager ->                   -- _obj : TInterface "Gdk" "DisplayManager"
+    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
+    IO ()
+
+
+displayManagerSetDefaultDisplay ::
+    (MonadIO m, DisplayManagerK a, DisplayK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- display
+    m ()
+displayManagerSetDefaultDisplay _obj display = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let display' = unsafeManagedPtrCastPtr display
+    gdk_display_manager_set_default_display _obj' display'
+    touchManagedPtr _obj
+    touchManagedPtr display
+    return ()
+
+-- method DisplayManager::get
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "Gdk" "DisplayManager"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_display_manager_get" gdk_display_manager_get :: 
+    IO (Ptr DisplayManager)
+
+
+displayManagerGet ::
+    (MonadIO m) =>
+    m DisplayManager
+displayManagerGet  = liftIO $ do
+    result <- gdk_display_manager_get
+    checkUnexpectedReturnNULL "gdk_display_manager_get" result
+    result' <- (newObject DisplayManager) result
+    return result'
+
+
diff --git a/GI/Gdk/Objects/DisplayManager.hs-boot b/GI/Gdk/Objects/DisplayManager.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/DisplayManager.hs-boot
@@ -0,0 +1,15 @@
+module GI.Gdk.Objects.DisplayManager where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype DisplayManager = DisplayManager (ForeignPtr DisplayManager)
+instance GObject DisplayManager where
+class GObject o => DisplayManagerK o
+instance (GObject o, IsDescendantOf DisplayManager o) => DisplayManagerK o
+data DisplayManagerDefaultDisplayPropertyInfo
+data DisplayManagerDisplayOpenedSignalInfo
diff --git a/GI/Gdk/Objects/DragContext.hs b/GI/Gdk/Objects/DragContext.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/DragContext.hs
@@ -0,0 +1,331 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Objects.DragContext
+    ( 
+
+-- * Exported types
+    DragContext(..)                         ,
+    DragContextK                            ,
+    toDragContext                           ,
+    noDragContext                           ,
+
+
+ -- * Methods
+-- ** dragContextGetActions
+    dragContextGetActions                   ,
+
+
+-- ** dragContextGetDestWindow
+    dragContextGetDestWindow                ,
+
+
+-- ** dragContextGetDevice
+    dragContextGetDevice                    ,
+
+
+-- ** dragContextGetProtocol
+    dragContextGetProtocol                  ,
+
+
+-- ** dragContextGetSelectedAction
+    dragContextGetSelectedAction            ,
+
+
+-- ** dragContextGetSourceWindow
+    dragContextGetSourceWindow              ,
+
+
+-- ** dragContextGetSuggestedAction
+    dragContextGetSuggestedAction           ,
+
+
+-- ** dragContextListTargets
+    dragContextListTargets                  ,
+
+
+-- ** dragContextSetDevice
+    dragContextSetDevice                    ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.GObject as GObject
+
+newtype DragContext = DragContext (ForeignPtr DragContext)
+foreign import ccall "gdk_drag_context_get_type"
+    c_gdk_drag_context_get_type :: IO GType
+
+type instance ParentTypes DragContext = DragContextParentTypes
+type DragContextParentTypes = '[GObject.Object]
+
+instance GObject DragContext where
+    gobjectIsInitiallyUnowned _ = False
+    gobjectType _ = c_gdk_drag_context_get_type
+    
+
+class GObject o => DragContextK o
+instance (GObject o, IsDescendantOf DragContext o) => DragContextK o
+
+toDragContext :: DragContextK o => o -> IO DragContext
+toDragContext = unsafeCastTo DragContext
+
+noDragContext :: Maybe DragContext
+noDragContext = Nothing
+
+type instance AttributeList DragContext = DragContextAttributeList
+type DragContextAttributeList = ('[ ] :: [(Symbol, *)])
+
+type instance SignalList DragContext = DragContextSignalList
+type DragContextSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+
+-- method DragContext::get_actions
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "DragAction"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_context_get_actions" gdk_drag_context_get_actions :: 
+    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
+    IO CUInt
+
+
+dragContextGetActions ::
+    (MonadIO m, DragContextK a) =>
+    a ->                                    -- _obj
+    m [DragAction]
+dragContextGetActions _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_drag_context_get_actions _obj'
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    return result'
+
+-- method DragContext::get_dest_window
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_context_get_dest_window" gdk_drag_context_get_dest_window :: 
+    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
+    IO (Ptr Window)
+
+
+dragContextGetDestWindow ::
+    (MonadIO m, DragContextK a) =>
+    a ->                                    -- _obj
+    m Window
+dragContextGetDestWindow _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_drag_context_get_dest_window _obj'
+    checkUnexpectedReturnNULL "gdk_drag_context_get_dest_window" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DragContext::get_device
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Device"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_context_get_device" gdk_drag_context_get_device :: 
+    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
+    IO (Ptr Device)
+
+
+dragContextGetDevice ::
+    (MonadIO m, DragContextK a) =>
+    a ->                                    -- _obj
+    m Device
+dragContextGetDevice _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_drag_context_get_device _obj'
+    checkUnexpectedReturnNULL "gdk_drag_context_get_device" result
+    result' <- (newObject Device) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DragContext::get_protocol
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "DragProtocol"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_context_get_protocol" gdk_drag_context_get_protocol :: 
+    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
+    IO CUInt
+
+
+dragContextGetProtocol ::
+    (MonadIO m, DragContextK a) =>
+    a ->                                    -- _obj
+    m DragProtocol
+dragContextGetProtocol _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_drag_context_get_protocol _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DragContext::get_selected_action
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "DragAction"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_context_get_selected_action" gdk_drag_context_get_selected_action :: 
+    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
+    IO CUInt
+
+
+dragContextGetSelectedAction ::
+    (MonadIO m, DragContextK a) =>
+    a ->                                    -- _obj
+    m [DragAction]
+dragContextGetSelectedAction _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_drag_context_get_selected_action _obj'
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    return result'
+
+-- method DragContext::get_source_window
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_context_get_source_window" gdk_drag_context_get_source_window :: 
+    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
+    IO (Ptr Window)
+
+
+dragContextGetSourceWindow ::
+    (MonadIO m, DragContextK a) =>
+    a ->                                    -- _obj
+    m Window
+dragContextGetSourceWindow _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_drag_context_get_source_window _obj'
+    checkUnexpectedReturnNULL "gdk_drag_context_get_source_window" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DragContext::get_suggested_action
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "DragAction"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_context_get_suggested_action" gdk_drag_context_get_suggested_action :: 
+    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
+    IO CUInt
+
+
+dragContextGetSuggestedAction ::
+    (MonadIO m, DragContextK a) =>
+    a ->                                    -- _obj
+    m [DragAction]
+dragContextGetSuggestedAction _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_drag_context_get_suggested_action _obj'
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    return result'
+
+-- method DragContext::list_targets
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TGList (TInterface "Gdk" "Atom")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_context_list_targets" gdk_drag_context_list_targets :: 
+    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
+    IO (Ptr (GList (Ptr Atom)))
+
+
+dragContextListTargets ::
+    (MonadIO m, DragContextK a) =>
+    a ->                                    -- _obj
+    m [Atom]
+dragContextListTargets _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_drag_context_list_targets _obj'
+    checkUnexpectedReturnNULL "gdk_drag_context_list_targets" result
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    result' <- unpackGList result
+    result'' <- mapM (\x -> Atom <$> newForeignPtr_ x) result'
+    touchManagedPtr _obj
+    return result''
+
+-- method DragContext::set_device
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_context_set_device" gdk_drag_context_set_device :: 
+    Ptr DragContext ->                      -- _obj : TInterface "Gdk" "DragContext"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    IO ()
+
+
+dragContextSetDevice ::
+    (MonadIO m, DragContextK a, DeviceK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- device
+    m ()
+dragContextSetDevice _obj device = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    gdk_drag_context_set_device _obj' device'
+    touchManagedPtr _obj
+    touchManagedPtr device
+    return ()
+
+
diff --git a/GI/Gdk/Objects/DragContext.hs-boot b/GI/Gdk/Objects/DragContext.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/DragContext.hs-boot
@@ -0,0 +1,13 @@
+module GI.Gdk.Objects.DragContext where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype DragContext = DragContext (ForeignPtr DragContext)
+instance GObject DragContext where
+class GObject o => DragContextK o
+instance (GObject o, IsDescendantOf DragContext o) => DragContextK o
diff --git a/GI/Gdk/Objects/FrameClock.hs b/GI/Gdk/Objects/FrameClock.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/FrameClock.hs
@@ -0,0 +1,716 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Objects.FrameClock
+    ( 
+
+-- * Exported types
+    FrameClock(..)                          ,
+    FrameClockK                             ,
+    toFrameClock                            ,
+    noFrameClock                            ,
+
+
+ -- * Methods
+-- ** frameClockBeginUpdating
+    frameClockBeginUpdating                 ,
+
+
+-- ** frameClockEndUpdating
+    frameClockEndUpdating                   ,
+
+
+-- ** frameClockGetCurrentTimings
+    frameClockGetCurrentTimings             ,
+
+
+-- ** frameClockGetFrameCounter
+    frameClockGetFrameCounter               ,
+
+
+-- ** frameClockGetFrameTime
+    frameClockGetFrameTime                  ,
+
+
+-- ** frameClockGetHistoryStart
+    frameClockGetHistoryStart               ,
+
+
+-- ** frameClockGetRefreshInfo
+    frameClockGetRefreshInfo                ,
+
+
+-- ** frameClockGetTimings
+    frameClockGetTimings                    ,
+
+
+-- ** frameClockRequestPhase
+    frameClockRequestPhase                  ,
+
+
+
+
+ -- * Signals
+-- ** AfterPaint
+    FrameClockAfterPaintCallback            ,
+    FrameClockAfterPaintCallbackC           ,
+    FrameClockAfterPaintSignalInfo          ,
+    afterFrameClockAfterPaint               ,
+    frameClockAfterPaintCallbackWrapper     ,
+    frameClockAfterPaintClosure             ,
+    mkFrameClockAfterPaintCallback          ,
+    noFrameClockAfterPaintCallback          ,
+    onFrameClockAfterPaint                  ,
+
+
+-- ** BeforePaint
+    FrameClockBeforePaintCallback           ,
+    FrameClockBeforePaintCallbackC          ,
+    FrameClockBeforePaintSignalInfo         ,
+    afterFrameClockBeforePaint              ,
+    frameClockBeforePaintCallbackWrapper    ,
+    frameClockBeforePaintClosure            ,
+    mkFrameClockBeforePaintCallback         ,
+    noFrameClockBeforePaintCallback         ,
+    onFrameClockBeforePaint                 ,
+
+
+-- ** FlushEvents
+    FrameClockFlushEventsCallback           ,
+    FrameClockFlushEventsCallbackC          ,
+    FrameClockFlushEventsSignalInfo         ,
+    afterFrameClockFlushEvents              ,
+    frameClockFlushEventsCallbackWrapper    ,
+    frameClockFlushEventsClosure            ,
+    mkFrameClockFlushEventsCallback         ,
+    noFrameClockFlushEventsCallback         ,
+    onFrameClockFlushEvents                 ,
+
+
+-- ** Layout
+    FrameClockLayoutCallback                ,
+    FrameClockLayoutCallbackC               ,
+    FrameClockLayoutSignalInfo              ,
+    afterFrameClockLayout                   ,
+    frameClockLayoutCallbackWrapper         ,
+    frameClockLayoutClosure                 ,
+    mkFrameClockLayoutCallback              ,
+    noFrameClockLayoutCallback              ,
+    onFrameClockLayout                      ,
+
+
+-- ** Paint
+    FrameClockPaintCallback                 ,
+    FrameClockPaintCallbackC                ,
+    FrameClockPaintSignalInfo               ,
+    afterFrameClockPaint                    ,
+    frameClockPaintCallbackWrapper          ,
+    frameClockPaintClosure                  ,
+    mkFrameClockPaintCallback               ,
+    noFrameClockPaintCallback               ,
+    onFrameClockPaint                       ,
+
+
+-- ** ResumeEvents
+    FrameClockResumeEventsCallback          ,
+    FrameClockResumeEventsCallbackC         ,
+    FrameClockResumeEventsSignalInfo        ,
+    afterFrameClockResumeEvents             ,
+    frameClockResumeEventsCallbackWrapper   ,
+    frameClockResumeEventsClosure           ,
+    mkFrameClockResumeEventsCallback        ,
+    noFrameClockResumeEventsCallback        ,
+    onFrameClockResumeEvents                ,
+
+
+-- ** Update
+    FrameClockUpdateCallback                ,
+    FrameClockUpdateCallbackC               ,
+    FrameClockUpdateSignalInfo              ,
+    afterFrameClockUpdate                   ,
+    frameClockUpdateCallbackWrapper         ,
+    frameClockUpdateClosure                 ,
+    mkFrameClockUpdateCallback              ,
+    noFrameClockUpdateCallback              ,
+    onFrameClockUpdate                      ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.GObject as GObject
+
+newtype FrameClock = FrameClock (ForeignPtr FrameClock)
+foreign import ccall "gdk_frame_clock_get_type"
+    c_gdk_frame_clock_get_type :: IO GType
+
+type instance ParentTypes FrameClock = FrameClockParentTypes
+type FrameClockParentTypes = '[GObject.Object]
+
+instance GObject FrameClock where
+    gobjectIsInitiallyUnowned _ = False
+    gobjectType _ = c_gdk_frame_clock_get_type
+    
+
+class GObject o => FrameClockK o
+instance (GObject o, IsDescendantOf FrameClock o) => FrameClockK o
+
+toFrameClock :: FrameClockK o => o -> IO FrameClock
+toFrameClock = unsafeCastTo FrameClock
+
+noFrameClock :: Maybe FrameClock
+noFrameClock = Nothing
+
+-- signal FrameClock::after-paint
+type FrameClockAfterPaintCallback =
+    IO ()
+
+noFrameClockAfterPaintCallback :: Maybe FrameClockAfterPaintCallback
+noFrameClockAfterPaintCallback = Nothing
+
+type FrameClockAfterPaintCallbackC =
+    Ptr () ->                               -- object
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkFrameClockAfterPaintCallback :: FrameClockAfterPaintCallbackC -> IO (FunPtr FrameClockAfterPaintCallbackC)
+
+frameClockAfterPaintClosure :: FrameClockAfterPaintCallback -> IO Closure
+frameClockAfterPaintClosure cb = newCClosure =<< mkFrameClockAfterPaintCallback wrapped
+    where wrapped = frameClockAfterPaintCallbackWrapper cb
+
+frameClockAfterPaintCallbackWrapper ::
+    FrameClockAfterPaintCallback ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+frameClockAfterPaintCallbackWrapper _cb _ _ = do
+    _cb 
+
+onFrameClockAfterPaint :: (GObject a, MonadIO m) => a -> FrameClockAfterPaintCallback -> m SignalHandlerId
+onFrameClockAfterPaint obj cb = liftIO $ connectFrameClockAfterPaint obj cb SignalConnectBefore
+afterFrameClockAfterPaint :: (GObject a, MonadIO m) => a -> FrameClockAfterPaintCallback -> m SignalHandlerId
+afterFrameClockAfterPaint obj cb = connectFrameClockAfterPaint obj cb SignalConnectAfter
+
+connectFrameClockAfterPaint :: (GObject a, MonadIO m) =>
+                               a -> FrameClockAfterPaintCallback -> SignalConnectMode -> m SignalHandlerId
+connectFrameClockAfterPaint obj cb after = liftIO $ do
+    cb' <- mkFrameClockAfterPaintCallback (frameClockAfterPaintCallbackWrapper cb)
+    connectSignalFunPtr obj "after-paint" cb' after
+
+-- signal FrameClock::before-paint
+type FrameClockBeforePaintCallback =
+    IO ()
+
+noFrameClockBeforePaintCallback :: Maybe FrameClockBeforePaintCallback
+noFrameClockBeforePaintCallback = Nothing
+
+type FrameClockBeforePaintCallbackC =
+    Ptr () ->                               -- object
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkFrameClockBeforePaintCallback :: FrameClockBeforePaintCallbackC -> IO (FunPtr FrameClockBeforePaintCallbackC)
+
+frameClockBeforePaintClosure :: FrameClockBeforePaintCallback -> IO Closure
+frameClockBeforePaintClosure cb = newCClosure =<< mkFrameClockBeforePaintCallback wrapped
+    where wrapped = frameClockBeforePaintCallbackWrapper cb
+
+frameClockBeforePaintCallbackWrapper ::
+    FrameClockBeforePaintCallback ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+frameClockBeforePaintCallbackWrapper _cb _ _ = do
+    _cb 
+
+onFrameClockBeforePaint :: (GObject a, MonadIO m) => a -> FrameClockBeforePaintCallback -> m SignalHandlerId
+onFrameClockBeforePaint obj cb = liftIO $ connectFrameClockBeforePaint obj cb SignalConnectBefore
+afterFrameClockBeforePaint :: (GObject a, MonadIO m) => a -> FrameClockBeforePaintCallback -> m SignalHandlerId
+afterFrameClockBeforePaint obj cb = connectFrameClockBeforePaint obj cb SignalConnectAfter
+
+connectFrameClockBeforePaint :: (GObject a, MonadIO m) =>
+                                a -> FrameClockBeforePaintCallback -> SignalConnectMode -> m SignalHandlerId
+connectFrameClockBeforePaint obj cb after = liftIO $ do
+    cb' <- mkFrameClockBeforePaintCallback (frameClockBeforePaintCallbackWrapper cb)
+    connectSignalFunPtr obj "before-paint" cb' after
+
+-- signal FrameClock::flush-events
+type FrameClockFlushEventsCallback =
+    IO ()
+
+noFrameClockFlushEventsCallback :: Maybe FrameClockFlushEventsCallback
+noFrameClockFlushEventsCallback = Nothing
+
+type FrameClockFlushEventsCallbackC =
+    Ptr () ->                               -- object
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkFrameClockFlushEventsCallback :: FrameClockFlushEventsCallbackC -> IO (FunPtr FrameClockFlushEventsCallbackC)
+
+frameClockFlushEventsClosure :: FrameClockFlushEventsCallback -> IO Closure
+frameClockFlushEventsClosure cb = newCClosure =<< mkFrameClockFlushEventsCallback wrapped
+    where wrapped = frameClockFlushEventsCallbackWrapper cb
+
+frameClockFlushEventsCallbackWrapper ::
+    FrameClockFlushEventsCallback ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+frameClockFlushEventsCallbackWrapper _cb _ _ = do
+    _cb 
+
+onFrameClockFlushEvents :: (GObject a, MonadIO m) => a -> FrameClockFlushEventsCallback -> m SignalHandlerId
+onFrameClockFlushEvents obj cb = liftIO $ connectFrameClockFlushEvents obj cb SignalConnectBefore
+afterFrameClockFlushEvents :: (GObject a, MonadIO m) => a -> FrameClockFlushEventsCallback -> m SignalHandlerId
+afterFrameClockFlushEvents obj cb = connectFrameClockFlushEvents obj cb SignalConnectAfter
+
+connectFrameClockFlushEvents :: (GObject a, MonadIO m) =>
+                                a -> FrameClockFlushEventsCallback -> SignalConnectMode -> m SignalHandlerId
+connectFrameClockFlushEvents obj cb after = liftIO $ do
+    cb' <- mkFrameClockFlushEventsCallback (frameClockFlushEventsCallbackWrapper cb)
+    connectSignalFunPtr obj "flush-events" cb' after
+
+-- signal FrameClock::layout
+type FrameClockLayoutCallback =
+    IO ()
+
+noFrameClockLayoutCallback :: Maybe FrameClockLayoutCallback
+noFrameClockLayoutCallback = Nothing
+
+type FrameClockLayoutCallbackC =
+    Ptr () ->                               -- object
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkFrameClockLayoutCallback :: FrameClockLayoutCallbackC -> IO (FunPtr FrameClockLayoutCallbackC)
+
+frameClockLayoutClosure :: FrameClockLayoutCallback -> IO Closure
+frameClockLayoutClosure cb = newCClosure =<< mkFrameClockLayoutCallback wrapped
+    where wrapped = frameClockLayoutCallbackWrapper cb
+
+frameClockLayoutCallbackWrapper ::
+    FrameClockLayoutCallback ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+frameClockLayoutCallbackWrapper _cb _ _ = do
+    _cb 
+
+onFrameClockLayout :: (GObject a, MonadIO m) => a -> FrameClockLayoutCallback -> m SignalHandlerId
+onFrameClockLayout obj cb = liftIO $ connectFrameClockLayout obj cb SignalConnectBefore
+afterFrameClockLayout :: (GObject a, MonadIO m) => a -> FrameClockLayoutCallback -> m SignalHandlerId
+afterFrameClockLayout obj cb = connectFrameClockLayout obj cb SignalConnectAfter
+
+connectFrameClockLayout :: (GObject a, MonadIO m) =>
+                           a -> FrameClockLayoutCallback -> SignalConnectMode -> m SignalHandlerId
+connectFrameClockLayout obj cb after = liftIO $ do
+    cb' <- mkFrameClockLayoutCallback (frameClockLayoutCallbackWrapper cb)
+    connectSignalFunPtr obj "layout" cb' after
+
+-- signal FrameClock::paint
+type FrameClockPaintCallback =
+    IO ()
+
+noFrameClockPaintCallback :: Maybe FrameClockPaintCallback
+noFrameClockPaintCallback = Nothing
+
+type FrameClockPaintCallbackC =
+    Ptr () ->                               -- object
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkFrameClockPaintCallback :: FrameClockPaintCallbackC -> IO (FunPtr FrameClockPaintCallbackC)
+
+frameClockPaintClosure :: FrameClockPaintCallback -> IO Closure
+frameClockPaintClosure cb = newCClosure =<< mkFrameClockPaintCallback wrapped
+    where wrapped = frameClockPaintCallbackWrapper cb
+
+frameClockPaintCallbackWrapper ::
+    FrameClockPaintCallback ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+frameClockPaintCallbackWrapper _cb _ _ = do
+    _cb 
+
+onFrameClockPaint :: (GObject a, MonadIO m) => a -> FrameClockPaintCallback -> m SignalHandlerId
+onFrameClockPaint obj cb = liftIO $ connectFrameClockPaint obj cb SignalConnectBefore
+afterFrameClockPaint :: (GObject a, MonadIO m) => a -> FrameClockPaintCallback -> m SignalHandlerId
+afterFrameClockPaint obj cb = connectFrameClockPaint obj cb SignalConnectAfter
+
+connectFrameClockPaint :: (GObject a, MonadIO m) =>
+                          a -> FrameClockPaintCallback -> SignalConnectMode -> m SignalHandlerId
+connectFrameClockPaint obj cb after = liftIO $ do
+    cb' <- mkFrameClockPaintCallback (frameClockPaintCallbackWrapper cb)
+    connectSignalFunPtr obj "paint" cb' after
+
+-- signal FrameClock::resume-events
+type FrameClockResumeEventsCallback =
+    IO ()
+
+noFrameClockResumeEventsCallback :: Maybe FrameClockResumeEventsCallback
+noFrameClockResumeEventsCallback = Nothing
+
+type FrameClockResumeEventsCallbackC =
+    Ptr () ->                               -- object
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkFrameClockResumeEventsCallback :: FrameClockResumeEventsCallbackC -> IO (FunPtr FrameClockResumeEventsCallbackC)
+
+frameClockResumeEventsClosure :: FrameClockResumeEventsCallback -> IO Closure
+frameClockResumeEventsClosure cb = newCClosure =<< mkFrameClockResumeEventsCallback wrapped
+    where wrapped = frameClockResumeEventsCallbackWrapper cb
+
+frameClockResumeEventsCallbackWrapper ::
+    FrameClockResumeEventsCallback ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+frameClockResumeEventsCallbackWrapper _cb _ _ = do
+    _cb 
+
+onFrameClockResumeEvents :: (GObject a, MonadIO m) => a -> FrameClockResumeEventsCallback -> m SignalHandlerId
+onFrameClockResumeEvents obj cb = liftIO $ connectFrameClockResumeEvents obj cb SignalConnectBefore
+afterFrameClockResumeEvents :: (GObject a, MonadIO m) => a -> FrameClockResumeEventsCallback -> m SignalHandlerId
+afterFrameClockResumeEvents obj cb = connectFrameClockResumeEvents obj cb SignalConnectAfter
+
+connectFrameClockResumeEvents :: (GObject a, MonadIO m) =>
+                                 a -> FrameClockResumeEventsCallback -> SignalConnectMode -> m SignalHandlerId
+connectFrameClockResumeEvents obj cb after = liftIO $ do
+    cb' <- mkFrameClockResumeEventsCallback (frameClockResumeEventsCallbackWrapper cb)
+    connectSignalFunPtr obj "resume-events" cb' after
+
+-- signal FrameClock::update
+type FrameClockUpdateCallback =
+    IO ()
+
+noFrameClockUpdateCallback :: Maybe FrameClockUpdateCallback
+noFrameClockUpdateCallback = Nothing
+
+type FrameClockUpdateCallbackC =
+    Ptr () ->                               -- object
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkFrameClockUpdateCallback :: FrameClockUpdateCallbackC -> IO (FunPtr FrameClockUpdateCallbackC)
+
+frameClockUpdateClosure :: FrameClockUpdateCallback -> IO Closure
+frameClockUpdateClosure cb = newCClosure =<< mkFrameClockUpdateCallback wrapped
+    where wrapped = frameClockUpdateCallbackWrapper cb
+
+frameClockUpdateCallbackWrapper ::
+    FrameClockUpdateCallback ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+frameClockUpdateCallbackWrapper _cb _ _ = do
+    _cb 
+
+onFrameClockUpdate :: (GObject a, MonadIO m) => a -> FrameClockUpdateCallback -> m SignalHandlerId
+onFrameClockUpdate obj cb = liftIO $ connectFrameClockUpdate obj cb SignalConnectBefore
+afterFrameClockUpdate :: (GObject a, MonadIO m) => a -> FrameClockUpdateCallback -> m SignalHandlerId
+afterFrameClockUpdate obj cb = connectFrameClockUpdate obj cb SignalConnectAfter
+
+connectFrameClockUpdate :: (GObject a, MonadIO m) =>
+                           a -> FrameClockUpdateCallback -> SignalConnectMode -> m SignalHandlerId
+connectFrameClockUpdate obj cb after = liftIO $ do
+    cb' <- mkFrameClockUpdateCallback (frameClockUpdateCallbackWrapper cb)
+    connectSignalFunPtr obj "update" cb' after
+
+type instance AttributeList FrameClock = FrameClockAttributeList
+type FrameClockAttributeList = ('[ ] :: [(Symbol, *)])
+
+data FrameClockAfterPaintSignalInfo
+instance SignalInfo FrameClockAfterPaintSignalInfo where
+    type HaskellCallbackType FrameClockAfterPaintSignalInfo = FrameClockAfterPaintCallback
+    connectSignal _ = connectFrameClockAfterPaint
+
+data FrameClockBeforePaintSignalInfo
+instance SignalInfo FrameClockBeforePaintSignalInfo where
+    type HaskellCallbackType FrameClockBeforePaintSignalInfo = FrameClockBeforePaintCallback
+    connectSignal _ = connectFrameClockBeforePaint
+
+data FrameClockFlushEventsSignalInfo
+instance SignalInfo FrameClockFlushEventsSignalInfo where
+    type HaskellCallbackType FrameClockFlushEventsSignalInfo = FrameClockFlushEventsCallback
+    connectSignal _ = connectFrameClockFlushEvents
+
+data FrameClockLayoutSignalInfo
+instance SignalInfo FrameClockLayoutSignalInfo where
+    type HaskellCallbackType FrameClockLayoutSignalInfo = FrameClockLayoutCallback
+    connectSignal _ = connectFrameClockLayout
+
+data FrameClockPaintSignalInfo
+instance SignalInfo FrameClockPaintSignalInfo where
+    type HaskellCallbackType FrameClockPaintSignalInfo = FrameClockPaintCallback
+    connectSignal _ = connectFrameClockPaint
+
+data FrameClockResumeEventsSignalInfo
+instance SignalInfo FrameClockResumeEventsSignalInfo where
+    type HaskellCallbackType FrameClockResumeEventsSignalInfo = FrameClockResumeEventsCallback
+    connectSignal _ = connectFrameClockResumeEvents
+
+data FrameClockUpdateSignalInfo
+instance SignalInfo FrameClockUpdateSignalInfo where
+    type HaskellCallbackType FrameClockUpdateSignalInfo = FrameClockUpdateCallback
+    connectSignal _ = connectFrameClockUpdate
+
+type instance SignalList FrameClock = FrameClockSignalList
+type FrameClockSignalList = ('[ '("after-paint", FrameClockAfterPaintSignalInfo), '("before-paint", FrameClockBeforePaintSignalInfo), '("flush-events", FrameClockFlushEventsSignalInfo), '("layout", FrameClockLayoutSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("paint", FrameClockPaintSignalInfo), '("resume-events", FrameClockResumeEventsSignalInfo), '("update", FrameClockUpdateSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+
+-- method FrameClock::begin_updating
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_clock_begin_updating" gdk_frame_clock_begin_updating :: 
+    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
+    IO ()
+
+
+frameClockBeginUpdating ::
+    (MonadIO m, FrameClockK a) =>
+    a ->                                    -- _obj
+    m ()
+frameClockBeginUpdating _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_frame_clock_begin_updating _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method FrameClock::end_updating
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_clock_end_updating" gdk_frame_clock_end_updating :: 
+    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
+    IO ()
+
+
+frameClockEndUpdating ::
+    (MonadIO m, FrameClockK a) =>
+    a ->                                    -- _obj
+    m ()
+frameClockEndUpdating _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_frame_clock_end_updating _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method FrameClock::get_current_timings
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "FrameTimings"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_clock_get_current_timings" gdk_frame_clock_get_current_timings :: 
+    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
+    IO (Ptr FrameTimings)
+
+
+frameClockGetCurrentTimings ::
+    (MonadIO m, FrameClockK a) =>
+    a ->                                    -- _obj
+    m FrameTimings
+frameClockGetCurrentTimings _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_frame_clock_get_current_timings _obj'
+    checkUnexpectedReturnNULL "gdk_frame_clock_get_current_timings" result
+    result' <- (wrapBoxed FrameTimings) result
+    touchManagedPtr _obj
+    return result'
+
+-- method FrameClock::get_frame_counter
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_clock_get_frame_counter" gdk_frame_clock_get_frame_counter :: 
+    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
+    IO Int64
+
+
+frameClockGetFrameCounter ::
+    (MonadIO m, FrameClockK a) =>
+    a ->                                    -- _obj
+    m Int64
+frameClockGetFrameCounter _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_frame_clock_get_frame_counter _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method FrameClock::get_frame_time
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_clock_get_frame_time" gdk_frame_clock_get_frame_time :: 
+    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
+    IO Int64
+
+
+frameClockGetFrameTime ::
+    (MonadIO m, FrameClockK a) =>
+    a ->                                    -- _obj
+    m Int64
+frameClockGetFrameTime _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_frame_clock_get_frame_time _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method FrameClock::get_history_start
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_clock_get_history_start" gdk_frame_clock_get_history_start :: 
+    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
+    IO Int64
+
+
+frameClockGetHistoryStart ::
+    (MonadIO m, FrameClockK a) =>
+    a ->                                    -- _obj
+    m Int64
+frameClockGetHistoryStart _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_frame_clock_get_history_start _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method FrameClock::get_refresh_info
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_time", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "refresh_interval_return", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "presentation_time_return", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_time", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "refresh_interval_return", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "presentation_time_return", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_clock_get_refresh_info" gdk_frame_clock_get_refresh_info :: 
+    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
+    Int64 ->                                -- base_time : TBasicType TInt64
+    Int64 ->                                -- refresh_interval_return : TBasicType TInt64
+    Int64 ->                                -- presentation_time_return : TBasicType TInt64
+    IO ()
+
+
+frameClockGetRefreshInfo ::
+    (MonadIO m, FrameClockK a) =>
+    a ->                                    -- _obj
+    Int64 ->                                -- base_time
+    Int64 ->                                -- refresh_interval_return
+    Int64 ->                                -- presentation_time_return
+    m ()
+frameClockGetRefreshInfo _obj base_time refresh_interval_return presentation_time_return = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_frame_clock_get_refresh_info _obj' base_time refresh_interval_return presentation_time_return
+    touchManagedPtr _obj
+    return ()
+
+-- method FrameClock::get_timings
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "frame_counter", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "frame_counter", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "FrameTimings"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_clock_get_timings" gdk_frame_clock_get_timings :: 
+    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
+    Int64 ->                                -- frame_counter : TBasicType TInt64
+    IO (Ptr FrameTimings)
+
+
+frameClockGetTimings ::
+    (MonadIO m, FrameClockK a) =>
+    a ->                                    -- _obj
+    Int64 ->                                -- frame_counter
+    m FrameTimings
+frameClockGetTimings _obj frame_counter = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_frame_clock_get_timings _obj' frame_counter
+    checkUnexpectedReturnNULL "gdk_frame_clock_get_timings" result
+    result' <- (wrapBoxed FrameTimings) result
+    touchManagedPtr _obj
+    return result'
+
+-- method FrameClock::request_phase
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "phase", argType = TInterface "Gdk" "FrameClockPhase", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "phase", argType = TInterface "Gdk" "FrameClockPhase", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_clock_request_phase" gdk_frame_clock_request_phase :: 
+    Ptr FrameClock ->                       -- _obj : TInterface "Gdk" "FrameClock"
+    CUInt ->                                -- phase : TInterface "Gdk" "FrameClockPhase"
+    IO ()
+
+
+frameClockRequestPhase ::
+    (MonadIO m, FrameClockK a) =>
+    a ->                                    -- _obj
+    [FrameClockPhase] ->                    -- phase
+    m ()
+frameClockRequestPhase _obj phase = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let phase' = gflagsToWord phase
+    gdk_frame_clock_request_phase _obj' phase'
+    touchManagedPtr _obj
+    return ()
+
+
diff --git a/GI/Gdk/Objects/FrameClock.hs-boot b/GI/Gdk/Objects/FrameClock.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/FrameClock.hs-boot
@@ -0,0 +1,20 @@
+module GI.Gdk.Objects.FrameClock where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype FrameClock = FrameClock (ForeignPtr FrameClock)
+instance GObject FrameClock where
+class GObject o => FrameClockK o
+instance (GObject o, IsDescendantOf FrameClock o) => FrameClockK o
+data FrameClockAfterPaintSignalInfo
+data FrameClockBeforePaintSignalInfo
+data FrameClockFlushEventsSignalInfo
+data FrameClockLayoutSignalInfo
+data FrameClockPaintSignalInfo
+data FrameClockResumeEventsSignalInfo
+data FrameClockUpdateSignalInfo
diff --git a/GI/Gdk/Objects/GLContext.hs b/GI/Gdk/Objects/GLContext.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/GLContext.hs
@@ -0,0 +1,536 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Objects.GLContext
+    ( 
+
+-- * Exported types
+    GLContext(..)                           ,
+    GLContextK                              ,
+    toGLContext                             ,
+    noGLContext                             ,
+
+
+ -- * Methods
+-- ** gLContextClearCurrent
+    gLContextClearCurrent                   ,
+
+
+-- ** gLContextGetCurrent
+    gLContextGetCurrent                     ,
+
+
+-- ** gLContextGetDebugEnabled
+    gLContextGetDebugEnabled                ,
+
+
+-- ** gLContextGetDisplay
+    gLContextGetDisplay                     ,
+
+
+-- ** gLContextGetForwardCompatible
+    gLContextGetForwardCompatible           ,
+
+
+-- ** gLContextGetSharedContext
+    gLContextGetSharedContext               ,
+
+
+-- ** gLContextGetVersion
+    gLContextGetVersion                     ,
+
+
+-- ** gLContextGetWindow
+    gLContextGetWindow                      ,
+
+
+-- ** gLContextMakeCurrent
+    gLContextMakeCurrent                    ,
+
+
+-- ** gLContextRealize
+    gLContextRealize                        ,
+
+
+-- ** gLContextSetDebugEnabled
+    gLContextSetDebugEnabled                ,
+
+
+-- ** gLContextSetForwardCompatible
+    gLContextSetForwardCompatible           ,
+
+
+-- ** gLContextSetRequiredVersion
+    gLContextSetRequiredVersion             ,
+
+
+
+
+ -- * Properties
+-- ** Display
+    GLContextDisplayPropertyInfo            ,
+    constructGLContextDisplay               ,
+    getGLContextDisplay                     ,
+
+
+-- ** SharedContext
+    GLContextSharedContextPropertyInfo      ,
+    constructGLContextSharedContext         ,
+    getGLContextSharedContext               ,
+
+
+-- ** Window
+    GLContextWindowPropertyInfo             ,
+    constructGLContextWindow                ,
+    getGLContextWindow                      ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.GObject as GObject
+
+newtype GLContext = GLContext (ForeignPtr GLContext)
+foreign import ccall "gdk_gl_context_get_type"
+    c_gdk_gl_context_get_type :: IO GType
+
+type instance ParentTypes GLContext = GLContextParentTypes
+type GLContextParentTypes = '[GObject.Object]
+
+instance GObject GLContext where
+    gobjectIsInitiallyUnowned _ = False
+    gobjectType _ = c_gdk_gl_context_get_type
+    
+
+class GObject o => GLContextK o
+instance (GObject o, IsDescendantOf GLContext o) => GLContextK o
+
+toGLContext :: GLContextK o => o -> IO GLContext
+toGLContext = unsafeCastTo GLContext
+
+noGLContext :: Maybe GLContext
+noGLContext = Nothing
+
+-- VVV Prop "display"
+   -- Type: TInterface "Gdk" "Display"
+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+
+getGLContextDisplay :: (MonadIO m, GLContextK o) => o -> m Display
+getGLContextDisplay obj = liftIO $ getObjectPropertyObject obj "display" Display
+
+constructGLContextDisplay :: (DisplayK a) => a -> IO ([Char], GValue)
+constructGLContextDisplay val = constructObjectPropertyObject "display" val
+
+data GLContextDisplayPropertyInfo
+instance AttrInfo GLContextDisplayPropertyInfo where
+    type AttrAllowedOps GLContextDisplayPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint GLContextDisplayPropertyInfo = DisplayK
+    type AttrBaseTypeConstraint GLContextDisplayPropertyInfo = GLContextK
+    type AttrGetType GLContextDisplayPropertyInfo = Display
+    type AttrLabel GLContextDisplayPropertyInfo = "GLContext::display"
+    attrGet _ = getGLContextDisplay
+    attrSet _ = undefined
+    attrConstruct _ = constructGLContextDisplay
+
+-- VVV Prop "shared-context"
+   -- Type: TInterface "Gdk" "GLContext"
+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+
+getGLContextSharedContext :: (MonadIO m, GLContextK o) => o -> m GLContext
+getGLContextSharedContext obj = liftIO $ getObjectPropertyObject obj "shared-context" GLContext
+
+constructGLContextSharedContext :: (GLContextK a) => a -> IO ([Char], GValue)
+constructGLContextSharedContext val = constructObjectPropertyObject "shared-context" val
+
+data GLContextSharedContextPropertyInfo
+instance AttrInfo GLContextSharedContextPropertyInfo where
+    type AttrAllowedOps GLContextSharedContextPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint GLContextSharedContextPropertyInfo = GLContextK
+    type AttrBaseTypeConstraint GLContextSharedContextPropertyInfo = GLContextK
+    type AttrGetType GLContextSharedContextPropertyInfo = GLContext
+    type AttrLabel GLContextSharedContextPropertyInfo = "GLContext::shared-context"
+    attrGet _ = getGLContextSharedContext
+    attrSet _ = undefined
+    attrConstruct _ = constructGLContextSharedContext
+
+-- VVV Prop "window"
+   -- Type: TInterface "Gdk" "Window"
+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
+
+getGLContextWindow :: (MonadIO m, GLContextK o) => o -> m Window
+getGLContextWindow obj = liftIO $ getObjectPropertyObject obj "window" Window
+
+constructGLContextWindow :: (WindowK a) => a -> IO ([Char], GValue)
+constructGLContextWindow val = constructObjectPropertyObject "window" val
+
+data GLContextWindowPropertyInfo
+instance AttrInfo GLContextWindowPropertyInfo where
+    type AttrAllowedOps GLContextWindowPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint GLContextWindowPropertyInfo = WindowK
+    type AttrBaseTypeConstraint GLContextWindowPropertyInfo = GLContextK
+    type AttrGetType GLContextWindowPropertyInfo = Window
+    type AttrLabel GLContextWindowPropertyInfo = "GLContext::window"
+    attrGet _ = getGLContextWindow
+    attrSet _ = undefined
+    attrConstruct _ = constructGLContextWindow
+
+type instance AttributeList GLContext = GLContextAttributeList
+type GLContextAttributeList = ('[ '("display", GLContextDisplayPropertyInfo), '("shared-context", GLContextSharedContextPropertyInfo), '("window", GLContextWindowPropertyInfo)] :: [(Symbol, *)])
+
+type instance SignalList GLContext = GLContextSignalList
+type GLContextSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+
+-- method GLContext::get_debug_enabled
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_gl_context_get_debug_enabled" gdk_gl_context_get_debug_enabled :: 
+    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
+    IO CInt
+
+
+gLContextGetDebugEnabled ::
+    (MonadIO m, GLContextK a) =>
+    a ->                                    -- _obj
+    m Bool
+gLContextGetDebugEnabled _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_gl_context_get_debug_enabled _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method GLContext::get_display
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Display"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_gl_context_get_display" gdk_gl_context_get_display :: 
+    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
+    IO (Ptr Display)
+
+
+gLContextGetDisplay ::
+    (MonadIO m, GLContextK a) =>
+    a ->                                    -- _obj
+    m Display
+gLContextGetDisplay _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_gl_context_get_display _obj'
+    checkUnexpectedReturnNULL "gdk_gl_context_get_display" result
+    result' <- (newObject Display) result
+    touchManagedPtr _obj
+    return result'
+
+-- method GLContext::get_forward_compatible
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_gl_context_get_forward_compatible" gdk_gl_context_get_forward_compatible :: 
+    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
+    IO CInt
+
+
+gLContextGetForwardCompatible ::
+    (MonadIO m, GLContextK a) =>
+    a ->                                    -- _obj
+    m Bool
+gLContextGetForwardCompatible _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_gl_context_get_forward_compatible _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- XXX Could not generate method GLContext::get_required_version
+-- Error was : Bad introspection data: "argument \"major\" is not of nullable type (TBasicType TInt32), but it is marked as such."
+-- method GLContext::get_shared_context
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "GLContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_gl_context_get_shared_context" gdk_gl_context_get_shared_context :: 
+    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
+    IO (Ptr GLContext)
+
+
+gLContextGetSharedContext ::
+    (MonadIO m, GLContextK a) =>
+    a ->                                    -- _obj
+    m GLContext
+gLContextGetSharedContext _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_gl_context_get_shared_context _obj'
+    checkUnexpectedReturnNULL "gdk_gl_context_get_shared_context" result
+    result' <- (newObject GLContext) result
+    touchManagedPtr _obj
+    return result'
+
+-- method GLContext::get_version
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "major", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "minor", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_gl_context_get_version" gdk_gl_context_get_version :: 
+    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
+    Ptr Int32 ->                            -- major : TBasicType TInt32
+    Ptr Int32 ->                            -- minor : TBasicType TInt32
+    IO ()
+
+
+gLContextGetVersion ::
+    (MonadIO m, GLContextK a) =>
+    a ->                                    -- _obj
+    m (Int32,Int32)
+gLContextGetVersion _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    major <- allocMem :: IO (Ptr Int32)
+    minor <- allocMem :: IO (Ptr Int32)
+    gdk_gl_context_get_version _obj' major minor
+    major' <- peek major
+    minor' <- peek minor
+    touchManagedPtr _obj
+    freeMem major
+    freeMem minor
+    return (major', minor')
+
+-- method GLContext::get_window
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_gl_context_get_window" gdk_gl_context_get_window :: 
+    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
+    IO (Ptr Window)
+
+
+gLContextGetWindow ::
+    (MonadIO m, GLContextK a) =>
+    a ->                                    -- _obj
+    m Window
+gLContextGetWindow _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_gl_context_get_window _obj'
+    checkUnexpectedReturnNULL "gdk_gl_context_get_window" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+-- method GLContext::make_current
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_gl_context_make_current" gdk_gl_context_make_current :: 
+    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
+    IO ()
+
+
+gLContextMakeCurrent ::
+    (MonadIO m, GLContextK a) =>
+    a ->                                    -- _obj
+    m ()
+gLContextMakeCurrent _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_gl_context_make_current _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method GLContext::realize
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "gdk_gl_context_realize" gdk_gl_context_realize :: 
+    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+gLContextRealize ::
+    (MonadIO m, GLContextK a) =>
+    a ->                                    -- _obj
+    m ()
+gLContextRealize _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    onException (do
+        _ <- propagateGError $ gdk_gl_context_realize _obj'
+        touchManagedPtr _obj
+        return ()
+     ) (do
+        return ()
+     )
+
+-- method GLContext::set_debug_enabled
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_gl_context_set_debug_enabled" gdk_gl_context_set_debug_enabled :: 
+    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
+    CInt ->                                 -- enabled : TBasicType TBoolean
+    IO ()
+
+
+gLContextSetDebugEnabled ::
+    (MonadIO m, GLContextK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- enabled
+    m ()
+gLContextSetDebugEnabled _obj enabled = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let enabled' = (fromIntegral . fromEnum) enabled
+    gdk_gl_context_set_debug_enabled _obj' enabled'
+    touchManagedPtr _obj
+    return ()
+
+-- method GLContext::set_forward_compatible
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "compatible", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "compatible", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_gl_context_set_forward_compatible" gdk_gl_context_set_forward_compatible :: 
+    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
+    CInt ->                                 -- compatible : TBasicType TBoolean
+    IO ()
+
+
+gLContextSetForwardCompatible ::
+    (MonadIO m, GLContextK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- compatible
+    m ()
+gLContextSetForwardCompatible _obj compatible = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let compatible' = (fromIntegral . fromEnum) compatible
+    gdk_gl_context_set_forward_compatible _obj' compatible'
+    touchManagedPtr _obj
+    return ()
+
+-- method GLContext::set_required_version
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "major", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minor", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "major", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minor", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_gl_context_set_required_version" gdk_gl_context_set_required_version :: 
+    Ptr GLContext ->                        -- _obj : TInterface "Gdk" "GLContext"
+    Int32 ->                                -- major : TBasicType TInt32
+    Int32 ->                                -- minor : TBasicType TInt32
+    IO ()
+
+
+gLContextSetRequiredVersion ::
+    (MonadIO m, GLContextK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- major
+    Int32 ->                                -- minor
+    m ()
+gLContextSetRequiredVersion _obj major minor = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_gl_context_set_required_version _obj' major minor
+    touchManagedPtr _obj
+    return ()
+
+-- method GLContext::clear_current
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_gl_context_clear_current" gdk_gl_context_clear_current :: 
+    IO ()
+
+
+gLContextClearCurrent ::
+    (MonadIO m) =>
+    m ()
+gLContextClearCurrent  = liftIO $ do
+    gdk_gl_context_clear_current
+    return ()
+
+-- method GLContext::get_current
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "Gdk" "GLContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_gl_context_get_current" gdk_gl_context_get_current :: 
+    IO (Ptr GLContext)
+
+
+gLContextGetCurrent ::
+    (MonadIO m) =>
+    m GLContext
+gLContextGetCurrent  = liftIO $ do
+    result <- gdk_gl_context_get_current
+    checkUnexpectedReturnNULL "gdk_gl_context_get_current" result
+    result' <- (newObject GLContext) result
+    return result'
+
+
diff --git a/GI/Gdk/Objects/GLContext.hs-boot b/GI/Gdk/Objects/GLContext.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/GLContext.hs-boot
@@ -0,0 +1,16 @@
+module GI.Gdk.Objects.GLContext where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype GLContext = GLContext (ForeignPtr GLContext)
+instance GObject GLContext where
+class GObject o => GLContextK o
+instance (GObject o, IsDescendantOf GLContext o) => GLContextK o
+data GLContextDisplayPropertyInfo
+data GLContextSharedContextPropertyInfo
+data GLContextWindowPropertyInfo
diff --git a/GI/Gdk/Objects/Keymap.hs b/GI/Gdk/Objects/Keymap.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/Keymap.hs
@@ -0,0 +1,739 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Objects.Keymap
+    ( 
+
+-- * Exported types
+    Keymap(..)                              ,
+    KeymapK                                 ,
+    toKeymap                                ,
+    noKeymap                                ,
+
+
+ -- * Methods
+-- ** keymapAddVirtualModifiers
+    keymapAddVirtualModifiers               ,
+
+
+-- ** keymapGetCapsLockState
+    keymapGetCapsLockState                  ,
+
+
+-- ** keymapGetDefault
+    keymapGetDefault                        ,
+
+
+-- ** keymapGetDirection
+    keymapGetDirection                      ,
+
+
+-- ** keymapGetEntriesForKeycode
+    keymapGetEntriesForKeycode              ,
+
+
+-- ** keymapGetEntriesForKeyval
+    keymapGetEntriesForKeyval               ,
+
+
+-- ** keymapGetForDisplay
+    keymapGetForDisplay                     ,
+
+
+-- ** keymapGetModifierMask
+    keymapGetModifierMask                   ,
+
+
+-- ** keymapGetModifierState
+    keymapGetModifierState                  ,
+
+
+-- ** keymapGetNumLockState
+    keymapGetNumLockState                   ,
+
+
+-- ** keymapGetScrollLockState
+    keymapGetScrollLockState                ,
+
+
+-- ** keymapHaveBidiLayouts
+    keymapHaveBidiLayouts                   ,
+
+
+-- ** keymapLookupKey
+    keymapLookupKey                         ,
+
+
+-- ** keymapMapVirtualModifiers
+    keymapMapVirtualModifiers               ,
+
+
+-- ** keymapTranslateKeyboardState
+    keymapTranslateKeyboardState            ,
+
+
+
+
+ -- * Signals
+-- ** DirectionChanged
+    KeymapDirectionChangedCallback          ,
+    KeymapDirectionChangedCallbackC         ,
+    KeymapDirectionChangedSignalInfo        ,
+    afterKeymapDirectionChanged             ,
+    keymapDirectionChangedCallbackWrapper   ,
+    keymapDirectionChangedClosure           ,
+    mkKeymapDirectionChangedCallback        ,
+    noKeymapDirectionChangedCallback        ,
+    onKeymapDirectionChanged                ,
+
+
+-- ** KeysChanged
+    KeymapKeysChangedCallback               ,
+    KeymapKeysChangedCallbackC              ,
+    KeymapKeysChangedSignalInfo             ,
+    afterKeymapKeysChanged                  ,
+    keymapKeysChangedCallbackWrapper        ,
+    keymapKeysChangedClosure                ,
+    mkKeymapKeysChangedCallback             ,
+    noKeymapKeysChangedCallback             ,
+    onKeymapKeysChanged                     ,
+
+
+-- ** StateChanged
+    KeymapStateChangedCallback              ,
+    KeymapStateChangedCallbackC             ,
+    KeymapStateChangedSignalInfo            ,
+    afterKeymapStateChanged                 ,
+    keymapStateChangedCallbackWrapper       ,
+    keymapStateChangedClosure               ,
+    mkKeymapStateChangedCallback            ,
+    noKeymapStateChangedCallback            ,
+    onKeymapStateChanged                    ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.GObject as GObject
+import qualified GI.Pango as Pango
+
+newtype Keymap = Keymap (ForeignPtr Keymap)
+foreign import ccall "gdk_keymap_get_type"
+    c_gdk_keymap_get_type :: IO GType
+
+type instance ParentTypes Keymap = KeymapParentTypes
+type KeymapParentTypes = '[GObject.Object]
+
+instance GObject Keymap where
+    gobjectIsInitiallyUnowned _ = False
+    gobjectType _ = c_gdk_keymap_get_type
+    
+
+class GObject o => KeymapK o
+instance (GObject o, IsDescendantOf Keymap o) => KeymapK o
+
+toKeymap :: KeymapK o => o -> IO Keymap
+toKeymap = unsafeCastTo Keymap
+
+noKeymap :: Maybe Keymap
+noKeymap = Nothing
+
+-- signal Keymap::direction-changed
+type KeymapDirectionChangedCallback =
+    IO ()
+
+noKeymapDirectionChangedCallback :: Maybe KeymapDirectionChangedCallback
+noKeymapDirectionChangedCallback = Nothing
+
+type KeymapDirectionChangedCallbackC =
+    Ptr () ->                               -- object
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkKeymapDirectionChangedCallback :: KeymapDirectionChangedCallbackC -> IO (FunPtr KeymapDirectionChangedCallbackC)
+
+keymapDirectionChangedClosure :: KeymapDirectionChangedCallback -> IO Closure
+keymapDirectionChangedClosure cb = newCClosure =<< mkKeymapDirectionChangedCallback wrapped
+    where wrapped = keymapDirectionChangedCallbackWrapper cb
+
+keymapDirectionChangedCallbackWrapper ::
+    KeymapDirectionChangedCallback ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+keymapDirectionChangedCallbackWrapper _cb _ _ = do
+    _cb 
+
+onKeymapDirectionChanged :: (GObject a, MonadIO m) => a -> KeymapDirectionChangedCallback -> m SignalHandlerId
+onKeymapDirectionChanged obj cb = liftIO $ connectKeymapDirectionChanged obj cb SignalConnectBefore
+afterKeymapDirectionChanged :: (GObject a, MonadIO m) => a -> KeymapDirectionChangedCallback -> m SignalHandlerId
+afterKeymapDirectionChanged obj cb = connectKeymapDirectionChanged obj cb SignalConnectAfter
+
+connectKeymapDirectionChanged :: (GObject a, MonadIO m) =>
+                                 a -> KeymapDirectionChangedCallback -> SignalConnectMode -> m SignalHandlerId
+connectKeymapDirectionChanged obj cb after = liftIO $ do
+    cb' <- mkKeymapDirectionChangedCallback (keymapDirectionChangedCallbackWrapper cb)
+    connectSignalFunPtr obj "direction-changed" cb' after
+
+-- signal Keymap::keys-changed
+type KeymapKeysChangedCallback =
+    IO ()
+
+noKeymapKeysChangedCallback :: Maybe KeymapKeysChangedCallback
+noKeymapKeysChangedCallback = Nothing
+
+type KeymapKeysChangedCallbackC =
+    Ptr () ->                               -- object
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkKeymapKeysChangedCallback :: KeymapKeysChangedCallbackC -> IO (FunPtr KeymapKeysChangedCallbackC)
+
+keymapKeysChangedClosure :: KeymapKeysChangedCallback -> IO Closure
+keymapKeysChangedClosure cb = newCClosure =<< mkKeymapKeysChangedCallback wrapped
+    where wrapped = keymapKeysChangedCallbackWrapper cb
+
+keymapKeysChangedCallbackWrapper ::
+    KeymapKeysChangedCallback ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+keymapKeysChangedCallbackWrapper _cb _ _ = do
+    _cb 
+
+onKeymapKeysChanged :: (GObject a, MonadIO m) => a -> KeymapKeysChangedCallback -> m SignalHandlerId
+onKeymapKeysChanged obj cb = liftIO $ connectKeymapKeysChanged obj cb SignalConnectBefore
+afterKeymapKeysChanged :: (GObject a, MonadIO m) => a -> KeymapKeysChangedCallback -> m SignalHandlerId
+afterKeymapKeysChanged obj cb = connectKeymapKeysChanged obj cb SignalConnectAfter
+
+connectKeymapKeysChanged :: (GObject a, MonadIO m) =>
+                            a -> KeymapKeysChangedCallback -> SignalConnectMode -> m SignalHandlerId
+connectKeymapKeysChanged obj cb after = liftIO $ do
+    cb' <- mkKeymapKeysChangedCallback (keymapKeysChangedCallbackWrapper cb)
+    connectSignalFunPtr obj "keys-changed" cb' after
+
+-- signal Keymap::state-changed
+type KeymapStateChangedCallback =
+    IO ()
+
+noKeymapStateChangedCallback :: Maybe KeymapStateChangedCallback
+noKeymapStateChangedCallback = Nothing
+
+type KeymapStateChangedCallbackC =
+    Ptr () ->                               -- object
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkKeymapStateChangedCallback :: KeymapStateChangedCallbackC -> IO (FunPtr KeymapStateChangedCallbackC)
+
+keymapStateChangedClosure :: KeymapStateChangedCallback -> IO Closure
+keymapStateChangedClosure cb = newCClosure =<< mkKeymapStateChangedCallback wrapped
+    where wrapped = keymapStateChangedCallbackWrapper cb
+
+keymapStateChangedCallbackWrapper ::
+    KeymapStateChangedCallback ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+keymapStateChangedCallbackWrapper _cb _ _ = do
+    _cb 
+
+onKeymapStateChanged :: (GObject a, MonadIO m) => a -> KeymapStateChangedCallback -> m SignalHandlerId
+onKeymapStateChanged obj cb = liftIO $ connectKeymapStateChanged obj cb SignalConnectBefore
+afterKeymapStateChanged :: (GObject a, MonadIO m) => a -> KeymapStateChangedCallback -> m SignalHandlerId
+afterKeymapStateChanged obj cb = connectKeymapStateChanged obj cb SignalConnectAfter
+
+connectKeymapStateChanged :: (GObject a, MonadIO m) =>
+                             a -> KeymapStateChangedCallback -> SignalConnectMode -> m SignalHandlerId
+connectKeymapStateChanged obj cb after = liftIO $ do
+    cb' <- mkKeymapStateChangedCallback (keymapStateChangedCallbackWrapper cb)
+    connectSignalFunPtr obj "state-changed" cb' after
+
+type instance AttributeList Keymap = KeymapAttributeList
+type KeymapAttributeList = ('[ ] :: [(Symbol, *)])
+
+data KeymapDirectionChangedSignalInfo
+instance SignalInfo KeymapDirectionChangedSignalInfo where
+    type HaskellCallbackType KeymapDirectionChangedSignalInfo = KeymapDirectionChangedCallback
+    connectSignal _ = connectKeymapDirectionChanged
+
+data KeymapKeysChangedSignalInfo
+instance SignalInfo KeymapKeysChangedSignalInfo where
+    type HaskellCallbackType KeymapKeysChangedSignalInfo = KeymapKeysChangedCallback
+    connectSignal _ = connectKeymapKeysChanged
+
+data KeymapStateChangedSignalInfo
+instance SignalInfo KeymapStateChangedSignalInfo where
+    type HaskellCallbackType KeymapStateChangedSignalInfo = KeymapStateChangedCallback
+    connectSignal _ = connectKeymapStateChanged
+
+type instance SignalList Keymap = KeymapSignalList
+type KeymapSignalList = ('[ '("direction-changed", KeymapDirectionChangedSignalInfo), '("keys-changed", KeymapKeysChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("state-changed", KeymapStateChangedSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+
+-- method Keymap::add_virtual_modifiers
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keymap_add_virtual_modifiers" gdk_keymap_add_virtual_modifiers :: 
+    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
+    Ptr CUInt ->                            -- state : TInterface "Gdk" "ModifierType"
+    IO ()
+
+
+keymapAddVirtualModifiers ::
+    (MonadIO m, KeymapK a) =>
+    a ->                                    -- _obj
+    [ModifierType] ->                       -- state
+    m ([ModifierType])
+keymapAddVirtualModifiers _obj state = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let state' = gflagsToWord state
+    state'' <- allocMem :: IO (Ptr CUInt)
+    poke state'' state'
+    gdk_keymap_add_virtual_modifiers _obj' state''
+    state''' <- peek state''
+    let state'''' = wordToGFlags state'''
+    touchManagedPtr _obj
+    freeMem state''
+    return state''''
+
+-- method Keymap::get_caps_lock_state
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keymap_get_caps_lock_state" gdk_keymap_get_caps_lock_state :: 
+    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
+    IO CInt
+
+
+keymapGetCapsLockState ::
+    (MonadIO m, KeymapK a) =>
+    a ->                                    -- _obj
+    m Bool
+keymapGetCapsLockState _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_keymap_get_caps_lock_state _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Keymap::get_direction
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Pango" "Direction"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keymap_get_direction" gdk_keymap_get_direction :: 
+    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
+    IO CUInt
+
+
+keymapGetDirection ::
+    (MonadIO m, KeymapK a) =>
+    a ->                                    -- _obj
+    m Pango.Direction
+keymapGetDirection _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_keymap_get_direction _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Keymap::get_entries_for_keycode
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hardware_keycode", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keys", argType = TCArray False (-1) 4 (TInterface "Gdk" "KeymapKey"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "keyvals", argType = TCArray False (-1) 4 (TBasicType TUInt32), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "n_entries", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "n_entries", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "n_entries", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hardware_keycode", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keymap_get_entries_for_keycode" gdk_keymap_get_entries_for_keycode :: 
+    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
+    Word32 ->                               -- hardware_keycode : TBasicType TUInt32
+    Ptr (Ptr KeymapKey) ->                  -- keys : TCArray False (-1) 4 (TInterface "Gdk" "KeymapKey")
+    Ptr (Ptr Word32) ->                     -- keyvals : TCArray False (-1) 4 (TBasicType TUInt32)
+    Ptr Int32 ->                            -- n_entries : TBasicType TInt32
+    IO CInt
+
+
+keymapGetEntriesForKeycode ::
+    (MonadIO m, KeymapK a) =>
+    a ->                                    -- _obj
+    Word32 ->                               -- hardware_keycode
+    m (Bool,[KeymapKey],[Word32])
+keymapGetEntriesForKeycode _obj hardware_keycode = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    keys <- allocMem :: IO (Ptr (Ptr KeymapKey))
+    keyvals <- allocMem :: IO (Ptr (Ptr Word32))
+    n_entries <- allocMem :: IO (Ptr Int32)
+    result <- gdk_keymap_get_entries_for_keycode _obj' hardware_keycode keys keyvals n_entries
+    n_entries' <- peek n_entries
+    let result' = (/= 0) result
+    keys' <- peek keys
+    keys'' <- (unpackBlockArrayWithLength 12 n_entries') keys'
+    keys''' <- mapM (wrapPtr KeymapKey) keys''
+    freeMem keys'
+    keyvals' <- peek keyvals
+    keyvals'' <- (unpackStorableArrayWithLength n_entries') keyvals'
+    freeMem keyvals'
+    touchManagedPtr _obj
+    freeMem keys
+    freeMem keyvals
+    freeMem n_entries
+    return (result', keys''', keyvals'')
+
+-- method Keymap::get_entries_for_keyval
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keys", argType = TCArray False (-1) 3 (TInterface "Gdk" "KeymapKey"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "n_keys", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "n_keys", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keymap_get_entries_for_keyval" gdk_keymap_get_entries_for_keyval :: 
+    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
+    Word32 ->                               -- keyval : TBasicType TUInt32
+    Ptr (Ptr KeymapKey) ->                  -- keys : TCArray False (-1) 3 (TInterface "Gdk" "KeymapKey")
+    Ptr Int32 ->                            -- n_keys : TBasicType TInt32
+    IO CInt
+
+
+keymapGetEntriesForKeyval ::
+    (MonadIO m, KeymapK a) =>
+    a ->                                    -- _obj
+    Word32 ->                               -- keyval
+    m (Bool,[KeymapKey])
+keymapGetEntriesForKeyval _obj keyval = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    keys <- allocMem :: IO (Ptr (Ptr KeymapKey))
+    n_keys <- allocMem :: IO (Ptr Int32)
+    result <- gdk_keymap_get_entries_for_keyval _obj' keyval keys n_keys
+    n_keys' <- peek n_keys
+    let result' = (/= 0) result
+    keys' <- peek keys
+    keys'' <- (unpackBlockArrayWithLength 12 n_keys') keys'
+    keys''' <- mapM (wrapPtr KeymapKey) keys''
+    freeMem keys'
+    touchManagedPtr _obj
+    freeMem keys
+    freeMem n_keys
+    return (result', keys''')
+
+-- method Keymap::get_modifier_mask
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "intent", argType = TInterface "Gdk" "ModifierIntent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "intent", argType = TInterface "Gdk" "ModifierIntent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "ModifierType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keymap_get_modifier_mask" gdk_keymap_get_modifier_mask :: 
+    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
+    CUInt ->                                -- intent : TInterface "Gdk" "ModifierIntent"
+    IO CUInt
+
+
+keymapGetModifierMask ::
+    (MonadIO m, KeymapK a) =>
+    a ->                                    -- _obj
+    ModifierIntent ->                       -- intent
+    m [ModifierType]
+keymapGetModifierMask _obj intent = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let intent' = (fromIntegral . fromEnum) intent
+    result <- gdk_keymap_get_modifier_mask _obj' intent'
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    return result'
+
+-- method Keymap::get_modifier_state
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keymap_get_modifier_state" gdk_keymap_get_modifier_state :: 
+    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
+    IO Word32
+
+
+keymapGetModifierState ::
+    (MonadIO m, KeymapK a) =>
+    a ->                                    -- _obj
+    m Word32
+keymapGetModifierState _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_keymap_get_modifier_state _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Keymap::get_num_lock_state
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keymap_get_num_lock_state" gdk_keymap_get_num_lock_state :: 
+    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
+    IO CInt
+
+
+keymapGetNumLockState ::
+    (MonadIO m, KeymapK a) =>
+    a ->                                    -- _obj
+    m Bool
+keymapGetNumLockState _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_keymap_get_num_lock_state _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Keymap::get_scroll_lock_state
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keymap_get_scroll_lock_state" gdk_keymap_get_scroll_lock_state :: 
+    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
+    IO CInt
+
+
+keymapGetScrollLockState ::
+    (MonadIO m, KeymapK a) =>
+    a ->                                    -- _obj
+    m Bool
+keymapGetScrollLockState _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_keymap_get_scroll_lock_state _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Keymap::have_bidi_layouts
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keymap_have_bidi_layouts" gdk_keymap_have_bidi_layouts :: 
+    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
+    IO CInt
+
+
+keymapHaveBidiLayouts ::
+    (MonadIO m, KeymapK a) =>
+    a ->                                    -- _obj
+    m Bool
+keymapHaveBidiLayouts _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_keymap_have_bidi_layouts _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Keymap::lookup_key
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TInterface "Gdk" "KeymapKey", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TInterface "Gdk" "KeymapKey", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keymap_lookup_key" gdk_keymap_lookup_key :: 
+    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
+    Ptr KeymapKey ->                        -- key : TInterface "Gdk" "KeymapKey"
+    IO Word32
+
+
+keymapLookupKey ::
+    (MonadIO m, KeymapK a) =>
+    a ->                                    -- _obj
+    KeymapKey ->                            -- key
+    m Word32
+keymapLookupKey _obj key = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let key' = unsafeManagedPtrGetPtr key
+    result <- gdk_keymap_lookup_key _obj' key'
+    touchManagedPtr _obj
+    touchManagedPtr key
+    return result
+
+-- method Keymap::map_virtual_modifiers
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keymap_map_virtual_modifiers" gdk_keymap_map_virtual_modifiers :: 
+    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
+    Ptr CUInt ->                            -- state : TInterface "Gdk" "ModifierType"
+    IO CInt
+
+
+keymapMapVirtualModifiers ::
+    (MonadIO m, KeymapK a) =>
+    a ->                                    -- _obj
+    [ModifierType] ->                       -- state
+    m (Bool,[ModifierType])
+keymapMapVirtualModifiers _obj state = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let state' = gflagsToWord state
+    state'' <- allocMem :: IO (Ptr CUInt)
+    poke state'' state'
+    result <- gdk_keymap_map_virtual_modifiers _obj' state''
+    let result' = (/= 0) result
+    state''' <- peek state''
+    let state'''' = wordToGFlags state'''
+    touchManagedPtr _obj
+    freeMem state''
+    return (result', state'''')
+
+-- method Keymap::translate_keyboard_state
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hardware_keycode", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "effective_group", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "level", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "consumed_modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hardware_keycode", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keymap_translate_keyboard_state" gdk_keymap_translate_keyboard_state :: 
+    Ptr Keymap ->                           -- _obj : TInterface "Gdk" "Keymap"
+    Word32 ->                               -- hardware_keycode : TBasicType TUInt32
+    CUInt ->                                -- state : TInterface "Gdk" "ModifierType"
+    Int32 ->                                -- group : TBasicType TInt32
+    Ptr Word32 ->                           -- keyval : TBasicType TUInt32
+    Ptr Int32 ->                            -- effective_group : TBasicType TInt32
+    Ptr Int32 ->                            -- level : TBasicType TInt32
+    Ptr CUInt ->                            -- consumed_modifiers : TInterface "Gdk" "ModifierType"
+    IO CInt
+
+
+keymapTranslateKeyboardState ::
+    (MonadIO m, KeymapK a) =>
+    a ->                                    -- _obj
+    Word32 ->                               -- hardware_keycode
+    [ModifierType] ->                       -- state
+    Int32 ->                                -- group
+    m (Bool,Word32,Int32,Int32,[ModifierType])
+keymapTranslateKeyboardState _obj hardware_keycode state group = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let state' = gflagsToWord state
+    keyval <- allocMem :: IO (Ptr Word32)
+    effective_group <- allocMem :: IO (Ptr Int32)
+    level <- allocMem :: IO (Ptr Int32)
+    consumed_modifiers <- allocMem :: IO (Ptr CUInt)
+    result <- gdk_keymap_translate_keyboard_state _obj' hardware_keycode state' group keyval effective_group level consumed_modifiers
+    let result' = (/= 0) result
+    keyval' <- peek keyval
+    effective_group' <- peek effective_group
+    level' <- peek level
+    consumed_modifiers' <- peek consumed_modifiers
+    let consumed_modifiers'' = wordToGFlags consumed_modifiers'
+    touchManagedPtr _obj
+    freeMem keyval
+    freeMem effective_group
+    freeMem level
+    freeMem consumed_modifiers
+    return (result', keyval', effective_group', level', consumed_modifiers'')
+
+-- method Keymap::get_default
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "Gdk" "Keymap"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keymap_get_default" gdk_keymap_get_default :: 
+    IO (Ptr Keymap)
+
+
+keymapGetDefault ::
+    (MonadIO m) =>
+    m Keymap
+keymapGetDefault  = liftIO $ do
+    result <- gdk_keymap_get_default
+    checkUnexpectedReturnNULL "gdk_keymap_get_default" result
+    result' <- (newObject Keymap) result
+    return result'
+
+-- method Keymap::get_for_display
+-- method type : MemberFunction
+-- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Keymap"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keymap_get_for_display" gdk_keymap_get_for_display :: 
+    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
+    IO (Ptr Keymap)
+
+
+keymapGetForDisplay ::
+    (MonadIO m, DisplayK a) =>
+    a ->                                    -- display
+    m Keymap
+keymapGetForDisplay display = liftIO $ do
+    let display' = unsafeManagedPtrCastPtr display
+    result <- gdk_keymap_get_for_display display'
+    checkUnexpectedReturnNULL "gdk_keymap_get_for_display" result
+    result' <- (newObject Keymap) result
+    touchManagedPtr display
+    return result'
+
+
diff --git a/GI/Gdk/Objects/Keymap.hs-boot b/GI/Gdk/Objects/Keymap.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/Keymap.hs-boot
@@ -0,0 +1,16 @@
+module GI.Gdk.Objects.Keymap where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype Keymap = Keymap (ForeignPtr Keymap)
+instance GObject Keymap where
+class GObject o => KeymapK o
+instance (GObject o, IsDescendantOf Keymap o) => KeymapK o
+data KeymapDirectionChangedSignalInfo
+data KeymapKeysChangedSignalInfo
+data KeymapStateChangedSignalInfo
diff --git a/GI/Gdk/Objects/Screen.hs b/GI/Gdk/Objects/Screen.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/Screen.hs
@@ -0,0 +1,1336 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Objects.Screen
+    ( 
+
+-- * Exported types
+    Screen(..)                              ,
+    ScreenK                                 ,
+    toScreen                                ,
+    noScreen                                ,
+
+
+ -- * Methods
+-- ** screenGetActiveWindow
+    screenGetActiveWindow                   ,
+
+
+-- ** screenGetDefault
+    screenGetDefault                        ,
+
+
+-- ** screenGetDisplay
+    screenGetDisplay                        ,
+
+
+-- ** screenGetFontOptions
+    screenGetFontOptions                    ,
+
+
+-- ** screenGetHeight
+    screenGetHeight                         ,
+
+
+-- ** screenGetHeightMm
+    screenGetHeightMm                       ,
+
+
+-- ** screenGetMonitorAtPoint
+    screenGetMonitorAtPoint                 ,
+
+
+-- ** screenGetMonitorAtWindow
+    screenGetMonitorAtWindow                ,
+
+
+-- ** screenGetMonitorGeometry
+    screenGetMonitorGeometry                ,
+
+
+-- ** screenGetMonitorHeightMm
+    screenGetMonitorHeightMm                ,
+
+
+-- ** screenGetMonitorPlugName
+    screenGetMonitorPlugName                ,
+
+
+-- ** screenGetMonitorScaleFactor
+    screenGetMonitorScaleFactor             ,
+
+
+-- ** screenGetMonitorWidthMm
+    screenGetMonitorWidthMm                 ,
+
+
+-- ** screenGetMonitorWorkarea
+    screenGetMonitorWorkarea                ,
+
+
+-- ** screenGetNMonitors
+    screenGetNMonitors                      ,
+
+
+-- ** screenGetNumber
+    screenGetNumber                         ,
+
+
+-- ** screenGetPrimaryMonitor
+    screenGetPrimaryMonitor                 ,
+
+
+-- ** screenGetResolution
+    screenGetResolution                     ,
+
+
+-- ** screenGetRgbaVisual
+    screenGetRgbaVisual                     ,
+
+
+-- ** screenGetRootWindow
+    screenGetRootWindow                     ,
+
+
+-- ** screenGetSetting
+    screenGetSetting                        ,
+
+
+-- ** screenGetSystemVisual
+    screenGetSystemVisual                   ,
+
+
+-- ** screenGetToplevelWindows
+    screenGetToplevelWindows                ,
+
+
+-- ** screenGetWidth
+    screenGetWidth                          ,
+
+
+-- ** screenGetWidthMm
+    screenGetWidthMm                        ,
+
+
+-- ** screenGetWindowStack
+    screenGetWindowStack                    ,
+
+
+-- ** screenHeight
+    screenHeight                            ,
+
+
+-- ** screenHeightMm
+    screenHeightMm                          ,
+
+
+-- ** screenIsComposited
+    screenIsComposited                      ,
+
+
+-- ** screenListVisuals
+    screenListVisuals                       ,
+
+
+-- ** screenMakeDisplayName
+    screenMakeDisplayName                   ,
+
+
+-- ** screenSetFontOptions
+    screenSetFontOptions                    ,
+
+
+-- ** screenSetResolution
+    screenSetResolution                     ,
+
+
+-- ** screenWidth
+    screenWidth                             ,
+
+
+-- ** screenWidthMm
+    screenWidthMm                           ,
+
+
+
+
+ -- * Properties
+-- ** FontOptions
+    ScreenFontOptionsPropertyInfo           ,
+    constructScreenFontOptions              ,
+    getScreenFontOptions                    ,
+    setScreenFontOptions                    ,
+
+
+-- ** Resolution
+    ScreenResolutionPropertyInfo            ,
+    constructScreenResolution               ,
+    getScreenResolution                     ,
+    setScreenResolution                     ,
+
+
+
+
+ -- * Signals
+-- ** CompositedChanged
+    ScreenCompositedChangedCallback         ,
+    ScreenCompositedChangedCallbackC        ,
+    ScreenCompositedChangedSignalInfo       ,
+    afterScreenCompositedChanged            ,
+    mkScreenCompositedChangedCallback       ,
+    noScreenCompositedChangedCallback       ,
+    onScreenCompositedChanged               ,
+    screenCompositedChangedCallbackWrapper  ,
+    screenCompositedChangedClosure          ,
+
+
+-- ** MonitorsChanged
+    ScreenMonitorsChangedCallback           ,
+    ScreenMonitorsChangedCallbackC          ,
+    ScreenMonitorsChangedSignalInfo         ,
+    afterScreenMonitorsChanged              ,
+    mkScreenMonitorsChangedCallback         ,
+    noScreenMonitorsChangedCallback         ,
+    onScreenMonitorsChanged                 ,
+    screenMonitorsChangedCallbackWrapper    ,
+    screenMonitorsChangedClosure            ,
+
+
+-- ** SizeChanged
+    ScreenSizeChangedCallback               ,
+    ScreenSizeChangedCallbackC              ,
+    ScreenSizeChangedSignalInfo             ,
+    afterScreenSizeChanged                  ,
+    mkScreenSizeChangedCallback             ,
+    noScreenSizeChangedCallback             ,
+    onScreenSizeChanged                     ,
+    screenSizeChangedCallbackWrapper        ,
+    screenSizeChangedClosure                ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.GObject as GObject
+import qualified GI.Cairo as Cairo
+
+newtype Screen = Screen (ForeignPtr Screen)
+foreign import ccall "gdk_screen_get_type"
+    c_gdk_screen_get_type :: IO GType
+
+type instance ParentTypes Screen = ScreenParentTypes
+type ScreenParentTypes = '[GObject.Object]
+
+instance GObject Screen where
+    gobjectIsInitiallyUnowned _ = False
+    gobjectType _ = c_gdk_screen_get_type
+    
+
+class GObject o => ScreenK o
+instance (GObject o, IsDescendantOf Screen o) => ScreenK o
+
+toScreen :: ScreenK o => o -> IO Screen
+toScreen = unsafeCastTo Screen
+
+noScreen :: Maybe Screen
+noScreen = Nothing
+
+-- signal Screen::composited-changed
+type ScreenCompositedChangedCallback =
+    IO ()
+
+noScreenCompositedChangedCallback :: Maybe ScreenCompositedChangedCallback
+noScreenCompositedChangedCallback = Nothing
+
+type ScreenCompositedChangedCallbackC =
+    Ptr () ->                               -- object
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkScreenCompositedChangedCallback :: ScreenCompositedChangedCallbackC -> IO (FunPtr ScreenCompositedChangedCallbackC)
+
+screenCompositedChangedClosure :: ScreenCompositedChangedCallback -> IO Closure
+screenCompositedChangedClosure cb = newCClosure =<< mkScreenCompositedChangedCallback wrapped
+    where wrapped = screenCompositedChangedCallbackWrapper cb
+
+screenCompositedChangedCallbackWrapper ::
+    ScreenCompositedChangedCallback ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+screenCompositedChangedCallbackWrapper _cb _ _ = do
+    _cb 
+
+onScreenCompositedChanged :: (GObject a, MonadIO m) => a -> ScreenCompositedChangedCallback -> m SignalHandlerId
+onScreenCompositedChanged obj cb = liftIO $ connectScreenCompositedChanged obj cb SignalConnectBefore
+afterScreenCompositedChanged :: (GObject a, MonadIO m) => a -> ScreenCompositedChangedCallback -> m SignalHandlerId
+afterScreenCompositedChanged obj cb = connectScreenCompositedChanged obj cb SignalConnectAfter
+
+connectScreenCompositedChanged :: (GObject a, MonadIO m) =>
+                                  a -> ScreenCompositedChangedCallback -> SignalConnectMode -> m SignalHandlerId
+connectScreenCompositedChanged obj cb after = liftIO $ do
+    cb' <- mkScreenCompositedChangedCallback (screenCompositedChangedCallbackWrapper cb)
+    connectSignalFunPtr obj "composited-changed" cb' after
+
+-- signal Screen::monitors-changed
+type ScreenMonitorsChangedCallback =
+    IO ()
+
+noScreenMonitorsChangedCallback :: Maybe ScreenMonitorsChangedCallback
+noScreenMonitorsChangedCallback = Nothing
+
+type ScreenMonitorsChangedCallbackC =
+    Ptr () ->                               -- object
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkScreenMonitorsChangedCallback :: ScreenMonitorsChangedCallbackC -> IO (FunPtr ScreenMonitorsChangedCallbackC)
+
+screenMonitorsChangedClosure :: ScreenMonitorsChangedCallback -> IO Closure
+screenMonitorsChangedClosure cb = newCClosure =<< mkScreenMonitorsChangedCallback wrapped
+    where wrapped = screenMonitorsChangedCallbackWrapper cb
+
+screenMonitorsChangedCallbackWrapper ::
+    ScreenMonitorsChangedCallback ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+screenMonitorsChangedCallbackWrapper _cb _ _ = do
+    _cb 
+
+onScreenMonitorsChanged :: (GObject a, MonadIO m) => a -> ScreenMonitorsChangedCallback -> m SignalHandlerId
+onScreenMonitorsChanged obj cb = liftIO $ connectScreenMonitorsChanged obj cb SignalConnectBefore
+afterScreenMonitorsChanged :: (GObject a, MonadIO m) => a -> ScreenMonitorsChangedCallback -> m SignalHandlerId
+afterScreenMonitorsChanged obj cb = connectScreenMonitorsChanged obj cb SignalConnectAfter
+
+connectScreenMonitorsChanged :: (GObject a, MonadIO m) =>
+                                a -> ScreenMonitorsChangedCallback -> SignalConnectMode -> m SignalHandlerId
+connectScreenMonitorsChanged obj cb after = liftIO $ do
+    cb' <- mkScreenMonitorsChangedCallback (screenMonitorsChangedCallbackWrapper cb)
+    connectSignalFunPtr obj "monitors-changed" cb' after
+
+-- signal Screen::size-changed
+type ScreenSizeChangedCallback =
+    IO ()
+
+noScreenSizeChangedCallback :: Maybe ScreenSizeChangedCallback
+noScreenSizeChangedCallback = Nothing
+
+type ScreenSizeChangedCallbackC =
+    Ptr () ->                               -- object
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkScreenSizeChangedCallback :: ScreenSizeChangedCallbackC -> IO (FunPtr ScreenSizeChangedCallbackC)
+
+screenSizeChangedClosure :: ScreenSizeChangedCallback -> IO Closure
+screenSizeChangedClosure cb = newCClosure =<< mkScreenSizeChangedCallback wrapped
+    where wrapped = screenSizeChangedCallbackWrapper cb
+
+screenSizeChangedCallbackWrapper ::
+    ScreenSizeChangedCallback ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+screenSizeChangedCallbackWrapper _cb _ _ = do
+    _cb 
+
+onScreenSizeChanged :: (GObject a, MonadIO m) => a -> ScreenSizeChangedCallback -> m SignalHandlerId
+onScreenSizeChanged obj cb = liftIO $ connectScreenSizeChanged obj cb SignalConnectBefore
+afterScreenSizeChanged :: (GObject a, MonadIO m) => a -> ScreenSizeChangedCallback -> m SignalHandlerId
+afterScreenSizeChanged obj cb = connectScreenSizeChanged obj cb SignalConnectAfter
+
+connectScreenSizeChanged :: (GObject a, MonadIO m) =>
+                            a -> ScreenSizeChangedCallback -> SignalConnectMode -> m SignalHandlerId
+connectScreenSizeChanged obj cb after = liftIO $ do
+    cb' <- mkScreenSizeChangedCallback (screenSizeChangedCallbackWrapper cb)
+    connectSignalFunPtr obj "size-changed" cb' after
+
+-- VVV Prop "font-options"
+   -- Type: TBasicType TVoid
+   -- Flags: [PropertyReadable,PropertyWritable]
+
+getScreenFontOptions :: (MonadIO m, ScreenK o) => o -> m (Ptr ())
+getScreenFontOptions obj = liftIO $ getObjectPropertyPtr obj "font-options"
+
+setScreenFontOptions :: (MonadIO m, ScreenK o) => o -> (Ptr ()) -> m ()
+setScreenFontOptions obj val = liftIO $ setObjectPropertyPtr obj "font-options" val
+
+constructScreenFontOptions :: (Ptr ()) -> IO ([Char], GValue)
+constructScreenFontOptions val = constructObjectPropertyPtr "font-options" val
+
+data ScreenFontOptionsPropertyInfo
+instance AttrInfo ScreenFontOptionsPropertyInfo where
+    type AttrAllowedOps ScreenFontOptionsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint ScreenFontOptionsPropertyInfo = (~) (Ptr ())
+    type AttrBaseTypeConstraint ScreenFontOptionsPropertyInfo = ScreenK
+    type AttrGetType ScreenFontOptionsPropertyInfo = (Ptr ())
+    type AttrLabel ScreenFontOptionsPropertyInfo = "Screen::font-options"
+    attrGet _ = getScreenFontOptions
+    attrSet _ = setScreenFontOptions
+    attrConstruct _ = constructScreenFontOptions
+
+-- VVV Prop "resolution"
+   -- Type: TBasicType TDouble
+   -- Flags: [PropertyReadable,PropertyWritable]
+
+getScreenResolution :: (MonadIO m, ScreenK o) => o -> m Double
+getScreenResolution obj = liftIO $ getObjectPropertyDouble obj "resolution"
+
+setScreenResolution :: (MonadIO m, ScreenK o) => o -> Double -> m ()
+setScreenResolution obj val = liftIO $ setObjectPropertyDouble obj "resolution" val
+
+constructScreenResolution :: Double -> IO ([Char], GValue)
+constructScreenResolution val = constructObjectPropertyDouble "resolution" val
+
+data ScreenResolutionPropertyInfo
+instance AttrInfo ScreenResolutionPropertyInfo where
+    type AttrAllowedOps ScreenResolutionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint ScreenResolutionPropertyInfo = (~) Double
+    type AttrBaseTypeConstraint ScreenResolutionPropertyInfo = ScreenK
+    type AttrGetType ScreenResolutionPropertyInfo = Double
+    type AttrLabel ScreenResolutionPropertyInfo = "Screen::resolution"
+    attrGet _ = getScreenResolution
+    attrSet _ = setScreenResolution
+    attrConstruct _ = constructScreenResolution
+
+type instance AttributeList Screen = ScreenAttributeList
+type ScreenAttributeList = ('[ '("font-options", ScreenFontOptionsPropertyInfo), '("resolution", ScreenResolutionPropertyInfo)] :: [(Symbol, *)])
+
+data ScreenCompositedChangedSignalInfo
+instance SignalInfo ScreenCompositedChangedSignalInfo where
+    type HaskellCallbackType ScreenCompositedChangedSignalInfo = ScreenCompositedChangedCallback
+    connectSignal _ = connectScreenCompositedChanged
+
+data ScreenMonitorsChangedSignalInfo
+instance SignalInfo ScreenMonitorsChangedSignalInfo where
+    type HaskellCallbackType ScreenMonitorsChangedSignalInfo = ScreenMonitorsChangedCallback
+    connectSignal _ = connectScreenMonitorsChanged
+
+data ScreenSizeChangedSignalInfo
+instance SignalInfo ScreenSizeChangedSignalInfo where
+    type HaskellCallbackType ScreenSizeChangedSignalInfo = ScreenSizeChangedCallback
+    connectSignal _ = connectScreenSizeChanged
+
+type instance SignalList Screen = ScreenSignalList
+type ScreenSignalList = ('[ '("composited-changed", ScreenCompositedChangedSignalInfo), '("monitors-changed", ScreenMonitorsChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("size-changed", ScreenSizeChangedSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+
+-- method Screen::get_active_window
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_active_window" gdk_screen_get_active_window :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO (Ptr Window)
+
+
+screenGetActiveWindow ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m Window
+screenGetActiveWindow _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_active_window _obj'
+    checkUnexpectedReturnNULL "gdk_screen_get_active_window" result
+    result' <- (wrapObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Screen::get_display
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Display"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_display" gdk_screen_get_display :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO (Ptr Display)
+
+
+screenGetDisplay ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m Display
+screenGetDisplay _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_display _obj'
+    checkUnexpectedReturnNULL "gdk_screen_get_display" result
+    result' <- (newObject Display) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Screen::get_font_options
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "cairo" "FontOptions"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_font_options" gdk_screen_get_font_options :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO (Ptr Cairo.FontOptions)
+
+
+screenGetFontOptions ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m Cairo.FontOptions
+screenGetFontOptions _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_font_options _obj'
+    checkUnexpectedReturnNULL "gdk_screen_get_font_options" result
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    result' <- (\x -> Cairo.FontOptions <$> newForeignPtr_ x) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Screen::get_height
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_height" gdk_screen_get_height :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO Int32
+
+
+screenGetHeight ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m Int32
+screenGetHeight _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_height _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Screen::get_height_mm
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_height_mm" gdk_screen_get_height_mm :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO Int32
+
+
+screenGetHeightMm ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m Int32
+screenGetHeightMm _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_height_mm _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Screen::get_monitor_at_point
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_monitor_at_point" gdk_screen_get_monitor_at_point :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    IO Int32
+
+
+screenGetMonitorAtPoint ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- x
+    Int32 ->                                -- y
+    m Int32
+screenGetMonitorAtPoint _obj x y = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_monitor_at_point _obj' x y
+    touchManagedPtr _obj
+    return result
+
+-- method Screen::get_monitor_at_window
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_monitor_at_window" gdk_screen_get_monitor_at_window :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    IO Int32
+
+
+screenGetMonitorAtWindow ::
+    (MonadIO m, ScreenK a, WindowK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- window
+    m Int32
+screenGetMonitorAtWindow _obj window = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let window' = unsafeManagedPtrCastPtr window
+    result <- gdk_screen_get_monitor_at_window _obj' window'
+    touchManagedPtr _obj
+    touchManagedPtr window
+    return result
+
+-- method Screen::get_monitor_geometry
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_monitor_geometry" gdk_screen_get_monitor_geometry :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    Int32 ->                                -- monitor_num : TBasicType TInt32
+    Ptr Rectangle ->                        -- dest : TInterface "Gdk" "Rectangle"
+    IO ()
+
+
+screenGetMonitorGeometry ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- monitor_num
+    m (Rectangle)
+screenGetMonitorGeometry _obj monitor_num = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    dest <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
+    gdk_screen_get_monitor_geometry _obj' monitor_num dest
+    dest' <- (wrapBoxed Rectangle) dest
+    touchManagedPtr _obj
+    return dest'
+
+-- method Screen::get_monitor_height_mm
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_monitor_height_mm" gdk_screen_get_monitor_height_mm :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    Int32 ->                                -- monitor_num : TBasicType TInt32
+    IO Int32
+
+
+screenGetMonitorHeightMm ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- monitor_num
+    m Int32
+screenGetMonitorHeightMm _obj monitor_num = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_monitor_height_mm _obj' monitor_num
+    touchManagedPtr _obj
+    return result
+
+-- method Screen::get_monitor_plug_name
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_monitor_plug_name" gdk_screen_get_monitor_plug_name :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    Int32 ->                                -- monitor_num : TBasicType TInt32
+    IO CString
+
+
+screenGetMonitorPlugName ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- monitor_num
+    m T.Text
+screenGetMonitorPlugName _obj monitor_num = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_monitor_plug_name _obj' monitor_num
+    checkUnexpectedReturnNULL "gdk_screen_get_monitor_plug_name" result
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    return result'
+
+-- method Screen::get_monitor_scale_factor
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_monitor_scale_factor" gdk_screen_get_monitor_scale_factor :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    Int32 ->                                -- monitor_num : TBasicType TInt32
+    IO Int32
+
+
+screenGetMonitorScaleFactor ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- monitor_num
+    m Int32
+screenGetMonitorScaleFactor _obj monitor_num = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_monitor_scale_factor _obj' monitor_num
+    touchManagedPtr _obj
+    return result
+
+-- method Screen::get_monitor_width_mm
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_monitor_width_mm" gdk_screen_get_monitor_width_mm :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    Int32 ->                                -- monitor_num : TBasicType TInt32
+    IO Int32
+
+
+screenGetMonitorWidthMm ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- monitor_num
+    m Int32
+screenGetMonitorWidthMm _obj monitor_num = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_monitor_width_mm _obj' monitor_num
+    touchManagedPtr _obj
+    return result
+
+-- method Screen::get_monitor_workarea
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_monitor_workarea" gdk_screen_get_monitor_workarea :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    Int32 ->                                -- monitor_num : TBasicType TInt32
+    Ptr Rectangle ->                        -- dest : TInterface "Gdk" "Rectangle"
+    IO ()
+
+
+screenGetMonitorWorkarea ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- monitor_num
+    m (Rectangle)
+screenGetMonitorWorkarea _obj monitor_num = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    dest <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
+    gdk_screen_get_monitor_workarea _obj' monitor_num dest
+    dest' <- (wrapBoxed Rectangle) dest
+    touchManagedPtr _obj
+    return dest'
+
+-- method Screen::get_n_monitors
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_n_monitors" gdk_screen_get_n_monitors :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO Int32
+
+
+screenGetNMonitors ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m Int32
+screenGetNMonitors _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_n_monitors _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Screen::get_number
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_number" gdk_screen_get_number :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO Int32
+
+
+screenGetNumber ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m Int32
+screenGetNumber _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_number _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Screen::get_primary_monitor
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_primary_monitor" gdk_screen_get_primary_monitor :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO Int32
+
+
+screenGetPrimaryMonitor ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m Int32
+screenGetPrimaryMonitor _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_primary_monitor _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Screen::get_resolution
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TDouble
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_resolution" gdk_screen_get_resolution :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO CDouble
+
+
+screenGetResolution ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m Double
+screenGetResolution _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_resolution _obj'
+    let result' = realToFrac result
+    touchManagedPtr _obj
+    return result'
+
+-- method Screen::get_rgba_visual
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Visual"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_rgba_visual" gdk_screen_get_rgba_visual :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO (Ptr Visual)
+
+
+screenGetRgbaVisual ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m Visual
+screenGetRgbaVisual _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_rgba_visual _obj'
+    checkUnexpectedReturnNULL "gdk_screen_get_rgba_visual" result
+    result' <- (newObject Visual) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Screen::get_root_window
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_root_window" gdk_screen_get_root_window :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO (Ptr Window)
+
+
+screenGetRootWindow ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m Window
+screenGetRootWindow _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_root_window _obj'
+    checkUnexpectedReturnNULL "gdk_screen_get_root_window" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Screen::get_setting
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_setting" gdk_screen_get_setting :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    CString ->                              -- name : TBasicType TUTF8
+    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
+    IO CInt
+
+
+screenGetSetting ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    T.Text ->                               -- name
+    GValue ->                               -- value
+    m Bool
+screenGetSetting _obj name value = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    name' <- textToCString name
+    let value' = unsafeManagedPtrGetPtr value
+    result <- gdk_screen_get_setting _obj' name' value'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    touchManagedPtr value
+    freeMem name'
+    return result'
+
+-- method Screen::get_system_visual
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Visual"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_system_visual" gdk_screen_get_system_visual :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO (Ptr Visual)
+
+
+screenGetSystemVisual ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m Visual
+screenGetSystemVisual _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_system_visual _obj'
+    checkUnexpectedReturnNULL "gdk_screen_get_system_visual" result
+    result' <- (newObject Visual) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Screen::get_toplevel_windows
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TGList (TInterface "Gdk" "Window")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_toplevel_windows" gdk_screen_get_toplevel_windows :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO (Ptr (GList (Ptr Window)))
+
+
+screenGetToplevelWindows ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m [Window]
+screenGetToplevelWindows _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_toplevel_windows _obj'
+    checkUnexpectedReturnNULL "gdk_screen_get_toplevel_windows" result
+    result' <- unpackGList result
+    result'' <- mapM (newObject Window) result'
+    g_list_free result
+    touchManagedPtr _obj
+    return result''
+
+-- method Screen::get_width
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_width" gdk_screen_get_width :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO Int32
+
+
+screenGetWidth ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m Int32
+screenGetWidth _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_width _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Screen::get_width_mm
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_width_mm" gdk_screen_get_width_mm :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO Int32
+
+
+screenGetWidthMm ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m Int32
+screenGetWidthMm _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_width_mm _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Screen::get_window_stack
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TGList (TInterface "Gdk" "Window")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_window_stack" gdk_screen_get_window_stack :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO (Ptr (GList (Ptr Window)))
+
+
+screenGetWindowStack ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m [Window]
+screenGetWindowStack _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_get_window_stack _obj'
+    checkUnexpectedReturnNULL "gdk_screen_get_window_stack" result
+    result' <- unpackGList result
+    result'' <- mapM (wrapObject Window) result'
+    g_list_free result
+    touchManagedPtr _obj
+    return result''
+
+-- method Screen::is_composited
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_is_composited" gdk_screen_is_composited :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO CInt
+
+
+screenIsComposited ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m Bool
+screenIsComposited _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_is_composited _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Screen::list_visuals
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TGList (TInterface "Gdk" "Visual")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_list_visuals" gdk_screen_list_visuals :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO (Ptr (GList (Ptr Visual)))
+
+
+screenListVisuals ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m [Visual]
+screenListVisuals _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_list_visuals _obj'
+    checkUnexpectedReturnNULL "gdk_screen_list_visuals" result
+    result' <- unpackGList result
+    result'' <- mapM (newObject Visual) result'
+    g_list_free result
+    touchManagedPtr _obj
+    return result''
+
+-- method Screen::make_display_name
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_make_display_name" gdk_screen_make_display_name :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    IO CString
+
+
+screenMakeDisplayName ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    m T.Text
+screenMakeDisplayName _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_screen_make_display_name _obj'
+    checkUnexpectedReturnNULL "gdk_screen_make_display_name" result
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    return result'
+
+-- method Screen::set_font_options
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "options", argType = TInterface "cairo" "FontOptions", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "options", argType = TInterface "cairo" "FontOptions", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_set_font_options" gdk_screen_set_font_options :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    Ptr Cairo.FontOptions ->                -- options : TInterface "cairo" "FontOptions"
+    IO ()
+
+
+screenSetFontOptions ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    Maybe (Cairo.FontOptions) ->            -- options
+    m ()
+screenSetFontOptions _obj options = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeOptions <- case options of
+        Nothing -> return nullPtr
+        Just jOptions -> do
+            let jOptions' = unsafeManagedPtrGetPtr jOptions
+            return jOptions'
+    gdk_screen_set_font_options _obj' maybeOptions
+    touchManagedPtr _obj
+    whenJust options touchManagedPtr
+    return ()
+
+-- method Screen::set_resolution
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dpi", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dpi", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_set_resolution" gdk_screen_set_resolution :: 
+    Ptr Screen ->                           -- _obj : TInterface "Gdk" "Screen"
+    CDouble ->                              -- dpi : TBasicType TDouble
+    IO ()
+
+
+screenSetResolution ::
+    (MonadIO m, ScreenK a) =>
+    a ->                                    -- _obj
+    Double ->                               -- dpi
+    m ()
+screenSetResolution _obj dpi = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let dpi' = realToFrac dpi
+    gdk_screen_set_resolution _obj' dpi'
+    touchManagedPtr _obj
+    return ()
+
+-- method Screen::get_default
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "Gdk" "Screen"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_get_default" gdk_screen_get_default :: 
+    IO (Ptr Screen)
+
+
+screenGetDefault ::
+    (MonadIO m) =>
+    m Screen
+screenGetDefault  = liftIO $ do
+    result <- gdk_screen_get_default
+    checkUnexpectedReturnNULL "gdk_screen_get_default" result
+    result' <- (newObject Screen) result
+    return result'
+
+-- method Screen::height
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_height" gdk_screen_height :: 
+    IO Int32
+
+
+screenHeight ::
+    (MonadIO m) =>
+    m Int32
+screenHeight  = liftIO $ do
+    result <- gdk_screen_height
+    return result
+
+-- method Screen::height_mm
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_height_mm" gdk_screen_height_mm :: 
+    IO Int32
+
+
+screenHeightMm ::
+    (MonadIO m) =>
+    m Int32
+screenHeightMm  = liftIO $ do
+    result <- gdk_screen_height_mm
+    return result
+
+-- method Screen::width
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_width" gdk_screen_width :: 
+    IO Int32
+
+
+screenWidth ::
+    (MonadIO m) =>
+    m Int32
+screenWidth  = liftIO $ do
+    result <- gdk_screen_width
+    return result
+
+-- method Screen::width_mm
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_screen_width_mm" gdk_screen_width_mm :: 
+    IO Int32
+
+
+screenWidthMm ::
+    (MonadIO m) =>
+    m Int32
+screenWidthMm  = liftIO $ do
+    result <- gdk_screen_width_mm
+    return result
+
+
diff --git a/GI/Gdk/Objects/Screen.hs-boot b/GI/Gdk/Objects/Screen.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/Screen.hs-boot
@@ -0,0 +1,18 @@
+module GI.Gdk.Objects.Screen where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype Screen = Screen (ForeignPtr Screen)
+instance GObject Screen where
+class GObject o => ScreenK o
+instance (GObject o, IsDescendantOf Screen o) => ScreenK o
+data ScreenFontOptionsPropertyInfo
+data ScreenResolutionPropertyInfo
+data ScreenCompositedChangedSignalInfo
+data ScreenMonitorsChangedSignalInfo
+data ScreenSizeChangedSignalInfo
diff --git a/GI/Gdk/Objects/Visual.hs b/GI/Gdk/Objects/Visual.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/Visual.hs
@@ -0,0 +1,542 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Objects.Visual
+    ( 
+
+-- * Exported types
+    Visual(..)                              ,
+    VisualK                                 ,
+    toVisual                                ,
+    noVisual                                ,
+
+
+ -- * Methods
+-- ** visualGetBest
+    visualGetBest                           ,
+
+
+-- ** visualGetBestDepth
+    visualGetBestDepth                      ,
+
+
+-- ** visualGetBestType
+    visualGetBestType                       ,
+
+
+-- ** visualGetBestWithBoth
+    visualGetBestWithBoth                   ,
+
+
+-- ** visualGetBestWithDepth
+    visualGetBestWithDepth                  ,
+
+
+-- ** visualGetBestWithType
+    visualGetBestWithType                   ,
+
+
+-- ** visualGetBitsPerRgb
+    visualGetBitsPerRgb                     ,
+
+
+-- ** visualGetBluePixelDetails
+    visualGetBluePixelDetails               ,
+
+
+-- ** visualGetByteOrder
+    visualGetByteOrder                      ,
+
+
+-- ** visualGetColormapSize
+    visualGetColormapSize                   ,
+
+
+-- ** visualGetDepth
+    visualGetDepth                          ,
+
+
+-- ** visualGetGreenPixelDetails
+    visualGetGreenPixelDetails              ,
+
+
+-- ** visualGetRedPixelDetails
+    visualGetRedPixelDetails                ,
+
+
+-- ** visualGetScreen
+    visualGetScreen                         ,
+
+
+-- ** visualGetSystem
+    visualGetSystem                         ,
+
+
+-- ** visualGetVisualType
+    visualGetVisualType                     ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.GObject as GObject
+
+newtype Visual = Visual (ForeignPtr Visual)
+foreign import ccall "gdk_visual_get_type"
+    c_gdk_visual_get_type :: IO GType
+
+type instance ParentTypes Visual = VisualParentTypes
+type VisualParentTypes = '[GObject.Object]
+
+instance GObject Visual where
+    gobjectIsInitiallyUnowned _ = False
+    gobjectType _ = c_gdk_visual_get_type
+    
+
+class GObject o => VisualK o
+instance (GObject o, IsDescendantOf Visual o) => VisualK o
+
+toVisual :: VisualK o => o -> IO Visual
+toVisual = unsafeCastTo Visual
+
+noVisual :: Maybe Visual
+noVisual = Nothing
+
+type instance AttributeList Visual = VisualAttributeList
+type VisualAttributeList = ('[ ] :: [(Symbol, *)])
+
+type instance SignalList Visual = VisualSignalList
+type VisualSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+
+-- method Visual::get_bits_per_rgb
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_visual_get_bits_per_rgb" gdk_visual_get_bits_per_rgb :: 
+    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
+    IO Int32
+
+
+visualGetBitsPerRgb ::
+    (MonadIO m, VisualK a) =>
+    a ->                                    -- _obj
+    m Int32
+visualGetBitsPerRgb _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_visual_get_bits_per_rgb _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Visual::get_blue_pixel_details
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "shift", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "precision", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_visual_get_blue_pixel_details" gdk_visual_get_blue_pixel_details :: 
+    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
+    Ptr Word32 ->                           -- mask : TBasicType TUInt32
+    Ptr Int32 ->                            -- shift : TBasicType TInt32
+    Ptr Int32 ->                            -- precision : TBasicType TInt32
+    IO ()
+
+
+visualGetBluePixelDetails ::
+    (MonadIO m, VisualK a) =>
+    a ->                                    -- _obj
+    m (Word32,Int32,Int32)
+visualGetBluePixelDetails _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    mask <- allocMem :: IO (Ptr Word32)
+    shift <- allocMem :: IO (Ptr Int32)
+    precision <- allocMem :: IO (Ptr Int32)
+    gdk_visual_get_blue_pixel_details _obj' mask shift precision
+    mask' <- peek mask
+    shift' <- peek shift
+    precision' <- peek precision
+    touchManagedPtr _obj
+    freeMem mask
+    freeMem shift
+    freeMem precision
+    return (mask', shift', precision')
+
+-- method Visual::get_byte_order
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "ByteOrder"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_visual_get_byte_order" gdk_visual_get_byte_order :: 
+    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
+    IO CUInt
+
+
+visualGetByteOrder ::
+    (MonadIO m, VisualK a) =>
+    a ->                                    -- _obj
+    m ByteOrder
+visualGetByteOrder _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_visual_get_byte_order _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Visual::get_colormap_size
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_visual_get_colormap_size" gdk_visual_get_colormap_size :: 
+    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
+    IO Int32
+
+
+visualGetColormapSize ::
+    (MonadIO m, VisualK a) =>
+    a ->                                    -- _obj
+    m Int32
+visualGetColormapSize _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_visual_get_colormap_size _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Visual::get_depth
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_visual_get_depth" gdk_visual_get_depth :: 
+    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
+    IO Int32
+
+
+visualGetDepth ::
+    (MonadIO m, VisualK a) =>
+    a ->                                    -- _obj
+    m Int32
+visualGetDepth _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_visual_get_depth _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Visual::get_green_pixel_details
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "shift", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "precision", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_visual_get_green_pixel_details" gdk_visual_get_green_pixel_details :: 
+    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
+    Ptr Word32 ->                           -- mask : TBasicType TUInt32
+    Ptr Int32 ->                            -- shift : TBasicType TInt32
+    Ptr Int32 ->                            -- precision : TBasicType TInt32
+    IO ()
+
+
+visualGetGreenPixelDetails ::
+    (MonadIO m, VisualK a) =>
+    a ->                                    -- _obj
+    m (Word32,Int32,Int32)
+visualGetGreenPixelDetails _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    mask <- allocMem :: IO (Ptr Word32)
+    shift <- allocMem :: IO (Ptr Int32)
+    precision <- allocMem :: IO (Ptr Int32)
+    gdk_visual_get_green_pixel_details _obj' mask shift precision
+    mask' <- peek mask
+    shift' <- peek shift
+    precision' <- peek precision
+    touchManagedPtr _obj
+    freeMem mask
+    freeMem shift
+    freeMem precision
+    return (mask', shift', precision')
+
+-- method Visual::get_red_pixel_details
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "shift", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "precision", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_visual_get_red_pixel_details" gdk_visual_get_red_pixel_details :: 
+    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
+    Ptr Word32 ->                           -- mask : TBasicType TUInt32
+    Ptr Int32 ->                            -- shift : TBasicType TInt32
+    Ptr Int32 ->                            -- precision : TBasicType TInt32
+    IO ()
+
+
+visualGetRedPixelDetails ::
+    (MonadIO m, VisualK a) =>
+    a ->                                    -- _obj
+    m (Word32,Int32,Int32)
+visualGetRedPixelDetails _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    mask <- allocMem :: IO (Ptr Word32)
+    shift <- allocMem :: IO (Ptr Int32)
+    precision <- allocMem :: IO (Ptr Int32)
+    gdk_visual_get_red_pixel_details _obj' mask shift precision
+    mask' <- peek mask
+    shift' <- peek shift
+    precision' <- peek precision
+    touchManagedPtr _obj
+    freeMem mask
+    freeMem shift
+    freeMem precision
+    return (mask', shift', precision')
+
+-- method Visual::get_screen
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Screen"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_visual_get_screen" gdk_visual_get_screen :: 
+    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
+    IO (Ptr Screen)
+
+
+visualGetScreen ::
+    (MonadIO m, VisualK a) =>
+    a ->                                    -- _obj
+    m Screen
+visualGetScreen _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_visual_get_screen _obj'
+    checkUnexpectedReturnNULL "gdk_visual_get_screen" result
+    result' <- (newObject Screen) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Visual::get_visual_type
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "VisualType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_visual_get_visual_type" gdk_visual_get_visual_type :: 
+    Ptr Visual ->                           -- _obj : TInterface "Gdk" "Visual"
+    IO CUInt
+
+
+visualGetVisualType ::
+    (MonadIO m, VisualK a) =>
+    a ->                                    -- _obj
+    m VisualType
+visualGetVisualType _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_visual_get_visual_type _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Visual::get_best
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "Gdk" "Visual"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_visual_get_best" gdk_visual_get_best :: 
+    IO (Ptr Visual)
+
+
+visualGetBest ::
+    (MonadIO m) =>
+    m Visual
+visualGetBest  = liftIO $ do
+    result <- gdk_visual_get_best
+    checkUnexpectedReturnNULL "gdk_visual_get_best" result
+    result' <- (newObject Visual) result
+    return result'
+
+-- method Visual::get_best_depth
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_visual_get_best_depth" gdk_visual_get_best_depth :: 
+    IO Int32
+
+
+visualGetBestDepth ::
+    (MonadIO m) =>
+    m Int32
+visualGetBestDepth  = liftIO $ do
+    result <- gdk_visual_get_best_depth
+    return result
+
+-- method Visual::get_best_type
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "Gdk" "VisualType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_visual_get_best_type" gdk_visual_get_best_type :: 
+    IO CUInt
+
+
+visualGetBestType ::
+    (MonadIO m) =>
+    m VisualType
+visualGetBestType  = liftIO $ do
+    result <- gdk_visual_get_best_type
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+-- method Visual::get_best_with_both
+-- method type : MemberFunction
+-- Args : [Arg {argName = "depth", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "visual_type", argType = TInterface "Gdk" "VisualType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "depth", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "visual_type", argType = TInterface "Gdk" "VisualType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Visual"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_visual_get_best_with_both" gdk_visual_get_best_with_both :: 
+    Int32 ->                                -- depth : TBasicType TInt32
+    CUInt ->                                -- visual_type : TInterface "Gdk" "VisualType"
+    IO (Ptr Visual)
+
+
+visualGetBestWithBoth ::
+    (MonadIO m) =>
+    Int32 ->                                -- depth
+    VisualType ->                           -- visual_type
+    m Visual
+visualGetBestWithBoth depth visual_type = liftIO $ do
+    let visual_type' = (fromIntegral . fromEnum) visual_type
+    result <- gdk_visual_get_best_with_both depth visual_type'
+    checkUnexpectedReturnNULL "gdk_visual_get_best_with_both" result
+    result' <- (newObject Visual) result
+    return result'
+
+-- method Visual::get_best_with_depth
+-- method type : MemberFunction
+-- Args : [Arg {argName = "depth", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "depth", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Visual"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_visual_get_best_with_depth" gdk_visual_get_best_with_depth :: 
+    Int32 ->                                -- depth : TBasicType TInt32
+    IO (Ptr Visual)
+
+
+visualGetBestWithDepth ::
+    (MonadIO m) =>
+    Int32 ->                                -- depth
+    m Visual
+visualGetBestWithDepth depth = liftIO $ do
+    result <- gdk_visual_get_best_with_depth depth
+    checkUnexpectedReturnNULL "gdk_visual_get_best_with_depth" result
+    result' <- (newObject Visual) result
+    return result'
+
+-- method Visual::get_best_with_type
+-- method type : MemberFunction
+-- Args : [Arg {argName = "visual_type", argType = TInterface "Gdk" "VisualType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "visual_type", argType = TInterface "Gdk" "VisualType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Visual"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_visual_get_best_with_type" gdk_visual_get_best_with_type :: 
+    CUInt ->                                -- visual_type : TInterface "Gdk" "VisualType"
+    IO (Ptr Visual)
+
+
+visualGetBestWithType ::
+    (MonadIO m) =>
+    VisualType ->                           -- visual_type
+    m Visual
+visualGetBestWithType visual_type = liftIO $ do
+    let visual_type' = (fromIntegral . fromEnum) visual_type
+    result <- gdk_visual_get_best_with_type visual_type'
+    checkUnexpectedReturnNULL "gdk_visual_get_best_with_type" result
+    result' <- (newObject Visual) result
+    return result'
+
+-- method Visual::get_system
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "Gdk" "Visual"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_visual_get_system" gdk_visual_get_system :: 
+    IO (Ptr Visual)
+
+
+visualGetSystem ::
+    (MonadIO m) =>
+    m Visual
+visualGetSystem  = liftIO $ do
+    result <- gdk_visual_get_system
+    checkUnexpectedReturnNULL "gdk_visual_get_system" result
+    result' <- (newObject Visual) result
+    return result'
+
+
diff --git a/GI/Gdk/Objects/Visual.hs-boot b/GI/Gdk/Objects/Visual.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/Visual.hs-boot
@@ -0,0 +1,13 @@
+module GI.Gdk.Objects.Visual where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype Visual = Visual (ForeignPtr Visual)
+instance GObject Visual where
+class GObject o => VisualK o
+instance (GObject o, IsDescendantOf Visual o) => VisualK o
diff --git a/GI/Gdk/Objects/Window.hs b/GI/Gdk/Objects/Window.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/Window.hs
@@ -0,0 +1,5370 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Objects.Window
+    ( 
+
+-- * Exported types
+    Window(..)                              ,
+    WindowK                                 ,
+    toWindow                                ,
+    noWindow                                ,
+
+
+ -- * Methods
+-- ** windowAtPointer
+    windowAtPointer                         ,
+
+
+-- ** windowBeep
+    windowBeep                              ,
+
+
+-- ** windowBeginMoveDrag
+    windowBeginMoveDrag                     ,
+
+
+-- ** windowBeginMoveDragForDevice
+    windowBeginMoveDragForDevice            ,
+
+
+-- ** windowBeginPaintRect
+    windowBeginPaintRect                    ,
+
+
+-- ** windowBeginPaintRegion
+    windowBeginPaintRegion                  ,
+
+
+-- ** windowBeginResizeDrag
+    windowBeginResizeDrag                   ,
+
+
+-- ** windowBeginResizeDragForDevice
+    windowBeginResizeDragForDevice          ,
+
+
+-- ** windowConfigureFinished
+    windowConfigureFinished                 ,
+
+
+-- ** windowConstrainSize
+    windowConstrainSize                     ,
+
+
+-- ** windowCoordsFromParent
+    windowCoordsFromParent                  ,
+
+
+-- ** windowCoordsToParent
+    windowCoordsToParent                    ,
+
+
+-- ** windowCreateGlContext
+    windowCreateGlContext                   ,
+
+
+-- ** windowCreateSimilarImageSurface
+    windowCreateSimilarImageSurface         ,
+
+
+-- ** windowCreateSimilarSurface
+    windowCreateSimilarSurface              ,
+
+
+-- ** windowDeiconify
+    windowDeiconify                         ,
+
+
+-- ** windowDestroy
+    windowDestroy                           ,
+
+
+-- ** windowDestroyNotify
+    windowDestroyNotify                     ,
+
+
+-- ** windowEnableSynchronizedConfigure
+    windowEnableSynchronizedConfigure       ,
+
+
+-- ** windowEndPaint
+    windowEndPaint                          ,
+
+
+-- ** windowEnsureNative
+    windowEnsureNative                      ,
+
+
+-- ** windowFlush
+    windowFlush                             ,
+
+
+-- ** windowFocus
+    windowFocus                             ,
+
+
+-- ** windowFreezeToplevelUpdatesLibgtkOnly
+    windowFreezeToplevelUpdatesLibgtkOnly   ,
+
+
+-- ** windowFreezeUpdates
+    windowFreezeUpdates                     ,
+
+
+-- ** windowFullscreen
+    windowFullscreen                        ,
+
+
+-- ** windowFullscreenOnMonitor
+    windowFullscreenOnMonitor               ,
+
+
+-- ** windowGeometryChanged
+    windowGeometryChanged                   ,
+
+
+-- ** windowGetAcceptFocus
+    windowGetAcceptFocus                    ,
+
+
+-- ** windowGetBackgroundPattern
+    windowGetBackgroundPattern              ,
+
+
+-- ** windowGetChildren
+    windowGetChildren                       ,
+
+
+-- ** windowGetChildrenWithUserData
+    windowGetChildrenWithUserData           ,
+
+
+-- ** windowGetClipRegion
+    windowGetClipRegion                     ,
+
+
+-- ** windowGetComposited
+    windowGetComposited                     ,
+
+
+-- ** windowGetCursor
+    windowGetCursor                         ,
+
+
+-- ** windowGetDecorations
+    windowGetDecorations                    ,
+
+
+-- ** windowGetDeviceCursor
+    windowGetDeviceCursor                   ,
+
+
+-- ** windowGetDeviceEvents
+    windowGetDeviceEvents                   ,
+
+
+-- ** windowGetDevicePosition
+    windowGetDevicePosition                 ,
+
+
+-- ** windowGetDevicePositionDouble
+    windowGetDevicePositionDouble           ,
+
+
+-- ** windowGetDisplay
+    windowGetDisplay                        ,
+
+
+-- ** windowGetDragProtocol
+    windowGetDragProtocol                   ,
+
+
+-- ** windowGetEffectiveParent
+    windowGetEffectiveParent                ,
+
+
+-- ** windowGetEffectiveToplevel
+    windowGetEffectiveToplevel              ,
+
+
+-- ** windowGetEventCompression
+    windowGetEventCompression               ,
+
+
+-- ** windowGetEvents
+    windowGetEvents                         ,
+
+
+-- ** windowGetFocusOnMap
+    windowGetFocusOnMap                     ,
+
+
+-- ** windowGetFrameClock
+    windowGetFrameClock                     ,
+
+
+-- ** windowGetFrameExtents
+    windowGetFrameExtents                   ,
+
+
+-- ** windowGetFullscreenMode
+    windowGetFullscreenMode                 ,
+
+
+-- ** windowGetGeometry
+    windowGetGeometry                       ,
+
+
+-- ** windowGetGroup
+    windowGetGroup                          ,
+
+
+-- ** windowGetHeight
+    windowGetHeight                         ,
+
+
+-- ** windowGetModalHint
+    windowGetModalHint                      ,
+
+
+-- ** windowGetOrigin
+    windowGetOrigin                         ,
+
+
+-- ** windowGetParent
+    windowGetParent                         ,
+
+
+-- ** windowGetPassThrough
+    windowGetPassThrough                    ,
+
+
+-- ** windowGetPointer
+    windowGetPointer                        ,
+
+
+-- ** windowGetPosition
+    windowGetPosition                       ,
+
+
+-- ** windowGetRootCoords
+    windowGetRootCoords                     ,
+
+
+-- ** windowGetRootOrigin
+    windowGetRootOrigin                     ,
+
+
+-- ** windowGetScaleFactor
+    windowGetScaleFactor                    ,
+
+
+-- ** windowGetScreen
+    windowGetScreen                         ,
+
+
+-- ** windowGetSourceEvents
+    windowGetSourceEvents                   ,
+
+
+-- ** windowGetState
+    windowGetState                          ,
+
+
+-- ** windowGetSupportMultidevice
+    windowGetSupportMultidevice             ,
+
+
+-- ** windowGetToplevel
+    windowGetToplevel                       ,
+
+
+-- ** windowGetTypeHint
+    windowGetTypeHint                       ,
+
+
+-- ** windowGetUpdateArea
+    windowGetUpdateArea                     ,
+
+
+-- ** windowGetUserData
+    windowGetUserData                       ,
+
+
+-- ** windowGetVisibleRegion
+    windowGetVisibleRegion                  ,
+
+
+-- ** windowGetVisual
+    windowGetVisual                         ,
+
+
+-- ** windowGetWidth
+    windowGetWidth                          ,
+
+
+-- ** windowGetWindowType
+    windowGetWindowType                     ,
+
+
+-- ** windowHasNative
+    windowHasNative                         ,
+
+
+-- ** windowHide
+    windowHide                              ,
+
+
+-- ** windowIconify
+    windowIconify                           ,
+
+
+-- ** windowInputShapeCombineRegion
+    windowInputShapeCombineRegion           ,
+
+
+-- ** windowInvalidateMaybeRecurse
+    windowInvalidateMaybeRecurse            ,
+
+
+-- ** windowInvalidateRect
+    windowInvalidateRect                    ,
+
+
+-- ** windowInvalidateRegion
+    windowInvalidateRegion                  ,
+
+
+-- ** windowIsDestroyed
+    windowIsDestroyed                       ,
+
+
+-- ** windowIsInputOnly
+    windowIsInputOnly                       ,
+
+
+-- ** windowIsShaped
+    windowIsShaped                          ,
+
+
+-- ** windowIsViewable
+    windowIsViewable                        ,
+
+
+-- ** windowIsVisible
+    windowIsVisible                         ,
+
+
+-- ** windowLower
+    windowLower                             ,
+
+
+-- ** windowMarkPaintFromClip
+    windowMarkPaintFromClip                 ,
+
+
+-- ** windowMaximize
+    windowMaximize                          ,
+
+
+-- ** windowMergeChildInputShapes
+    windowMergeChildInputShapes             ,
+
+
+-- ** windowMergeChildShapes
+    windowMergeChildShapes                  ,
+
+
+-- ** windowMove
+    windowMove                              ,
+
+
+-- ** windowMoveRegion
+    windowMoveRegion                        ,
+
+
+-- ** windowMoveResize
+    windowMoveResize                        ,
+
+
+-- ** windowNew
+    windowNew                               ,
+
+
+-- ** windowPeekChildren
+    windowPeekChildren                      ,
+
+
+-- ** windowProcessAllUpdates
+    windowProcessAllUpdates                 ,
+
+
+-- ** windowProcessUpdates
+    windowProcessUpdates                    ,
+
+
+-- ** windowRaise
+    windowRaise                             ,
+
+
+-- ** windowRegisterDnd
+    windowRegisterDnd                       ,
+
+
+-- ** windowReparent
+    windowReparent                          ,
+
+
+-- ** windowResize
+    windowResize                            ,
+
+
+-- ** windowRestack
+    windowRestack                           ,
+
+
+-- ** windowScroll
+    windowScroll                            ,
+
+
+-- ** windowSetAcceptFocus
+    windowSetAcceptFocus                    ,
+
+
+-- ** windowSetBackground
+    windowSetBackground                     ,
+
+
+-- ** windowSetBackgroundPattern
+    windowSetBackgroundPattern              ,
+
+
+-- ** windowSetBackgroundRgba
+    windowSetBackgroundRgba                 ,
+
+
+-- ** windowSetChildInputShapes
+    windowSetChildInputShapes               ,
+
+
+-- ** windowSetChildShapes
+    windowSetChildShapes                    ,
+
+
+-- ** windowSetComposited
+    windowSetComposited                     ,
+
+
+-- ** windowSetCursor
+    windowSetCursor                         ,
+
+
+-- ** windowSetDebugUpdates
+    windowSetDebugUpdates                   ,
+
+
+-- ** windowSetDecorations
+    windowSetDecorations                    ,
+
+
+-- ** windowSetDeviceCursor
+    windowSetDeviceCursor                   ,
+
+
+-- ** windowSetDeviceEvents
+    windowSetDeviceEvents                   ,
+
+
+-- ** windowSetEventCompression
+    windowSetEventCompression               ,
+
+
+-- ** windowSetEvents
+    windowSetEvents                         ,
+
+
+-- ** windowSetFocusOnMap
+    windowSetFocusOnMap                     ,
+
+
+-- ** windowSetFullscreenMode
+    windowSetFullscreenMode                 ,
+
+
+-- ** windowSetFunctions
+    windowSetFunctions                      ,
+
+
+-- ** windowSetGeometryHints
+    windowSetGeometryHints                  ,
+
+
+-- ** windowSetGroup
+    windowSetGroup                          ,
+
+
+-- ** windowSetIconList
+    windowSetIconList                       ,
+
+
+-- ** windowSetIconName
+    windowSetIconName                       ,
+
+
+-- ** windowSetKeepAbove
+    windowSetKeepAbove                      ,
+
+
+-- ** windowSetKeepBelow
+    windowSetKeepBelow                      ,
+
+
+-- ** windowSetModalHint
+    windowSetModalHint                      ,
+
+
+-- ** windowSetOpacity
+    windowSetOpacity                        ,
+
+
+-- ** windowSetOpaqueRegion
+    windowSetOpaqueRegion                   ,
+
+
+-- ** windowSetOverrideRedirect
+    windowSetOverrideRedirect               ,
+
+
+-- ** windowSetPassThrough
+    windowSetPassThrough                    ,
+
+
+-- ** windowSetRole
+    windowSetRole                           ,
+
+
+-- ** windowSetShadowWidth
+    windowSetShadowWidth                    ,
+
+
+-- ** windowSetSkipPagerHint
+    windowSetSkipPagerHint                  ,
+
+
+-- ** windowSetSkipTaskbarHint
+    windowSetSkipTaskbarHint                ,
+
+
+-- ** windowSetSourceEvents
+    windowSetSourceEvents                   ,
+
+
+-- ** windowSetStartupId
+    windowSetStartupId                      ,
+
+
+-- ** windowSetStaticGravities
+    windowSetStaticGravities                ,
+
+
+-- ** windowSetSupportMultidevice
+    windowSetSupportMultidevice             ,
+
+
+-- ** windowSetTitle
+    windowSetTitle                          ,
+
+
+-- ** windowSetTransientFor
+    windowSetTransientFor                   ,
+
+
+-- ** windowSetTypeHint
+    windowSetTypeHint                       ,
+
+
+-- ** windowSetUrgencyHint
+    windowSetUrgencyHint                    ,
+
+
+-- ** windowSetUserData
+    windowSetUserData                       ,
+
+
+-- ** windowShapeCombineRegion
+    windowShapeCombineRegion                ,
+
+
+-- ** windowShow
+    windowShow                              ,
+
+
+-- ** windowShowUnraised
+    windowShowUnraised                      ,
+
+
+-- ** windowShowWindowMenu
+    windowShowWindowMenu                    ,
+
+
+-- ** windowStick
+    windowStick                             ,
+
+
+-- ** windowThawToplevelUpdatesLibgtkOnly
+    windowThawToplevelUpdatesLibgtkOnly     ,
+
+
+-- ** windowThawUpdates
+    windowThawUpdates                       ,
+
+
+-- ** windowUnfullscreen
+    windowUnfullscreen                      ,
+
+
+-- ** windowUnmaximize
+    windowUnmaximize                        ,
+
+
+-- ** windowUnstick
+    windowUnstick                           ,
+
+
+-- ** windowWithdraw
+    windowWithdraw                          ,
+
+
+
+
+ -- * Properties
+-- ** Cursor
+    WindowCursorPropertyInfo                ,
+    constructWindowCursor                   ,
+    getWindowCursor                         ,
+    setWindowCursor                         ,
+
+
+
+
+ -- * Signals
+-- ** CreateSurface
+    WindowCreateSurfaceCallback             ,
+    WindowCreateSurfaceCallbackC            ,
+    WindowCreateSurfaceSignalInfo           ,
+    afterWindowCreateSurface                ,
+    mkWindowCreateSurfaceCallback           ,
+    noWindowCreateSurfaceCallback           ,
+    onWindowCreateSurface                   ,
+    windowCreateSurfaceCallbackWrapper      ,
+    windowCreateSurfaceClosure              ,
+
+
+-- ** FromEmbedder
+    WindowFromEmbedderCallback              ,
+    WindowFromEmbedderCallbackC             ,
+    WindowFromEmbedderSignalInfo            ,
+    afterWindowFromEmbedder                 ,
+    mkWindowFromEmbedderCallback            ,
+    noWindowFromEmbedderCallback            ,
+    onWindowFromEmbedder                    ,
+    windowFromEmbedderCallbackWrapper       ,
+    windowFromEmbedderClosure               ,
+
+
+-- ** PickEmbeddedChild
+    WindowPickEmbeddedChildCallback         ,
+    WindowPickEmbeddedChildCallbackC        ,
+    WindowPickEmbeddedChildSignalInfo       ,
+    afterWindowPickEmbeddedChild            ,
+    mkWindowPickEmbeddedChildCallback       ,
+    noWindowPickEmbeddedChildCallback       ,
+    onWindowPickEmbeddedChild               ,
+    windowPickEmbeddedChildCallbackWrapper  ,
+    windowPickEmbeddedChildClosure          ,
+
+
+-- ** ToEmbedder
+    WindowToEmbedderCallback                ,
+    WindowToEmbedderCallbackC               ,
+    WindowToEmbedderSignalInfo              ,
+    afterWindowToEmbedder                   ,
+    mkWindowToEmbedderCallback              ,
+    noWindowToEmbedderCallback              ,
+    onWindowToEmbedder                      ,
+    windowToEmbedderCallbackWrapper         ,
+    windowToEmbedderClosure                 ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.GObject as GObject
+import qualified GI.GdkPixbuf as GdkPixbuf
+import qualified GI.Cairo as Cairo
+
+newtype Window = Window (ForeignPtr Window)
+foreign import ccall "gdk_window_get_type"
+    c_gdk_window_get_type :: IO GType
+
+type instance ParentTypes Window = WindowParentTypes
+type WindowParentTypes = '[GObject.Object]
+
+instance GObject Window where
+    gobjectIsInitiallyUnowned _ = False
+    gobjectType _ = c_gdk_window_get_type
+    
+
+class GObject o => WindowK o
+instance (GObject o, IsDescendantOf Window o) => WindowK o
+
+toWindow :: WindowK o => o -> IO Window
+toWindow = unsafeCastTo Window
+
+noWindow :: Maybe Window
+noWindow = Nothing
+
+-- signal Window::create-surface
+type WindowCreateSurfaceCallback =
+    Int32 ->
+    Int32 ->
+    IO Cairo.Surface
+
+noWindowCreateSurfaceCallback :: Maybe WindowCreateSurfaceCallback
+noWindowCreateSurfaceCallback = Nothing
+
+type WindowCreateSurfaceCallbackC =
+    Ptr () ->                               -- object
+    Int32 ->
+    Int32 ->
+    Ptr () ->                               -- user_data
+    IO (Ptr Cairo.Surface)
+
+foreign import ccall "wrapper"
+    mkWindowCreateSurfaceCallback :: WindowCreateSurfaceCallbackC -> IO (FunPtr WindowCreateSurfaceCallbackC)
+
+windowCreateSurfaceClosure :: WindowCreateSurfaceCallback -> IO Closure
+windowCreateSurfaceClosure cb = newCClosure =<< mkWindowCreateSurfaceCallback wrapped
+    where wrapped = windowCreateSurfaceCallbackWrapper cb
+
+windowCreateSurfaceCallbackWrapper ::
+    WindowCreateSurfaceCallback ->
+    Ptr () ->
+    Int32 ->
+    Int32 ->
+    Ptr () ->
+    IO (Ptr Cairo.Surface)
+windowCreateSurfaceCallbackWrapper _cb _ width height _ = do
+    result <- _cb  width height
+    result' <- copyBoxed result
+    return result'
+
+onWindowCreateSurface :: (GObject a, MonadIO m) => a -> WindowCreateSurfaceCallback -> m SignalHandlerId
+onWindowCreateSurface obj cb = liftIO $ connectWindowCreateSurface obj cb SignalConnectBefore
+afterWindowCreateSurface :: (GObject a, MonadIO m) => a -> WindowCreateSurfaceCallback -> m SignalHandlerId
+afterWindowCreateSurface obj cb = connectWindowCreateSurface obj cb SignalConnectAfter
+
+connectWindowCreateSurface :: (GObject a, MonadIO m) =>
+                              a -> WindowCreateSurfaceCallback -> SignalConnectMode -> m SignalHandlerId
+connectWindowCreateSurface obj cb after = liftIO $ do
+    cb' <- mkWindowCreateSurfaceCallback (windowCreateSurfaceCallbackWrapper cb)
+    connectSignalFunPtr obj "create-surface" cb' after
+
+-- signal Window::from-embedder
+type WindowFromEmbedderCallback =
+    Double ->
+    Double ->
+    IO (Double,Double)
+
+noWindowFromEmbedderCallback :: Maybe WindowFromEmbedderCallback
+noWindowFromEmbedderCallback = Nothing
+
+type WindowFromEmbedderCallbackC =
+    Ptr () ->                               -- object
+    CDouble ->
+    CDouble ->
+    Ptr CDouble ->
+    Ptr CDouble ->
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkWindowFromEmbedderCallback :: WindowFromEmbedderCallbackC -> IO (FunPtr WindowFromEmbedderCallbackC)
+
+windowFromEmbedderClosure :: WindowFromEmbedderCallback -> IO Closure
+windowFromEmbedderClosure cb = newCClosure =<< mkWindowFromEmbedderCallback wrapped
+    where wrapped = windowFromEmbedderCallbackWrapper cb
+
+windowFromEmbedderCallbackWrapper ::
+    WindowFromEmbedderCallback ->
+    Ptr () ->
+    CDouble ->
+    CDouble ->
+    Ptr CDouble ->
+    Ptr CDouble ->
+    Ptr () ->
+    IO ()
+windowFromEmbedderCallbackWrapper _cb _ embedder_x embedder_y offscreen_x offscreen_y _ = do
+    let embedder_x' = realToFrac embedder_x
+    let embedder_y' = realToFrac embedder_y
+    (outoffscreen_x, outoffscreen_y) <- _cb  embedder_x' embedder_y'
+    let outoffscreen_x' = realToFrac outoffscreen_x
+    poke offscreen_x outoffscreen_x'
+    let outoffscreen_y' = realToFrac outoffscreen_y
+    poke offscreen_y outoffscreen_y'
+
+onWindowFromEmbedder :: (GObject a, MonadIO m) => a -> WindowFromEmbedderCallback -> m SignalHandlerId
+onWindowFromEmbedder obj cb = liftIO $ connectWindowFromEmbedder obj cb SignalConnectBefore
+afterWindowFromEmbedder :: (GObject a, MonadIO m) => a -> WindowFromEmbedderCallback -> m SignalHandlerId
+afterWindowFromEmbedder obj cb = connectWindowFromEmbedder obj cb SignalConnectAfter
+
+connectWindowFromEmbedder :: (GObject a, MonadIO m) =>
+                             a -> WindowFromEmbedderCallback -> SignalConnectMode -> m SignalHandlerId
+connectWindowFromEmbedder obj cb after = liftIO $ do
+    cb' <- mkWindowFromEmbedderCallback (windowFromEmbedderCallbackWrapper cb)
+    connectSignalFunPtr obj "from-embedder" cb' after
+
+-- signal Window::pick-embedded-child
+type WindowPickEmbeddedChildCallback =
+    Double ->
+    Double ->
+    IO Window
+
+noWindowPickEmbeddedChildCallback :: Maybe WindowPickEmbeddedChildCallback
+noWindowPickEmbeddedChildCallback = Nothing
+
+type WindowPickEmbeddedChildCallbackC =
+    Ptr () ->                               -- object
+    CDouble ->
+    CDouble ->
+    Ptr () ->                               -- user_data
+    IO (Ptr Window)
+
+foreign import ccall "wrapper"
+    mkWindowPickEmbeddedChildCallback :: WindowPickEmbeddedChildCallbackC -> IO (FunPtr WindowPickEmbeddedChildCallbackC)
+
+windowPickEmbeddedChildClosure :: WindowPickEmbeddedChildCallback -> IO Closure
+windowPickEmbeddedChildClosure cb = newCClosure =<< mkWindowPickEmbeddedChildCallback wrapped
+    where wrapped = windowPickEmbeddedChildCallbackWrapper cb
+
+windowPickEmbeddedChildCallbackWrapper ::
+    WindowPickEmbeddedChildCallback ->
+    Ptr () ->
+    CDouble ->
+    CDouble ->
+    Ptr () ->
+    IO (Ptr Window)
+windowPickEmbeddedChildCallbackWrapper _cb _ x y _ = do
+    let x' = realToFrac x
+    let y' = realToFrac y
+    result <- _cb  x' y'
+    let result' = unsafeManagedPtrCastPtr result
+    return result'
+
+onWindowPickEmbeddedChild :: (GObject a, MonadIO m) => a -> WindowPickEmbeddedChildCallback -> m SignalHandlerId
+onWindowPickEmbeddedChild obj cb = liftIO $ connectWindowPickEmbeddedChild obj cb SignalConnectBefore
+afterWindowPickEmbeddedChild :: (GObject a, MonadIO m) => a -> WindowPickEmbeddedChildCallback -> m SignalHandlerId
+afterWindowPickEmbeddedChild obj cb = connectWindowPickEmbeddedChild obj cb SignalConnectAfter
+
+connectWindowPickEmbeddedChild :: (GObject a, MonadIO m) =>
+                                  a -> WindowPickEmbeddedChildCallback -> SignalConnectMode -> m SignalHandlerId
+connectWindowPickEmbeddedChild obj cb after = liftIO $ do
+    cb' <- mkWindowPickEmbeddedChildCallback (windowPickEmbeddedChildCallbackWrapper cb)
+    connectSignalFunPtr obj "pick-embedded-child" cb' after
+
+-- signal Window::to-embedder
+type WindowToEmbedderCallback =
+    Double ->
+    Double ->
+    IO (Double,Double)
+
+noWindowToEmbedderCallback :: Maybe WindowToEmbedderCallback
+noWindowToEmbedderCallback = Nothing
+
+type WindowToEmbedderCallbackC =
+    Ptr () ->                               -- object
+    CDouble ->
+    CDouble ->
+    Ptr CDouble ->
+    Ptr CDouble ->
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkWindowToEmbedderCallback :: WindowToEmbedderCallbackC -> IO (FunPtr WindowToEmbedderCallbackC)
+
+windowToEmbedderClosure :: WindowToEmbedderCallback -> IO Closure
+windowToEmbedderClosure cb = newCClosure =<< mkWindowToEmbedderCallback wrapped
+    where wrapped = windowToEmbedderCallbackWrapper cb
+
+windowToEmbedderCallbackWrapper ::
+    WindowToEmbedderCallback ->
+    Ptr () ->
+    CDouble ->
+    CDouble ->
+    Ptr CDouble ->
+    Ptr CDouble ->
+    Ptr () ->
+    IO ()
+windowToEmbedderCallbackWrapper _cb _ offscreen_x offscreen_y embedder_x embedder_y _ = do
+    let offscreen_x' = realToFrac offscreen_x
+    let offscreen_y' = realToFrac offscreen_y
+    (outembedder_x, outembedder_y) <- _cb  offscreen_x' offscreen_y'
+    let outembedder_x' = realToFrac outembedder_x
+    poke embedder_x outembedder_x'
+    let outembedder_y' = realToFrac outembedder_y
+    poke embedder_y outembedder_y'
+
+onWindowToEmbedder :: (GObject a, MonadIO m) => a -> WindowToEmbedderCallback -> m SignalHandlerId
+onWindowToEmbedder obj cb = liftIO $ connectWindowToEmbedder obj cb SignalConnectBefore
+afterWindowToEmbedder :: (GObject a, MonadIO m) => a -> WindowToEmbedderCallback -> m SignalHandlerId
+afterWindowToEmbedder obj cb = connectWindowToEmbedder obj cb SignalConnectAfter
+
+connectWindowToEmbedder :: (GObject a, MonadIO m) =>
+                           a -> WindowToEmbedderCallback -> SignalConnectMode -> m SignalHandlerId
+connectWindowToEmbedder obj cb after = liftIO $ do
+    cb' <- mkWindowToEmbedderCallback (windowToEmbedderCallbackWrapper cb)
+    connectSignalFunPtr obj "to-embedder" cb' after
+
+-- VVV Prop "cursor"
+   -- Type: TInterface "Gdk" "Cursor"
+   -- Flags: [PropertyReadable,PropertyWritable]
+
+getWindowCursor :: (MonadIO m, WindowK o) => o -> m Cursor
+getWindowCursor obj = liftIO $ getObjectPropertyObject obj "cursor" Cursor
+
+setWindowCursor :: (MonadIO m, WindowK o, CursorK a) => o -> a -> m ()
+setWindowCursor obj val = liftIO $ setObjectPropertyObject obj "cursor" val
+
+constructWindowCursor :: (CursorK a) => a -> IO ([Char], GValue)
+constructWindowCursor val = constructObjectPropertyObject "cursor" val
+
+data WindowCursorPropertyInfo
+instance AttrInfo WindowCursorPropertyInfo where
+    type AttrAllowedOps WindowCursorPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint WindowCursorPropertyInfo = CursorK
+    type AttrBaseTypeConstraint WindowCursorPropertyInfo = WindowK
+    type AttrGetType WindowCursorPropertyInfo = Cursor
+    type AttrLabel WindowCursorPropertyInfo = "Window::cursor"
+    attrGet _ = getWindowCursor
+    attrSet _ = setWindowCursor
+    attrConstruct _ = constructWindowCursor
+
+type instance AttributeList Window = WindowAttributeList
+type WindowAttributeList = ('[ '("cursor", WindowCursorPropertyInfo)] :: [(Symbol, *)])
+
+data WindowCreateSurfaceSignalInfo
+instance SignalInfo WindowCreateSurfaceSignalInfo where
+    type HaskellCallbackType WindowCreateSurfaceSignalInfo = WindowCreateSurfaceCallback
+    connectSignal _ = connectWindowCreateSurface
+
+data WindowFromEmbedderSignalInfo
+instance SignalInfo WindowFromEmbedderSignalInfo where
+    type HaskellCallbackType WindowFromEmbedderSignalInfo = WindowFromEmbedderCallback
+    connectSignal _ = connectWindowFromEmbedder
+
+data WindowPickEmbeddedChildSignalInfo
+instance SignalInfo WindowPickEmbeddedChildSignalInfo where
+    type HaskellCallbackType WindowPickEmbeddedChildSignalInfo = WindowPickEmbeddedChildCallback
+    connectSignal _ = connectWindowPickEmbeddedChild
+
+data WindowToEmbedderSignalInfo
+instance SignalInfo WindowToEmbedderSignalInfo where
+    type HaskellCallbackType WindowToEmbedderSignalInfo = WindowToEmbedderCallback
+    connectSignal _ = connectWindowToEmbedder
+
+type instance SignalList Window = WindowSignalList
+type WindowSignalList = ('[ '("create-surface", WindowCreateSurfaceSignalInfo), '("from-embedder", WindowFromEmbedderSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("pick-embedded-child", WindowPickEmbeddedChildSignalInfo), '("to-embedder", WindowToEmbedderSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+
+-- method Window::new
+-- method type : Constructor
+-- Args : [Arg {argName = "parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attributes", argType = TInterface "Gdk" "WindowAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attributes_mask", argType = TInterface "Gdk" "WindowAttributesType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attributes", argType = TInterface "Gdk" "WindowAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attributes_mask", argType = TInterface "Gdk" "WindowAttributesType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_new" gdk_window_new :: 
+    Ptr Window ->                           -- parent : TInterface "Gdk" "Window"
+    Ptr WindowAttr ->                       -- attributes : TInterface "Gdk" "WindowAttr"
+    CUInt ->                                -- attributes_mask : TInterface "Gdk" "WindowAttributesType"
+    IO (Ptr Window)
+
+
+windowNew ::
+    (MonadIO m, WindowK a) =>
+    Maybe (a) ->                            -- parent
+    WindowAttr ->                           -- attributes
+    [WindowAttributesType] ->               -- attributes_mask
+    m Window
+windowNew parent attributes attributes_mask = liftIO $ do
+    maybeParent <- case parent of
+        Nothing -> return nullPtr
+        Just jParent -> do
+            let jParent' = unsafeManagedPtrCastPtr jParent
+            return jParent'
+    let attributes' = unsafeManagedPtrGetPtr attributes
+    let attributes_mask' = gflagsToWord attributes_mask
+    result <- gdk_window_new maybeParent attributes' attributes_mask'
+    checkUnexpectedReturnNULL "gdk_window_new" result
+    result' <- (wrapObject Window) result
+    whenJust parent touchManagedPtr
+    touchManagedPtr attributes
+    return result'
+
+-- method Window::beep
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_beep" gdk_window_beep :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowBeep ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowBeep _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_beep _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::begin_move_drag
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_begin_move_drag" gdk_window_begin_move_drag :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- button : TBasicType TInt32
+    Int32 ->                                -- root_x : TBasicType TInt32
+    Int32 ->                                -- root_y : TBasicType TInt32
+    Word32 ->                               -- timestamp : TBasicType TUInt32
+    IO ()
+
+
+windowBeginMoveDrag ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- button
+    Int32 ->                                -- root_x
+    Int32 ->                                -- root_y
+    Word32 ->                               -- timestamp
+    m ()
+windowBeginMoveDrag _obj button root_x root_y timestamp = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_begin_move_drag _obj' button root_x root_y timestamp
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::begin_move_drag_for_device
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_begin_move_drag_for_device" gdk_window_begin_move_drag_for_device :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    Int32 ->                                -- button : TBasicType TInt32
+    Int32 ->                                -- root_x : TBasicType TInt32
+    Int32 ->                                -- root_y : TBasicType TInt32
+    Word32 ->                               -- timestamp : TBasicType TUInt32
+    IO ()
+
+
+windowBeginMoveDragForDevice ::
+    (MonadIO m, WindowK a, DeviceK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- device
+    Int32 ->                                -- button
+    Int32 ->                                -- root_x
+    Int32 ->                                -- root_y
+    Word32 ->                               -- timestamp
+    m ()
+windowBeginMoveDragForDevice _obj device button root_x root_y timestamp = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    gdk_window_begin_move_drag_for_device _obj' device' button root_x root_y timestamp
+    touchManagedPtr _obj
+    touchManagedPtr device
+    return ()
+
+-- method Window::begin_paint_rect
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rectangle", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rectangle", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_begin_paint_rect" gdk_window_begin_paint_rect :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Rectangle ->                        -- rectangle : TInterface "Gdk" "Rectangle"
+    IO ()
+
+
+windowBeginPaintRect ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Rectangle ->                            -- rectangle
+    m ()
+windowBeginPaintRect _obj rectangle = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let rectangle' = unsafeManagedPtrGetPtr rectangle
+    gdk_window_begin_paint_rect _obj' rectangle'
+    touchManagedPtr _obj
+    touchManagedPtr rectangle
+    return ()
+
+-- method Window::begin_paint_region
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_begin_paint_region" gdk_window_begin_paint_region :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
+    IO ()
+
+
+windowBeginPaintRegion ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Cairo.Region ->                         -- region
+    m ()
+windowBeginPaintRegion _obj region = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let region' = unsafeManagedPtrGetPtr region
+    gdk_window_begin_paint_region _obj' region'
+    touchManagedPtr _obj
+    touchManagedPtr region
+    return ()
+
+-- method Window::begin_resize_drag
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "edge", argType = TInterface "Gdk" "WindowEdge", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "edge", argType = TInterface "Gdk" "WindowEdge", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_begin_resize_drag" gdk_window_begin_resize_drag :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- edge : TInterface "Gdk" "WindowEdge"
+    Int32 ->                                -- button : TBasicType TInt32
+    Int32 ->                                -- root_x : TBasicType TInt32
+    Int32 ->                                -- root_y : TBasicType TInt32
+    Word32 ->                               -- timestamp : TBasicType TUInt32
+    IO ()
+
+
+windowBeginResizeDrag ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    WindowEdge ->                           -- edge
+    Int32 ->                                -- button
+    Int32 ->                                -- root_x
+    Int32 ->                                -- root_y
+    Word32 ->                               -- timestamp
+    m ()
+windowBeginResizeDrag _obj edge button root_x root_y timestamp = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let edge' = (fromIntegral . fromEnum) edge
+    gdk_window_begin_resize_drag _obj' edge' button root_x root_y timestamp
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::begin_resize_drag_for_device
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "edge", argType = TInterface "Gdk" "WindowEdge", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "edge", argType = TInterface "Gdk" "WindowEdge", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_begin_resize_drag_for_device" gdk_window_begin_resize_drag_for_device :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- edge : TInterface "Gdk" "WindowEdge"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    Int32 ->                                -- button : TBasicType TInt32
+    Int32 ->                                -- root_x : TBasicType TInt32
+    Int32 ->                                -- root_y : TBasicType TInt32
+    Word32 ->                               -- timestamp : TBasicType TUInt32
+    IO ()
+
+
+windowBeginResizeDragForDevice ::
+    (MonadIO m, WindowK a, DeviceK b) =>
+    a ->                                    -- _obj
+    WindowEdge ->                           -- edge
+    b ->                                    -- device
+    Int32 ->                                -- button
+    Int32 ->                                -- root_x
+    Int32 ->                                -- root_y
+    Word32 ->                               -- timestamp
+    m ()
+windowBeginResizeDragForDevice _obj edge device button root_x root_y timestamp = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let edge' = (fromIntegral . fromEnum) edge
+    let device' = unsafeManagedPtrCastPtr device
+    gdk_window_begin_resize_drag_for_device _obj' edge' device' button root_x root_y timestamp
+    touchManagedPtr _obj
+    touchManagedPtr device
+    return ()
+
+-- method Window::configure_finished
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_configure_finished" gdk_window_configure_finished :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+{-# DEPRECATED windowConfigureFinished ["(Since version 3.8)","this function is no longer needed"]#-}
+windowConfigureFinished ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowConfigureFinished _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_configure_finished _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::coords_from_parent
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_coords_from_parent" gdk_window_coords_from_parent :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CDouble ->                              -- parent_x : TBasicType TDouble
+    CDouble ->                              -- parent_y : TBasicType TDouble
+    Ptr CDouble ->                          -- x : TBasicType TDouble
+    Ptr CDouble ->                          -- y : TBasicType TDouble
+    IO ()
+
+
+windowCoordsFromParent ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Double ->                               -- parent_x
+    Double ->                               -- parent_y
+    m (Double,Double)
+windowCoordsFromParent _obj parent_x parent_y = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let parent_x' = realToFrac parent_x
+    let parent_y' = realToFrac parent_y
+    x <- allocMem :: IO (Ptr CDouble)
+    y <- allocMem :: IO (Ptr CDouble)
+    gdk_window_coords_from_parent _obj' parent_x' parent_y' x y
+    x' <- peek x
+    let x'' = realToFrac x'
+    y' <- peek y
+    let y'' = realToFrac y'
+    touchManagedPtr _obj
+    freeMem x
+    freeMem y
+    return (x'', y'')
+
+-- method Window::coords_to_parent
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "parent_y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_coords_to_parent" gdk_window_coords_to_parent :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CDouble ->                              -- x : TBasicType TDouble
+    CDouble ->                              -- y : TBasicType TDouble
+    Ptr CDouble ->                          -- parent_x : TBasicType TDouble
+    Ptr CDouble ->                          -- parent_y : TBasicType TDouble
+    IO ()
+
+
+windowCoordsToParent ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Double ->                               -- x
+    Double ->                               -- y
+    m (Double,Double)
+windowCoordsToParent _obj x y = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let x' = realToFrac x
+    let y' = realToFrac y
+    parent_x <- allocMem :: IO (Ptr CDouble)
+    parent_y <- allocMem :: IO (Ptr CDouble)
+    gdk_window_coords_to_parent _obj' x' y' parent_x parent_y
+    parent_x' <- peek parent_x
+    let parent_x'' = realToFrac parent_x'
+    parent_y' <- peek parent_y
+    let parent_y'' = realToFrac parent_y'
+    touchManagedPtr _obj
+    freeMem parent_x
+    freeMem parent_y
+    return (parent_x'', parent_y'')
+
+-- method Window::create_gl_context
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "GLContext"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "gdk_window_create_gl_context" gdk_window_create_gl_context :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr GLContext)
+
+
+windowCreateGlContext ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m GLContext
+windowCreateGlContext _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    onException (do
+        result <- propagateGError $ gdk_window_create_gl_context _obj'
+        checkUnexpectedReturnNULL "gdk_window_create_gl_context" result
+        result' <- (wrapObject GLContext) result
+        touchManagedPtr _obj
+        return result'
+     ) (do
+        return ()
+     )
+
+-- method Window::create_similar_image_surface
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "cairo" "Surface"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_create_similar_image_surface" gdk_window_create_similar_image_surface :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- format : TBasicType TInt32
+    Int32 ->                                -- width : TBasicType TInt32
+    Int32 ->                                -- height : TBasicType TInt32
+    Int32 ->                                -- scale : TBasicType TInt32
+    IO (Ptr Cairo.Surface)
+
+
+windowCreateSimilarImageSurface ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- format
+    Int32 ->                                -- width
+    Int32 ->                                -- height
+    Int32 ->                                -- scale
+    m Cairo.Surface
+windowCreateSimilarImageSurface _obj format width height scale = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_create_similar_image_surface _obj' format width height scale
+    checkUnexpectedReturnNULL "gdk_window_create_similar_image_surface" result
+    result' <- (wrapBoxed Cairo.Surface) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::create_similar_surface
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "content", argType = TInterface "cairo" "Content", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "content", argType = TInterface "cairo" "Content", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "cairo" "Surface"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_create_similar_surface" gdk_window_create_similar_surface :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- content : TInterface "cairo" "Content"
+    Int32 ->                                -- width : TBasicType TInt32
+    Int32 ->                                -- height : TBasicType TInt32
+    IO (Ptr Cairo.Surface)
+
+
+windowCreateSimilarSurface ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Cairo.Content ->                        -- content
+    Int32 ->                                -- width
+    Int32 ->                                -- height
+    m Cairo.Surface
+windowCreateSimilarSurface _obj content width height = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let content' = (fromIntegral . fromEnum) content
+    result <- gdk_window_create_similar_surface _obj' content' width height
+    checkUnexpectedReturnNULL "gdk_window_create_similar_surface" result
+    result' <- (wrapBoxed Cairo.Surface) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::deiconify
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_deiconify" gdk_window_deiconify :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowDeiconify ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowDeiconify _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_deiconify _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::destroy
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_destroy" gdk_window_destroy :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowDestroy ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowDestroy _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_destroy _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::destroy_notify
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_destroy_notify" gdk_window_destroy_notify :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowDestroyNotify ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowDestroyNotify _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_destroy_notify _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::enable_synchronized_configure
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_enable_synchronized_configure" gdk_window_enable_synchronized_configure :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+{-# DEPRECATED windowEnableSynchronizedConfigure ["(Since version 3.8)","this function is no longer needed"]#-}
+windowEnableSynchronizedConfigure ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowEnableSynchronizedConfigure _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_enable_synchronized_configure _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::end_paint
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_end_paint" gdk_window_end_paint :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowEndPaint ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowEndPaint _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_end_paint _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::ensure_native
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_ensure_native" gdk_window_ensure_native :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowEnsureNative ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Bool
+windowEnsureNative _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_ensure_native _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::flush
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_flush" gdk_window_flush :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+{-# DEPRECATED windowFlush ["(Since version 3.14)"]#-}
+windowFlush ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowFlush _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_flush _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::focus
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_focus" gdk_window_focus :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Word32 ->                               -- timestamp : TBasicType TUInt32
+    IO ()
+
+
+windowFocus ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Word32 ->                               -- timestamp
+    m ()
+windowFocus _obj timestamp = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_focus _obj' timestamp
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::freeze_toplevel_updates_libgtk_only
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_freeze_toplevel_updates_libgtk_only" gdk_window_freeze_toplevel_updates_libgtk_only :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+{-# DEPRECATED windowFreezeToplevelUpdatesLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside of GTK+"]#-}
+windowFreezeToplevelUpdatesLibgtkOnly ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowFreezeToplevelUpdatesLibgtkOnly _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_freeze_toplevel_updates_libgtk_only _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::freeze_updates
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_freeze_updates" gdk_window_freeze_updates :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowFreezeUpdates ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowFreezeUpdates _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_freeze_updates _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::fullscreen
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_fullscreen" gdk_window_fullscreen :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowFullscreen ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowFullscreen _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_fullscreen _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::fullscreen_on_monitor
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_fullscreen_on_monitor" gdk_window_fullscreen_on_monitor :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- monitor : TBasicType TInt32
+    IO ()
+
+
+windowFullscreenOnMonitor ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- monitor
+    m ()
+windowFullscreenOnMonitor _obj monitor = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_fullscreen_on_monitor _obj' monitor
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::geometry_changed
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_geometry_changed" gdk_window_geometry_changed :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowGeometryChanged ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowGeometryChanged _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_geometry_changed _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::get_accept_focus
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_accept_focus" gdk_window_get_accept_focus :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowGetAcceptFocus ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Bool
+windowGetAcceptFocus _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_accept_focus _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_background_pattern
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "cairo" "Pattern"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_background_pattern" gdk_window_get_background_pattern :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Cairo.Pattern)
+
+
+windowGetBackgroundPattern ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Cairo.Pattern
+windowGetBackgroundPattern _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_background_pattern _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_background_pattern" result
+    result' <- (newBoxed Cairo.Pattern) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_children
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TGList (TInterface "Gdk" "Window")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_children" gdk_window_get_children :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr (GList (Ptr Window)))
+
+
+windowGetChildren ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m [Window]
+windowGetChildren _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_children _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_children" result
+    result' <- unpackGList result
+    result'' <- mapM (newObject Window) result'
+    g_list_free result
+    touchManagedPtr _obj
+    return result''
+
+-- method Window::get_children_with_user_data
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TGList (TInterface "Gdk" "Window")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_children_with_user_data" gdk_window_get_children_with_user_data :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    IO (Ptr (GList (Ptr Window)))
+
+
+windowGetChildrenWithUserData ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Ptr () ->                               -- user_data
+    m [Window]
+windowGetChildrenWithUserData _obj user_data = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_children_with_user_data _obj' user_data
+    checkUnexpectedReturnNULL "gdk_window_get_children_with_user_data" result
+    result' <- unpackGList result
+    result'' <- mapM (newObject Window) result'
+    g_list_free result
+    touchManagedPtr _obj
+    return result''
+
+-- method Window::get_clip_region
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "cairo" "Region"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_clip_region" gdk_window_get_clip_region :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Cairo.Region)
+
+
+windowGetClipRegion ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Cairo.Region
+windowGetClipRegion _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_clip_region _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_clip_region" result
+    result' <- (wrapBoxed Cairo.Region) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_composited
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_composited" gdk_window_get_composited :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+{-# DEPRECATED windowGetComposited ["(Since version 3.16)","Compositing is an outdated technology that","  only ever worked on X11."]#-}
+windowGetComposited ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Bool
+windowGetComposited _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_composited _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_cursor
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Cursor"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_cursor" gdk_window_get_cursor :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Cursor)
+
+
+windowGetCursor ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Cursor
+windowGetCursor _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_cursor _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_cursor" result
+    result' <- (newObject Cursor) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_decorations
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "decorations", argType = TInterface "Gdk" "WMDecoration", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_decorations" gdk_window_get_decorations :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr CUInt ->                            -- decorations : TInterface "Gdk" "WMDecoration"
+    IO CInt
+
+
+windowGetDecorations ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m (Bool,[WMDecoration])
+windowGetDecorations _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    decorations <- allocMem :: IO (Ptr CUInt)
+    result <- gdk_window_get_decorations _obj' decorations
+    let result' = (/= 0) result
+    decorations' <- peek decorations
+    let decorations'' = wordToGFlags decorations'
+    touchManagedPtr _obj
+    freeMem decorations
+    return (result', decorations'')
+
+-- method Window::get_device_cursor
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Cursor"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_device_cursor" gdk_window_get_device_cursor :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    IO (Ptr Cursor)
+
+
+windowGetDeviceCursor ::
+    (MonadIO m, WindowK a, DeviceK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- device
+    m Cursor
+windowGetDeviceCursor _obj device = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    result <- gdk_window_get_device_cursor _obj' device'
+    checkUnexpectedReturnNULL "gdk_window_get_device_cursor" result
+    result' <- (newObject Cursor) result
+    touchManagedPtr _obj
+    touchManagedPtr device
+    return result'
+
+-- method Window::get_device_events
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "EventMask"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_device_events" gdk_window_get_device_events :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    IO CUInt
+
+
+windowGetDeviceEvents ::
+    (MonadIO m, WindowK a, DeviceK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- device
+    m [EventMask]
+windowGetDeviceEvents _obj device = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    result <- gdk_window_get_device_events _obj' device'
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    touchManagedPtr device
+    return result'
+
+-- method Window::get_device_position
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_device_position" gdk_window_get_device_position :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    Ptr Int32 ->                            -- x : TBasicType TInt32
+    Ptr Int32 ->                            -- y : TBasicType TInt32
+    Ptr CUInt ->                            -- mask : TInterface "Gdk" "ModifierType"
+    IO (Ptr Window)
+
+
+windowGetDevicePosition ::
+    (MonadIO m, WindowK a, DeviceK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- device
+    m (Window,Int32,Int32,[ModifierType])
+windowGetDevicePosition _obj device = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    x <- allocMem :: IO (Ptr Int32)
+    y <- allocMem :: IO (Ptr Int32)
+    mask <- allocMem :: IO (Ptr CUInt)
+    result <- gdk_window_get_device_position _obj' device' x y mask
+    checkUnexpectedReturnNULL "gdk_window_get_device_position" result
+    result' <- (newObject Window) result
+    x' <- peek x
+    y' <- peek y
+    mask' <- peek mask
+    let mask'' = wordToGFlags mask'
+    touchManagedPtr _obj
+    touchManagedPtr device
+    freeMem x
+    freeMem y
+    freeMem mask
+    return (result', x', y', mask'')
+
+-- method Window::get_device_position_double
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_device_position_double" gdk_window_get_device_position_double :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    Ptr CDouble ->                          -- x : TBasicType TDouble
+    Ptr CDouble ->                          -- y : TBasicType TDouble
+    Ptr CUInt ->                            -- mask : TInterface "Gdk" "ModifierType"
+    IO (Ptr Window)
+
+
+windowGetDevicePositionDouble ::
+    (MonadIO m, WindowK a, DeviceK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- device
+    m (Window,Double,Double,[ModifierType])
+windowGetDevicePositionDouble _obj device = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    x <- allocMem :: IO (Ptr CDouble)
+    y <- allocMem :: IO (Ptr CDouble)
+    mask <- allocMem :: IO (Ptr CUInt)
+    result <- gdk_window_get_device_position_double _obj' device' x y mask
+    checkUnexpectedReturnNULL "gdk_window_get_device_position_double" result
+    result' <- (newObject Window) result
+    x' <- peek x
+    let x'' = realToFrac x'
+    y' <- peek y
+    let y'' = realToFrac y'
+    mask' <- peek mask
+    let mask'' = wordToGFlags mask'
+    touchManagedPtr _obj
+    touchManagedPtr device
+    freeMem x
+    freeMem y
+    freeMem mask
+    return (result', x'', y'', mask'')
+
+-- method Window::get_display
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Display"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_display" gdk_window_get_display :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Display)
+
+
+windowGetDisplay ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Display
+windowGetDisplay _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_display _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_display" result
+    result' <- (newObject Display) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_drag_protocol
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Window", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "DragProtocol"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_drag_protocol" gdk_window_get_drag_protocol :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr (Ptr Window) ->                     -- target : TInterface "Gdk" "Window"
+    IO CUInt
+
+
+windowGetDragProtocol ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m (DragProtocol,Window)
+windowGetDragProtocol _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    target <- allocMem :: IO (Ptr (Ptr Window))
+    result <- gdk_window_get_drag_protocol _obj' target
+    let result' = (toEnum . fromIntegral) result
+    target' <- peek target
+    target'' <- (wrapObject Window) target'
+    touchManagedPtr _obj
+    freeMem target
+    return (result', target'')
+
+-- method Window::get_effective_parent
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_effective_parent" gdk_window_get_effective_parent :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Window)
+
+
+windowGetEffectiveParent ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Window
+windowGetEffectiveParent _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_effective_parent _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_effective_parent" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_effective_toplevel
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_effective_toplevel" gdk_window_get_effective_toplevel :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Window)
+
+
+windowGetEffectiveToplevel ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Window
+windowGetEffectiveToplevel _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_effective_toplevel _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_effective_toplevel" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_event_compression
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_event_compression" gdk_window_get_event_compression :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowGetEventCompression ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Bool
+windowGetEventCompression _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_event_compression _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_events
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "EventMask"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_events" gdk_window_get_events :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CUInt
+
+
+windowGetEvents ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m [EventMask]
+windowGetEvents _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_events _obj'
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_focus_on_map
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_focus_on_map" gdk_window_get_focus_on_map :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowGetFocusOnMap ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Bool
+windowGetFocusOnMap _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_focus_on_map _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_frame_clock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "FrameClock"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_frame_clock" gdk_window_get_frame_clock :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr FrameClock)
+
+
+windowGetFrameClock ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m FrameClock
+windowGetFrameClock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_frame_clock _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_frame_clock" result
+    result' <- (newObject FrameClock) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_frame_extents
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_frame_extents" gdk_window_get_frame_extents :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Rectangle ->                        -- rect : TInterface "Gdk" "Rectangle"
+    IO ()
+
+
+windowGetFrameExtents ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m (Rectangle)
+windowGetFrameExtents _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    rect <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
+    gdk_window_get_frame_extents _obj' rect
+    rect' <- (wrapBoxed Rectangle) rect
+    touchManagedPtr _obj
+    return rect'
+
+-- method Window::get_fullscreen_mode
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "FullscreenMode"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_fullscreen_mode" gdk_window_get_fullscreen_mode :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CUInt
+
+
+windowGetFullscreenMode ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m FullscreenMode
+windowGetFullscreenMode _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_fullscreen_mode _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_geometry
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_geometry" gdk_window_get_geometry :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Int32 ->                            -- x : TBasicType TInt32
+    Ptr Int32 ->                            -- y : TBasicType TInt32
+    Ptr Int32 ->                            -- width : TBasicType TInt32
+    Ptr Int32 ->                            -- height : TBasicType TInt32
+    IO ()
+
+
+windowGetGeometry ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m (Int32,Int32,Int32,Int32)
+windowGetGeometry _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    x <- allocMem :: IO (Ptr Int32)
+    y <- allocMem :: IO (Ptr Int32)
+    width <- allocMem :: IO (Ptr Int32)
+    height <- allocMem :: IO (Ptr Int32)
+    gdk_window_get_geometry _obj' x y width height
+    x' <- peek x
+    y' <- peek y
+    width' <- peek width
+    height' <- peek height
+    touchManagedPtr _obj
+    freeMem x
+    freeMem y
+    freeMem width
+    freeMem height
+    return (x', y', width', height')
+
+-- method Window::get_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_group" gdk_window_get_group :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Window)
+
+
+windowGetGroup ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Window
+windowGetGroup _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_group _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_group" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_height
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_height" gdk_window_get_height :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO Int32
+
+
+windowGetHeight ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Int32
+windowGetHeight _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_height _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Window::get_modal_hint
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_modal_hint" gdk_window_get_modal_hint :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowGetModalHint ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Bool
+windowGetModalHint _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_modal_hint _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_origin
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_origin" gdk_window_get_origin :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Int32 ->                            -- x : TBasicType TInt32
+    Ptr Int32 ->                            -- y : TBasicType TInt32
+    IO Int32
+
+
+windowGetOrigin ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m (Int32,Int32,Int32)
+windowGetOrigin _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    x <- allocMem :: IO (Ptr Int32)
+    y <- allocMem :: IO (Ptr Int32)
+    result <- gdk_window_get_origin _obj' x y
+    x' <- peek x
+    y' <- peek y
+    touchManagedPtr _obj
+    freeMem x
+    freeMem y
+    return (result, x', y')
+
+-- method Window::get_parent
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_parent" gdk_window_get_parent :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Window)
+
+
+windowGetParent ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Window
+windowGetParent _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_parent _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_parent" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_pass_through
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_pass_through" gdk_window_get_pass_through :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowGetPassThrough ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Bool
+windowGetPassThrough _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_pass_through _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_pointer
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_pointer" gdk_window_get_pointer :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Int32 ->                            -- x : TBasicType TInt32
+    Ptr Int32 ->                            -- y : TBasicType TInt32
+    Ptr CUInt ->                            -- mask : TInterface "Gdk" "ModifierType"
+    IO (Ptr Window)
+
+{-# DEPRECATED windowGetPointer ["(Since version 3.0)","Use gdk_window_get_device_position() instead."]#-}
+windowGetPointer ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m (Window,Int32,Int32,[ModifierType])
+windowGetPointer _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    x <- allocMem :: IO (Ptr Int32)
+    y <- allocMem :: IO (Ptr Int32)
+    mask <- allocMem :: IO (Ptr CUInt)
+    result <- gdk_window_get_pointer _obj' x y mask
+    checkUnexpectedReturnNULL "gdk_window_get_pointer" result
+    result' <- (newObject Window) result
+    x' <- peek x
+    y' <- peek y
+    mask' <- peek mask
+    let mask'' = wordToGFlags mask'
+    touchManagedPtr _obj
+    freeMem x
+    freeMem y
+    freeMem mask
+    return (result', x', y', mask'')
+
+-- method Window::get_position
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_position" gdk_window_get_position :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Int32 ->                            -- x : TBasicType TInt32
+    Ptr Int32 ->                            -- y : TBasicType TInt32
+    IO ()
+
+
+windowGetPosition ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m (Int32,Int32)
+windowGetPosition _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    x <- allocMem :: IO (Ptr Int32)
+    y <- allocMem :: IO (Ptr Int32)
+    gdk_window_get_position _obj' x y
+    x' <- peek x
+    y' <- peek y
+    touchManagedPtr _obj
+    freeMem x
+    freeMem y
+    return (x', y')
+
+-- method Window::get_root_coords
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_root_coords" gdk_window_get_root_coords :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    Ptr Int32 ->                            -- root_x : TBasicType TInt32
+    Ptr Int32 ->                            -- root_y : TBasicType TInt32
+    IO ()
+
+
+windowGetRootCoords ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- x
+    Int32 ->                                -- y
+    m (Int32,Int32)
+windowGetRootCoords _obj x y = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    root_x <- allocMem :: IO (Ptr Int32)
+    root_y <- allocMem :: IO (Ptr Int32)
+    gdk_window_get_root_coords _obj' x y root_x root_y
+    root_x' <- peek root_x
+    root_y' <- peek root_y
+    touchManagedPtr _obj
+    freeMem root_x
+    freeMem root_y
+    return (root_x', root_y')
+
+-- method Window::get_root_origin
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_root_origin" gdk_window_get_root_origin :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Int32 ->                            -- x : TBasicType TInt32
+    Ptr Int32 ->                            -- y : TBasicType TInt32
+    IO ()
+
+
+windowGetRootOrigin ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m (Int32,Int32)
+windowGetRootOrigin _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    x <- allocMem :: IO (Ptr Int32)
+    y <- allocMem :: IO (Ptr Int32)
+    gdk_window_get_root_origin _obj' x y
+    x' <- peek x
+    y' <- peek y
+    touchManagedPtr _obj
+    freeMem x
+    freeMem y
+    return (x', y')
+
+-- method Window::get_scale_factor
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_scale_factor" gdk_window_get_scale_factor :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO Int32
+
+
+windowGetScaleFactor ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Int32
+windowGetScaleFactor _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_scale_factor _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Window::get_screen
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Screen"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_screen" gdk_window_get_screen :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Screen)
+
+
+windowGetScreen ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Screen
+windowGetScreen _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_screen _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_screen" result
+    result' <- (newObject Screen) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_source_events
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TInterface "Gdk" "InputSource", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TInterface "Gdk" "InputSource", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "EventMask"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_source_events" gdk_window_get_source_events :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- source : TInterface "Gdk" "InputSource"
+    IO CUInt
+
+
+windowGetSourceEvents ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    InputSource ->                          -- source
+    m [EventMask]
+windowGetSourceEvents _obj source = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let source' = (fromIntegral . fromEnum) source
+    result <- gdk_window_get_source_events _obj' source'
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_state
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "WindowState"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_state" gdk_window_get_state :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CUInt
+
+
+windowGetState ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m [WindowState]
+windowGetState _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_state _obj'
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_support_multidevice
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_support_multidevice" gdk_window_get_support_multidevice :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowGetSupportMultidevice ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Bool
+windowGetSupportMultidevice _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_support_multidevice _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_toplevel
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_toplevel" gdk_window_get_toplevel :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Window)
+
+
+windowGetToplevel ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Window
+windowGetToplevel _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_toplevel _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_toplevel" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_type_hint
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "WindowTypeHint"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_type_hint" gdk_window_get_type_hint :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CUInt
+
+
+windowGetTypeHint ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m WindowTypeHint
+windowGetTypeHint _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_type_hint _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_update_area
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "cairo" "Region"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_update_area" gdk_window_get_update_area :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Cairo.Region)
+
+
+windowGetUpdateArea ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Cairo.Region
+windowGetUpdateArea _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_update_area _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_update_area" result
+    result' <- (wrapBoxed Cairo.Region) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_user_data
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_user_data" gdk_window_get_user_data :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr (Ptr ()) ->                         -- data : TBasicType TVoid
+    IO ()
+
+
+windowGetUserData ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ((Ptr ()))
+windowGetUserData _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    data_ <- allocMem :: IO (Ptr (Ptr ()))
+    gdk_window_get_user_data _obj' data_
+    data_' <- peek data_
+    touchManagedPtr _obj
+    freeMem data_
+    return data_'
+
+-- method Window::get_visible_region
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "cairo" "Region"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_visible_region" gdk_window_get_visible_region :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Cairo.Region)
+
+
+windowGetVisibleRegion ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Cairo.Region
+windowGetVisibleRegion _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_visible_region _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_visible_region" result
+    result' <- (wrapBoxed Cairo.Region) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_visual
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Visual"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_visual" gdk_window_get_visual :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Visual)
+
+
+windowGetVisual ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Visual
+windowGetVisual _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_visual _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_visual" result
+    result' <- (newObject Visual) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::get_width
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_width" gdk_window_get_width :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO Int32
+
+
+windowGetWidth ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Int32
+windowGetWidth _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_width _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Window::get_window_type
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "WindowType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_window_type" gdk_window_get_window_type :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CUInt
+
+
+windowGetWindowType ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m WindowType
+windowGetWindowType _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_window_type _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::has_native
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_has_native" gdk_window_has_native :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowHasNative ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Bool
+windowHasNative _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_has_native _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::hide
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_hide" gdk_window_hide :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowHide ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowHide _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_hide _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::iconify
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_iconify" gdk_window_iconify :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowIconify ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowIconify _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_iconify _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::input_shape_combine_region
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shape_region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shape_region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_input_shape_combine_region" gdk_window_input_shape_combine_region :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Region ->                     -- shape_region : TInterface "cairo" "Region"
+    Int32 ->                                -- offset_x : TBasicType TInt32
+    Int32 ->                                -- offset_y : TBasicType TInt32
+    IO ()
+
+
+windowInputShapeCombineRegion ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Cairo.Region ->                         -- shape_region
+    Int32 ->                                -- offset_x
+    Int32 ->                                -- offset_y
+    m ()
+windowInputShapeCombineRegion _obj shape_region offset_x offset_y = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let shape_region' = unsafeManagedPtrGetPtr shape_region
+    gdk_window_input_shape_combine_region _obj' shape_region' offset_x offset_y
+    touchManagedPtr _obj
+    touchManagedPtr shape_region
+    return ()
+
+-- method Window::invalidate_maybe_recurse
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_func", argType = TInterface "Gdk" "WindowChildFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeCall, argClosure = 3, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_func", argType = TInterface "Gdk" "WindowChildFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeCall, argClosure = 3, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_invalidate_maybe_recurse" gdk_window_invalidate_maybe_recurse :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
+    FunPtr WindowChildFuncC ->              -- child_func : TInterface "Gdk" "WindowChildFunc"
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    IO ()
+
+
+windowInvalidateMaybeRecurse ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Cairo.Region ->                         -- region
+    Maybe (WindowChildFunc) ->              -- child_func
+    m ()
+windowInvalidateMaybeRecurse _obj region child_func = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let region' = unsafeManagedPtrGetPtr region
+    maybeChild_func <- case child_func of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jChild_func -> do
+            jChild_func' <- mkWindowChildFunc (windowChildFuncWrapper Nothing jChild_func)
+            return jChild_func'
+    let user_data = nullPtr
+    gdk_window_invalidate_maybe_recurse _obj' region' maybeChild_func user_data
+    safeFreeFunPtr $ castFunPtrToPtr maybeChild_func
+    touchManagedPtr _obj
+    touchManagedPtr region
+    return ()
+
+-- method Window::invalidate_rect
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invalidate_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invalidate_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_invalidate_rect" gdk_window_invalidate_rect :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Rectangle ->                        -- rect : TInterface "Gdk" "Rectangle"
+    CInt ->                                 -- invalidate_children : TBasicType TBoolean
+    IO ()
+
+
+windowInvalidateRect ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Maybe (Rectangle) ->                    -- rect
+    Bool ->                                 -- invalidate_children
+    m ()
+windowInvalidateRect _obj rect invalidate_children = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeRect <- case rect of
+        Nothing -> return nullPtr
+        Just jRect -> do
+            let jRect' = unsafeManagedPtrGetPtr jRect
+            return jRect'
+    let invalidate_children' = (fromIntegral . fromEnum) invalidate_children
+    gdk_window_invalidate_rect _obj' maybeRect invalidate_children'
+    touchManagedPtr _obj
+    whenJust rect touchManagedPtr
+    return ()
+
+-- method Window::invalidate_region
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invalidate_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invalidate_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_invalidate_region" gdk_window_invalidate_region :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
+    CInt ->                                 -- invalidate_children : TBasicType TBoolean
+    IO ()
+
+
+windowInvalidateRegion ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Cairo.Region ->                         -- region
+    Bool ->                                 -- invalidate_children
+    m ()
+windowInvalidateRegion _obj region invalidate_children = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let region' = unsafeManagedPtrGetPtr region
+    let invalidate_children' = (fromIntegral . fromEnum) invalidate_children
+    gdk_window_invalidate_region _obj' region' invalidate_children'
+    touchManagedPtr _obj
+    touchManagedPtr region
+    return ()
+
+-- method Window::is_destroyed
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_is_destroyed" gdk_window_is_destroyed :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowIsDestroyed ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Bool
+windowIsDestroyed _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_is_destroyed _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::is_input_only
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_is_input_only" gdk_window_is_input_only :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowIsInputOnly ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Bool
+windowIsInputOnly _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_is_input_only _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::is_shaped
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_is_shaped" gdk_window_is_shaped :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowIsShaped ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Bool
+windowIsShaped _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_is_shaped _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::is_viewable
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_is_viewable" gdk_window_is_viewable :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowIsViewable ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Bool
+windowIsViewable _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_is_viewable _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::is_visible
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_is_visible" gdk_window_is_visible :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowIsVisible ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m Bool
+windowIsVisible _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_is_visible _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::lower
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_lower" gdk_window_lower :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowLower ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowLower _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_lower _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::mark_paint_from_clip
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_mark_paint_from_clip" gdk_window_mark_paint_from_clip :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    IO ()
+
+
+windowMarkPaintFromClip ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Cairo.Context ->                        -- cr
+    m ()
+windowMarkPaintFromClip _obj cr = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let cr' = unsafeManagedPtrGetPtr cr
+    gdk_window_mark_paint_from_clip _obj' cr'
+    touchManagedPtr _obj
+    touchManagedPtr cr
+    return ()
+
+-- method Window::maximize
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_maximize" gdk_window_maximize :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowMaximize ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowMaximize _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_maximize _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::merge_child_input_shapes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_merge_child_input_shapes" gdk_window_merge_child_input_shapes :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowMergeChildInputShapes ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowMergeChildInputShapes _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_merge_child_input_shapes _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::merge_child_shapes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_merge_child_shapes" gdk_window_merge_child_shapes :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowMergeChildShapes ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowMergeChildShapes _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_merge_child_shapes _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::move
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_move" gdk_window_move :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    IO ()
+
+
+windowMove ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- x
+    Int32 ->                                -- y
+    m ()
+windowMove _obj x y = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_move _obj' x y
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::move_region
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dy", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dy", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_move_region" gdk_window_move_region :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
+    Int32 ->                                -- dx : TBasicType TInt32
+    Int32 ->                                -- dy : TBasicType TInt32
+    IO ()
+
+
+windowMoveRegion ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Cairo.Region ->                         -- region
+    Int32 ->                                -- dx
+    Int32 ->                                -- dy
+    m ()
+windowMoveRegion _obj region dx dy = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let region' = unsafeManagedPtrGetPtr region
+    gdk_window_move_region _obj' region' dx dy
+    touchManagedPtr _obj
+    touchManagedPtr region
+    return ()
+
+-- method Window::move_resize
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_move_resize" gdk_window_move_resize :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    Int32 ->                                -- width : TBasicType TInt32
+    Int32 ->                                -- height : TBasicType TInt32
+    IO ()
+
+
+windowMoveResize ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- x
+    Int32 ->                                -- y
+    Int32 ->                                -- width
+    Int32 ->                                -- height
+    m ()
+windowMoveResize _obj x y width height = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_move_resize _obj' x y width height
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::peek_children
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TGList (TInterface "Gdk" "Window")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_peek_children" gdk_window_peek_children :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr (GList (Ptr Window)))
+
+
+windowPeekChildren ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m [Window]
+windowPeekChildren _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_peek_children _obj'
+    checkUnexpectedReturnNULL "gdk_window_peek_children" result
+    result' <- unpackGList result
+    result'' <- mapM (newObject Window) result'
+    touchManagedPtr _obj
+    return result''
+
+-- method Window::process_updates
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "update_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "update_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_process_updates" gdk_window_process_updates :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- update_children : TBasicType TBoolean
+    IO ()
+
+
+windowProcessUpdates ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- update_children
+    m ()
+windowProcessUpdates _obj update_children = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let update_children' = (fromIntegral . fromEnum) update_children
+    gdk_window_process_updates _obj' update_children'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::raise
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_raise" gdk_window_raise :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowRaise ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowRaise _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_raise _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::register_dnd
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_register_dnd" gdk_window_register_dnd :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowRegisterDnd ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowRegisterDnd _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_register_dnd _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::reparent
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_reparent" gdk_window_reparent :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Window ->                           -- new_parent : TInterface "Gdk" "Window"
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    IO ()
+
+
+windowReparent ::
+    (MonadIO m, WindowK a, WindowK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- new_parent
+    Int32 ->                                -- x
+    Int32 ->                                -- y
+    m ()
+windowReparent _obj new_parent x y = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let new_parent' = unsafeManagedPtrCastPtr new_parent
+    gdk_window_reparent _obj' new_parent' x y
+    touchManagedPtr _obj
+    touchManagedPtr new_parent
+    return ()
+
+-- method Window::resize
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_resize" gdk_window_resize :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- width : TBasicType TInt32
+    Int32 ->                                -- height : TBasicType TInt32
+    IO ()
+
+
+windowResize ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- width
+    Int32 ->                                -- height
+    m ()
+windowResize _obj width height = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_resize _obj' width height
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::restack
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "sibling", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "above", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "sibling", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "above", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_restack" gdk_window_restack :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Window ->                           -- sibling : TInterface "Gdk" "Window"
+    CInt ->                                 -- above : TBasicType TBoolean
+    IO ()
+
+
+windowRestack ::
+    (MonadIO m, WindowK a, WindowK b) =>
+    a ->                                    -- _obj
+    Maybe (b) ->                            -- sibling
+    Bool ->                                 -- above
+    m ()
+windowRestack _obj sibling above = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeSibling <- case sibling of
+        Nothing -> return nullPtr
+        Just jSibling -> do
+            let jSibling' = unsafeManagedPtrCastPtr jSibling
+            return jSibling'
+    let above' = (fromIntegral . fromEnum) above
+    gdk_window_restack _obj' maybeSibling above'
+    touchManagedPtr _obj
+    whenJust sibling touchManagedPtr
+    return ()
+
+-- method Window::scroll
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dy", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dy", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_scroll" gdk_window_scroll :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- dx : TBasicType TInt32
+    Int32 ->                                -- dy : TBasicType TInt32
+    IO ()
+
+
+windowScroll ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- dx
+    Int32 ->                                -- dy
+    m ()
+windowScroll _obj dx dy = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_scroll _obj' dx dy
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_accept_focus
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "accept_focus", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "accept_focus", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_accept_focus" gdk_window_set_accept_focus :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- accept_focus : TBasicType TBoolean
+    IO ()
+
+
+windowSetAcceptFocus ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- accept_focus
+    m ()
+windowSetAcceptFocus _obj accept_focus = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let accept_focus' = (fromIntegral . fromEnum) accept_focus
+    gdk_window_set_accept_focus _obj' accept_focus'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_background
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_background" gdk_window_set_background :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Color ->                            -- color : TInterface "Gdk" "Color"
+    IO ()
+
+{-# DEPRECATED windowSetBackground ["(Since version 3.4)","Use gdk_window_set_background_rgba() instead."]#-}
+windowSetBackground ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Color ->                                -- color
+    m ()
+windowSetBackground _obj color = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let color' = unsafeManagedPtrGetPtr color
+    gdk_window_set_background _obj' color'
+    touchManagedPtr _obj
+    touchManagedPtr color
+    return ()
+
+-- method Window::set_background_pattern
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pattern", argType = TInterface "cairo" "Pattern", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pattern", argType = TInterface "cairo" "Pattern", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_background_pattern" gdk_window_set_background_pattern :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Pattern ->                    -- pattern : TInterface "cairo" "Pattern"
+    IO ()
+
+
+windowSetBackgroundPattern ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Maybe (Cairo.Pattern) ->                -- pattern
+    m ()
+windowSetBackgroundPattern _obj pattern = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybePattern <- case pattern of
+        Nothing -> return nullPtr
+        Just jPattern -> do
+            let jPattern' = unsafeManagedPtrGetPtr jPattern
+            return jPattern'
+    gdk_window_set_background_pattern _obj' maybePattern
+    touchManagedPtr _obj
+    whenJust pattern touchManagedPtr
+    return ()
+
+-- method Window::set_background_rgba
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_background_rgba" gdk_window_set_background_rgba :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr RGBA ->                             -- rgba : TInterface "Gdk" "RGBA"
+    IO ()
+
+
+windowSetBackgroundRgba ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    RGBA ->                                 -- rgba
+    m ()
+windowSetBackgroundRgba _obj rgba = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let rgba' = unsafeManagedPtrGetPtr rgba
+    gdk_window_set_background_rgba _obj' rgba'
+    touchManagedPtr _obj
+    touchManagedPtr rgba
+    return ()
+
+-- method Window::set_child_input_shapes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_child_input_shapes" gdk_window_set_child_input_shapes :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowSetChildInputShapes ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowSetChildInputShapes _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_set_child_input_shapes _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_child_shapes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_child_shapes" gdk_window_set_child_shapes :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowSetChildShapes ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowSetChildShapes _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_set_child_shapes _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_composited
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "composited", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "composited", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_composited" gdk_window_set_composited :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- composited : TBasicType TBoolean
+    IO ()
+
+{-# DEPRECATED windowSetComposited ["(Since version 3.16)","Compositing is an outdated technology that","  only ever worked on X11."]#-}
+windowSetComposited ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- composited
+    m ()
+windowSetComposited _obj composited = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let composited' = (fromIntegral . fromEnum) composited
+    gdk_window_set_composited _obj' composited'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_cursor
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_cursor" gdk_window_set_cursor :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cursor ->                           -- cursor : TInterface "Gdk" "Cursor"
+    IO ()
+
+
+windowSetCursor ::
+    (MonadIO m, WindowK a, CursorK b) =>
+    a ->                                    -- _obj
+    Maybe (b) ->                            -- cursor
+    m ()
+windowSetCursor _obj cursor = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeCursor <- case cursor of
+        Nothing -> return nullPtr
+        Just jCursor -> do
+            let jCursor' = unsafeManagedPtrCastPtr jCursor
+            return jCursor'
+    gdk_window_set_cursor _obj' maybeCursor
+    touchManagedPtr _obj
+    whenJust cursor touchManagedPtr
+    return ()
+
+-- method Window::set_decorations
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "decorations", argType = TInterface "Gdk" "WMDecoration", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "decorations", argType = TInterface "Gdk" "WMDecoration", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_decorations" gdk_window_set_decorations :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- decorations : TInterface "Gdk" "WMDecoration"
+    IO ()
+
+
+windowSetDecorations ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    [WMDecoration] ->                       -- decorations
+    m ()
+windowSetDecorations _obj decorations = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let decorations' = gflagsToWord decorations
+    gdk_window_set_decorations _obj' decorations'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_device_cursor
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_device_cursor" gdk_window_set_device_cursor :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    Ptr Cursor ->                           -- cursor : TInterface "Gdk" "Cursor"
+    IO ()
+
+
+windowSetDeviceCursor ::
+    (MonadIO m, WindowK a, DeviceK b, CursorK c) =>
+    a ->                                    -- _obj
+    b ->                                    -- device
+    c ->                                    -- cursor
+    m ()
+windowSetDeviceCursor _obj device cursor = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    let cursor' = unsafeManagedPtrCastPtr cursor
+    gdk_window_set_device_cursor _obj' device' cursor'
+    touchManagedPtr _obj
+    touchManagedPtr device
+    touchManagedPtr cursor
+    return ()
+
+-- method Window::set_device_events
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_device_events" gdk_window_set_device_events :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
+    IO ()
+
+
+windowSetDeviceEvents ::
+    (MonadIO m, WindowK a, DeviceK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- device
+    [EventMask] ->                          -- event_mask
+    m ()
+windowSetDeviceEvents _obj device event_mask = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    let event_mask' = gflagsToWord event_mask
+    gdk_window_set_device_events _obj' device' event_mask'
+    touchManagedPtr _obj
+    touchManagedPtr device
+    return ()
+
+-- method Window::set_event_compression
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_compression", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_compression", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_event_compression" gdk_window_set_event_compression :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- event_compression : TBasicType TBoolean
+    IO ()
+
+
+windowSetEventCompression ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- event_compression
+    m ()
+windowSetEventCompression _obj event_compression = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let event_compression' = (fromIntegral . fromEnum) event_compression
+    gdk_window_set_event_compression _obj' event_compression'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_events
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_events" gdk_window_set_events :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
+    IO ()
+
+
+windowSetEvents ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    [EventMask] ->                          -- event_mask
+    m ()
+windowSetEvents _obj event_mask = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let event_mask' = gflagsToWord event_mask
+    gdk_window_set_events _obj' event_mask'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_focus_on_map
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "focus_on_map", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "focus_on_map", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_focus_on_map" gdk_window_set_focus_on_map :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- focus_on_map : TBasicType TBoolean
+    IO ()
+
+
+windowSetFocusOnMap ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- focus_on_map
+    m ()
+windowSetFocusOnMap _obj focus_on_map = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let focus_on_map' = (fromIntegral . fromEnum) focus_on_map
+    gdk_window_set_focus_on_map _obj' focus_on_map'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_fullscreen_mode
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TInterface "Gdk" "FullscreenMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TInterface "Gdk" "FullscreenMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_fullscreen_mode" gdk_window_set_fullscreen_mode :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- mode : TInterface "Gdk" "FullscreenMode"
+    IO ()
+
+
+windowSetFullscreenMode ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    FullscreenMode ->                       -- mode
+    m ()
+windowSetFullscreenMode _obj mode = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let mode' = (fromIntegral . fromEnum) mode
+    gdk_window_set_fullscreen_mode _obj' mode'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_functions
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "functions", argType = TInterface "Gdk" "WMFunction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "functions", argType = TInterface "Gdk" "WMFunction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_functions" gdk_window_set_functions :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- functions : TInterface "Gdk" "WMFunction"
+    IO ()
+
+
+windowSetFunctions ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    [WMFunction] ->                         -- functions
+    m ()
+windowSetFunctions _obj functions = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let functions' = gflagsToWord functions
+    gdk_window_set_functions _obj' functions'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_geometry_hints
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "geometry", argType = TInterface "Gdk" "Geometry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "geom_mask", argType = TInterface "Gdk" "WindowHints", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "geometry", argType = TInterface "Gdk" "Geometry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "geom_mask", argType = TInterface "Gdk" "WindowHints", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_geometry_hints" gdk_window_set_geometry_hints :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Geometry ->                         -- geometry : TInterface "Gdk" "Geometry"
+    CUInt ->                                -- geom_mask : TInterface "Gdk" "WindowHints"
+    IO ()
+
+
+windowSetGeometryHints ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Geometry ->                             -- geometry
+    [WindowHints] ->                        -- geom_mask
+    m ()
+windowSetGeometryHints _obj geometry geom_mask = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let geometry' = unsafeManagedPtrGetPtr geometry
+    let geom_mask' = gflagsToWord geom_mask
+    gdk_window_set_geometry_hints _obj' geometry' geom_mask'
+    touchManagedPtr _obj
+    touchManagedPtr geometry
+    return ()
+
+-- method Window::set_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "leader", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "leader", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_group" gdk_window_set_group :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Window ->                           -- leader : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowSetGroup ::
+    (MonadIO m, WindowK a, WindowK b) =>
+    a ->                                    -- _obj
+    Maybe (b) ->                            -- leader
+    m ()
+windowSetGroup _obj leader = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeLeader <- case leader of
+        Nothing -> return nullPtr
+        Just jLeader -> do
+            let jLeader' = unsafeManagedPtrCastPtr jLeader
+            return jLeader'
+    gdk_window_set_group _obj' maybeLeader
+    touchManagedPtr _obj
+    whenJust leader touchManagedPtr
+    return ()
+
+-- method Window::set_icon_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbufs", argType = TGList (TInterface "GdkPixbuf" "Pixbuf"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbufs", argType = TGList (TInterface "GdkPixbuf" "Pixbuf"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_icon_list" gdk_window_set_icon_list :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr (GList (Ptr GdkPixbuf.Pixbuf)) ->   -- pixbufs : TGList (TInterface "GdkPixbuf" "Pixbuf")
+    IO ()
+
+
+windowSetIconList ::
+    (MonadIO m, WindowK a, GdkPixbuf.PixbufK b) =>
+    a ->                                    -- _obj
+    [b] ->                                  -- pixbufs
+    m ()
+windowSetIconList _obj pixbufs = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let pixbufs' = map unsafeManagedPtrCastPtr pixbufs
+    pixbufs'' <- packGList pixbufs'
+    gdk_window_set_icon_list _obj' pixbufs''
+    touchManagedPtr _obj
+    mapM_ touchManagedPtr pixbufs
+    g_list_free pixbufs''
+    return ()
+
+-- method Window::set_icon_name
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_icon_name" gdk_window_set_icon_name :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CString ->                              -- name : TBasicType TUTF8
+    IO ()
+
+
+windowSetIconName ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Maybe (T.Text) ->                       -- name
+    m ()
+windowSetIconName _obj name = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeName <- case name of
+        Nothing -> return nullPtr
+        Just jName -> do
+            jName' <- textToCString jName
+            return jName'
+    gdk_window_set_icon_name _obj' maybeName
+    touchManagedPtr _obj
+    freeMem maybeName
+    return ()
+
+-- method Window::set_keep_above
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_keep_above" gdk_window_set_keep_above :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- setting : TBasicType TBoolean
+    IO ()
+
+
+windowSetKeepAbove ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- setting
+    m ()
+windowSetKeepAbove _obj setting = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let setting' = (fromIntegral . fromEnum) setting
+    gdk_window_set_keep_above _obj' setting'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_keep_below
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_keep_below" gdk_window_set_keep_below :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- setting : TBasicType TBoolean
+    IO ()
+
+
+windowSetKeepBelow ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- setting
+    m ()
+windowSetKeepBelow _obj setting = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let setting' = (fromIntegral . fromEnum) setting
+    gdk_window_set_keep_below _obj' setting'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_modal_hint
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modal", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modal", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_modal_hint" gdk_window_set_modal_hint :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- modal : TBasicType TBoolean
+    IO ()
+
+
+windowSetModalHint ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- modal
+    m ()
+windowSetModalHint _obj modal = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let modal' = (fromIntegral . fromEnum) modal
+    gdk_window_set_modal_hint _obj' modal'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_opacity
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "opacity", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "opacity", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_opacity" gdk_window_set_opacity :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CDouble ->                              -- opacity : TBasicType TDouble
+    IO ()
+
+
+windowSetOpacity ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Double ->                               -- opacity
+    m ()
+windowSetOpacity _obj opacity = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let opacity' = realToFrac opacity
+    gdk_window_set_opacity _obj' opacity'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_opaque_region
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_opaque_region" gdk_window_set_opaque_region :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
+    IO ()
+
+
+windowSetOpaqueRegion ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Maybe (Cairo.Region) ->                 -- region
+    m ()
+windowSetOpaqueRegion _obj region = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeRegion <- case region of
+        Nothing -> return nullPtr
+        Just jRegion -> do
+            let jRegion' = unsafeManagedPtrGetPtr jRegion
+            return jRegion'
+    gdk_window_set_opaque_region _obj' maybeRegion
+    touchManagedPtr _obj
+    whenJust region touchManagedPtr
+    return ()
+
+-- method Window::set_override_redirect
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "override_redirect", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "override_redirect", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_override_redirect" gdk_window_set_override_redirect :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- override_redirect : TBasicType TBoolean
+    IO ()
+
+
+windowSetOverrideRedirect ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- override_redirect
+    m ()
+windowSetOverrideRedirect _obj override_redirect = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let override_redirect' = (fromIntegral . fromEnum) override_redirect
+    gdk_window_set_override_redirect _obj' override_redirect'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_pass_through
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pass_through", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pass_through", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_pass_through" gdk_window_set_pass_through :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- pass_through : TBasicType TBoolean
+    IO ()
+
+
+windowSetPassThrough ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- pass_through
+    m ()
+windowSetPassThrough _obj pass_through = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let pass_through' = (fromIntegral . fromEnum) pass_through
+    gdk_window_set_pass_through _obj' pass_through'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_role
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "role", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "role", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_role" gdk_window_set_role :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CString ->                              -- role : TBasicType TUTF8
+    IO ()
+
+
+windowSetRole ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    T.Text ->                               -- role
+    m ()
+windowSetRole _obj role = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    role' <- textToCString role
+    gdk_window_set_role _obj' role'
+    touchManagedPtr _obj
+    freeMem role'
+    return ()
+
+-- method Window::set_shadow_width
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "left", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "right", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "top", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bottom", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "left", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "right", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "top", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bottom", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_shadow_width" gdk_window_set_shadow_width :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- left : TBasicType TInt32
+    Int32 ->                                -- right : TBasicType TInt32
+    Int32 ->                                -- top : TBasicType TInt32
+    Int32 ->                                -- bottom : TBasicType TInt32
+    IO ()
+
+
+windowSetShadowWidth ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Int32 ->                                -- left
+    Int32 ->                                -- right
+    Int32 ->                                -- top
+    Int32 ->                                -- bottom
+    m ()
+windowSetShadowWidth _obj left right top bottom = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_set_shadow_width _obj' left right top bottom
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_skip_pager_hint
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "skips_pager", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "skips_pager", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_skip_pager_hint" gdk_window_set_skip_pager_hint :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- skips_pager : TBasicType TBoolean
+    IO ()
+
+
+windowSetSkipPagerHint ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- skips_pager
+    m ()
+windowSetSkipPagerHint _obj skips_pager = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let skips_pager' = (fromIntegral . fromEnum) skips_pager
+    gdk_window_set_skip_pager_hint _obj' skips_pager'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_skip_taskbar_hint
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "skips_taskbar", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "skips_taskbar", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_skip_taskbar_hint" gdk_window_set_skip_taskbar_hint :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- skips_taskbar : TBasicType TBoolean
+    IO ()
+
+
+windowSetSkipTaskbarHint ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- skips_taskbar
+    m ()
+windowSetSkipTaskbarHint _obj skips_taskbar = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let skips_taskbar' = (fromIntegral . fromEnum) skips_taskbar
+    gdk_window_set_skip_taskbar_hint _obj' skips_taskbar'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_source_events
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TInterface "Gdk" "InputSource", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TInterface "Gdk" "InputSource", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_source_events" gdk_window_set_source_events :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- source : TInterface "Gdk" "InputSource"
+    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
+    IO ()
+
+
+windowSetSourceEvents ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    InputSource ->                          -- source
+    [EventMask] ->                          -- event_mask
+    m ()
+windowSetSourceEvents _obj source event_mask = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let source' = (fromIntegral . fromEnum) source
+    let event_mask' = gflagsToWord event_mask
+    gdk_window_set_source_events _obj' source' event_mask'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_startup_id
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_startup_id" gdk_window_set_startup_id :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CString ->                              -- startup_id : TBasicType TUTF8
+    IO ()
+
+
+windowSetStartupId ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    T.Text ->                               -- startup_id
+    m ()
+windowSetStartupId _obj startup_id = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    startup_id' <- textToCString startup_id
+    gdk_window_set_startup_id _obj' startup_id'
+    touchManagedPtr _obj
+    freeMem startup_id'
+    return ()
+
+-- method Window::set_static_gravities
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "use_static", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "use_static", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_static_gravities" gdk_window_set_static_gravities :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- use_static : TBasicType TBoolean
+    IO CInt
+
+{-# DEPRECATED windowSetStaticGravities ["(Since version 3.16)","static gravities haven't worked on anything but X11","  for a long time."]#-}
+windowSetStaticGravities ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- use_static
+    m Bool
+windowSetStaticGravities _obj use_static = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let use_static' = (fromIntegral . fromEnum) use_static
+    result <- gdk_window_set_static_gravities _obj' use_static'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Window::set_support_multidevice
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "support_multidevice", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "support_multidevice", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_support_multidevice" gdk_window_set_support_multidevice :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- support_multidevice : TBasicType TBoolean
+    IO ()
+
+
+windowSetSupportMultidevice ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- support_multidevice
+    m ()
+windowSetSupportMultidevice _obj support_multidevice = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let support_multidevice' = (fromIntegral . fromEnum) support_multidevice
+    gdk_window_set_support_multidevice _obj' support_multidevice'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_title
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "title", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "title", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_title" gdk_window_set_title :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CString ->                              -- title : TBasicType TUTF8
+    IO ()
+
+
+windowSetTitle ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    T.Text ->                               -- title
+    m ()
+windowSetTitle _obj title = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    title' <- textToCString title
+    gdk_window_set_title _obj' title'
+    touchManagedPtr _obj
+    freeMem title'
+    return ()
+
+-- method Window::set_transient_for
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_transient_for" gdk_window_set_transient_for :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Window ->                           -- parent : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowSetTransientFor ::
+    (MonadIO m, WindowK a, WindowK b) =>
+    a ->                                    -- _obj
+    b ->                                    -- parent
+    m ()
+windowSetTransientFor _obj parent = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let parent' = unsafeManagedPtrCastPtr parent
+    gdk_window_set_transient_for _obj' parent'
+    touchManagedPtr _obj
+    touchManagedPtr parent
+    return ()
+
+-- method Window::set_type_hint
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hint", argType = TInterface "Gdk" "WindowTypeHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hint", argType = TInterface "Gdk" "WindowTypeHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_type_hint" gdk_window_set_type_hint :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- hint : TInterface "Gdk" "WindowTypeHint"
+    IO ()
+
+
+windowSetTypeHint ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    WindowTypeHint ->                       -- hint
+    m ()
+windowSetTypeHint _obj hint = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let hint' = (fromIntegral . fromEnum) hint
+    gdk_window_set_type_hint _obj' hint'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_urgency_hint
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "urgent", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "urgent", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_urgency_hint" gdk_window_set_urgency_hint :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- urgent : TBasicType TBoolean
+    IO ()
+
+
+windowSetUrgencyHint ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Bool ->                                 -- urgent
+    m ()
+windowSetUrgencyHint _obj urgent = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let urgent' = (fromIntegral . fromEnum) urgent
+    gdk_window_set_urgency_hint _obj' urgent'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::set_user_data
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_user_data" gdk_window_set_user_data :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr GObject.Object ->                   -- user_data : TInterface "GObject" "Object"
+    IO ()
+
+
+windowSetUserData ::
+    (MonadIO m, WindowK a, GObject.ObjectK b) =>
+    a ->                                    -- _obj
+    Maybe (b) ->                            -- user_data
+    m ()
+windowSetUserData _obj user_data = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeUser_data <- case user_data of
+        Nothing -> return nullPtr
+        Just jUser_data -> do
+            let jUser_data' = unsafeManagedPtrCastPtr jUser_data
+            return jUser_data'
+    gdk_window_set_user_data _obj' maybeUser_data
+    touchManagedPtr _obj
+    whenJust user_data touchManagedPtr
+    return ()
+
+-- method Window::shape_combine_region
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shape_region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shape_region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_shape_combine_region" gdk_window_shape_combine_region :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Region ->                     -- shape_region : TInterface "cairo" "Region"
+    Int32 ->                                -- offset_x : TBasicType TInt32
+    Int32 ->                                -- offset_y : TBasicType TInt32
+    IO ()
+
+
+windowShapeCombineRegion ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Maybe (Cairo.Region) ->                 -- shape_region
+    Int32 ->                                -- offset_x
+    Int32 ->                                -- offset_y
+    m ()
+windowShapeCombineRegion _obj shape_region offset_x offset_y = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeShape_region <- case shape_region of
+        Nothing -> return nullPtr
+        Just jShape_region -> do
+            let jShape_region' = unsafeManagedPtrGetPtr jShape_region
+            return jShape_region'
+    gdk_window_shape_combine_region _obj' maybeShape_region offset_x offset_y
+    touchManagedPtr _obj
+    whenJust shape_region touchManagedPtr
+    return ()
+
+-- method Window::show
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_show" gdk_window_show :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowShow ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowShow _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_show _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::show_unraised
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_show_unraised" gdk_window_show_unraised :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowShowUnraised ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowShowUnraised _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_show_unraised _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::show_window_menu
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_show_window_menu" gdk_window_show_window_menu :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Event ->                            -- event : TInterface "Gdk" "Event"
+    IO CInt
+
+
+windowShowWindowMenu ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    Event ->                                -- event
+    m Bool
+windowShowWindowMenu _obj event = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let event' = unsafeManagedPtrGetPtr event
+    result <- gdk_window_show_window_menu _obj' event'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    touchManagedPtr event
+    return result'
+
+-- method Window::stick
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_stick" gdk_window_stick :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowStick ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowStick _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_stick _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::thaw_toplevel_updates_libgtk_only
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_thaw_toplevel_updates_libgtk_only" gdk_window_thaw_toplevel_updates_libgtk_only :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+{-# DEPRECATED windowThawToplevelUpdatesLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside of GTK+"]#-}
+windowThawToplevelUpdatesLibgtkOnly ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowThawToplevelUpdatesLibgtkOnly _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_thaw_toplevel_updates_libgtk_only _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::thaw_updates
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_thaw_updates" gdk_window_thaw_updates :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowThawUpdates ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowThawUpdates _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_thaw_updates _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::unfullscreen
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_unfullscreen" gdk_window_unfullscreen :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowUnfullscreen ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowUnfullscreen _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_unfullscreen _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::unmaximize
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_unmaximize" gdk_window_unmaximize :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowUnmaximize ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowUnmaximize _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_unmaximize _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::unstick
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_unstick" gdk_window_unstick :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowUnstick ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowUnstick _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_unstick _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::withdraw
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_withdraw" gdk_window_withdraw :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowWithdraw ::
+    (MonadIO m, WindowK a) =>
+    a ->                                    -- _obj
+    m ()
+windowWithdraw _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_withdraw _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Window::at_pointer
+-- method type : MemberFunction
+-- Args : [Arg {argName = "win_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "win_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_at_pointer" gdk_window_at_pointer :: 
+    Ptr Int32 ->                            -- win_x : TBasicType TInt32
+    Ptr Int32 ->                            -- win_y : TBasicType TInt32
+    IO (Ptr Window)
+
+{-# DEPRECATED windowAtPointer ["(Since version 3.0)","Use gdk_device_get_window_at_position() instead."]#-}
+windowAtPointer ::
+    (MonadIO m) =>
+    m (Window,Int32,Int32)
+windowAtPointer  = liftIO $ do
+    win_x <- allocMem :: IO (Ptr Int32)
+    win_y <- allocMem :: IO (Ptr Int32)
+    result <- gdk_window_at_pointer win_x win_y
+    checkUnexpectedReturnNULL "gdk_window_at_pointer" result
+    result' <- (newObject Window) result
+    win_x' <- peek win_x
+    win_y' <- peek win_y
+    freeMem win_x
+    freeMem win_y
+    return (result', win_x', win_y')
+
+-- method Window::constrain_size
+-- method type : MemberFunction
+-- Args : [Arg {argName = "geometry", argType = TInterface "Gdk" "Geometry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "Gdk" "WindowHints", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_width", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "new_height", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "geometry", argType = TInterface "Gdk" "Geometry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "Gdk" "WindowHints", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_constrain_size" gdk_window_constrain_size :: 
+    Ptr Geometry ->                         -- geometry : TInterface "Gdk" "Geometry"
+    CUInt ->                                -- flags : TInterface "Gdk" "WindowHints"
+    Int32 ->                                -- width : TBasicType TInt32
+    Int32 ->                                -- height : TBasicType TInt32
+    Ptr Int32 ->                            -- new_width : TBasicType TInt32
+    Ptr Int32 ->                            -- new_height : TBasicType TInt32
+    IO ()
+
+
+windowConstrainSize ::
+    (MonadIO m) =>
+    Geometry ->                             -- geometry
+    [WindowHints] ->                        -- flags
+    Int32 ->                                -- width
+    Int32 ->                                -- height
+    m (Int32,Int32)
+windowConstrainSize geometry flags width height = liftIO $ do
+    let geometry' = unsafeManagedPtrGetPtr geometry
+    let flags' = gflagsToWord flags
+    new_width <- allocMem :: IO (Ptr Int32)
+    new_height <- allocMem :: IO (Ptr Int32)
+    gdk_window_constrain_size geometry' flags' width height new_width new_height
+    new_width' <- peek new_width
+    new_height' <- peek new_height
+    touchManagedPtr geometry
+    freeMem new_width
+    freeMem new_height
+    return (new_width', new_height')
+
+-- method Window::process_all_updates
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_process_all_updates" gdk_window_process_all_updates :: 
+    IO ()
+
+
+windowProcessAllUpdates ::
+    (MonadIO m) =>
+    m ()
+windowProcessAllUpdates  = liftIO $ do
+    gdk_window_process_all_updates
+    return ()
+
+-- method Window::set_debug_updates
+-- method type : MemberFunction
+-- Args : [Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_debug_updates" gdk_window_set_debug_updates :: 
+    CInt ->                                 -- setting : TBasicType TBoolean
+    IO ()
+
+
+windowSetDebugUpdates ::
+    (MonadIO m) =>
+    Bool ->                                 -- setting
+    m ()
+windowSetDebugUpdates setting = liftIO $ do
+    let setting' = (fromIntegral . fromEnum) setting
+    gdk_window_set_debug_updates setting'
+    return ()
+
+
diff --git a/GI/Gdk/Objects/Window.hs-boot b/GI/Gdk/Objects/Window.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Objects/Window.hs-boot
@@ -0,0 +1,18 @@
+module GI.Gdk.Objects.Window where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype Window = Window (ForeignPtr Window)
+instance GObject Window where
+class GObject o => WindowK o
+instance (GObject o, IsDescendantOf Window o) => WindowK o
+data WindowCursorPropertyInfo
+data WindowCreateSurfaceSignalInfo
+data WindowFromEmbedderSignalInfo
+data WindowPickEmbeddedChildSignalInfo
+data WindowToEmbedderSignalInfo
diff --git a/GI/Gdk/Structs.hs b/GI/Gdk/Structs.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs.hs
@@ -0,0 +1,90 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Structs
+    (     module GI.Gdk.Structs.Atom              ,
+    module GI.Gdk.Structs.Color             ,
+    module GI.Gdk.Structs.EventAny          ,
+    module GI.Gdk.Structs.EventButton       ,
+    module GI.Gdk.Structs.EventConfigure    ,
+    module GI.Gdk.Structs.EventCrossing     ,
+    module GI.Gdk.Structs.EventDND          ,
+    module GI.Gdk.Structs.EventExpose       ,
+    module GI.Gdk.Structs.EventFocus        ,
+    module GI.Gdk.Structs.EventGrabBroken   ,
+    module GI.Gdk.Structs.EventKey          ,
+    module GI.Gdk.Structs.EventMotion       ,
+    module GI.Gdk.Structs.EventOwnerChange  ,
+    module GI.Gdk.Structs.EventProperty     ,
+    module GI.Gdk.Structs.EventProximity    ,
+    module GI.Gdk.Structs.EventScroll       ,
+    module GI.Gdk.Structs.EventSelection    ,
+    module GI.Gdk.Structs.EventSequence     ,
+    module GI.Gdk.Structs.EventSetting      ,
+    module GI.Gdk.Structs.EventTouch        ,
+    module GI.Gdk.Structs.EventTouchpadPinch,
+    module GI.Gdk.Structs.EventTouchpadSwipe,
+    module GI.Gdk.Structs.EventVisibility   ,
+    module GI.Gdk.Structs.EventWindowState  ,
+    module GI.Gdk.Structs.FrameTimings      ,
+    module GI.Gdk.Structs.Geometry          ,
+    module GI.Gdk.Structs.KeymapKey         ,
+    module GI.Gdk.Structs.Point             ,
+    module GI.Gdk.Structs.RGBA              ,
+    module GI.Gdk.Structs.Rectangle         ,
+    module GI.Gdk.Structs.TimeCoord         ,
+    module GI.Gdk.Structs.WindowAttr        ,
+    module GI.Gdk.Structs.WindowRedirect    ,
+
+
+    ) where
+
+import GI.Gdk.Structs.Atom
+import GI.Gdk.Structs.Color
+import GI.Gdk.Structs.EventAny
+import GI.Gdk.Structs.EventButton
+import GI.Gdk.Structs.EventConfigure
+import GI.Gdk.Structs.EventCrossing
+import GI.Gdk.Structs.EventDND
+import GI.Gdk.Structs.EventExpose
+import GI.Gdk.Structs.EventFocus
+import GI.Gdk.Structs.EventGrabBroken
+import GI.Gdk.Structs.EventKey
+import GI.Gdk.Structs.EventMotion
+import GI.Gdk.Structs.EventOwnerChange
+import GI.Gdk.Structs.EventProperty
+import GI.Gdk.Structs.EventProximity
+import GI.Gdk.Structs.EventScroll
+import GI.Gdk.Structs.EventSelection
+import GI.Gdk.Structs.EventSequence
+import GI.Gdk.Structs.EventSetting
+import GI.Gdk.Structs.EventTouch
+import GI.Gdk.Structs.EventTouchpadPinch
+import GI.Gdk.Structs.EventTouchpadSwipe
+import GI.Gdk.Structs.EventVisibility
+import GI.Gdk.Structs.EventWindowState
+import GI.Gdk.Structs.FrameTimings
+import GI.Gdk.Structs.Geometry
+import GI.Gdk.Structs.KeymapKey
+import GI.Gdk.Structs.Point
+import GI.Gdk.Structs.RGBA
+import GI.Gdk.Structs.Rectangle
+import GI.Gdk.Structs.TimeCoord
+import GI.Gdk.Structs.WindowAttr
+import GI.Gdk.Structs.WindowRedirect
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+
diff --git a/GI/Gdk/Structs/Atom.hs b/GI/Gdk/Structs/Atom.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/Atom.hs
@@ -0,0 +1,69 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+An opaque type representing a string as an index into a table
+of strings on the X server.
+-}
+
+module GI.Gdk.Structs.Atom
+    ( 
+
+-- * Exported types
+    Atom(..)                                ,
+    noAtom                                  ,
+
+
+ -- * Methods
+-- ** atomName
+    atomName                                ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype Atom = Atom (ForeignPtr Atom)
+noAtom :: Maybe Atom
+noAtom = Nothing
+
+-- method Atom::name
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_atom_name" gdk_atom_name :: 
+    Ptr Atom ->                             -- _obj : TInterface "Gdk" "Atom"
+    IO CString
+
+
+atomName ::
+    (MonadIO m) =>
+    Atom ->                                 -- _obj
+    m T.Text
+atomName _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_atom_name _obj'
+    checkUnexpectedReturnNULL "gdk_atom_name" result
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    return result'
+
+
diff --git a/GI/Gdk/Structs/Atom.hs-boot b/GI/Gdk/Structs/Atom.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/Atom.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.Atom where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype Atom = Atom (ForeignPtr Atom)
diff --git a/GI/Gdk/Structs/Color.hs b/GI/Gdk/Structs/Color.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/Color.hs
@@ -0,0 +1,233 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+A #GdkColor is used to describe a color,
+similar to the XColor struct used in the X11 drawing API.
+-}
+
+module GI.Gdk.Structs.Color
+    ( 
+
+-- * Exported types
+    Color(..)                               ,
+    noColor                                 ,
+
+
+ -- * Methods
+-- ** colorCopy
+    colorCopy                               ,
+
+
+-- ** colorEqual
+    colorEqual                              ,
+
+
+-- ** colorFree
+    colorFree                               ,
+
+
+-- ** colorHash
+    colorHash                               ,
+
+
+-- ** colorToString
+    colorToString                           ,
+
+
+
+
+ -- * Properties
+-- ** Blue
+    colorReadBlue                           ,
+
+
+-- ** Green
+    colorReadGreen                          ,
+
+
+-- ** Pixel
+    colorReadPixel                          ,
+
+
+-- ** Red
+    colorReadRed                            ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype Color = Color (ForeignPtr Color)
+foreign import ccall "gdk_color_get_type" c_gdk_color_get_type :: 
+    IO GType
+
+instance BoxedObject Color where
+    boxedType _ = c_gdk_color_get_type
+
+noColor :: Maybe Color
+noColor = Nothing
+
+colorReadPixel :: Color -> IO Word32
+colorReadPixel s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Word32
+    return val
+
+colorReadRed :: Color -> IO Word16
+colorReadRed s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 4) :: IO Word16
+    return val
+
+colorReadGreen :: Color -> IO Word16
+colorReadGreen s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 6) :: IO Word16
+    return val
+
+colorReadBlue :: Color -> IO Word16
+colorReadBlue s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO Word16
+    return val
+
+-- method Color::copy
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Color"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_color_copy" gdk_color_copy :: 
+    Ptr Color ->                            -- _obj : TInterface "Gdk" "Color"
+    IO (Ptr Color)
+
+{-# DEPRECATED colorCopy ["(Since version 3.14)","Use #GdkRGBA"]#-}
+colorCopy ::
+    (MonadIO m) =>
+    Color ->                                -- _obj
+    m Color
+colorCopy _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_color_copy _obj'
+    checkUnexpectedReturnNULL "gdk_color_copy" result
+    result' <- (wrapBoxed Color) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Color::equal
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "colorb", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "colorb", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_color_equal" gdk_color_equal :: 
+    Ptr Color ->                            -- _obj : TInterface "Gdk" "Color"
+    Ptr Color ->                            -- colorb : TInterface "Gdk" "Color"
+    IO CInt
+
+{-# DEPRECATED colorEqual ["(Since version 3.14)","Use #GdkRGBA"]#-}
+colorEqual ::
+    (MonadIO m) =>
+    Color ->                                -- _obj
+    Color ->                                -- colorb
+    m Bool
+colorEqual _obj colorb = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let colorb' = unsafeManagedPtrGetPtr colorb
+    result <- gdk_color_equal _obj' colorb'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    touchManagedPtr colorb
+    return result'
+
+-- method Color::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_color_free" gdk_color_free :: 
+    Ptr Color ->                            -- _obj : TInterface "Gdk" "Color"
+    IO ()
+
+{-# DEPRECATED colorFree ["(Since version 3.14)","Use #GdkRGBA"]#-}
+colorFree ::
+    (MonadIO m) =>
+    Color ->                                -- _obj
+    m ()
+colorFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    gdk_color_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Color::hash
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_color_hash" gdk_color_hash :: 
+    Ptr Color ->                            -- _obj : TInterface "Gdk" "Color"
+    IO Word32
+
+{-# DEPRECATED colorHash ["(Since version 3.14)","Use #GdkRGBA"]#-}
+colorHash ::
+    (MonadIO m) =>
+    Color ->                                -- _obj
+    m Word32
+colorHash _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_color_hash _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Color::to_string
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_color_to_string" gdk_color_to_string :: 
+    Ptr Color ->                            -- _obj : TInterface "Gdk" "Color"
+    IO CString
+
+{-# DEPRECATED colorToString ["(Since version 3.14)","Use #GdkRGBA"]#-}
+colorToString ::
+    (MonadIO m) =>
+    Color ->                                -- _obj
+    m T.Text
+colorToString _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_color_to_string _obj'
+    checkUnexpectedReturnNULL "gdk_color_to_string" result
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    return result'
+
+
diff --git a/GI/Gdk/Structs/Color.hs-boot b/GI/Gdk/Structs/Color.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/Color.hs-boot
@@ -0,0 +1,11 @@
+module GI.Gdk.Structs.Color where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype Color = Color (ForeignPtr Color)
+instance BoxedObject Color where
diff --git a/GI/Gdk/Structs/EventAny.hs b/GI/Gdk/Structs/EventAny.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventAny.hs
@@ -0,0 +1,68 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Contains the fields which are common to all event structs.
+Any event pointer can safely be cast to a pointer to a #GdkEventAny to
+access these fields.
+-}
+
+module GI.Gdk.Structs.EventAny
+    ( 
+
+-- * Exported types
+    EventAny(..)                            ,
+    noEventAny                              ,
+
+
+ -- * Properties
+-- ** SendEvent
+    eventAnyReadSendEvent                   ,
+
+
+-- ** Type
+    eventAnyReadType                        ,
+
+
+-- ** Window
+    eventAnyReadWindow                      ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventAny = EventAny (ForeignPtr EventAny)
+noEventAny :: Maybe EventAny
+noEventAny = Nothing
+
+eventAnyReadType :: EventAny -> IO EventType
+eventAnyReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventAnyReadWindow :: EventAny -> IO Window
+eventAnyReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventAnyReadSendEvent :: EventAny -> IO Int8
+eventAnyReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+
diff --git a/GI/Gdk/Structs/EventAny.hs-boot b/GI/Gdk/Structs/EventAny.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventAny.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventAny where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventAny = EventAny (ForeignPtr EventAny)
diff --git a/GI/Gdk/Structs/EventButton.hs b/GI/Gdk/Structs/EventButton.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventButton.hs
@@ -0,0 +1,186 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Used for button press and button release events. The
+@type field will be one of %GDK_BUTTON_PRESS,
+%GDK_2BUTTON_PRESS, %GDK_3BUTTON_PRESS or %GDK_BUTTON_RELEASE,
+
+Double and triple-clicks result in a sequence of events being received.
+For double-clicks the order of events will be:
+
+- %GDK_BUTTON_PRESS
+- %GDK_BUTTON_RELEASE
+- %GDK_BUTTON_PRESS
+- %GDK_2BUTTON_PRESS
+- %GDK_BUTTON_RELEASE
+
+Note that the first click is received just like a normal
+button press, while the second click results in a %GDK_2BUTTON_PRESS
+being received just after the %GDK_BUTTON_PRESS.
+
+Triple-clicks are very similar to double-clicks, except that
+%GDK_3BUTTON_PRESS is inserted after the third click. The order of the
+events is:
+
+- %GDK_BUTTON_PRESS
+- %GDK_BUTTON_RELEASE
+- %GDK_BUTTON_PRESS
+- %GDK_2BUTTON_PRESS
+- %GDK_BUTTON_RELEASE
+- %GDK_BUTTON_PRESS
+- %GDK_3BUTTON_PRESS
+- %GDK_BUTTON_RELEASE
+
+For a double click to occur, the second button press must occur within
+1/4 of a second of the first. For a triple click to occur, the third
+button press must also occur within 1/2 second of the first button press.
+-}
+
+module GI.Gdk.Structs.EventButton
+    ( 
+
+-- * Exported types
+    EventButton(..)                         ,
+    noEventButton                           ,
+
+
+ -- * Properties
+-- ** Axes
+    eventButtonReadAxes                     ,
+
+
+-- ** Button
+    eventButtonReadButton                   ,
+
+
+-- ** Device
+    eventButtonReadDevice                   ,
+
+
+-- ** SendEvent
+    eventButtonReadSendEvent                ,
+
+
+-- ** State
+    eventButtonReadState                    ,
+
+
+-- ** Time
+    eventButtonReadTime                     ,
+
+
+-- ** Type
+    eventButtonReadType                     ,
+
+
+-- ** Window
+    eventButtonReadWindow                   ,
+
+
+-- ** X
+    eventButtonReadX                        ,
+
+
+-- ** XRoot
+    eventButtonReadXRoot                    ,
+
+
+-- ** Y
+    eventButtonReadY                        ,
+
+
+-- ** YRoot
+    eventButtonReadYRoot                    ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventButton = EventButton (ForeignPtr EventButton)
+noEventButton :: Maybe EventButton
+noEventButton = Nothing
+
+eventButtonReadType :: EventButton -> IO EventType
+eventButtonReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventButtonReadWindow :: EventButton -> IO Window
+eventButtonReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventButtonReadSendEvent :: EventButton -> IO Int8
+eventButtonReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventButtonReadTime :: EventButton -> IO Word32
+eventButtonReadTime s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO Word32
+    return val
+
+eventButtonReadX :: EventButton -> IO Double
+eventButtonReadX s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventButtonReadY :: EventButton -> IO Double
+eventButtonReadY s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventButtonReadAxes :: EventButton -> IO Double
+eventButtonReadAxes s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventButtonReadState :: EventButton -> IO [ModifierType]
+eventButtonReadState s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 48) :: IO CUInt
+    let val' = wordToGFlags val
+    return val'
+
+eventButtonReadButton :: EventButton -> IO Word32
+eventButtonReadButton s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 52) :: IO Word32
+    return val
+
+eventButtonReadDevice :: EventButton -> IO Device
+eventButtonReadDevice s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 56) :: IO (Ptr Device)
+    val' <- (newObject Device) val
+    return val'
+
+eventButtonReadXRoot :: EventButton -> IO Double
+eventButtonReadXRoot s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 64) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventButtonReadYRoot :: EventButton -> IO Double
+eventButtonReadYRoot s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 72) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+
diff --git a/GI/Gdk/Structs/EventButton.hs-boot b/GI/Gdk/Structs/EventButton.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventButton.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventButton where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventButton = EventButton (ForeignPtr EventButton)
diff --git a/GI/Gdk/Structs/EventConfigure.hs b/GI/Gdk/Structs/EventConfigure.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventConfigure.hs
@@ -0,0 +1,102 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Generated when a window size or position has changed.
+-}
+
+module GI.Gdk.Structs.EventConfigure
+    ( 
+
+-- * Exported types
+    EventConfigure(..)                      ,
+    noEventConfigure                        ,
+
+
+ -- * Properties
+-- ** Height
+    eventConfigureReadHeight                ,
+
+
+-- ** SendEvent
+    eventConfigureReadSendEvent             ,
+
+
+-- ** Type
+    eventConfigureReadType                  ,
+
+
+-- ** Width
+    eventConfigureReadWidth                 ,
+
+
+-- ** Window
+    eventConfigureReadWindow                ,
+
+
+-- ** X
+    eventConfigureReadX                     ,
+
+
+-- ** Y
+    eventConfigureReadY                     ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventConfigure = EventConfigure (ForeignPtr EventConfigure)
+noEventConfigure :: Maybe EventConfigure
+noEventConfigure = Nothing
+
+eventConfigureReadType :: EventConfigure -> IO EventType
+eventConfigureReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventConfigureReadWindow :: EventConfigure -> IO Window
+eventConfigureReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventConfigureReadSendEvent :: EventConfigure -> IO Int8
+eventConfigureReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventConfigureReadX :: EventConfigure -> IO Int32
+eventConfigureReadX s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO Int32
+    return val
+
+eventConfigureReadY :: EventConfigure -> IO Int32
+eventConfigureReadY s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO Int32
+    return val
+
+eventConfigureReadWidth :: EventConfigure -> IO Int32
+eventConfigureReadWidth s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 28) :: IO Int32
+    return val
+
+eventConfigureReadHeight :: EventConfigure -> IO Int32
+eventConfigureReadHeight s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO Int32
+    return val
+
+
diff --git a/GI/Gdk/Structs/EventConfigure.hs-boot b/GI/Gdk/Structs/EventConfigure.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventConfigure.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventConfigure where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventConfigure = EventConfigure (ForeignPtr EventConfigure)
diff --git a/GI/Gdk/Structs/EventCrossing.hs b/GI/Gdk/Structs/EventCrossing.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventCrossing.hs
@@ -0,0 +1,165 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Generated when the pointer enters or leaves a window.
+-}
+
+module GI.Gdk.Structs.EventCrossing
+    ( 
+
+-- * Exported types
+    EventCrossing(..)                       ,
+    noEventCrossing                         ,
+
+
+ -- * Properties
+-- ** Detail
+    eventCrossingReadDetail                 ,
+
+
+-- ** Focus
+    eventCrossingReadFocus                  ,
+
+
+-- ** Mode
+    eventCrossingReadMode                   ,
+
+
+-- ** SendEvent
+    eventCrossingReadSendEvent              ,
+
+
+-- ** State
+    eventCrossingReadState                  ,
+
+
+-- ** Subwindow
+    eventCrossingReadSubwindow              ,
+
+
+-- ** Time
+    eventCrossingReadTime                   ,
+
+
+-- ** Type
+    eventCrossingReadType                   ,
+
+
+-- ** Window
+    eventCrossingReadWindow                 ,
+
+
+-- ** X
+    eventCrossingReadX                      ,
+
+
+-- ** XRoot
+    eventCrossingReadXRoot                  ,
+
+
+-- ** Y
+    eventCrossingReadY                      ,
+
+
+-- ** YRoot
+    eventCrossingReadYRoot                  ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventCrossing = EventCrossing (ForeignPtr EventCrossing)
+noEventCrossing :: Maybe EventCrossing
+noEventCrossing = Nothing
+
+eventCrossingReadType :: EventCrossing -> IO EventType
+eventCrossingReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventCrossingReadWindow :: EventCrossing -> IO Window
+eventCrossingReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventCrossingReadSendEvent :: EventCrossing -> IO Int8
+eventCrossingReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventCrossingReadSubwindow :: EventCrossing -> IO Window
+eventCrossingReadSubwindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventCrossingReadTime :: EventCrossing -> IO Word32
+eventCrossingReadTime s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO Word32
+    return val
+
+eventCrossingReadX :: EventCrossing -> IO Double
+eventCrossingReadX s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventCrossingReadY :: EventCrossing -> IO Double
+eventCrossingReadY s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 48) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventCrossingReadXRoot :: EventCrossing -> IO Double
+eventCrossingReadXRoot s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 56) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventCrossingReadYRoot :: EventCrossing -> IO Double
+eventCrossingReadYRoot s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 64) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventCrossingReadMode :: EventCrossing -> IO CrossingMode
+eventCrossingReadMode s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 72) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventCrossingReadDetail :: EventCrossing -> IO NotifyType
+eventCrossingReadDetail s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 76) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventCrossingReadFocus :: EventCrossing -> IO Bool
+eventCrossingReadFocus s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 80) :: IO CInt
+    let val' = (/= 0) val
+    return val'
+
+eventCrossingReadState :: EventCrossing -> IO [ModifierType]
+eventCrossingReadState s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 84) :: IO CUInt
+    let val' = wordToGFlags val
+    return val'
+
+
diff --git a/GI/Gdk/Structs/EventCrossing.hs-boot b/GI/Gdk/Structs/EventCrossing.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventCrossing.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventCrossing where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventCrossing = EventCrossing (ForeignPtr EventCrossing)
diff --git a/GI/Gdk/Structs/EventDND.hs b/GI/Gdk/Structs/EventDND.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventDND.hs
@@ -0,0 +1,103 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Generated during DND operations.
+-}
+
+module GI.Gdk.Structs.EventDND
+    ( 
+
+-- * Exported types
+    EventDND(..)                            ,
+    noEventDND                              ,
+
+
+ -- * Properties
+-- ** Context
+    eventDNDReadContext                     ,
+
+
+-- ** SendEvent
+    eventDNDReadSendEvent                   ,
+
+
+-- ** Time
+    eventDNDReadTime                        ,
+
+
+-- ** Type
+    eventDNDReadType                        ,
+
+
+-- ** Window
+    eventDNDReadWindow                      ,
+
+
+-- ** XRoot
+    eventDNDReadXRoot                       ,
+
+
+-- ** YRoot
+    eventDNDReadYRoot                       ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventDND = EventDND (ForeignPtr EventDND)
+noEventDND :: Maybe EventDND
+noEventDND = Nothing
+
+eventDNDReadType :: EventDND -> IO EventType
+eventDNDReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventDNDReadWindow :: EventDND -> IO Window
+eventDNDReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventDNDReadSendEvent :: EventDND -> IO Int8
+eventDNDReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventDNDReadContext :: EventDND -> IO DragContext
+eventDNDReadContext s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO (Ptr DragContext)
+    val' <- (newObject DragContext) val
+    return val'
+
+eventDNDReadTime :: EventDND -> IO Word32
+eventDNDReadTime s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO Word32
+    return val
+
+eventDNDReadXRoot :: EventDND -> IO Int16
+eventDNDReadXRoot s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 36) :: IO Int16
+    return val
+
+eventDNDReadYRoot :: EventDND -> IO Int16
+eventDNDReadYRoot s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 38) :: IO Int16
+    return val
+
+
diff --git a/GI/Gdk/Structs/EventDND.hs-boot b/GI/Gdk/Structs/EventDND.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventDND.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventDND where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventDND = EventDND (ForeignPtr EventDND)
diff --git a/GI/Gdk/Structs/EventExpose.hs b/GI/Gdk/Structs/EventExpose.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventExpose.hs
@@ -0,0 +1,97 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Generated when all or part of a window becomes visible and needs to be
+redrawn.
+-}
+
+module GI.Gdk.Structs.EventExpose
+    ( 
+
+-- * Exported types
+    EventExpose(..)                         ,
+    noEventExpose                           ,
+
+
+ -- * Properties
+-- ** Area
+    eventExposeReadArea                     ,
+
+
+-- ** Count
+    eventExposeReadCount                    ,
+
+
+-- ** Region
+    eventExposeReadRegion                   ,
+
+
+-- ** SendEvent
+    eventExposeReadSendEvent                ,
+
+
+-- ** Type
+    eventExposeReadType                     ,
+
+
+-- ** Window
+    eventExposeReadWindow                   ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.Cairo as Cairo
+
+newtype EventExpose = EventExpose (ForeignPtr EventExpose)
+noEventExpose :: Maybe EventExpose
+noEventExpose = Nothing
+
+eventExposeReadType :: EventExpose -> IO EventType
+eventExposeReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventExposeReadWindow :: EventExpose -> IO Window
+eventExposeReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventExposeReadSendEvent :: EventExpose -> IO Int8
+eventExposeReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventExposeReadArea :: EventExpose -> IO Rectangle
+eventExposeReadArea s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO (Ptr Rectangle)
+    val' <- (newBoxed Rectangle) val
+    return val'
+
+eventExposeReadRegion :: EventExpose -> IO Cairo.Region
+eventExposeReadRegion s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO (Ptr Cairo.Region)
+    val' <- (newBoxed Cairo.Region) val
+    return val'
+
+eventExposeReadCount :: EventExpose -> IO Int32
+eventExposeReadCount s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 48) :: IO Int32
+    return val
+
+
diff --git a/GI/Gdk/Structs/EventExpose.hs-boot b/GI/Gdk/Structs/EventExpose.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventExpose.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventExpose where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventExpose = EventExpose (ForeignPtr EventExpose)
diff --git a/GI/Gdk/Structs/EventFocus.hs b/GI/Gdk/Structs/EventFocus.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventFocus.hs
@@ -0,0 +1,75 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Describes a change of keyboard focus.
+-}
+
+module GI.Gdk.Structs.EventFocus
+    ( 
+
+-- * Exported types
+    EventFocus(..)                          ,
+    noEventFocus                            ,
+
+
+ -- * Properties
+-- ** In
+    eventFocusReadIn                        ,
+
+
+-- ** SendEvent
+    eventFocusReadSendEvent                 ,
+
+
+-- ** Type
+    eventFocusReadType                      ,
+
+
+-- ** Window
+    eventFocusReadWindow                    ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventFocus = EventFocus (ForeignPtr EventFocus)
+noEventFocus :: Maybe EventFocus
+noEventFocus = Nothing
+
+eventFocusReadType :: EventFocus -> IO EventType
+eventFocusReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventFocusReadWindow :: EventFocus -> IO Window
+eventFocusReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventFocusReadSendEvent :: EventFocus -> IO Int8
+eventFocusReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventFocusReadIn :: EventFocus -> IO Int16
+eventFocusReadIn s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 18) :: IO Int16
+    return val
+
+
diff --git a/GI/Gdk/Structs/EventFocus.hs-boot b/GI/Gdk/Structs/EventFocus.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventFocus.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventFocus where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventFocus = EventFocus (ForeignPtr EventFocus)
diff --git a/GI/Gdk/Structs/EventGrabBroken.hs b/GI/Gdk/Structs/EventGrabBroken.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventGrabBroken.hs
@@ -0,0 +1,100 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Generated when a pointer or keyboard grab is broken. On X11, this happens
+when the grab window becomes unviewable (i.e. it or one of its ancestors
+is unmapped), or if the same application grabs the pointer or keyboard
+again. Note that implicit grabs (which are initiated by button presses)
+can also cause #GdkEventGrabBroken events.
+-}
+
+module GI.Gdk.Structs.EventGrabBroken
+    ( 
+
+-- * Exported types
+    EventGrabBroken(..)                     ,
+    noEventGrabBroken                       ,
+
+
+ -- * Properties
+-- ** GrabWindow
+    eventGrabBrokenReadGrabWindow           ,
+
+
+-- ** Implicit
+    eventGrabBrokenReadImplicit             ,
+
+
+-- ** Keyboard
+    eventGrabBrokenReadKeyboard             ,
+
+
+-- ** SendEvent
+    eventGrabBrokenReadSendEvent            ,
+
+
+-- ** Type
+    eventGrabBrokenReadType                 ,
+
+
+-- ** Window
+    eventGrabBrokenReadWindow               ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventGrabBroken = EventGrabBroken (ForeignPtr EventGrabBroken)
+noEventGrabBroken :: Maybe EventGrabBroken
+noEventGrabBroken = Nothing
+
+eventGrabBrokenReadType :: EventGrabBroken -> IO EventType
+eventGrabBrokenReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventGrabBrokenReadWindow :: EventGrabBroken -> IO Window
+eventGrabBrokenReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventGrabBrokenReadSendEvent :: EventGrabBroken -> IO Int8
+eventGrabBrokenReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventGrabBrokenReadKeyboard :: EventGrabBroken -> IO Bool
+eventGrabBrokenReadKeyboard s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO CInt
+    let val' = (/= 0) val
+    return val'
+
+eventGrabBrokenReadImplicit :: EventGrabBroken -> IO Bool
+eventGrabBrokenReadImplicit s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO CInt
+    let val' = (/= 0) val
+    return val'
+
+eventGrabBrokenReadGrabWindow :: EventGrabBroken -> IO Window
+eventGrabBrokenReadGrabWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+
diff --git a/GI/Gdk/Structs/EventGrabBroken.hs-boot b/GI/Gdk/Structs/EventGrabBroken.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventGrabBroken.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventGrabBroken where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventGrabBroken = EventGrabBroken (ForeignPtr EventGrabBroken)
diff --git a/GI/Gdk/Structs/EventKey.hs b/GI/Gdk/Structs/EventKey.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventKey.hs
@@ -0,0 +1,140 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Describes a key press or key release event.
+-}
+
+module GI.Gdk.Structs.EventKey
+    ( 
+
+-- * Exported types
+    EventKey(..)                            ,
+    noEventKey                              ,
+
+
+ -- * Properties
+-- ** Group
+    eventKeyReadGroup                       ,
+
+
+-- ** HardwareKeycode
+    eventKeyReadHardwareKeycode             ,
+
+
+-- ** IsModifier
+    eventKeyReadIsModifier                  ,
+
+
+-- ** Keyval
+    eventKeyReadKeyval                      ,
+
+
+-- ** Length
+    eventKeyReadLength                      ,
+
+
+-- ** SendEvent
+    eventKeyReadSendEvent                   ,
+
+
+-- ** State
+    eventKeyReadState                       ,
+
+
+-- ** String
+    eventKeyReadString                      ,
+
+
+-- ** Time
+    eventKeyReadTime                        ,
+
+
+-- ** Type
+    eventKeyReadType                        ,
+
+
+-- ** Window
+    eventKeyReadWindow                      ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventKey = EventKey (ForeignPtr EventKey)
+noEventKey :: Maybe EventKey
+noEventKey = Nothing
+
+eventKeyReadType :: EventKey -> IO EventType
+eventKeyReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventKeyReadWindow :: EventKey -> IO Window
+eventKeyReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventKeyReadSendEvent :: EventKey -> IO Int8
+eventKeyReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventKeyReadTime :: EventKey -> IO Word32
+eventKeyReadTime s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO Word32
+    return val
+
+eventKeyReadState :: EventKey -> IO [ModifierType]
+eventKeyReadState s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO CUInt
+    let val' = wordToGFlags val
+    return val'
+
+eventKeyReadKeyval :: EventKey -> IO Word32
+eventKeyReadKeyval s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 28) :: IO Word32
+    return val
+
+eventKeyReadLength :: EventKey -> IO Int32
+eventKeyReadLength s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO Int32
+    return val
+
+eventKeyReadString :: EventKey -> IO T.Text
+eventKeyReadString s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+eventKeyReadHardwareKeycode :: EventKey -> IO Word16
+eventKeyReadHardwareKeycode s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 48) :: IO Word16
+    return val
+
+eventKeyReadGroup :: EventKey -> IO Word8
+eventKeyReadGroup s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 50) :: IO Word8
+    return val
+
+eventKeyReadIsModifier :: EventKey -> IO Word32
+eventKeyReadIsModifier s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 52) :: IO Word32
+    return val
+
+
diff --git a/GI/Gdk/Structs/EventKey.hs-boot b/GI/Gdk/Structs/EventKey.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventKey.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventKey where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventKey = EventKey (ForeignPtr EventKey)
diff --git a/GI/Gdk/Structs/EventMotion.hs b/GI/Gdk/Structs/EventMotion.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventMotion.hs
@@ -0,0 +1,154 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Generated when the pointer moves.
+-}
+
+module GI.Gdk.Structs.EventMotion
+    ( 
+
+-- * Exported types
+    EventMotion(..)                         ,
+    noEventMotion                           ,
+
+
+ -- * Properties
+-- ** Axes
+    eventMotionReadAxes                     ,
+
+
+-- ** Device
+    eventMotionReadDevice                   ,
+
+
+-- ** IsHint
+    eventMotionReadIsHint                   ,
+
+
+-- ** SendEvent
+    eventMotionReadSendEvent                ,
+
+
+-- ** State
+    eventMotionReadState                    ,
+
+
+-- ** Time
+    eventMotionReadTime                     ,
+
+
+-- ** Type
+    eventMotionReadType                     ,
+
+
+-- ** Window
+    eventMotionReadWindow                   ,
+
+
+-- ** X
+    eventMotionReadX                        ,
+
+
+-- ** XRoot
+    eventMotionReadXRoot                    ,
+
+
+-- ** Y
+    eventMotionReadY                        ,
+
+
+-- ** YRoot
+    eventMotionReadYRoot                    ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventMotion = EventMotion (ForeignPtr EventMotion)
+noEventMotion :: Maybe EventMotion
+noEventMotion = Nothing
+
+eventMotionReadType :: EventMotion -> IO EventType
+eventMotionReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventMotionReadWindow :: EventMotion -> IO Window
+eventMotionReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventMotionReadSendEvent :: EventMotion -> IO Int8
+eventMotionReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventMotionReadTime :: EventMotion -> IO Word32
+eventMotionReadTime s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO Word32
+    return val
+
+eventMotionReadX :: EventMotion -> IO Double
+eventMotionReadX s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventMotionReadY :: EventMotion -> IO Double
+eventMotionReadY s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventMotionReadAxes :: EventMotion -> IO Double
+eventMotionReadAxes s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventMotionReadState :: EventMotion -> IO [ModifierType]
+eventMotionReadState s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 48) :: IO CUInt
+    let val' = wordToGFlags val
+    return val'
+
+eventMotionReadIsHint :: EventMotion -> IO Int16
+eventMotionReadIsHint s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 52) :: IO Int16
+    return val
+
+eventMotionReadDevice :: EventMotion -> IO Device
+eventMotionReadDevice s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 56) :: IO (Ptr Device)
+    val' <- (newObject Device) val
+    return val'
+
+eventMotionReadXRoot :: EventMotion -> IO Double
+eventMotionReadXRoot s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 64) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventMotionReadYRoot :: EventMotion -> IO Double
+eventMotionReadYRoot s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 72) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+
diff --git a/GI/Gdk/Structs/EventMotion.hs-boot b/GI/Gdk/Structs/EventMotion.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventMotion.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventMotion where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventMotion = EventMotion (ForeignPtr EventMotion)
diff --git a/GI/Gdk/Structs/EventOwnerChange.hs b/GI/Gdk/Structs/EventOwnerChange.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventOwnerChange.hs
@@ -0,0 +1,117 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Generated when the owner of a selection changes. On X11, this
+information is only available if the X server supports the XFIXES
+extension.
+-}
+
+module GI.Gdk.Structs.EventOwnerChange
+    ( 
+
+-- * Exported types
+    EventOwnerChange(..)                    ,
+    noEventOwnerChange                      ,
+
+
+ -- * Properties
+-- ** Owner
+    eventOwnerChangeReadOwner               ,
+
+
+-- ** Reason
+    eventOwnerChangeReadReason              ,
+
+
+-- ** Selection
+    eventOwnerChangeReadSelection           ,
+
+
+-- ** SelectionTime
+    eventOwnerChangeReadSelectionTime       ,
+
+
+-- ** SendEvent
+    eventOwnerChangeReadSendEvent           ,
+
+
+-- ** Time
+    eventOwnerChangeReadTime                ,
+
+
+-- ** Type
+    eventOwnerChangeReadType                ,
+
+
+-- ** Window
+    eventOwnerChangeReadWindow              ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventOwnerChange = EventOwnerChange (ForeignPtr EventOwnerChange)
+noEventOwnerChange :: Maybe EventOwnerChange
+noEventOwnerChange = Nothing
+
+eventOwnerChangeReadType :: EventOwnerChange -> IO EventType
+eventOwnerChangeReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventOwnerChangeReadWindow :: EventOwnerChange -> IO Window
+eventOwnerChangeReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventOwnerChangeReadSendEvent :: EventOwnerChange -> IO Int8
+eventOwnerChangeReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventOwnerChangeReadOwner :: EventOwnerChange -> IO Window
+eventOwnerChangeReadOwner s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventOwnerChangeReadReason :: EventOwnerChange -> IO OwnerChange
+eventOwnerChangeReadReason s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventOwnerChangeReadSelection :: EventOwnerChange -> IO Atom
+eventOwnerChangeReadSelection s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO (Ptr Atom)
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    val' <- (\x -> Atom <$> newForeignPtr_ x) val
+    return val'
+
+eventOwnerChangeReadTime :: EventOwnerChange -> IO Word32
+eventOwnerChangeReadTime s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 48) :: IO Word32
+    return val
+
+eventOwnerChangeReadSelectionTime :: EventOwnerChange -> IO Word32
+eventOwnerChangeReadSelectionTime s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 52) :: IO Word32
+    return val
+
+
diff --git a/GI/Gdk/Structs/EventOwnerChange.hs-boot b/GI/Gdk/Structs/EventOwnerChange.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventOwnerChange.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventOwnerChange where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventOwnerChange = EventOwnerChange (ForeignPtr EventOwnerChange)
diff --git a/GI/Gdk/Structs/EventProperty.hs b/GI/Gdk/Structs/EventProperty.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventProperty.hs
@@ -0,0 +1,96 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Describes a property change on a window.
+-}
+
+module GI.Gdk.Structs.EventProperty
+    ( 
+
+-- * Exported types
+    EventProperty(..)                       ,
+    noEventProperty                         ,
+
+
+ -- * Properties
+-- ** Atom
+    eventPropertyReadAtom                   ,
+
+
+-- ** SendEvent
+    eventPropertyReadSendEvent              ,
+
+
+-- ** State
+    eventPropertyReadState                  ,
+
+
+-- ** Time
+    eventPropertyReadTime                   ,
+
+
+-- ** Type
+    eventPropertyReadType                   ,
+
+
+-- ** Window
+    eventPropertyReadWindow                 ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventProperty = EventProperty (ForeignPtr EventProperty)
+noEventProperty :: Maybe EventProperty
+noEventProperty = Nothing
+
+eventPropertyReadType :: EventProperty -> IO EventType
+eventPropertyReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventPropertyReadWindow :: EventProperty -> IO Window
+eventPropertyReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventPropertyReadSendEvent :: EventProperty -> IO Int8
+eventPropertyReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventPropertyReadAtom :: EventProperty -> IO Atom
+eventPropertyReadAtom s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO (Ptr Atom)
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    val' <- (\x -> Atom <$> newForeignPtr_ x) val
+    return val'
+
+eventPropertyReadTime :: EventProperty -> IO Word32
+eventPropertyReadTime s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO Word32
+    return val
+
+eventPropertyReadState :: EventProperty -> IO PropertyState
+eventPropertyReadState s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 36) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+
diff --git a/GI/Gdk/Structs/EventProperty.hs-boot b/GI/Gdk/Structs/EventProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventProperty.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventProperty where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventProperty = EventProperty (ForeignPtr EventProperty)
diff --git a/GI/Gdk/Structs/EventProximity.hs b/GI/Gdk/Structs/EventProximity.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventProximity.hs
@@ -0,0 +1,93 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Proximity events are generated when using GDK’s wrapper for the
+XInput extension. The XInput extension is an add-on for standard X
+that allows you to use nonstandard devices such as graphics tablets.
+A proximity event indicates that the stylus has moved in or out of
+contact with the tablet, or perhaps that the user’s finger has moved
+in or out of contact with a touch screen.
+
+This event type will be used pretty rarely. It only is important for
+XInput aware programs that are drawing their own cursor.
+-}
+
+module GI.Gdk.Structs.EventProximity
+    ( 
+
+-- * Exported types
+    EventProximity(..)                      ,
+    noEventProximity                        ,
+
+
+ -- * Properties
+-- ** Device
+    eventProximityReadDevice                ,
+
+
+-- ** SendEvent
+    eventProximityReadSendEvent             ,
+
+
+-- ** Time
+    eventProximityReadTime                  ,
+
+
+-- ** Type
+    eventProximityReadType                  ,
+
+
+-- ** Window
+    eventProximityReadWindow                ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventProximity = EventProximity (ForeignPtr EventProximity)
+noEventProximity :: Maybe EventProximity
+noEventProximity = Nothing
+
+eventProximityReadType :: EventProximity -> IO EventType
+eventProximityReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventProximityReadWindow :: EventProximity -> IO Window
+eventProximityReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventProximityReadSendEvent :: EventProximity -> IO Int8
+eventProximityReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventProximityReadTime :: EventProximity -> IO Word32
+eventProximityReadTime s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO Word32
+    return val
+
+eventProximityReadDevice :: EventProximity -> IO Device
+eventProximityReadDevice s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO (Ptr Device)
+    val' <- (newObject Device) val
+    return val'
+
+
diff --git a/GI/Gdk/Structs/EventProximity.hs-boot b/GI/Gdk/Structs/EventProximity.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventProximity.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventProximity where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventProximity = EventProximity (ForeignPtr EventProximity)
diff --git a/GI/Gdk/Structs/EventScroll.hs b/GI/Gdk/Structs/EventScroll.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventScroll.hs
@@ -0,0 +1,172 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Generated from button presses for the buttons 4 to 7. Wheel mice are
+usually configured to generate button press events for buttons 4 and 5
+when the wheel is turned.
+
+Some GDK backends can also generate “smooth” scroll events, which
+can be recognized by the %GDK_SCROLL_SMOOTH scroll direction. For
+these, the scroll deltas can be obtained with
+gdk_event_get_scroll_deltas().
+-}
+
+module GI.Gdk.Structs.EventScroll
+    ( 
+
+-- * Exported types
+    EventScroll(..)                         ,
+    noEventScroll                           ,
+
+
+ -- * Properties
+-- ** DeltaX
+    eventScrollReadDeltaX                   ,
+
+
+-- ** DeltaY
+    eventScrollReadDeltaY                   ,
+
+
+-- ** Device
+    eventScrollReadDevice                   ,
+
+
+-- ** Direction
+    eventScrollReadDirection                ,
+
+
+-- ** SendEvent
+    eventScrollReadSendEvent                ,
+
+
+-- ** State
+    eventScrollReadState                    ,
+
+
+-- ** Time
+    eventScrollReadTime                     ,
+
+
+-- ** Type
+    eventScrollReadType                     ,
+
+
+-- ** Window
+    eventScrollReadWindow                   ,
+
+
+-- ** X
+    eventScrollReadX                        ,
+
+
+-- ** XRoot
+    eventScrollReadXRoot                    ,
+
+
+-- ** Y
+    eventScrollReadY                        ,
+
+
+-- ** YRoot
+    eventScrollReadYRoot                    ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventScroll = EventScroll (ForeignPtr EventScroll)
+noEventScroll :: Maybe EventScroll
+noEventScroll = Nothing
+
+eventScrollReadType :: EventScroll -> IO EventType
+eventScrollReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventScrollReadWindow :: EventScroll -> IO Window
+eventScrollReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventScrollReadSendEvent :: EventScroll -> IO Int8
+eventScrollReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventScrollReadTime :: EventScroll -> IO Word32
+eventScrollReadTime s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO Word32
+    return val
+
+eventScrollReadX :: EventScroll -> IO Double
+eventScrollReadX s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventScrollReadY :: EventScroll -> IO Double
+eventScrollReadY s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventScrollReadState :: EventScroll -> IO [ModifierType]
+eventScrollReadState s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO CUInt
+    let val' = wordToGFlags val
+    return val'
+
+eventScrollReadDirection :: EventScroll -> IO ScrollDirection
+eventScrollReadDirection s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 44) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventScrollReadDevice :: EventScroll -> IO Device
+eventScrollReadDevice s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 48) :: IO (Ptr Device)
+    val' <- (newObject Device) val
+    return val'
+
+eventScrollReadXRoot :: EventScroll -> IO Double
+eventScrollReadXRoot s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 56) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventScrollReadYRoot :: EventScroll -> IO Double
+eventScrollReadYRoot s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 64) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventScrollReadDeltaX :: EventScroll -> IO Double
+eventScrollReadDeltaX s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 72) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventScrollReadDeltaY :: EventScroll -> IO Double
+eventScrollReadDeltaY s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 80) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+
diff --git a/GI/Gdk/Structs/EventScroll.hs-boot b/GI/Gdk/Structs/EventScroll.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventScroll.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventScroll where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventScroll = EventScroll (ForeignPtr EventScroll)
diff --git a/GI/Gdk/Structs/EventSelection.hs b/GI/Gdk/Structs/EventSelection.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventSelection.hs
@@ -0,0 +1,119 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Generated when a selection is requested or ownership of a selection
+is taken over by another client application.
+-}
+
+module GI.Gdk.Structs.EventSelection
+    ( 
+
+-- * Exported types
+    EventSelection(..)                      ,
+    noEventSelection                        ,
+
+
+ -- * Properties
+-- ** Property
+    eventSelectionReadProperty              ,
+
+
+-- ** Requestor
+    eventSelectionReadRequestor             ,
+
+
+-- ** Selection
+    eventSelectionReadSelection             ,
+
+
+-- ** SendEvent
+    eventSelectionReadSendEvent             ,
+
+
+-- ** Target
+    eventSelectionReadTarget                ,
+
+
+-- ** Time
+    eventSelectionReadTime                  ,
+
+
+-- ** Type
+    eventSelectionReadType                  ,
+
+
+-- ** Window
+    eventSelectionReadWindow                ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventSelection = EventSelection (ForeignPtr EventSelection)
+noEventSelection :: Maybe EventSelection
+noEventSelection = Nothing
+
+eventSelectionReadType :: EventSelection -> IO EventType
+eventSelectionReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventSelectionReadWindow :: EventSelection -> IO Window
+eventSelectionReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventSelectionReadSendEvent :: EventSelection -> IO Int8
+eventSelectionReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventSelectionReadSelection :: EventSelection -> IO Atom
+eventSelectionReadSelection s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO (Ptr Atom)
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    val' <- (\x -> Atom <$> newForeignPtr_ x) val
+    return val'
+
+eventSelectionReadTarget :: EventSelection -> IO Atom
+eventSelectionReadTarget s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO (Ptr Atom)
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    val' <- (\x -> Atom <$> newForeignPtr_ x) val
+    return val'
+
+eventSelectionReadProperty :: EventSelection -> IO Atom
+eventSelectionReadProperty s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO (Ptr Atom)
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    val' <- (\x -> Atom <$> newForeignPtr_ x) val
+    return val'
+
+eventSelectionReadTime :: EventSelection -> IO Word32
+eventSelectionReadTime s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 48) :: IO Word32
+    return val
+
+eventSelectionReadRequestor :: EventSelection -> IO Window
+eventSelectionReadRequestor s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 56) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+
diff --git a/GI/Gdk/Structs/EventSelection.hs-boot b/GI/Gdk/Structs/EventSelection.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventSelection.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventSelection where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventSelection = EventSelection (ForeignPtr EventSelection)
diff --git a/GI/Gdk/Structs/EventSequence.hs b/GI/Gdk/Structs/EventSequence.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventSequence.hs
@@ -0,0 +1,38 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Structs.EventSequence
+    ( 
+
+-- * Exported types
+    EventSequence(..)                       ,
+    noEventSequence                         ,
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventSequence = EventSequence (ForeignPtr EventSequence)
+foreign import ccall "gdk_event_sequence_get_type" c_gdk_event_sequence_get_type :: 
+    IO GType
+
+instance BoxedObject EventSequence where
+    boxedType _ = c_gdk_event_sequence_get_type
+
+noEventSequence :: Maybe EventSequence
+noEventSequence = Nothing
+
+
diff --git a/GI/Gdk/Structs/EventSequence.hs-boot b/GI/Gdk/Structs/EventSequence.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventSequence.hs-boot
@@ -0,0 +1,11 @@
+module GI.Gdk.Structs.EventSequence where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventSequence = EventSequence (ForeignPtr EventSequence)
+instance BoxedObject EventSequence where
diff --git a/GI/Gdk/Structs/EventSetting.hs b/GI/Gdk/Structs/EventSetting.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventSetting.hs
@@ -0,0 +1,86 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Generated when a setting is modified.
+-}
+
+module GI.Gdk.Structs.EventSetting
+    ( 
+
+-- * Exported types
+    EventSetting(..)                        ,
+    noEventSetting                          ,
+
+
+ -- * Properties
+-- ** Action
+    eventSettingReadAction                  ,
+
+
+-- ** Name
+    eventSettingReadName                    ,
+
+
+-- ** SendEvent
+    eventSettingReadSendEvent               ,
+
+
+-- ** Type
+    eventSettingReadType                    ,
+
+
+-- ** Window
+    eventSettingReadWindow                  ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventSetting = EventSetting (ForeignPtr EventSetting)
+noEventSetting :: Maybe EventSetting
+noEventSetting = Nothing
+
+eventSettingReadType :: EventSetting -> IO EventType
+eventSettingReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventSettingReadWindow :: EventSetting -> IO Window
+eventSettingReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventSettingReadSendEvent :: EventSetting -> IO Int8
+eventSettingReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventSettingReadAction :: EventSetting -> IO SettingAction
+eventSettingReadAction s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventSettingReadName :: EventSetting -> IO T.Text
+eventSettingReadName s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+
diff --git a/GI/Gdk/Structs/EventSetting.hs-boot b/GI/Gdk/Structs/EventSetting.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventSetting.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventSetting where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventSetting = EventSetting (ForeignPtr EventSetting)
diff --git a/GI/Gdk/Structs/EventTouch.hs b/GI/Gdk/Structs/EventTouch.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventTouch.hs
@@ -0,0 +1,174 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Used for touch events.
+@type field will be one of %GDK_TOUCH_BEGIN, %GDK_TOUCH_UPDATE,
+%GDK_TOUCH_END or %GDK_TOUCH_CANCEL.
+
+Touch events are grouped into sequences by means of the @sequence
+field, which can also be obtained with gdk_event_get_event_sequence().
+Each sequence begins with a %GDK_TOUCH_BEGIN event, followed by
+any number of %GDK_TOUCH_UPDATE events, and ends with a %GDK_TOUCH_END
+(or %GDK_TOUCH_CANCEL) event. With multitouch devices, there may be
+several active sequences at the same time.
+-}
+
+module GI.Gdk.Structs.EventTouch
+    ( 
+
+-- * Exported types
+    EventTouch(..)                          ,
+    noEventTouch                            ,
+
+
+ -- * Properties
+-- ** Axes
+    eventTouchReadAxes                      ,
+
+
+-- ** Device
+    eventTouchReadDevice                    ,
+
+
+-- ** EmulatingPointer
+    eventTouchReadEmulatingPointer          ,
+
+
+-- ** SendEvent
+    eventTouchReadSendEvent                 ,
+
+
+-- ** Sequence
+    eventTouchReadSequence                  ,
+
+
+-- ** State
+    eventTouchReadState                     ,
+
+
+-- ** Time
+    eventTouchReadTime                      ,
+
+
+-- ** Type
+    eventTouchReadType                      ,
+
+
+-- ** Window
+    eventTouchReadWindow                    ,
+
+
+-- ** X
+    eventTouchReadX                         ,
+
+
+-- ** XRoot
+    eventTouchReadXRoot                     ,
+
+
+-- ** Y
+    eventTouchReadY                         ,
+
+
+-- ** YRoot
+    eventTouchReadYRoot                     ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventTouch = EventTouch (ForeignPtr EventTouch)
+noEventTouch :: Maybe EventTouch
+noEventTouch = Nothing
+
+eventTouchReadType :: EventTouch -> IO EventType
+eventTouchReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventTouchReadWindow :: EventTouch -> IO Window
+eventTouchReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventTouchReadSendEvent :: EventTouch -> IO Int8
+eventTouchReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventTouchReadTime :: EventTouch -> IO Word32
+eventTouchReadTime s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO Word32
+    return val
+
+eventTouchReadX :: EventTouch -> IO Double
+eventTouchReadX s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchReadY :: EventTouch -> IO Double
+eventTouchReadY s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchReadAxes :: EventTouch -> IO Double
+eventTouchReadAxes s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchReadState :: EventTouch -> IO [ModifierType]
+eventTouchReadState s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 48) :: IO CUInt
+    let val' = wordToGFlags val
+    return val'
+
+eventTouchReadSequence :: EventTouch -> IO EventSequence
+eventTouchReadSequence s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 56) :: IO (Ptr EventSequence)
+    val' <- (newBoxed EventSequence) val
+    return val'
+
+eventTouchReadEmulatingPointer :: EventTouch -> IO Bool
+eventTouchReadEmulatingPointer s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 64) :: IO CInt
+    let val' = (/= 0) val
+    return val'
+
+eventTouchReadDevice :: EventTouch -> IO Device
+eventTouchReadDevice s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 72) :: IO (Ptr Device)
+    val' <- (newObject Device) val
+    return val'
+
+eventTouchReadXRoot :: EventTouch -> IO Double
+eventTouchReadXRoot s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 80) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchReadYRoot :: EventTouch -> IO Double
+eventTouchReadYRoot s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 88) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+
diff --git a/GI/Gdk/Structs/EventTouch.hs-boot b/GI/Gdk/Structs/EventTouch.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventTouch.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventTouch where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventTouch = EventTouch (ForeignPtr EventTouch)
diff --git a/GI/Gdk/Structs/EventTouchpadPinch.hs b/GI/Gdk/Structs/EventTouchpadPinch.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventTouchpadPinch.hs
@@ -0,0 +1,184 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Generated during touchpad swipe gestures.
+-}
+
+module GI.Gdk.Structs.EventTouchpadPinch
+    ( 
+
+-- * Exported types
+    EventTouchpadPinch(..)                  ,
+    noEventTouchpadPinch                    ,
+
+
+ -- * Properties
+-- ** AngleDelta
+    eventTouchpadPinchReadAngleDelta        ,
+
+
+-- ** Dx
+    eventTouchpadPinchReadDx                ,
+
+
+-- ** Dy
+    eventTouchpadPinchReadDy                ,
+
+
+-- ** NFingers
+    eventTouchpadPinchReadNFingers          ,
+
+
+-- ** Phase
+    eventTouchpadPinchReadPhase             ,
+
+
+-- ** Scale
+    eventTouchpadPinchReadScale             ,
+
+
+-- ** SendEvent
+    eventTouchpadPinchReadSendEvent         ,
+
+
+-- ** State
+    eventTouchpadPinchReadState             ,
+
+
+-- ** Time
+    eventTouchpadPinchReadTime              ,
+
+
+-- ** Type
+    eventTouchpadPinchReadType              ,
+
+
+-- ** Window
+    eventTouchpadPinchReadWindow            ,
+
+
+-- ** X
+    eventTouchpadPinchReadX                 ,
+
+
+-- ** XRoot
+    eventTouchpadPinchReadXRoot             ,
+
+
+-- ** Y
+    eventTouchpadPinchReadY                 ,
+
+
+-- ** YRoot
+    eventTouchpadPinchReadYRoot             ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventTouchpadPinch = EventTouchpadPinch (ForeignPtr EventTouchpadPinch)
+noEventTouchpadPinch :: Maybe EventTouchpadPinch
+noEventTouchpadPinch = Nothing
+
+eventTouchpadPinchReadType :: EventTouchpadPinch -> IO EventType
+eventTouchpadPinchReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventTouchpadPinchReadWindow :: EventTouchpadPinch -> IO Window
+eventTouchpadPinchReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventTouchpadPinchReadSendEvent :: EventTouchpadPinch -> IO Int8
+eventTouchpadPinchReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventTouchpadPinchReadPhase :: EventTouchpadPinch -> IO TouchpadGesturePhase
+eventTouchpadPinchReadPhase s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventTouchpadPinchReadNFingers :: EventTouchpadPinch -> IO Int8
+eventTouchpadPinchReadNFingers s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO Int8
+    return val
+
+eventTouchpadPinchReadTime :: EventTouchpadPinch -> IO Word32
+eventTouchpadPinchReadTime s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 28) :: IO Word32
+    return val
+
+eventTouchpadPinchReadX :: EventTouchpadPinch -> IO Double
+eventTouchpadPinchReadX s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchpadPinchReadY :: EventTouchpadPinch -> IO Double
+eventTouchpadPinchReadY s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchpadPinchReadDx :: EventTouchpadPinch -> IO Double
+eventTouchpadPinchReadDx s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 48) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchpadPinchReadDy :: EventTouchpadPinch -> IO Double
+eventTouchpadPinchReadDy s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 56) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchpadPinchReadAngleDelta :: EventTouchpadPinch -> IO Double
+eventTouchpadPinchReadAngleDelta s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 64) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchpadPinchReadScale :: EventTouchpadPinch -> IO Double
+eventTouchpadPinchReadScale s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 72) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchpadPinchReadXRoot :: EventTouchpadPinch -> IO Double
+eventTouchpadPinchReadXRoot s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 80) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchpadPinchReadYRoot :: EventTouchpadPinch -> IO Double
+eventTouchpadPinchReadYRoot s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 88) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchpadPinchReadState :: EventTouchpadPinch -> IO [ModifierType]
+eventTouchpadPinchReadState s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 96) :: IO CUInt
+    let val' = wordToGFlags val
+    return val'
+
+
diff --git a/GI/Gdk/Structs/EventTouchpadPinch.hs-boot b/GI/Gdk/Structs/EventTouchpadPinch.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventTouchpadPinch.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventTouchpadPinch where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventTouchpadPinch = EventTouchpadPinch (ForeignPtr EventTouchpadPinch)
diff --git a/GI/Gdk/Structs/EventTouchpadSwipe.hs b/GI/Gdk/Structs/EventTouchpadSwipe.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventTouchpadSwipe.hs
@@ -0,0 +1,164 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Generated during touchpad swipe gestures.
+-}
+
+module GI.Gdk.Structs.EventTouchpadSwipe
+    ( 
+
+-- * Exported types
+    EventTouchpadSwipe(..)                  ,
+    noEventTouchpadSwipe                    ,
+
+
+ -- * Properties
+-- ** Dx
+    eventTouchpadSwipeReadDx                ,
+
+
+-- ** Dy
+    eventTouchpadSwipeReadDy                ,
+
+
+-- ** NFingers
+    eventTouchpadSwipeReadNFingers          ,
+
+
+-- ** Phase
+    eventTouchpadSwipeReadPhase             ,
+
+
+-- ** SendEvent
+    eventTouchpadSwipeReadSendEvent         ,
+
+
+-- ** State
+    eventTouchpadSwipeReadState             ,
+
+
+-- ** Time
+    eventTouchpadSwipeReadTime              ,
+
+
+-- ** Type
+    eventTouchpadSwipeReadType              ,
+
+
+-- ** Window
+    eventTouchpadSwipeReadWindow            ,
+
+
+-- ** X
+    eventTouchpadSwipeReadX                 ,
+
+
+-- ** XRoot
+    eventTouchpadSwipeReadXRoot             ,
+
+
+-- ** Y
+    eventTouchpadSwipeReadY                 ,
+
+
+-- ** YRoot
+    eventTouchpadSwipeReadYRoot             ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventTouchpadSwipe = EventTouchpadSwipe (ForeignPtr EventTouchpadSwipe)
+noEventTouchpadSwipe :: Maybe EventTouchpadSwipe
+noEventTouchpadSwipe = Nothing
+
+eventTouchpadSwipeReadType :: EventTouchpadSwipe -> IO EventType
+eventTouchpadSwipeReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventTouchpadSwipeReadWindow :: EventTouchpadSwipe -> IO Window
+eventTouchpadSwipeReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventTouchpadSwipeReadSendEvent :: EventTouchpadSwipe -> IO Int8
+eventTouchpadSwipeReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventTouchpadSwipeReadPhase :: EventTouchpadSwipe -> IO TouchpadGesturePhase
+eventTouchpadSwipeReadPhase s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventTouchpadSwipeReadNFingers :: EventTouchpadSwipe -> IO Int8
+eventTouchpadSwipeReadNFingers s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO Int8
+    return val
+
+eventTouchpadSwipeReadTime :: EventTouchpadSwipe -> IO Word32
+eventTouchpadSwipeReadTime s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 28) :: IO Word32
+    return val
+
+eventTouchpadSwipeReadX :: EventTouchpadSwipe -> IO Double
+eventTouchpadSwipeReadX s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchpadSwipeReadY :: EventTouchpadSwipe -> IO Double
+eventTouchpadSwipeReadY s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchpadSwipeReadDx :: EventTouchpadSwipe -> IO Double
+eventTouchpadSwipeReadDx s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 48) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchpadSwipeReadDy :: EventTouchpadSwipe -> IO Double
+eventTouchpadSwipeReadDy s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 56) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchpadSwipeReadXRoot :: EventTouchpadSwipe -> IO Double
+eventTouchpadSwipeReadXRoot s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 64) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchpadSwipeReadYRoot :: EventTouchpadSwipe -> IO Double
+eventTouchpadSwipeReadYRoot s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 72) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+eventTouchpadSwipeReadState :: EventTouchpadSwipe -> IO [ModifierType]
+eventTouchpadSwipeReadState s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 80) :: IO CUInt
+    let val' = wordToGFlags val
+    return val'
+
+
diff --git a/GI/Gdk/Structs/EventTouchpadSwipe.hs-boot b/GI/Gdk/Structs/EventTouchpadSwipe.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventTouchpadSwipe.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventTouchpadSwipe where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventTouchpadSwipe = EventTouchpadSwipe (ForeignPtr EventTouchpadSwipe)
diff --git a/GI/Gdk/Structs/EventVisibility.hs b/GI/Gdk/Structs/EventVisibility.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventVisibility.hs
@@ -0,0 +1,76 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Generated when the window visibility status has changed.
+-}
+
+module GI.Gdk.Structs.EventVisibility
+    ( 
+
+-- * Exported types
+    EventVisibility(..)                     ,
+    noEventVisibility                       ,
+
+
+ -- * Properties
+-- ** SendEvent
+    eventVisibilityReadSendEvent            ,
+
+
+-- ** State
+    eventVisibilityReadState                ,
+
+
+-- ** Type
+    eventVisibilityReadType                 ,
+
+
+-- ** Window
+    eventVisibilityReadWindow               ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventVisibility = EventVisibility (ForeignPtr EventVisibility)
+noEventVisibility :: Maybe EventVisibility
+noEventVisibility = Nothing
+
+eventVisibilityReadType :: EventVisibility -> IO EventType
+eventVisibilityReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventVisibilityReadWindow :: EventVisibility -> IO Window
+eventVisibilityReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventVisibilityReadSendEvent :: EventVisibility -> IO Int8
+eventVisibilityReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventVisibilityReadState :: EventVisibility -> IO VisibilityState
+eventVisibilityReadState s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+
diff --git a/GI/Gdk/Structs/EventVisibility.hs-boot b/GI/Gdk/Structs/EventVisibility.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventVisibility.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventVisibility where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventVisibility = EventVisibility (ForeignPtr EventVisibility)
diff --git a/GI/Gdk/Structs/EventWindowState.hs b/GI/Gdk/Structs/EventWindowState.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventWindowState.hs
@@ -0,0 +1,86 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Generated when the state of a toplevel window changes.
+-}
+
+module GI.Gdk.Structs.EventWindowState
+    ( 
+
+-- * Exported types
+    EventWindowState(..)                    ,
+    noEventWindowState                      ,
+
+
+ -- * Properties
+-- ** ChangedMask
+    eventWindowStateReadChangedMask         ,
+
+
+-- ** NewWindowState
+    eventWindowStateReadNewWindowState      ,
+
+
+-- ** SendEvent
+    eventWindowStateReadSendEvent           ,
+
+
+-- ** Type
+    eventWindowStateReadType                ,
+
+
+-- ** Window
+    eventWindowStateReadWindow              ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype EventWindowState = EventWindowState (ForeignPtr EventWindowState)
+noEventWindowState :: Maybe EventWindowState
+noEventWindowState = Nothing
+
+eventWindowStateReadType :: EventWindowState -> IO EventType
+eventWindowStateReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventWindowStateReadWindow :: EventWindowState -> IO Window
+eventWindowStateReadWindow s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window)
+    val' <- (newObject Window) val
+    return val'
+
+eventWindowStateReadSendEvent :: EventWindowState -> IO Int8
+eventWindowStateReadSendEvent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int8
+    return val
+
+eventWindowStateReadChangedMask :: EventWindowState -> IO [WindowState]
+eventWindowStateReadChangedMask s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO CUInt
+    let val' = wordToGFlags val
+    return val'
+
+eventWindowStateReadNewWindowState :: EventWindowState -> IO [WindowState]
+eventWindowStateReadNewWindowState s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO CUInt
+    let val' = wordToGFlags val
+    return val'
+
+
diff --git a/GI/Gdk/Structs/EventWindowState.hs-boot b/GI/Gdk/Structs/EventWindowState.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/EventWindowState.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.EventWindowState where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype EventWindowState = EventWindowState (ForeignPtr EventWindowState)
diff --git a/GI/Gdk/Structs/FrameTimings.hs b/GI/Gdk/Structs/FrameTimings.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/FrameTimings.hs
@@ -0,0 +1,275 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+A #GdkFrameTimings object holds timing information for a single frame
+of the application’s displays. To retrieve #GdkFrameTimings objects,
+use gdk_frame_clock_get_timings() or gdk_frame_clock_get_current_timings().
+The information in #GdkFrameTimings is useful for precise synchronization
+of video with the event or audio streams, and for measuring
+quality metrics for the application’s display, such as latency and jitter.
+-}
+
+module GI.Gdk.Structs.FrameTimings
+    ( 
+
+-- * Exported types
+    FrameTimings(..)                        ,
+    noFrameTimings                          ,
+
+
+ -- * Methods
+-- ** frameTimingsGetComplete
+    frameTimingsGetComplete                 ,
+
+
+-- ** frameTimingsGetFrameCounter
+    frameTimingsGetFrameCounter             ,
+
+
+-- ** frameTimingsGetFrameTime
+    frameTimingsGetFrameTime                ,
+
+
+-- ** frameTimingsGetPredictedPresentationTime
+    frameTimingsGetPredictedPresentationTime,
+
+
+-- ** frameTimingsGetPresentationTime
+    frameTimingsGetPresentationTime         ,
+
+
+-- ** frameTimingsGetRefreshInterval
+    frameTimingsGetRefreshInterval          ,
+
+
+-- ** frameTimingsRef
+    frameTimingsRef                         ,
+
+
+-- ** frameTimingsUnref
+    frameTimingsUnref                       ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype FrameTimings = FrameTimings (ForeignPtr FrameTimings)
+foreign import ccall "gdk_frame_timings_get_type" c_gdk_frame_timings_get_type :: 
+    IO GType
+
+instance BoxedObject FrameTimings where
+    boxedType _ = c_gdk_frame_timings_get_type
+
+noFrameTimings :: Maybe FrameTimings
+noFrameTimings = Nothing
+
+-- method FrameTimings::get_complete
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_timings_get_complete" gdk_frame_timings_get_complete :: 
+    Ptr FrameTimings ->                     -- _obj : TInterface "Gdk" "FrameTimings"
+    IO CInt
+
+
+frameTimingsGetComplete ::
+    (MonadIO m) =>
+    FrameTimings ->                         -- _obj
+    m Bool
+frameTimingsGetComplete _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_frame_timings_get_complete _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method FrameTimings::get_frame_counter
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_timings_get_frame_counter" gdk_frame_timings_get_frame_counter :: 
+    Ptr FrameTimings ->                     -- _obj : TInterface "Gdk" "FrameTimings"
+    IO Int64
+
+
+frameTimingsGetFrameCounter ::
+    (MonadIO m) =>
+    FrameTimings ->                         -- _obj
+    m Int64
+frameTimingsGetFrameCounter _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_frame_timings_get_frame_counter _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method FrameTimings::get_frame_time
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_timings_get_frame_time" gdk_frame_timings_get_frame_time :: 
+    Ptr FrameTimings ->                     -- _obj : TInterface "Gdk" "FrameTimings"
+    IO Int64
+
+
+frameTimingsGetFrameTime ::
+    (MonadIO m) =>
+    FrameTimings ->                         -- _obj
+    m Int64
+frameTimingsGetFrameTime _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_frame_timings_get_frame_time _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method FrameTimings::get_predicted_presentation_time
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_timings_get_predicted_presentation_time" gdk_frame_timings_get_predicted_presentation_time :: 
+    Ptr FrameTimings ->                     -- _obj : TInterface "Gdk" "FrameTimings"
+    IO Int64
+
+
+frameTimingsGetPredictedPresentationTime ::
+    (MonadIO m) =>
+    FrameTimings ->                         -- _obj
+    m Int64
+frameTimingsGetPredictedPresentationTime _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_frame_timings_get_predicted_presentation_time _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method FrameTimings::get_presentation_time
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_timings_get_presentation_time" gdk_frame_timings_get_presentation_time :: 
+    Ptr FrameTimings ->                     -- _obj : TInterface "Gdk" "FrameTimings"
+    IO Int64
+
+
+frameTimingsGetPresentationTime ::
+    (MonadIO m) =>
+    FrameTimings ->                         -- _obj
+    m Int64
+frameTimingsGetPresentationTime _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_frame_timings_get_presentation_time _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method FrameTimings::get_refresh_interval
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_timings_get_refresh_interval" gdk_frame_timings_get_refresh_interval :: 
+    Ptr FrameTimings ->                     -- _obj : TInterface "Gdk" "FrameTimings"
+    IO Int64
+
+
+frameTimingsGetRefreshInterval ::
+    (MonadIO m) =>
+    FrameTimings ->                         -- _obj
+    m Int64
+frameTimingsGetRefreshInterval _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_frame_timings_get_refresh_interval _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method FrameTimings::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "FrameTimings"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_timings_ref" gdk_frame_timings_ref :: 
+    Ptr FrameTimings ->                     -- _obj : TInterface "Gdk" "FrameTimings"
+    IO (Ptr FrameTimings)
+
+
+frameTimingsRef ::
+    (MonadIO m) =>
+    FrameTimings ->                         -- _obj
+    m FrameTimings
+frameTimingsRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_frame_timings_ref _obj'
+    checkUnexpectedReturnNULL "gdk_frame_timings_ref" result
+    result' <- (wrapBoxed FrameTimings) result
+    touchManagedPtr _obj
+    return result'
+
+-- method FrameTimings::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_frame_timings_unref" gdk_frame_timings_unref :: 
+    Ptr FrameTimings ->                     -- _obj : TInterface "Gdk" "FrameTimings"
+    IO ()
+
+
+frameTimingsUnref ::
+    (MonadIO m) =>
+    FrameTimings ->                         -- _obj
+    m ()
+frameTimingsUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    gdk_frame_timings_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+
diff --git a/GI/Gdk/Structs/FrameTimings.hs-boot b/GI/Gdk/Structs/FrameTimings.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/FrameTimings.hs-boot
@@ -0,0 +1,11 @@
+module GI.Gdk.Structs.FrameTimings where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype FrameTimings = FrameTimings (ForeignPtr FrameTimings)
+instance BoxedObject FrameTimings where
diff --git a/GI/Gdk/Structs/Geometry.hs b/GI/Gdk/Structs/Geometry.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/Geometry.hs
@@ -0,0 +1,193 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+The #GdkGeometry struct gives the window manager information about
+a window’s geometry constraints. Normally you would set these on
+the GTK+ level using gtk_window_set_geometry_hints(). #GtkWindow
+then sets the hints on the #GdkWindow it creates.
+
+gdk_window_set_geometry_hints() expects the hints to be fully valid already
+and simply passes them to the window manager; in contrast,
+gtk_window_set_geometry_hints() performs some interpretation. For example,
+#GtkWindow will apply the hints to the geometry widget instead of the
+toplevel window, if you set a geometry widget. Also, the
+@min_width/@min_height/@max_width/@max_height fields may be set to -1, and
+#GtkWindow will substitute the size request of the window or geometry widget.
+If the minimum size hint is not provided, #GtkWindow will use its requisition
+as the minimum size. If the minimum size is provided and a geometry widget is
+set, #GtkWindow will take the minimum size as the minimum size of the
+geometry widget rather than the entire window. The base size is treated
+similarly.
+
+The canonical use-case for gtk_window_set_geometry_hints() is to get a
+terminal widget to resize properly. Here, the terminal text area should be
+the geometry widget; #GtkWindow will then automatically set the base size to
+the size of other widgets in the terminal window, such as the menubar and
+scrollbar. Then, the @width_inc and @height_inc fields should be set to the
+size of one character in the terminal. Finally, the base size should be set
+to the size of one character. The net effect is that the minimum size of the
+terminal will have a 1x1 character terminal area, and only terminal sizes on
+the “character grid” will be allowed.
+
+Here’s an example of how the terminal example would be implemented, assuming
+a terminal area widget called “terminal” and a toplevel window “toplevel”:
+
+|[<!-- language="C" -->
+	GdkGeometry hints;
+
+	hints.base_width = terminal->char_width;
+        hints.base_height = terminal->char_height;
+        hints.min_width = terminal->char_width;
+        hints.min_height = terminal->char_height;
+        hints.width_inc = terminal->char_width;
+        hints.height_inc = terminal->char_height;
+
+ gtk_window_set_geometry_hints (GTK_WINDOW (toplevel),
+                                GTK_WIDGET (terminal),
+                                &hints,
+                                GDK_HINT_RESIZE_INC |
+                                GDK_HINT_MIN_SIZE |
+                                GDK_HINT_BASE_SIZE);
+]|
+
+The other useful fields are the @min_aspect and @max_aspect fields; these
+contain a width/height ratio as a floating point number. If a geometry widget
+is set, the aspect applies to the geometry widget rather than the entire
+window. The most common use of these hints is probably to set @min_aspect and
+@max_aspect to the same value, thus forcing the window to keep a constant
+aspect ratio.
+-}
+
+module GI.Gdk.Structs.Geometry
+    ( 
+
+-- * Exported types
+    Geometry(..)                            ,
+    noGeometry                              ,
+
+
+ -- * Properties
+-- ** BaseHeight
+    geometryReadBaseHeight                  ,
+
+
+-- ** BaseWidth
+    geometryReadBaseWidth                   ,
+
+
+-- ** HeightInc
+    geometryReadHeightInc                   ,
+
+
+-- ** MaxAspect
+    geometryReadMaxAspect                   ,
+
+
+-- ** MaxHeight
+    geometryReadMaxHeight                   ,
+
+
+-- ** MaxWidth
+    geometryReadMaxWidth                    ,
+
+
+-- ** MinAspect
+    geometryReadMinAspect                   ,
+
+
+-- ** MinHeight
+    geometryReadMinHeight                   ,
+
+
+-- ** MinWidth
+    geometryReadMinWidth                    ,
+
+
+-- ** WidthInc
+    geometryReadWidthInc                    ,
+
+
+-- ** WinGravity
+    geometryReadWinGravity                  ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype Geometry = Geometry (ForeignPtr Geometry)
+noGeometry :: Maybe Geometry
+noGeometry = Nothing
+
+geometryReadMinWidth :: Geometry -> IO Int32
+geometryReadMinWidth s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Int32
+    return val
+
+geometryReadMinHeight :: Geometry -> IO Int32
+geometryReadMinHeight s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 4) :: IO Int32
+    return val
+
+geometryReadMaxWidth :: Geometry -> IO Int32
+geometryReadMaxWidth s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO Int32
+    return val
+
+geometryReadMaxHeight :: Geometry -> IO Int32
+geometryReadMaxHeight s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 12) :: IO Int32
+    return val
+
+geometryReadBaseWidth :: Geometry -> IO Int32
+geometryReadBaseWidth s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int32
+    return val
+
+geometryReadBaseHeight :: Geometry -> IO Int32
+geometryReadBaseHeight s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO Int32
+    return val
+
+geometryReadWidthInc :: Geometry -> IO Int32
+geometryReadWidthInc s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO Int32
+    return val
+
+geometryReadHeightInc :: Geometry -> IO Int32
+geometryReadHeightInc s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 28) :: IO Int32
+    return val
+
+geometryReadMinAspect :: Geometry -> IO Double
+geometryReadMinAspect s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+geometryReadMaxAspect :: Geometry -> IO Double
+geometryReadMaxAspect s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+geometryReadWinGravity :: Geometry -> IO Gravity
+geometryReadWinGravity s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 48) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+
diff --git a/GI/Gdk/Structs/Geometry.hs-boot b/GI/Gdk/Structs/Geometry.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/Geometry.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.Geometry where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype Geometry = Geometry (ForeignPtr Geometry)
diff --git a/GI/Gdk/Structs/KeymapKey.hs b/GI/Gdk/Structs/KeymapKey.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/KeymapKey.hs
@@ -0,0 +1,64 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+A #GdkKeymapKey is a hardware key that can be mapped to a keyval.
+-}
+
+module GI.Gdk.Structs.KeymapKey
+    ( 
+
+-- * Exported types
+    KeymapKey(..)                           ,
+    noKeymapKey                             ,
+
+
+ -- * Properties
+-- ** Group
+    keymapKeyReadGroup                      ,
+
+
+-- ** Keycode
+    keymapKeyReadKeycode                    ,
+
+
+-- ** Level
+    keymapKeyReadLevel                      ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype KeymapKey = KeymapKey (ForeignPtr KeymapKey)
+noKeymapKey :: Maybe KeymapKey
+noKeymapKey = Nothing
+
+keymapKeyReadKeycode :: KeymapKey -> IO Word32
+keymapKeyReadKeycode s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Word32
+    return val
+
+keymapKeyReadGroup :: KeymapKey -> IO Int32
+keymapKeyReadGroup s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 4) :: IO Int32
+    return val
+
+keymapKeyReadLevel :: KeymapKey -> IO Int32
+keymapKeyReadLevel s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO Int32
+    return val
+
+
diff --git a/GI/Gdk/Structs/KeymapKey.hs-boot b/GI/Gdk/Structs/KeymapKey.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/KeymapKey.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.KeymapKey where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype KeymapKey = KeymapKey (ForeignPtr KeymapKey)
diff --git a/GI/Gdk/Structs/Point.hs b/GI/Gdk/Structs/Point.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/Point.hs
@@ -0,0 +1,55 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Defines the x and y coordinates of a point.
+-}
+
+module GI.Gdk.Structs.Point
+    ( 
+
+-- * Exported types
+    Point(..)                               ,
+    noPoint                                 ,
+
+
+ -- * Properties
+-- ** X
+    pointReadX                              ,
+
+
+-- ** Y
+    pointReadY                              ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype Point = Point (ForeignPtr Point)
+noPoint :: Maybe Point
+noPoint = Nothing
+
+pointReadX :: Point -> IO Int32
+pointReadX s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Int32
+    return val
+
+pointReadY :: Point -> IO Int32
+pointReadY s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 4) :: IO Int32
+    return val
+
+
diff --git a/GI/Gdk/Structs/Point.hs-boot b/GI/Gdk/Structs/Point.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/Point.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.Point where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype Point = Point (ForeignPtr Point)
diff --git a/GI/Gdk/Structs/RGBA.hs b/GI/Gdk/Structs/RGBA.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/RGBA.hs
@@ -0,0 +1,270 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+A #GdkRGBA is used to represent a (possibly translucent)
+color, in a way that is compatible with cairos notion of color.
+-}
+
+module GI.Gdk.Structs.RGBA
+    ( 
+
+-- * Exported types
+    RGBA(..)                                ,
+    noRGBA                                  ,
+
+
+ -- * Methods
+-- ** rGBACopy
+    rGBACopy                                ,
+
+
+-- ** rGBAEqual
+    rGBAEqual                               ,
+
+
+-- ** rGBAFree
+    rGBAFree                                ,
+
+
+-- ** rGBAHash
+    rGBAHash                                ,
+
+
+-- ** rGBAParse
+    rGBAParse                               ,
+
+
+-- ** rGBAToString
+    rGBAToString                            ,
+
+
+
+
+ -- * Properties
+-- ** Alpha
+    rGBAReadAlpha                           ,
+
+
+-- ** Blue
+    rGBAReadBlue                            ,
+
+
+-- ** Green
+    rGBAReadGreen                           ,
+
+
+-- ** Red
+    rGBAReadRed                             ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype RGBA = RGBA (ForeignPtr RGBA)
+foreign import ccall "gdk_rgba_get_type" c_gdk_rgba_get_type :: 
+    IO GType
+
+instance BoxedObject RGBA where
+    boxedType _ = c_gdk_rgba_get_type
+
+noRGBA :: Maybe RGBA
+noRGBA = Nothing
+
+rGBAReadRed :: RGBA -> IO Double
+rGBAReadRed s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+rGBAReadGreen :: RGBA -> IO Double
+rGBAReadGreen s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+rGBAReadBlue :: RGBA -> IO Double
+rGBAReadBlue s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+rGBAReadAlpha :: RGBA -> IO Double
+rGBAReadAlpha s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+-- method RGBA::copy
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "RGBA"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_rgba_copy" gdk_rgba_copy :: 
+    Ptr RGBA ->                             -- _obj : TInterface "Gdk" "RGBA"
+    IO (Ptr RGBA)
+
+
+rGBACopy ::
+    (MonadIO m) =>
+    RGBA ->                                 -- _obj
+    m RGBA
+rGBACopy _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_rgba_copy _obj'
+    checkUnexpectedReturnNULL "gdk_rgba_copy" result
+    result' <- (wrapBoxed RGBA) result
+    touchManagedPtr _obj
+    return result'
+
+-- method RGBA::equal
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "p2", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "p2", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_rgba_equal" gdk_rgba_equal :: 
+    Ptr RGBA ->                             -- _obj : TInterface "Gdk" "RGBA"
+    Ptr RGBA ->                             -- p2 : TInterface "Gdk" "RGBA"
+    IO CInt
+
+
+rGBAEqual ::
+    (MonadIO m) =>
+    RGBA ->                                 -- _obj
+    RGBA ->                                 -- p2
+    m Bool
+rGBAEqual _obj p2 = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let p2' = unsafeManagedPtrGetPtr p2
+    result <- gdk_rgba_equal _obj' p2'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    touchManagedPtr p2
+    return result'
+
+-- method RGBA::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_rgba_free" gdk_rgba_free :: 
+    Ptr RGBA ->                             -- _obj : TInterface "Gdk" "RGBA"
+    IO ()
+
+
+rGBAFree ::
+    (MonadIO m) =>
+    RGBA ->                                 -- _obj
+    m ()
+rGBAFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    gdk_rgba_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method RGBA::hash
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_rgba_hash" gdk_rgba_hash :: 
+    Ptr RGBA ->                             -- _obj : TInterface "Gdk" "RGBA"
+    IO Word32
+
+
+rGBAHash ::
+    (MonadIO m) =>
+    RGBA ->                                 -- _obj
+    m Word32
+rGBAHash _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_rgba_hash _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method RGBA::parse
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_rgba_parse" gdk_rgba_parse :: 
+    Ptr RGBA ->                             -- _obj : TInterface "Gdk" "RGBA"
+    CString ->                              -- spec : TBasicType TUTF8
+    IO CInt
+
+
+rGBAParse ::
+    (MonadIO m) =>
+    RGBA ->                                 -- _obj
+    T.Text ->                               -- spec
+    m Bool
+rGBAParse _obj spec = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    spec' <- textToCString spec
+    result <- gdk_rgba_parse _obj' spec'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    freeMem spec'
+    return result'
+
+-- method RGBA::to_string
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_rgba_to_string" gdk_rgba_to_string :: 
+    Ptr RGBA ->                             -- _obj : TInterface "Gdk" "RGBA"
+    IO CString
+
+
+rGBAToString ::
+    (MonadIO m) =>
+    RGBA ->                                 -- _obj
+    m T.Text
+rGBAToString _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_rgba_to_string _obj'
+    checkUnexpectedReturnNULL "gdk_rgba_to_string" result
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    return result'
+
+
diff --git a/GI/Gdk/Structs/RGBA.hs-boot b/GI/Gdk/Structs/RGBA.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/RGBA.hs-boot
@@ -0,0 +1,11 @@
+module GI.Gdk.Structs.RGBA where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype RGBA = RGBA (ForeignPtr RGBA)
+instance BoxedObject RGBA where
diff --git a/GI/Gdk/Structs/Rectangle.hs b/GI/Gdk/Structs/Rectangle.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/Rectangle.hs
@@ -0,0 +1,154 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Defines the position and size of a rectangle. It is identical to
+#cairo_rectangle_int_t.
+-}
+
+module GI.Gdk.Structs.Rectangle
+    ( 
+
+-- * Exported types
+    Rectangle(..)                           ,
+    noRectangle                             ,
+
+
+ -- * Methods
+-- ** rectangleIntersect
+    rectangleIntersect                      ,
+
+
+-- ** rectangleUnion
+    rectangleUnion                          ,
+
+
+
+
+ -- * Properties
+-- ** Height
+    rectangleReadHeight                     ,
+
+
+-- ** Width
+    rectangleReadWidth                      ,
+
+
+-- ** X
+    rectangleReadX                          ,
+
+
+-- ** Y
+    rectangleReadY                          ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype Rectangle = Rectangle (ForeignPtr Rectangle)
+foreign import ccall "gdk_rectangle_get_type" c_gdk_rectangle_get_type :: 
+    IO GType
+
+instance BoxedObject Rectangle where
+    boxedType _ = c_gdk_rectangle_get_type
+
+noRectangle :: Maybe Rectangle
+noRectangle = Nothing
+
+rectangleReadX :: Rectangle -> IO Int32
+rectangleReadX s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Int32
+    return val
+
+rectangleReadY :: Rectangle -> IO Int32
+rectangleReadY s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 4) :: IO Int32
+    return val
+
+rectangleReadWidth :: Rectangle -> IO Int32
+rectangleReadWidth s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO Int32
+    return val
+
+rectangleReadHeight :: Rectangle -> IO Int32
+rectangleReadHeight s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 12) :: IO Int32
+    return val
+
+-- method Rectangle::intersect
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src2", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src2", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_rectangle_intersect" gdk_rectangle_intersect :: 
+    Ptr Rectangle ->                        -- _obj : TInterface "Gdk" "Rectangle"
+    Ptr Rectangle ->                        -- src2 : TInterface "Gdk" "Rectangle"
+    Ptr Rectangle ->                        -- dest : TInterface "Gdk" "Rectangle"
+    IO CInt
+
+
+rectangleIntersect ::
+    (MonadIO m) =>
+    Rectangle ->                            -- _obj
+    Rectangle ->                            -- src2
+    m (Bool,Rectangle)
+rectangleIntersect _obj src2 = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let src2' = unsafeManagedPtrGetPtr src2
+    dest <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
+    result <- gdk_rectangle_intersect _obj' src2' dest
+    let result' = (/= 0) result
+    dest' <- (wrapBoxed Rectangle) dest
+    touchManagedPtr _obj
+    touchManagedPtr src2
+    return (result', dest')
+
+-- method Rectangle::union
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src2", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src2", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_rectangle_union" gdk_rectangle_union :: 
+    Ptr Rectangle ->                        -- _obj : TInterface "Gdk" "Rectangle"
+    Ptr Rectangle ->                        -- src2 : TInterface "Gdk" "Rectangle"
+    Ptr Rectangle ->                        -- dest : TInterface "Gdk" "Rectangle"
+    IO ()
+
+
+rectangleUnion ::
+    (MonadIO m) =>
+    Rectangle ->                            -- _obj
+    Rectangle ->                            -- src2
+    m (Rectangle)
+rectangleUnion _obj src2 = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let src2' = unsafeManagedPtrGetPtr src2
+    dest <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
+    gdk_rectangle_union _obj' src2' dest
+    dest' <- (wrapBoxed Rectangle) dest
+    touchManagedPtr _obj
+    touchManagedPtr src2
+    return dest'
+
+
diff --git a/GI/Gdk/Structs/Rectangle.hs-boot b/GI/Gdk/Structs/Rectangle.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/Rectangle.hs-boot
@@ -0,0 +1,11 @@
+module GI.Gdk.Structs.Rectangle where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype Rectangle = Rectangle (ForeignPtr Rectangle)
+instance BoxedObject Rectangle where
diff --git a/GI/Gdk/Structs/TimeCoord.hs b/GI/Gdk/Structs/TimeCoord.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/TimeCoord.hs
@@ -0,0 +1,48 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+A #GdkTimeCoord stores a single event in a motion history.
+-}
+
+module GI.Gdk.Structs.TimeCoord
+    ( 
+
+-- * Exported types
+    TimeCoord(..)                           ,
+    noTimeCoord                             ,
+
+
+ -- * Properties
+-- ** Time
+    timeCoordReadTime                       ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype TimeCoord = TimeCoord (ForeignPtr TimeCoord)
+noTimeCoord :: Maybe TimeCoord
+noTimeCoord = Nothing
+
+timeCoordReadTime :: TimeCoord -> IO Word32
+timeCoordReadTime s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Word32
+    return val
+
+-- XXX Skipped getter for "TimeCoord:axes" :: Not implemented: "Don't know how to unpack C array of type TCArray False 128 (-1) (TBasicType TDouble)"
+
+
diff --git a/GI/Gdk/Structs/TimeCoord.hs-boot b/GI/Gdk/Structs/TimeCoord.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/TimeCoord.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.TimeCoord where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype TimeCoord = TimeCoord (ForeignPtr TimeCoord)
diff --git a/GI/Gdk/Structs/WindowAttr.hs b/GI/Gdk/Structs/WindowAttr.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/WindowAttr.hs
@@ -0,0 +1,172 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+Attributes to use for a newly-created window.
+-}
+
+module GI.Gdk.Structs.WindowAttr
+    ( 
+
+-- * Exported types
+    WindowAttr(..)                          ,
+    noWindowAttr                            ,
+
+
+ -- * Properties
+-- ** Cursor
+    windowAttrReadCursor                    ,
+
+
+-- ** EventMask
+    windowAttrReadEventMask                 ,
+
+
+-- ** Height
+    windowAttrReadHeight                    ,
+
+
+-- ** OverrideRedirect
+    windowAttrReadOverrideRedirect          ,
+
+
+-- ** Title
+    windowAttrReadTitle                     ,
+
+
+-- ** TypeHint
+    windowAttrReadTypeHint                  ,
+
+
+-- ** Visual
+    windowAttrReadVisual                    ,
+
+
+-- ** Wclass
+    windowAttrReadWclass                    ,
+
+
+-- ** Width
+    windowAttrReadWidth                     ,
+
+
+-- ** WindowType
+    windowAttrReadWindowType                ,
+
+
+-- ** WmclassClass
+    windowAttrReadWmclassClass              ,
+
+
+-- ** WmclassName
+    windowAttrReadWmclassName               ,
+
+
+-- ** X
+    windowAttrReadX                         ,
+
+
+-- ** Y
+    windowAttrReadY                         ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype WindowAttr = WindowAttr (ForeignPtr WindowAttr)
+noWindowAttr :: Maybe WindowAttr
+noWindowAttr = Nothing
+
+windowAttrReadTitle :: WindowAttr -> IO T.Text
+windowAttrReadTitle s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+windowAttrReadEventMask :: WindowAttr -> IO Int32
+windowAttrReadEventMask s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO Int32
+    return val
+
+windowAttrReadX :: WindowAttr -> IO Int32
+windowAttrReadX s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 12) :: IO Int32
+    return val
+
+windowAttrReadY :: WindowAttr -> IO Int32
+windowAttrReadY s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Int32
+    return val
+
+windowAttrReadWidth :: WindowAttr -> IO Int32
+windowAttrReadWidth s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO Int32
+    return val
+
+windowAttrReadHeight :: WindowAttr -> IO Int32
+windowAttrReadHeight s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO Int32
+    return val
+
+windowAttrReadWclass :: WindowAttr -> IO WindowWindowClass
+windowAttrReadWclass s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 28) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+windowAttrReadVisual :: WindowAttr -> IO Visual
+windowAttrReadVisual s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO (Ptr Visual)
+    val' <- (newObject Visual) val
+    return val'
+
+windowAttrReadWindowType :: WindowAttr -> IO WindowType
+windowAttrReadWindowType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+windowAttrReadCursor :: WindowAttr -> IO Cursor
+windowAttrReadCursor s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 48) :: IO (Ptr Cursor)
+    val' <- (newObject Cursor) val
+    return val'
+
+windowAttrReadWmclassName :: WindowAttr -> IO T.Text
+windowAttrReadWmclassName s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 56) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+windowAttrReadWmclassClass :: WindowAttr -> IO T.Text
+windowAttrReadWmclassClass s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 64) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+windowAttrReadOverrideRedirect :: WindowAttr -> IO Bool
+windowAttrReadOverrideRedirect s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 72) :: IO CInt
+    let val' = (/= 0) val
+    return val'
+
+windowAttrReadTypeHint :: WindowAttr -> IO WindowTypeHint
+windowAttrReadTypeHint s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 76) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+
diff --git a/GI/Gdk/Structs/WindowAttr.hs-boot b/GI/Gdk/Structs/WindowAttr.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/WindowAttr.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.WindowAttr where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype WindowAttr = WindowAttr (ForeignPtr WindowAttr)
diff --git a/GI/Gdk/Structs/WindowRedirect.hs b/GI/Gdk/Structs/WindowRedirect.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/WindowRedirect.hs
@@ -0,0 +1,32 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Structs.WindowRedirect
+    ( 
+
+-- * Exported types
+    WindowRedirect(..)                      ,
+    noWindowRedirect                        ,
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype WindowRedirect = WindowRedirect (ForeignPtr WindowRedirect)
+noWindowRedirect :: Maybe WindowRedirect
+noWindowRedirect = Nothing
+
+
diff --git a/GI/Gdk/Structs/WindowRedirect.hs-boot b/GI/Gdk/Structs/WindowRedirect.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Structs/WindowRedirect.hs-boot
@@ -0,0 +1,10 @@
+module GI.Gdk.Structs.WindowRedirect where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype WindowRedirect = WindowRedirect (ForeignPtr WindowRedirect)
diff --git a/GI/Gdk/Types.hs b/GI/Gdk/Types.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Types.hs
@@ -0,0 +1,106 @@
+module GI.Gdk.Types
+    (     module GI.Gdk.Objects.AppLaunchContext  ,
+    module GI.Gdk.Objects.Cursor            ,
+    module GI.Gdk.Objects.Device            ,
+    module GI.Gdk.Objects.DeviceManager     ,
+    module GI.Gdk.Objects.Display           ,
+    module GI.Gdk.Objects.DisplayManager    ,
+    module GI.Gdk.Objects.DragContext       ,
+    module GI.Gdk.Objects.FrameClock        ,
+    module GI.Gdk.Objects.GLContext         ,
+    module GI.Gdk.Objects.Keymap            ,
+    module GI.Gdk.Objects.Screen            ,
+    module GI.Gdk.Objects.Visual            ,
+    module GI.Gdk.Objects.Window            ,
+    module GI.Gdk.Structs.Atom              ,
+    module GI.Gdk.Structs.Color             ,
+    module GI.Gdk.Structs.EventAny          ,
+    module GI.Gdk.Structs.EventButton       ,
+    module GI.Gdk.Structs.EventConfigure    ,
+    module GI.Gdk.Structs.EventCrossing     ,
+    module GI.Gdk.Structs.EventDND          ,
+    module GI.Gdk.Structs.EventExpose       ,
+    module GI.Gdk.Structs.EventFocus        ,
+    module GI.Gdk.Structs.EventGrabBroken   ,
+    module GI.Gdk.Structs.EventKey          ,
+    module GI.Gdk.Structs.EventMotion       ,
+    module GI.Gdk.Structs.EventOwnerChange  ,
+    module GI.Gdk.Structs.EventProperty     ,
+    module GI.Gdk.Structs.EventProximity    ,
+    module GI.Gdk.Structs.EventScroll       ,
+    module GI.Gdk.Structs.EventSelection    ,
+    module GI.Gdk.Structs.EventSequence     ,
+    module GI.Gdk.Structs.EventSetting      ,
+    module GI.Gdk.Structs.EventTouch        ,
+    module GI.Gdk.Structs.EventTouchpadPinch,
+    module GI.Gdk.Structs.EventTouchpadSwipe,
+    module GI.Gdk.Structs.EventVisibility   ,
+    module GI.Gdk.Structs.EventWindowState  ,
+    module GI.Gdk.Structs.FrameTimings      ,
+    module GI.Gdk.Structs.Geometry          ,
+    module GI.Gdk.Structs.KeymapKey         ,
+    module GI.Gdk.Structs.Point             ,
+    module GI.Gdk.Structs.RGBA              ,
+    module GI.Gdk.Structs.Rectangle         ,
+    module GI.Gdk.Structs.TimeCoord         ,
+    module GI.Gdk.Structs.WindowAttr        ,
+    module GI.Gdk.Structs.WindowRedirect    ,
+    module GI.Gdk.Unions.Event              ,
+    module GI.Gdk.Enums                     ,
+    module GI.Gdk.Flags                     ,
+
+
+    ) where
+
+
+import {-# SOURCE #-} GI.Gdk.Objects.AppLaunchContext
+import {-# SOURCE #-} GI.Gdk.Objects.Cursor
+import {-# SOURCE #-} GI.Gdk.Objects.Device
+import {-# SOURCE #-} GI.Gdk.Objects.DeviceManager
+import {-# SOURCE #-} GI.Gdk.Objects.Display
+import {-# SOURCE #-} GI.Gdk.Objects.DisplayManager
+import {-# SOURCE #-} GI.Gdk.Objects.DragContext
+import {-# SOURCE #-} GI.Gdk.Objects.FrameClock
+import {-# SOURCE #-} GI.Gdk.Objects.GLContext
+import {-# SOURCE #-} GI.Gdk.Objects.Keymap
+import {-# SOURCE #-} GI.Gdk.Objects.Screen
+import {-# SOURCE #-} GI.Gdk.Objects.Visual
+import {-# SOURCE #-} GI.Gdk.Objects.Window
+import {-# SOURCE #-} GI.Gdk.Structs.Atom
+import {-# SOURCE #-} GI.Gdk.Structs.Color
+import {-# SOURCE #-} GI.Gdk.Structs.EventAny
+import {-# SOURCE #-} GI.Gdk.Structs.EventButton
+import {-# SOURCE #-} GI.Gdk.Structs.EventConfigure
+import {-# SOURCE #-} GI.Gdk.Structs.EventCrossing
+import {-# SOURCE #-} GI.Gdk.Structs.EventDND
+import {-# SOURCE #-} GI.Gdk.Structs.EventExpose
+import {-# SOURCE #-} GI.Gdk.Structs.EventFocus
+import {-# SOURCE #-} GI.Gdk.Structs.EventGrabBroken
+import {-# SOURCE #-} GI.Gdk.Structs.EventKey
+import {-# SOURCE #-} GI.Gdk.Structs.EventMotion
+import {-# SOURCE #-} GI.Gdk.Structs.EventOwnerChange
+import {-# SOURCE #-} GI.Gdk.Structs.EventProperty
+import {-# SOURCE #-} GI.Gdk.Structs.EventProximity
+import {-# SOURCE #-} GI.Gdk.Structs.EventScroll
+import {-# SOURCE #-} GI.Gdk.Structs.EventSelection
+import {-# SOURCE #-} GI.Gdk.Structs.EventSequence
+import {-# SOURCE #-} GI.Gdk.Structs.EventSetting
+import {-# SOURCE #-} GI.Gdk.Structs.EventTouch
+import {-# SOURCE #-} GI.Gdk.Structs.EventTouchpadPinch
+import {-# SOURCE #-} GI.Gdk.Structs.EventTouchpadSwipe
+import {-# SOURCE #-} GI.Gdk.Structs.EventVisibility
+import {-# SOURCE #-} GI.Gdk.Structs.EventWindowState
+import {-# SOURCE #-} GI.Gdk.Structs.FrameTimings
+import {-# SOURCE #-} GI.Gdk.Structs.Geometry
+import {-# SOURCE #-} GI.Gdk.Structs.KeymapKey
+import {-# SOURCE #-} GI.Gdk.Structs.Point
+import {-# SOURCE #-} GI.Gdk.Structs.RGBA
+import {-# SOURCE #-} GI.Gdk.Structs.Rectangle
+import {-# SOURCE #-} GI.Gdk.Structs.TimeCoord
+import {-# SOURCE #-} GI.Gdk.Structs.WindowAttr
+import {-# SOURCE #-} GI.Gdk.Structs.WindowRedirect
+import {-# SOURCE #-} GI.Gdk.Unions.Event
+
+import GI.Gdk.Enums
+import GI.Gdk.Flags
+
diff --git a/GI/Gdk/Unions.hs b/GI/Gdk/Unions.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Unions.hs
@@ -0,0 +1,26 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Unions
+    (     module GI.Gdk.Unions.Event              ,
+
+
+    ) where
+
+import GI.Gdk.Unions.Event
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+
diff --git a/GI/Gdk/Unions/Event.hs b/GI/Gdk/Unions/Event.hs
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Unions/Event.hs
@@ -0,0 +1,1065 @@
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.Gdk.Unions.Event
+    ( 
+
+-- * Exported types
+    Event(..)                               ,
+    noEvent                                 ,
+
+
+ -- * Methods
+-- ** eventCopy
+    eventCopy                               ,
+
+
+-- ** eventFree
+    eventFree                               ,
+
+
+-- ** eventGetAxis
+    eventGetAxis                            ,
+
+
+-- ** eventGetButton
+    eventGetButton                          ,
+
+
+-- ** eventGetClickCount
+    eventGetClickCount                      ,
+
+
+-- ** eventGetCoords
+    eventGetCoords                          ,
+
+
+-- ** eventGetDevice
+    eventGetDevice                          ,
+
+
+-- ** eventGetEventSequence
+    eventGetEventSequence                   ,
+
+
+-- ** eventGetEventType
+    eventGetEventType                       ,
+
+
+-- ** eventGetKeycode
+    eventGetKeycode                         ,
+
+
+-- ** eventGetKeyval
+    eventGetKeyval                          ,
+
+
+-- ** eventGetRootCoords
+    eventGetRootCoords                      ,
+
+
+-- ** eventGetScreen
+    eventGetScreen                          ,
+
+
+-- ** eventGetScrollDeltas
+    eventGetScrollDeltas                    ,
+
+
+-- ** eventGetScrollDirection
+    eventGetScrollDirection                 ,
+
+
+-- ** eventGetSourceDevice
+    eventGetSourceDevice                    ,
+
+
+-- ** eventGetState
+    eventGetState                           ,
+
+
+-- ** eventGetTime
+    eventGetTime                            ,
+
+
+-- ** eventGetWindow
+    eventGetWindow                          ,
+
+
+-- ** eventNew
+    eventNew                                ,
+
+
+-- ** eventPut
+    eventPut                                ,
+
+
+-- ** eventSetDevice
+    eventSetDevice                          ,
+
+
+-- ** eventSetScreen
+    eventSetScreen                          ,
+
+
+-- ** eventSetSourceDevice
+    eventSetSourceDevice                    ,
+
+
+-- ** eventTriggersContextMenu
+    eventTriggersContextMenu                ,
+
+
+
+
+ -- * Properties
+-- ** Any
+    eventReadAny                            ,
+
+
+-- ** Button
+    eventReadButton                         ,
+
+
+-- ** Configure
+    eventReadConfigure                      ,
+
+
+-- ** Crossing
+    eventReadCrossing                       ,
+
+
+-- ** Dnd
+    eventReadDnd                            ,
+
+
+-- ** Expose
+    eventReadExpose                         ,
+
+
+-- ** FocusChange
+    eventReadFocusChange                    ,
+
+
+-- ** GrabBroken
+    eventReadGrabBroken                     ,
+
+
+-- ** Key
+    eventReadKey                            ,
+
+
+-- ** Motion
+    eventReadMotion                         ,
+
+
+-- ** OwnerChange
+    eventReadOwnerChange                    ,
+
+
+-- ** Property
+    eventReadProperty                       ,
+
+
+-- ** Proximity
+    eventReadProximity                      ,
+
+
+-- ** Scroll
+    eventReadScroll                         ,
+
+
+-- ** Selection
+    eventReadSelection                      ,
+
+
+-- ** Setting
+    eventReadSetting                        ,
+
+
+-- ** Touch
+    eventReadTouch                          ,
+
+
+-- ** TouchpadPinch
+    eventReadTouchpadPinch                  ,
+
+
+-- ** TouchpadSwipe
+    eventReadTouchpadSwipe                  ,
+
+
+-- ** Type
+    eventReadType                           ,
+
+
+-- ** Visibility
+    eventReadVisibility                     ,
+
+
+-- ** WindowState
+    eventReadWindowState                    ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.Gdk.Types
+import GI.Gdk.Callbacks
+
+newtype Event = Event (ForeignPtr Event)
+foreign import ccall "gdk_event_get_type" c_gdk_event_get_type :: 
+    IO GType
+
+instance BoxedObject Event where
+    boxedType _ = c_gdk_event_get_type
+
+noEvent :: Maybe Event
+noEvent = Nothing
+
+eventReadType :: Event -> IO EventType
+eventReadType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+eventReadAny :: Event -> IO EventAny
+eventReadAny s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventAny)
+    val' <- (newPtr 24 EventAny) val
+    return val'
+
+eventReadExpose :: Event -> IO EventExpose
+eventReadExpose s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventExpose)
+    val' <- (newPtr 56 EventExpose) val
+    return val'
+
+eventReadVisibility :: Event -> IO EventVisibility
+eventReadVisibility s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventVisibility)
+    val' <- (newPtr 24 EventVisibility) val
+    return val'
+
+eventReadMotion :: Event -> IO EventMotion
+eventReadMotion s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventMotion)
+    val' <- (newPtr 80 EventMotion) val
+    return val'
+
+eventReadButton :: Event -> IO EventButton
+eventReadButton s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventButton)
+    val' <- (newPtr 80 EventButton) val
+    return val'
+
+eventReadTouch :: Event -> IO EventTouch
+eventReadTouch s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventTouch)
+    val' <- (newPtr 96 EventTouch) val
+    return val'
+
+eventReadScroll :: Event -> IO EventScroll
+eventReadScroll s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventScroll)
+    val' <- (newPtr 88 EventScroll) val
+    return val'
+
+eventReadKey :: Event -> IO EventKey
+eventReadKey s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventKey)
+    val' <- (newPtr 56 EventKey) val
+    return val'
+
+eventReadCrossing :: Event -> IO EventCrossing
+eventReadCrossing s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventCrossing)
+    val' <- (newPtr 88 EventCrossing) val
+    return val'
+
+eventReadFocusChange :: Event -> IO EventFocus
+eventReadFocusChange s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventFocus)
+    val' <- (newPtr 24 EventFocus) val
+    return val'
+
+eventReadConfigure :: Event -> IO EventConfigure
+eventReadConfigure s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventConfigure)
+    val' <- (newPtr 40 EventConfigure) val
+    return val'
+
+eventReadProperty :: Event -> IO EventProperty
+eventReadProperty s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventProperty)
+    val' <- (newPtr 40 EventProperty) val
+    return val'
+
+eventReadSelection :: Event -> IO EventSelection
+eventReadSelection s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventSelection)
+    val' <- (newPtr 64 EventSelection) val
+    return val'
+
+eventReadOwnerChange :: Event -> IO EventOwnerChange
+eventReadOwnerChange s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventOwnerChange)
+    val' <- (newPtr 56 EventOwnerChange) val
+    return val'
+
+eventReadProximity :: Event -> IO EventProximity
+eventReadProximity s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventProximity)
+    val' <- (newPtr 32 EventProximity) val
+    return val'
+
+eventReadDnd :: Event -> IO EventDND
+eventReadDnd s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventDND)
+    val' <- (newPtr 40 EventDND) val
+    return val'
+
+eventReadWindowState :: Event -> IO EventWindowState
+eventReadWindowState s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventWindowState)
+    val' <- (newPtr 32 EventWindowState) val
+    return val'
+
+eventReadSetting :: Event -> IO EventSetting
+eventReadSetting s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventSetting)
+    val' <- (newPtr 32 EventSetting) val
+    return val'
+
+eventReadGrabBroken :: Event -> IO EventGrabBroken
+eventReadGrabBroken s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventGrabBroken)
+    val' <- (newPtr 40 EventGrabBroken) val
+    return val'
+
+eventReadTouchpadSwipe :: Event -> IO EventTouchpadSwipe
+eventReadTouchpadSwipe s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventTouchpadSwipe)
+    val' <- (newPtr 88 EventTouchpadSwipe) val
+    return val'
+
+eventReadTouchpadPinch :: Event -> IO EventTouchpadPinch
+eventReadTouchpadPinch s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EventTouchpadPinch)
+    val' <- (newPtr 104 EventTouchpadPinch) val
+    return val'
+
+-- method Event::new
+-- method type : Constructor
+-- Args : [Arg {argName = "type", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "type", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Event"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_new" gdk_event_new :: 
+    CUInt ->                                -- type : TInterface "Gdk" "EventType"
+    IO (Ptr Event)
+
+
+eventNew ::
+    (MonadIO m) =>
+    EventType ->                            -- type
+    m Event
+eventNew type_ = liftIO $ do
+    let type_' = (fromIntegral . fromEnum) type_
+    result <- gdk_event_new type_'
+    checkUnexpectedReturnNULL "gdk_event_new" result
+    result' <- (wrapBoxed Event) result
+    return result'
+
+-- method Event::copy
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Event"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_copy" gdk_event_copy :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    IO (Ptr Event)
+
+
+eventCopy ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m Event
+eventCopy _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_event_copy _obj'
+    checkUnexpectedReturnNULL "gdk_event_copy" result
+    result' <- (wrapBoxed Event) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Event::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_free" gdk_event_free :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    IO ()
+
+
+eventFree ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m ()
+eventFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    gdk_event_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Event::get_axis
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "axis_use", argType = TInterface "Gdk" "AxisUse", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "axis_use", argType = TInterface "Gdk" "AxisUse", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_axis" gdk_event_get_axis :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    CUInt ->                                -- axis_use : TInterface "Gdk" "AxisUse"
+    Ptr CDouble ->                          -- value : TBasicType TDouble
+    IO CInt
+
+
+eventGetAxis ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    AxisUse ->                              -- axis_use
+    m (Bool,Double)
+eventGetAxis _obj axis_use = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let axis_use' = (fromIntegral . fromEnum) axis_use
+    value <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_event_get_axis _obj' axis_use' value
+    let result' = (/= 0) result
+    value' <- peek value
+    let value'' = realToFrac value'
+    touchManagedPtr _obj
+    freeMem value
+    return (result', value'')
+
+-- method Event::get_button
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_button" gdk_event_get_button :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    Ptr Word32 ->                           -- button : TBasicType TUInt32
+    IO CInt
+
+
+eventGetButton ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m (Bool,Word32)
+eventGetButton _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    button <- allocMem :: IO (Ptr Word32)
+    result <- gdk_event_get_button _obj' button
+    let result' = (/= 0) result
+    button' <- peek button
+    touchManagedPtr _obj
+    freeMem button
+    return (result', button')
+
+-- method Event::get_click_count
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "click_count", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_click_count" gdk_event_get_click_count :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    Ptr Word32 ->                           -- click_count : TBasicType TUInt32
+    IO CInt
+
+
+eventGetClickCount ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m (Bool,Word32)
+eventGetClickCount _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    click_count <- allocMem :: IO (Ptr Word32)
+    result <- gdk_event_get_click_count _obj' click_count
+    let result' = (/= 0) result
+    click_count' <- peek click_count
+    touchManagedPtr _obj
+    freeMem click_count
+    return (result', click_count')
+
+-- method Event::get_coords
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_win", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y_win", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_coords" gdk_event_get_coords :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    Ptr CDouble ->                          -- x_win : TBasicType TDouble
+    Ptr CDouble ->                          -- y_win : TBasicType TDouble
+    IO CInt
+
+
+eventGetCoords ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m (Bool,Double,Double)
+eventGetCoords _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    x_win <- allocMem :: IO (Ptr CDouble)
+    y_win <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_event_get_coords _obj' x_win y_win
+    let result' = (/= 0) result
+    x_win' <- peek x_win
+    let x_win'' = realToFrac x_win'
+    y_win' <- peek y_win
+    let y_win'' = realToFrac y_win'
+    touchManagedPtr _obj
+    freeMem x_win
+    freeMem y_win
+    return (result', x_win'', y_win'')
+
+-- method Event::get_device
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Device"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_device" gdk_event_get_device :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    IO (Ptr Device)
+
+
+eventGetDevice ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m Device
+eventGetDevice _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_event_get_device _obj'
+    checkUnexpectedReturnNULL "gdk_event_get_device" result
+    result' <- (newObject Device) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Event::get_event_sequence
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "EventSequence"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_event_sequence" gdk_event_get_event_sequence :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    IO (Ptr EventSequence)
+
+
+eventGetEventSequence ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m EventSequence
+eventGetEventSequence _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_event_get_event_sequence _obj'
+    checkUnexpectedReturnNULL "gdk_event_get_event_sequence" result
+    result' <- (newBoxed EventSequence) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Event::get_event_type
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "EventType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_event_type" gdk_event_get_event_type :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    IO CUInt
+
+
+eventGetEventType ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m EventType
+eventGetEventType _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_event_get_event_type _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Event::get_keycode
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keycode", argType = TBasicType TUInt16, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_keycode" gdk_event_get_keycode :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    Ptr Word16 ->                           -- keycode : TBasicType TUInt16
+    IO CInt
+
+
+eventGetKeycode ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m (Bool,Word16)
+eventGetKeycode _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    keycode <- allocMem :: IO (Ptr Word16)
+    result <- gdk_event_get_keycode _obj' keycode
+    let result' = (/= 0) result
+    keycode' <- peek keycode
+    touchManagedPtr _obj
+    freeMem keycode
+    return (result', keycode')
+
+-- method Event::get_keyval
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_keyval" gdk_event_get_keyval :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    Ptr Word32 ->                           -- keyval : TBasicType TUInt32
+    IO CInt
+
+
+eventGetKeyval ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m (Bool,Word32)
+eventGetKeyval _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    keyval <- allocMem :: IO (Ptr Word32)
+    result <- gdk_event_get_keyval _obj' keyval
+    let result' = (/= 0) result
+    keyval' <- peek keyval
+    touchManagedPtr _obj
+    freeMem keyval
+    return (result', keyval')
+
+-- method Event::get_root_coords
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_root", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y_root", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_root_coords" gdk_event_get_root_coords :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    Ptr CDouble ->                          -- x_root : TBasicType TDouble
+    Ptr CDouble ->                          -- y_root : TBasicType TDouble
+    IO CInt
+
+
+eventGetRootCoords ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m (Bool,Double,Double)
+eventGetRootCoords _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    x_root <- allocMem :: IO (Ptr CDouble)
+    y_root <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_event_get_root_coords _obj' x_root y_root
+    let result' = (/= 0) result
+    x_root' <- peek x_root
+    let x_root'' = realToFrac x_root'
+    y_root' <- peek y_root
+    let y_root'' = realToFrac y_root'
+    touchManagedPtr _obj
+    freeMem x_root
+    freeMem y_root
+    return (result', x_root'', y_root'')
+
+-- method Event::get_screen
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Screen"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_screen" gdk_event_get_screen :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    IO (Ptr Screen)
+
+
+eventGetScreen ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m Screen
+eventGetScreen _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_event_get_screen _obj'
+    checkUnexpectedReturnNULL "gdk_event_get_screen" result
+    result' <- (newObject Screen) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Event::get_scroll_deltas
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "delta_x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "delta_y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_scroll_deltas" gdk_event_get_scroll_deltas :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    Ptr CDouble ->                          -- delta_x : TBasicType TDouble
+    Ptr CDouble ->                          -- delta_y : TBasicType TDouble
+    IO CInt
+
+
+eventGetScrollDeltas ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m (Bool,Double,Double)
+eventGetScrollDeltas _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    delta_x <- allocMem :: IO (Ptr CDouble)
+    delta_y <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_event_get_scroll_deltas _obj' delta_x delta_y
+    let result' = (/= 0) result
+    delta_x' <- peek delta_x
+    let delta_x'' = realToFrac delta_x'
+    delta_y' <- peek delta_y
+    let delta_y'' = realToFrac delta_y'
+    touchManagedPtr _obj
+    freeMem delta_x
+    freeMem delta_y
+    return (result', delta_x'', delta_y'')
+
+-- method Event::get_scroll_direction
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "direction", argType = TInterface "Gdk" "ScrollDirection", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_scroll_direction" gdk_event_get_scroll_direction :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    Ptr CUInt ->                            -- direction : TInterface "Gdk" "ScrollDirection"
+    IO CInt
+
+
+eventGetScrollDirection ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m (Bool,ScrollDirection)
+eventGetScrollDirection _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    direction <- allocMem :: IO (Ptr CUInt)
+    result <- gdk_event_get_scroll_direction _obj' direction
+    let result' = (/= 0) result
+    direction' <- peek direction
+    let direction'' = (toEnum . fromIntegral) direction'
+    touchManagedPtr _obj
+    freeMem direction
+    return (result', direction'')
+
+-- method Event::get_source_device
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Device"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_source_device" gdk_event_get_source_device :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    IO (Ptr Device)
+
+
+eventGetSourceDevice ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m Device
+eventGetSourceDevice _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_event_get_source_device _obj'
+    checkUnexpectedReturnNULL "gdk_event_get_source_device" result
+    result' <- (newObject Device) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Event::get_state
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_state" gdk_event_get_state :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    Ptr CUInt ->                            -- state : TInterface "Gdk" "ModifierType"
+    IO CInt
+
+
+eventGetState ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m (Bool,[ModifierType])
+eventGetState _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    state <- allocMem :: IO (Ptr CUInt)
+    result <- gdk_event_get_state _obj' state
+    let result' = (/= 0) result
+    state' <- peek state
+    let state'' = wordToGFlags state'
+    touchManagedPtr _obj
+    freeMem state
+    return (result', state'')
+
+-- method Event::get_time
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_time" gdk_event_get_time :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    IO Word32
+
+
+eventGetTime ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m Word32
+eventGetTime _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_event_get_time _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Event::get_window
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get_window" gdk_event_get_window :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    IO (Ptr Window)
+
+
+eventGetWindow ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m Window
+eventGetWindow _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_event_get_window _obj'
+    checkUnexpectedReturnNULL "gdk_event_get_window" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Event::put
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_put" gdk_event_put :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    IO ()
+
+
+eventPut ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m ()
+eventPut _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    gdk_event_put _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Event::set_device
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_set_device" gdk_event_set_device :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    IO ()
+
+
+eventSetDevice ::
+    (MonadIO m, DeviceK a) =>
+    Event ->                                -- _obj
+    a ->                                    -- device
+    m ()
+eventSetDevice _obj device = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    gdk_event_set_device _obj' device'
+    touchManagedPtr _obj
+    touchManagedPtr device
+    return ()
+
+-- method Event::set_screen
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_set_screen" gdk_event_set_screen :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    Ptr Screen ->                           -- screen : TInterface "Gdk" "Screen"
+    IO ()
+
+
+eventSetScreen ::
+    (MonadIO m, ScreenK a) =>
+    Event ->                                -- _obj
+    a ->                                    -- screen
+    m ()
+eventSetScreen _obj screen = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let screen' = unsafeManagedPtrCastPtr screen
+    gdk_event_set_screen _obj' screen'
+    touchManagedPtr _obj
+    touchManagedPtr screen
+    return ()
+
+-- method Event::set_source_device
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_set_source_device" gdk_event_set_source_device :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    IO ()
+
+
+eventSetSourceDevice ::
+    (MonadIO m, DeviceK a) =>
+    Event ->                                -- _obj
+    a ->                                    -- device
+    m ()
+eventSetSourceDevice _obj device = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    gdk_event_set_source_device _obj' device'
+    touchManagedPtr _obj
+    touchManagedPtr device
+    return ()
+
+-- method Event::triggers_context_menu
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_triggers_context_menu" gdk_event_triggers_context_menu :: 
+    Ptr Event ->                            -- _obj : TInterface "Gdk" "Event"
+    IO CInt
+
+
+eventTriggersContextMenu ::
+    (MonadIO m) =>
+    Event ->                                -- _obj
+    m Bool
+eventTriggersContextMenu _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- gdk_event_triggers_context_menu _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+
diff --git a/GI/Gdk/Unions/Event.hs-boot b/GI/Gdk/Unions/Event.hs-boot
new file mode 100644
--- /dev/null
+++ b/GI/Gdk/Unions/Event.hs-boot
@@ -0,0 +1,11 @@
+module GI.Gdk.Unions.Event where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+newtype Event = Event (ForeignPtr Event)
+instance BoxedObject Event where
diff --git a/GI/GdkAttributes.hs b/GI/GdkAttributes.hs
deleted file mode 100644
--- a/GI/GdkAttributes.hs
+++ /dev/null
@@ -1,545 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans -fno-warn-unused-imports #-}
-
--- Generated code.
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
-{-# LANGUAGE ForeignFunctionInterface, ConstraintKinds,
-    TypeFamilies, MultiParamTypeClasses, KindSignatures,
-    FlexibleInstances, UndecidableInstances, DataKinds,
-    OverloadedStrings, NegativeLiterals, FlexibleContexts #-}
-
-module GI.GdkAttributes where
-
-import Prelude ()
-import Data.GI.Base.ShortPrelude
-import Data.Char
-import Data.Int
-import Data.Word
-import qualified Data.ByteString.Char8 as B
-import Data.ByteString.Char8 (ByteString)
-import qualified Data.Map as Map
-import Foreign.C
-import Foreign.Ptr
-import Foreign.ForeignPtr
-import Foreign.ForeignPtr.Unsafe (unsafeForeignPtrToPtr)
-import Foreign.Storable (peek, poke, sizeOf)
-import Control.Applicative ((<$>))
-import Control.Exception (onException)
-import Control.Monad.IO.Class
-import qualified Data.Text as T
-
-import Data.GI.Base.Attributes hiding (get, set)
-import Data.GI.Base.BasicTypes
-import Data.GI.Base.BasicConversions
-import Data.GI.Base.Closure
-import Data.GI.Base.GError
-import Data.GI.Base.GHashTable
-import Data.GI.Base.GParamSpec
-import Data.GI.Base.GVariant
-import Data.GI.Base.GValue
-import Data.GI.Base.ManagedPtr
-import Data.GI.Base.Overloading
-import Data.GI.Base.Properties hiding (new)
-import Data.GI.Base.Signals (SignalConnectMode(..), connectSignalFunPtr, SignalHandlerId)
-import Data.GI.Base.Utils
-
-import GI.Gdk
-
--- VVV Prop "display"
-   -- Type: TInterface "Gdk" "Display"
-   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-
-getAppLaunchContextDisplay :: (MonadIO m, AppLaunchContextK o) => o -> m Display
-getAppLaunchContextDisplay obj = liftIO $ getObjectPropertyObject obj "display" Display
-
-constructAppLaunchContextDisplay :: (DisplayK a) => a -> IO ([Char], GValue)
-constructAppLaunchContextDisplay val = constructObjectPropertyObject "display" val
-
-data AppLaunchContextDisplayPropertyInfo
-instance AttrInfo AppLaunchContextDisplayPropertyInfo where
-    type AttrAllowedOps AppLaunchContextDisplayPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint AppLaunchContextDisplayPropertyInfo = DisplayK
-    type AttrBaseTypeConstraint AppLaunchContextDisplayPropertyInfo = AppLaunchContextK
-    type AttrGetType AppLaunchContextDisplayPropertyInfo = Display
-    type AttrLabel AppLaunchContextDisplayPropertyInfo = "AppLaunchContext::display"
-    attrGet _ = getAppLaunchContextDisplay
-    attrSet _ = undefined
-    attrConstruct _ = constructAppLaunchContextDisplay
-
-type instance AttributeList AppLaunchContext = '[ '("display", AppLaunchContextDisplayPropertyInfo)]
-
--- VVV Prop "cursor-type"
-   -- Type: TInterface "Gdk" "CursorType"
-   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-
-getCursorCursorType :: (MonadIO m, CursorK o) => o -> m CursorType
-getCursorCursorType obj = liftIO $ getObjectPropertyEnum obj "cursor-type"
-
-constructCursorCursorType :: CursorType -> IO ([Char], GValue)
-constructCursorCursorType val = constructObjectPropertyEnum "cursor-type" val
-
-data CursorCursorTypePropertyInfo
-instance AttrInfo CursorCursorTypePropertyInfo where
-    type AttrAllowedOps CursorCursorTypePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint CursorCursorTypePropertyInfo = (~) CursorType
-    type AttrBaseTypeConstraint CursorCursorTypePropertyInfo = CursorK
-    type AttrGetType CursorCursorTypePropertyInfo = CursorType
-    type AttrLabel CursorCursorTypePropertyInfo = "Cursor::cursor-type"
-    attrGet _ = getCursorCursorType
-    attrSet _ = undefined
-    attrConstruct _ = constructCursorCursorType
-
--- VVV Prop "display"
-   -- Type: TInterface "Gdk" "Display"
-   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-
-getCursorDisplay :: (MonadIO m, CursorK o) => o -> m Display
-getCursorDisplay obj = liftIO $ getObjectPropertyObject obj "display" Display
-
-constructCursorDisplay :: (DisplayK a) => a -> IO ([Char], GValue)
-constructCursorDisplay val = constructObjectPropertyObject "display" val
-
-data CursorDisplayPropertyInfo
-instance AttrInfo CursorDisplayPropertyInfo where
-    type AttrAllowedOps CursorDisplayPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint CursorDisplayPropertyInfo = DisplayK
-    type AttrBaseTypeConstraint CursorDisplayPropertyInfo = CursorK
-    type AttrGetType CursorDisplayPropertyInfo = Display
-    type AttrLabel CursorDisplayPropertyInfo = "Cursor::display"
-    attrGet _ = getCursorDisplay
-    attrSet _ = undefined
-    attrConstruct _ = constructCursorDisplay
-
-type instance AttributeList Cursor = '[ '("cursor-type", CursorCursorTypePropertyInfo), '("display", CursorDisplayPropertyInfo)]
-
--- VVV Prop "associated-device"
-   -- Type: TInterface "Gdk" "Device"
-   -- Flags: [PropertyReadable]
-
-getDeviceAssociatedDevice :: (MonadIO m, DeviceK o) => o -> m Device
-getDeviceAssociatedDevice obj = liftIO $ getObjectPropertyObject obj "associated-device" Device
-
-data DeviceAssociatedDevicePropertyInfo
-instance AttrInfo DeviceAssociatedDevicePropertyInfo where
-    type AttrAllowedOps DeviceAssociatedDevicePropertyInfo = '[ 'AttrGet]
-    type AttrSetTypeConstraint DeviceAssociatedDevicePropertyInfo = (~) ()
-    type AttrBaseTypeConstraint DeviceAssociatedDevicePropertyInfo = DeviceK
-    type AttrGetType DeviceAssociatedDevicePropertyInfo = Device
-    type AttrLabel DeviceAssociatedDevicePropertyInfo = "Device::associated-device"
-    attrGet _ = getDeviceAssociatedDevice
-    attrSet _ = undefined
-    attrConstruct _ = undefined
-
--- VVV Prop "device-manager"
-   -- Type: TInterface "Gdk" "DeviceManager"
-   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-
-getDeviceDeviceManager :: (MonadIO m, DeviceK o) => o -> m DeviceManager
-getDeviceDeviceManager obj = liftIO $ getObjectPropertyObject obj "device-manager" DeviceManager
-
-constructDeviceDeviceManager :: (DeviceManagerK a) => a -> IO ([Char], GValue)
-constructDeviceDeviceManager val = constructObjectPropertyObject "device-manager" val
-
-data DeviceDeviceManagerPropertyInfo
-instance AttrInfo DeviceDeviceManagerPropertyInfo where
-    type AttrAllowedOps DeviceDeviceManagerPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint DeviceDeviceManagerPropertyInfo = DeviceManagerK
-    type AttrBaseTypeConstraint DeviceDeviceManagerPropertyInfo = DeviceK
-    type AttrGetType DeviceDeviceManagerPropertyInfo = DeviceManager
-    type AttrLabel DeviceDeviceManagerPropertyInfo = "Device::device-manager"
-    attrGet _ = getDeviceDeviceManager
-    attrSet _ = undefined
-    attrConstruct _ = constructDeviceDeviceManager
-
--- VVV Prop "display"
-   -- Type: TInterface "Gdk" "Display"
-   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-
-getDeviceDisplay :: (MonadIO m, DeviceK o) => o -> m Display
-getDeviceDisplay obj = liftIO $ getObjectPropertyObject obj "display" Display
-
-constructDeviceDisplay :: (DisplayK a) => a -> IO ([Char], GValue)
-constructDeviceDisplay val = constructObjectPropertyObject "display" val
-
-data DeviceDisplayPropertyInfo
-instance AttrInfo DeviceDisplayPropertyInfo where
-    type AttrAllowedOps DeviceDisplayPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint DeviceDisplayPropertyInfo = DisplayK
-    type AttrBaseTypeConstraint DeviceDisplayPropertyInfo = DeviceK
-    type AttrGetType DeviceDisplayPropertyInfo = Display
-    type AttrLabel DeviceDisplayPropertyInfo = "Device::display"
-    attrGet _ = getDeviceDisplay
-    attrSet _ = undefined
-    attrConstruct _ = constructDeviceDisplay
-
--- VVV Prop "has-cursor"
-   -- Type: TBasicType TBoolean
-   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-
-getDeviceHasCursor :: (MonadIO m, DeviceK o) => o -> m Bool
-getDeviceHasCursor obj = liftIO $ getObjectPropertyBool obj "has-cursor"
-
-constructDeviceHasCursor :: Bool -> IO ([Char], GValue)
-constructDeviceHasCursor val = constructObjectPropertyBool "has-cursor" val
-
-data DeviceHasCursorPropertyInfo
-instance AttrInfo DeviceHasCursorPropertyInfo where
-    type AttrAllowedOps DeviceHasCursorPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint DeviceHasCursorPropertyInfo = (~) Bool
-    type AttrBaseTypeConstraint DeviceHasCursorPropertyInfo = DeviceK
-    type AttrGetType DeviceHasCursorPropertyInfo = Bool
-    type AttrLabel DeviceHasCursorPropertyInfo = "Device::has-cursor"
-    attrGet _ = getDeviceHasCursor
-    attrSet _ = undefined
-    attrConstruct _ = constructDeviceHasCursor
-
--- VVV Prop "input-mode"
-   -- Type: TInterface "Gdk" "InputMode"
-   -- Flags: [PropertyReadable,PropertyWritable]
-
-getDeviceInputMode :: (MonadIO m, DeviceK o) => o -> m InputMode
-getDeviceInputMode obj = liftIO $ getObjectPropertyEnum obj "input-mode"
-
-setDeviceInputMode :: (MonadIO m, DeviceK o) => o -> InputMode -> m ()
-setDeviceInputMode obj val = liftIO $ setObjectPropertyEnum obj "input-mode" val
-
-constructDeviceInputMode :: InputMode -> IO ([Char], GValue)
-constructDeviceInputMode val = constructObjectPropertyEnum "input-mode" val
-
-data DeviceInputModePropertyInfo
-instance AttrInfo DeviceInputModePropertyInfo where
-    type AttrAllowedOps DeviceInputModePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint DeviceInputModePropertyInfo = (~) InputMode
-    type AttrBaseTypeConstraint DeviceInputModePropertyInfo = DeviceK
-    type AttrGetType DeviceInputModePropertyInfo = InputMode
-    type AttrLabel DeviceInputModePropertyInfo = "Device::input-mode"
-    attrGet _ = getDeviceInputMode
-    attrSet _ = setDeviceInputMode
-    attrConstruct _ = constructDeviceInputMode
-
--- VVV Prop "input-source"
-   -- Type: TInterface "Gdk" "InputSource"
-   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-
-getDeviceInputSource :: (MonadIO m, DeviceK o) => o -> m InputSource
-getDeviceInputSource obj = liftIO $ getObjectPropertyEnum obj "input-source"
-
-constructDeviceInputSource :: InputSource -> IO ([Char], GValue)
-constructDeviceInputSource val = constructObjectPropertyEnum "input-source" val
-
-data DeviceInputSourcePropertyInfo
-instance AttrInfo DeviceInputSourcePropertyInfo where
-    type AttrAllowedOps DeviceInputSourcePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint DeviceInputSourcePropertyInfo = (~) InputSource
-    type AttrBaseTypeConstraint DeviceInputSourcePropertyInfo = DeviceK
-    type AttrGetType DeviceInputSourcePropertyInfo = InputSource
-    type AttrLabel DeviceInputSourcePropertyInfo = "Device::input-source"
-    attrGet _ = getDeviceInputSource
-    attrSet _ = undefined
-    attrConstruct _ = constructDeviceInputSource
-
--- VVV Prop "n-axes"
-   -- Type: TBasicType TUInt32
-   -- Flags: [PropertyReadable]
-
-getDeviceNAxes :: (MonadIO m, DeviceK o) => o -> m Word32
-getDeviceNAxes obj = liftIO $ getObjectPropertyCUInt obj "n-axes"
-
-data DeviceNAxesPropertyInfo
-instance AttrInfo DeviceNAxesPropertyInfo where
-    type AttrAllowedOps DeviceNAxesPropertyInfo = '[ 'AttrGet]
-    type AttrSetTypeConstraint DeviceNAxesPropertyInfo = (~) ()
-    type AttrBaseTypeConstraint DeviceNAxesPropertyInfo = DeviceK
-    type AttrGetType DeviceNAxesPropertyInfo = Word32
-    type AttrLabel DeviceNAxesPropertyInfo = "Device::n-axes"
-    attrGet _ = getDeviceNAxes
-    attrSet _ = undefined
-    attrConstruct _ = undefined
-
--- VVV Prop "name"
-   -- Type: TBasicType TUTF8
-   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-
-getDeviceName :: (MonadIO m, DeviceK o) => o -> m T.Text
-getDeviceName obj = liftIO $ getObjectPropertyString obj "name"
-
-constructDeviceName :: T.Text -> IO ([Char], GValue)
-constructDeviceName val = constructObjectPropertyString "name" val
-
-data DeviceNamePropertyInfo
-instance AttrInfo DeviceNamePropertyInfo where
-    type AttrAllowedOps DeviceNamePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint DeviceNamePropertyInfo = (~) T.Text
-    type AttrBaseTypeConstraint DeviceNamePropertyInfo = DeviceK
-    type AttrGetType DeviceNamePropertyInfo = T.Text
-    type AttrLabel DeviceNamePropertyInfo = "Device::name"
-    attrGet _ = getDeviceName
-    attrSet _ = undefined
-    attrConstruct _ = constructDeviceName
-
--- VVV Prop "product-id"
-   -- Type: TBasicType TUTF8
-   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-
-getDeviceProductId :: (MonadIO m, DeviceK o) => o -> m T.Text
-getDeviceProductId obj = liftIO $ getObjectPropertyString obj "product-id"
-
-constructDeviceProductId :: T.Text -> IO ([Char], GValue)
-constructDeviceProductId val = constructObjectPropertyString "product-id" val
-
-data DeviceProductIdPropertyInfo
-instance AttrInfo DeviceProductIdPropertyInfo where
-    type AttrAllowedOps DeviceProductIdPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint DeviceProductIdPropertyInfo = (~) T.Text
-    type AttrBaseTypeConstraint DeviceProductIdPropertyInfo = DeviceK
-    type AttrGetType DeviceProductIdPropertyInfo = T.Text
-    type AttrLabel DeviceProductIdPropertyInfo = "Device::product-id"
-    attrGet _ = getDeviceProductId
-    attrSet _ = undefined
-    attrConstruct _ = constructDeviceProductId
-
--- VVV Prop "type"
-   -- Type: TInterface "Gdk" "DeviceType"
-   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-
-getDeviceType :: (MonadIO m, DeviceK o) => o -> m DeviceType
-getDeviceType obj = liftIO $ getObjectPropertyEnum obj "type"
-
-constructDeviceType :: DeviceType -> IO ([Char], GValue)
-constructDeviceType val = constructObjectPropertyEnum "type" val
-
-data DeviceTypePropertyInfo
-instance AttrInfo DeviceTypePropertyInfo where
-    type AttrAllowedOps DeviceTypePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint DeviceTypePropertyInfo = (~) DeviceType
-    type AttrBaseTypeConstraint DeviceTypePropertyInfo = DeviceK
-    type AttrGetType DeviceTypePropertyInfo = DeviceType
-    type AttrLabel DeviceTypePropertyInfo = "Device::type"
-    attrGet _ = getDeviceType
-    attrSet _ = undefined
-    attrConstruct _ = constructDeviceType
-
--- VVV Prop "vendor-id"
-   -- Type: TBasicType TUTF8
-   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-
-getDeviceVendorId :: (MonadIO m, DeviceK o) => o -> m T.Text
-getDeviceVendorId obj = liftIO $ getObjectPropertyString obj "vendor-id"
-
-constructDeviceVendorId :: T.Text -> IO ([Char], GValue)
-constructDeviceVendorId val = constructObjectPropertyString "vendor-id" val
-
-data DeviceVendorIdPropertyInfo
-instance AttrInfo DeviceVendorIdPropertyInfo where
-    type AttrAllowedOps DeviceVendorIdPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint DeviceVendorIdPropertyInfo = (~) T.Text
-    type AttrBaseTypeConstraint DeviceVendorIdPropertyInfo = DeviceK
-    type AttrGetType DeviceVendorIdPropertyInfo = T.Text
-    type AttrLabel DeviceVendorIdPropertyInfo = "Device::vendor-id"
-    attrGet _ = getDeviceVendorId
-    attrSet _ = undefined
-    attrConstruct _ = constructDeviceVendorId
-
-type instance AttributeList Device = '[ '("associated-device", DeviceAssociatedDevicePropertyInfo), '("device-manager", DeviceDeviceManagerPropertyInfo), '("display", DeviceDisplayPropertyInfo), '("has-cursor", DeviceHasCursorPropertyInfo), '("input-mode", DeviceInputModePropertyInfo), '("input-source", DeviceInputSourcePropertyInfo), '("n-axes", DeviceNAxesPropertyInfo), '("name", DeviceNamePropertyInfo), '("product-id", DeviceProductIdPropertyInfo), '("type", DeviceTypePropertyInfo), '("vendor-id", DeviceVendorIdPropertyInfo)]
-
--- VVV Prop "display"
-   -- Type: TInterface "Gdk" "Display"
-   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-
-getDeviceManagerDisplay :: (MonadIO m, DeviceManagerK o) => o -> m Display
-getDeviceManagerDisplay obj = liftIO $ getObjectPropertyObject obj "display" Display
-
-constructDeviceManagerDisplay :: (DisplayK a) => a -> IO ([Char], GValue)
-constructDeviceManagerDisplay val = constructObjectPropertyObject "display" val
-
-data DeviceManagerDisplayPropertyInfo
-instance AttrInfo DeviceManagerDisplayPropertyInfo where
-    type AttrAllowedOps DeviceManagerDisplayPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint DeviceManagerDisplayPropertyInfo = DisplayK
-    type AttrBaseTypeConstraint DeviceManagerDisplayPropertyInfo = DeviceManagerK
-    type AttrGetType DeviceManagerDisplayPropertyInfo = Display
-    type AttrLabel DeviceManagerDisplayPropertyInfo = "DeviceManager::display"
-    attrGet _ = getDeviceManagerDisplay
-    attrSet _ = undefined
-    attrConstruct _ = constructDeviceManagerDisplay
-
-type instance AttributeList DeviceManager = '[ '("display", DeviceManagerDisplayPropertyInfo)]
-
-type instance AttributeList Display = '[ ]
-
--- VVV Prop "default-display"
-   -- Type: TInterface "Gdk" "Display"
-   -- Flags: [PropertyReadable,PropertyWritable]
-
-getDisplayManagerDefaultDisplay :: (MonadIO m, DisplayManagerK o) => o -> m Display
-getDisplayManagerDefaultDisplay obj = liftIO $ getObjectPropertyObject obj "default-display" Display
-
-setDisplayManagerDefaultDisplay :: (MonadIO m, DisplayManagerK o, DisplayK a) => o -> a -> m ()
-setDisplayManagerDefaultDisplay obj val = liftIO $ setObjectPropertyObject obj "default-display" val
-
-constructDisplayManagerDefaultDisplay :: (DisplayK a) => a -> IO ([Char], GValue)
-constructDisplayManagerDefaultDisplay val = constructObjectPropertyObject "default-display" val
-
-data DisplayManagerDefaultDisplayPropertyInfo
-instance AttrInfo DisplayManagerDefaultDisplayPropertyInfo where
-    type AttrAllowedOps DisplayManagerDefaultDisplayPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint DisplayManagerDefaultDisplayPropertyInfo = DisplayK
-    type AttrBaseTypeConstraint DisplayManagerDefaultDisplayPropertyInfo = DisplayManagerK
-    type AttrGetType DisplayManagerDefaultDisplayPropertyInfo = Display
-    type AttrLabel DisplayManagerDefaultDisplayPropertyInfo = "DisplayManager::default-display"
-    attrGet _ = getDisplayManagerDefaultDisplay
-    attrSet _ = setDisplayManagerDefaultDisplay
-    attrConstruct _ = constructDisplayManagerDefaultDisplay
-
-type instance AttributeList DisplayManager = '[ '("default-display", DisplayManagerDefaultDisplayPropertyInfo)]
-
-type instance AttributeList DragContext = '[ ]
-
-type instance AttributeList FrameClock = '[ ]
-
--- VVV Prop "display"
-   -- Type: TInterface "Gdk" "Display"
-   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-
-getGLContextDisplay :: (MonadIO m, GLContextK o) => o -> m Display
-getGLContextDisplay obj = liftIO $ getObjectPropertyObject obj "display" Display
-
-constructGLContextDisplay :: (DisplayK a) => a -> IO ([Char], GValue)
-constructGLContextDisplay val = constructObjectPropertyObject "display" val
-
-data GLContextDisplayPropertyInfo
-instance AttrInfo GLContextDisplayPropertyInfo where
-    type AttrAllowedOps GLContextDisplayPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint GLContextDisplayPropertyInfo = DisplayK
-    type AttrBaseTypeConstraint GLContextDisplayPropertyInfo = GLContextK
-    type AttrGetType GLContextDisplayPropertyInfo = Display
-    type AttrLabel GLContextDisplayPropertyInfo = "GLContext::display"
-    attrGet _ = getGLContextDisplay
-    attrSet _ = undefined
-    attrConstruct _ = constructGLContextDisplay
-
--- VVV Prop "shared-context"
-   -- Type: TInterface "Gdk" "GLContext"
-   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-
-getGLContextSharedContext :: (MonadIO m, GLContextK o) => o -> m GLContext
-getGLContextSharedContext obj = liftIO $ getObjectPropertyObject obj "shared-context" GLContext
-
-constructGLContextSharedContext :: (GLContextK a) => a -> IO ([Char], GValue)
-constructGLContextSharedContext val = constructObjectPropertyObject "shared-context" val
-
-data GLContextSharedContextPropertyInfo
-instance AttrInfo GLContextSharedContextPropertyInfo where
-    type AttrAllowedOps GLContextSharedContextPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint GLContextSharedContextPropertyInfo = GLContextK
-    type AttrBaseTypeConstraint GLContextSharedContextPropertyInfo = GLContextK
-    type AttrGetType GLContextSharedContextPropertyInfo = GLContext
-    type AttrLabel GLContextSharedContextPropertyInfo = "GLContext::shared-context"
-    attrGet _ = getGLContextSharedContext
-    attrSet _ = undefined
-    attrConstruct _ = constructGLContextSharedContext
-
--- VVV Prop "window"
-   -- Type: TInterface "Gdk" "Window"
-   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-
-getGLContextWindow :: (MonadIO m, GLContextK o) => o -> m Window
-getGLContextWindow obj = liftIO $ getObjectPropertyObject obj "window" Window
-
-constructGLContextWindow :: (WindowK a) => a -> IO ([Char], GValue)
-constructGLContextWindow val = constructObjectPropertyObject "window" val
-
-data GLContextWindowPropertyInfo
-instance AttrInfo GLContextWindowPropertyInfo where
-    type AttrAllowedOps GLContextWindowPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint GLContextWindowPropertyInfo = WindowK
-    type AttrBaseTypeConstraint GLContextWindowPropertyInfo = GLContextK
-    type AttrGetType GLContextWindowPropertyInfo = Window
-    type AttrLabel GLContextWindowPropertyInfo = "GLContext::window"
-    attrGet _ = getGLContextWindow
-    attrSet _ = undefined
-    attrConstruct _ = constructGLContextWindow
-
-type instance AttributeList GLContext = '[ '("display", GLContextDisplayPropertyInfo), '("shared-context", GLContextSharedContextPropertyInfo), '("window", GLContextWindowPropertyInfo)]
-
-type instance AttributeList Keymap = '[ ]
-
--- VVV Prop "font-options"
-   -- Type: TBasicType TVoid
-   -- Flags: [PropertyReadable,PropertyWritable]
-
-getScreenFontOptions :: (MonadIO m, ScreenK o) => o -> m (Ptr ())
-getScreenFontOptions obj = liftIO $ getObjectPropertyPtr obj "font-options"
-
-setScreenFontOptions :: (MonadIO m, ScreenK o) => o -> (Ptr ()) -> m ()
-setScreenFontOptions obj val = liftIO $ setObjectPropertyPtr obj "font-options" val
-
-constructScreenFontOptions :: (Ptr ()) -> IO ([Char], GValue)
-constructScreenFontOptions val = constructObjectPropertyPtr "font-options" val
-
-data ScreenFontOptionsPropertyInfo
-instance AttrInfo ScreenFontOptionsPropertyInfo where
-    type AttrAllowedOps ScreenFontOptionsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint ScreenFontOptionsPropertyInfo = (~) (Ptr ())
-    type AttrBaseTypeConstraint ScreenFontOptionsPropertyInfo = ScreenK
-    type AttrGetType ScreenFontOptionsPropertyInfo = (Ptr ())
-    type AttrLabel ScreenFontOptionsPropertyInfo = "Screen::font-options"
-    attrGet _ = getScreenFontOptions
-    attrSet _ = setScreenFontOptions
-    attrConstruct _ = constructScreenFontOptions
-
--- VVV Prop "resolution"
-   -- Type: TBasicType TDouble
-   -- Flags: [PropertyReadable,PropertyWritable]
-
-getScreenResolution :: (MonadIO m, ScreenK o) => o -> m Double
-getScreenResolution obj = liftIO $ getObjectPropertyDouble obj "resolution"
-
-setScreenResolution :: (MonadIO m, ScreenK o) => o -> Double -> m ()
-setScreenResolution obj val = liftIO $ setObjectPropertyDouble obj "resolution" val
-
-constructScreenResolution :: Double -> IO ([Char], GValue)
-constructScreenResolution val = constructObjectPropertyDouble "resolution" val
-
-data ScreenResolutionPropertyInfo
-instance AttrInfo ScreenResolutionPropertyInfo where
-    type AttrAllowedOps ScreenResolutionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint ScreenResolutionPropertyInfo = (~) Double
-    type AttrBaseTypeConstraint ScreenResolutionPropertyInfo = ScreenK
-    type AttrGetType ScreenResolutionPropertyInfo = Double
-    type AttrLabel ScreenResolutionPropertyInfo = "Screen::resolution"
-    attrGet _ = getScreenResolution
-    attrSet _ = setScreenResolution
-    attrConstruct _ = constructScreenResolution
-
-type instance AttributeList Screen = '[ '("font-options", ScreenFontOptionsPropertyInfo), '("resolution", ScreenResolutionPropertyInfo)]
-
-type instance AttributeList Visual = '[ ]
-
--- VVV Prop "cursor"
-   -- Type: TInterface "Gdk" "Cursor"
-   -- Flags: [PropertyReadable,PropertyWritable]
-
-getWindowCursor :: (MonadIO m, WindowK o) => o -> m Cursor
-getWindowCursor obj = liftIO $ getObjectPropertyObject obj "cursor" Cursor
-
-setWindowCursor :: (MonadIO m, WindowK o, CursorK a) => o -> a -> m ()
-setWindowCursor obj val = liftIO $ setObjectPropertyObject obj "cursor" val
-
-constructWindowCursor :: (CursorK a) => a -> IO ([Char], GValue)
-constructWindowCursor val = constructObjectPropertyObject "cursor" val
-
-data WindowCursorPropertyInfo
-instance AttrInfo WindowCursorPropertyInfo where
-    type AttrAllowedOps WindowCursorPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint WindowCursorPropertyInfo = CursorK
-    type AttrBaseTypeConstraint WindowCursorPropertyInfo = WindowK
-    type AttrGetType WindowCursorPropertyInfo = Cursor
-    type AttrLabel WindowCursorPropertyInfo = "Window::cursor"
-    attrGet _ = getWindowCursor
-    attrSet _ = setWindowCursor
-    attrConstruct _ = constructWindowCursor
-
-type instance AttributeList Window = '[ '("cursor", WindowCursorPropertyInfo)]
-
diff --git a/GI/GdkSignals.hs b/GI/GdkSignals.hs
deleted file mode 100644
--- a/GI/GdkSignals.hs
+++ /dev/null
@@ -1,164 +0,0 @@
--- Generated code.
-
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-
-{-# LANGUAGE DataKinds,    FlexibleInstances,
-             TypeFamilies, MultiParamTypeClasses,
-               TypeOperators #-}
-
-module GI.GdkSignals where
-
-import Data.GI.Base.Properties (GObjectNotifySignalInfo)
-import Data.GI.Base.Signals
-import Data.GI.Base.Overloading
-
-import qualified GI.GObjectSignals as GObject
-import qualified GI.GioSignals as Gio
-import GI.Gdk
-
-type instance SignalList AppLaunchContext = '[ '("launch-failed", Gio.AppLaunchContextLaunchFailedSignalInfo), '("launched", Gio.AppLaunchContextLaunchedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]
-
-type instance SignalList Cursor = '[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]
-
-data DeviceChangedSignalInfo
-instance SignalInfo DeviceChangedSignalInfo where
-    type HaskellCallbackType DeviceChangedSignalInfo = DeviceChangedCallback
-    connectSignal _ = connectDeviceChanged
-
-type instance SignalList Device = '[ '("changed", DeviceChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]
-
-data DeviceManagerDeviceAddedSignalInfo
-instance SignalInfo DeviceManagerDeviceAddedSignalInfo where
-    type HaskellCallbackType DeviceManagerDeviceAddedSignalInfo = DeviceManagerDeviceAddedCallback
-    connectSignal _ = connectDeviceManagerDeviceAdded
-
-data DeviceManagerDeviceChangedSignalInfo
-instance SignalInfo DeviceManagerDeviceChangedSignalInfo where
-    type HaskellCallbackType DeviceManagerDeviceChangedSignalInfo = DeviceManagerDeviceChangedCallback
-    connectSignal _ = connectDeviceManagerDeviceChanged
-
-data DeviceManagerDeviceRemovedSignalInfo
-instance SignalInfo DeviceManagerDeviceRemovedSignalInfo where
-    type HaskellCallbackType DeviceManagerDeviceRemovedSignalInfo = DeviceManagerDeviceRemovedCallback
-    connectSignal _ = connectDeviceManagerDeviceRemoved
-
-type instance SignalList DeviceManager = '[ '("device-added", DeviceManagerDeviceAddedSignalInfo), '("device-changed", DeviceManagerDeviceChangedSignalInfo), '("device-removed", DeviceManagerDeviceRemovedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]
-
-data DisplayClosedSignalInfo
-instance SignalInfo DisplayClosedSignalInfo where
-    type HaskellCallbackType DisplayClosedSignalInfo = DisplayClosedCallback
-    connectSignal _ = connectDisplayClosed
-
-data DisplayOpenedSignalInfo
-instance SignalInfo DisplayOpenedSignalInfo where
-    type HaskellCallbackType DisplayOpenedSignalInfo = DisplayOpenedCallback
-    connectSignal _ = connectDisplayOpened
-
-type instance SignalList Display = '[ '("closed", DisplayClosedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("opened", DisplayOpenedSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]
-
-data DisplayManagerDisplayOpenedSignalInfo
-instance SignalInfo DisplayManagerDisplayOpenedSignalInfo where
-    type HaskellCallbackType DisplayManagerDisplayOpenedSignalInfo = DisplayManagerDisplayOpenedCallback
-    connectSignal _ = connectDisplayManagerDisplayOpened
-
-type instance SignalList DisplayManager = '[ '("display-opened", DisplayManagerDisplayOpenedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]
-
-type instance SignalList DragContext = '[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]
-
-data FrameClockAfterPaintSignalInfo
-instance SignalInfo FrameClockAfterPaintSignalInfo where
-    type HaskellCallbackType FrameClockAfterPaintSignalInfo = FrameClockAfterPaintCallback
-    connectSignal _ = connectFrameClockAfterPaint
-
-data FrameClockBeforePaintSignalInfo
-instance SignalInfo FrameClockBeforePaintSignalInfo where
-    type HaskellCallbackType FrameClockBeforePaintSignalInfo = FrameClockBeforePaintCallback
-    connectSignal _ = connectFrameClockBeforePaint
-
-data FrameClockFlushEventsSignalInfo
-instance SignalInfo FrameClockFlushEventsSignalInfo where
-    type HaskellCallbackType FrameClockFlushEventsSignalInfo = FrameClockFlushEventsCallback
-    connectSignal _ = connectFrameClockFlushEvents
-
-data FrameClockLayoutSignalInfo
-instance SignalInfo FrameClockLayoutSignalInfo where
-    type HaskellCallbackType FrameClockLayoutSignalInfo = FrameClockLayoutCallback
-    connectSignal _ = connectFrameClockLayout
-
-data FrameClockPaintSignalInfo
-instance SignalInfo FrameClockPaintSignalInfo where
-    type HaskellCallbackType FrameClockPaintSignalInfo = FrameClockPaintCallback
-    connectSignal _ = connectFrameClockPaint
-
-data FrameClockResumeEventsSignalInfo
-instance SignalInfo FrameClockResumeEventsSignalInfo where
-    type HaskellCallbackType FrameClockResumeEventsSignalInfo = FrameClockResumeEventsCallback
-    connectSignal _ = connectFrameClockResumeEvents
-
-data FrameClockUpdateSignalInfo
-instance SignalInfo FrameClockUpdateSignalInfo where
-    type HaskellCallbackType FrameClockUpdateSignalInfo = FrameClockUpdateCallback
-    connectSignal _ = connectFrameClockUpdate
-
-type instance SignalList FrameClock = '[ '("after-paint", FrameClockAfterPaintSignalInfo), '("before-paint", FrameClockBeforePaintSignalInfo), '("flush-events", FrameClockFlushEventsSignalInfo), '("layout", FrameClockLayoutSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("paint", FrameClockPaintSignalInfo), '("resume-events", FrameClockResumeEventsSignalInfo), '("update", FrameClockUpdateSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]
-
-type instance SignalList GLContext = '[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]
-
-data KeymapDirectionChangedSignalInfo
-instance SignalInfo KeymapDirectionChangedSignalInfo where
-    type HaskellCallbackType KeymapDirectionChangedSignalInfo = KeymapDirectionChangedCallback
-    connectSignal _ = connectKeymapDirectionChanged
-
-data KeymapKeysChangedSignalInfo
-instance SignalInfo KeymapKeysChangedSignalInfo where
-    type HaskellCallbackType KeymapKeysChangedSignalInfo = KeymapKeysChangedCallback
-    connectSignal _ = connectKeymapKeysChanged
-
-data KeymapStateChangedSignalInfo
-instance SignalInfo KeymapStateChangedSignalInfo where
-    type HaskellCallbackType KeymapStateChangedSignalInfo = KeymapStateChangedCallback
-    connectSignal _ = connectKeymapStateChanged
-
-type instance SignalList Keymap = '[ '("direction-changed", KeymapDirectionChangedSignalInfo), '("keys-changed", KeymapKeysChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("state-changed", KeymapStateChangedSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]
-
-data ScreenCompositedChangedSignalInfo
-instance SignalInfo ScreenCompositedChangedSignalInfo where
-    type HaskellCallbackType ScreenCompositedChangedSignalInfo = ScreenCompositedChangedCallback
-    connectSignal _ = connectScreenCompositedChanged
-
-data ScreenMonitorsChangedSignalInfo
-instance SignalInfo ScreenMonitorsChangedSignalInfo where
-    type HaskellCallbackType ScreenMonitorsChangedSignalInfo = ScreenMonitorsChangedCallback
-    connectSignal _ = connectScreenMonitorsChanged
-
-data ScreenSizeChangedSignalInfo
-instance SignalInfo ScreenSizeChangedSignalInfo where
-    type HaskellCallbackType ScreenSizeChangedSignalInfo = ScreenSizeChangedCallback
-    connectSignal _ = connectScreenSizeChanged
-
-type instance SignalList Screen = '[ '("composited-changed", ScreenCompositedChangedSignalInfo), '("monitors-changed", ScreenMonitorsChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("size-changed", ScreenSizeChangedSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]
-
-type instance SignalList Visual = '[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]
-
-data WindowCreateSurfaceSignalInfo
-instance SignalInfo WindowCreateSurfaceSignalInfo where
-    type HaskellCallbackType WindowCreateSurfaceSignalInfo = WindowCreateSurfaceCallback
-    connectSignal _ = connectWindowCreateSurface
-
-data WindowFromEmbedderSignalInfo
-instance SignalInfo WindowFromEmbedderSignalInfo where
-    type HaskellCallbackType WindowFromEmbedderSignalInfo = WindowFromEmbedderCallback
-    connectSignal _ = connectWindowFromEmbedder
-
-data WindowPickEmbeddedChildSignalInfo
-instance SignalInfo WindowPickEmbeddedChildSignalInfo where
-    type HaskellCallbackType WindowPickEmbeddedChildSignalInfo = WindowPickEmbeddedChildCallback
-    connectSignal _ = connectWindowPickEmbeddedChild
-
-data WindowToEmbedderSignalInfo
-instance SignalInfo WindowToEmbedderSignalInfo where
-    type HaskellCallbackType WindowToEmbedderSignalInfo = WindowToEmbedderCallback
-    connectSignal _ = connectWindowToEmbedder
-
-type instance SignalList Window = '[ '("create-surface", WindowCreateSurfaceSignalInfo), '("from-embedder", WindowFromEmbedderSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("pick-embedded-child", WindowPickEmbeddedChildSignalInfo), '("to-embedder", WindowToEmbedderSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]
-
diff --git a/gi-gdk.cabal b/gi-gdk.cabal
--- a/gi-gdk.cabal
+++ b/gi-gdk.cabal
@@ -1,6 +1,6 @@
 -- Autogenerated, do not edit.
 name:               gi-gdk
-version:            0.3.18.10
+version:            0.3.18.12
 synopsis:           Gdk bindings
 description:        Bindings for Gdk, autogenerated by haskell-gi.
 homepage:           https://github.com/haskell-gi/haskell-gi
@@ -14,16 +14,75 @@
 
 library
     default-language:   Haskell2010
-    exposed-modules:    GI.Gdk, GI.GdkAttributes, GI.GdkSignals
+    default-extensions: OverloadedStrings, NegativeLiterals, ConstraintKinds, TypeFamilies, MultiParamTypeClasses, KindSignatures, FlexibleInstances, UndecidableInstances, DataKinds, FlexibleContexts
+    other-extensions:   PatternSynonyms ScopedTypeVariables, ViewPatterns
+    ghc-options:        -fno-warn-unused-imports -fno-warn-warnings-deprecations
+    exposed-modules:    GI.Gdk.Types
+                        GI.Gdk
+                        GI.Gdk.Callbacks
+                        GI.Gdk.Constants
+                        GI.Gdk.Enums
+                        GI.Gdk.Flags
+                        GI.Gdk.Functions
+                        GI.Gdk.Objects
+                        GI.Gdk.Objects.AppLaunchContext
+                        GI.Gdk.Objects.Cursor
+                        GI.Gdk.Objects.Device
+                        GI.Gdk.Objects.DeviceManager
+                        GI.Gdk.Objects.Display
+                        GI.Gdk.Objects.DisplayManager
+                        GI.Gdk.Objects.DragContext
+                        GI.Gdk.Objects.FrameClock
+                        GI.Gdk.Objects.GLContext
+                        GI.Gdk.Objects.Keymap
+                        GI.Gdk.Objects.Screen
+                        GI.Gdk.Objects.Visual
+                        GI.Gdk.Objects.Window
+                        GI.Gdk.Structs
+                        GI.Gdk.Structs.Atom
+                        GI.Gdk.Structs.Color
+                        GI.Gdk.Structs.EventAny
+                        GI.Gdk.Structs.EventButton
+                        GI.Gdk.Structs.EventConfigure
+                        GI.Gdk.Structs.EventCrossing
+                        GI.Gdk.Structs.EventDND
+                        GI.Gdk.Structs.EventExpose
+                        GI.Gdk.Structs.EventFocus
+                        GI.Gdk.Structs.EventGrabBroken
+                        GI.Gdk.Structs.EventKey
+                        GI.Gdk.Structs.EventMotion
+                        GI.Gdk.Structs.EventOwnerChange
+                        GI.Gdk.Structs.EventProperty
+                        GI.Gdk.Structs.EventProximity
+                        GI.Gdk.Structs.EventScroll
+                        GI.Gdk.Structs.EventSelection
+                        GI.Gdk.Structs.EventSequence
+                        GI.Gdk.Structs.EventSetting
+                        GI.Gdk.Structs.EventTouch
+                        GI.Gdk.Structs.EventTouchpadPinch
+                        GI.Gdk.Structs.EventTouchpadSwipe
+                        GI.Gdk.Structs.EventVisibility
+                        GI.Gdk.Structs.EventWindowState
+                        GI.Gdk.Structs.FrameTimings
+                        GI.Gdk.Structs.Geometry
+                        GI.Gdk.Structs.KeymapKey
+                        GI.Gdk.Structs.Point
+                        GI.Gdk.Structs.RGBA
+                        GI.Gdk.Structs.Rectangle
+                        GI.Gdk.Structs.TimeCoord
+                        GI.Gdk.Structs.WindowAttr
+                        GI.Gdk.Structs.WindowRedirect
+                        GI.Gdk.Unions
+                        GI.Gdk.Unions.Event
     pkgconfig-depends:  gdk-3.0 >= 3.18
     build-depends: base >= 4.7 && <5,
-        haskell-gi-base >= 0.10 && < 1,
-        gi-glib >= 0.2.46.10 && < 0.3,
-        gi-gobject >= 0.2.46.10 && < 0.3,
-        gi-gdkpixbuf >= 0.2.32.10 && < 0.3,
-        gi-gio >= 0.2.46.10 && < 0.3,
-        gi-pango >= 0.1.38.10 && < 0.2,
-        gi-cairo >= 0.1.14.10 && < 0.2,
+        haskell-gi-base >= 0.12 && < 1,
+        gi-glib >= 0.2.46.12 && < 0.2.47,
+        gi-gobject >= 0.2.46.12 && < 0.2.47,
+        gi-gdkpixbuf >= 0.2.32.12 && < 0.2.33,
+        gi-gio >= 0.2.46.12 && < 0.2.47,
+        gi-pango >= 0.1.38.12 && < 0.1.39,
+        gi-cairo >= 0.1.14.12 && < 0.1.15,
         bytestring >= 0.10,
         containers >= 0.5,
         text >= 1.0,
