packages feed

gi-pango (empty) → 0.1.36.8

raw patch · 6 files changed

+12018/−0 lines, 6 filesdep +basedep +bytestringdep +containerssetup-changed

Dependencies added: base, bytestring, containers, gi-glib, gi-gobject, haskell-gi-base, text, transformers

Files

+ GI/Pango.hs view
@@ -0,0 +1,11374 @@+-- Generated code.++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++{-# LANGUAGE ForeignFunctionInterface, ConstraintKinds,+    TypeFamilies, MultiParamTypeClasses, KindSignatures,+    FlexibleInstances, UndecidableInstances, DataKinds,+    OverloadedStrings, NegativeLiterals, FlexibleContexts #-}++module GI.Pango 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++-- Enum Alignment++data Alignment = +      AlignmentLeft+    | AlignmentCenter+    | AlignmentRight+    | AnotherAlignment Int+    deriving (Show, Eq)++instance Enum Alignment where+    fromEnum AlignmentLeft = 0+    fromEnum AlignmentCenter = 1+    fromEnum AlignmentRight = 2+    fromEnum (AnotherAlignment k) = k++    toEnum 0 = AlignmentLeft+    toEnum 1 = AlignmentCenter+    toEnum 2 = AlignmentRight+    toEnum k = AnotherAlignment k++foreign import ccall "pango_alignment_get_type" c_pango_alignment_get_type :: +    IO GType++instance BoxedEnum Alignment where+    boxedEnumType _ = c_pango_alignment_get_type++-- struct Analysis+newtype Analysis = Analysis (ForeignPtr Analysis)+noAnalysis :: Maybe Analysis+noAnalysis = Nothing++analysisReadShapeEngine :: Analysis -> IO EngineShape+analysisReadShapeEngine s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr EngineShape)+    val' <- (newObject EngineShape) val+    return val'++analysisReadLangEngine :: Analysis -> IO EngineLang+analysisReadLangEngine s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr EngineLang)+    val' <- (newObject EngineLang) val+    return val'++analysisReadFont :: Analysis -> IO Font+analysisReadFont s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO (Ptr Font)+    val' <- (newObject Font) val+    return val'++analysisReadLevel :: Analysis -> IO Word8+analysisReadLevel s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO Word8+    return val++analysisReadGravity :: Analysis -> IO Word8+analysisReadGravity s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 25) :: IO Word8+    return val++analysisReadFlags :: Analysis -> IO Word8+analysisReadFlags s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 26) :: IO Word8+    return val++analysisReadScript :: Analysis -> IO Word8+analysisReadScript s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 27) :: IO Word8+    return val++analysisReadLanguage :: Analysis -> IO Language+analysisReadLanguage s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO (Ptr Language)+    val' <- (newBoxed Language) val+    return val'++analysisReadExtraAttrs :: Analysis -> IO ([Ptr ()])+analysisReadExtraAttrs s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 40) :: IO (Ptr (GSList (Ptr ())))+    val' <- unpackGSList val+    return val'++-- struct AttrClass+newtype AttrClass = AttrClass (ForeignPtr AttrClass)+noAttrClass :: Maybe AttrClass+noAttrClass = Nothing++attrClassReadType :: AttrClass -> IO AttrType+attrClassReadType s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++-- XXX Skipped getter for "AttrClass:destroy" :: Not implemented: "Wrapping foreign callbacks is not supported yet"++-- XXX Skipped getter for "AttrClass:equal" :: Not implemented: "Wrapping foreign callbacks is not supported yet"++-- struct AttrColor+newtype AttrColor = AttrColor (ForeignPtr AttrColor)+noAttrColor :: Maybe AttrColor+noAttrColor = Nothing++attrColorReadAttr :: AttrColor -> IO Attribute+attrColorReadAttr s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr Attribute)+    val' <- (newPtr 16 Attribute) val+    return val'++attrColorReadColor :: AttrColor -> IO Color+attrColorReadColor s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO (Ptr Color)+    val' <- (newBoxed Color) val+    return val'++-- callback AttrFilterFunc+attrFilterFuncClosure :: AttrFilterFunc -> IO Closure+attrFilterFuncClosure cb = newCClosure =<< mkAttrFilterFunc wrapped+    where wrapped = attrFilterFuncWrapper Nothing cb++type AttrFilterFuncC =+    Ptr Attribute ->+    Ptr () ->+    IO CInt++foreign import ccall "wrapper"+    mkAttrFilterFunc :: AttrFilterFuncC -> IO (FunPtr AttrFilterFuncC)++type AttrFilterFunc =+    Attribute ->+    IO Bool++noAttrFilterFunc :: Maybe AttrFilterFunc+noAttrFilterFunc = Nothing++attrFilterFuncWrapper ::+    Maybe (Ptr (FunPtr (AttrFilterFuncC))) ->+    AttrFilterFunc ->+    Ptr Attribute ->+    Ptr () ->+    IO CInt+attrFilterFuncWrapper funptrptr _cb attribute _ = do+    attribute' <- (newPtr 16 Attribute) attribute+    result <- _cb  attribute'+    maybeReleaseFunPtr funptrptr+    let result' = (fromIntegral . fromEnum) result+    return result'++-- struct AttrFloat+newtype AttrFloat = AttrFloat (ForeignPtr AttrFloat)+noAttrFloat :: Maybe AttrFloat+noAttrFloat = Nothing++attrFloatReadAttr :: AttrFloat -> IO Attribute+attrFloatReadAttr s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr Attribute)+    val' <- (newPtr 16 Attribute) val+    return val'++attrFloatReadValue :: AttrFloat -> IO Double+attrFloatReadValue s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO CDouble+    let val' = realToFrac val+    return val'++-- struct AttrFontDesc+newtype AttrFontDesc = AttrFontDesc (ForeignPtr AttrFontDesc)+noAttrFontDesc :: Maybe AttrFontDesc+noAttrFontDesc = Nothing++attrFontDescReadAttr :: AttrFontDesc -> IO Attribute+attrFontDescReadAttr s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr Attribute)+    val' <- (newPtr 16 Attribute) val+    return val'++attrFontDescReadDesc :: AttrFontDesc -> IO FontDescription+attrFontDescReadDesc s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO (Ptr FontDescription)+    val' <- (newBoxed FontDescription) val+    return val'++-- struct AttrInt+newtype AttrInt = AttrInt (ForeignPtr AttrInt)+noAttrInt :: Maybe AttrInt+noAttrInt = Nothing++attrIntReadAttr :: AttrInt -> IO Attribute+attrIntReadAttr s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr Attribute)+    val' <- (newPtr 16 Attribute) val+    return val'++attrIntReadValue :: AttrInt -> IO Int32+attrIntReadValue s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO Int32+    return val++-- struct AttrIterator+newtype AttrIterator = AttrIterator (ForeignPtr AttrIterator)+noAttrIterator :: Maybe AttrIterator+noAttrIterator = Nothing++-- method AttrIterator::destroy+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_attr_iterator_destroy" pango_attr_iterator_destroy :: +    Ptr AttrIterator ->                     -- _obj : TInterface "Pango" "AttrIterator"+    IO ()+++attrIteratorDestroy ::+    (MonadIO m) =>+    AttrIterator ->                         -- _obj+    m ()+attrIteratorDestroy _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_attr_iterator_destroy _obj'+    touchManagedPtr _obj+    return ()++-- method AttrIterator::get_attrs+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TGSList (TInterface "Pango" "Attribute")+-- throws : False+-- Skip return : False++foreign import ccall "pango_attr_iterator_get_attrs" pango_attr_iterator_get_attrs :: +    Ptr AttrIterator ->                     -- _obj : TInterface "Pango" "AttrIterator"+    IO (Ptr (GSList (Ptr Attribute)))+++attrIteratorGetAttrs ::+    (MonadIO m) =>+    AttrIterator ->                         -- _obj+    m [Attribute]+attrIteratorGetAttrs _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_attr_iterator_get_attrs _obj'+    result' <- unpackGSList result+    result'' <- mapM (wrapPtr Attribute) result'+    g_slist_free result+    touchManagedPtr _obj+    return result''++-- method AttrIterator::get_font+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "language", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "extra_attrs", argType = TGSList (TInterface "Pango" "Attribute"), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "language", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "extra_attrs", argType = TGSList (TInterface "Pango" "Attribute"), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_attr_iterator_get_font" pango_attr_iterator_get_font :: +    Ptr AttrIterator ->                     -- _obj : TInterface "Pango" "AttrIterator"+    Ptr FontDescription ->                  -- desc : TInterface "Pango" "FontDescription"+    Ptr Language ->                         -- language : TInterface "Pango" "Language"+    Ptr (GSList (Ptr Attribute)) ->         -- extra_attrs : TGSList (TInterface "Pango" "Attribute")+    IO ()+++attrIteratorGetFont ::+    (MonadIO m) =>+    AttrIterator ->                         -- _obj+    FontDescription ->                      -- desc+    Maybe (Language) ->                     -- language+    [Attribute] ->                          -- extra_attrs+    m ()+attrIteratorGetFont _obj desc language extra_attrs = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let desc' = unsafeManagedPtrGetPtr desc+    maybeLanguage <- case language of+        Nothing -> return nullPtr+        Just jLanguage -> do+            let jLanguage' = unsafeManagedPtrGetPtr jLanguage+            return jLanguage'+    let extra_attrs' = map unsafeManagedPtrGetPtr extra_attrs+    extra_attrs'' <- packGSList extra_attrs'+    pango_attr_iterator_get_font _obj' desc' maybeLanguage extra_attrs''+    touchManagedPtr _obj+    touchManagedPtr desc+    whenJust language touchManagedPtr+    mapM_ touchManagedPtr extra_attrs+    return ()++-- method AttrIterator::next+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_attr_iterator_next" pango_attr_iterator_next :: +    Ptr AttrIterator ->                     -- _obj : TInterface "Pango" "AttrIterator"+    IO CInt+++attrIteratorNext ::+    (MonadIO m) =>+    AttrIterator ->                         -- _obj+    m Bool+attrIteratorNext _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_attr_iterator_next _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- method AttrIterator::range+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "end", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrIterator", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_attr_iterator_range" pango_attr_iterator_range :: +    Ptr AttrIterator ->                     -- _obj : TInterface "Pango" "AttrIterator"+    Ptr Int32 ->                            -- start : TBasicType TInt32+    Ptr Int32 ->                            -- end : TBasicType TInt32+    IO ()+++attrIteratorRange ::+    (MonadIO m) =>+    AttrIterator ->                         -- _obj+    m (Int32,Int32)+attrIteratorRange _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    start <- allocMem :: IO (Ptr Int32)+    end <- allocMem :: IO (Ptr Int32)+    pango_attr_iterator_range _obj' start end+    start' <- peek start+    end' <- peek end+    touchManagedPtr _obj+    freeMem start+    freeMem end+    return (start', end')++-- struct AttrLanguage+newtype AttrLanguage = AttrLanguage (ForeignPtr AttrLanguage)+noAttrLanguage :: Maybe AttrLanguage+noAttrLanguage = Nothing++attrLanguageReadAttr :: AttrLanguage -> IO Attribute+attrLanguageReadAttr s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr Attribute)+    val' <- (newPtr 16 Attribute) val+    return val'++attrLanguageReadValue :: AttrLanguage -> IO Language+attrLanguageReadValue s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO (Ptr Language)+    val' <- (newBoxed Language) val+    return val'++-- struct AttrList+newtype AttrList = AttrList (ForeignPtr AttrList)+noAttrList :: Maybe AttrList+noAttrList = Nothing++foreign import ccall "pango_attr_list_get_type" c_pango_attr_list_get_type :: +    IO GType++instance BoxedObject AttrList where+    boxedType _ = c_pango_attr_list_get_type++-- method AttrList::new+-- method type : Constructor+-- Args : []+-- Lengths : []+-- hInArgs : []+-- returnType : TInterface "Pango" "AttrList"+-- throws : False+-- Skip return : False++foreign import ccall "pango_attr_list_new" pango_attr_list_new :: +    IO (Ptr AttrList)+++attrListNew ::+    (MonadIO m) =>+    m AttrList+attrListNew  = liftIO $ do+    result <- pango_attr_list_new+    result' <- (wrapBoxed AttrList) result+    return result'++-- method AttrList::change+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attr", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attr", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_attr_list_change" pango_attr_list_change :: +    Ptr AttrList ->                         -- _obj : TInterface "Pango" "AttrList"+    Ptr Attribute ->                        -- attr : TInterface "Pango" "Attribute"+    IO ()+++attrListChange ::+    (MonadIO m) =>+    AttrList ->                             -- _obj+    Attribute ->                            -- attr+    m ()+attrListChange _obj attr = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let attr' = unsafeManagedPtrGetPtr attr+    pango_attr_list_change _obj' attr'+    touchManagedPtr _obj+    touchManagedPtr attr+    return ()++-- method AttrList::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "AttrList"+-- throws : False+-- Skip return : False++foreign import ccall "pango_attr_list_copy" pango_attr_list_copy :: +    Ptr AttrList ->                         -- _obj : TInterface "Pango" "AttrList"+    IO (Ptr AttrList)+++attrListCopy ::+    (MonadIO m) =>+    AttrList ->                             -- _obj+    m AttrList+attrListCopy _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_attr_list_copy _obj'+    result' <- (wrapBoxed AttrList) result+    touchManagedPtr _obj+    return result'++-- method AttrList::filter+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Pango" "AttrFilterFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Pango" "AttrFilterFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "AttrList"+-- throws : False+-- Skip return : False++foreign import ccall "pango_attr_list_filter" pango_attr_list_filter :: +    Ptr AttrList ->                         -- _obj : TInterface "Pango" "AttrList"+    FunPtr AttrFilterFuncC ->               -- func : TInterface "Pango" "AttrFilterFunc"+    Ptr () ->                               -- data : TBasicType TVoid+    IO (Ptr AttrList)+++attrListFilter ::+    (MonadIO m) =>+    AttrList ->                             -- _obj+    AttrFilterFunc ->                       -- func+    m AttrList+attrListFilter _obj func = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    func' <- mkAttrFilterFunc (attrFilterFuncWrapper Nothing func)+    let data_ = nullPtr+    result <- pango_attr_list_filter _obj' func' data_+    result' <- (wrapBoxed AttrList) result+    safeFreeFunPtr $ castFunPtrToPtr func'+    touchManagedPtr _obj+    return result'++-- method AttrList::insert+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attr", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attr", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_attr_list_insert" pango_attr_list_insert :: +    Ptr AttrList ->                         -- _obj : TInterface "Pango" "AttrList"+    Ptr Attribute ->                        -- attr : TInterface "Pango" "Attribute"+    IO ()+++attrListInsert ::+    (MonadIO m) =>+    AttrList ->                             -- _obj+    Attribute ->                            -- attr+    m ()+attrListInsert _obj attr = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let attr' = unsafeManagedPtrGetPtr attr+    pango_attr_list_insert _obj' attr'+    touchManagedPtr _obj+    touchManagedPtr attr+    return ()++-- method AttrList::insert_before+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attr", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attr", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_attr_list_insert_before" pango_attr_list_insert_before :: +    Ptr AttrList ->                         -- _obj : TInterface "Pango" "AttrList"+    Ptr Attribute ->                        -- attr : TInterface "Pango" "Attribute"+    IO ()+++attrListInsertBefore ::+    (MonadIO m) =>+    AttrList ->                             -- _obj+    Attribute ->                            -- attr+    m ()+attrListInsertBefore _obj attr = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let attr' = unsafeManagedPtrGetPtr attr+    pango_attr_list_insert_before _obj' attr'+    touchManagedPtr _obj+    touchManagedPtr attr+    return ()++-- method AttrList::ref+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "AttrList"+-- throws : False+-- Skip return : False++foreign import ccall "pango_attr_list_ref" pango_attr_list_ref :: +    Ptr AttrList ->                         -- _obj : TInterface "Pango" "AttrList"+    IO (Ptr AttrList)+++attrListRef ::+    (MonadIO m) =>+    AttrList ->                             -- _obj+    m AttrList+attrListRef _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_attr_list_ref _obj'+    result' <- (wrapBoxed AttrList) result+    touchManagedPtr _obj+    return result'++-- method AttrList::splice+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "other", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "other", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", 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 "pango_attr_list_splice" pango_attr_list_splice :: +    Ptr AttrList ->                         -- _obj : TInterface "Pango" "AttrList"+    Ptr AttrList ->                         -- other : TInterface "Pango" "AttrList"+    Int32 ->                                -- pos : TBasicType TInt32+    Int32 ->                                -- len : TBasicType TInt32+    IO ()+++attrListSplice ::+    (MonadIO m) =>+    AttrList ->                             -- _obj+    AttrList ->                             -- other+    Int32 ->                                -- pos+    Int32 ->                                -- len+    m ()+attrListSplice _obj other pos len = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let other' = unsafeManagedPtrGetPtr other+    pango_attr_list_splice _obj' other' pos len+    touchManagedPtr _obj+    touchManagedPtr other+    return ()++-- method AttrList::unref+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_attr_list_unref" pango_attr_list_unref :: +    Ptr AttrList ->                         -- _obj : TInterface "Pango" "AttrList"+    IO ()+++attrListUnref ::+    (MonadIO m) =>+    AttrList ->                             -- _obj+    m ()+attrListUnref _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_attr_list_unref _obj'+    touchManagedPtr _obj+    return ()++-- struct AttrShape+newtype AttrShape = AttrShape (ForeignPtr AttrShape)+noAttrShape :: Maybe AttrShape+noAttrShape = Nothing++attrShapeReadAttr :: AttrShape -> IO Attribute+attrShapeReadAttr s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr Attribute)+    val' <- (newPtr 16 Attribute) val+    return val'++attrShapeReadInkRect :: AttrShape -> IO Rectangle+attrShapeReadInkRect s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO (Ptr Rectangle)+    val' <- (newPtr 16 Rectangle) val+    return val'++attrShapeReadLogicalRect :: AttrShape -> IO Rectangle+attrShapeReadLogicalRect s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO (Ptr Rectangle)+    val' <- (newPtr 16 Rectangle) val+    return val'++attrShapeReadData :: AttrShape -> IO (Ptr ())+attrShapeReadData s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 48) :: IO (Ptr ())+    return val++-- XXX Skipped getter for "AttrShape:destroy_func" :: Not implemented: "Wrapping foreign callbacks is not supported yet"++-- struct AttrSize+newtype AttrSize = AttrSize (ForeignPtr AttrSize)+noAttrSize :: Maybe AttrSize+noAttrSize = Nothing++attrSizeReadAttr :: AttrSize -> IO Attribute+attrSizeReadAttr s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr Attribute)+    val' <- (newPtr 16 Attribute) val+    return val'++attrSizeReadSize :: AttrSize -> IO Int32+attrSizeReadSize s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO Int32+    return val++attrSizeReadAbsolute :: AttrSize -> IO Word32+attrSizeReadAbsolute s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 20) :: IO Word32+    return val++-- struct AttrString+newtype AttrString = AttrString (ForeignPtr AttrString)+noAttrString :: Maybe AttrString+noAttrString = Nothing++attrStringReadAttr :: AttrString -> IO Attribute+attrStringReadAttr s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr Attribute)+    val' <- (newPtr 16 Attribute) val+    return val'++attrStringReadValue :: AttrString -> IO T.Text+attrStringReadValue s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO CString+    val' <- cstringToText val+    return val'++-- Enum AttrType++data AttrType = +      AttrTypeInvalid+    | AttrTypeLanguage+    | AttrTypeFamily+    | AttrTypeStyle+    | AttrTypeWeight+    | AttrTypeVariant+    | AttrTypeStretch+    | AttrTypeSize+    | AttrTypeFontDesc+    | AttrTypeForeground+    | AttrTypeBackground+    | AttrTypeUnderline+    | AttrTypeStrikethrough+    | AttrTypeRise+    | AttrTypeShape+    | AttrTypeScale+    | AttrTypeFallback+    | AttrTypeLetterSpacing+    | AttrTypeUnderlineColor+    | AttrTypeStrikethroughColor+    | AttrTypeAbsoluteSize+    | AttrTypeGravity+    | AttrTypeGravityHint+    | AnotherAttrType Int+    deriving (Show, Eq)++instance Enum AttrType where+    fromEnum AttrTypeInvalid = 0+    fromEnum AttrTypeLanguage = 1+    fromEnum AttrTypeFamily = 2+    fromEnum AttrTypeStyle = 3+    fromEnum AttrTypeWeight = 4+    fromEnum AttrTypeVariant = 5+    fromEnum AttrTypeStretch = 6+    fromEnum AttrTypeSize = 7+    fromEnum AttrTypeFontDesc = 8+    fromEnum AttrTypeForeground = 9+    fromEnum AttrTypeBackground = 10+    fromEnum AttrTypeUnderline = 11+    fromEnum AttrTypeStrikethrough = 12+    fromEnum AttrTypeRise = 13+    fromEnum AttrTypeShape = 14+    fromEnum AttrTypeScale = 15+    fromEnum AttrTypeFallback = 16+    fromEnum AttrTypeLetterSpacing = 17+    fromEnum AttrTypeUnderlineColor = 18+    fromEnum AttrTypeStrikethroughColor = 19+    fromEnum AttrTypeAbsoluteSize = 20+    fromEnum AttrTypeGravity = 21+    fromEnum AttrTypeGravityHint = 22+    fromEnum (AnotherAttrType k) = k++    toEnum 0 = AttrTypeInvalid+    toEnum 1 = AttrTypeLanguage+    toEnum 2 = AttrTypeFamily+    toEnum 3 = AttrTypeStyle+    toEnum 4 = AttrTypeWeight+    toEnum 5 = AttrTypeVariant+    toEnum 6 = AttrTypeStretch+    toEnum 7 = AttrTypeSize+    toEnum 8 = AttrTypeFontDesc+    toEnum 9 = AttrTypeForeground+    toEnum 10 = AttrTypeBackground+    toEnum 11 = AttrTypeUnderline+    toEnum 12 = AttrTypeStrikethrough+    toEnum 13 = AttrTypeRise+    toEnum 14 = AttrTypeShape+    toEnum 15 = AttrTypeScale+    toEnum 16 = AttrTypeFallback+    toEnum 17 = AttrTypeLetterSpacing+    toEnum 18 = AttrTypeUnderlineColor+    toEnum 19 = AttrTypeStrikethroughColor+    toEnum 20 = AttrTypeAbsoluteSize+    toEnum 21 = AttrTypeGravity+    toEnum 22 = AttrTypeGravityHint+    toEnum k = AnotherAttrType k++foreign import ccall "pango_attr_type_get_type" c_pango_attr_type_get_type :: +    IO GType++instance BoxedEnum AttrType where+    boxedEnumType _ = c_pango_attr_type_get_type++-- struct Attribute+newtype Attribute = Attribute (ForeignPtr Attribute)+noAttribute :: Maybe Attribute+noAttribute = Nothing++attributeReadKlass :: Attribute -> IO AttrClass+attributeReadKlass s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr AttrClass)+    val' <- (newPtr 32 AttrClass) val+    return val'++attributeReadStartIndex :: Attribute -> IO Word32+attributeReadStartIndex s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO Word32+    return val++attributeReadEndIndex :: Attribute -> IO Word32+attributeReadEndIndex s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 12) :: IO Word32+    return val++-- method Attribute::destroy+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_attribute_destroy" pango_attribute_destroy :: +    Ptr Attribute ->                        -- _obj : TInterface "Pango" "Attribute"+    IO ()+++attributeDestroy ::+    (MonadIO m) =>+    Attribute ->                            -- _obj+    m ()+attributeDestroy _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_attribute_destroy _obj'+    touchManagedPtr _obj+    return ()++-- method Attribute::equal+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attr2", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attr2", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_attribute_equal" pango_attribute_equal :: +    Ptr Attribute ->                        -- _obj : TInterface "Pango" "Attribute"+    Ptr Attribute ->                        -- attr2 : TInterface "Pango" "Attribute"+    IO CInt+++attributeEqual ::+    (MonadIO m) =>+    Attribute ->                            -- _obj+    Attribute ->                            -- attr2+    m Bool+attributeEqual _obj attr2 = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let attr2' = unsafeManagedPtrGetPtr attr2+    result <- pango_attribute_equal _obj' attr2'+    let result' = (/= 0) result+    touchManagedPtr _obj+    touchManagedPtr attr2+    return result'++-- method Attribute::init+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "klass", argType = TInterface "Pango" "AttrClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "klass", argType = TInterface "Pango" "AttrClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_attribute_init" pango_attribute_init :: +    Ptr Attribute ->                        -- _obj : TInterface "Pango" "Attribute"+    Ptr AttrClass ->                        -- klass : TInterface "Pango" "AttrClass"+    IO ()+++attributeInit ::+    (MonadIO m) =>+    Attribute ->                            -- _obj+    AttrClass ->                            -- klass+    m ()+attributeInit _obj klass = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let klass' = unsafeManagedPtrGetPtr klass+    pango_attribute_init _obj' klass'+    touchManagedPtr _obj+    touchManagedPtr klass+    return ()++-- Enum BidiType++data BidiType = +      BidiTypeL+    | BidiTypeLre+    | BidiTypeLro+    | BidiTypeR+    | BidiTypeAl+    | BidiTypeRle+    | BidiTypeRlo+    | BidiTypePdf+    | BidiTypeEn+    | BidiTypeEs+    | BidiTypeEt+    | BidiTypeAn+    | BidiTypeCs+    | BidiTypeNsm+    | BidiTypeBn+    | BidiTypeB+    | BidiTypeS+    | BidiTypeWs+    | BidiTypeOn+    | AnotherBidiType Int+    deriving (Show, Eq)++instance Enum BidiType where+    fromEnum BidiTypeL = 0+    fromEnum BidiTypeLre = 1+    fromEnum BidiTypeLro = 2+    fromEnum BidiTypeR = 3+    fromEnum BidiTypeAl = 4+    fromEnum BidiTypeRle = 5+    fromEnum BidiTypeRlo = 6+    fromEnum BidiTypePdf = 7+    fromEnum BidiTypeEn = 8+    fromEnum BidiTypeEs = 9+    fromEnum BidiTypeEt = 10+    fromEnum BidiTypeAn = 11+    fromEnum BidiTypeCs = 12+    fromEnum BidiTypeNsm = 13+    fromEnum BidiTypeBn = 14+    fromEnum BidiTypeB = 15+    fromEnum BidiTypeS = 16+    fromEnum BidiTypeWs = 17+    fromEnum BidiTypeOn = 18+    fromEnum (AnotherBidiType k) = k++    toEnum 0 = BidiTypeL+    toEnum 1 = BidiTypeLre+    toEnum 2 = BidiTypeLro+    toEnum 3 = BidiTypeR+    toEnum 4 = BidiTypeAl+    toEnum 5 = BidiTypeRle+    toEnum 6 = BidiTypeRlo+    toEnum 7 = BidiTypePdf+    toEnum 8 = BidiTypeEn+    toEnum 9 = BidiTypeEs+    toEnum 10 = BidiTypeEt+    toEnum 11 = BidiTypeAn+    toEnum 12 = BidiTypeCs+    toEnum 13 = BidiTypeNsm+    toEnum 14 = BidiTypeBn+    toEnum 15 = BidiTypeB+    toEnum 16 = BidiTypeS+    toEnum 17 = BidiTypeWs+    toEnum 18 = BidiTypeOn+    toEnum k = AnotherBidiType k++foreign import ccall "pango_bidi_type_get_type" c_pango_bidi_type_get_type :: +    IO GType++instance BoxedEnum BidiType where+    boxedEnumType _ = c_pango_bidi_type_get_type++-- struct Color+newtype Color = Color (ForeignPtr Color)+noColor :: Maybe Color+noColor = Nothing++foreign import ccall "pango_color_get_type" c_pango_color_get_type :: +    IO GType++instance BoxedObject Color where+    boxedType _ = c_pango_color_get_type++colorReadRed :: Color -> IO Word16+colorReadRed s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO Word16+    return val++colorReadGreen :: Color -> IO Word16+colorReadGreen s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 2) :: IO Word16+    return val++colorReadBlue :: Color -> IO Word16+colorReadBlue s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 4) :: IO Word16+    return val++-- method Color::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Color"+-- throws : False+-- Skip return : False++foreign import ccall "pango_color_copy" pango_color_copy :: +    Ptr Color ->                            -- _obj : TInterface "Pango" "Color"+    IO (Ptr Color)+++colorCopy ::+    (MonadIO m) =>+    Color ->                                -- _obj+    m Color+colorCopy _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_color_copy _obj'+    result' <- (wrapBoxed Color) result+    touchManagedPtr _obj+    return result'++-- method Color::free+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_color_free" pango_color_free :: +    Ptr Color ->                            -- _obj : TInterface "Pango" "Color"+    IO ()+++colorFree ::+    (MonadIO m) =>+    Color ->                                -- _obj+    m ()+colorFree _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_color_free _obj'+    touchManagedPtr _obj+    return ()++-- method Color::parse+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Color", 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 "Pango" "Color", 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 "pango_color_parse" pango_color_parse :: +    Ptr Color ->                            -- _obj : TInterface "Pango" "Color"+    CString ->                              -- spec : TBasicType TUTF8+    IO CInt+++colorParse ::+    (MonadIO m) =>+    Color ->                                -- _obj+    T.Text ->                               -- spec+    m Bool+colorParse _obj spec = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    spec' <- textToCString spec+    result <- pango_color_parse _obj' spec'+    let result' = (/= 0) result+    touchManagedPtr _obj+    freeMem spec'+    return result'++-- method Color::to_string+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TUTF8+-- throws : False+-- Skip return : False++foreign import ccall "pango_color_to_string" pango_color_to_string :: +    Ptr Color ->                            -- _obj : TInterface "Pango" "Color"+    IO CString+++colorToString ::+    (MonadIO m) =>+    Color ->                                -- _obj+    m T.Text+colorToString _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_color_to_string _obj'+    result' <- cstringToText result+    freeMem result+    touchManagedPtr _obj+    return result'++-- object Context +newtype Context = Context (ForeignPtr Context)+noContext :: Maybe Context+noContext = Nothing++foreign import ccall "pango_context_get_type"+    c_pango_context_get_type :: IO GType++type instance ParentTypes Context = '[GObject.Object]++instance GObject Context where+    gobjectIsInitiallyUnowned _ = False+    gobjectType _ = c_pango_context_get_type+    ++class GObject o => ContextK o+instance (GObject o, IsDescendantOf Context o) => ContextK o++toContext :: ContextK o => o -> IO Context+toContext = unsafeCastTo Context++-- method Context::new+-- method type : Constructor+-- Args : []+-- Lengths : []+-- hInArgs : []+-- returnType : TInterface "Pango" "Context"+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_new" pango_context_new :: +    IO (Ptr Context)+++contextNew ::+    (MonadIO m) =>+    m Context+contextNew  = liftIO $ do+    result <- pango_context_new+    result' <- (wrapObject Context) result+    return result'++-- method Context::changed+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_changed" pango_context_changed :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    IO ()+++contextChanged ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    m ()+contextChanged _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    pango_context_changed _obj'+    touchManagedPtr _obj+    return ()++-- method Context::get_base_dir+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Direction"+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_get_base_dir" pango_context_get_base_dir :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    IO CUInt+++contextGetBaseDir ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    m Direction+contextGetBaseDir _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_context_get_base_dir _obj'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    return result'++-- method Context::get_base_gravity+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Gravity"+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_get_base_gravity" pango_context_get_base_gravity :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    IO CUInt+++contextGetBaseGravity ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    m Gravity+contextGetBaseGravity _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_context_get_base_gravity _obj'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    return result'++-- method Context::get_font_description+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "FontDescription"+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_get_font_description" pango_context_get_font_description :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    IO (Ptr FontDescription)+++contextGetFontDescription ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    m FontDescription+contextGetFontDescription _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_context_get_font_description _obj'+    result' <- (newBoxed FontDescription) result+    touchManagedPtr _obj+    return result'++-- method Context::get_font_map+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "FontMap"+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_get_font_map" pango_context_get_font_map :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    IO (Ptr FontMap)+++contextGetFontMap ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    m FontMap+contextGetFontMap _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_context_get_font_map _obj'+    result' <- (newObject FontMap) result+    touchManagedPtr _obj+    return result'++-- method Context::get_gravity+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Gravity"+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_get_gravity" pango_context_get_gravity :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    IO CUInt+++contextGetGravity ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    m Gravity+contextGetGravity _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_context_get_gravity _obj'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    return result'++-- method Context::get_gravity_hint+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "GravityHint"+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_get_gravity_hint" pango_context_get_gravity_hint :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    IO CUInt+++contextGetGravityHint ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    m GravityHint+contextGetGravityHint _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_context_get_gravity_hint _obj'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    return result'++-- method Context::get_language+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Language"+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_get_language" pango_context_get_language :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    IO (Ptr Language)+++contextGetLanguage ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    m Language+contextGetLanguage _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_context_get_language _obj'+    result' <- (wrapBoxed Language) result+    touchManagedPtr _obj+    return result'++-- method Context::get_matrix+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Matrix"+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_get_matrix" pango_context_get_matrix :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    IO (Ptr Matrix)+++contextGetMatrix ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    m Matrix+contextGetMatrix _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_context_get_matrix _obj'+    result' <- (newBoxed Matrix) result+    touchManagedPtr _obj+    return result'++-- method Context::get_metrics+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "language", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "language", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "FontMetrics"+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_get_metrics" pango_context_get_metrics :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    Ptr FontDescription ->                  -- desc : TInterface "Pango" "FontDescription"+    Ptr Language ->                         -- language : TInterface "Pango" "Language"+    IO (Ptr FontMetrics)+++contextGetMetrics ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    Maybe (FontDescription) ->              -- desc+    Maybe (Language) ->                     -- language+    m FontMetrics+contextGetMetrics _obj desc language = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    maybeDesc <- case desc of+        Nothing -> return nullPtr+        Just jDesc -> do+            let jDesc' = unsafeManagedPtrGetPtr jDesc+            return jDesc'+    maybeLanguage <- case language of+        Nothing -> return nullPtr+        Just jLanguage -> do+            let jLanguage' = unsafeManagedPtrGetPtr jLanguage+            return jLanguage'+    result <- pango_context_get_metrics _obj' maybeDesc maybeLanguage+    result' <- (wrapBoxed FontMetrics) result+    touchManagedPtr _obj+    whenJust desc touchManagedPtr+    whenJust language touchManagedPtr+    return result'++-- method Context::get_serial+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TUInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_get_serial" pango_context_get_serial :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    IO Word32+++contextGetSerial ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    m Word32+contextGetSerial _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_context_get_serial _obj'+    touchManagedPtr _obj+    return result++-- method Context::list_families+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "families", argType = TCArray False (-1) 2 (TInterface "Pango" "FontFamily"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferContainer},Arg {argName = "n_families", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : [Arg {argName = "n_families", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_list_families" pango_context_list_families :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    Ptr (Ptr (Ptr FontFamily)) ->           -- families : TCArray False (-1) 2 (TInterface "Pango" "FontFamily")+    Ptr Int32 ->                            -- n_families : TBasicType TInt32+    IO ()+++contextListFamilies ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    m ([FontFamily])+contextListFamilies _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    families <- allocMem :: IO (Ptr (Ptr (Ptr FontFamily)))+    n_families <- allocMem :: IO (Ptr Int32)+    pango_context_list_families _obj' families n_families+    n_families' <- peek n_families+    families' <- peek families+    families'' <- (unpackPtrArrayWithLength n_families') families'+    families''' <- mapM (newObject FontFamily) families''+    freeMem families'+    touchManagedPtr _obj+    freeMem families+    freeMem n_families+    return families'''++-- method Context::load_font+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Font"+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_load_font" pango_context_load_font :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    Ptr FontDescription ->                  -- desc : TInterface "Pango" "FontDescription"+    IO (Ptr Font)+++contextLoadFont ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    FontDescription ->                      -- desc+    m Font+contextLoadFont _obj desc = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let desc' = unsafeManagedPtrGetPtr desc+    result <- pango_context_load_font _obj' desc'+    result' <- (wrapObject Font) result+    touchManagedPtr _obj+    touchManagedPtr desc+    return result'++-- method Context::load_fontset+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "language", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "language", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Fontset"+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_load_fontset" pango_context_load_fontset :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    Ptr FontDescription ->                  -- desc : TInterface "Pango" "FontDescription"+    Ptr Language ->                         -- language : TInterface "Pango" "Language"+    IO (Ptr Fontset)+++contextLoadFontset ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    FontDescription ->                      -- desc+    Language ->                             -- language+    m Fontset+contextLoadFontset _obj desc language = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let desc' = unsafeManagedPtrGetPtr desc+    let language' = unsafeManagedPtrGetPtr language+    result <- pango_context_load_fontset _obj' desc' language'+    result' <- (wrapObject Fontset) result+    touchManagedPtr _obj+    touchManagedPtr desc+    touchManagedPtr language+    return result'++-- method Context::set_base_dir+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "direction", argType = TInterface "Pango" "Direction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "direction", argType = TInterface "Pango" "Direction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_set_base_dir" pango_context_set_base_dir :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    CUInt ->                                -- direction : TInterface "Pango" "Direction"+    IO ()+++contextSetBaseDir ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    Direction ->                            -- direction+    m ()+contextSetBaseDir _obj direction = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let direction' = (fromIntegral . fromEnum) direction+    pango_context_set_base_dir _obj' direction'+    touchManagedPtr _obj+    return ()++-- method Context::set_base_gravity+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "gravity", argType = TInterface "Pango" "Gravity", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "gravity", argType = TInterface "Pango" "Gravity", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_set_base_gravity" pango_context_set_base_gravity :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    CUInt ->                                -- gravity : TInterface "Pango" "Gravity"+    IO ()+++contextSetBaseGravity ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    Gravity ->                              -- gravity+    m ()+contextSetBaseGravity _obj gravity = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let gravity' = (fromIntegral . fromEnum) gravity+    pango_context_set_base_gravity _obj' gravity'+    touchManagedPtr _obj+    return ()++-- method Context::set_font_description+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_set_font_description" pango_context_set_font_description :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    Ptr FontDescription ->                  -- desc : TInterface "Pango" "FontDescription"+    IO ()+++contextSetFontDescription ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    FontDescription ->                      -- desc+    m ()+contextSetFontDescription _obj desc = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let desc' = unsafeManagedPtrGetPtr desc+    pango_context_set_font_description _obj' desc'+    touchManagedPtr _obj+    touchManagedPtr desc+    return ()++-- method Context::set_font_map+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "font_map", argType = TInterface "Pango" "FontMap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "font_map", argType = TInterface "Pango" "FontMap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_set_font_map" pango_context_set_font_map :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    Ptr FontMap ->                          -- font_map : TInterface "Pango" "FontMap"+    IO ()+++contextSetFontMap ::+    (MonadIO m, ContextK a, FontMapK b) =>+    a ->                                    -- _obj+    b ->                                    -- font_map+    m ()+contextSetFontMap _obj font_map = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let font_map' = unsafeManagedPtrCastPtr font_map+    pango_context_set_font_map _obj' font_map'+    touchManagedPtr _obj+    touchManagedPtr font_map+    return ()++-- method Context::set_gravity_hint+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hint", argType = TInterface "Pango" "GravityHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hint", argType = TInterface "Pango" "GravityHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_set_gravity_hint" pango_context_set_gravity_hint :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    CUInt ->                                -- hint : TInterface "Pango" "GravityHint"+    IO ()+++contextSetGravityHint ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    GravityHint ->                          -- hint+    m ()+contextSetGravityHint _obj hint = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let hint' = (fromIntegral . fromEnum) hint+    pango_context_set_gravity_hint _obj' hint'+    touchManagedPtr _obj+    return ()++-- method Context::set_language+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "language", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "language", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_set_language" pango_context_set_language :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    Ptr Language ->                         -- language : TInterface "Pango" "Language"+    IO ()+++contextSetLanguage ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    Language ->                             -- language+    m ()+contextSetLanguage _obj language = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let language' = unsafeManagedPtrGetPtr language+    pango_context_set_language _obj' language'+    touchManagedPtr _obj+    touchManagedPtr language+    return ()++-- method Context::set_matrix+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "matrix", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "matrix", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_context_set_matrix" pango_context_set_matrix :: +    Ptr Context ->                          -- _obj : TInterface "Pango" "Context"+    Ptr Matrix ->                           -- matrix : TInterface "Pango" "Matrix"+    IO ()+++contextSetMatrix ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- _obj+    Maybe (Matrix) ->                       -- matrix+    m ()+contextSetMatrix _obj matrix = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    maybeMatrix <- case matrix of+        Nothing -> return nullPtr+        Just jMatrix -> do+            let jMatrix' = unsafeManagedPtrGetPtr jMatrix+            return jMatrix'+    pango_context_set_matrix _obj' maybeMatrix+    touchManagedPtr _obj+    whenJust matrix touchManagedPtr+    return ()++-- struct Coverage+newtype Coverage = Coverage (ForeignPtr Coverage)+noCoverage :: Maybe Coverage+noCoverage = Nothing++-- method Coverage::get+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "CoverageLevel"+-- throws : False+-- Skip return : False++foreign import ccall "pango_coverage_get" pango_coverage_get :: +    Ptr Coverage ->                         -- _obj : TInterface "Pango" "Coverage"+    Int32 ->                                -- index_ : TBasicType TInt32+    IO CUInt+++coverageGet ::+    (MonadIO m) =>+    Coverage ->                             -- _obj+    Int32 ->                                -- index_+    m CoverageLevel+coverageGet _obj index_ = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_coverage_get _obj' index_+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    return result'++-- method Coverage::max+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "other", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "other", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_coverage_max" pango_coverage_max :: +    Ptr Coverage ->                         -- _obj : TInterface "Pango" "Coverage"+    Ptr Coverage ->                         -- other : TInterface "Pango" "Coverage"+    IO ()+++coverageMax ::+    (MonadIO m) =>+    Coverage ->                             -- _obj+    Coverage ->                             -- other+    m ()+coverageMax _obj other = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let other' = unsafeManagedPtrGetPtr other+    pango_coverage_max _obj' other'+    touchManagedPtr _obj+    touchManagedPtr other+    return ()++-- method Coverage::set+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "level", argType = TInterface "Pango" "CoverageLevel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "level", argType = TInterface "Pango" "CoverageLevel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_coverage_set" pango_coverage_set :: +    Ptr Coverage ->                         -- _obj : TInterface "Pango" "Coverage"+    Int32 ->                                -- index_ : TBasicType TInt32+    CUInt ->                                -- level : TInterface "Pango" "CoverageLevel"+    IO ()+++coverageSet ::+    (MonadIO m) =>+    Coverage ->                             -- _obj+    Int32 ->                                -- index_+    CoverageLevel ->                        -- level+    m ()+coverageSet _obj index_ level = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let level' = (fromIntegral . fromEnum) level+    pango_coverage_set _obj' index_ level'+    touchManagedPtr _obj+    return ()++-- method Coverage::to_bytes+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "n_bytes", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : [Arg {argName = "n_bytes", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_coverage_to_bytes" pango_coverage_to_bytes :: +    Ptr Coverage ->                         -- _obj : TInterface "Pango" "Coverage"+    Ptr (Ptr Word8) ->                      -- bytes : TCArray False (-1) 2 (TBasicType TUInt8)+    Ptr Int32 ->                            -- n_bytes : TBasicType TInt32+    IO ()+++coverageToBytes ::+    (MonadIO m) =>+    Coverage ->                             -- _obj+    m (ByteString)+coverageToBytes _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    bytes <- allocMem :: IO (Ptr (Ptr Word8))+    n_bytes <- allocMem :: IO (Ptr Int32)+    pango_coverage_to_bytes _obj' bytes n_bytes+    n_bytes' <- peek n_bytes+    bytes' <- peek bytes+    bytes'' <- (unpackByteStringWithLength n_bytes') bytes'+    freeMem bytes'+    touchManagedPtr _obj+    freeMem bytes+    freeMem n_bytes+    return bytes''++-- method Coverage::unref+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_coverage_unref" pango_coverage_unref :: +    Ptr Coverage ->                         -- _obj : TInterface "Pango" "Coverage"+    IO ()+++coverageUnref ::+    (MonadIO m) =>+    Coverage ->                             -- _obj+    m ()+coverageUnref _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_coverage_unref _obj'+    touchManagedPtr _obj+    return ()++-- Enum CoverageLevel++data CoverageLevel = +      CoverageLevelNone+    | CoverageLevelFallback+    | CoverageLevelApproximate+    | CoverageLevelExact+    | AnotherCoverageLevel Int+    deriving (Show, Eq)++instance Enum CoverageLevel where+    fromEnum CoverageLevelNone = 0+    fromEnum CoverageLevelFallback = 1+    fromEnum CoverageLevelApproximate = 2+    fromEnum CoverageLevelExact = 3+    fromEnum (AnotherCoverageLevel k) = k++    toEnum 0 = CoverageLevelNone+    toEnum 1 = CoverageLevelFallback+    toEnum 2 = CoverageLevelApproximate+    toEnum 3 = CoverageLevelExact+    toEnum k = AnotherCoverageLevel k++foreign import ccall "pango_coverage_level_get_type" c_pango_coverage_level_get_type :: +    IO GType++instance BoxedEnum CoverageLevel where+    boxedEnumType _ = c_pango_coverage_level_get_type++-- Enum Direction++data Direction = +      DirectionLtr+    | DirectionRtl+    | DirectionTtbLtr+    | DirectionTtbRtl+    | DirectionWeakLtr+    | DirectionWeakRtl+    | DirectionNeutral+    | AnotherDirection Int+    deriving (Show, Eq)++instance Enum Direction where+    fromEnum DirectionLtr = 0+    fromEnum DirectionRtl = 1+    fromEnum DirectionTtbLtr = 2+    fromEnum DirectionTtbRtl = 3+    fromEnum DirectionWeakLtr = 4+    fromEnum DirectionWeakRtl = 5+    fromEnum DirectionNeutral = 6+    fromEnum (AnotherDirection k) = k++    toEnum 0 = DirectionLtr+    toEnum 1 = DirectionRtl+    toEnum 2 = DirectionTtbLtr+    toEnum 3 = DirectionTtbRtl+    toEnum 4 = DirectionWeakLtr+    toEnum 5 = DirectionWeakRtl+    toEnum 6 = DirectionNeutral+    toEnum k = AnotherDirection k++foreign import ccall "pango_direction_get_type" c_pango_direction_get_type :: +    IO GType++instance BoxedEnum Direction where+    boxedEnumType _ = c_pango_direction_get_type++-- Enum EllipsizeMode++data EllipsizeMode = +      EllipsizeModeNone+    | EllipsizeModeStart+    | EllipsizeModeMiddle+    | EllipsizeModeEnd+    | AnotherEllipsizeMode Int+    deriving (Show, Eq)++instance Enum EllipsizeMode where+    fromEnum EllipsizeModeNone = 0+    fromEnum EllipsizeModeStart = 1+    fromEnum EllipsizeModeMiddle = 2+    fromEnum EllipsizeModeEnd = 3+    fromEnum (AnotherEllipsizeMode k) = k++    toEnum 0 = EllipsizeModeNone+    toEnum 1 = EllipsizeModeStart+    toEnum 2 = EllipsizeModeMiddle+    toEnum 3 = EllipsizeModeEnd+    toEnum k = AnotherEllipsizeMode k++foreign import ccall "pango_ellipsize_mode_get_type" c_pango_ellipsize_mode_get_type :: +    IO GType++instance BoxedEnum EllipsizeMode where+    boxedEnumType _ = c_pango_ellipsize_mode_get_type++-- object Engine +newtype Engine = Engine (ForeignPtr Engine)+noEngine :: Maybe Engine+noEngine = Nothing++foreign import ccall "pango_engine_get_type"+    c_pango_engine_get_type :: IO GType++type instance ParentTypes Engine = '[GObject.Object]++instance GObject Engine where+    gobjectIsInitiallyUnowned _ = False+    gobjectType _ = c_pango_engine_get_type+    ++class GObject o => EngineK o+instance (GObject o, IsDescendantOf Engine o) => EngineK o++toEngine :: EngineK o => o -> IO Engine+toEngine = unsafeCastTo Engine++-- struct EngineInfo+newtype EngineInfo = EngineInfo (ForeignPtr EngineInfo)+noEngineInfo :: Maybe EngineInfo+noEngineInfo = Nothing++engineInfoReadId :: EngineInfo -> IO T.Text+engineInfoReadId s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO CString+    val' <- cstringToText val+    return val'++engineInfoReadEngineType :: EngineInfo -> IO T.Text+engineInfoReadEngineType s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO CString+    val' <- cstringToText val+    return val'++engineInfoReadRenderType :: EngineInfo -> IO T.Text+engineInfoReadRenderType s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO CString+    val' <- cstringToText val+    return val'++engineInfoReadScripts :: EngineInfo -> IO EngineScriptInfo+engineInfoReadScripts s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO (Ptr EngineScriptInfo)+    val' <- (newPtr 16 EngineScriptInfo) val+    return val'++engineInfoReadNScripts :: EngineInfo -> IO Int32+engineInfoReadNScripts s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO Int32+    return val++-- object EngineLang +newtype EngineLang = EngineLang (ForeignPtr EngineLang)+noEngineLang :: Maybe EngineLang+noEngineLang = Nothing++foreign import ccall "pango_engine_lang_get_type"+    c_pango_engine_lang_get_type :: IO GType++type instance ParentTypes EngineLang = '[Engine, GObject.Object]++instance GObject EngineLang where+    gobjectIsInitiallyUnowned _ = False+    gobjectType _ = c_pango_engine_lang_get_type+    ++class GObject o => EngineLangK o+instance (GObject o, IsDescendantOf EngineLang o) => EngineLangK o++toEngineLang :: EngineLangK o => o -> IO EngineLang+toEngineLang = unsafeCastTo EngineLang++-- struct EngineScriptInfo+newtype EngineScriptInfo = EngineScriptInfo (ForeignPtr EngineScriptInfo)+noEngineScriptInfo :: Maybe EngineScriptInfo+noEngineScriptInfo = Nothing++engineScriptInfoReadScript :: EngineScriptInfo -> IO Script+engineScriptInfoReadScript s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++engineScriptInfoReadLangs :: EngineScriptInfo -> IO T.Text+engineScriptInfoReadLangs s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO CString+    val' <- cstringToText val+    return val'++-- object EngineShape +newtype EngineShape = EngineShape (ForeignPtr EngineShape)+noEngineShape :: Maybe EngineShape+noEngineShape = Nothing++foreign import ccall "pango_engine_shape_get_type"+    c_pango_engine_shape_get_type :: IO GType++type instance ParentTypes EngineShape = '[Engine, GObject.Object]++instance GObject EngineShape where+    gobjectIsInitiallyUnowned _ = False+    gobjectType _ = c_pango_engine_shape_get_type+    ++class GObject o => EngineShapeK o+instance (GObject o, IsDescendantOf EngineShape o) => EngineShapeK o++toEngineShape :: EngineShapeK o => o -> IO EngineShape+toEngineShape = unsafeCastTo EngineShape++-- object Font +newtype Font = Font (ForeignPtr Font)+noFont :: Maybe Font+noFont = Nothing++foreign import ccall "pango_font_get_type"+    c_pango_font_get_type :: IO GType++type instance ParentTypes Font = '[GObject.Object]++instance GObject Font where+    gobjectIsInitiallyUnowned _ = False+    gobjectType _ = c_pango_font_get_type+    ++class GObject o => FontK o+instance (GObject o, IsDescendantOf Font o) => FontK o++toFont :: FontK o => o -> IO Font+toFont = unsafeCastTo Font++-- method Font::describe+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "FontDescription"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_describe" pango_font_describe :: +    Ptr Font ->                             -- _obj : TInterface "Pango" "Font"+    IO (Ptr FontDescription)+++fontDescribe ::+    (MonadIO m, FontK a) =>+    a ->                                    -- _obj+    m FontDescription+fontDescribe _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_font_describe _obj'+    result' <- (wrapBoxed FontDescription) result+    touchManagedPtr _obj+    return result'++-- method Font::describe_with_absolute_size+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "FontDescription"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_describe_with_absolute_size" pango_font_describe_with_absolute_size :: +    Ptr Font ->                             -- _obj : TInterface "Pango" "Font"+    IO (Ptr FontDescription)+++fontDescribeWithAbsoluteSize ::+    (MonadIO m, FontK a) =>+    a ->                                    -- _obj+    m FontDescription+fontDescribeWithAbsoluteSize _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_font_describe_with_absolute_size _obj'+    result' <- (wrapBoxed FontDescription) result+    touchManagedPtr _obj+    return result'++-- method Font::get_font_map+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "FontMap"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_get_font_map" pango_font_get_font_map :: +    Ptr Font ->                             -- _obj : TInterface "Pango" "Font"+    IO (Ptr FontMap)+++fontGetFontMap ::+    (MonadIO m, FontK a) =>+    a ->                                    -- _obj+    m FontMap+fontGetFontMap _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_font_get_font_map _obj'+    result' <- (newObject FontMap) result+    touchManagedPtr _obj+    return result'++-- method Font::get_glyph_extents+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "glyph", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ink_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logical_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "glyph", 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 "pango_font_get_glyph_extents" pango_font_get_glyph_extents :: +    Ptr Font ->                             -- _obj : TInterface "Pango" "Font"+    Word32 ->                               -- glyph : TBasicType TUInt32+    Ptr Rectangle ->                        -- ink_rect : TInterface "Pango" "Rectangle"+    Ptr Rectangle ->                        -- logical_rect : TInterface "Pango" "Rectangle"+    IO ()+++fontGetGlyphExtents ::+    (MonadIO m, FontK a) =>+    a ->                                    -- _obj+    Word32 ->                               -- glyph+    m (Rectangle,Rectangle)+fontGetGlyphExtents _obj glyph = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    ink_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    logical_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    pango_font_get_glyph_extents _obj' glyph ink_rect logical_rect+    ink_rect' <- (wrapPtr Rectangle) ink_rect+    logical_rect' <- (wrapPtr Rectangle) logical_rect+    touchManagedPtr _obj+    return (ink_rect', logical_rect')++-- method Font::get_metrics+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "language", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "language", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "FontMetrics"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_get_metrics" pango_font_get_metrics :: +    Ptr Font ->                             -- _obj : TInterface "Pango" "Font"+    Ptr Language ->                         -- language : TInterface "Pango" "Language"+    IO (Ptr FontMetrics)+++fontGetMetrics ::+    (MonadIO m, FontK a) =>+    a ->                                    -- _obj+    Maybe (Language) ->                     -- language+    m FontMetrics+fontGetMetrics _obj language = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    maybeLanguage <- case language of+        Nothing -> return nullPtr+        Just jLanguage -> do+            let jLanguage' = unsafeManagedPtrGetPtr jLanguage+            return jLanguage'+    result <- pango_font_get_metrics _obj' maybeLanguage+    result' <- (wrapBoxed FontMetrics) result+    touchManagedPtr _obj+    whenJust language touchManagedPtr+    return result'++-- method Font::descriptions_free+-- method type : MemberFunction+-- Args : [Arg {argName = "descs", argType = TCArray False (-1) 1 (TInterface "Pango" "FontDescription"), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "n_descs", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : [Arg {argName = "n_descs", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- hInArgs : [Arg {argName = "descs", argType = TCArray False (-1) 1 (TInterface "Pango" "FontDescription"), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_descriptions_free" pango_font_descriptions_free :: +    Ptr (Ptr FontDescription) ->            -- descs : TCArray False (-1) 1 (TInterface "Pango" "FontDescription")+    Int32 ->                                -- n_descs : TBasicType TInt32+    IO ()+++fontDescriptionsFree ::+    (MonadIO m) =>+    Maybe ([FontDescription]) ->            -- descs+    m ()+fontDescriptionsFree descs = liftIO $ do+    let n_descs = case descs of+            Nothing -> 0+            Just jDescs -> fromIntegral $ length jDescs+    maybeDescs <- case descs of+        Nothing -> return nullPtr+        Just jDescs -> do+            jDescs' <- mapM copyBoxed jDescs+            jDescs'' <- packPtrArray jDescs'+            return jDescs''+    pango_font_descriptions_free maybeDescs n_descs+    whenJust descs (mapM_ touchManagedPtr)+    return ()++-- struct FontDescription+newtype FontDescription = FontDescription (ForeignPtr FontDescription)+noFontDescription :: Maybe FontDescription+noFontDescription = Nothing++foreign import ccall "pango_font_description_get_type" c_pango_font_description_get_type :: +    IO GType++instance BoxedObject FontDescription where+    boxedType _ = c_pango_font_description_get_type++-- method FontDescription::new+-- method type : Constructor+-- Args : []+-- Lengths : []+-- hInArgs : []+-- returnType : TInterface "Pango" "FontDescription"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_new" pango_font_description_new :: +    IO (Ptr FontDescription)+++fontDescriptionNew ::+    (MonadIO m) =>+    m FontDescription+fontDescriptionNew  = liftIO $ do+    result <- pango_font_description_new+    result' <- (wrapBoxed FontDescription) result+    return result'++-- method FontDescription::better_match+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "old_match", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_match", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "old_match", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_match", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_better_match" pango_font_description_better_match :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    Ptr FontDescription ->                  -- old_match : TInterface "Pango" "FontDescription"+    Ptr FontDescription ->                  -- new_match : TInterface "Pango" "FontDescription"+    IO CInt+++fontDescriptionBetterMatch ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    Maybe (FontDescription) ->              -- old_match+    FontDescription ->                      -- new_match+    m Bool+fontDescriptionBetterMatch _obj old_match new_match = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    maybeOld_match <- case old_match of+        Nothing -> return nullPtr+        Just jOld_match -> do+            let jOld_match' = unsafeManagedPtrGetPtr jOld_match+            return jOld_match'+    let new_match' = unsafeManagedPtrGetPtr new_match+    result <- pango_font_description_better_match _obj' maybeOld_match new_match'+    let result' = (/= 0) result+    touchManagedPtr _obj+    whenJust old_match touchManagedPtr+    touchManagedPtr new_match+    return result'++-- method FontDescription::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "FontDescription"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_copy" pango_font_description_copy :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    IO (Ptr FontDescription)+++fontDescriptionCopy ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    m FontDescription+fontDescriptionCopy _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_description_copy _obj'+    result' <- (wrapBoxed FontDescription) result+    touchManagedPtr _obj+    return result'++-- method FontDescription::copy_static+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "FontDescription"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_copy_static" pango_font_description_copy_static :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    IO (Ptr FontDescription)+++fontDescriptionCopyStatic ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    m FontDescription+fontDescriptionCopyStatic _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_description_copy_static _obj'+    result' <- (wrapBoxed FontDescription) result+    touchManagedPtr _obj+    return result'++-- method FontDescription::equal+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc2", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc2", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_equal" pango_font_description_equal :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    Ptr FontDescription ->                  -- desc2 : TInterface "Pango" "FontDescription"+    IO CInt+++fontDescriptionEqual ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    FontDescription ->                      -- desc2+    m Bool+fontDescriptionEqual _obj desc2 = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let desc2' = unsafeManagedPtrGetPtr desc2+    result <- pango_font_description_equal _obj' desc2'+    let result' = (/= 0) result+    touchManagedPtr _obj+    touchManagedPtr desc2+    return result'++-- method FontDescription::free+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_free" pango_font_description_free :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    IO ()+++fontDescriptionFree ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    m ()+fontDescriptionFree _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_font_description_free _obj'+    touchManagedPtr _obj+    return ()++-- method FontDescription::get_family+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TUTF8+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_get_family" pango_font_description_get_family :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    IO CString+++fontDescriptionGetFamily ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    m T.Text+fontDescriptionGetFamily _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_description_get_family _obj'+    result' <- cstringToText result+    touchManagedPtr _obj+    return result'++-- method FontDescription::get_gravity+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Gravity"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_get_gravity" pango_font_description_get_gravity :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    IO CUInt+++fontDescriptionGetGravity ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    m Gravity+fontDescriptionGetGravity _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_description_get_gravity _obj'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    return result'++-- method FontDescription::get_set_fields+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "FontMask"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_get_set_fields" pango_font_description_get_set_fields :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    IO CUInt+++fontDescriptionGetSetFields ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    m [FontMask]+fontDescriptionGetSetFields _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_description_get_set_fields _obj'+    let result' = wordToGFlags result+    touchManagedPtr _obj+    return result'++-- method FontDescription::get_size+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_get_size" pango_font_description_get_size :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    IO Int32+++fontDescriptionGetSize ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    m Int32+fontDescriptionGetSize _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_description_get_size _obj'+    touchManagedPtr _obj+    return result++-- method FontDescription::get_size_is_absolute+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_get_size_is_absolute" pango_font_description_get_size_is_absolute :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    IO CInt+++fontDescriptionGetSizeIsAbsolute ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    m Bool+fontDescriptionGetSizeIsAbsolute _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_description_get_size_is_absolute _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- method FontDescription::get_stretch+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Stretch"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_get_stretch" pango_font_description_get_stretch :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    IO CUInt+++fontDescriptionGetStretch ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    m Stretch+fontDescriptionGetStretch _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_description_get_stretch _obj'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    return result'++-- method FontDescription::get_style+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Style"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_get_style" pango_font_description_get_style :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    IO CUInt+++fontDescriptionGetStyle ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    m Style+fontDescriptionGetStyle _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_description_get_style _obj'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    return result'++-- method FontDescription::get_variant+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Variant"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_get_variant" pango_font_description_get_variant :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    IO CUInt+++fontDescriptionGetVariant ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    m Variant+fontDescriptionGetVariant _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_description_get_variant _obj'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    return result'++-- method FontDescription::get_weight+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Weight"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_get_weight" pango_font_description_get_weight :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    IO CUInt+++fontDescriptionGetWeight ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    m Weight+fontDescriptionGetWeight _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_description_get_weight _obj'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    return result'++-- method FontDescription::hash+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TUInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_hash" pango_font_description_hash :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    IO Word32+++fontDescriptionHash ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    m Word32+fontDescriptionHash _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_description_hash _obj'+    touchManagedPtr _obj+    return result++-- method FontDescription::merge+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc_to_merge", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "replace_existing", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc_to_merge", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "replace_existing", 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 "pango_font_description_merge" pango_font_description_merge :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    Ptr FontDescription ->                  -- desc_to_merge : TInterface "Pango" "FontDescription"+    CInt ->                                 -- replace_existing : TBasicType TBoolean+    IO ()+++fontDescriptionMerge ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    Maybe (FontDescription) ->              -- desc_to_merge+    Bool ->                                 -- replace_existing+    m ()+fontDescriptionMerge _obj desc_to_merge replace_existing = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    maybeDesc_to_merge <- case desc_to_merge of+        Nothing -> return nullPtr+        Just jDesc_to_merge -> do+            let jDesc_to_merge' = unsafeManagedPtrGetPtr jDesc_to_merge+            return jDesc_to_merge'+    let replace_existing' = (fromIntegral . fromEnum) replace_existing+    pango_font_description_merge _obj' maybeDesc_to_merge replace_existing'+    touchManagedPtr _obj+    whenJust desc_to_merge touchManagedPtr+    return ()++-- method FontDescription::merge_static+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc_to_merge", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "replace_existing", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc_to_merge", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "replace_existing", 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 "pango_font_description_merge_static" pango_font_description_merge_static :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    Ptr FontDescription ->                  -- desc_to_merge : TInterface "Pango" "FontDescription"+    CInt ->                                 -- replace_existing : TBasicType TBoolean+    IO ()+++fontDescriptionMergeStatic ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    FontDescription ->                      -- desc_to_merge+    Bool ->                                 -- replace_existing+    m ()+fontDescriptionMergeStatic _obj desc_to_merge replace_existing = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let desc_to_merge' = unsafeManagedPtrGetPtr desc_to_merge+    let replace_existing' = (fromIntegral . fromEnum) replace_existing+    pango_font_description_merge_static _obj' desc_to_merge' replace_existing'+    touchManagedPtr _obj+    touchManagedPtr desc_to_merge+    return ()++-- method FontDescription::set_absolute_size+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "size", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "size", 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 "pango_font_description_set_absolute_size" pango_font_description_set_absolute_size :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    CDouble ->                              -- size : TBasicType TDouble+    IO ()+++fontDescriptionSetAbsoluteSize ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    Double ->                               -- size+    m ()+fontDescriptionSetAbsoluteSize _obj size = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let size' = realToFrac size+    pango_font_description_set_absolute_size _obj' size'+    touchManagedPtr _obj+    return ()++-- method FontDescription::set_family+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "family", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "family", 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 "pango_font_description_set_family" pango_font_description_set_family :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    CString ->                              -- family : TBasicType TUTF8+    IO ()+++fontDescriptionSetFamily ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    T.Text ->                               -- family+    m ()+fontDescriptionSetFamily _obj family = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    family' <- textToCString family+    pango_font_description_set_family _obj' family'+    touchManagedPtr _obj+    freeMem family'+    return ()++-- method FontDescription::set_family_static+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "family", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "family", 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 "pango_font_description_set_family_static" pango_font_description_set_family_static :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    CString ->                              -- family : TBasicType TUTF8+    IO ()+++fontDescriptionSetFamilyStatic ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    T.Text ->                               -- family+    m ()+fontDescriptionSetFamilyStatic _obj family = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    family' <- textToCString family+    pango_font_description_set_family_static _obj' family'+    touchManagedPtr _obj+    freeMem family'+    return ()++-- method FontDescription::set_gravity+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "gravity", argType = TInterface "Pango" "Gravity", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "gravity", argType = TInterface "Pango" "Gravity", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_set_gravity" pango_font_description_set_gravity :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    CUInt ->                                -- gravity : TInterface "Pango" "Gravity"+    IO ()+++fontDescriptionSetGravity ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    Gravity ->                              -- gravity+    m ()+fontDescriptionSetGravity _obj gravity = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let gravity' = (fromIntegral . fromEnum) gravity+    pango_font_description_set_gravity _obj' gravity'+    touchManagedPtr _obj+    return ()++-- method FontDescription::set_size+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "size", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "size", 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 "pango_font_description_set_size" pango_font_description_set_size :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    Int32 ->                                -- size : TBasicType TInt32+    IO ()+++fontDescriptionSetSize ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    Int32 ->                                -- size+    m ()+fontDescriptionSetSize _obj size = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_font_description_set_size _obj' size+    touchManagedPtr _obj+    return ()++-- method FontDescription::set_stretch+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "stretch", argType = TInterface "Pango" "Stretch", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "stretch", argType = TInterface "Pango" "Stretch", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_set_stretch" pango_font_description_set_stretch :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    CUInt ->                                -- stretch : TInterface "Pango" "Stretch"+    IO ()+++fontDescriptionSetStretch ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    Stretch ->                              -- stretch+    m ()+fontDescriptionSetStretch _obj stretch = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let stretch' = (fromIntegral . fromEnum) stretch+    pango_font_description_set_stretch _obj' stretch'+    touchManagedPtr _obj+    return ()++-- method FontDescription::set_style+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "style", argType = TInterface "Pango" "Style", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "style", argType = TInterface "Pango" "Style", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_set_style" pango_font_description_set_style :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    CUInt ->                                -- style : TInterface "Pango" "Style"+    IO ()+++fontDescriptionSetStyle ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    Style ->                                -- style+    m ()+fontDescriptionSetStyle _obj style = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let style' = (fromIntegral . fromEnum) style+    pango_font_description_set_style _obj' style'+    touchManagedPtr _obj+    return ()++-- method FontDescription::set_variant+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "variant", argType = TInterface "Pango" "Variant", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "variant", argType = TInterface "Pango" "Variant", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_set_variant" pango_font_description_set_variant :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    CUInt ->                                -- variant : TInterface "Pango" "Variant"+    IO ()+++fontDescriptionSetVariant ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    Variant ->                              -- variant+    m ()+fontDescriptionSetVariant _obj variant = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let variant' = (fromIntegral . fromEnum) variant+    pango_font_description_set_variant _obj' variant'+    touchManagedPtr _obj+    return ()++-- method FontDescription::set_weight+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "weight", argType = TInterface "Pango" "Weight", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "weight", argType = TInterface "Pango" "Weight", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_set_weight" pango_font_description_set_weight :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    CUInt ->                                -- weight : TInterface "Pango" "Weight"+    IO ()+++fontDescriptionSetWeight ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    Weight ->                               -- weight+    m ()+fontDescriptionSetWeight _obj weight = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let weight' = (fromIntegral . fromEnum) weight+    pango_font_description_set_weight _obj' weight'+    touchManagedPtr _obj+    return ()++-- method FontDescription::to_filename+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TUTF8+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_to_filename" pango_font_description_to_filename :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    IO CString+++fontDescriptionToFilename ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    m T.Text+fontDescriptionToFilename _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_description_to_filename _obj'+    result' <- cstringToText result+    freeMem result+    touchManagedPtr _obj+    return result'++-- method FontDescription::to_string+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TUTF8+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_to_string" pango_font_description_to_string :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    IO CString+++fontDescriptionToString ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    m T.Text+fontDescriptionToString _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_description_to_string _obj'+    result' <- cstringToText result+    freeMem result+    touchManagedPtr _obj+    return result'++-- method FontDescription::unset_fields+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "to_unset", argType = TInterface "Pango" "FontMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "to_unset", argType = TInterface "Pango" "FontMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_unset_fields" pango_font_description_unset_fields :: +    Ptr FontDescription ->                  -- _obj : TInterface "Pango" "FontDescription"+    CUInt ->                                -- to_unset : TInterface "Pango" "FontMask"+    IO ()+++fontDescriptionUnsetFields ::+    (MonadIO m) =>+    FontDescription ->                      -- _obj+    [FontMask] ->                           -- to_unset+    m ()+fontDescriptionUnsetFields _obj to_unset = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let to_unset' = gflagsToWord to_unset+    pango_font_description_unset_fields _obj' to_unset'+    touchManagedPtr _obj+    return ()++-- object FontFace +newtype FontFace = FontFace (ForeignPtr FontFace)+noFontFace :: Maybe FontFace+noFontFace = Nothing++foreign import ccall "pango_font_face_get_type"+    c_pango_font_face_get_type :: IO GType++type instance ParentTypes FontFace = '[GObject.Object]++instance GObject FontFace where+    gobjectIsInitiallyUnowned _ = False+    gobjectType _ = c_pango_font_face_get_type+    ++class GObject o => FontFaceK o+instance (GObject o, IsDescendantOf FontFace o) => FontFaceK o++toFontFace :: FontFaceK o => o -> IO FontFace+toFontFace = unsafeCastTo FontFace++-- method FontFace::describe+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontFace", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontFace", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "FontDescription"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_face_describe" pango_font_face_describe :: +    Ptr FontFace ->                         -- _obj : TInterface "Pango" "FontFace"+    IO (Ptr FontDescription)+++fontFaceDescribe ::+    (MonadIO m, FontFaceK a) =>+    a ->                                    -- _obj+    m FontDescription+fontFaceDescribe _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_font_face_describe _obj'+    result' <- (wrapBoxed FontDescription) result+    touchManagedPtr _obj+    return result'++-- method FontFace::get_face_name+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontFace", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontFace", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TUTF8+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_face_get_face_name" pango_font_face_get_face_name :: +    Ptr FontFace ->                         -- _obj : TInterface "Pango" "FontFace"+    IO CString+++fontFaceGetFaceName ::+    (MonadIO m, FontFaceK a) =>+    a ->                                    -- _obj+    m T.Text+fontFaceGetFaceName _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_font_face_get_face_name _obj'+    result' <- cstringToText result+    touchManagedPtr _obj+    return result'++-- method FontFace::is_synthesized+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontFace", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontFace", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_face_is_synthesized" pango_font_face_is_synthesized :: +    Ptr FontFace ->                         -- _obj : TInterface "Pango" "FontFace"+    IO CInt+++fontFaceIsSynthesized ::+    (MonadIO m, FontFaceK a) =>+    a ->                                    -- _obj+    m Bool+fontFaceIsSynthesized _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_font_face_is_synthesized _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- method FontFace::list_sizes+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontFace", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "sizes", argType = TCArray False (-1) 2 (TBasicType TInt32), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "n_sizes", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : [Arg {argName = "n_sizes", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontFace", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_face_list_sizes" pango_font_face_list_sizes :: +    Ptr FontFace ->                         -- _obj : TInterface "Pango" "FontFace"+    Ptr (Ptr Int32) ->                      -- sizes : TCArray False (-1) 2 (TBasicType TInt32)+    Ptr Int32 ->                            -- n_sizes : TBasicType TInt32+    IO ()+++fontFaceListSizes ::+    (MonadIO m, FontFaceK a) =>+    a ->                                    -- _obj+    m ([Int32])+fontFaceListSizes _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    sizes <- allocMem :: IO (Ptr (Ptr Int32))+    n_sizes <- allocMem :: IO (Ptr Int32)+    pango_font_face_list_sizes _obj' sizes n_sizes+    n_sizes' <- peek n_sizes+    sizes' <- peek sizes+    sizes'' <- (unpackStorableArrayWithLength n_sizes') sizes'+    freeMem sizes'+    touchManagedPtr _obj+    freeMem sizes+    freeMem n_sizes+    return sizes''++-- object FontFamily +newtype FontFamily = FontFamily (ForeignPtr FontFamily)+noFontFamily :: Maybe FontFamily+noFontFamily = Nothing++foreign import ccall "pango_font_family_get_type"+    c_pango_font_family_get_type :: IO GType++type instance ParentTypes FontFamily = '[GObject.Object]++instance GObject FontFamily where+    gobjectIsInitiallyUnowned _ = False+    gobjectType _ = c_pango_font_family_get_type+    ++class GObject o => FontFamilyK o+instance (GObject o, IsDescendantOf FontFamily o) => FontFamilyK o++toFontFamily :: FontFamilyK o => o -> IO FontFamily+toFontFamily = unsafeCastTo FontFamily++-- method FontFamily::get_name+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontFamily", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontFamily", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TUTF8+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_family_get_name" pango_font_family_get_name :: +    Ptr FontFamily ->                       -- _obj : TInterface "Pango" "FontFamily"+    IO CString+++fontFamilyGetName ::+    (MonadIO m, FontFamilyK a) =>+    a ->                                    -- _obj+    m T.Text+fontFamilyGetName _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_font_family_get_name _obj'+    result' <- cstringToText result+    touchManagedPtr _obj+    return result'++-- method FontFamily::is_monospace+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontFamily", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontFamily", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_family_is_monospace" pango_font_family_is_monospace :: +    Ptr FontFamily ->                       -- _obj : TInterface "Pango" "FontFamily"+    IO CInt+++fontFamilyIsMonospace ::+    (MonadIO m, FontFamilyK a) =>+    a ->                                    -- _obj+    m Bool+fontFamilyIsMonospace _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_font_family_is_monospace _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- method FontFamily::list_faces+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontFamily", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "faces", argType = TCArray False (-1) 2 (TInterface "Pango" "FontFace"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferContainer},Arg {argName = "n_faces", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : [Arg {argName = "n_faces", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontFamily", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_family_list_faces" pango_font_family_list_faces :: +    Ptr FontFamily ->                       -- _obj : TInterface "Pango" "FontFamily"+    Ptr (Ptr (Ptr FontFace)) ->             -- faces : TCArray False (-1) 2 (TInterface "Pango" "FontFace")+    Ptr Int32 ->                            -- n_faces : TBasicType TInt32+    IO ()+++fontFamilyListFaces ::+    (MonadIO m, FontFamilyK a) =>+    a ->                                    -- _obj+    m ([FontFace])+fontFamilyListFaces _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    faces <- allocMem :: IO (Ptr (Ptr (Ptr FontFace)))+    n_faces <- allocMem :: IO (Ptr Int32)+    pango_font_family_list_faces _obj' faces n_faces+    n_faces' <- peek n_faces+    faces' <- peek faces+    faces'' <- (unpackPtrArrayWithLength n_faces') faces'+    faces''' <- mapM (newObject FontFace) faces''+    freeMem faces'+    touchManagedPtr _obj+    freeMem faces+    freeMem n_faces+    return faces'''++-- object FontMap +newtype FontMap = FontMap (ForeignPtr FontMap)+noFontMap :: Maybe FontMap+noFontMap = Nothing++foreign import ccall "pango_font_map_get_type"+    c_pango_font_map_get_type :: IO GType++type instance ParentTypes FontMap = '[GObject.Object]++instance GObject FontMap where+    gobjectIsInitiallyUnowned _ = False+    gobjectType _ = c_pango_font_map_get_type+    ++class GObject o => FontMapK o+instance (GObject o, IsDescendantOf FontMap o) => FontMapK o++toFontMap :: FontMapK o => o -> IO FontMap+toFontMap = unsafeCastTo FontMap++-- method FontMap::changed+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_map_changed" pango_font_map_changed :: +    Ptr FontMap ->                          -- _obj : TInterface "Pango" "FontMap"+    IO ()+++fontMapChanged ::+    (MonadIO m, FontMapK a) =>+    a ->                                    -- _obj+    m ()+fontMapChanged _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    pango_font_map_changed _obj'+    touchManagedPtr _obj+    return ()++-- method FontMap::create_context+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Context"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_map_create_context" pango_font_map_create_context :: +    Ptr FontMap ->                          -- _obj : TInterface "Pango" "FontMap"+    IO (Ptr Context)+++fontMapCreateContext ::+    (MonadIO m, FontMapK a) =>+    a ->                                    -- _obj+    m Context+fontMapCreateContext _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_font_map_create_context _obj'+    result' <- (wrapObject Context) result+    touchManagedPtr _obj+    return result'++-- method FontMap::get_serial+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TUInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_map_get_serial" pango_font_map_get_serial :: +    Ptr FontMap ->                          -- _obj : TInterface "Pango" "FontMap"+    IO Word32+++fontMapGetSerial ::+    (MonadIO m, FontMapK a) =>+    a ->                                    -- _obj+    m Word32+fontMapGetSerial _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_font_map_get_serial _obj'+    touchManagedPtr _obj+    return result++-- method FontMap::get_shape_engine_type+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TUTF8+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_map_get_shape_engine_type" pango_font_map_get_shape_engine_type :: +    Ptr FontMap ->                          -- _obj : TInterface "Pango" "FontMap"+    IO CString+++fontMapGetShapeEngineType ::+    (MonadIO m, FontMapK a) =>+    a ->                                    -- _obj+    m T.Text+fontMapGetShapeEngineType _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_font_map_get_shape_engine_type _obj'+    result' <- cstringToText result+    touchManagedPtr _obj+    return result'++-- method FontMap::list_families+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "families", argType = TCArray False (-1) 2 (TInterface "Pango" "FontFamily"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferContainer},Arg {argName = "n_families", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : [Arg {argName = "n_families", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_map_list_families" pango_font_map_list_families :: +    Ptr FontMap ->                          -- _obj : TInterface "Pango" "FontMap"+    Ptr (Ptr (Ptr FontFamily)) ->           -- families : TCArray False (-1) 2 (TInterface "Pango" "FontFamily")+    Ptr Int32 ->                            -- n_families : TBasicType TInt32+    IO ()+++fontMapListFamilies ::+    (MonadIO m, FontMapK a) =>+    a ->                                    -- _obj+    m ([FontFamily])+fontMapListFamilies _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    families <- allocMem :: IO (Ptr (Ptr (Ptr FontFamily)))+    n_families <- allocMem :: IO (Ptr Int32)+    pango_font_map_list_families _obj' families n_families+    n_families' <- peek n_families+    families' <- peek families+    families'' <- (unpackPtrArrayWithLength n_families') families'+    families''' <- mapM (newObject FontFamily) families''+    freeMem families'+    touchManagedPtr _obj+    freeMem families+    freeMem n_families+    return families'''++-- method FontMap::load_font+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "context", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "context", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Font"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_map_load_font" pango_font_map_load_font :: +    Ptr FontMap ->                          -- _obj : TInterface "Pango" "FontMap"+    Ptr Context ->                          -- context : TInterface "Pango" "Context"+    Ptr FontDescription ->                  -- desc : TInterface "Pango" "FontDescription"+    IO (Ptr Font)+++fontMapLoadFont ::+    (MonadIO m, FontMapK a, ContextK b) =>+    a ->                                    -- _obj+    b ->                                    -- context+    FontDescription ->                      -- desc+    m Font+fontMapLoadFont _obj context desc = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let context' = unsafeManagedPtrCastPtr context+    let desc' = unsafeManagedPtrGetPtr desc+    result <- pango_font_map_load_font _obj' context' desc'+    result' <- (wrapObject Font) result+    touchManagedPtr _obj+    touchManagedPtr context+    touchManagedPtr desc+    return result'++-- method FontMap::load_fontset+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "context", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "language", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "context", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "language", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Fontset"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_map_load_fontset" pango_font_map_load_fontset :: +    Ptr FontMap ->                          -- _obj : TInterface "Pango" "FontMap"+    Ptr Context ->                          -- context : TInterface "Pango" "Context"+    Ptr FontDescription ->                  -- desc : TInterface "Pango" "FontDescription"+    Ptr Language ->                         -- language : TInterface "Pango" "Language"+    IO (Ptr Fontset)+++fontMapLoadFontset ::+    (MonadIO m, FontMapK a, ContextK b) =>+    a ->                                    -- _obj+    b ->                                    -- context+    FontDescription ->                      -- desc+    Language ->                             -- language+    m Fontset+fontMapLoadFontset _obj context desc language = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let context' = unsafeManagedPtrCastPtr context+    let desc' = unsafeManagedPtrGetPtr desc+    let language' = unsafeManagedPtrGetPtr language+    result <- pango_font_map_load_fontset _obj' context' desc' language'+    result' <- (wrapObject Fontset) result+    touchManagedPtr _obj+    touchManagedPtr context+    touchManagedPtr desc+    touchManagedPtr language+    return result'++-- Flags FontMask++data FontMask = +      FontMaskFamily+    | FontMaskStyle+    | FontMaskVariant+    | FontMaskWeight+    | FontMaskStretch+    | FontMaskSize+    | FontMaskGravity+    | AnotherFontMask Int+    deriving (Show, Eq)++instance Enum FontMask where+    fromEnum FontMaskFamily = 1+    fromEnum FontMaskStyle = 2+    fromEnum FontMaskVariant = 4+    fromEnum FontMaskWeight = 8+    fromEnum FontMaskStretch = 16+    fromEnum FontMaskSize = 32+    fromEnum FontMaskGravity = 64+    fromEnum (AnotherFontMask k) = k++    toEnum 1 = FontMaskFamily+    toEnum 2 = FontMaskStyle+    toEnum 4 = FontMaskVariant+    toEnum 8 = FontMaskWeight+    toEnum 16 = FontMaskStretch+    toEnum 32 = FontMaskSize+    toEnum 64 = FontMaskGravity+    toEnum k = AnotherFontMask k++foreign import ccall "pango_font_mask_get_type" c_pango_font_mask_get_type :: +    IO GType++instance BoxedEnum FontMask where+    boxedEnumType _ = c_pango_font_mask_get_type++instance IsGFlag FontMask++-- struct FontMetrics+newtype FontMetrics = FontMetrics (ForeignPtr FontMetrics)+noFontMetrics :: Maybe FontMetrics+noFontMetrics = Nothing++foreign import ccall "pango_font_metrics_get_type" c_pango_font_metrics_get_type :: +    IO GType++instance BoxedObject FontMetrics where+    boxedType _ = c_pango_font_metrics_get_type++fontMetricsReadRefCount :: FontMetrics -> IO Word32+fontMetricsReadRefCount s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO Word32+    return val++fontMetricsReadAscent :: FontMetrics -> IO Int32+fontMetricsReadAscent s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 4) :: IO Int32+    return val++fontMetricsReadDescent :: FontMetrics -> IO Int32+fontMetricsReadDescent s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO Int32+    return val++fontMetricsReadApproximateCharWidth :: FontMetrics -> IO Int32+fontMetricsReadApproximateCharWidth s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 12) :: IO Int32+    return val++fontMetricsReadApproximateDigitWidth :: FontMetrics -> IO Int32+fontMetricsReadApproximateDigitWidth s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO Int32+    return val++fontMetricsReadUnderlinePosition :: FontMetrics -> IO Int32+fontMetricsReadUnderlinePosition s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 20) :: IO Int32+    return val++fontMetricsReadUnderlineThickness :: FontMetrics -> IO Int32+fontMetricsReadUnderlineThickness s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO Int32+    return val++fontMetricsReadStrikethroughPosition :: FontMetrics -> IO Int32+fontMetricsReadStrikethroughPosition s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 28) :: IO Int32+    return val++fontMetricsReadStrikethroughThickness :: FontMetrics -> IO Int32+fontMetricsReadStrikethroughThickness s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO Int32+    return val++-- method FontMetrics::new+-- method type : Constructor+-- Args : []+-- Lengths : []+-- hInArgs : []+-- returnType : TInterface "Pango" "FontMetrics"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_metrics_new" pango_font_metrics_new :: +    IO (Ptr FontMetrics)+++fontMetricsNew ::+    (MonadIO m) =>+    m FontMetrics+fontMetricsNew  = liftIO $ do+    result <- pango_font_metrics_new+    result' <- (wrapBoxed FontMetrics) result+    return result'++-- method FontMetrics::get_approximate_char_width+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_metrics_get_approximate_char_width" pango_font_metrics_get_approximate_char_width :: +    Ptr FontMetrics ->                      -- _obj : TInterface "Pango" "FontMetrics"+    IO Int32+++fontMetricsGetApproximateCharWidth ::+    (MonadIO m) =>+    FontMetrics ->                          -- _obj+    m Int32+fontMetricsGetApproximateCharWidth _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_metrics_get_approximate_char_width _obj'+    touchManagedPtr _obj+    return result++-- method FontMetrics::get_approximate_digit_width+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_metrics_get_approximate_digit_width" pango_font_metrics_get_approximate_digit_width :: +    Ptr FontMetrics ->                      -- _obj : TInterface "Pango" "FontMetrics"+    IO Int32+++fontMetricsGetApproximateDigitWidth ::+    (MonadIO m) =>+    FontMetrics ->                          -- _obj+    m Int32+fontMetricsGetApproximateDigitWidth _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_metrics_get_approximate_digit_width _obj'+    touchManagedPtr _obj+    return result++-- method FontMetrics::get_ascent+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_metrics_get_ascent" pango_font_metrics_get_ascent :: +    Ptr FontMetrics ->                      -- _obj : TInterface "Pango" "FontMetrics"+    IO Int32+++fontMetricsGetAscent ::+    (MonadIO m) =>+    FontMetrics ->                          -- _obj+    m Int32+fontMetricsGetAscent _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_metrics_get_ascent _obj'+    touchManagedPtr _obj+    return result++-- method FontMetrics::get_descent+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_metrics_get_descent" pango_font_metrics_get_descent :: +    Ptr FontMetrics ->                      -- _obj : TInterface "Pango" "FontMetrics"+    IO Int32+++fontMetricsGetDescent ::+    (MonadIO m) =>+    FontMetrics ->                          -- _obj+    m Int32+fontMetricsGetDescent _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_metrics_get_descent _obj'+    touchManagedPtr _obj+    return result++-- method FontMetrics::get_strikethrough_position+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_metrics_get_strikethrough_position" pango_font_metrics_get_strikethrough_position :: +    Ptr FontMetrics ->                      -- _obj : TInterface "Pango" "FontMetrics"+    IO Int32+++fontMetricsGetStrikethroughPosition ::+    (MonadIO m) =>+    FontMetrics ->                          -- _obj+    m Int32+fontMetricsGetStrikethroughPosition _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_metrics_get_strikethrough_position _obj'+    touchManagedPtr _obj+    return result++-- method FontMetrics::get_strikethrough_thickness+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_metrics_get_strikethrough_thickness" pango_font_metrics_get_strikethrough_thickness :: +    Ptr FontMetrics ->                      -- _obj : TInterface "Pango" "FontMetrics"+    IO Int32+++fontMetricsGetStrikethroughThickness ::+    (MonadIO m) =>+    FontMetrics ->                          -- _obj+    m Int32+fontMetricsGetStrikethroughThickness _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_metrics_get_strikethrough_thickness _obj'+    touchManagedPtr _obj+    return result++-- method FontMetrics::get_underline_position+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_metrics_get_underline_position" pango_font_metrics_get_underline_position :: +    Ptr FontMetrics ->                      -- _obj : TInterface "Pango" "FontMetrics"+    IO Int32+++fontMetricsGetUnderlinePosition ::+    (MonadIO m) =>+    FontMetrics ->                          -- _obj+    m Int32+fontMetricsGetUnderlinePosition _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_metrics_get_underline_position _obj'+    touchManagedPtr _obj+    return result++-- method FontMetrics::get_underline_thickness+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_metrics_get_underline_thickness" pango_font_metrics_get_underline_thickness :: +    Ptr FontMetrics ->                      -- _obj : TInterface "Pango" "FontMetrics"+    IO Int32+++fontMetricsGetUnderlineThickness ::+    (MonadIO m) =>+    FontMetrics ->                          -- _obj+    m Int32+fontMetricsGetUnderlineThickness _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_metrics_get_underline_thickness _obj'+    touchManagedPtr _obj+    return result++-- method FontMetrics::ref+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "FontMetrics"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_metrics_ref" pango_font_metrics_ref :: +    Ptr FontMetrics ->                      -- _obj : TInterface "Pango" "FontMetrics"+    IO (Ptr FontMetrics)+++fontMetricsRef ::+    (MonadIO m) =>+    FontMetrics ->                          -- _obj+    m FontMetrics+fontMetricsRef _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_font_metrics_ref _obj'+    result' <- (wrapBoxed FontMetrics) result+    touchManagedPtr _obj+    return result'++-- method FontMetrics::unref+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontMetrics", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_metrics_unref" pango_font_metrics_unref :: +    Ptr FontMetrics ->                      -- _obj : TInterface "Pango" "FontMetrics"+    IO ()+++fontMetricsUnref ::+    (MonadIO m) =>+    FontMetrics ->                          -- _obj+    m ()+fontMetricsUnref _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_font_metrics_unref _obj'+    touchManagedPtr _obj+    return ()++-- object Fontset +newtype Fontset = Fontset (ForeignPtr Fontset)+noFontset :: Maybe Fontset+noFontset = Nothing++foreign import ccall "pango_fontset_get_type"+    c_pango_fontset_get_type :: IO GType++type instance ParentTypes Fontset = '[GObject.Object]++instance GObject Fontset where+    gobjectIsInitiallyUnowned _ = False+    gobjectType _ = c_pango_fontset_get_type+    ++class GObject o => FontsetK o+instance (GObject o, IsDescendantOf Fontset o) => FontsetK o++toFontset :: FontsetK o => o -> IO Fontset+toFontset = unsafeCastTo Fontset++-- method Fontset::foreach+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Fontset", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Pango" "FontsetForeachFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Fontset", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Pango" "FontsetForeachFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_fontset_foreach" pango_fontset_foreach :: +    Ptr Fontset ->                          -- _obj : TInterface "Pango" "Fontset"+    FunPtr FontsetForeachFuncC ->           -- func : TInterface "Pango" "FontsetForeachFunc"+    Ptr () ->                               -- data : TBasicType TVoid+    IO ()+++fontsetForeach ::+    (MonadIO m, FontsetK a) =>+    a ->                                    -- _obj+    FontsetForeachFunc ->                   -- func+    m ()+fontsetForeach _obj func = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    func' <- mkFontsetForeachFunc (fontsetForeachFuncWrapper Nothing func)+    let data_ = nullPtr+    pango_fontset_foreach _obj' func' data_+    safeFreeFunPtr $ castFunPtrToPtr func'+    touchManagedPtr _obj+    return ()++-- method Fontset::get_font+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Fontset", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wc", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Fontset", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wc", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Font"+-- throws : False+-- Skip return : False++foreign import ccall "pango_fontset_get_font" pango_fontset_get_font :: +    Ptr Fontset ->                          -- _obj : TInterface "Pango" "Fontset"+    Word32 ->                               -- wc : TBasicType TUInt32+    IO (Ptr Font)+++fontsetGetFont ::+    (MonadIO m, FontsetK a) =>+    a ->                                    -- _obj+    Word32 ->                               -- wc+    m Font+fontsetGetFont _obj wc = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_fontset_get_font _obj' wc+    result' <- (wrapObject Font) result+    touchManagedPtr _obj+    return result'++-- method Fontset::get_metrics+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Fontset", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Fontset", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "FontMetrics"+-- throws : False+-- Skip return : False++foreign import ccall "pango_fontset_get_metrics" pango_fontset_get_metrics :: +    Ptr Fontset ->                          -- _obj : TInterface "Pango" "Fontset"+    IO (Ptr FontMetrics)+++fontsetGetMetrics ::+    (MonadIO m, FontsetK a) =>+    a ->                                    -- _obj+    m FontMetrics+fontsetGetMetrics _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_fontset_get_metrics _obj'+    result' <- (wrapBoxed FontMetrics) result+    touchManagedPtr _obj+    return result'++-- callback FontsetForeachFunc+fontsetForeachFuncClosure :: FontsetForeachFunc -> IO Closure+fontsetForeachFuncClosure cb = newCClosure =<< mkFontsetForeachFunc wrapped+    where wrapped = fontsetForeachFuncWrapper Nothing cb++type FontsetForeachFuncC =+    Ptr Fontset ->+    Ptr Font ->+    Ptr () ->+    IO CInt++foreign import ccall "wrapper"+    mkFontsetForeachFunc :: FontsetForeachFuncC -> IO (FunPtr FontsetForeachFuncC)++type FontsetForeachFunc =+    Fontset ->+    Font ->+    IO Bool++noFontsetForeachFunc :: Maybe FontsetForeachFunc+noFontsetForeachFunc = Nothing++fontsetForeachFuncWrapper ::+    Maybe (Ptr (FunPtr (FontsetForeachFuncC))) ->+    FontsetForeachFunc ->+    Ptr Fontset ->+    Ptr Font ->+    Ptr () ->+    IO CInt+fontsetForeachFuncWrapper funptrptr _cb fontset font _ = do+    fontset' <- (newObject Fontset) fontset+    font' <- (newObject Font) font+    result <- _cb  fontset' font'+    maybeReleaseFunPtr funptrptr+    let result' = (fromIntegral . fromEnum) result+    return result'++-- object FontsetSimple +newtype FontsetSimple = FontsetSimple (ForeignPtr FontsetSimple)+noFontsetSimple :: Maybe FontsetSimple+noFontsetSimple = Nothing++foreign import ccall "pango_fontset_simple_get_type"+    c_pango_fontset_simple_get_type :: IO GType++type instance ParentTypes FontsetSimple = '[Fontset, GObject.Object]++instance GObject FontsetSimple where+    gobjectIsInitiallyUnowned _ = False+    gobjectType _ = c_pango_fontset_simple_get_type+    ++class GObject o => FontsetSimpleK o+instance (GObject o, IsDescendantOf FontsetSimple o) => FontsetSimpleK o++toFontsetSimple :: FontsetSimpleK o => o -> IO FontsetSimple+toFontsetSimple = unsafeCastTo FontsetSimple++-- method FontsetSimple::new+-- method type : Constructor+-- Args : [Arg {argName = "language", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "language", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "FontsetSimple"+-- throws : False+-- Skip return : False++foreign import ccall "pango_fontset_simple_new" pango_fontset_simple_new :: +    Ptr Language ->                         -- language : TInterface "Pango" "Language"+    IO (Ptr FontsetSimple)+++fontsetSimpleNew ::+    (MonadIO m) =>+    Language ->                             -- language+    m FontsetSimple+fontsetSimpleNew language = liftIO $ do+    let language' = unsafeManagedPtrGetPtr language+    result <- pango_fontset_simple_new language'+    result' <- (wrapObject FontsetSimple) result+    touchManagedPtr language+    return result'++-- method FontsetSimple::append+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontsetSimple", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "font", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontsetSimple", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "font", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_fontset_simple_append" pango_fontset_simple_append :: +    Ptr FontsetSimple ->                    -- _obj : TInterface "Pango" "FontsetSimple"+    Ptr Font ->                             -- font : TInterface "Pango" "Font"+    IO ()+++fontsetSimpleAppend ::+    (MonadIO m, FontsetSimpleK a, FontK b) =>+    a ->                                    -- _obj+    b ->                                    -- font+    m ()+fontsetSimpleAppend _obj font = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let font' = unsafeManagedPtrCastPtr font+    pango_fontset_simple_append _obj' font'+    touchManagedPtr _obj+    touchManagedPtr font+    return ()++-- method FontsetSimple::size+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "FontsetSimple", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "FontsetSimple", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_fontset_simple_size" pango_fontset_simple_size :: +    Ptr FontsetSimple ->                    -- _obj : TInterface "Pango" "FontsetSimple"+    IO Int32+++fontsetSimpleSize ::+    (MonadIO m, FontsetSimpleK a) =>+    a ->                                    -- _obj+    m Int32+fontsetSimpleSize _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_fontset_simple_size _obj'+    touchManagedPtr _obj+    return result++-- struct GlyphGeometry+newtype GlyphGeometry = GlyphGeometry (ForeignPtr GlyphGeometry)+noGlyphGeometry :: Maybe GlyphGeometry+noGlyphGeometry = Nothing++glyphGeometryReadWidth :: GlyphGeometry -> IO Int32+glyphGeometryReadWidth s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO Int32+    return val++glyphGeometryReadXOffset :: GlyphGeometry -> IO Int32+glyphGeometryReadXOffset s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 4) :: IO Int32+    return val++glyphGeometryReadYOffset :: GlyphGeometry -> IO Int32+glyphGeometryReadYOffset s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO Int32+    return val++-- struct GlyphInfo+newtype GlyphInfo = GlyphInfo (ForeignPtr GlyphInfo)+noGlyphInfo :: Maybe GlyphInfo+noGlyphInfo = Nothing++glyphInfoReadGlyph :: GlyphInfo -> IO Word32+glyphInfoReadGlyph s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO Word32+    return val++glyphInfoReadGeometry :: GlyphInfo -> IO GlyphGeometry+glyphInfoReadGeometry s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 4) :: IO (Ptr GlyphGeometry)+    val' <- (newPtr 12 GlyphGeometry) val+    return val'++glyphInfoReadAttr :: GlyphInfo -> IO GlyphVisAttr+glyphInfoReadAttr s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO (Ptr GlyphVisAttr)+    val' <- (newPtr 4 GlyphVisAttr) val+    return val'++-- struct GlyphItem+newtype GlyphItem = GlyphItem (ForeignPtr GlyphItem)+noGlyphItem :: Maybe GlyphItem+noGlyphItem = Nothing++foreign import ccall "pango_glyph_item_get_type" c_pango_glyph_item_get_type :: +    IO GType++instance BoxedObject GlyphItem where+    boxedType _ = c_pango_glyph_item_get_type++glyphItemReadItem :: GlyphItem -> IO Item+glyphItemReadItem s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr Item)+    val' <- (newBoxed Item) val+    return val'++glyphItemReadGlyphs :: GlyphItem -> IO GlyphString+glyphItemReadGlyphs s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr GlyphString)+    val' <- (newBoxed GlyphString) val+    return val'++-- method GlyphItem::apply_attrs+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TGSList (TInterface "Pango" "GlyphItem")+-- throws : False+-- Skip return : False++foreign import ccall "pango_glyph_item_apply_attrs" pango_glyph_item_apply_attrs :: +    Ptr GlyphItem ->                        -- _obj : TInterface "Pango" "GlyphItem"+    CString ->                              -- text : TBasicType TUTF8+    Ptr AttrList ->                         -- list : TInterface "Pango" "AttrList"+    IO (Ptr (GSList (Ptr GlyphItem)))+++glyphItemApplyAttrs ::+    (MonadIO m) =>+    GlyphItem ->                            -- _obj+    T.Text ->                               -- text+    AttrList ->                             -- list+    m [GlyphItem]+glyphItemApplyAttrs _obj text list = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    text' <- textToCString text+    let list' = unsafeManagedPtrGetPtr list+    result <- pango_glyph_item_apply_attrs _obj' text' list'+    result' <- unpackGSList result+    result'' <- mapM (wrapBoxed GlyphItem) result'+    g_slist_free result+    touchManagedPtr _obj+    touchManagedPtr list+    freeMem text'+    return result''++-- method GlyphItem::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "GlyphItem"+-- throws : False+-- Skip return : False++foreign import ccall "pango_glyph_item_copy" pango_glyph_item_copy :: +    Ptr GlyphItem ->                        -- _obj : TInterface "Pango" "GlyphItem"+    IO (Ptr GlyphItem)+++glyphItemCopy ::+    (MonadIO m) =>+    GlyphItem ->                            -- _obj+    m GlyphItem+glyphItemCopy _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_glyph_item_copy _obj'+    result' <- (wrapBoxed GlyphItem) result+    touchManagedPtr _obj+    return result'++-- method GlyphItem::free+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_glyph_item_free" pango_glyph_item_free :: +    Ptr GlyphItem ->                        -- _obj : TInterface "Pango" "GlyphItem"+    IO ()+++glyphItemFree ::+    (MonadIO m) =>+    GlyphItem ->                            -- _obj+    m ()+glyphItemFree _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_glyph_item_free _obj'+    touchManagedPtr _obj+    return ()++-- method GlyphItem::get_logical_widths+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logical_widths", argType = TCArray False (-1) (-1) (TBasicType TInt32), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logical_widths", argType = TCArray False (-1) (-1) (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 "pango_glyph_item_get_logical_widths" pango_glyph_item_get_logical_widths :: +    Ptr GlyphItem ->                        -- _obj : TInterface "Pango" "GlyphItem"+    CString ->                              -- text : TBasicType TUTF8+    Ptr Int32 ->                            -- logical_widths : TCArray False (-1) (-1) (TBasicType TInt32)+    IO ()+++glyphItemGetLogicalWidths ::+    (MonadIO m) =>+    GlyphItem ->                            -- _obj+    T.Text ->                               -- text+    Ptr Int32 ->                            -- logical_widths+    m ()+glyphItemGetLogicalWidths _obj text logical_widths = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    text' <- textToCString text+    pango_glyph_item_get_logical_widths _obj' text' logical_widths+    touchManagedPtr _obj+    freeMem text'+    return ()++-- method GlyphItem::letter_space+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "log_attrs", argType = TCArray False (-1) (-1) (TInterface "Pango" "LogAttr"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "letter_spacing", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "log_attrs", argType = TCArray False (-1) (-1) (TInterface "Pango" "LogAttr"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "letter_spacing", 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 "pango_glyph_item_letter_space" pango_glyph_item_letter_space :: +    Ptr GlyphItem ->                        -- _obj : TInterface "Pango" "GlyphItem"+    CString ->                              -- text : TBasicType TUTF8+    Ptr (Ptr LogAttr) ->                    -- log_attrs : TCArray False (-1) (-1) (TInterface "Pango" "LogAttr")+    Int32 ->                                -- letter_spacing : TBasicType TInt32+    IO ()+++glyphItemLetterSpace ::+    (MonadIO m) =>+    GlyphItem ->                            -- _obj+    T.Text ->                               -- text+    Ptr (Ptr LogAttr) ->                    -- log_attrs+    Int32 ->                                -- letter_spacing+    m ()+glyphItemLetterSpace _obj text log_attrs letter_spacing = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    text' <- textToCString text+    pango_glyph_item_letter_space _obj' text' log_attrs letter_spacing+    touchManagedPtr _obj+    freeMem text'+    return ()++-- method GlyphItem::split+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "split_index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "split_index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "GlyphItem"+-- throws : False+-- Skip return : False++foreign import ccall "pango_glyph_item_split" pango_glyph_item_split :: +    Ptr GlyphItem ->                        -- _obj : TInterface "Pango" "GlyphItem"+    CString ->                              -- text : TBasicType TUTF8+    Int32 ->                                -- split_index : TBasicType TInt32+    IO (Ptr GlyphItem)+++glyphItemSplit ::+    (MonadIO m) =>+    GlyphItem ->                            -- _obj+    T.Text ->                               -- text+    Int32 ->                                -- split_index+    m GlyphItem+glyphItemSplit _obj text split_index = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    text' <- textToCString text+    result <- pango_glyph_item_split _obj' text' split_index+    result' <- (wrapBoxed GlyphItem) result+    touchManagedPtr _obj+    freeMem text'+    return result'++-- struct GlyphItemIter+newtype GlyphItemIter = GlyphItemIter (ForeignPtr GlyphItemIter)+noGlyphItemIter :: Maybe GlyphItemIter+noGlyphItemIter = Nothing++foreign import ccall "pango_glyph_item_iter_get_type" c_pango_glyph_item_iter_get_type :: +    IO GType++instance BoxedObject GlyphItemIter where+    boxedType _ = c_pango_glyph_item_iter_get_type++glyphItemIterReadGlyphItem :: GlyphItemIter -> IO GlyphItem+glyphItemIterReadGlyphItem s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr GlyphItem)+    val' <- (newBoxed GlyphItem) val+    return val'++glyphItemIterReadText :: GlyphItemIter -> IO T.Text+glyphItemIterReadText s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO CString+    val' <- cstringToText val+    return val'++glyphItemIterReadStartGlyph :: GlyphItemIter -> IO Int32+glyphItemIterReadStartGlyph s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO Int32+    return val++glyphItemIterReadStartIndex :: GlyphItemIter -> IO Int32+glyphItemIterReadStartIndex s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 20) :: IO Int32+    return val++glyphItemIterReadStartChar :: GlyphItemIter -> IO Int32+glyphItemIterReadStartChar s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO Int32+    return val++glyphItemIterReadEndGlyph :: GlyphItemIter -> IO Int32+glyphItemIterReadEndGlyph s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 28) :: IO Int32+    return val++glyphItemIterReadEndIndex :: GlyphItemIter -> IO Int32+glyphItemIterReadEndIndex s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO Int32+    return val++glyphItemIterReadEndChar :: GlyphItemIter -> IO Int32+glyphItemIterReadEndChar s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 36) :: IO Int32+    return val++-- method GlyphItemIter::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItemIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItemIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "GlyphItemIter"+-- throws : False+-- Skip return : False++foreign import ccall "pango_glyph_item_iter_copy" pango_glyph_item_iter_copy :: +    Ptr GlyphItemIter ->                    -- _obj : TInterface "Pango" "GlyphItemIter"+    IO (Ptr GlyphItemIter)+++glyphItemIterCopy ::+    (MonadIO m) =>+    GlyphItemIter ->                        -- _obj+    m GlyphItemIter+glyphItemIterCopy _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_glyph_item_iter_copy _obj'+    result' <- (wrapBoxed GlyphItemIter) result+    touchManagedPtr _obj+    return result'++-- method GlyphItemIter::free+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItemIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItemIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_glyph_item_iter_free" pango_glyph_item_iter_free :: +    Ptr GlyphItemIter ->                    -- _obj : TInterface "Pango" "GlyphItemIter"+    IO ()+++glyphItemIterFree ::+    (MonadIO m) =>+    GlyphItemIter ->                        -- _obj+    m ()+glyphItemIterFree _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_glyph_item_iter_free _obj'+    touchManagedPtr _obj+    return ()++-- method GlyphItemIter::init_end+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItemIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "glyph_item", argType = TInterface "Pango" "GlyphItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItemIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "glyph_item", argType = TInterface "Pango" "GlyphItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", 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 "pango_glyph_item_iter_init_end" pango_glyph_item_iter_init_end :: +    Ptr GlyphItemIter ->                    -- _obj : TInterface "Pango" "GlyphItemIter"+    Ptr GlyphItem ->                        -- glyph_item : TInterface "Pango" "GlyphItem"+    CString ->                              -- text : TBasicType TUTF8+    IO CInt+++glyphItemIterInitEnd ::+    (MonadIO m) =>+    GlyphItemIter ->                        -- _obj+    GlyphItem ->                            -- glyph_item+    T.Text ->                               -- text+    m Bool+glyphItemIterInitEnd _obj glyph_item text = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let glyph_item' = unsafeManagedPtrGetPtr glyph_item+    text' <- textToCString text+    result <- pango_glyph_item_iter_init_end _obj' glyph_item' text'+    let result' = (/= 0) result+    touchManagedPtr _obj+    touchManagedPtr glyph_item+    freeMem text'+    return result'++-- method GlyphItemIter::init_start+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItemIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "glyph_item", argType = TInterface "Pango" "GlyphItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItemIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "glyph_item", argType = TInterface "Pango" "GlyphItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", 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 "pango_glyph_item_iter_init_start" pango_glyph_item_iter_init_start :: +    Ptr GlyphItemIter ->                    -- _obj : TInterface "Pango" "GlyphItemIter"+    Ptr GlyphItem ->                        -- glyph_item : TInterface "Pango" "GlyphItem"+    CString ->                              -- text : TBasicType TUTF8+    IO CInt+++glyphItemIterInitStart ::+    (MonadIO m) =>+    GlyphItemIter ->                        -- _obj+    GlyphItem ->                            -- glyph_item+    T.Text ->                               -- text+    m Bool+glyphItemIterInitStart _obj glyph_item text = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let glyph_item' = unsafeManagedPtrGetPtr glyph_item+    text' <- textToCString text+    result <- pango_glyph_item_iter_init_start _obj' glyph_item' text'+    let result' = (/= 0) result+    touchManagedPtr _obj+    touchManagedPtr glyph_item+    freeMem text'+    return result'++-- method GlyphItemIter::next_cluster+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItemIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItemIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_glyph_item_iter_next_cluster" pango_glyph_item_iter_next_cluster :: +    Ptr GlyphItemIter ->                    -- _obj : TInterface "Pango" "GlyphItemIter"+    IO CInt+++glyphItemIterNextCluster ::+    (MonadIO m) =>+    GlyphItemIter ->                        -- _obj+    m Bool+glyphItemIterNextCluster _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_glyph_item_iter_next_cluster _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- method GlyphItemIter::prev_cluster+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItemIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphItemIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_glyph_item_iter_prev_cluster" pango_glyph_item_iter_prev_cluster :: +    Ptr GlyphItemIter ->                    -- _obj : TInterface "Pango" "GlyphItemIter"+    IO CInt+++glyphItemIterPrevCluster ::+    (MonadIO m) =>+    GlyphItemIter ->                        -- _obj+    m Bool+glyphItemIterPrevCluster _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_glyph_item_iter_prev_cluster _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- struct GlyphString+newtype GlyphString = GlyphString (ForeignPtr GlyphString)+noGlyphString :: Maybe GlyphString+noGlyphString = Nothing++foreign import ccall "pango_glyph_string_get_type" c_pango_glyph_string_get_type :: +    IO GType++instance BoxedObject GlyphString where+    boxedType _ = c_pango_glyph_string_get_type++glyphStringReadNumGlyphs :: GlyphString -> IO Int32+glyphStringReadNumGlyphs s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO Int32+    return val++glyphStringReadGlyphs :: GlyphString -> IO GlyphInfo+glyphStringReadGlyphs s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr GlyphInfo)+    val' <- (newPtr 20 GlyphInfo) val+    return val'++glyphStringReadLogClusters :: GlyphString -> IO Int32+glyphStringReadLogClusters s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO Int32+    return val++-- method GlyphString::new+-- method type : Constructor+-- Args : []+-- Lengths : []+-- hInArgs : []+-- returnType : TInterface "Pango" "GlyphString"+-- throws : False+-- Skip return : False++foreign import ccall "pango_glyph_string_new" pango_glyph_string_new :: +    IO (Ptr GlyphString)+++glyphStringNew ::+    (MonadIO m) =>+    m GlyphString+glyphStringNew  = liftIO $ do+    result <- pango_glyph_string_new+    result' <- (wrapBoxed GlyphString) result+    return result'++-- method GlyphString::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "GlyphString"+-- throws : False+-- Skip return : False++foreign import ccall "pango_glyph_string_copy" pango_glyph_string_copy :: +    Ptr GlyphString ->                      -- _obj : TInterface "Pango" "GlyphString"+    IO (Ptr GlyphString)+++glyphStringCopy ::+    (MonadIO m) =>+    GlyphString ->                          -- _obj+    m GlyphString+glyphStringCopy _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_glyph_string_copy _obj'+    result' <- (wrapBoxed GlyphString) result+    touchManagedPtr _obj+    return result'++-- method GlyphString::extents+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "font", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ink_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logical_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "font", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_glyph_string_extents" pango_glyph_string_extents :: +    Ptr GlyphString ->                      -- _obj : TInterface "Pango" "GlyphString"+    Ptr Font ->                             -- font : TInterface "Pango" "Font"+    Ptr Rectangle ->                        -- ink_rect : TInterface "Pango" "Rectangle"+    Ptr Rectangle ->                        -- logical_rect : TInterface "Pango" "Rectangle"+    IO ()+++glyphStringExtents ::+    (MonadIO m, FontK a) =>+    GlyphString ->                          -- _obj+    a ->                                    -- font+    m (Rectangle,Rectangle)+glyphStringExtents _obj font = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let font' = unsafeManagedPtrCastPtr font+    ink_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    logical_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    pango_glyph_string_extents _obj' font' ink_rect logical_rect+    ink_rect' <- (wrapPtr Rectangle) ink_rect+    logical_rect' <- (wrapPtr Rectangle) logical_rect+    touchManagedPtr _obj+    touchManagedPtr font+    return (ink_rect', logical_rect')++-- method GlyphString::extents_range+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "font", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ink_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logical_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "font", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_glyph_string_extents_range" pango_glyph_string_extents_range :: +    Ptr GlyphString ->                      -- _obj : TInterface "Pango" "GlyphString"+    Int32 ->                                -- start : TBasicType TInt32+    Int32 ->                                -- end : TBasicType TInt32+    Ptr Font ->                             -- font : TInterface "Pango" "Font"+    Ptr Rectangle ->                        -- ink_rect : TInterface "Pango" "Rectangle"+    Ptr Rectangle ->                        -- logical_rect : TInterface "Pango" "Rectangle"+    IO ()+++glyphStringExtentsRange ::+    (MonadIO m, FontK a) =>+    GlyphString ->                          -- _obj+    Int32 ->                                -- start+    Int32 ->                                -- end+    a ->                                    -- font+    m (Rectangle,Rectangle)+glyphStringExtentsRange _obj start end font = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let font' = unsafeManagedPtrCastPtr font+    ink_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    logical_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    pango_glyph_string_extents_range _obj' start end font' ink_rect logical_rect+    ink_rect' <- (wrapPtr Rectangle) ink_rect+    logical_rect' <- (wrapPtr Rectangle) logical_rect+    touchManagedPtr _obj+    touchManagedPtr font+    return (ink_rect', logical_rect')++-- method GlyphString::free+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_glyph_string_free" pango_glyph_string_free :: +    Ptr GlyphString ->                      -- _obj : TInterface "Pango" "GlyphString"+    IO ()+++glyphStringFree ::+    (MonadIO m) =>+    GlyphString ->                          -- _obj+    m ()+glyphStringFree _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_glyph_string_free _obj'+    touchManagedPtr _obj+    return ()++-- method GlyphString::get_logical_widths+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, 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 = "embedding_level", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logical_widths", argType = TCArray False (-1) (-1) (TBasicType TInt32), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, 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 = "embedding_level", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logical_widths", argType = TCArray False (-1) (-1) (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 "pango_glyph_string_get_logical_widths" pango_glyph_string_get_logical_widths :: +    Ptr GlyphString ->                      -- _obj : TInterface "Pango" "GlyphString"+    CString ->                              -- text : TBasicType TUTF8+    Int32 ->                                -- length : TBasicType TInt32+    Int32 ->                                -- embedding_level : TBasicType TInt32+    Ptr Int32 ->                            -- logical_widths : TCArray False (-1) (-1) (TBasicType TInt32)+    IO ()+++glyphStringGetLogicalWidths ::+    (MonadIO m) =>+    GlyphString ->                          -- _obj+    T.Text ->                               -- text+    Int32 ->                                -- length+    Int32 ->                                -- embedding_level+    Ptr Int32 ->                            -- logical_widths+    m ()+glyphStringGetLogicalWidths _obj text length_ embedding_level logical_widths = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    text' <- textToCString text+    pango_glyph_string_get_logical_widths _obj' text' length_ embedding_level logical_widths+    touchManagedPtr _obj+    freeMem text'+    return ()++-- method GlyphString::get_width+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_glyph_string_get_width" pango_glyph_string_get_width :: +    Ptr GlyphString ->                      -- _obj : TInterface "Pango" "GlyphString"+    IO Int32+++glyphStringGetWidth ::+    (MonadIO m) =>+    GlyphString ->                          -- _obj+    m Int32+glyphStringGetWidth _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_glyph_string_get_width _obj'+    touchManagedPtr _obj+    return result++-- method GlyphString::index_to_x+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, 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 = "analysis", argType = TInterface "Pango" "Analysis", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "trailing", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_pos", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, 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 = "analysis", argType = TInterface "Pango" "Analysis", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "trailing", 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 "pango_glyph_string_index_to_x" pango_glyph_string_index_to_x :: +    Ptr GlyphString ->                      -- _obj : TInterface "Pango" "GlyphString"+    CString ->                              -- text : TBasicType TUTF8+    Int32 ->                                -- length : TBasicType TInt32+    Ptr Analysis ->                         -- analysis : TInterface "Pango" "Analysis"+    Int32 ->                                -- index_ : TBasicType TInt32+    CInt ->                                 -- trailing : TBasicType TBoolean+    Ptr Int32 ->                            -- x_pos : TBasicType TInt32+    IO ()+++glyphStringIndexToX ::+    (MonadIO m) =>+    GlyphString ->                          -- _obj+    T.Text ->                               -- text+    Int32 ->                                -- length+    Analysis ->                             -- analysis+    Int32 ->                                -- index_+    Bool ->                                 -- trailing+    m (Int32)+glyphStringIndexToX _obj text length_ analysis index_ trailing = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    text' <- textToCString text+    let analysis' = unsafeManagedPtrGetPtr analysis+    let trailing' = (fromIntegral . fromEnum) trailing+    x_pos <- allocMem :: IO (Ptr Int32)+    pango_glyph_string_index_to_x _obj' text' length_ analysis' index_ trailing' x_pos+    x_pos' <- peek x_pos+    touchManagedPtr _obj+    touchManagedPtr analysis+    freeMem text'+    freeMem x_pos+    return x_pos'++-- method GlyphString::set_size+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_len", 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 "pango_glyph_string_set_size" pango_glyph_string_set_size :: +    Ptr GlyphString ->                      -- _obj : TInterface "Pango" "GlyphString"+    Int32 ->                                -- new_len : TBasicType TInt32+    IO ()+++glyphStringSetSize ::+    (MonadIO m) =>+    GlyphString ->                          -- _obj+    Int32 ->                                -- new_len+    m ()+glyphStringSetSize _obj new_len = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_glyph_string_set_size _obj' new_len+    touchManagedPtr _obj+    return ()++-- method GlyphString::x_to_index+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, 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 = "analysis", argType = TInterface "Pango" "Analysis", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_pos", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "trailing", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, 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 = "analysis", argType = TInterface "Pango" "Analysis", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_pos", 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 "pango_glyph_string_x_to_index" pango_glyph_string_x_to_index :: +    Ptr GlyphString ->                      -- _obj : TInterface "Pango" "GlyphString"+    CString ->                              -- text : TBasicType TUTF8+    Int32 ->                                -- length : TBasicType TInt32+    Ptr Analysis ->                         -- analysis : TInterface "Pango" "Analysis"+    Int32 ->                                -- x_pos : TBasicType TInt32+    Ptr Int32 ->                            -- index_ : TBasicType TInt32+    Ptr Int32 ->                            -- trailing : TBasicType TInt32+    IO ()+++glyphStringXToIndex ::+    (MonadIO m) =>+    GlyphString ->                          -- _obj+    T.Text ->                               -- text+    Int32 ->                                -- length+    Analysis ->                             -- analysis+    Int32 ->                                -- x_pos+    m (Int32,Int32)+glyphStringXToIndex _obj text length_ analysis x_pos = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    text' <- textToCString text+    let analysis' = unsafeManagedPtrGetPtr analysis+    index_ <- allocMem :: IO (Ptr Int32)+    trailing <- allocMem :: IO (Ptr Int32)+    pango_glyph_string_x_to_index _obj' text' length_ analysis' x_pos index_ trailing+    index_' <- peek index_+    trailing' <- peek trailing+    touchManagedPtr _obj+    touchManagedPtr analysis+    freeMem text'+    freeMem index_+    freeMem trailing+    return (index_', trailing')++-- struct GlyphVisAttr+newtype GlyphVisAttr = GlyphVisAttr (ForeignPtr GlyphVisAttr)+noGlyphVisAttr :: Maybe GlyphVisAttr+noGlyphVisAttr = Nothing++glyphVisAttrReadIsClusterStart :: GlyphVisAttr -> IO Word32+glyphVisAttrReadIsClusterStart s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO Word32+    return val++-- Enum Gravity++data Gravity = +      GravitySouth+    | GravityEast+    | GravityNorth+    | GravityWest+    | GravityAuto+    | AnotherGravity Int+    deriving (Show, Eq)++instance Enum Gravity where+    fromEnum GravitySouth = 0+    fromEnum GravityEast = 1+    fromEnum GravityNorth = 2+    fromEnum GravityWest = 3+    fromEnum GravityAuto = 4+    fromEnum (AnotherGravity k) = k++    toEnum 0 = GravitySouth+    toEnum 1 = GravityEast+    toEnum 2 = GravityNorth+    toEnum 3 = GravityWest+    toEnum 4 = GravityAuto+    toEnum k = AnotherGravity k++foreign import ccall "pango_gravity_get_type" c_pango_gravity_get_type :: +    IO GType++instance BoxedEnum Gravity where+    boxedEnumType _ = c_pango_gravity_get_type++-- Enum GravityHint++data GravityHint = +      GravityHintNatural+    | GravityHintStrong+    | GravityHintLine+    | AnotherGravityHint Int+    deriving (Show, Eq)++instance Enum GravityHint where+    fromEnum GravityHintNatural = 0+    fromEnum GravityHintStrong = 1+    fromEnum GravityHintLine = 2+    fromEnum (AnotherGravityHint k) = k++    toEnum 0 = GravityHintNatural+    toEnum 1 = GravityHintStrong+    toEnum 2 = GravityHintLine+    toEnum k = AnotherGravityHint k++foreign import ccall "pango_gravity_hint_get_type" c_pango_gravity_hint_get_type :: +    IO GType++instance BoxedEnum GravityHint where+    boxedEnumType _ = c_pango_gravity_hint_get_type++-- struct IncludedModule+newtype IncludedModule = IncludedModule (ForeignPtr IncludedModule)+noIncludedModule :: Maybe IncludedModule+noIncludedModule = Nothing++-- XXX Skipped getter for "IncludedModule:list" :: Not implemented: "Wrapping foreign callbacks is not supported yet"++-- XXX Skipped getter for "IncludedModule:init" :: Not implemented: "Wrapping foreign callbacks is not supported yet"++-- XXX Skipped getter for "IncludedModule:exit" :: Not implemented: "Wrapping foreign callbacks is not supported yet"++-- struct Item+newtype Item = Item (ForeignPtr Item)+noItem :: Maybe Item+noItem = Nothing++foreign import ccall "pango_item_get_type" c_pango_item_get_type :: +    IO GType++instance BoxedObject Item where+    boxedType _ = c_pango_item_get_type++itemReadOffset :: Item -> IO Int32+itemReadOffset s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO Int32+    return val++itemReadLength :: Item -> IO Int32+itemReadLength s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 4) :: IO Int32+    return val++itemReadNumChars :: Item -> IO Int32+itemReadNumChars s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO Int32+    return val++itemReadAnalysis :: Item -> IO Analysis+itemReadAnalysis s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO (Ptr Analysis)+    val' <- (newPtr 48 Analysis) val+    return val'++-- method Item::new+-- method type : Constructor+-- Args : []+-- Lengths : []+-- hInArgs : []+-- returnType : TInterface "Pango" "Item"+-- throws : False+-- Skip return : False++foreign import ccall "pango_item_new" pango_item_new :: +    IO (Ptr Item)+++itemNew ::+    (MonadIO m) =>+    m Item+itemNew  = liftIO $ do+    result <- pango_item_new+    result' <- (wrapBoxed Item) result+    return result'++-- method Item::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Item", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Item", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Item"+-- throws : False+-- Skip return : False++foreign import ccall "pango_item_copy" pango_item_copy :: +    Ptr Item ->                             -- _obj : TInterface "Pango" "Item"+    IO (Ptr Item)+++itemCopy ::+    (MonadIO m) =>+    Item ->                                 -- _obj+    m Item+itemCopy _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_item_copy _obj'+    result' <- (wrapBoxed Item) result+    touchManagedPtr _obj+    return result'++-- method Item::free+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Item", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Item", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_item_free" pango_item_free :: +    Ptr Item ->                             -- _obj : TInterface "Pango" "Item"+    IO ()+++itemFree ::+    (MonadIO m) =>+    Item ->                                 -- _obj+    m ()+itemFree _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_item_free _obj'+    touchManagedPtr _obj+    return ()++-- method Item::split+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Item", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "split_index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "split_offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Item", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "split_index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "split_offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Item"+-- throws : False+-- Skip return : False++foreign import ccall "pango_item_split" pango_item_split :: +    Ptr Item ->                             -- _obj : TInterface "Pango" "Item"+    Int32 ->                                -- split_index : TBasicType TInt32+    Int32 ->                                -- split_offset : TBasicType TInt32+    IO (Ptr Item)+++itemSplit ::+    (MonadIO m) =>+    Item ->                                 -- _obj+    Int32 ->                                -- split_index+    Int32 ->                                -- split_offset+    m Item+itemSplit _obj split_index split_offset = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_item_split _obj' split_index split_offset+    result' <- (wrapBoxed Item) result+    touchManagedPtr _obj+    return result'++-- struct Language+newtype Language = Language (ForeignPtr Language)+noLanguage :: Maybe Language+noLanguage = Nothing++foreign import ccall "pango_language_get_type" c_pango_language_get_type :: +    IO GType++instance BoxedObject Language where+    boxedType _ = c_pango_language_get_type++-- method Language::get_sample_string+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TUTF8+-- throws : False+-- Skip return : False++foreign import ccall "pango_language_get_sample_string" pango_language_get_sample_string :: +    Ptr Language ->                         -- _obj : TInterface "Pango" "Language"+    IO CString+++languageGetSampleString ::+    (MonadIO m) =>+    Language ->                             -- _obj+    m T.Text+languageGetSampleString _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_language_get_sample_string _obj'+    result' <- cstringToText result+    touchManagedPtr _obj+    return result'++-- method Language::get_scripts+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "num_scripts", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : [Arg {argName = "num_scripts", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TCArray False (-1) 1 (TInterface "Pango" "Script")+-- throws : False+-- Skip return : False++foreign import ccall "pango_language_get_scripts" pango_language_get_scripts :: +    Ptr Language ->                         -- _obj : TInterface "Pango" "Language"+    Ptr Int32 ->                            -- num_scripts : TBasicType TInt32+    IO (Ptr CUInt)+++languageGetScripts ::+    (MonadIO m) =>+    Language ->                             -- _obj+    m [Script]+languageGetScripts _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    num_scripts <- allocMem :: IO (Ptr Int32)+    result <- pango_language_get_scripts _obj' num_scripts+    num_scripts' <- peek num_scripts+    result' <- (unpackStorableArrayWithLength num_scripts') result+    let result'' = map (toEnum . fromIntegral) result'+    touchManagedPtr _obj+    freeMem num_scripts+    return result''++-- method Language::includes_script+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "script", argType = TInterface "Pango" "Script", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "script", argType = TInterface "Pango" "Script", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_language_includes_script" pango_language_includes_script :: +    Ptr Language ->                         -- _obj : TInterface "Pango" "Language"+    CUInt ->                                -- script : TInterface "Pango" "Script"+    IO CInt+++languageIncludesScript ::+    (MonadIO m) =>+    Language ->                             -- _obj+    Script ->                               -- script+    m Bool+languageIncludesScript _obj script = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let script' = (fromIntegral . fromEnum) script+    result <- pango_language_includes_script _obj' script'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- method Language::matches+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "range_list", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "range_list", 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 "pango_language_matches" pango_language_matches :: +    Ptr Language ->                         -- _obj : TInterface "Pango" "Language"+    CString ->                              -- range_list : TBasicType TUTF8+    IO CInt+++languageMatches ::+    (MonadIO m) =>+    Language ->                             -- _obj+    T.Text ->                               -- range_list+    m Bool+languageMatches _obj range_list = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    range_list' <- textToCString range_list+    result <- pango_language_matches _obj' range_list'+    let result' = (/= 0) result+    touchManagedPtr _obj+    freeMem range_list'+    return result'++-- method Language::to_string+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TUTF8+-- throws : False+-- Skip return : False++foreign import ccall "pango_language_to_string" pango_language_to_string :: +    Ptr Language ->                         -- _obj : TInterface "Pango" "Language"+    IO CString+++languageToString ::+    (MonadIO m) =>+    Language ->                             -- _obj+    m T.Text+languageToString _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_language_to_string _obj'+    result' <- cstringToText result+    touchManagedPtr _obj+    return result'++-- object Layout +newtype Layout = Layout (ForeignPtr Layout)+noLayout :: Maybe Layout+noLayout = Nothing++foreign import ccall "pango_layout_get_type"+    c_pango_layout_get_type :: IO GType++type instance ParentTypes Layout = '[GObject.Object]++instance GObject Layout where+    gobjectIsInitiallyUnowned _ = False+    gobjectType _ = c_pango_layout_get_type+    ++class GObject o => LayoutK o+instance (GObject o, IsDescendantOf Layout o) => LayoutK o++toLayout :: LayoutK o => o -> IO Layout+toLayout = unsafeCastTo Layout++-- method Layout::new+-- method type : Constructor+-- Args : [Arg {argName = "context", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "context", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Layout"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_new" pango_layout_new :: +    Ptr Context ->                          -- context : TInterface "Pango" "Context"+    IO (Ptr Layout)+++layoutNew ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- context+    m Layout+layoutNew context = liftIO $ do+    let context' = unsafeManagedPtrCastPtr context+    result <- pango_layout_new context'+    result' <- (wrapObject Layout) result+    touchManagedPtr context+    return result'++-- method Layout::context_changed+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_context_changed" pango_layout_context_changed :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO ()+++layoutContextChanged ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m ()+layoutContextChanged _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    pango_layout_context_changed _obj'+    touchManagedPtr _obj+    return ()++-- method Layout::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Layout"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_copy" pango_layout_copy :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO (Ptr Layout)+++layoutCopy ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Layout+layoutCopy _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_copy _obj'+    result' <- (wrapObject Layout) result+    touchManagedPtr _obj+    return result'++-- method Layout::get_alignment+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Alignment"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_alignment" pango_layout_get_alignment :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO CUInt+++layoutGetAlignment ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Alignment+layoutGetAlignment _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_alignment _obj'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    return result'++-- method Layout::get_attributes+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "AttrList"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_attributes" pango_layout_get_attributes :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO (Ptr AttrList)+++layoutGetAttributes ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m AttrList+layoutGetAttributes _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_attributes _obj'+    result' <- (newBoxed AttrList) result+    touchManagedPtr _obj+    return result'++-- method Layout::get_auto_dir+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_auto_dir" pango_layout_get_auto_dir :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO CInt+++layoutGetAutoDir ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Bool+layoutGetAutoDir _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_auto_dir _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- method Layout::get_baseline+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_baseline" pango_layout_get_baseline :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO Int32+++layoutGetBaseline ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Int32+layoutGetBaseline _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_baseline _obj'+    touchManagedPtr _obj+    return result++-- method Layout::get_character_count+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_character_count" pango_layout_get_character_count :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO Int32+++layoutGetCharacterCount ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Int32+layoutGetCharacterCount _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_character_count _obj'+    touchManagedPtr _obj+    return result++-- method Layout::get_context+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Context"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_context" pango_layout_get_context :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO (Ptr Context)+++layoutGetContext ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Context+layoutGetContext _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_context _obj'+    result' <- (newObject Context) result+    touchManagedPtr _obj+    return result'++-- method Layout::get_cursor_pos+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "strong_pos", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "weak_pos", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", 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 "pango_layout_get_cursor_pos" pango_layout_get_cursor_pos :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Int32 ->                                -- index_ : TBasicType TInt32+    Ptr Rectangle ->                        -- strong_pos : TInterface "Pango" "Rectangle"+    Ptr Rectangle ->                        -- weak_pos : TInterface "Pango" "Rectangle"+    IO ()+++layoutGetCursorPos ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Int32 ->                                -- index_+    m (Rectangle,Rectangle)+layoutGetCursorPos _obj index_ = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    strong_pos <- callocBytes 16 :: IO (Ptr Rectangle)+    weak_pos <- callocBytes 16 :: IO (Ptr Rectangle)+    pango_layout_get_cursor_pos _obj' index_ strong_pos weak_pos+    strong_pos' <- (wrapPtr Rectangle) strong_pos+    weak_pos' <- (wrapPtr Rectangle) weak_pos+    touchManagedPtr _obj+    return (strong_pos', weak_pos')++-- method Layout::get_ellipsize+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "EllipsizeMode"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_ellipsize" pango_layout_get_ellipsize :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO CUInt+++layoutGetEllipsize ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m EllipsizeMode+layoutGetEllipsize _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_ellipsize _obj'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    return result'++-- method Layout::get_extents+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ink_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logical_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_extents" pango_layout_get_extents :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Ptr Rectangle ->                        -- ink_rect : TInterface "Pango" "Rectangle"+    Ptr Rectangle ->                        -- logical_rect : TInterface "Pango" "Rectangle"+    IO ()+++layoutGetExtents ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m (Rectangle,Rectangle)+layoutGetExtents _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    ink_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    logical_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    pango_layout_get_extents _obj' ink_rect logical_rect+    ink_rect' <- (wrapPtr Rectangle) ink_rect+    logical_rect' <- (wrapPtr Rectangle) logical_rect+    touchManagedPtr _obj+    return (ink_rect', logical_rect')++-- method Layout::get_font_description+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "FontDescription"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_font_description" pango_layout_get_font_description :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO (Ptr FontDescription)+++layoutGetFontDescription ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m FontDescription+layoutGetFontDescription _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_font_description _obj'+    result' <- (newBoxed FontDescription) result+    touchManagedPtr _obj+    return result'++-- method Layout::get_height+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_height" pango_layout_get_height :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO Int32+++layoutGetHeight ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Int32+layoutGetHeight _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_height _obj'+    touchManagedPtr _obj+    return result++-- method Layout::get_indent+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_indent" pango_layout_get_indent :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO Int32+++layoutGetIndent ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Int32+layoutGetIndent _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_indent _obj'+    touchManagedPtr _obj+    return result++-- method Layout::get_iter+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "LayoutIter"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_iter" pango_layout_get_iter :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO (Ptr LayoutIter)+++layoutGetIter ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m LayoutIter+layoutGetIter _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_iter _obj'+    result' <- (wrapBoxed LayoutIter) result+    touchManagedPtr _obj+    return result'++-- method Layout::get_justify+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_justify" pango_layout_get_justify :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO CInt+++layoutGetJustify ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Bool+layoutGetJustify _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_justify _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- method Layout::get_line+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "LayoutLine"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_line" pango_layout_get_line :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Int32 ->                                -- line : TBasicType TInt32+    IO (Ptr LayoutLine)+++layoutGetLine ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Int32 ->                                -- line+    m LayoutLine+layoutGetLine _obj line = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_line _obj' line+    result' <- (newBoxed LayoutLine) result+    touchManagedPtr _obj+    return result'++-- method Layout::get_line_count+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_line_count" pango_layout_get_line_count :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO Int32+++layoutGetLineCount ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Int32+layoutGetLineCount _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_line_count _obj'+    touchManagedPtr _obj+    return result++-- method Layout::get_line_readonly+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "LayoutLine"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_line_readonly" pango_layout_get_line_readonly :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Int32 ->                                -- line : TBasicType TInt32+    IO (Ptr LayoutLine)+++layoutGetLineReadonly ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Int32 ->                                -- line+    m LayoutLine+layoutGetLineReadonly _obj line = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_line_readonly _obj' line+    result' <- (newBoxed LayoutLine) result+    touchManagedPtr _obj+    return result'++-- method Layout::get_lines+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TGSList (TInterface "Pango" "LayoutLine")+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_lines" pango_layout_get_lines :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO (Ptr (GSList (Ptr LayoutLine)))+++layoutGetLines ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m [LayoutLine]+layoutGetLines _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_lines _obj'+    result' <- unpackGSList result+    result'' <- mapM (newBoxed LayoutLine) result'+    touchManagedPtr _obj+    return result''++-- method Layout::get_lines_readonly+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TGSList (TInterface "Pango" "LayoutLine")+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_lines_readonly" pango_layout_get_lines_readonly :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO (Ptr (GSList (Ptr LayoutLine)))+++layoutGetLinesReadonly ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m [LayoutLine]+layoutGetLinesReadonly _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_lines_readonly _obj'+    result' <- unpackGSList result+    result'' <- mapM (newBoxed LayoutLine) result'+    touchManagedPtr _obj+    return result''++-- method Layout::get_log_attrs+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attrs", argType = TCArray False (-1) 2 (TInterface "Pango" "LogAttr"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferContainer},Arg {argName = "n_attrs", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : [Arg {argName = "n_attrs", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_log_attrs" pango_layout_get_log_attrs :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Ptr (Ptr LogAttr) ->                    -- attrs : TCArray False (-1) 2 (TInterface "Pango" "LogAttr")+    Ptr Int32 ->                            -- n_attrs : TBasicType TInt32+    IO ()+++layoutGetLogAttrs ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m ([LogAttr])+layoutGetLogAttrs _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    attrs <- allocMem :: IO (Ptr (Ptr LogAttr))+    n_attrs <- allocMem :: IO (Ptr Int32)+    pango_layout_get_log_attrs _obj' attrs n_attrs+    n_attrs' <- peek n_attrs+    attrs' <- peek attrs+    attrs'' <- (unpackBlockArrayWithLength 52 n_attrs') attrs'+    attrs''' <- mapM (newPtr 52 LogAttr) attrs''+    freeMem attrs'+    touchManagedPtr _obj+    freeMem attrs+    freeMem n_attrs+    return attrs'''++-- method Layout::get_log_attrs_readonly+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_attrs", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : [Arg {argName = "n_attrs", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TCArray False (-1) 1 (TInterface "Pango" "LogAttr")+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_log_attrs_readonly" pango_layout_get_log_attrs_readonly :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Ptr Int32 ->                            -- n_attrs : TBasicType TInt32+    IO (Ptr LogAttr)+++layoutGetLogAttrsReadonly ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m [LogAttr]+layoutGetLogAttrsReadonly _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    n_attrs <- allocMem :: IO (Ptr Int32)+    result <- pango_layout_get_log_attrs_readonly _obj' n_attrs+    n_attrs' <- peek n_attrs+    result' <- (unpackBlockArrayWithLength 52 n_attrs') result+    result'' <- mapM (newPtr 52 LogAttr) result'+    touchManagedPtr _obj+    freeMem n_attrs+    return result''++-- method Layout::get_pixel_extents+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ink_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logical_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_pixel_extents" pango_layout_get_pixel_extents :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Ptr Rectangle ->                        -- ink_rect : TInterface "Pango" "Rectangle"+    Ptr Rectangle ->                        -- logical_rect : TInterface "Pango" "Rectangle"+    IO ()+++layoutGetPixelExtents ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m (Rectangle,Rectangle)+layoutGetPixelExtents _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    ink_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    logical_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    pango_layout_get_pixel_extents _obj' ink_rect logical_rect+    ink_rect' <- (wrapPtr Rectangle) ink_rect+    logical_rect' <- (wrapPtr Rectangle) logical_rect+    touchManagedPtr _obj+    return (ink_rect', logical_rect')++-- method Layout::get_pixel_size+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},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 "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_pixel_size" pango_layout_get_pixel_size :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Ptr Int32 ->                            -- width : TBasicType TInt32+    Ptr Int32 ->                            -- height : TBasicType TInt32+    IO ()+++layoutGetPixelSize ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m (Int32,Int32)+layoutGetPixelSize _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    width <- allocMem :: IO (Ptr Int32)+    height <- allocMem :: IO (Ptr Int32)+    pango_layout_get_pixel_size _obj' width height+    width' <- peek width+    height' <- peek height+    touchManagedPtr _obj+    freeMem width+    freeMem height+    return (width', height')++-- method Layout::get_serial+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TUInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_serial" pango_layout_get_serial :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO Word32+++layoutGetSerial ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Word32+layoutGetSerial _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_serial _obj'+    touchManagedPtr _obj+    return result++-- method Layout::get_single_paragraph_mode+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_single_paragraph_mode" pango_layout_get_single_paragraph_mode :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO CInt+++layoutGetSingleParagraphMode ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Bool+layoutGetSingleParagraphMode _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_single_paragraph_mode _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- method Layout::get_size+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_size" pango_layout_get_size :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Ptr Int32 ->                            -- width : TBasicType TInt32+    Ptr Int32 ->                            -- height : TBasicType TInt32+    IO ()+++layoutGetSize ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m (Int32,Int32)+layoutGetSize _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    width <- allocMem :: IO (Ptr Int32)+    height <- allocMem :: IO (Ptr Int32)+    pango_layout_get_size _obj' width height+    width' <- peek width+    height' <- peek height+    touchManagedPtr _obj+    freeMem width+    freeMem height+    return (width', height')++-- method Layout::get_spacing+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_spacing" pango_layout_get_spacing :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO Int32+++layoutGetSpacing ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Int32+layoutGetSpacing _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_spacing _obj'+    touchManagedPtr _obj+    return result++-- method Layout::get_tabs+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "TabArray"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_tabs" pango_layout_get_tabs :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO (Ptr TabArray)+++layoutGetTabs ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m TabArray+layoutGetTabs _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_tabs _obj'+    result' <- (wrapBoxed TabArray) result+    touchManagedPtr _obj+    return result'++-- method Layout::get_text+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TUTF8+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_text" pango_layout_get_text :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO CString+++layoutGetText ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m T.Text+layoutGetText _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_text _obj'+    result' <- cstringToText result+    touchManagedPtr _obj+    return result'++-- method Layout::get_unknown_glyphs_count+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_unknown_glyphs_count" pango_layout_get_unknown_glyphs_count :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO Int32+++layoutGetUnknownGlyphsCount ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Int32+layoutGetUnknownGlyphsCount _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_unknown_glyphs_count _obj'+    touchManagedPtr _obj+    return result++-- method Layout::get_width+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_width" pango_layout_get_width :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO Int32+++layoutGetWidth ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Int32+layoutGetWidth _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_width _obj'+    touchManagedPtr _obj+    return result++-- method Layout::get_wrap+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "WrapMode"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_get_wrap" pango_layout_get_wrap :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO CUInt+++layoutGetWrap ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m WrapMode+layoutGetWrap _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_get_wrap _obj'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    return result'++-- method Layout::index_to_line_x+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "trailing", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "x_pos", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "trailing", 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 "pango_layout_index_to_line_x" pango_layout_index_to_line_x :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Int32 ->                                -- index_ : TBasicType TInt32+    CInt ->                                 -- trailing : TBasicType TBoolean+    Ptr Int32 ->                            -- line : TBasicType TInt32+    Ptr Int32 ->                            -- x_pos : TBasicType TInt32+    IO ()+++layoutIndexToLineX ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Int32 ->                                -- index_+    Bool ->                                 -- trailing+    m (Int32,Int32)+layoutIndexToLineX _obj index_ trailing = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let trailing' = (fromIntegral . fromEnum) trailing+    line <- allocMem :: IO (Ptr Int32)+    x_pos <- allocMem :: IO (Ptr Int32)+    pango_layout_index_to_line_x _obj' index_ trailing' line x_pos+    line' <- peek line+    x_pos' <- peek x_pos+    touchManagedPtr _obj+    freeMem line+    freeMem x_pos+    return (line', x_pos')++-- method Layout::index_to_pos+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", 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 "pango_layout_index_to_pos" pango_layout_index_to_pos :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Int32 ->                                -- index_ : TBasicType TInt32+    Ptr Rectangle ->                        -- pos : TInterface "Pango" "Rectangle"+    IO ()+++layoutIndexToPos ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Int32 ->                                -- index_+    m (Rectangle)+layoutIndexToPos _obj index_ = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    pos <- callocBytes 16 :: IO (Ptr Rectangle)+    pango_layout_index_to_pos _obj' index_ pos+    pos' <- (wrapPtr Rectangle) pos+    touchManagedPtr _obj+    return pos'++-- method Layout::is_ellipsized+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_is_ellipsized" pango_layout_is_ellipsized :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO CInt+++layoutIsEllipsized ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Bool+layoutIsEllipsized _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_is_ellipsized _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- method Layout::is_wrapped+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_is_wrapped" pango_layout_is_wrapped :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    IO CInt+++layoutIsWrapped ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    m Bool+layoutIsWrapped _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_layout_is_wrapped _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- method Layout::move_cursor_visually+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "strong", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "old_index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "old_trailing", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "direction", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_index", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "new_trailing", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "strong", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "old_index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "old_trailing", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "direction", 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 "pango_layout_move_cursor_visually" pango_layout_move_cursor_visually :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    CInt ->                                 -- strong : TBasicType TBoolean+    Int32 ->                                -- old_index : TBasicType TInt32+    Int32 ->                                -- old_trailing : TBasicType TInt32+    Int32 ->                                -- direction : TBasicType TInt32+    Ptr Int32 ->                            -- new_index : TBasicType TInt32+    Ptr Int32 ->                            -- new_trailing : TBasicType TInt32+    IO ()+++layoutMoveCursorVisually ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Bool ->                                 -- strong+    Int32 ->                                -- old_index+    Int32 ->                                -- old_trailing+    Int32 ->                                -- direction+    m (Int32,Int32)+layoutMoveCursorVisually _obj strong old_index old_trailing direction = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let strong' = (fromIntegral . fromEnum) strong+    new_index <- allocMem :: IO (Ptr Int32)+    new_trailing <- allocMem :: IO (Ptr Int32)+    pango_layout_move_cursor_visually _obj' strong' old_index old_trailing direction new_index new_trailing+    new_index' <- peek new_index+    new_trailing' <- peek new_trailing+    touchManagedPtr _obj+    freeMem new_index+    freeMem new_trailing+    return (new_index', new_trailing')++-- method Layout::set_alignment+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "alignment", argType = TInterface "Pango" "Alignment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "alignment", argType = TInterface "Pango" "Alignment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_set_alignment" pango_layout_set_alignment :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    CUInt ->                                -- alignment : TInterface "Pango" "Alignment"+    IO ()+++layoutSetAlignment ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Alignment ->                            -- alignment+    m ()+layoutSetAlignment _obj alignment = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let alignment' = (fromIntegral . fromEnum) alignment+    pango_layout_set_alignment _obj' alignment'+    touchManagedPtr _obj+    return ()++-- method Layout::set_attributes+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attrs", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attrs", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_set_attributes" pango_layout_set_attributes :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Ptr AttrList ->                         -- attrs : TInterface "Pango" "AttrList"+    IO ()+++layoutSetAttributes ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Maybe (AttrList) ->                     -- attrs+    m ()+layoutSetAttributes _obj attrs = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    maybeAttrs <- case attrs of+        Nothing -> return nullPtr+        Just jAttrs -> do+            let jAttrs' = unsafeManagedPtrGetPtr jAttrs+            return jAttrs'+    pango_layout_set_attributes _obj' maybeAttrs+    touchManagedPtr _obj+    whenJust attrs touchManagedPtr+    return ()++-- method Layout::set_auto_dir+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "auto_dir", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "auto_dir", 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 "pango_layout_set_auto_dir" pango_layout_set_auto_dir :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    CInt ->                                 -- auto_dir : TBasicType TBoolean+    IO ()+++layoutSetAutoDir ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Bool ->                                 -- auto_dir+    m ()+layoutSetAutoDir _obj auto_dir = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let auto_dir' = (fromIntegral . fromEnum) auto_dir+    pango_layout_set_auto_dir _obj' auto_dir'+    touchManagedPtr _obj+    return ()++-- method Layout::set_ellipsize+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ellipsize", argType = TInterface "Pango" "EllipsizeMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ellipsize", argType = TInterface "Pango" "EllipsizeMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_set_ellipsize" pango_layout_set_ellipsize :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    CUInt ->                                -- ellipsize : TInterface "Pango" "EllipsizeMode"+    IO ()+++layoutSetEllipsize ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    EllipsizeMode ->                        -- ellipsize+    m ()+layoutSetEllipsize _obj ellipsize = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let ellipsize' = (fromIntegral . fromEnum) ellipsize+    pango_layout_set_ellipsize _obj' ellipsize'+    touchManagedPtr _obj+    return ()++-- method Layout::set_font_description+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desc", argType = TInterface "Pango" "FontDescription", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_set_font_description" pango_layout_set_font_description :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Ptr FontDescription ->                  -- desc : TInterface "Pango" "FontDescription"+    IO ()+++layoutSetFontDescription ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Maybe (FontDescription) ->              -- desc+    m ()+layoutSetFontDescription _obj desc = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    maybeDesc <- case desc of+        Nothing -> return nullPtr+        Just jDesc -> do+            let jDesc' = unsafeManagedPtrGetPtr jDesc+            return jDesc'+    pango_layout_set_font_description _obj' maybeDesc+    touchManagedPtr _obj+    whenJust desc touchManagedPtr+    return ()++-- method Layout::set_height+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", 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 "Pango" "Layout", 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 "pango_layout_set_height" pango_layout_set_height :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Int32 ->                                -- height : TBasicType TInt32+    IO ()+++layoutSetHeight ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Int32 ->                                -- height+    m ()+layoutSetHeight _obj height = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    pango_layout_set_height _obj' height+    touchManagedPtr _obj+    return ()++-- method Layout::set_indent+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "indent", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "indent", 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 "pango_layout_set_indent" pango_layout_set_indent :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Int32 ->                                -- indent : TBasicType TInt32+    IO ()+++layoutSetIndent ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Int32 ->                                -- indent+    m ()+layoutSetIndent _obj indent = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    pango_layout_set_indent _obj' indent+    touchManagedPtr _obj+    return ()++-- method Layout::set_justify+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "justify", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "justify", 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 "pango_layout_set_justify" pango_layout_set_justify :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    CInt ->                                 -- justify : TBasicType TBoolean+    IO ()+++layoutSetJustify ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Bool ->                                 -- justify+    m ()+layoutSetJustify _obj justify = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let justify' = (fromIntegral . fromEnum) justify+    pango_layout_set_justify _obj' justify'+    touchManagedPtr _obj+    return ()++-- method Layout::set_markup+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "markup", argType = TBasicType TUTF8, 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}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "markup", argType = TBasicType TUTF8, 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}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_set_markup" pango_layout_set_markup :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    CString ->                              -- markup : TBasicType TUTF8+    Int32 ->                                -- length : TBasicType TInt32+    IO ()+++layoutSetMarkup ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    T.Text ->                               -- markup+    Int32 ->                                -- length+    m ()+layoutSetMarkup _obj markup length_ = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    markup' <- textToCString markup+    pango_layout_set_markup _obj' markup' length_+    touchManagedPtr _obj+    freeMem markup'+    return ()++-- method Layout::set_markup_with_accel+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "markup", argType = TBasicType TUTF8, 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 = "accel_marker", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "accel_char", argType = TBasicType TUniChar, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "markup", argType = TBasicType TUTF8, 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 = "accel_marker", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_set_markup_with_accel" pango_layout_set_markup_with_accel :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    CString ->                              -- markup : TBasicType TUTF8+    Int32 ->                                -- length : TBasicType TInt32+    CInt ->                                 -- accel_marker : TBasicType TUniChar+    Ptr CInt ->                             -- accel_char : TBasicType TUniChar+    IO ()+++layoutSetMarkupWithAccel ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    T.Text ->                               -- markup+    Int32 ->                                -- length+    Char ->                                 -- accel_marker+    m (Char)+layoutSetMarkupWithAccel _obj markup length_ accel_marker = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    markup' <- textToCString markup+    let accel_marker' = (fromIntegral . ord) accel_marker+    accel_char <- allocMem :: IO (Ptr CInt)+    pango_layout_set_markup_with_accel _obj' markup' length_ accel_marker' accel_char+    accel_char' <- peek accel_char+    let accel_char'' = (chr . fromIntegral) accel_char'+    touchManagedPtr _obj+    freeMem markup'+    freeMem accel_char+    return accel_char''++-- method Layout::set_single_paragraph_mode+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", 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 "Pango" "Layout", 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 "pango_layout_set_single_paragraph_mode" pango_layout_set_single_paragraph_mode :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    CInt ->                                 -- setting : TBasicType TBoolean+    IO ()+++layoutSetSingleParagraphMode ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Bool ->                                 -- setting+    m ()+layoutSetSingleParagraphMode _obj setting = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let setting' = (fromIntegral . fromEnum) setting+    pango_layout_set_single_paragraph_mode _obj' setting'+    touchManagedPtr _obj+    return ()++-- method Layout::set_spacing+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "spacing", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "spacing", 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 "pango_layout_set_spacing" pango_layout_set_spacing :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Int32 ->                                -- spacing : TBasicType TInt32+    IO ()+++layoutSetSpacing ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Int32 ->                                -- spacing+    m ()+layoutSetSpacing _obj spacing = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    pango_layout_set_spacing _obj' spacing+    touchManagedPtr _obj+    return ()++-- method Layout::set_tabs+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tabs", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tabs", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_set_tabs" pango_layout_set_tabs :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Ptr TabArray ->                         -- tabs : TInterface "Pango" "TabArray"+    IO ()+++layoutSetTabs ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Maybe (TabArray) ->                     -- tabs+    m ()+layoutSetTabs _obj tabs = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    maybeTabs <- case tabs of+        Nothing -> return nullPtr+        Just jTabs -> do+            let jTabs' = unsafeManagedPtrGetPtr jTabs+            return jTabs'+    pango_layout_set_tabs _obj' maybeTabs+    touchManagedPtr _obj+    whenJust tabs touchManagedPtr+    return ()++-- method Layout::set_text+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, 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}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, 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}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_set_text" pango_layout_set_text :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    CString ->                              -- text : TBasicType TUTF8+    Int32 ->                                -- length : TBasicType TInt32+    IO ()+++layoutSetText ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    T.Text ->                               -- text+    Int32 ->                                -- length+    m ()+layoutSetText _obj text length_ = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    text' <- textToCString text+    pango_layout_set_text _obj' text' length_+    touchManagedPtr _obj+    freeMem text'+    return ()++-- method Layout::set_width+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", 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}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", 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}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_set_width" pango_layout_set_width :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Int32 ->                                -- width : TBasicType TInt32+    IO ()+++layoutSetWidth ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Int32 ->                                -- width+    m ()+layoutSetWidth _obj width = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    pango_layout_set_width _obj' width+    touchManagedPtr _obj+    return ()++-- method Layout::set_wrap+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wrap", argType = TInterface "Pango" "WrapMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wrap", argType = TInterface "Pango" "WrapMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_set_wrap" pango_layout_set_wrap :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    CUInt ->                                -- wrap : TInterface "Pango" "WrapMode"+    IO ()+++layoutSetWrap ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    WrapMode ->                             -- wrap+    m ()+layoutSetWrap _obj wrap = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let wrap' = (fromIntegral . fromEnum) wrap+    pango_layout_set_wrap _obj' wrap'+    touchManagedPtr _obj+    return ()++-- method Layout::xy_to_index+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", 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 = "index_", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "trailing", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Layout", 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 TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_xy_to_index" pango_layout_xy_to_index :: +    Ptr Layout ->                           -- _obj : TInterface "Pango" "Layout"+    Int32 ->                                -- x : TBasicType TInt32+    Int32 ->                                -- y : TBasicType TInt32+    Ptr Int32 ->                            -- index_ : TBasicType TInt32+    Ptr Int32 ->                            -- trailing : TBasicType TInt32+    IO CInt+++layoutXyToIndex ::+    (MonadIO m, LayoutK a) =>+    a ->                                    -- _obj+    Int32 ->                                -- x+    Int32 ->                                -- y+    m (Bool,Int32,Int32)+layoutXyToIndex _obj x y = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    index_ <- allocMem :: IO (Ptr Int32)+    trailing <- allocMem :: IO (Ptr Int32)+    result <- pango_layout_xy_to_index _obj' x y index_ trailing+    let result' = (/= 0) result+    index_' <- peek index_+    trailing' <- peek trailing+    touchManagedPtr _obj+    freeMem index_+    freeMem trailing+    return (result', index_', trailing')++-- struct LayoutIter+newtype LayoutIter = LayoutIter (ForeignPtr LayoutIter)+noLayoutIter :: Maybe LayoutIter+noLayoutIter = Nothing++foreign import ccall "pango_layout_iter_get_type" c_pango_layout_iter_get_type :: +    IO GType++instance BoxedObject LayoutIter where+    boxedType _ = c_pango_layout_iter_get_type++-- method LayoutIter::at_last_line+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_at_last_line" pango_layout_iter_at_last_line :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    IO CInt+++layoutIterAtLastLine ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m Bool+layoutIterAtLastLine _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_layout_iter_at_last_line _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- method LayoutIter::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "LayoutIter"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_copy" pango_layout_iter_copy :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    IO (Ptr LayoutIter)+++layoutIterCopy ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m LayoutIter+layoutIterCopy _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_layout_iter_copy _obj'+    result' <- (wrapBoxed LayoutIter) result+    touchManagedPtr _obj+    return result'++-- method LayoutIter::free+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_free" pango_layout_iter_free :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    IO ()+++layoutIterFree ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m ()+layoutIterFree _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_layout_iter_free _obj'+    touchManagedPtr _obj+    return ()++-- method LayoutIter::get_baseline+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_get_baseline" pango_layout_iter_get_baseline :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    IO Int32+++layoutIterGetBaseline ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m Int32+layoutIterGetBaseline _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_layout_iter_get_baseline _obj'+    touchManagedPtr _obj+    return result++-- method LayoutIter::get_char_extents+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logical_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_get_char_extents" pango_layout_iter_get_char_extents :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    Ptr Rectangle ->                        -- logical_rect : TInterface "Pango" "Rectangle"+    IO ()+++layoutIterGetCharExtents ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m (Rectangle)+layoutIterGetCharExtents _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    logical_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    pango_layout_iter_get_char_extents _obj' logical_rect+    logical_rect' <- (wrapPtr Rectangle) logical_rect+    touchManagedPtr _obj+    return logical_rect'++-- method LayoutIter::get_cluster_extents+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ink_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logical_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_get_cluster_extents" pango_layout_iter_get_cluster_extents :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    Ptr Rectangle ->                        -- ink_rect : TInterface "Pango" "Rectangle"+    Ptr Rectangle ->                        -- logical_rect : TInterface "Pango" "Rectangle"+    IO ()+++layoutIterGetClusterExtents ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m (Rectangle,Rectangle)+layoutIterGetClusterExtents _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    ink_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    logical_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    pango_layout_iter_get_cluster_extents _obj' ink_rect logical_rect+    ink_rect' <- (wrapPtr Rectangle) ink_rect+    logical_rect' <- (wrapPtr Rectangle) logical_rect+    touchManagedPtr _obj+    return (ink_rect', logical_rect')++-- method LayoutIter::get_index+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_get_index" pango_layout_iter_get_index :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    IO Int32+++layoutIterGetIndex ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m Int32+layoutIterGetIndex _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_layout_iter_get_index _obj'+    touchManagedPtr _obj+    return result++-- method LayoutIter::get_layout+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Layout"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_get_layout" pango_layout_iter_get_layout :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    IO (Ptr Layout)+++layoutIterGetLayout ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m Layout+layoutIterGetLayout _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_layout_iter_get_layout _obj'+    result' <- (newObject Layout) result+    touchManagedPtr _obj+    return result'++-- method LayoutIter::get_layout_extents+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ink_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logical_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_get_layout_extents" pango_layout_iter_get_layout_extents :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    Ptr Rectangle ->                        -- ink_rect : TInterface "Pango" "Rectangle"+    Ptr Rectangle ->                        -- logical_rect : TInterface "Pango" "Rectangle"+    IO ()+++layoutIterGetLayoutExtents ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m (Rectangle,Rectangle)+layoutIterGetLayoutExtents _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    ink_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    logical_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    pango_layout_iter_get_layout_extents _obj' ink_rect logical_rect+    ink_rect' <- (wrapPtr Rectangle) ink_rect+    logical_rect' <- (wrapPtr Rectangle) logical_rect+    touchManagedPtr _obj+    return (ink_rect', logical_rect')++-- method LayoutIter::get_line+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "LayoutLine"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_get_line" pango_layout_iter_get_line :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    IO (Ptr LayoutLine)+++layoutIterGetLine ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m LayoutLine+layoutIterGetLine _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_layout_iter_get_line _obj'+    result' <- (wrapBoxed LayoutLine) result+    touchManagedPtr _obj+    return result'++-- method LayoutIter::get_line_extents+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ink_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logical_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_get_line_extents" pango_layout_iter_get_line_extents :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    Ptr Rectangle ->                        -- ink_rect : TInterface "Pango" "Rectangle"+    Ptr Rectangle ->                        -- logical_rect : TInterface "Pango" "Rectangle"+    IO ()+++layoutIterGetLineExtents ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m (Rectangle,Rectangle)+layoutIterGetLineExtents _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    ink_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    logical_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    pango_layout_iter_get_line_extents _obj' ink_rect logical_rect+    ink_rect' <- (wrapPtr Rectangle) ink_rect+    logical_rect' <- (wrapPtr Rectangle) logical_rect+    touchManagedPtr _obj+    return (ink_rect', logical_rect')++-- method LayoutIter::get_line_readonly+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "LayoutLine"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_get_line_readonly" pango_layout_iter_get_line_readonly :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    IO (Ptr LayoutLine)+++layoutIterGetLineReadonly ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m LayoutLine+layoutIterGetLineReadonly _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_layout_iter_get_line_readonly _obj'+    result' <- (newBoxed LayoutLine) result+    touchManagedPtr _obj+    return result'++-- method LayoutIter::get_line_yrange+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y0_", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y1_", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_get_line_yrange" pango_layout_iter_get_line_yrange :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    Ptr Int32 ->                            -- y0_ : TBasicType TInt32+    Ptr Int32 ->                            -- y1_ : TBasicType TInt32+    IO ()+++layoutIterGetLineYrange ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m (Int32,Int32)+layoutIterGetLineYrange _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    y0_ <- allocMem :: IO (Ptr Int32)+    y1_ <- allocMem :: IO (Ptr Int32)+    pango_layout_iter_get_line_yrange _obj' y0_ y1_+    y0_' <- peek y0_+    y1_' <- peek y1_+    touchManagedPtr _obj+    freeMem y0_+    freeMem y1_+    return (y0_', y1_')++-- method LayoutIter::get_run+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "GlyphItem"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_get_run" pango_layout_iter_get_run :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    IO (Ptr GlyphItem)+++layoutIterGetRun ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m GlyphItem+layoutIterGetRun _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_layout_iter_get_run _obj'+    result' <- (newBoxed GlyphItem) result+    touchManagedPtr _obj+    return result'++-- method LayoutIter::get_run_extents+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ink_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logical_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_get_run_extents" pango_layout_iter_get_run_extents :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    Ptr Rectangle ->                        -- ink_rect : TInterface "Pango" "Rectangle"+    Ptr Rectangle ->                        -- logical_rect : TInterface "Pango" "Rectangle"+    IO ()+++layoutIterGetRunExtents ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m (Rectangle,Rectangle)+layoutIterGetRunExtents _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    ink_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    logical_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    pango_layout_iter_get_run_extents _obj' ink_rect logical_rect+    ink_rect' <- (wrapPtr Rectangle) ink_rect+    logical_rect' <- (wrapPtr Rectangle) logical_rect+    touchManagedPtr _obj+    return (ink_rect', logical_rect')++-- method LayoutIter::get_run_readonly+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "GlyphItem"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_get_run_readonly" pango_layout_iter_get_run_readonly :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    IO (Ptr GlyphItem)+++layoutIterGetRunReadonly ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m GlyphItem+layoutIterGetRunReadonly _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_layout_iter_get_run_readonly _obj'+    result' <- (newBoxed GlyphItem) result+    touchManagedPtr _obj+    return result'++-- method LayoutIter::next_char+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_next_char" pango_layout_iter_next_char :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    IO CInt+++layoutIterNextChar ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m Bool+layoutIterNextChar _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_layout_iter_next_char _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- method LayoutIter::next_cluster+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_next_cluster" pango_layout_iter_next_cluster :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    IO CInt+++layoutIterNextCluster ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m Bool+layoutIterNextCluster _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_layout_iter_next_cluster _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- method LayoutIter::next_line+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_next_line" pango_layout_iter_next_line :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    IO CInt+++layoutIterNextLine ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m Bool+layoutIterNextLine _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_layout_iter_next_line _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- method LayoutIter::next_run+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_iter_next_run" pango_layout_iter_next_run :: +    Ptr LayoutIter ->                       -- _obj : TInterface "Pango" "LayoutIter"+    IO CInt+++layoutIterNextRun ::+    (MonadIO m) =>+    LayoutIter ->                           -- _obj+    m Bool+layoutIterNextRun _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_layout_iter_next_run _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- struct LayoutLine+newtype LayoutLine = LayoutLine (ForeignPtr LayoutLine)+noLayoutLine :: Maybe LayoutLine+noLayoutLine = Nothing++foreign import ccall "pango_layout_line_get_type" c_pango_layout_line_get_type :: +    IO GType++instance BoxedObject LayoutLine where+    boxedType _ = c_pango_layout_line_get_type++layoutLineReadLayout :: LayoutLine -> IO Layout+layoutLineReadLayout s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr Layout)+    val' <- (newObject Layout) val+    return val'++layoutLineReadStartIndex :: LayoutLine -> IO Int32+layoutLineReadStartIndex s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO Int32+    return val++layoutLineReadLength :: LayoutLine -> IO Int32+layoutLineReadLength s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 12) :: IO Int32+    return val++layoutLineReadRuns :: LayoutLine -> IO ([Ptr ()])+layoutLineReadRuns s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO (Ptr (GSList (Ptr ())))+    val' <- unpackGSList val+    return val'++layoutLineReadIsParagraphStart :: LayoutLine -> IO Word32+layoutLineReadIsParagraphStart s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO Word32+    return val++layoutLineReadResolvedDir :: LayoutLine -> IO Word32+layoutLineReadResolvedDir s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 28) :: IO Word32+    return val++-- method LayoutLine::get_extents+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ink_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logical_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_line_get_extents" pango_layout_line_get_extents :: +    Ptr LayoutLine ->                       -- _obj : TInterface "Pango" "LayoutLine"+    Ptr Rectangle ->                        -- ink_rect : TInterface "Pango" "Rectangle"+    Ptr Rectangle ->                        -- logical_rect : TInterface "Pango" "Rectangle"+    IO ()+++layoutLineGetExtents ::+    (MonadIO m) =>+    LayoutLine ->                           -- _obj+    m (Rectangle,Rectangle)+layoutLineGetExtents _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    ink_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    logical_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    pango_layout_line_get_extents _obj' ink_rect logical_rect+    ink_rect' <- (wrapPtr Rectangle) ink_rect+    logical_rect' <- (wrapPtr Rectangle) logical_rect+    touchManagedPtr _obj+    return (ink_rect', logical_rect')++-- method LayoutLine::get_pixel_extents+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ink_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logical_rect", argType = TInterface "Pango" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_line_get_pixel_extents" pango_layout_line_get_pixel_extents :: +    Ptr LayoutLine ->                       -- _obj : TInterface "Pango" "LayoutLine"+    Ptr Rectangle ->                        -- ink_rect : TInterface "Pango" "Rectangle"+    Ptr Rectangle ->                        -- logical_rect : TInterface "Pango" "Rectangle"+    IO ()+++layoutLineGetPixelExtents ::+    (MonadIO m) =>+    LayoutLine ->                           -- _obj+    m (Rectangle,Rectangle)+layoutLineGetPixelExtents _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    ink_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    logical_rect <- callocBytes 16 :: IO (Ptr Rectangle)+    pango_layout_line_get_pixel_extents _obj' ink_rect logical_rect+    ink_rect' <- (wrapPtr Rectangle) ink_rect+    logical_rect' <- (wrapPtr Rectangle) logical_rect+    touchManagedPtr _obj+    return (ink_rect', logical_rect')++-- method LayoutLine::get_x_ranges+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end_index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ranges", argType = TCArray False (-1) 4 (TBasicType TInt32), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "n_ranges", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : [Arg {argName = "n_ranges", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end_index", 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 "pango_layout_line_get_x_ranges" pango_layout_line_get_x_ranges :: +    Ptr LayoutLine ->                       -- _obj : TInterface "Pango" "LayoutLine"+    Int32 ->                                -- start_index : TBasicType TInt32+    Int32 ->                                -- end_index : TBasicType TInt32+    Ptr (Ptr Int32) ->                      -- ranges : TCArray False (-1) 4 (TBasicType TInt32)+    Ptr Int32 ->                            -- n_ranges : TBasicType TInt32+    IO ()+++layoutLineGetXRanges ::+    (MonadIO m) =>+    LayoutLine ->                           -- _obj+    Int32 ->                                -- start_index+    Int32 ->                                -- end_index+    m ([Int32])+layoutLineGetXRanges _obj start_index end_index = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    ranges <- allocMem :: IO (Ptr (Ptr Int32))+    n_ranges <- allocMem :: IO (Ptr Int32)+    pango_layout_line_get_x_ranges _obj' start_index end_index ranges n_ranges+    n_ranges' <- peek n_ranges+    ranges' <- peek ranges+    ranges'' <- (unpackStorableArrayWithLength n_ranges') ranges'+    freeMem ranges'+    touchManagedPtr _obj+    freeMem ranges+    freeMem n_ranges+    return ranges''++-- method LayoutLine::index_to_x+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "trailing", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_pos", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "trailing", 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 "pango_layout_line_index_to_x" pango_layout_line_index_to_x :: +    Ptr LayoutLine ->                       -- _obj : TInterface "Pango" "LayoutLine"+    Int32 ->                                -- index_ : TBasicType TInt32+    CInt ->                                 -- trailing : TBasicType TBoolean+    Ptr Int32 ->                            -- x_pos : TBasicType TInt32+    IO ()+++layoutLineIndexToX ::+    (MonadIO m) =>+    LayoutLine ->                           -- _obj+    Int32 ->                                -- index_+    Bool ->                                 -- trailing+    m (Int32)+layoutLineIndexToX _obj index_ trailing = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let trailing' = (fromIntegral . fromEnum) trailing+    x_pos <- allocMem :: IO (Ptr Int32)+    pango_layout_line_index_to_x _obj' index_ trailing' x_pos+    x_pos' <- peek x_pos+    touchManagedPtr _obj+    freeMem x_pos+    return x_pos'++-- method LayoutLine::ref+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "LayoutLine"+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_line_ref" pango_layout_line_ref :: +    Ptr LayoutLine ->                       -- _obj : TInterface "Pango" "LayoutLine"+    IO (Ptr LayoutLine)+++layoutLineRef ::+    (MonadIO m) =>+    LayoutLine ->                           -- _obj+    m LayoutLine+layoutLineRef _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_layout_line_ref _obj'+    result' <- (wrapBoxed LayoutLine) result+    touchManagedPtr _obj+    return result'++-- method LayoutLine::unref+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_layout_line_unref" pango_layout_line_unref :: +    Ptr LayoutLine ->                       -- _obj : TInterface "Pango" "LayoutLine"+    IO ()+++layoutLineUnref ::+    (MonadIO m) =>+    LayoutLine ->                           -- _obj+    m ()+layoutLineUnref _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_layout_line_unref _obj'+    touchManagedPtr _obj+    return ()++-- method LayoutLine::x_to_index+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_pos", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "trailing", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "LayoutLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_pos", 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 "pango_layout_line_x_to_index" pango_layout_line_x_to_index :: +    Ptr LayoutLine ->                       -- _obj : TInterface "Pango" "LayoutLine"+    Int32 ->                                -- x_pos : TBasicType TInt32+    Ptr Int32 ->                            -- index_ : TBasicType TInt32+    Ptr Int32 ->                            -- trailing : TBasicType TInt32+    IO CInt+++layoutLineXToIndex ::+    (MonadIO m) =>+    LayoutLine ->                           -- _obj+    Int32 ->                                -- x_pos+    m (Bool,Int32,Int32)+layoutLineXToIndex _obj x_pos = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    index_ <- allocMem :: IO (Ptr Int32)+    trailing <- allocMem :: IO (Ptr Int32)+    result <- pango_layout_line_x_to_index _obj' x_pos index_ trailing+    let result' = (/= 0) result+    index_' <- peek index_+    trailing' <- peek trailing+    touchManagedPtr _obj+    freeMem index_+    freeMem trailing+    return (result', index_', trailing')++-- struct LogAttr+newtype LogAttr = LogAttr (ForeignPtr LogAttr)+noLogAttr :: Maybe LogAttr+noLogAttr = Nothing++logAttrReadIsLineBreak :: LogAttr -> IO Word32+logAttrReadIsLineBreak s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO Word32+    return val++logAttrReadIsMandatoryBreak :: LogAttr -> IO Word32+logAttrReadIsMandatoryBreak s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 4) :: IO Word32+    return val++logAttrReadIsCharBreak :: LogAttr -> IO Word32+logAttrReadIsCharBreak s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO Word32+    return val++logAttrReadIsWhite :: LogAttr -> IO Word32+logAttrReadIsWhite s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 12) :: IO Word32+    return val++logAttrReadIsCursorPosition :: LogAttr -> IO Word32+logAttrReadIsCursorPosition s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO Word32+    return val++logAttrReadIsWordStart :: LogAttr -> IO Word32+logAttrReadIsWordStart s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 20) :: IO Word32+    return val++logAttrReadIsWordEnd :: LogAttr -> IO Word32+logAttrReadIsWordEnd s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO Word32+    return val++logAttrReadIsSentenceBoundary :: LogAttr -> IO Word32+logAttrReadIsSentenceBoundary s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 28) :: IO Word32+    return val++logAttrReadIsSentenceStart :: LogAttr -> IO Word32+logAttrReadIsSentenceStart s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO Word32+    return val++logAttrReadIsSentenceEnd :: LogAttr -> IO Word32+logAttrReadIsSentenceEnd s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 36) :: IO Word32+    return val++logAttrReadBackspaceDeletesCharacter :: LogAttr -> IO Word32+logAttrReadBackspaceDeletesCharacter s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 40) :: IO Word32+    return val++logAttrReadIsExpandableSpace :: LogAttr -> IO Word32+logAttrReadIsExpandableSpace s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 44) :: IO Word32+    return val++logAttrReadIsWordBoundary :: LogAttr -> IO Word32+logAttrReadIsWordBoundary s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 48) :: IO Word32+    return val++-- struct Map+newtype Map = Map (ForeignPtr Map)+noMap :: Maybe Map+noMap = Nothing++-- struct MapEntry+newtype MapEntry = MapEntry (ForeignPtr MapEntry)+noMapEntry :: Maybe MapEntry+noMapEntry = Nothing++-- struct Matrix+newtype Matrix = Matrix (ForeignPtr Matrix)+noMatrix :: Maybe Matrix+noMatrix = Nothing++foreign import ccall "pango_matrix_get_type" c_pango_matrix_get_type :: +    IO GType++instance BoxedObject Matrix where+    boxedType _ = c_pango_matrix_get_type++matrixReadXx :: Matrix -> IO Double+matrixReadXx s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO CDouble+    let val' = realToFrac val+    return val'++matrixReadXy :: Matrix -> IO Double+matrixReadXy s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO CDouble+    let val' = realToFrac val+    return val'++matrixReadYx :: Matrix -> IO Double+matrixReadYx s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO CDouble+    let val' = realToFrac val+    return val'++matrixReadYy :: Matrix -> IO Double+matrixReadYy s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO CDouble+    let val' = realToFrac val+    return val'++matrixReadX0 :: Matrix -> IO Double+matrixReadX0 s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO CDouble+    let val' = realToFrac val+    return val'++matrixReadY0 :: Matrix -> IO Double+matrixReadY0 s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 40) :: IO CDouble+    let val' = realToFrac val+    return val'++-- method Matrix::concat+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_matrix", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_matrix", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_matrix_concat" pango_matrix_concat :: +    Ptr Matrix ->                           -- _obj : TInterface "Pango" "Matrix"+    Ptr Matrix ->                           -- new_matrix : TInterface "Pango" "Matrix"+    IO ()+++matrixConcat ::+    (MonadIO m) =>+    Matrix ->                               -- _obj+    Matrix ->                               -- new_matrix+    m ()+matrixConcat _obj new_matrix = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let new_matrix' = unsafeManagedPtrGetPtr new_matrix+    pango_matrix_concat _obj' new_matrix'+    touchManagedPtr _obj+    touchManagedPtr new_matrix+    return ()++-- method Matrix::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Matrix"+-- throws : False+-- Skip return : False++foreign import ccall "pango_matrix_copy" pango_matrix_copy :: +    Ptr Matrix ->                           -- _obj : TInterface "Pango" "Matrix"+    IO (Ptr Matrix)+++matrixCopy ::+    (MonadIO m) =>+    Matrix ->                               -- _obj+    m Matrix+matrixCopy _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_matrix_copy _obj'+    result' <- (wrapBoxed Matrix) result+    touchManagedPtr _obj+    return result'++-- method Matrix::free+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_matrix_free" pango_matrix_free :: +    Ptr Matrix ->                           -- _obj : TInterface "Pango" "Matrix"+    IO ()+++matrixFree ::+    (MonadIO m) =>+    Matrix ->                               -- _obj+    m ()+matrixFree _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_matrix_free _obj'+    touchManagedPtr _obj+    return ()++-- method Matrix::get_font_scale_factor+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TDouble+-- throws : False+-- Skip return : False++foreign import ccall "pango_matrix_get_font_scale_factor" pango_matrix_get_font_scale_factor :: +    Ptr Matrix ->                           -- _obj : TInterface "Pango" "Matrix"+    IO CDouble+++matrixGetFontScaleFactor ::+    (MonadIO m) =>+    Matrix ->                               -- _obj+    m Double+matrixGetFontScaleFactor _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_matrix_get_font_scale_factor _obj'+    let result' = realToFrac result+    touchManagedPtr _obj+    return result'++-- method Matrix::rotate+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "degrees", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "degrees", 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 "pango_matrix_rotate" pango_matrix_rotate :: +    Ptr Matrix ->                           -- _obj : TInterface "Pango" "Matrix"+    CDouble ->                              -- degrees : TBasicType TDouble+    IO ()+++matrixRotate ::+    (MonadIO m) =>+    Matrix ->                               -- _obj+    Double ->                               -- degrees+    m ()+matrixRotate _obj degrees = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let degrees' = realToFrac degrees+    pango_matrix_rotate _obj' degrees'+    touchManagedPtr _obj+    return ()++-- method Matrix::scale+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale_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 "pango_matrix_scale" pango_matrix_scale :: +    Ptr Matrix ->                           -- _obj : TInterface "Pango" "Matrix"+    CDouble ->                              -- scale_x : TBasicType TDouble+    CDouble ->                              -- scale_y : TBasicType TDouble+    IO ()+++matrixScale ::+    (MonadIO m) =>+    Matrix ->                               -- _obj+    Double ->                               -- scale_x+    Double ->                               -- scale_y+    m ()+matrixScale _obj scale_x scale_y = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let scale_x' = realToFrac scale_x+    let scale_y' = realToFrac scale_y+    pango_matrix_scale _obj' scale_x' scale_y'+    touchManagedPtr _obj+    return ()++-- method Matrix::transform_distance+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dx", argType = TBasicType TDouble, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "dy", argType = TBasicType TDouble, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dx", argType = TBasicType TDouble, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "dy", argType = TBasicType TDouble, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_matrix_transform_distance" pango_matrix_transform_distance :: +    Ptr Matrix ->                           -- _obj : TInterface "Pango" "Matrix"+    Ptr CDouble ->                          -- dx : TBasicType TDouble+    Ptr CDouble ->                          -- dy : TBasicType TDouble+    IO ()+++matrixTransformDistance ::+    (MonadIO m) =>+    Matrix ->                               -- _obj+    Double ->                               -- dx+    Double ->                               -- dy+    m (Double,Double)+matrixTransformDistance _obj dx dy = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let dx' = realToFrac dx+    dx'' <- allocMem :: IO (Ptr CDouble)+    poke dx'' dx'+    let dy' = realToFrac dy+    dy'' <- allocMem :: IO (Ptr CDouble)+    poke dy'' dy'+    pango_matrix_transform_distance _obj' dx'' dy''+    dx''' <- peek dx''+    let dx'''' = realToFrac dx'''+    dy''' <- peek dy''+    let dy'''' = realToFrac dy'''+    touchManagedPtr _obj+    freeMem dx''+    freeMem dy''+    return (dx'''', dy'''')++-- XXX Could not generate method Matrix::transform_pixel_rectangle+-- Error was : Not implemented: "Nullable inout structs not supported"+-- method Matrix::transform_point+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_matrix_transform_point" pango_matrix_transform_point :: +    Ptr Matrix ->                           -- _obj : TInterface "Pango" "Matrix"+    Ptr CDouble ->                          -- x : TBasicType TDouble+    Ptr CDouble ->                          -- y : TBasicType TDouble+    IO ()+++matrixTransformPoint ::+    (MonadIO m) =>+    Matrix ->                               -- _obj+    Double ->                               -- x+    Double ->                               -- y+    m (Double,Double)+matrixTransformPoint _obj x y = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let x' = realToFrac x+    x'' <- allocMem :: IO (Ptr CDouble)+    poke x'' x'+    let y' = realToFrac y+    y'' <- allocMem :: IO (Ptr CDouble)+    poke y'' y'+    pango_matrix_transform_point _obj' 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'''')++-- XXX Could not generate method Matrix::transform_rectangle+-- Error was : Not implemented: "Nullable inout structs not supported"+-- method Matrix::translate+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tx", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ty", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tx", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ty", 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 "pango_matrix_translate" pango_matrix_translate :: +    Ptr Matrix ->                           -- _obj : TInterface "Pango" "Matrix"+    CDouble ->                              -- tx : TBasicType TDouble+    CDouble ->                              -- ty : TBasicType TDouble+    IO ()+++matrixTranslate ::+    (MonadIO m) =>+    Matrix ->                               -- _obj+    Double ->                               -- tx+    Double ->                               -- ty+    m ()+matrixTranslate _obj tx ty = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let tx' = realToFrac tx+    let ty' = realToFrac ty+    pango_matrix_translate _obj' tx' ty'+    touchManagedPtr _obj+    return ()++-- struct Rectangle+newtype Rectangle = Rectangle (ForeignPtr Rectangle)+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++-- Enum RenderPart++data RenderPart = +      RenderPartForeground+    | RenderPartBackground+    | RenderPartUnderline+    | RenderPartStrikethrough+    | AnotherRenderPart Int+    deriving (Show, Eq)++instance Enum RenderPart where+    fromEnum RenderPartForeground = 0+    fromEnum RenderPartBackground = 1+    fromEnum RenderPartUnderline = 2+    fromEnum RenderPartStrikethrough = 3+    fromEnum (AnotherRenderPart k) = k++    toEnum 0 = RenderPartForeground+    toEnum 1 = RenderPartBackground+    toEnum 2 = RenderPartUnderline+    toEnum 3 = RenderPartStrikethrough+    toEnum k = AnotherRenderPart k++foreign import ccall "pango_render_part_get_type" c_pango_render_part_get_type :: +    IO GType++instance BoxedEnum RenderPart where+    boxedEnumType _ = c_pango_render_part_get_type++-- object Renderer +newtype Renderer = Renderer (ForeignPtr Renderer)+noRenderer :: Maybe Renderer+noRenderer = Nothing++foreign import ccall "pango_renderer_get_type"+    c_pango_renderer_get_type :: IO GType++type instance ParentTypes Renderer = '[GObject.Object]++instance GObject Renderer where+    gobjectIsInitiallyUnowned _ = False+    gobjectType _ = c_pango_renderer_get_type+    ++class GObject o => RendererK o+instance (GObject o, IsDescendantOf Renderer o) => RendererK o++toRenderer :: RendererK o => o -> IO Renderer+toRenderer = unsafeCastTo Renderer++-- method Renderer::activate+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_renderer_activate" pango_renderer_activate :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    IO ()+++rendererActivate ::+    (MonadIO m, RendererK a) =>+    a ->                                    -- _obj+    m ()+rendererActivate _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    pango_renderer_activate _obj'+    touchManagedPtr _obj+    return ()++-- method Renderer::deactivate+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_renderer_deactivate" pango_renderer_deactivate :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    IO ()+++rendererDeactivate ::+    (MonadIO m, RendererK a) =>+    a ->                                    -- _obj+    m ()+rendererDeactivate _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    pango_renderer_deactivate _obj'+    touchManagedPtr _obj+    return ()++-- method Renderer::draw_error_underline+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", 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 "Pango" "Renderer", 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 "pango_renderer_draw_error_underline" pango_renderer_draw_error_underline :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    Int32 ->                                -- x : TBasicType TInt32+    Int32 ->                                -- y : TBasicType TInt32+    Int32 ->                                -- width : TBasicType TInt32+    Int32 ->                                -- height : TBasicType TInt32+    IO ()+++rendererDrawErrorUnderline ::+    (MonadIO m, RendererK a) =>+    a ->                                    -- _obj+    Int32 ->                                -- x+    Int32 ->                                -- y+    Int32 ->                                -- width+    Int32 ->                                -- height+    m ()+rendererDrawErrorUnderline _obj x y width height = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    pango_renderer_draw_error_underline _obj' x y width height+    touchManagedPtr _obj+    return ()++-- method Renderer::draw_glyph+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "font", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "glyph", argType = TBasicType TUInt32, 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 = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "font", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "glyph", argType = TBasicType TUInt32, 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 "pango_renderer_draw_glyph" pango_renderer_draw_glyph :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    Ptr Font ->                             -- font : TInterface "Pango" "Font"+    Word32 ->                               -- glyph : TBasicType TUInt32+    CDouble ->                              -- x : TBasicType TDouble+    CDouble ->                              -- y : TBasicType TDouble+    IO ()+++rendererDrawGlyph ::+    (MonadIO m, RendererK a, FontK b) =>+    a ->                                    -- _obj+    b ->                                    -- font+    Word32 ->                               -- glyph+    Double ->                               -- x+    Double ->                               -- y+    m ()+rendererDrawGlyph _obj font glyph x y = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let font' = unsafeManagedPtrCastPtr font+    let x' = realToFrac x+    let y' = realToFrac y+    pango_renderer_draw_glyph _obj' font' glyph x' y'+    touchManagedPtr _obj+    touchManagedPtr font+    return ()++-- method Renderer::draw_glyph_item+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "glyph_item", argType = TInterface "Pango" "GlyphItem", 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 "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "glyph_item", argType = TInterface "Pango" "GlyphItem", 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 "pango_renderer_draw_glyph_item" pango_renderer_draw_glyph_item :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    CString ->                              -- text : TBasicType TUTF8+    Ptr GlyphItem ->                        -- glyph_item : TInterface "Pango" "GlyphItem"+    Int32 ->                                -- x : TBasicType TInt32+    Int32 ->                                -- y : TBasicType TInt32+    IO ()+++rendererDrawGlyphItem ::+    (MonadIO m, RendererK a) =>+    a ->                                    -- _obj+    Maybe (T.Text) ->                       -- text+    GlyphItem ->                            -- glyph_item+    Int32 ->                                -- x+    Int32 ->                                -- y+    m ()+rendererDrawGlyphItem _obj text glyph_item x y = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    maybeText <- case text of+        Nothing -> return nullPtr+        Just jText -> do+            jText' <- textToCString jText+            return jText'+    let glyph_item' = unsafeManagedPtrGetPtr glyph_item+    pango_renderer_draw_glyph_item _obj' maybeText glyph_item' x y+    touchManagedPtr _obj+    touchManagedPtr glyph_item+    freeMem maybeText+    return ()++-- method Renderer::draw_glyphs+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "font", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "glyphs", argType = TInterface "Pango" "GlyphString", 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 "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "font", argType = TInterface "Pango" "Font", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "glyphs", argType = TInterface "Pango" "GlyphString", 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 "pango_renderer_draw_glyphs" pango_renderer_draw_glyphs :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    Ptr Font ->                             -- font : TInterface "Pango" "Font"+    Ptr GlyphString ->                      -- glyphs : TInterface "Pango" "GlyphString"+    Int32 ->                                -- x : TBasicType TInt32+    Int32 ->                                -- y : TBasicType TInt32+    IO ()+++rendererDrawGlyphs ::+    (MonadIO m, RendererK a, FontK b) =>+    a ->                                    -- _obj+    b ->                                    -- font+    GlyphString ->                          -- glyphs+    Int32 ->                                -- x+    Int32 ->                                -- y+    m ()+rendererDrawGlyphs _obj font glyphs x y = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let font' = unsafeManagedPtrCastPtr font+    let glyphs' = unsafeManagedPtrGetPtr glyphs+    pango_renderer_draw_glyphs _obj' font' glyphs' x y+    touchManagedPtr _obj+    touchManagedPtr font+    touchManagedPtr glyphs+    return ()++-- method Renderer::draw_layout+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "layout", argType = TInterface "Pango" "Layout", 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 "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "layout", argType = TInterface "Pango" "Layout", 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 "pango_renderer_draw_layout" pango_renderer_draw_layout :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    Ptr Layout ->                           -- layout : TInterface "Pango" "Layout"+    Int32 ->                                -- x : TBasicType TInt32+    Int32 ->                                -- y : TBasicType TInt32+    IO ()+++rendererDrawLayout ::+    (MonadIO m, RendererK a, LayoutK b) =>+    a ->                                    -- _obj+    b ->                                    -- layout+    Int32 ->                                -- x+    Int32 ->                                -- y+    m ()+rendererDrawLayout _obj layout x y = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let layout' = unsafeManagedPtrCastPtr layout+    pango_renderer_draw_layout _obj' layout' x y+    touchManagedPtr _obj+    touchManagedPtr layout+    return ()++-- method Renderer::draw_layout_line+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TInterface "Pango" "LayoutLine", 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 "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TInterface "Pango" "LayoutLine", 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 "pango_renderer_draw_layout_line" pango_renderer_draw_layout_line :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    Ptr LayoutLine ->                       -- line : TInterface "Pango" "LayoutLine"+    Int32 ->                                -- x : TBasicType TInt32+    Int32 ->                                -- y : TBasicType TInt32+    IO ()+++rendererDrawLayoutLine ::+    (MonadIO m, RendererK a) =>+    a ->                                    -- _obj+    LayoutLine ->                           -- line+    Int32 ->                                -- x+    Int32 ->                                -- y+    m ()+rendererDrawLayoutLine _obj line x y = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let line' = unsafeManagedPtrGetPtr line+    pango_renderer_draw_layout_line _obj' line' x y+    touchManagedPtr _obj+    touchManagedPtr line+    return ()++-- method Renderer::draw_rectangle+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "part", argType = TInterface "Pango" "RenderPart", 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 "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "part", argType = TInterface "Pango" "RenderPart", 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 "pango_renderer_draw_rectangle" pango_renderer_draw_rectangle :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    CUInt ->                                -- part : TInterface "Pango" "RenderPart"+    Int32 ->                                -- x : TBasicType TInt32+    Int32 ->                                -- y : TBasicType TInt32+    Int32 ->                                -- width : TBasicType TInt32+    Int32 ->                                -- height : TBasicType TInt32+    IO ()+++rendererDrawRectangle ::+    (MonadIO m, RendererK a) =>+    a ->                                    -- _obj+    RenderPart ->                           -- part+    Int32 ->                                -- x+    Int32 ->                                -- y+    Int32 ->                                -- width+    Int32 ->                                -- height+    m ()+rendererDrawRectangle _obj part x y width height = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let part' = (fromIntegral . fromEnum) part+    pango_renderer_draw_rectangle _obj' part' x y width height+    touchManagedPtr _obj+    return ()++-- method Renderer::draw_trapezoid+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "part", argType = TInterface "Pango" "RenderPart", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y1_", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x11", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x21", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y2", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x12", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x22", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "part", argType = TInterface "Pango" "RenderPart", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y1_", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x11", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x21", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y2", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x12", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x22", 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 "pango_renderer_draw_trapezoid" pango_renderer_draw_trapezoid :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    CUInt ->                                -- part : TInterface "Pango" "RenderPart"+    CDouble ->                              -- y1_ : TBasicType TDouble+    CDouble ->                              -- x11 : TBasicType TDouble+    CDouble ->                              -- x21 : TBasicType TDouble+    CDouble ->                              -- y2 : TBasicType TDouble+    CDouble ->                              -- x12 : TBasicType TDouble+    CDouble ->                              -- x22 : TBasicType TDouble+    IO ()+++rendererDrawTrapezoid ::+    (MonadIO m, RendererK a) =>+    a ->                                    -- _obj+    RenderPart ->                           -- part+    Double ->                               -- y1_+    Double ->                               -- x11+    Double ->                               -- x21+    Double ->                               -- y2+    Double ->                               -- x12+    Double ->                               -- x22+    m ()+rendererDrawTrapezoid _obj part y1_ x11 x21 y2 x12 x22 = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let part' = (fromIntegral . fromEnum) part+    let y1_' = realToFrac y1_+    let x11' = realToFrac x11+    let x21' = realToFrac x21+    let y2' = realToFrac y2+    let x12' = realToFrac x12+    let x22' = realToFrac x22+    pango_renderer_draw_trapezoid _obj' part' y1_' x11' x21' y2' x12' x22'+    touchManagedPtr _obj+    return ()++-- method Renderer::get_color+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "part", argType = TInterface "Pango" "RenderPart", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "part", argType = TInterface "Pango" "RenderPart", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Color"+-- throws : False+-- Skip return : False++foreign import ccall "pango_renderer_get_color" pango_renderer_get_color :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    CUInt ->                                -- part : TInterface "Pango" "RenderPart"+    IO (Ptr Color)+++rendererGetColor ::+    (MonadIO m, RendererK a) =>+    a ->                                    -- _obj+    RenderPart ->                           -- part+    m Color+rendererGetColor _obj part = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let part' = (fromIntegral . fromEnum) part+    result <- pango_renderer_get_color _obj' part'+    result' <- (newBoxed Color) result+    touchManagedPtr _obj+    return result'++-- method Renderer::get_layout+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Layout"+-- throws : False+-- Skip return : False++foreign import ccall "pango_renderer_get_layout" pango_renderer_get_layout :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    IO (Ptr Layout)+++rendererGetLayout ::+    (MonadIO m, RendererK a) =>+    a ->                                    -- _obj+    m Layout+rendererGetLayout _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_renderer_get_layout _obj'+    result' <- (newObject Layout) result+    touchManagedPtr _obj+    return result'++-- method Renderer::get_layout_line+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "LayoutLine"+-- throws : False+-- Skip return : False++foreign import ccall "pango_renderer_get_layout_line" pango_renderer_get_layout_line :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    IO (Ptr LayoutLine)+++rendererGetLayoutLine ::+    (MonadIO m, RendererK a) =>+    a ->                                    -- _obj+    m LayoutLine+rendererGetLayoutLine _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_renderer_get_layout_line _obj'+    result' <- (newBoxed LayoutLine) result+    touchManagedPtr _obj+    return result'++-- method Renderer::get_matrix+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Matrix"+-- throws : False+-- Skip return : False++foreign import ccall "pango_renderer_get_matrix" pango_renderer_get_matrix :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    IO (Ptr Matrix)+++rendererGetMatrix ::+    (MonadIO m, RendererK a) =>+    a ->                                    -- _obj+    m Matrix+rendererGetMatrix _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- pango_renderer_get_matrix _obj'+    result' <- (newBoxed Matrix) result+    touchManagedPtr _obj+    return result'++-- method Renderer::part_changed+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "part", argType = TInterface "Pango" "RenderPart", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "part", argType = TInterface "Pango" "RenderPart", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_renderer_part_changed" pango_renderer_part_changed :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    CUInt ->                                -- part : TInterface "Pango" "RenderPart"+    IO ()+++rendererPartChanged ::+    (MonadIO m, RendererK a) =>+    a ->                                    -- _obj+    RenderPart ->                           -- part+    m ()+rendererPartChanged _obj part = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let part' = (fromIntegral . fromEnum) part+    pango_renderer_part_changed _obj' part'+    touchManagedPtr _obj+    return ()++-- method Renderer::set_color+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "part", argType = TInterface "Pango" "RenderPart", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Pango" "Color", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "part", argType = TInterface "Pango" "RenderPart", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Pango" "Color", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_renderer_set_color" pango_renderer_set_color :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    CUInt ->                                -- part : TInterface "Pango" "RenderPart"+    Ptr Color ->                            -- color : TInterface "Pango" "Color"+    IO ()+++rendererSetColor ::+    (MonadIO m, RendererK a) =>+    a ->                                    -- _obj+    RenderPart ->                           -- part+    Maybe (Color) ->                        -- color+    m ()+rendererSetColor _obj part color = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let part' = (fromIntegral . fromEnum) part+    maybeColor <- case color of+        Nothing -> return nullPtr+        Just jColor -> do+            let jColor' = unsafeManagedPtrGetPtr jColor+            return jColor'+    pango_renderer_set_color _obj' part' maybeColor+    touchManagedPtr _obj+    whenJust color touchManagedPtr+    return ()++-- method Renderer::set_matrix+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "matrix", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Renderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "matrix", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_renderer_set_matrix" pango_renderer_set_matrix :: +    Ptr Renderer ->                         -- _obj : TInterface "Pango" "Renderer"+    Ptr Matrix ->                           -- matrix : TInterface "Pango" "Matrix"+    IO ()+++rendererSetMatrix ::+    (MonadIO m, RendererK a) =>+    a ->                                    -- _obj+    Maybe (Matrix) ->                       -- matrix+    m ()+rendererSetMatrix _obj matrix = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    maybeMatrix <- case matrix of+        Nothing -> return nullPtr+        Just jMatrix -> do+            let jMatrix' = unsafeManagedPtrGetPtr jMatrix+            return jMatrix'+    pango_renderer_set_matrix _obj' maybeMatrix+    touchManagedPtr _obj+    whenJust matrix touchManagedPtr+    return ()++-- Enum Script++data Script = +      ScriptInvalidCode+    | ScriptCommon+    | ScriptInherited+    | ScriptArabic+    | ScriptArmenian+    | ScriptBengali+    | ScriptBopomofo+    | ScriptCherokee+    | ScriptCoptic+    | ScriptCyrillic+    | ScriptDeseret+    | ScriptDevanagari+    | ScriptEthiopic+    | ScriptGeorgian+    | ScriptGothic+    | ScriptGreek+    | ScriptGujarati+    | ScriptGurmukhi+    | ScriptHan+    | ScriptHangul+    | ScriptHebrew+    | ScriptHiragana+    | ScriptKannada+    | ScriptKatakana+    | ScriptKhmer+    | ScriptLao+    | ScriptLatin+    | ScriptMalayalam+    | ScriptMongolian+    | ScriptMyanmar+    | ScriptOgham+    | ScriptOldItalic+    | ScriptOriya+    | ScriptRunic+    | ScriptSinhala+    | ScriptSyriac+    | ScriptTamil+    | ScriptTelugu+    | ScriptThaana+    | ScriptThai+    | ScriptTibetan+    | ScriptCanadianAboriginal+    | ScriptYi+    | ScriptTagalog+    | ScriptHanunoo+    | ScriptBuhid+    | ScriptTagbanwa+    | ScriptBraille+    | ScriptCypriot+    | ScriptLimbu+    | ScriptOsmanya+    | ScriptShavian+    | ScriptLinearB+    | ScriptTaiLe+    | ScriptUgaritic+    | ScriptNewTaiLue+    | ScriptBuginese+    | ScriptGlagolitic+    | ScriptTifinagh+    | ScriptSylotiNagri+    | ScriptOldPersian+    | ScriptKharoshthi+    | ScriptUnknown+    | ScriptBalinese+    | ScriptCuneiform+    | ScriptPhoenician+    | ScriptPhagsPa+    | ScriptNko+    | ScriptKayahLi+    | ScriptLepcha+    | ScriptRejang+    | ScriptSundanese+    | ScriptSaurashtra+    | ScriptCham+    | ScriptOlChiki+    | ScriptVai+    | ScriptCarian+    | ScriptLycian+    | ScriptLydian+    | ScriptBatak+    | ScriptBrahmi+    | ScriptMandaic+    | ScriptChakma+    | ScriptMeroiticCursive+    | ScriptMeroiticHieroglyphs+    | ScriptMiao+    | ScriptSharada+    | ScriptSoraSompeng+    | ScriptTakri+    | AnotherScript Int+    deriving (Show, Eq)++instance Enum Script where+    fromEnum ScriptInvalidCode = -1+    fromEnum ScriptCommon = 0+    fromEnum ScriptInherited = 1+    fromEnum ScriptArabic = 2+    fromEnum ScriptArmenian = 3+    fromEnum ScriptBengali = 4+    fromEnum ScriptBopomofo = 5+    fromEnum ScriptCherokee = 6+    fromEnum ScriptCoptic = 7+    fromEnum ScriptCyrillic = 8+    fromEnum ScriptDeseret = 9+    fromEnum ScriptDevanagari = 10+    fromEnum ScriptEthiopic = 11+    fromEnum ScriptGeorgian = 12+    fromEnum ScriptGothic = 13+    fromEnum ScriptGreek = 14+    fromEnum ScriptGujarati = 15+    fromEnum ScriptGurmukhi = 16+    fromEnum ScriptHan = 17+    fromEnum ScriptHangul = 18+    fromEnum ScriptHebrew = 19+    fromEnum ScriptHiragana = 20+    fromEnum ScriptKannada = 21+    fromEnum ScriptKatakana = 22+    fromEnum ScriptKhmer = 23+    fromEnum ScriptLao = 24+    fromEnum ScriptLatin = 25+    fromEnum ScriptMalayalam = 26+    fromEnum ScriptMongolian = 27+    fromEnum ScriptMyanmar = 28+    fromEnum ScriptOgham = 29+    fromEnum ScriptOldItalic = 30+    fromEnum ScriptOriya = 31+    fromEnum ScriptRunic = 32+    fromEnum ScriptSinhala = 33+    fromEnum ScriptSyriac = 34+    fromEnum ScriptTamil = 35+    fromEnum ScriptTelugu = 36+    fromEnum ScriptThaana = 37+    fromEnum ScriptThai = 38+    fromEnum ScriptTibetan = 39+    fromEnum ScriptCanadianAboriginal = 40+    fromEnum ScriptYi = 41+    fromEnum ScriptTagalog = 42+    fromEnum ScriptHanunoo = 43+    fromEnum ScriptBuhid = 44+    fromEnum ScriptTagbanwa = 45+    fromEnum ScriptBraille = 46+    fromEnum ScriptCypriot = 47+    fromEnum ScriptLimbu = 48+    fromEnum ScriptOsmanya = 49+    fromEnum ScriptShavian = 50+    fromEnum ScriptLinearB = 51+    fromEnum ScriptTaiLe = 52+    fromEnum ScriptUgaritic = 53+    fromEnum ScriptNewTaiLue = 54+    fromEnum ScriptBuginese = 55+    fromEnum ScriptGlagolitic = 56+    fromEnum ScriptTifinagh = 57+    fromEnum ScriptSylotiNagri = 58+    fromEnum ScriptOldPersian = 59+    fromEnum ScriptKharoshthi = 60+    fromEnum ScriptUnknown = 61+    fromEnum ScriptBalinese = 62+    fromEnum ScriptCuneiform = 63+    fromEnum ScriptPhoenician = 64+    fromEnum ScriptPhagsPa = 65+    fromEnum ScriptNko = 66+    fromEnum ScriptKayahLi = 67+    fromEnum ScriptLepcha = 68+    fromEnum ScriptRejang = 69+    fromEnum ScriptSundanese = 70+    fromEnum ScriptSaurashtra = 71+    fromEnum ScriptCham = 72+    fromEnum ScriptOlChiki = 73+    fromEnum ScriptVai = 74+    fromEnum ScriptCarian = 75+    fromEnum ScriptLycian = 76+    fromEnum ScriptLydian = 77+    fromEnum ScriptBatak = 78+    fromEnum ScriptBrahmi = 79+    fromEnum ScriptMandaic = 80+    fromEnum ScriptChakma = 81+    fromEnum ScriptMeroiticCursive = 82+    fromEnum ScriptMeroiticHieroglyphs = 83+    fromEnum ScriptMiao = 84+    fromEnum ScriptSharada = 85+    fromEnum ScriptSoraSompeng = 86+    fromEnum ScriptTakri = 87+    fromEnum (AnotherScript k) = k++    toEnum -1 = ScriptInvalidCode+    toEnum 0 = ScriptCommon+    toEnum 1 = ScriptInherited+    toEnum 2 = ScriptArabic+    toEnum 3 = ScriptArmenian+    toEnum 4 = ScriptBengali+    toEnum 5 = ScriptBopomofo+    toEnum 6 = ScriptCherokee+    toEnum 7 = ScriptCoptic+    toEnum 8 = ScriptCyrillic+    toEnum 9 = ScriptDeseret+    toEnum 10 = ScriptDevanagari+    toEnum 11 = ScriptEthiopic+    toEnum 12 = ScriptGeorgian+    toEnum 13 = ScriptGothic+    toEnum 14 = ScriptGreek+    toEnum 15 = ScriptGujarati+    toEnum 16 = ScriptGurmukhi+    toEnum 17 = ScriptHan+    toEnum 18 = ScriptHangul+    toEnum 19 = ScriptHebrew+    toEnum 20 = ScriptHiragana+    toEnum 21 = ScriptKannada+    toEnum 22 = ScriptKatakana+    toEnum 23 = ScriptKhmer+    toEnum 24 = ScriptLao+    toEnum 25 = ScriptLatin+    toEnum 26 = ScriptMalayalam+    toEnum 27 = ScriptMongolian+    toEnum 28 = ScriptMyanmar+    toEnum 29 = ScriptOgham+    toEnum 30 = ScriptOldItalic+    toEnum 31 = ScriptOriya+    toEnum 32 = ScriptRunic+    toEnum 33 = ScriptSinhala+    toEnum 34 = ScriptSyriac+    toEnum 35 = ScriptTamil+    toEnum 36 = ScriptTelugu+    toEnum 37 = ScriptThaana+    toEnum 38 = ScriptThai+    toEnum 39 = ScriptTibetan+    toEnum 40 = ScriptCanadianAboriginal+    toEnum 41 = ScriptYi+    toEnum 42 = ScriptTagalog+    toEnum 43 = ScriptHanunoo+    toEnum 44 = ScriptBuhid+    toEnum 45 = ScriptTagbanwa+    toEnum 46 = ScriptBraille+    toEnum 47 = ScriptCypriot+    toEnum 48 = ScriptLimbu+    toEnum 49 = ScriptOsmanya+    toEnum 50 = ScriptShavian+    toEnum 51 = ScriptLinearB+    toEnum 52 = ScriptTaiLe+    toEnum 53 = ScriptUgaritic+    toEnum 54 = ScriptNewTaiLue+    toEnum 55 = ScriptBuginese+    toEnum 56 = ScriptGlagolitic+    toEnum 57 = ScriptTifinagh+    toEnum 58 = ScriptSylotiNagri+    toEnum 59 = ScriptOldPersian+    toEnum 60 = ScriptKharoshthi+    toEnum 61 = ScriptUnknown+    toEnum 62 = ScriptBalinese+    toEnum 63 = ScriptCuneiform+    toEnum 64 = ScriptPhoenician+    toEnum 65 = ScriptPhagsPa+    toEnum 66 = ScriptNko+    toEnum 67 = ScriptKayahLi+    toEnum 68 = ScriptLepcha+    toEnum 69 = ScriptRejang+    toEnum 70 = ScriptSundanese+    toEnum 71 = ScriptSaurashtra+    toEnum 72 = ScriptCham+    toEnum 73 = ScriptOlChiki+    toEnum 74 = ScriptVai+    toEnum 75 = ScriptCarian+    toEnum 76 = ScriptLycian+    toEnum 77 = ScriptLydian+    toEnum 78 = ScriptBatak+    toEnum 79 = ScriptBrahmi+    toEnum 80 = ScriptMandaic+    toEnum 81 = ScriptChakma+    toEnum 82 = ScriptMeroiticCursive+    toEnum 83 = ScriptMeroiticHieroglyphs+    toEnum 84 = ScriptMiao+    toEnum 85 = ScriptSharada+    toEnum 86 = ScriptSoraSompeng+    toEnum 87 = ScriptTakri+    toEnum k = AnotherScript k++foreign import ccall "pango_script_get_type" c_pango_script_get_type :: +    IO GType++instance BoxedEnum Script where+    boxedEnumType _ = c_pango_script_get_type++-- struct ScriptForLang+newtype ScriptForLang = ScriptForLang (ForeignPtr ScriptForLang)+noScriptForLang :: Maybe ScriptForLang+noScriptForLang = Nothing++-- XXX Skipped getter for "ScriptForLang:lang" :: Not implemented: "Don't know how to unpack C array of type TCArray False 7 (-1) (TBasicType TInt8)"++-- XXX Skipped getter for "ScriptForLang:scripts" :: Not implemented: "Don't know how to unpack C array of type TCArray False 3 (-1) (TInterface \"Pango\" \"Script\")"++-- struct ScriptIter+newtype ScriptIter = ScriptIter (ForeignPtr ScriptIter)+noScriptIter :: Maybe ScriptIter+noScriptIter = Nothing++-- method ScriptIter::free+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "ScriptIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "ScriptIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_script_iter_free" pango_script_iter_free :: +    Ptr ScriptIter ->                       -- _obj : TInterface "Pango" "ScriptIter"+    IO ()+++scriptIterFree ::+    (MonadIO m) =>+    ScriptIter ->                           -- _obj+    m ()+scriptIterFree _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_script_iter_free _obj'+    touchManagedPtr _obj+    return ()++-- method ScriptIter::get_range+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "ScriptIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "end", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "script", argType = TInterface "Pango" "Script", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "ScriptIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_script_iter_get_range" pango_script_iter_get_range :: +    Ptr ScriptIter ->                       -- _obj : TInterface "Pango" "ScriptIter"+    Ptr CString ->                          -- start : TBasicType TUTF8+    Ptr CString ->                          -- end : TBasicType TUTF8+    Ptr CUInt ->                            -- script : TInterface "Pango" "Script"+    IO ()+++scriptIterGetRange ::+    (MonadIO m) =>+    ScriptIter ->                           -- _obj+    m (T.Text,T.Text,Script)+scriptIterGetRange _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    start <- allocMem :: IO (Ptr CString)+    end <- allocMem :: IO (Ptr CString)+    script <- allocMem :: IO (Ptr CUInt)+    pango_script_iter_get_range _obj' start end script+    start' <- peek start+    start'' <- cstringToText start'+    freeMem start'+    end' <- peek end+    end'' <- cstringToText end'+    freeMem end'+    script' <- peek script+    let script'' = (toEnum . fromIntegral) script'+    touchManagedPtr _obj+    freeMem start+    freeMem end+    freeMem script+    return (start'', end'', script'')++-- method ScriptIter::next+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "ScriptIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "ScriptIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_script_iter_next" pango_script_iter_next :: +    Ptr ScriptIter ->                       -- _obj : TInterface "Pango" "ScriptIter"+    IO CInt+++scriptIterNext ::+    (MonadIO m) =>+    ScriptIter ->                           -- _obj+    m Bool+scriptIterNext _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_script_iter_next _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- Enum Stretch++data Stretch = +      StretchUltraCondensed+    | StretchExtraCondensed+    | StretchCondensed+    | StretchSemiCondensed+    | StretchNormal+    | StretchSemiExpanded+    | StretchExpanded+    | StretchExtraExpanded+    | StretchUltraExpanded+    | AnotherStretch Int+    deriving (Show, Eq)++instance Enum Stretch where+    fromEnum StretchUltraCondensed = 0+    fromEnum StretchExtraCondensed = 1+    fromEnum StretchCondensed = 2+    fromEnum StretchSemiCondensed = 3+    fromEnum StretchNormal = 4+    fromEnum StretchSemiExpanded = 5+    fromEnum StretchExpanded = 6+    fromEnum StretchExtraExpanded = 7+    fromEnum StretchUltraExpanded = 8+    fromEnum (AnotherStretch k) = k++    toEnum 0 = StretchUltraCondensed+    toEnum 1 = StretchExtraCondensed+    toEnum 2 = StretchCondensed+    toEnum 3 = StretchSemiCondensed+    toEnum 4 = StretchNormal+    toEnum 5 = StretchSemiExpanded+    toEnum 6 = StretchExpanded+    toEnum 7 = StretchExtraExpanded+    toEnum 8 = StretchUltraExpanded+    toEnum k = AnotherStretch k++foreign import ccall "pango_stretch_get_type" c_pango_stretch_get_type :: +    IO GType++instance BoxedEnum Stretch where+    boxedEnumType _ = c_pango_stretch_get_type++-- Enum Style++data Style = +      StyleNormal+    | StyleOblique+    | StyleItalic+    | AnotherStyle Int+    deriving (Show, Eq)++instance Enum Style where+    fromEnum StyleNormal = 0+    fromEnum StyleOblique = 1+    fromEnum StyleItalic = 2+    fromEnum (AnotherStyle k) = k++    toEnum 0 = StyleNormal+    toEnum 1 = StyleOblique+    toEnum 2 = StyleItalic+    toEnum k = AnotherStyle k++foreign import ccall "pango_style_get_type" c_pango_style_get_type :: +    IO GType++instance BoxedEnum Style where+    boxedEnumType _ = c_pango_style_get_type++-- Enum TabAlign++data TabAlign = +      TabAlignLeft+    | AnotherTabAlign Int+    deriving (Show, Eq)++instance Enum TabAlign where+    fromEnum TabAlignLeft = 0+    fromEnum (AnotherTabAlign k) = k++    toEnum 0 = TabAlignLeft+    toEnum k = AnotherTabAlign k++foreign import ccall "pango_tab_align_get_type" c_pango_tab_align_get_type :: +    IO GType++instance BoxedEnum TabAlign where+    boxedEnumType _ = c_pango_tab_align_get_type++-- struct TabArray+newtype TabArray = TabArray (ForeignPtr TabArray)+noTabArray :: Maybe TabArray+noTabArray = Nothing++foreign import ccall "pango_tab_array_get_type" c_pango_tab_array_get_type :: +    IO GType++instance BoxedObject TabArray where+    boxedType _ = c_pango_tab_array_get_type++-- method TabArray::new+-- method type : Constructor+-- Args : [Arg {argName = "initial_size", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "positions_in_pixels", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "initial_size", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "positions_in_pixels", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "TabArray"+-- throws : False+-- Skip return : False++foreign import ccall "pango_tab_array_new" pango_tab_array_new :: +    Int32 ->                                -- initial_size : TBasicType TInt32+    CInt ->                                 -- positions_in_pixels : TBasicType TBoolean+    IO (Ptr TabArray)+++tabArrayNew ::+    (MonadIO m) =>+    Int32 ->                                -- initial_size+    Bool ->                                 -- positions_in_pixels+    m TabArray+tabArrayNew initial_size positions_in_pixels = liftIO $ do+    let positions_in_pixels' = (fromIntegral . fromEnum) positions_in_pixels+    result <- pango_tab_array_new initial_size positions_in_pixels'+    result' <- (wrapBoxed TabArray) result+    return result'++-- method TabArray::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "TabArray"+-- throws : False+-- Skip return : False++foreign import ccall "pango_tab_array_copy" pango_tab_array_copy :: +    Ptr TabArray ->                         -- _obj : TInterface "Pango" "TabArray"+    IO (Ptr TabArray)+++tabArrayCopy ::+    (MonadIO m) =>+    TabArray ->                             -- _obj+    m TabArray+tabArrayCopy _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_tab_array_copy _obj'+    result' <- (wrapBoxed TabArray) result+    touchManagedPtr _obj+    return result'++-- method TabArray::free+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_tab_array_free" pango_tab_array_free :: +    Ptr TabArray ->                         -- _obj : TInterface "Pango" "TabArray"+    IO ()+++tabArrayFree ::+    (MonadIO m) =>+    TabArray ->                             -- _obj+    m ()+tabArrayFree _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_tab_array_free _obj'+    touchManagedPtr _obj+    return ()++-- method TabArray::get_positions_in_pixels+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_tab_array_get_positions_in_pixels" pango_tab_array_get_positions_in_pixels :: +    Ptr TabArray ->                         -- _obj : TInterface "Pango" "TabArray"+    IO CInt+++tabArrayGetPositionsInPixels ::+    (MonadIO m) =>+    TabArray ->                             -- _obj+    m Bool+tabArrayGetPositionsInPixels _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_tab_array_get_positions_in_pixels _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++-- method TabArray::get_size+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_tab_array_get_size" pango_tab_array_get_size :: +    Ptr TabArray ->                         -- _obj : TInterface "Pango" "TabArray"+    IO Int32+++tabArrayGetSize ::+    (MonadIO m) =>+    TabArray ->                             -- _obj+    m Int32+tabArrayGetSize _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- pango_tab_array_get_size _obj'+    touchManagedPtr _obj+    return result++-- method TabArray::get_tab+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tab_index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "alignment", argType = TInterface "Pango" "TabAlign", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "location", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tab_index", 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 "pango_tab_array_get_tab" pango_tab_array_get_tab :: +    Ptr TabArray ->                         -- _obj : TInterface "Pango" "TabArray"+    Int32 ->                                -- tab_index : TBasicType TInt32+    Ptr CUInt ->                            -- alignment : TInterface "Pango" "TabAlign"+    Ptr Int32 ->                            -- location : TBasicType TInt32+    IO ()+++tabArrayGetTab ::+    (MonadIO m) =>+    TabArray ->                             -- _obj+    Int32 ->                                -- tab_index+    m (TabAlign,Int32)+tabArrayGetTab _obj tab_index = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    alignment <- allocMem :: IO (Ptr CUInt)+    location <- allocMem :: IO (Ptr Int32)+    pango_tab_array_get_tab _obj' tab_index alignment location+    alignment' <- peek alignment+    let alignment'' = (toEnum . fromIntegral) alignment'+    location' <- peek location+    touchManagedPtr _obj+    freeMem alignment+    freeMem location+    return (alignment'', location')++-- method TabArray::get_tabs+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "alignments", argType = TInterface "Pango" "TabAlign", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "locations", argType = TCArray False (-1) (-1) (TBasicType TInt32), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_tab_array_get_tabs" pango_tab_array_get_tabs :: +    Ptr TabArray ->                         -- _obj : TInterface "Pango" "TabArray"+    Ptr CUInt ->                            -- alignments : TInterface "Pango" "TabAlign"+    Ptr (Ptr Int32) ->                      -- locations : TCArray False (-1) (-1) (TBasicType TInt32)+    IO ()+++tabArrayGetTabs ::+    (MonadIO m) =>+    TabArray ->                             -- _obj+    m (TabAlign,(Ptr Int32))+tabArrayGetTabs _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    alignments <- allocMem :: IO (Ptr CUInt)+    locations <- allocMem :: IO (Ptr (Ptr Int32))+    pango_tab_array_get_tabs _obj' alignments locations+    alignments' <- peek alignments+    let alignments'' = (toEnum . fromIntegral) alignments'+    locations' <- peek locations+    touchManagedPtr _obj+    freeMem alignments+    freeMem locations+    return (alignments'', locations')++-- method TabArray::resize+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_size", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_size", 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 "pango_tab_array_resize" pango_tab_array_resize :: +    Ptr TabArray ->                         -- _obj : TInterface "Pango" "TabArray"+    Int32 ->                                -- new_size : TBasicType TInt32+    IO ()+++tabArrayResize ::+    (MonadIO m) =>+    TabArray ->                             -- _obj+    Int32 ->                                -- new_size+    m ()+tabArrayResize _obj new_size = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    pango_tab_array_resize _obj' new_size+    touchManagedPtr _obj+    return ()++-- method TabArray::set_tab+-- method type : OrdinaryMethod+-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tab_index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "alignment", argType = TInterface "Pango" "TabAlign", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "location", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "TabArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tab_index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "alignment", argType = TInterface "Pango" "TabAlign", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "location", 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 "pango_tab_array_set_tab" pango_tab_array_set_tab :: +    Ptr TabArray ->                         -- _obj : TInterface "Pango" "TabArray"+    Int32 ->                                -- tab_index : TBasicType TInt32+    CUInt ->                                -- alignment : TInterface "Pango" "TabAlign"+    Int32 ->                                -- location : TBasicType TInt32+    IO ()+++tabArraySetTab ::+    (MonadIO m) =>+    TabArray ->                             -- _obj+    Int32 ->                                -- tab_index+    TabAlign ->                             -- alignment+    Int32 ->                                -- location+    m ()+tabArraySetTab _obj tab_index alignment location = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let alignment' = (fromIntegral . fromEnum) alignment+    pango_tab_array_set_tab _obj' tab_index alignment' location+    touchManagedPtr _obj+    return ()++-- Enum Underline++data Underline = +      UnderlineNone+    | UnderlineSingle+    | UnderlineDouble+    | UnderlineLow+    | UnderlineError+    | AnotherUnderline Int+    deriving (Show, Eq)++instance Enum Underline where+    fromEnum UnderlineNone = 0+    fromEnum UnderlineSingle = 1+    fromEnum UnderlineDouble = 2+    fromEnum UnderlineLow = 3+    fromEnum UnderlineError = 4+    fromEnum (AnotherUnderline k) = k++    toEnum 0 = UnderlineNone+    toEnum 1 = UnderlineSingle+    toEnum 2 = UnderlineDouble+    toEnum 3 = UnderlineLow+    toEnum 4 = UnderlineError+    toEnum k = AnotherUnderline k++foreign import ccall "pango_underline_get_type" c_pango_underline_get_type :: +    IO GType++instance BoxedEnum Underline where+    boxedEnumType _ = c_pango_underline_get_type++-- Enum Variant++data Variant = +      VariantNormal+    | VariantSmallCaps+    | AnotherVariant Int+    deriving (Show, Eq)++instance Enum Variant where+    fromEnum VariantNormal = 0+    fromEnum VariantSmallCaps = 1+    fromEnum (AnotherVariant k) = k++    toEnum 0 = VariantNormal+    toEnum 1 = VariantSmallCaps+    toEnum k = AnotherVariant k++foreign import ccall "pango_variant_get_type" c_pango_variant_get_type :: +    IO GType++instance BoxedEnum Variant where+    boxedEnumType _ = c_pango_variant_get_type++-- Enum Weight++data Weight = +      WeightThin+    | WeightUltralight+    | WeightLight+    | WeightSemilight+    | WeightBook+    | WeightNormal+    | WeightMedium+    | WeightSemibold+    | WeightBold+    | WeightUltrabold+    | WeightHeavy+    | WeightUltraheavy+    | AnotherWeight Int+    deriving (Show, Eq)++instance Enum Weight where+    fromEnum WeightThin = 100+    fromEnum WeightUltralight = 200+    fromEnum WeightLight = 300+    fromEnum WeightSemilight = 350+    fromEnum WeightBook = 380+    fromEnum WeightNormal = 400+    fromEnum WeightMedium = 500+    fromEnum WeightSemibold = 600+    fromEnum WeightBold = 700+    fromEnum WeightUltrabold = 800+    fromEnum WeightHeavy = 900+    fromEnum WeightUltraheavy = 1000+    fromEnum (AnotherWeight k) = k++    toEnum 100 = WeightThin+    toEnum 200 = WeightUltralight+    toEnum 300 = WeightLight+    toEnum 350 = WeightSemilight+    toEnum 380 = WeightBook+    toEnum 400 = WeightNormal+    toEnum 500 = WeightMedium+    toEnum 600 = WeightSemibold+    toEnum 700 = WeightBold+    toEnum 800 = WeightUltrabold+    toEnum 900 = WeightHeavy+    toEnum 1000 = WeightUltraheavy+    toEnum k = AnotherWeight k++foreign import ccall "pango_weight_get_type" c_pango_weight_get_type :: +    IO GType++instance BoxedEnum Weight where+    boxedEnumType _ = c_pango_weight_get_type++-- Enum WrapMode++data WrapMode = +      WrapModeWord+    | WrapModeChar+    | WrapModeWordChar+    | AnotherWrapMode Int+    deriving (Show, Eq)++instance Enum WrapMode where+    fromEnum WrapModeWord = 0+    fromEnum WrapModeChar = 1+    fromEnum WrapModeWordChar = 2+    fromEnum (AnotherWrapMode k) = k++    toEnum 0 = WrapModeWord+    toEnum 1 = WrapModeChar+    toEnum 2 = WrapModeWordChar+    toEnum k = AnotherWrapMode k++foreign import ccall "pango_wrap_mode_get_type" c_pango_wrap_mode_get_type :: +    IO GType++instance BoxedEnum WrapMode where+    boxedEnumType _ = c_pango_wrap_mode_get_type++-- constant _ANALYSIS_FLAG_CENTERED_BASELINE++_ANALYSIS_FLAG_CENTERED_BASELINE :: Int32+_ANALYSIS_FLAG_CENTERED_BASELINE = 1+-- constant _ANALYSIS_FLAG_IS_ELLIPSIS++_ANALYSIS_FLAG_IS_ELLIPSIS :: Int32+_ANALYSIS_FLAG_IS_ELLIPSIS = 2+-- constant _ATTR_INDEX_FROM_TEXT_BEGINNING++_ATTR_INDEX_FROM_TEXT_BEGINNING :: Int32+_ATTR_INDEX_FROM_TEXT_BEGINNING = 0+-- constant _ENGINE_TYPE_LANG++_ENGINE_TYPE_LANG :: T.Text+_ENGINE_TYPE_LANG = "PangoEngineLang"+-- constant _ENGINE_TYPE_SHAPE++_ENGINE_TYPE_SHAPE :: T.Text+_ENGINE_TYPE_SHAPE = "PangoEngineShape"+-- constant _GLYPH_EMPTY++_GLYPH_EMPTY :: Word32+_GLYPH_EMPTY = 268435455+-- constant _GLYPH_INVALID_INPUT++_GLYPH_INVALID_INPUT :: Word32+_GLYPH_INVALID_INPUT = 4294967295+-- constant _GLYPH_UNKNOWN_FLAG++_GLYPH_UNKNOWN_FLAG :: Word32+_GLYPH_UNKNOWN_FLAG = 268435456+-- constant _RENDER_TYPE_NONE++_RENDER_TYPE_NONE :: T.Text+_RENDER_TYPE_NONE = "PangoRenderNone"+-- constant _SCALE++_SCALE :: Int32+_SCALE = 1024+-- constant _UNKNOWN_GLYPH_HEIGHT++_UNKNOWN_GLYPH_HEIGHT :: Int32+_UNKNOWN_GLYPH_HEIGHT = 14+-- constant _UNKNOWN_GLYPH_WIDTH++_UNKNOWN_GLYPH_WIDTH :: Int32+_UNKNOWN_GLYPH_WIDTH = 10+-- function pango_attr_type_get_name+-- Args : [Arg {argName = "type", argType = TInterface "Pango" "AttrType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "type", argType = TInterface "Pango" "AttrType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TUTF8+-- throws : False+-- Skip return : False++foreign import ccall "pango_attr_type_get_name" pango_attr_type_get_name :: +    CUInt ->                                -- type : TInterface "Pango" "AttrType"+    IO CString+++attrTypeGetName ::+    (MonadIO m) =>+    AttrType ->                             -- type+    m T.Text+attrTypeGetName type_ = liftIO $ do+    let type_' = (fromIntegral . fromEnum) type_+    result <- pango_attr_type_get_name type_'+    result' <- cstringToText result+    return result'++-- function pango_attr_type_register+-- Args : [Arg {argName = "name", argType = TBasicType TUTF8, 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}]+-- returnType : TInterface "Pango" "AttrType"+-- throws : False+-- Skip return : False++foreign import ccall "pango_attr_type_register" pango_attr_type_register :: +    CString ->                              -- name : TBasicType TUTF8+    IO CUInt+++attrTypeRegister ::+    (MonadIO m) =>+    T.Text ->                               -- name+    m AttrType+attrTypeRegister name = liftIO $ do+    name' <- textToCString name+    result <- pango_attr_type_register name'+    let result' = (toEnum . fromIntegral) result+    freeMem name'+    return result'++-- function pango_bidi_type_for_unichar+-- Args : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "BidiType"+-- throws : False+-- Skip return : False++foreign import ccall "pango_bidi_type_for_unichar" pango_bidi_type_for_unichar :: +    CInt ->                                 -- ch : TBasicType TUniChar+    IO CUInt+++bidiTypeForUnichar ::+    (MonadIO m) =>+    Char ->                                 -- ch+    m BidiType+bidiTypeForUnichar ch = liftIO $ do+    let ch' = (fromIntegral . ord) ch+    result <- pango_bidi_type_for_unichar ch'+    let result' = (toEnum . fromIntegral) result+    return result'++-- function pango_break+-- Args : [Arg {argName = "text", argType = TBasicType TUTF8, 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 = "analysis", argType = TInterface "Pango" "Analysis", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attrs", argType = TCArray False (-1) 4 (TInterface "Pango" "LogAttr"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attrs_len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : [Arg {argName = "attrs_len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- hInArgs : [Arg {argName = "text", argType = TBasicType TUTF8, 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 = "analysis", argType = TInterface "Pango" "Analysis", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attrs", argType = TCArray False (-1) 4 (TInterface "Pango" "LogAttr"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_break" pango_break :: +    CString ->                              -- text : TBasicType TUTF8+    Int32 ->                                -- length : TBasicType TInt32+    Ptr Analysis ->                         -- analysis : TInterface "Pango" "Analysis"+    Ptr LogAttr ->                          -- attrs : TCArray False (-1) 4 (TInterface "Pango" "LogAttr")+    Int32 ->                                -- attrs_len : TBasicType TInt32+    IO ()+++break ::+    (MonadIO m) =>+    T.Text ->                               -- text+    Int32 ->                                -- length+    Analysis ->                             -- analysis+    [LogAttr] ->                            -- attrs+    m ()+break text length_ analysis attrs = liftIO $ do+    let attrs_len = fromIntegral $ length attrs+    text' <- textToCString text+    let analysis' = unsafeManagedPtrGetPtr analysis+    let attrs' = map unsafeManagedPtrGetPtr attrs+    attrs'' <- packBlockArray 52 attrs'+    pango_break text' length_ analysis' attrs'' attrs_len+    touchManagedPtr analysis+    mapM_ touchManagedPtr attrs+    freeMem text'+    freeMem attrs''+    return ()++-- function pango_config_key_get+-- Args : [Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "key", 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 "pango_config_key_get" pango_config_key_get :: +    CString ->                              -- key : TBasicType TUTF8+    IO CString+++configKeyGet ::+    (MonadIO m) =>+    T.Text ->                               -- key+    m T.Text+configKeyGet key = liftIO $ do+    key' <- textToCString key+    result <- pango_config_key_get key'+    result' <- cstringToText result+    freeMem result+    freeMem key'+    return result'++-- function pango_config_key_get_system+-- Args : [Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "key", 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 "pango_config_key_get_system" pango_config_key_get_system :: +    CString ->                              -- key : TBasicType TUTF8+    IO CString+++configKeyGetSystem ::+    (MonadIO m) =>+    T.Text ->                               -- key+    m T.Text+configKeyGetSystem key = liftIO $ do+    key' <- textToCString key+    result <- pango_config_key_get_system key'+    result' <- cstringToText result+    freeMem result+    freeMem key'+    return result'++-- function pango_default_break+-- Args : [Arg {argName = "text", argType = TBasicType TUTF8, 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 = "analysis", argType = TInterface "Pango" "Analysis", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attrs", argType = TInterface "Pango" "LogAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attrs_len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "text", argType = TBasicType TUTF8, 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 = "analysis", argType = TInterface "Pango" "Analysis", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attrs", argType = TInterface "Pango" "LogAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attrs_len", 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 "pango_default_break" pango_default_break :: +    CString ->                              -- text : TBasicType TUTF8+    Int32 ->                                -- length : TBasicType TInt32+    Ptr Analysis ->                         -- analysis : TInterface "Pango" "Analysis"+    Ptr LogAttr ->                          -- attrs : TInterface "Pango" "LogAttr"+    Int32 ->                                -- attrs_len : TBasicType TInt32+    IO ()+++defaultBreak ::+    (MonadIO m) =>+    T.Text ->                               -- text+    Int32 ->                                -- length+    Analysis ->                             -- analysis+    LogAttr ->                              -- attrs+    Int32 ->                                -- attrs_len+    m ()+defaultBreak text length_ analysis attrs attrs_len = liftIO $ do+    text' <- textToCString text+    let analysis' = unsafeManagedPtrGetPtr analysis+    let attrs' = unsafeManagedPtrGetPtr attrs+    pango_default_break text' length_ analysis' attrs' attrs_len+    touchManagedPtr analysis+    touchManagedPtr attrs+    freeMem text'+    return ()++-- function pango_extents_to_pixels+-- Args : [Arg {argName = "inclusive", argType = TInterface "Pango" "Rectangle", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nearest", argType = TInterface "Pango" "Rectangle", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "inclusive", argType = TInterface "Pango" "Rectangle", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nearest", argType = TInterface "Pango" "Rectangle", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_extents_to_pixels" pango_extents_to_pixels :: +    Ptr Rectangle ->                        -- inclusive : TInterface "Pango" "Rectangle"+    Ptr Rectangle ->                        -- nearest : TInterface "Pango" "Rectangle"+    IO ()+++extentsToPixels ::+    (MonadIO m) =>+    Maybe (Rectangle) ->                    -- inclusive+    Maybe (Rectangle) ->                    -- nearest+    m ()+extentsToPixels inclusive nearest = liftIO $ do+    maybeInclusive <- case inclusive of+        Nothing -> return nullPtr+        Just jInclusive -> do+            let jInclusive' = unsafeManagedPtrGetPtr jInclusive+            return jInclusive'+    maybeNearest <- case nearest of+        Nothing -> return nullPtr+        Just jNearest -> do+            let jNearest' = unsafeManagedPtrGetPtr jNearest+            return jNearest'+    pango_extents_to_pixels maybeInclusive maybeNearest+    whenJust inclusive touchManagedPtr+    whenJust nearest touchManagedPtr+    return ()++-- function pango_find_base_dir+-- Args : [Arg {argName = "text", argType = TBasicType TUTF8, 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}]+-- Lengths : []+-- hInArgs : [Arg {argName = "text", argType = TBasicType TUTF8, 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}]+-- returnType : TInterface "Pango" "Direction"+-- throws : False+-- Skip return : False++foreign import ccall "pango_find_base_dir" pango_find_base_dir :: +    CString ->                              -- text : TBasicType TUTF8+    Int32 ->                                -- length : TBasicType TInt32+    IO CUInt+++findBaseDir ::+    (MonadIO m) =>+    T.Text ->                               -- text+    Int32 ->                                -- length+    m Direction+findBaseDir text length_ = liftIO $ do+    text' <- textToCString text+    result <- pango_find_base_dir text' length_+    let result' = (toEnum . fromIntegral) result+    freeMem text'+    return result'++-- function pango_find_paragraph_boundary+-- Args : [Arg {argName = "text", argType = TBasicType TUTF8, 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 = "paragraph_delimiter_index", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "next_paragraph_start", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "text", argType = TBasicType TUTF8, 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}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_find_paragraph_boundary" pango_find_paragraph_boundary :: +    CString ->                              -- text : TBasicType TUTF8+    Int32 ->                                -- length : TBasicType TInt32+    Ptr Int32 ->                            -- paragraph_delimiter_index : TBasicType TInt32+    Ptr Int32 ->                            -- next_paragraph_start : TBasicType TInt32+    IO ()+++findParagraphBoundary ::+    (MonadIO m) =>+    T.Text ->                               -- text+    Int32 ->                                -- length+    m (Int32,Int32)+findParagraphBoundary text length_ = liftIO $ do+    text' <- textToCString text+    paragraph_delimiter_index <- allocMem :: IO (Ptr Int32)+    next_paragraph_start <- allocMem :: IO (Ptr Int32)+    pango_find_paragraph_boundary text' length_ paragraph_delimiter_index next_paragraph_start+    paragraph_delimiter_index' <- peek paragraph_delimiter_index+    next_paragraph_start' <- peek next_paragraph_start+    freeMem text'+    freeMem paragraph_delimiter_index+    freeMem next_paragraph_start+    return (paragraph_delimiter_index', next_paragraph_start')++-- function pango_font_description_from_string+-- 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 : TInterface "Pango" "FontDescription"+-- throws : False+-- Skip return : False++foreign import ccall "pango_font_description_from_string" pango_font_description_from_string :: +    CString ->                              -- str : TBasicType TUTF8+    IO (Ptr FontDescription)+++fontDescriptionFromString ::+    (MonadIO m) =>+    T.Text ->                               -- str+    m FontDescription+fontDescriptionFromString str = liftIO $ do+    str' <- textToCString str+    result <- pango_font_description_from_string str'+    result' <- (wrapBoxed FontDescription) result+    freeMem str'+    return result'++-- function pango_get_lib_subdirectory+-- Args : []+-- Lengths : []+-- hInArgs : []+-- returnType : TBasicType TUTF8+-- throws : False+-- Skip return : False++foreign import ccall "pango_get_lib_subdirectory" pango_get_lib_subdirectory :: +    IO CString+++getLibSubdirectory ::+    (MonadIO m) =>+    m T.Text+getLibSubdirectory  = liftIO $ do+    result <- pango_get_lib_subdirectory+    result' <- cstringToText result+    return result'++-- function pango_get_log_attrs+-- Args : [Arg {argName = "text", argType = TBasicType TUTF8, 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 = "level", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "language", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "log_attrs", argType = TCArray False (-1) 5 (TInterface "Pango" "LogAttr"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attrs_len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : [Arg {argName = "attrs_len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- hInArgs : [Arg {argName = "text", argType = TBasicType TUTF8, 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 = "level", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "language", argType = TInterface "Pango" "Language", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "log_attrs", argType = TCArray False (-1) 5 (TInterface "Pango" "LogAttr"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_get_log_attrs" pango_get_log_attrs :: +    CString ->                              -- text : TBasicType TUTF8+    Int32 ->                                -- length : TBasicType TInt32+    Int32 ->                                -- level : TBasicType TInt32+    Ptr Language ->                         -- language : TInterface "Pango" "Language"+    Ptr LogAttr ->                          -- log_attrs : TCArray False (-1) 5 (TInterface "Pango" "LogAttr")+    Int32 ->                                -- attrs_len : TBasicType TInt32+    IO ()+++getLogAttrs ::+    (MonadIO m) =>+    T.Text ->                               -- text+    Int32 ->                                -- length+    Int32 ->                                -- level+    Language ->                             -- language+    [LogAttr] ->                            -- log_attrs+    m ()+getLogAttrs text length_ level language log_attrs = liftIO $ do+    let attrs_len = fromIntegral $ length log_attrs+    text' <- textToCString text+    let language' = unsafeManagedPtrGetPtr language+    let log_attrs' = map unsafeManagedPtrGetPtr log_attrs+    log_attrs'' <- packBlockArray 52 log_attrs'+    pango_get_log_attrs text' length_ level language' log_attrs'' attrs_len+    touchManagedPtr language+    mapM_ touchManagedPtr log_attrs+    freeMem text'+    freeMem log_attrs''+    return ()++-- function pango_get_mirror_char+-- Args : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mirrored_ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mirrored_ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_get_mirror_char" pango_get_mirror_char :: +    CInt ->                                 -- ch : TBasicType TUniChar+    CInt ->                                 -- mirrored_ch : TBasicType TUniChar+    IO CInt+++getMirrorChar ::+    (MonadIO m) =>+    Char ->                                 -- ch+    Char ->                                 -- mirrored_ch+    m Bool+getMirrorChar ch mirrored_ch = liftIO $ do+    let ch' = (fromIntegral . ord) ch+    let mirrored_ch' = (fromIntegral . ord) mirrored_ch+    result <- pango_get_mirror_char ch' mirrored_ch'+    let result' = (/= 0) result+    return result'++-- function pango_get_sysconf_subdirectory+-- Args : []+-- Lengths : []+-- hInArgs : []+-- returnType : TBasicType TUTF8+-- throws : False+-- Skip return : False++foreign import ccall "pango_get_sysconf_subdirectory" pango_get_sysconf_subdirectory :: +    IO CString+++getSysconfSubdirectory ::+    (MonadIO m) =>+    m T.Text+getSysconfSubdirectory  = liftIO $ do+    result <- pango_get_sysconf_subdirectory+    result' <- cstringToText result+    return result'++-- function pango_gravity_get_for_matrix+-- Args : [Arg {argName = "matrix", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "matrix", argType = TInterface "Pango" "Matrix", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Gravity"+-- throws : False+-- Skip return : False++foreign import ccall "pango_gravity_get_for_matrix" pango_gravity_get_for_matrix :: +    Ptr Matrix ->                           -- matrix : TInterface "Pango" "Matrix"+    IO CUInt+++gravityGetForMatrix ::+    (MonadIO m) =>+    Matrix ->                               -- matrix+    m Gravity+gravityGetForMatrix matrix = liftIO $ do+    let matrix' = unsafeManagedPtrGetPtr matrix+    result <- pango_gravity_get_for_matrix matrix'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr matrix+    return result'++-- function pango_gravity_get_for_script+-- Args : [Arg {argName = "script", argType = TInterface "Pango" "Script", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_gravity", argType = TInterface "Pango" "Gravity", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hint", argType = TInterface "Pango" "GravityHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "script", argType = TInterface "Pango" "Script", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_gravity", argType = TInterface "Pango" "Gravity", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hint", argType = TInterface "Pango" "GravityHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Gravity"+-- throws : False+-- Skip return : False++foreign import ccall "pango_gravity_get_for_script" pango_gravity_get_for_script :: +    CUInt ->                                -- script : TInterface "Pango" "Script"+    CUInt ->                                -- base_gravity : TInterface "Pango" "Gravity"+    CUInt ->                                -- hint : TInterface "Pango" "GravityHint"+    IO CUInt+++gravityGetForScript ::+    (MonadIO m) =>+    Script ->                               -- script+    Gravity ->                              -- base_gravity+    GravityHint ->                          -- hint+    m Gravity+gravityGetForScript script base_gravity hint = liftIO $ do+    let script' = (fromIntegral . fromEnum) script+    let base_gravity' = (fromIntegral . fromEnum) base_gravity+    let hint' = (fromIntegral . fromEnum) hint+    result <- pango_gravity_get_for_script script' base_gravity' hint'+    let result' = (toEnum . fromIntegral) result+    return result'++-- function pango_gravity_get_for_script_and_width+-- Args : [Arg {argName = "script", argType = TInterface "Pango" "Script", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wide", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_gravity", argType = TInterface "Pango" "Gravity", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hint", argType = TInterface "Pango" "GravityHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "script", argType = TInterface "Pango" "Script", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wide", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_gravity", argType = TInterface "Pango" "Gravity", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hint", argType = TInterface "Pango" "GravityHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Gravity"+-- throws : False+-- Skip return : False++foreign import ccall "pango_gravity_get_for_script_and_width" pango_gravity_get_for_script_and_width :: +    CUInt ->                                -- script : TInterface "Pango" "Script"+    CInt ->                                 -- wide : TBasicType TBoolean+    CUInt ->                                -- base_gravity : TInterface "Pango" "Gravity"+    CUInt ->                                -- hint : TInterface "Pango" "GravityHint"+    IO CUInt+++gravityGetForScriptAndWidth ::+    (MonadIO m) =>+    Script ->                               -- script+    Bool ->                                 -- wide+    Gravity ->                              -- base_gravity+    GravityHint ->                          -- hint+    m Gravity+gravityGetForScriptAndWidth script wide base_gravity hint = liftIO $ do+    let script' = (fromIntegral . fromEnum) script+    let wide' = (fromIntegral . fromEnum) wide+    let base_gravity' = (fromIntegral . fromEnum) base_gravity+    let hint' = (fromIntegral . fromEnum) hint+    result <- pango_gravity_get_for_script_and_width script' wide' base_gravity' hint'+    let result' = (toEnum . fromIntegral) result+    return result'++-- function pango_gravity_to_rotation+-- Args : [Arg {argName = "gravity", argType = TInterface "Pango" "Gravity", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "gravity", argType = TInterface "Pango" "Gravity", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TDouble+-- throws : False+-- Skip return : False++foreign import ccall "pango_gravity_to_rotation" pango_gravity_to_rotation :: +    CUInt ->                                -- gravity : TInterface "Pango" "Gravity"+    IO CDouble+++gravityToRotation ::+    (MonadIO m) =>+    Gravity ->                              -- gravity+    m Double+gravityToRotation gravity = liftIO $ do+    let gravity' = (fromIntegral . fromEnum) gravity+    result <- pango_gravity_to_rotation gravity'+    let result' = realToFrac result+    return result'++-- function pango_is_zero_width+-- Args : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "pango_is_zero_width" pango_is_zero_width :: +    CInt ->                                 -- ch : TBasicType TUniChar+    IO CInt+++isZeroWidth ::+    (MonadIO m) =>+    Char ->                                 -- ch+    m Bool+isZeroWidth ch = liftIO $ do+    let ch' = (fromIntegral . ord) ch+    result <- pango_is_zero_width ch'+    let result' = (/= 0) result+    return result'++-- function pango_itemize+-- Args : [Arg {argName = "context", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_index", argType = TBasicType TInt32, 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 = "attrs", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cached_iter", argType = TInterface "Pango" "AttrIterator", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "context", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_index", argType = TBasicType TInt32, 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 = "attrs", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cached_iter", argType = TInterface "Pango" "AttrIterator", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TGList (TInterface "Pango" "Item")+-- throws : False+-- Skip return : False++foreign import ccall "pango_itemize" pango_itemize :: +    Ptr Context ->                          -- context : TInterface "Pango" "Context"+    CString ->                              -- text : TBasicType TUTF8+    Int32 ->                                -- start_index : TBasicType TInt32+    Int32 ->                                -- length : TBasicType TInt32+    Ptr AttrList ->                         -- attrs : TInterface "Pango" "AttrList"+    Ptr AttrIterator ->                     -- cached_iter : TInterface "Pango" "AttrIterator"+    IO (Ptr (GList (Ptr Item)))+++itemize ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- context+    T.Text ->                               -- text+    Int32 ->                                -- start_index+    Int32 ->                                -- length+    AttrList ->                             -- attrs+    Maybe (AttrIterator) ->                 -- cached_iter+    m [Item]+itemize context text start_index length_ attrs cached_iter = liftIO $ do+    let context' = unsafeManagedPtrCastPtr context+    text' <- textToCString text+    let attrs' = unsafeManagedPtrGetPtr attrs+    maybeCached_iter <- case cached_iter of+        Nothing -> return nullPtr+        Just jCached_iter -> do+            let jCached_iter' = unsafeManagedPtrGetPtr jCached_iter+            return jCached_iter'+    result <- pango_itemize context' text' start_index length_ attrs' maybeCached_iter+    result' <- unpackGList result+    result'' <- mapM (wrapBoxed Item) result'+    g_list_free result+    touchManagedPtr context+    touchManagedPtr attrs+    whenJust cached_iter touchManagedPtr+    freeMem text'+    return result''++-- function pango_itemize_with_base_dir+-- Args : [Arg {argName = "context", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_dir", argType = TInterface "Pango" "Direction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_index", argType = TBasicType TInt32, 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 = "attrs", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cached_iter", argType = TInterface "Pango" "AttrIterator", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "context", argType = TInterface "Pango" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_dir", argType = TInterface "Pango" "Direction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_index", argType = TBasicType TInt32, 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 = "attrs", argType = TInterface "Pango" "AttrList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cached_iter", argType = TInterface "Pango" "AttrIterator", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TGList (TInterface "Pango" "Item")+-- throws : False+-- Skip return : False++foreign import ccall "pango_itemize_with_base_dir" pango_itemize_with_base_dir :: +    Ptr Context ->                          -- context : TInterface "Pango" "Context"+    CUInt ->                                -- base_dir : TInterface "Pango" "Direction"+    CString ->                              -- text : TBasicType TUTF8+    Int32 ->                                -- start_index : TBasicType TInt32+    Int32 ->                                -- length : TBasicType TInt32+    Ptr AttrList ->                         -- attrs : TInterface "Pango" "AttrList"+    Ptr AttrIterator ->                     -- cached_iter : TInterface "Pango" "AttrIterator"+    IO (Ptr (GList (Ptr Item)))+++itemizeWithBaseDir ::+    (MonadIO m, ContextK a) =>+    a ->                                    -- context+    Direction ->                            -- base_dir+    T.Text ->                               -- text+    Int32 ->                                -- start_index+    Int32 ->                                -- length+    AttrList ->                             -- attrs+    Maybe (AttrIterator) ->                 -- cached_iter+    m [Item]+itemizeWithBaseDir context base_dir text start_index length_ attrs cached_iter = liftIO $ do+    let context' = unsafeManagedPtrCastPtr context+    let base_dir' = (fromIntegral . fromEnum) base_dir+    text' <- textToCString text+    let attrs' = unsafeManagedPtrGetPtr attrs+    maybeCached_iter <- case cached_iter of+        Nothing -> return nullPtr+        Just jCached_iter -> do+            let jCached_iter' = unsafeManagedPtrGetPtr jCached_iter+            return jCached_iter'+    result <- pango_itemize_with_base_dir context' base_dir' text' start_index length_ attrs' maybeCached_iter+    result' <- unpackGList result+    result'' <- mapM (wrapBoxed Item) result'+    g_list_free result+    touchManagedPtr context+    touchManagedPtr attrs+    whenJust cached_iter touchManagedPtr+    freeMem text'+    return result''++-- function pango_language_from_string+-- Args : [Arg {argName = "language", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "language", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Language"+-- throws : False+-- Skip return : False++foreign import ccall "pango_language_from_string" pango_language_from_string :: +    CString ->                              -- language : TBasicType TUTF8+    IO (Ptr Language)+++languageFromString ::+    (MonadIO m) =>+    Maybe (T.Text) ->                       -- language+    m Language+languageFromString language = liftIO $ do+    maybeLanguage <- case language of+        Nothing -> return nullPtr+        Just jLanguage -> do+            jLanguage' <- textToCString jLanguage+            return jLanguage'+    result <- pango_language_from_string maybeLanguage+    result' <- (newBoxed Language) result+    freeMem maybeLanguage+    return result'++-- function pango_language_get_default+-- Args : []+-- Lengths : []+-- hInArgs : []+-- returnType : TInterface "Pango" "Language"+-- throws : False+-- Skip return : False++foreign import ccall "pango_language_get_default" pango_language_get_default :: +    IO (Ptr Language)+++languageGetDefault ::+    (MonadIO m) =>+    m Language+languageGetDefault  = liftIO $ do+    result <- pango_language_get_default+    result' <- (newBoxed Language) result+    return result'++-- function pango_log2vis_get_embedding_levels+-- Args : [Arg {argName = "text", argType = TBasicType TUTF8, 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 = "pbase_dir", argType = TInterface "Pango" "Direction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "text", argType = TBasicType TUTF8, 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 = "pbase_dir", argType = TInterface "Pango" "Direction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TUInt8+-- throws : False+-- Skip return : False++foreign import ccall "pango_log2vis_get_embedding_levels" pango_log2vis_get_embedding_levels :: +    CString ->                              -- text : TBasicType TUTF8+    Int32 ->                                -- length : TBasicType TInt32+    CUInt ->                                -- pbase_dir : TInterface "Pango" "Direction"+    IO Word8+++log2visGetEmbeddingLevels ::+    (MonadIO m) =>+    T.Text ->                               -- text+    Int32 ->                                -- length+    Direction ->                            -- pbase_dir+    m Word8+log2visGetEmbeddingLevels text length_ pbase_dir = liftIO $ do+    text' <- textToCString text+    let pbase_dir' = (fromIntegral . fromEnum) pbase_dir+    result <- pango_log2vis_get_embedding_levels text' length_ pbase_dir'+    freeMem text'+    return result++-- function pango_lookup_aliases+-- Args : [Arg {argName = "fontname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "families", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "n_families", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : [Arg {argName = "n_families", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- hInArgs : [Arg {argName = "fontname", 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 "pango_lookup_aliases" pango_lookup_aliases :: +    CString ->                              -- fontname : TBasicType TUTF8+    Ptr (Ptr CString) ->                    -- families : TCArray False (-1) 2 (TBasicType TUTF8)+    Ptr Int32 ->                            -- n_families : TBasicType TInt32+    IO ()++{-# DEPRECATED lookupAliases ["(Since version 1.32)","This function is not thread-safe."]#-}+lookupAliases ::+    (MonadIO m) =>+    T.Text ->                               -- fontname+    m ([T.Text])+lookupAliases fontname = liftIO $ do+    fontname' <- textToCString fontname+    families <- allocMem :: IO (Ptr (Ptr CString))+    n_families <- allocMem :: IO (Ptr Int32)+    pango_lookup_aliases fontname' families n_families+    n_families' <- peek n_families+    families' <- peek families+    families'' <- (unpackUTF8CArrayWithLength n_families') families'+    (mapCArrayWithLength n_families') freeMem families'+    freeMem families'+    freeMem fontname'+    freeMem families+    freeMem n_families+    return families''++-- function pango_markup_parser_finish+-- Args : [Arg {argName = "context", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attr_list", argType = TInterface "Pango" "AttrList", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "accel_char", argType = TBasicType TUniChar, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "context", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : True+-- Skip return : False++foreign import ccall "pango_markup_parser_finish" pango_markup_parser_finish :: +    Ptr GLib.MarkupParseContext ->          -- context : TInterface "GLib" "MarkupParseContext"+    Ptr (Ptr AttrList) ->                   -- attr_list : TInterface "Pango" "AttrList"+    Ptr CString ->                          -- text : TBasicType TUTF8+    Ptr CInt ->                             -- accel_char : TBasicType TUniChar+    Ptr (Ptr GError) ->                     -- error+    IO CInt+++markupParserFinish ::+    (MonadIO m) =>+    GLib.MarkupParseContext ->              -- context+    m (AttrList,T.Text,Char)+markupParserFinish context = liftIO $ do+    let context' = unsafeManagedPtrGetPtr context+    attr_list <- allocMem :: IO (Ptr (Ptr AttrList))+    text <- allocMem :: IO (Ptr CString)+    accel_char <- allocMem :: IO (Ptr CInt)+    onException (do+        _ <- propagateGError $ pango_markup_parser_finish context' attr_list text accel_char+        attr_list' <- peek attr_list+        attr_list'' <- (wrapBoxed AttrList) attr_list'+        text' <- peek text+        text'' <- cstringToText text'+        freeMem text'+        accel_char' <- peek accel_char+        let accel_char'' = (chr . fromIntegral) accel_char'+        touchManagedPtr context+        freeMem attr_list+        freeMem text+        freeMem accel_char+        return (attr_list'', text'', accel_char'')+     ) (do+        freeMem attr_list+        freeMem text+        freeMem accel_char+     )++-- function pango_markup_parser_new+-- Args : [Arg {argName = "accel_marker", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "accel_marker", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "GLib" "MarkupParseContext"+-- throws : False+-- Skip return : False++foreign import ccall "pango_markup_parser_new" pango_markup_parser_new :: +    CInt ->                                 -- accel_marker : TBasicType TUniChar+    IO (Ptr GLib.MarkupParseContext)+++markupParserNew ::+    (MonadIO m) =>+    Char ->                                 -- accel_marker+    m GLib.MarkupParseContext+markupParserNew accel_marker = liftIO $ do+    let accel_marker' = (fromIntegral . ord) accel_marker+    result <- pango_markup_parser_new accel_marker'+    result' <- (newBoxed GLib.MarkupParseContext) result+    return result'++-- function pango_module_register+-- Args : [Arg {argName = "module", argType = TInterface "Pango" "IncludedModule", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "module", argType = TInterface "Pango" "IncludedModule", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_module_register" pango_module_register :: +    Ptr IncludedModule ->                   -- module : TInterface "Pango" "IncludedModule"+    IO ()+++moduleRegister ::+    (MonadIO m) =>+    IncludedModule ->                       -- module+    m ()+moduleRegister module_ = liftIO $ do+    let module_' = unsafeManagedPtrGetPtr module_+    pango_module_register module_'+    touchManagedPtr module_+    return ()++-- function pango_parse_enum+-- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "warn", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "possible_values", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "warn", 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 "pango_parse_enum" pango_parse_enum :: +    CGType ->                               -- type : TBasicType TGType+    CString ->                              -- str : TBasicType TUTF8+    Ptr Int32 ->                            -- value : TBasicType TInt32+    CInt ->                                 -- warn : TBasicType TBoolean+    Ptr CString ->                          -- possible_values : TBasicType TUTF8+    IO CInt+++parseEnum ::+    (MonadIO m) =>+    GType ->                                -- type+    Maybe (T.Text) ->                       -- str+    Bool ->                                 -- warn+    m (Bool,Int32,T.Text)+parseEnum type_ str warn = liftIO $ do+    let type_' = gtypeToCGType type_+    maybeStr <- case str of+        Nothing -> return nullPtr+        Just jStr -> do+            jStr' <- textToCString jStr+            return jStr'+    value <- allocMem :: IO (Ptr Int32)+    let warn' = (fromIntegral . fromEnum) warn+    possible_values <- allocMem :: IO (Ptr CString)+    result <- pango_parse_enum type_' maybeStr value warn' possible_values+    let result' = (/= 0) result+    value' <- peek value+    possible_values' <- peek possible_values+    possible_values'' <- cstringToText possible_values'+    freeMem possible_values'+    freeMem maybeStr+    freeMem value+    freeMem possible_values+    return (result', value', possible_values'')++-- function pango_parse_markup+-- Args : [Arg {argName = "markup_text", argType = TBasicType TUTF8, 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 = "accel_marker", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attr_list", argType = TInterface "Pango" "AttrList", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "accel_char", argType = TBasicType TUniChar, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "markup_text", argType = TBasicType TUTF8, 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 = "accel_marker", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : True+-- Skip return : False++foreign import ccall "pango_parse_markup" pango_parse_markup :: +    CString ->                              -- markup_text : TBasicType TUTF8+    Int32 ->                                -- length : TBasicType TInt32+    CInt ->                                 -- accel_marker : TBasicType TUniChar+    Ptr (Ptr AttrList) ->                   -- attr_list : TInterface "Pango" "AttrList"+    Ptr CString ->                          -- text : TBasicType TUTF8+    Ptr CInt ->                             -- accel_char : TBasicType TUniChar+    Ptr (Ptr GError) ->                     -- error+    IO CInt+++parseMarkup ::+    (MonadIO m) =>+    T.Text ->                               -- markup_text+    Int32 ->                                -- length+    Char ->                                 -- accel_marker+    m (AttrList,T.Text,Char)+parseMarkup markup_text length_ accel_marker = liftIO $ do+    markup_text' <- textToCString markup_text+    let accel_marker' = (fromIntegral . ord) accel_marker+    attr_list <- allocMem :: IO (Ptr (Ptr AttrList))+    text <- allocMem :: IO (Ptr CString)+    accel_char <- allocMem :: IO (Ptr CInt)+    onException (do+        _ <- propagateGError $ pango_parse_markup markup_text' length_ accel_marker' attr_list text accel_char+        attr_list' <- peek attr_list+        attr_list'' <- (wrapBoxed AttrList) attr_list'+        text' <- peek text+        text'' <- cstringToText text'+        freeMem text'+        accel_char' <- peek accel_char+        let accel_char'' = (chr . fromIntegral) accel_char'+        freeMem markup_text'+        freeMem attr_list+        freeMem text+        freeMem accel_char+        return (attr_list'', text'', accel_char'')+     ) (do+        freeMem markup_text'+        freeMem attr_list+        freeMem text+        freeMem accel_char+     )++-- function pango_parse_stretch+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "stretch", argType = TInterface "Pango" "Stretch", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "warn", argType = TBasicType TBoolean, 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},Arg {argName = "warn", 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 "pango_parse_stretch" pango_parse_stretch :: +    CString ->                              -- str : TBasicType TUTF8+    Ptr CUInt ->                            -- stretch : TInterface "Pango" "Stretch"+    CInt ->                                 -- warn : TBasicType TBoolean+    IO CInt+++parseStretch ::+    (MonadIO m) =>+    T.Text ->                               -- str+    Bool ->                                 -- warn+    m (Bool,Stretch)+parseStretch str warn = liftIO $ do+    str' <- textToCString str+    stretch <- allocMem :: IO (Ptr CUInt)+    let warn' = (fromIntegral . fromEnum) warn+    result <- pango_parse_stretch str' stretch warn'+    let result' = (/= 0) result+    stretch' <- peek stretch+    let stretch'' = (toEnum . fromIntegral) stretch'+    freeMem str'+    freeMem stretch+    return (result', stretch'')++-- function pango_parse_style+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "style", argType = TInterface "Pango" "Style", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "warn", argType = TBasicType TBoolean, 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},Arg {argName = "warn", 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 "pango_parse_style" pango_parse_style :: +    CString ->                              -- str : TBasicType TUTF8+    Ptr CUInt ->                            -- style : TInterface "Pango" "Style"+    CInt ->                                 -- warn : TBasicType TBoolean+    IO CInt+++parseStyle ::+    (MonadIO m) =>+    T.Text ->                               -- str+    Bool ->                                 -- warn+    m (Bool,Style)+parseStyle str warn = liftIO $ do+    str' <- textToCString str+    style <- allocMem :: IO (Ptr CUInt)+    let warn' = (fromIntegral . fromEnum) warn+    result <- pango_parse_style str' style warn'+    let result' = (/= 0) result+    style' <- peek style+    let style'' = (toEnum . fromIntegral) style'+    freeMem str'+    freeMem style+    return (result', style'')++-- function pango_parse_variant+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "variant", argType = TInterface "Pango" "Variant", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "warn", argType = TBasicType TBoolean, 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},Arg {argName = "warn", 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 "pango_parse_variant" pango_parse_variant :: +    CString ->                              -- str : TBasicType TUTF8+    Ptr CUInt ->                            -- variant : TInterface "Pango" "Variant"+    CInt ->                                 -- warn : TBasicType TBoolean+    IO CInt+++parseVariant ::+    (MonadIO m) =>+    T.Text ->                               -- str+    Bool ->                                 -- warn+    m (Bool,Variant)+parseVariant str warn = liftIO $ do+    str' <- textToCString str+    variant <- allocMem :: IO (Ptr CUInt)+    let warn' = (fromIntegral . fromEnum) warn+    result <- pango_parse_variant str' variant warn'+    let result' = (/= 0) result+    variant' <- peek variant+    let variant'' = (toEnum . fromIntegral) variant'+    freeMem str'+    freeMem variant+    return (result', variant'')++-- function pango_parse_weight+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "weight", argType = TInterface "Pango" "Weight", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "warn", argType = TBasicType TBoolean, 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},Arg {argName = "warn", 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 "pango_parse_weight" pango_parse_weight :: +    CString ->                              -- str : TBasicType TUTF8+    Ptr CUInt ->                            -- weight : TInterface "Pango" "Weight"+    CInt ->                                 -- warn : TBasicType TBoolean+    IO CInt+++parseWeight ::+    (MonadIO m) =>+    T.Text ->                               -- str+    Bool ->                                 -- warn+    m (Bool,Weight)+parseWeight str warn = liftIO $ do+    str' <- textToCString str+    weight <- allocMem :: IO (Ptr CUInt)+    let warn' = (fromIntegral . fromEnum) warn+    result <- pango_parse_weight str' weight warn'+    let result' = (/= 0) result+    weight' <- peek weight+    let weight'' = (toEnum . fromIntegral) weight'+    freeMem str'+    freeMem weight+    return (result', weight'')++-- function pango_quantize_line_geometry+-- Args : [Arg {argName = "thickness", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "position", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "thickness", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "position", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_quantize_line_geometry" pango_quantize_line_geometry :: +    Ptr Int32 ->                            -- thickness : TBasicType TInt32+    Ptr Int32 ->                            -- position : TBasicType TInt32+    IO ()+++quantizeLineGeometry ::+    (MonadIO m) =>+    Int32 ->                                -- thickness+    Int32 ->                                -- position+    m (Int32,Int32)+quantizeLineGeometry thickness position = liftIO $ do+    thickness' <- allocMem :: IO (Ptr Int32)+    poke thickness' thickness+    position' <- allocMem :: IO (Ptr Int32)+    poke position' position+    pango_quantize_line_geometry thickness' position'+    thickness'' <- peek thickness'+    position'' <- peek position'+    freeMem thickness'+    freeMem position'+    return (thickness'', position'')++-- function pango_read_line+-- Args : [Arg {argName = "stream", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TInterface "GLib" "String", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "stream", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_read_line" pango_read_line :: +    Ptr () ->                               -- stream : TBasicType TVoid+    Ptr GLib.String ->                      -- str : TInterface "GLib" "String"+    IO Int32+++readLine ::+    (MonadIO m) =>+    Ptr () ->                               -- stream+    m (Int32,GLib.String)+readLine stream = liftIO $ do+    str <- callocBoxedBytes 24 :: IO (Ptr GLib.String)+    result <- pango_read_line stream str+    str' <- (wrapBoxed GLib.String) str+    return (result, str')++-- function pango_reorder_items+-- Args : [Arg {argName = "logical_items", argType = TGList (TInterface "Pango" "Item"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "logical_items", argType = TGList (TInterface "Pango" "Item"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TGList (TInterface "Pango" "Item")+-- throws : False+-- Skip return : False++foreign import ccall "pango_reorder_items" pango_reorder_items :: +    Ptr (GList (Ptr Item)) ->               -- logical_items : TGList (TInterface "Pango" "Item")+    IO (Ptr (GList (Ptr Item)))+++reorderItems ::+    (MonadIO m) =>+    [Item] ->                               -- logical_items+    m [Item]+reorderItems logical_items = liftIO $ do+    let logical_items' = map unsafeManagedPtrGetPtr logical_items+    logical_items'' <- packGList logical_items'+    result <- pango_reorder_items logical_items''+    result' <- unpackGList result+    result'' <- mapM (wrapBoxed Item) result'+    g_list_free result+    mapM_ touchManagedPtr logical_items+    g_list_free logical_items''+    return result''++-- function pango_scan_int+-- Args : [Arg {argName = "pos", argType = TBasicType TUTF8, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "out", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "pos", argType = 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 "pango_scan_int" pango_scan_int :: +    Ptr CString ->                          -- pos : TBasicType TUTF8+    Ptr Int32 ->                            -- out : TBasicType TInt32+    IO CInt+++scanInt ::+    (MonadIO m) =>+    T.Text ->                               -- pos+    m (Bool,T.Text,Int32)+scanInt pos = liftIO $ do+    pos' <- textToCString pos+    pos'' <- allocMem :: IO (Ptr CString)+    poke pos'' pos'+    out <- allocMem :: IO (Ptr Int32)+    result <- pango_scan_int pos'' out+    let result' = (/= 0) result+    pos''' <- peek pos''+    pos'''' <- cstringToText pos'''+    freeMem pos'''+    out' <- peek out+    freeMem pos''+    freeMem out+    return (result', pos'''', out')++-- function pango_scan_string+-- Args : [Arg {argName = "pos", argType = TBasicType TUTF8, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "out", argType = TInterface "GLib" "String", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "pos", argType = 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 "pango_scan_string" pango_scan_string :: +    Ptr CString ->                          -- pos : TBasicType TUTF8+    Ptr GLib.String ->                      -- out : TInterface "GLib" "String"+    IO CInt+++scanString ::+    (MonadIO m) =>+    T.Text ->                               -- pos+    m (Bool,T.Text,GLib.String)+scanString pos = liftIO $ do+    pos' <- textToCString pos+    pos'' <- allocMem :: IO (Ptr CString)+    poke pos'' pos'+    out <- callocBoxedBytes 24 :: IO (Ptr GLib.String)+    result <- pango_scan_string pos'' out+    let result' = (/= 0) result+    pos''' <- peek pos''+    pos'''' <- cstringToText pos'''+    freeMem pos'''+    out' <- (wrapBoxed GLib.String) out+    freeMem pos''+    return (result', pos'''', out')++-- function pango_scan_word+-- Args : [Arg {argName = "pos", argType = TBasicType TUTF8, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "out", argType = TInterface "GLib" "String", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "pos", argType = 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 "pango_scan_word" pango_scan_word :: +    Ptr CString ->                          -- pos : TBasicType TUTF8+    Ptr GLib.String ->                      -- out : TInterface "GLib" "String"+    IO CInt+++scanWord ::+    (MonadIO m) =>+    T.Text ->                               -- pos+    m (Bool,T.Text,GLib.String)+scanWord pos = liftIO $ do+    pos' <- textToCString pos+    pos'' <- allocMem :: IO (Ptr CString)+    poke pos'' pos'+    out <- callocBoxedBytes 24 :: IO (Ptr GLib.String)+    result <- pango_scan_word pos'' out+    let result' = (/= 0) result+    pos''' <- peek pos''+    pos'''' <- cstringToText pos'''+    freeMem pos'''+    out' <- (wrapBoxed GLib.String) out+    freeMem pos''+    return (result', pos'''', out')++-- function pango_script_for_unichar+-- Args : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Script"+-- throws : False+-- Skip return : False++foreign import ccall "pango_script_for_unichar" pango_script_for_unichar :: +    CInt ->                                 -- ch : TBasicType TUniChar+    IO CUInt+++scriptForUnichar ::+    (MonadIO m) =>+    Char ->                                 -- ch+    m Script+scriptForUnichar ch = liftIO $ do+    let ch' = (fromIntegral . ord) ch+    result <- pango_script_for_unichar ch'+    let result' = (toEnum . fromIntegral) result+    return result'++-- function pango_script_get_sample_language+-- Args : [Arg {argName = "script", argType = TInterface "Pango" "Script", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "script", argType = TInterface "Pango" "Script", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Language"+-- throws : False+-- Skip return : False++foreign import ccall "pango_script_get_sample_language" pango_script_get_sample_language :: +    CUInt ->                                -- script : TInterface "Pango" "Script"+    IO (Ptr Language)+++scriptGetSampleLanguage ::+    (MonadIO m) =>+    Script ->                               -- script+    m Language+scriptGetSampleLanguage script = liftIO $ do+    let script' = (fromIntegral . fromEnum) script+    result <- pango_script_get_sample_language script'+    result' <- (wrapBoxed Language) result+    return result'++-- function pango_shape+-- Args : [Arg {argName = "text", argType = TBasicType TUTF8, 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 = "analysis", argType = TInterface "Pango" "Analysis", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "glyphs", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "text", argType = TBasicType TUTF8, 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 = "analysis", argType = TInterface "Pango" "Analysis", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "glyphs", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_shape" pango_shape :: +    CString ->                              -- text : TBasicType TUTF8+    Int32 ->                                -- length : TBasicType TInt32+    Ptr Analysis ->                         -- analysis : TInterface "Pango" "Analysis"+    Ptr GlyphString ->                      -- glyphs : TInterface "Pango" "GlyphString"+    IO ()+++shape ::+    (MonadIO m) =>+    T.Text ->                               -- text+    Int32 ->                                -- length+    Analysis ->                             -- analysis+    GlyphString ->                          -- glyphs+    m ()+shape text length_ analysis glyphs = liftIO $ do+    text' <- textToCString text+    let analysis' = unsafeManagedPtrGetPtr analysis+    let glyphs' = unsafeManagedPtrGetPtr glyphs+    pango_shape text' length_ analysis' glyphs'+    touchManagedPtr analysis+    touchManagedPtr glyphs+    freeMem text'+    return ()++-- function pango_shape_full+-- Args : [Arg {argName = "item_text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "item_length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "paragraph_text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "paragraph_length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "analysis", argType = TInterface "Pango" "Analysis", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "glyphs", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "item_text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "item_length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "paragraph_text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "paragraph_length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "analysis", argType = TInterface "Pango" "Analysis", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "glyphs", argType = TInterface "Pango" "GlyphString", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "pango_shape_full" pango_shape_full :: +    CString ->                              -- item_text : TBasicType TUTF8+    Int32 ->                                -- item_length : TBasicType TInt32+    CString ->                              -- paragraph_text : TBasicType TUTF8+    Int32 ->                                -- paragraph_length : TBasicType TInt32+    Ptr Analysis ->                         -- analysis : TInterface "Pango" "Analysis"+    Ptr GlyphString ->                      -- glyphs : TInterface "Pango" "GlyphString"+    IO ()+++shapeFull ::+    (MonadIO m) =>+    T.Text ->                               -- item_text+    Int32 ->                                -- item_length+    Maybe (T.Text) ->                       -- paragraph_text+    Int32 ->                                -- paragraph_length+    Analysis ->                             -- analysis+    GlyphString ->                          -- glyphs+    m ()+shapeFull item_text item_length paragraph_text paragraph_length analysis glyphs = liftIO $ do+    item_text' <- textToCString item_text+    maybeParagraph_text <- case paragraph_text of+        Nothing -> return nullPtr+        Just jParagraph_text -> do+            jParagraph_text' <- textToCString jParagraph_text+            return jParagraph_text'+    let analysis' = unsafeManagedPtrGetPtr analysis+    let glyphs' = unsafeManagedPtrGetPtr glyphs+    pango_shape_full item_text' item_length maybeParagraph_text paragraph_length analysis' glyphs'+    touchManagedPtr analysis+    touchManagedPtr glyphs+    freeMem item_text'+    freeMem maybeParagraph_text+    return ()++-- function pango_skip_space+-- Args : [Arg {argName = "pos", argType = TBasicType TUTF8, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]+-- Lengths : []+-- hInArgs : [Arg {argName = "pos", argType = 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 "pango_skip_space" pango_skip_space :: +    Ptr CString ->                          -- pos : TBasicType TUTF8+    IO CInt+++skipSpace ::+    (MonadIO m) =>+    T.Text ->                               -- pos+    m (Bool,T.Text)+skipSpace pos = liftIO $ do+    pos' <- textToCString pos+    pos'' <- allocMem :: IO (Ptr CString)+    poke pos'' pos'+    result <- pango_skip_space pos''+    let result' = (/= 0) result+    pos''' <- peek pos''+    pos'''' <- cstringToText pos'''+    freeMem pos'''+    freeMem pos''+    return (result', pos'''')++-- function pango_split_file_list+-- 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 : TCArray True (-1) (-1) (TBasicType TUTF8)+-- throws : False+-- Skip return : False++foreign import ccall "pango_split_file_list" pango_split_file_list :: +    CString ->                              -- str : TBasicType TUTF8+    IO (Ptr CString)+++splitFileList ::+    (MonadIO m) =>+    T.Text ->                               -- str+    m [T.Text]+splitFileList str = liftIO $ do+    str' <- textToCString str+    result <- pango_split_file_list str'+    result' <- unpackZeroTerminatedUTF8CArray result+    mapZeroTerminatedCArray freeMem result+    freeMem result+    freeMem str'+    return result'++-- function pango_trim_string+-- 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 "pango_trim_string" pango_trim_string :: +    CString ->                              -- str : TBasicType TUTF8+    IO CString+++trimString ::+    (MonadIO m) =>+    T.Text ->                               -- str+    m T.Text+trimString str = liftIO $ do+    str' <- textToCString str+    result <- pango_trim_string str'+    result' <- cstringToText result+    freeMem result+    freeMem str'+    return result'++-- function pango_unichar_direction+-- Args : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TInterface "Pango" "Direction"+-- throws : False+-- Skip return : False++foreign import ccall "pango_unichar_direction" pango_unichar_direction :: +    CInt ->                                 -- ch : TBasicType TUniChar+    IO CUInt+++unicharDirection ::+    (MonadIO m) =>+    Char ->                                 -- ch+    m Direction+unicharDirection ch = liftIO $ do+    let ch' = (fromIntegral . ord) ch+    result <- pango_unichar_direction ch'+    let result' = (toEnum . fromIntegral) result+    return result'++-- function pango_units_from_double+-- Args : [Arg {argName = "d", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "d", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_units_from_double" pango_units_from_double :: +    CDouble ->                              -- d : TBasicType TDouble+    IO Int32+++unitsFromDouble ::+    (MonadIO m) =>+    Double ->                               -- d+    m Int32+unitsFromDouble d = liftIO $ do+    let d' = realToFrac d+    result <- pango_units_from_double d'+    return result++-- function pango_units_to_double+-- Args : [Arg {argName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "i", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- returnType : TBasicType TDouble+-- throws : False+-- Skip return : False++foreign import ccall "pango_units_to_double" pango_units_to_double :: +    Int32 ->                                -- i : TBasicType TInt32+    IO CDouble+++unitsToDouble ::+    (MonadIO m) =>+    Int32 ->                                -- i+    m Double+unitsToDouble i = liftIO $ do+    result <- pango_units_to_double i+    let result' = realToFrac result+    return result'++-- function pango_version+-- Args : []+-- Lengths : []+-- hInArgs : []+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "pango_version" pango_version :: +    IO Int32+++version ::+    (MonadIO m) =>+    m Int32+version  = liftIO $ do+    result <- pango_version+    return result++-- function pango_version_check+-- Args : [Arg {argName = "required_major", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "required_minor", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "required_micro", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]+-- Lengths : []+-- hInArgs : [Arg {argName = "required_major", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "required_minor", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "required_micro", 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 "pango_version_check" pango_version_check :: +    Int32 ->                                -- required_major : TBasicType TInt32+    Int32 ->                                -- required_minor : TBasicType TInt32+    Int32 ->                                -- required_micro : TBasicType TInt32+    IO CString+++versionCheck ::+    (MonadIO m) =>+    Int32 ->                                -- required_major+    Int32 ->                                -- required_minor+    Int32 ->                                -- required_micro+    m T.Text+versionCheck required_major required_minor required_micro = liftIO $ do+    result <- pango_version_check required_major required_minor required_micro+    result' <- cstringToText result+    return result'++-- function pango_version_string+-- Args : []+-- Lengths : []+-- hInArgs : []+-- returnType : TBasicType TUTF8+-- throws : False+-- Skip return : False++foreign import ccall "pango_version_string" pango_version_string :: +    IO CString+++versionString ::+    (MonadIO m) =>+    m T.Text+versionString  = liftIO $ do+    result <- pango_version_string+    result' <- cstringToText result+    return result'++-- callback AttrClassDestroyFieldCallback+attrClassDestroyFieldCallbackClosure :: AttrClassDestroyFieldCallback -> IO Closure+attrClassDestroyFieldCallbackClosure cb = newCClosure =<< mkAttrClassDestroyFieldCallback wrapped+    where wrapped = attrClassDestroyFieldCallbackWrapper Nothing cb++type AttrClassDestroyFieldCallbackC =+    Ptr Attribute ->+    IO ()++foreign import ccall "wrapper"+    mkAttrClassDestroyFieldCallback :: AttrClassDestroyFieldCallbackC -> IO (FunPtr AttrClassDestroyFieldCallbackC)++type AttrClassDestroyFieldCallback =+    Attribute ->+    IO ()++noAttrClassDestroyFieldCallback :: Maybe AttrClassDestroyFieldCallback+noAttrClassDestroyFieldCallback = Nothing++attrClassDestroyFieldCallbackWrapper ::+    Maybe (Ptr (FunPtr (AttrClassDestroyFieldCallbackC))) ->+    AttrClassDestroyFieldCallback ->+    Ptr Attribute ->+    IO ()+attrClassDestroyFieldCallbackWrapper funptrptr _cb attr = do+    attr' <- (newPtr 16 Attribute) attr+    _cb  attr'+    maybeReleaseFunPtr funptrptr++-- callback AttrClassEqualFieldCallback+attrClassEqualFieldCallbackClosure :: AttrClassEqualFieldCallback -> IO Closure+attrClassEqualFieldCallbackClosure cb = newCClosure =<< mkAttrClassEqualFieldCallback wrapped+    where wrapped = attrClassEqualFieldCallbackWrapper Nothing cb++type AttrClassEqualFieldCallbackC =+    Ptr Attribute ->+    Ptr Attribute ->+    IO CInt++foreign import ccall "wrapper"+    mkAttrClassEqualFieldCallback :: AttrClassEqualFieldCallbackC -> IO (FunPtr AttrClassEqualFieldCallbackC)++type AttrClassEqualFieldCallback =+    Attribute ->+    Attribute ->+    IO Bool++noAttrClassEqualFieldCallback :: Maybe AttrClassEqualFieldCallback+noAttrClassEqualFieldCallback = Nothing++attrClassEqualFieldCallbackWrapper ::+    Maybe (Ptr (FunPtr (AttrClassEqualFieldCallbackC))) ->+    AttrClassEqualFieldCallback ->+    Ptr Attribute ->+    Ptr Attribute ->+    IO CInt+attrClassEqualFieldCallbackWrapper funptrptr _cb attr1 attr2 = do+    attr1' <- (newPtr 16 Attribute) attr1+    attr2' <- (newPtr 16 Attribute) attr2+    result <- _cb  attr1' attr2'+    maybeReleaseFunPtr funptrptr+    let result' = (fromIntegral . fromEnum) result+    return result'++-- callback IncludedModuleListFieldCallback+includedModuleListFieldCallbackClosure :: IncludedModuleListFieldCallback -> IO Closure+includedModuleListFieldCallbackClosure cb = newCClosure =<< mkIncludedModuleListFieldCallback wrapped+    where wrapped = includedModuleListFieldCallbackWrapper Nothing cb++type IncludedModuleListFieldCallbackC =+    Ptr EngineInfo ->+    Int32 ->+    IO ()++foreign import ccall "wrapper"+    mkIncludedModuleListFieldCallback :: IncludedModuleListFieldCallbackC -> IO (FunPtr IncludedModuleListFieldCallbackC)++type IncludedModuleListFieldCallback =+    EngineInfo ->+    Int32 ->+    IO ()++noIncludedModuleListFieldCallback :: Maybe IncludedModuleListFieldCallback+noIncludedModuleListFieldCallback = Nothing++includedModuleListFieldCallbackWrapper ::+    Maybe (Ptr (FunPtr (IncludedModuleListFieldCallbackC))) ->+    IncludedModuleListFieldCallback ->+    Ptr EngineInfo ->+    Int32 ->+    IO ()+includedModuleListFieldCallbackWrapper funptrptr _cb engines n_engines = do+    engines' <- (newPtr 40 EngineInfo) engines+    _cb  engines' n_engines+    maybeReleaseFunPtr funptrptr++-- callback IncludedModuleInitFieldCallback+includedModuleInitFieldCallbackClosure :: IncludedModuleInitFieldCallback -> IO Closure+includedModuleInitFieldCallbackClosure cb = newCClosure =<< mkIncludedModuleInitFieldCallback wrapped+    where wrapped = includedModuleInitFieldCallbackWrapper Nothing cb++type IncludedModuleInitFieldCallbackC =+    Ptr GObject.TypeModule ->+    IO ()++foreign import ccall "wrapper"+    mkIncludedModuleInitFieldCallback :: IncludedModuleInitFieldCallbackC -> IO (FunPtr IncludedModuleInitFieldCallbackC)++type IncludedModuleInitFieldCallback =+    GObject.TypeModule ->+    IO ()++noIncludedModuleInitFieldCallback :: Maybe IncludedModuleInitFieldCallback+noIncludedModuleInitFieldCallback = Nothing++includedModuleInitFieldCallbackWrapper ::+    Maybe (Ptr (FunPtr (IncludedModuleInitFieldCallbackC))) ->+    IncludedModuleInitFieldCallback ->+    Ptr GObject.TypeModule ->+    IO ()+includedModuleInitFieldCallbackWrapper funptrptr _cb module_ = do+    module_' <- (newObject GObject.TypeModule) module_+    _cb  module_'+    maybeReleaseFunPtr funptrptr++-- callback IncludedModuleExitFieldCallback+includedModuleExitFieldCallbackClosure :: IncludedModuleExitFieldCallback -> IO Closure+includedModuleExitFieldCallbackClosure cb = newCClosure =<< mkIncludedModuleExitFieldCallback wrapped+    where wrapped = includedModuleExitFieldCallbackWrapper Nothing cb++type IncludedModuleExitFieldCallbackC =+    IO ()++foreign import ccall "wrapper"+    mkIncludedModuleExitFieldCallback :: IncludedModuleExitFieldCallbackC -> IO (FunPtr IncludedModuleExitFieldCallbackC)++type IncludedModuleExitFieldCallback =+    IO ()++noIncludedModuleExitFieldCallback :: Maybe IncludedModuleExitFieldCallback+noIncludedModuleExitFieldCallback = Nothing++includedModuleExitFieldCallbackWrapper ::+    Maybe (Ptr (FunPtr (IncludedModuleExitFieldCallbackC))) ->+    IncludedModuleExitFieldCallback ->+    IO ()+includedModuleExitFieldCallbackWrapper funptrptr _cb = do+    _cb +    maybeReleaseFunPtr funptrptr+
+ GI/PangoAttributes.hs view
@@ -0,0 +1,72 @@+{-# 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.PangoAttributes 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.Pango++type instance AttributeList Context = '[ ]++type instance AttributeList Engine = '[ ]++type instance AttributeList EngineLang = '[ ]++type instance AttributeList EngineShape = '[ ]++type instance AttributeList Font = '[ ]++type instance AttributeList FontFace = '[ ]++type instance AttributeList FontFamily = '[ ]++type instance AttributeList FontMap = '[ ]++type instance AttributeList Fontset = '[ ]++type instance AttributeList FontsetSimple = '[ ]++type instance AttributeList Layout = '[ ]++type instance AttributeList Renderer = '[ ]+
+ GI/PangoSignals.hs view
@@ -0,0 +1,41 @@+-- Generated code.++{-# OPTIONS_GHC -fno-warn-orphans #-}++{-# LANGUAGE DataKinds,    FlexibleInstances,+             TypeFamilies, MultiParamTypeClasses,+               TypeOperators #-}++module GI.PangoSignals where++import Data.GI.Base.Properties (GObjectNotifySignalInfo)+import Data.GI.Base.Signals+import Data.GI.Base.Overloading++import qualified GI.GObjectSignals as GObject+import GI.Pango++type instance SignalList Context = '[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]++type instance SignalList Engine = '[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]++type instance SignalList EngineLang = '[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]++type instance SignalList EngineShape = '[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]++type instance SignalList Font = '[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]++type instance SignalList FontFace = '[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]++type instance SignalList FontFamily = '[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]++type instance SignalList FontMap = '[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]++type instance SignalList Fontset = '[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]++type instance SignalList FontsetSimple = '[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]++type instance SignalList Layout = '[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]++type instance SignalList Renderer = '[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)]+
+ LICENSE view
@@ -0,0 +1,502 @@+                  GNU LESSER GENERAL PUBLIC LICENSE+                       Version 2.1, February 1999++ Copyright (C) 1991, 1999 Free Software Foundation, Inc.+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA+ Everyone is permitted to copy and distribute verbatim copies+ of this license document, but changing it is not allowed.++[This is the first released version of the Lesser GPL.  It also counts+ as the successor of the GNU Library Public License, version 2, hence+ the version number 2.1.]++                            Preamble++  The licenses for most software are designed to take away your+freedom to share and change it.  By contrast, the GNU General Public+Licenses are intended to guarantee your freedom to share and change+free software--to make sure the software is free for all its users.++  This license, the Lesser General Public License, applies to some+specially designated software packages--typically libraries--of the+Free Software Foundation and other authors who decide to use it.  You+can use it too, but we suggest you first think carefully about whether+this license or the ordinary General Public License is the better+strategy to use in any particular case, based on the explanations below.++  When we speak of free software, we are referring to freedom of use,+not price.  Our General Public Licenses are designed to make sure that+you have the freedom to distribute copies of free software (and charge+for this service if you wish); that you receive source code or can get+it if you want it; that you can change the software and use pieces of+it in new free programs; and that you are informed that you can do+these things.++  To protect your rights, we need to make restrictions that forbid+distributors to deny you these rights or to ask you to surrender these+rights.  These restrictions translate to certain responsibilities for+you if you distribute copies of the library or if you modify it.++  For example, if you distribute copies of the library, whether gratis+or for a fee, you must give the recipients all the rights that we gave+you.  You must make sure that they, too, receive or can get the source+code.  If you link other code with the library, you must provide+complete object files to the recipients, so that they can relink them+with the library after making changes to the library and recompiling+it.  And you must show them these terms so they know their rights.++  We protect your rights with a two-step method: (1) we copyright the+library, and (2) we offer you this license, which gives you legal+permission to copy, distribute and/or modify the library.++  To protect each distributor, we want to make it very clear that+there is no warranty for the free library.  Also, if the library is+modified by someone else and passed on, the recipients should know+that what they have is not the original version, so that the original+author's reputation will not be affected by problems that might be+introduced by others.++  Finally, software patents pose a constant threat to the existence of+any free program.  We wish to make sure that a company cannot+effectively restrict the users of a free program by obtaining a+restrictive license from a patent holder.  Therefore, we insist that+any patent license obtained for a version of the library must be+consistent with the full freedom of use specified in this license.++  Most GNU software, including some libraries, is covered by the+ordinary GNU General Public License.  This license, the GNU Lesser+General Public License, applies to certain designated libraries, and+is quite different from the ordinary General Public License.  We use+this license for certain libraries in order to permit linking those+libraries into non-free programs.++  When a program is linked with a library, whether statically or using+a shared library, the combination of the two is legally speaking a+combined work, a derivative of the original library.  The ordinary+General Public License therefore permits such linking only if the+entire combination fits its criteria of freedom.  The Lesser General+Public License permits more lax criteria for linking other code with+the library.++  We call this license the "Lesser" General Public License because it+does Less to protect the user's freedom than the ordinary General+Public License.  It also provides other free software developers Less+of an advantage over competing non-free programs.  These disadvantages+are the reason we use the ordinary General Public License for many+libraries.  However, the Lesser license provides advantages in certain+special circumstances.++  For example, on rare occasions, there may be a special need to+encourage the widest possible use of a certain library, so that it becomes+a de-facto standard.  To achieve this, non-free programs must be+allowed to use the library.  A more frequent case is that a free+library does the same job as widely used non-free libraries.  In this+case, there is little to gain by limiting the free library to free+software only, so we use the Lesser General Public License.++  In other cases, permission to use a particular library in non-free+programs enables a greater number of people to use a large body of+free software.  For example, permission to use the GNU C Library in+non-free programs enables many more people to use the whole GNU+operating system, as well as its variant, the GNU/Linux operating+system.++  Although the Lesser General Public License is Less protective of the+users' freedom, it does ensure that the user of a program that is+linked with the Library has the freedom and the wherewithal to run+that program using a modified version of the Library.++  The precise terms and conditions for copying, distribution and+modification follow.  Pay close attention to the difference between a+"work based on the library" and a "work that uses the library".  The+former contains code derived from the library, whereas the latter must+be combined with the library in order to run.++                  GNU LESSER GENERAL PUBLIC LICENSE+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION++  0. This License Agreement applies to any software library or other+program which contains a notice placed by the copyright holder or+other authorized party saying it may be distributed under the terms of+this Lesser General Public License (also called "this License").+Each licensee is addressed as "you".++  A "library" means a collection of software functions and/or data+prepared so as to be conveniently linked with application programs+(which use some of those functions and data) to form executables.++  The "Library", below, refers to any such software library or work+which has been distributed under these terms.  A "work based on the+Library" means either the Library or any derivative work under+copyright law: that is to say, a work containing the Library or a+portion of it, either verbatim or with modifications and/or translated+straightforwardly into another language.  (Hereinafter, translation is+included without limitation in the term "modification".)++  "Source code" for a work means the preferred form of the work for+making modifications to it.  For a library, complete source code means+all the source code for all modules it contains, plus any associated+interface definition files, plus the scripts used to control compilation+and installation of the library.++  Activities other than copying, distribution and modification are not+covered by this License; they are outside its scope.  The act of+running a program using the Library is not restricted, and output from+such a program is covered only if its contents constitute a work based+on the Library (independent of the use of the Library in a tool for+writing it).  Whether that is true depends on what the Library does+and what the program that uses the Library does.++  1. You may copy and distribute verbatim copies of the Library's+complete source code as you receive it, in any medium, provided that+you conspicuously and appropriately publish on each copy an+appropriate copyright notice and disclaimer of warranty; keep intact+all the notices that refer to this License and to the absence of any+warranty; and distribute a copy of this License along with the+Library.++  You may charge a fee for the physical act of transferring a copy,+and you may at your option offer warranty protection in exchange for a+fee.++  2. You may modify your copy or copies of the Library or any portion+of it, thus forming a work based on the Library, and copy and+distribute such modifications or work under the terms of Section 1+above, provided that you also meet all of these conditions:++    a) The modified work must itself be a software library.++    b) You must cause the files modified to carry prominent notices+    stating that you changed the files and the date of any change.++    c) You must cause the whole of the work to be licensed at no+    charge to all third parties under the terms of this License.++    d) If a facility in the modified Library refers to a function or a+    table of data to be supplied by an application program that uses+    the facility, other than as an argument passed when the facility+    is invoked, then you must make a good faith effort to ensure that,+    in the event an application does not supply such function or+    table, the facility still operates, and performs whatever part of+    its purpose remains meaningful.++    (For example, a function in a library to compute square roots has+    a purpose that is entirely well-defined independent of the+    application.  Therefore, Subsection 2d requires that any+    application-supplied function or table used by this function must+    be optional: if the application does not supply it, the square+    root function must still compute square roots.)++These requirements apply to the modified work as a whole.  If+identifiable sections of that work are not derived from the Library,+and can be reasonably considered independent and separate works in+themselves, then this License, and its terms, do not apply to those+sections when you distribute them as separate works.  But when you+distribute the same sections as part of a whole which is a work based+on the Library, the distribution of the whole must be on the terms of+this License, whose permissions for other licensees extend to the+entire whole, and thus to each and every part regardless of who wrote+it.++Thus, it is not the intent of this section to claim rights or contest+your rights to work written entirely by you; rather, the intent is to+exercise the right to control the distribution of derivative or+collective works based on the Library.++In addition, mere aggregation of another work not based on the Library+with the Library (or with a work based on the Library) on a volume of+a storage or distribution medium does not bring the other work under+the scope of this License.++  3. You may opt to apply the terms of the ordinary GNU General Public+License instead of this License to a given copy of the Library.  To do+this, you must alter all the notices that refer to this License, so+that they refer to the ordinary GNU General Public License, version 2,+instead of to this License.  (If a newer version than version 2 of the+ordinary GNU General Public License has appeared, then you can specify+that version instead if you wish.)  Do not make any other change in+these notices.++  Once this change is made in a given copy, it is irreversible for+that copy, so the ordinary GNU General Public License applies to all+subsequent copies and derivative works made from that copy.++  This option is useful when you wish to copy part of the code of+the Library into a program that is not a library.++  4. You may copy and distribute the Library (or a portion or+derivative of it, under Section 2) in object code or executable form+under the terms of Sections 1 and 2 above provided that you accompany+it with the complete corresponding machine-readable source code, which+must be distributed under the terms of Sections 1 and 2 above on a+medium customarily used for software interchange.++  If distribution of object code is made by offering access to copy+from a designated place, then offering equivalent access to copy the+source code from the same place satisfies the requirement to+distribute the source code, even though third parties are not+compelled to copy the source along with the object code.++  5. A program that contains no derivative of any portion of the+Library, but is designed to work with the Library by being compiled or+linked with it, is called a "work that uses the Library".  Such a+work, in isolation, is not a derivative work of the Library, and+therefore falls outside the scope of this License.++  However, linking a "work that uses the Library" with the Library+creates an executable that is a derivative of the Library (because it+contains portions of the Library), rather than a "work that uses the+library".  The executable is therefore covered by this License.+Section 6 states terms for distribution of such executables.++  When a "work that uses the Library" uses material from a header file+that is part of the Library, the object code for the work may be a+derivative work of the Library even though the source code is not.+Whether this is true is especially significant if the work can be+linked without the Library, or if the work is itself a library.  The+threshold for this to be true is not precisely defined by law.++  If such an object file uses only numerical parameters, data+structure layouts and accessors, and small macros and small inline+functions (ten lines or less in length), then the use of the object+file is unrestricted, regardless of whether it is legally a derivative+work.  (Executables containing this object code plus portions of the+Library will still fall under Section 6.)++  Otherwise, if the work is a derivative of the Library, you may+distribute the object code for the work under the terms of Section 6.+Any executables containing that work also fall under Section 6,+whether or not they are linked directly with the Library itself.++  6. As an exception to the Sections above, you may also combine or+link a "work that uses the Library" with the Library to produce a+work containing portions of the Library, and distribute that work+under terms of your choice, provided that the terms permit+modification of the work for the customer's own use and reverse+engineering for debugging such modifications.++  You must give prominent notice with each copy of the work that the+Library is used in it and that the Library and its use are covered by+this License.  You must supply a copy of this License.  If the work+during execution displays copyright notices, you must include the+copyright notice for the Library among them, as well as a reference+directing the user to the copy of this License.  Also, you must do one+of these things:++    a) Accompany the work with the complete corresponding+    machine-readable source code for the Library including whatever+    changes were used in the work (which must be distributed under+    Sections 1 and 2 above); and, if the work is an executable linked+    with the Library, with the complete machine-readable "work that+    uses the Library", as object code and/or source code, so that the+    user can modify the Library and then relink to produce a modified+    executable containing the modified Library.  (It is understood+    that the user who changes the contents of definitions files in the+    Library will not necessarily be able to recompile the application+    to use the modified definitions.)++    b) Use a suitable shared library mechanism for linking with the+    Library.  A suitable mechanism is one that (1) uses at run time a+    copy of the library already present on the user's computer system,+    rather than copying library functions into the executable, and (2)+    will operate properly with a modified version of the library, if+    the user installs one, as long as the modified version is+    interface-compatible with the version that the work was made with.++    c) Accompany the work with a written offer, valid for at+    least three years, to give the same user the materials+    specified in Subsection 6a, above, for a charge no more+    than the cost of performing this distribution.++    d) If distribution of the work is made by offering access to copy+    from a designated place, offer equivalent access to copy the above+    specified materials from the same place.++    e) Verify that the user has already received a copy of these+    materials or that you have already sent this user a copy.++  For an executable, the required form of the "work that uses the+Library" must include any data and utility programs needed for+reproducing the executable from it.  However, as a special exception,+the materials to be distributed need not include anything that is+normally distributed (in either source or binary form) with the major+components (compiler, kernel, and so on) of the operating system on+which the executable runs, unless that component itself accompanies+the executable.++  It may happen that this requirement contradicts the license+restrictions of other proprietary libraries that do not normally+accompany the operating system.  Such a contradiction means you cannot+use both them and the Library together in an executable that you+distribute.++  7. You may place library facilities that are a work based on the+Library side-by-side in a single library together with other library+facilities not covered by this License, and distribute such a combined+library, provided that the separate distribution of the work based on+the Library and of the other library facilities is otherwise+permitted, and provided that you do these two things:++    a) Accompany the combined library with a copy of the same work+    based on the Library, uncombined with any other library+    facilities.  This must be distributed under the terms of the+    Sections above.++    b) Give prominent notice with the combined library of the fact+    that part of it is a work based on the Library, and explaining+    where to find the accompanying uncombined form of the same work.++  8. You may not copy, modify, sublicense, link with, or distribute+the Library except as expressly provided under this License.  Any+attempt otherwise to copy, modify, sublicense, link with, or+distribute the Library is void, and will automatically terminate your+rights under this License.  However, parties who have received copies,+or rights, from you under this License will not have their licenses+terminated so long as such parties remain in full compliance.++  9. You are not required to accept this License, since you have not+signed it.  However, nothing else grants you permission to modify or+distribute the Library or its derivative works.  These actions are+prohibited by law if you do not accept this License.  Therefore, by+modifying or distributing the Library (or any work based on the+Library), you indicate your acceptance of this License to do so, and+all its terms and conditions for copying, distributing or modifying+the Library or works based on it.++  10. Each time you redistribute the Library (or any work based on the+Library), the recipient automatically receives a license from the+original licensor to copy, distribute, link with or modify the Library+subject to these terms and conditions.  You may not impose any further+restrictions on the recipients' exercise of the rights granted herein.+You are not responsible for enforcing compliance by third parties with+this License.++  11. If, as a consequence of a court judgment or allegation of patent+infringement or for any other reason (not limited to patent issues),+conditions are imposed on you (whether by court order, agreement or+otherwise) that contradict the conditions of this License, they do not+excuse you from the conditions of this License.  If you cannot+distribute so as to satisfy simultaneously your obligations under this+License and any other pertinent obligations, then as a consequence you+may not distribute the Library at all.  For example, if a patent+license would not permit royalty-free redistribution of the Library by+all those who receive copies directly or indirectly through you, then+the only way you could satisfy both it and this License would be to+refrain entirely from distribution of the Library.++If any portion of this section is held invalid or unenforceable under any+particular circumstance, the balance of the section is intended to apply,+and the section as a whole is intended to apply in other circumstances.++It is not the purpose of this section to induce you to infringe any+patents or other property right claims or to contest validity of any+such claims; this section has the sole purpose of protecting the+integrity of the free software distribution system which is+implemented by public license practices.  Many people have made+generous contributions to the wide range of software distributed+through that system in reliance on consistent application of that+system; it is up to the author/donor to decide if he or she is willing+to distribute software through any other system and a licensee cannot+impose that choice.++This section is intended to make thoroughly clear what is believed to+be a consequence of the rest of this License.++  12. If the distribution and/or use of the Library is restricted in+certain countries either by patents or by copyrighted interfaces, the+original copyright holder who places the Library under this License may add+an explicit geographical distribution limitation excluding those countries,+so that distribution is permitted only in or among countries not thus+excluded.  In such case, this License incorporates the limitation as if+written in the body of this License.++  13. The Free Software Foundation may publish revised and/or new+versions of the Lesser General Public License from time to time.+Such new versions will be similar in spirit to the present version,+but may differ in detail to address new problems or concerns.++Each version is given a distinguishing version number.  If the Library+specifies a version number of this License which applies to it and+"any later version", you have the option of following the terms and+conditions either of that version or of any later version published by+the Free Software Foundation.  If the Library does not specify a+license version number, you may choose any version ever published by+the Free Software Foundation.++  14. If you wish to incorporate parts of the Library into other free+programs whose distribution conditions are incompatible with these,+write to the author to ask for permission.  For software which is+copyrighted by the Free Software Foundation, write to the Free+Software Foundation; we sometimes make exceptions for this.  Our+decision will be guided by the two goals of preserving the free status+of all derivatives of our free software and of promoting the sharing+and reuse of software generally.++                            NO WARRANTY++  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.++  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH+DAMAGES.++                     END OF TERMS AND CONDITIONS++           How to Apply These Terms to Your New Libraries++  If you develop a new library, and you want it to be of the greatest+possible use to the public, we recommend making it free software that+everyone can redistribute and change.  You can do so by permitting+redistribution under these terms (or, alternatively, under the terms of the+ordinary General Public License).++  To apply these terms, attach the following notices to the library.  It is+safest to attach them to the start of each source file to most effectively+convey the exclusion of warranty; and each file should have at least the+"copyright" line and a pointer to where the full notice is found.++    <one line to give the library's name and a brief idea of what it does.>+    Copyright (C) <year>  <name of author>++    This library is free software; you can redistribute it and/or+    modify it under the terms of the GNU Lesser General Public+    License as published by the Free Software Foundation; either+    version 2.1 of the License, or (at your option) any later version.++    This library is distributed in the hope that it will be useful,+    but WITHOUT ANY WARRANTY; without even the implied warranty of+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+    Lesser General Public License for more details.++    You should have received a copy of the GNU Lesser General Public+    License along with this library; if not, write to the Free Software+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA++Also add information on how to contact you by electronic and paper mail.++You should also get your employer (if you work as a programmer) or your+school, if any, to sign a "copyright disclaimer" for the library, if+necessary.  Here is a sample; alter the names:++  Yoyodyne, Inc., hereby disclaims all copyright interest in the+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.++  <signature of Ty Coon>, 1 April 1990+  Ty Coon, President of Vice++That's all there is to it!
+ Setup.hs view
@@ -0,0 +1,3 @@+#!/usr/bin/env runhaskell+import Distribution.Simple+main = defaultMain
+ gi-pango.cabal view
@@ -0,0 +1,26 @@+-- Autogenerated, do not edit.+name:               gi-pango+version:            0.1.36.8+synopsis:           Pango bindings+description:        Bindings for Pango, autogenerated by haskell-gi.+homepage:           https://github.com/haskell-gi/haskell-gi+license:            LGPL-2.1+license-file:       LICENSE+author:             Will Thompson, Iñaki García Etxebarria and Jonas Platte+maintainer:         Iñaki García Etxebarria (garetxe@gmail.com)+category:           Bindings+build-type:         Simple+cabal-version:      >=1.10++library+    default-language:   Haskell2010+    exposed-modules:    GI.Pango, GI.PangoAttributes, GI.PangoSignals+    pkgconfig-depends:  pango >= 1.36+    build-depends: base >= 4.6 && <4.9,+        haskell-gi-base >= 0.8 && < 1,+        gi-glib >= 0.2.44.8 && < 0.3,+        gi-gobject >= 0.2.44.8 && < 0.3,+        bytestring >= 0.10,+        containers >= 0.5,+        text >= 1.0,+        transformers >= 0.3