{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.Gtk.Objects.AboutDialog
    ( 

-- * Exported types
    AboutDialog(..)                         ,
    AboutDialogK                            ,
    toAboutDialog                           ,
    noAboutDialog                           ,


 -- * Methods
-- ** aboutDialogAddCreditSection
    aboutDialogAddCreditSection             ,


-- ** aboutDialogGetArtists
    aboutDialogGetArtists                   ,


-- ** aboutDialogGetAuthors
    aboutDialogGetAuthors                   ,


-- ** aboutDialogGetComments
    aboutDialogGetComments                  ,


-- ** aboutDialogGetCopyright
    aboutDialogGetCopyright                 ,


-- ** aboutDialogGetDocumenters
    aboutDialogGetDocumenters               ,


-- ** aboutDialogGetLicense
    aboutDialogGetLicense                   ,


-- ** aboutDialogGetLicenseType
    aboutDialogGetLicenseType               ,


-- ** aboutDialogGetLogo
    aboutDialogGetLogo                      ,


-- ** aboutDialogGetLogoIconName
    aboutDialogGetLogoIconName              ,


-- ** aboutDialogGetProgramName
    aboutDialogGetProgramName               ,


-- ** aboutDialogGetTranslatorCredits
    aboutDialogGetTranslatorCredits         ,


-- ** aboutDialogGetVersion
    aboutDialogGetVersion                   ,


-- ** aboutDialogGetWebsite
    aboutDialogGetWebsite                   ,


-- ** aboutDialogGetWebsiteLabel
    aboutDialogGetWebsiteLabel              ,


-- ** aboutDialogGetWrapLicense
    aboutDialogGetWrapLicense               ,


-- ** aboutDialogNew
    aboutDialogNew                          ,


-- ** aboutDialogSetArtists
    aboutDialogSetArtists                   ,


-- ** aboutDialogSetAuthors
    aboutDialogSetAuthors                   ,


-- ** aboutDialogSetComments
    aboutDialogSetComments                  ,


-- ** aboutDialogSetCopyright
    aboutDialogSetCopyright                 ,


-- ** aboutDialogSetDocumenters
    aboutDialogSetDocumenters               ,


-- ** aboutDialogSetLicense
    aboutDialogSetLicense                   ,


-- ** aboutDialogSetLicenseType
    aboutDialogSetLicenseType               ,


-- ** aboutDialogSetLogo
    aboutDialogSetLogo                      ,


-- ** aboutDialogSetLogoIconName
    aboutDialogSetLogoIconName              ,


-- ** aboutDialogSetProgramName
    aboutDialogSetProgramName               ,


-- ** aboutDialogSetTranslatorCredits
    aboutDialogSetTranslatorCredits         ,


-- ** aboutDialogSetVersion
    aboutDialogSetVersion                   ,


-- ** aboutDialogSetWebsite
    aboutDialogSetWebsite                   ,


-- ** aboutDialogSetWebsiteLabel
    aboutDialogSetWebsiteLabel              ,


-- ** aboutDialogSetWrapLicense
    aboutDialogSetWrapLicense               ,




 -- * Properties
-- ** Artists
    AboutDialogArtistsPropertyInfo          ,
    constructAboutDialogArtists             ,
    getAboutDialogArtists                   ,
    setAboutDialogArtists                   ,


-- ** Authors
    AboutDialogAuthorsPropertyInfo          ,
    constructAboutDialogAuthors             ,
    getAboutDialogAuthors                   ,
    setAboutDialogAuthors                   ,


-- ** Comments
    AboutDialogCommentsPropertyInfo         ,
    constructAboutDialogComments            ,
    getAboutDialogComments                  ,
    setAboutDialogComments                  ,


-- ** Copyright
    AboutDialogCopyrightPropertyInfo        ,
    constructAboutDialogCopyright           ,
    getAboutDialogCopyright                 ,
    setAboutDialogCopyright                 ,


-- ** Documenters
    AboutDialogDocumentersPropertyInfo      ,
    constructAboutDialogDocumenters         ,
    getAboutDialogDocumenters               ,
    setAboutDialogDocumenters               ,


-- ** License
    AboutDialogLicensePropertyInfo          ,
    constructAboutDialogLicense             ,
    getAboutDialogLicense                   ,
    setAboutDialogLicense                   ,


-- ** LicenseType
    AboutDialogLicenseTypePropertyInfo      ,
    constructAboutDialogLicenseType         ,
    getAboutDialogLicenseType               ,
    setAboutDialogLicenseType               ,


-- ** Logo
    AboutDialogLogoPropertyInfo             ,
    constructAboutDialogLogo                ,
    getAboutDialogLogo                      ,
    setAboutDialogLogo                      ,


-- ** LogoIconName
    AboutDialogLogoIconNamePropertyInfo     ,
    constructAboutDialogLogoIconName        ,
    getAboutDialogLogoIconName              ,
    setAboutDialogLogoIconName              ,


-- ** ProgramName
    AboutDialogProgramNamePropertyInfo      ,
    constructAboutDialogProgramName         ,
    getAboutDialogProgramName               ,
    setAboutDialogProgramName               ,


-- ** TranslatorCredits
    AboutDialogTranslatorCreditsPropertyInfo,
    constructAboutDialogTranslatorCredits   ,
    getAboutDialogTranslatorCredits         ,
    setAboutDialogTranslatorCredits         ,


-- ** Version
    AboutDialogVersionPropertyInfo          ,
    constructAboutDialogVersion             ,
    getAboutDialogVersion                   ,
    setAboutDialogVersion                   ,


-- ** Website
    AboutDialogWebsitePropertyInfo          ,
    constructAboutDialogWebsite             ,
    getAboutDialogWebsite                   ,
    setAboutDialogWebsite                   ,


-- ** WebsiteLabel
    AboutDialogWebsiteLabelPropertyInfo     ,
    constructAboutDialogWebsiteLabel        ,
    getAboutDialogWebsiteLabel              ,
    setAboutDialogWebsiteLabel              ,


-- ** WrapLicense
    AboutDialogWrapLicensePropertyInfo      ,
    constructAboutDialogWrapLicense         ,
    getAboutDialogWrapLicense               ,
    setAboutDialogWrapLicense               ,




 -- * Signals
-- ** ActivateLink
    AboutDialogActivateLinkCallback         ,
    AboutDialogActivateLinkCallbackC        ,
    AboutDialogActivateLinkSignalInfo       ,
    aboutDialogActivateLinkCallbackWrapper  ,
    aboutDialogActivateLinkClosure          ,
    afterAboutDialogActivateLink            ,
    mkAboutDialogActivateLinkCallback       ,
    noAboutDialogActivateLinkCallback       ,
    onAboutDialogActivateLink               ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.Gtk.Types
import GI.Gtk.Callbacks
import qualified GI.Atk as Atk
import qualified GI.GObject as GObject
import qualified GI.GdkPixbuf as GdkPixbuf

newtype AboutDialog = AboutDialog (ForeignPtr AboutDialog)
foreign import ccall "gtk_about_dialog_get_type"
    c_gtk_about_dialog_get_type :: IO GType

type instance ParentTypes AboutDialog = AboutDialogParentTypes
type AboutDialogParentTypes = '[Dialog, Window, Bin, Container, Widget, GObject.Object, Atk.ImplementorIface, Buildable]

instance GObject AboutDialog where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_about_dialog_get_type
    

class GObject o => AboutDialogK o
instance (GObject o, IsDescendantOf AboutDialog o) => AboutDialogK o

toAboutDialog :: AboutDialogK o => o -> IO AboutDialog
toAboutDialog = unsafeCastTo AboutDialog

noAboutDialog :: Maybe AboutDialog
noAboutDialog = Nothing

-- signal AboutDialog::activate-link
type AboutDialogActivateLinkCallback =
    T.Text ->
    IO Bool

noAboutDialogActivateLinkCallback :: Maybe AboutDialogActivateLinkCallback
noAboutDialogActivateLinkCallback = Nothing

type AboutDialogActivateLinkCallbackC =
    Ptr () ->                               -- object
    CString ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkAboutDialogActivateLinkCallback :: AboutDialogActivateLinkCallbackC -> IO (FunPtr AboutDialogActivateLinkCallbackC)

aboutDialogActivateLinkClosure :: AboutDialogActivateLinkCallback -> IO Closure
aboutDialogActivateLinkClosure cb = newCClosure =<< mkAboutDialogActivateLinkCallback wrapped
    where wrapped = aboutDialogActivateLinkCallbackWrapper cb

aboutDialogActivateLinkCallbackWrapper ::
    AboutDialogActivateLinkCallback ->
    Ptr () ->
    CString ->
    Ptr () ->
    IO CInt
aboutDialogActivateLinkCallbackWrapper _cb _ uri _ = do
    uri' <- cstringToText uri
    result <- _cb  uri'
    let result' = (fromIntegral . fromEnum) result
    return result'

onAboutDialogActivateLink :: (GObject a, MonadIO m) => a -> AboutDialogActivateLinkCallback -> m SignalHandlerId
onAboutDialogActivateLink obj cb = liftIO $ connectAboutDialogActivateLink obj cb SignalConnectBefore
afterAboutDialogActivateLink :: (GObject a, MonadIO m) => a -> AboutDialogActivateLinkCallback -> m SignalHandlerId
afterAboutDialogActivateLink obj cb = connectAboutDialogActivateLink obj cb SignalConnectAfter

connectAboutDialogActivateLink :: (GObject a, MonadIO m) =>
                                  a -> AboutDialogActivateLinkCallback -> SignalConnectMode -> m SignalHandlerId
connectAboutDialogActivateLink obj cb after = liftIO $ do
    cb' <- mkAboutDialogActivateLinkCallback (aboutDialogActivateLinkCallbackWrapper cb)
    connectSignalFunPtr obj "activate-link" cb' after

-- VVV Prop "artists"
   -- Type: TCArray True (-1) (-1) (TBasicType TUTF8)
   -- Flags: [PropertyReadable,PropertyWritable]

getAboutDialogArtists :: (MonadIO m, AboutDialogK o) => o -> m [T.Text]
getAboutDialogArtists obj = liftIO $ getObjectPropertyStringArray obj "artists"

setAboutDialogArtists :: (MonadIO m, AboutDialogK o) => o -> [T.Text] -> m ()
setAboutDialogArtists obj val = liftIO $ setObjectPropertyStringArray obj "artists" val

constructAboutDialogArtists :: [T.Text] -> IO ([Char], GValue)
constructAboutDialogArtists val = constructObjectPropertyStringArray "artists" val

data AboutDialogArtistsPropertyInfo
instance AttrInfo AboutDialogArtistsPropertyInfo where
    type AttrAllowedOps AboutDialogArtistsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AboutDialogArtistsPropertyInfo = (~) [T.Text]
    type AttrBaseTypeConstraint AboutDialogArtistsPropertyInfo = AboutDialogK
    type AttrGetType AboutDialogArtistsPropertyInfo = [T.Text]
    type AttrLabel AboutDialogArtistsPropertyInfo = "AboutDialog::artists"
    attrGet _ = getAboutDialogArtists
    attrSet _ = setAboutDialogArtists
    attrConstruct _ = constructAboutDialogArtists

-- VVV Prop "authors"
   -- Type: TCArray True (-1) (-1) (TBasicType TUTF8)
   -- Flags: [PropertyReadable,PropertyWritable]

getAboutDialogAuthors :: (MonadIO m, AboutDialogK o) => o -> m [T.Text]
getAboutDialogAuthors obj = liftIO $ getObjectPropertyStringArray obj "authors"

setAboutDialogAuthors :: (MonadIO m, AboutDialogK o) => o -> [T.Text] -> m ()
setAboutDialogAuthors obj val = liftIO $ setObjectPropertyStringArray obj "authors" val

constructAboutDialogAuthors :: [T.Text] -> IO ([Char], GValue)
constructAboutDialogAuthors val = constructObjectPropertyStringArray "authors" val

data AboutDialogAuthorsPropertyInfo
instance AttrInfo AboutDialogAuthorsPropertyInfo where
    type AttrAllowedOps AboutDialogAuthorsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AboutDialogAuthorsPropertyInfo = (~) [T.Text]
    type AttrBaseTypeConstraint AboutDialogAuthorsPropertyInfo = AboutDialogK
    type AttrGetType AboutDialogAuthorsPropertyInfo = [T.Text]
    type AttrLabel AboutDialogAuthorsPropertyInfo = "AboutDialog::authors"
    attrGet _ = getAboutDialogAuthors
    attrSet _ = setAboutDialogAuthors
    attrConstruct _ = constructAboutDialogAuthors

-- VVV Prop "comments"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getAboutDialogComments :: (MonadIO m, AboutDialogK o) => o -> m T.Text
getAboutDialogComments obj = liftIO $ getObjectPropertyString obj "comments"

setAboutDialogComments :: (MonadIO m, AboutDialogK o) => o -> T.Text -> m ()
setAboutDialogComments obj val = liftIO $ setObjectPropertyString obj "comments" val

constructAboutDialogComments :: T.Text -> IO ([Char], GValue)
constructAboutDialogComments val = constructObjectPropertyString "comments" val

data AboutDialogCommentsPropertyInfo
instance AttrInfo AboutDialogCommentsPropertyInfo where
    type AttrAllowedOps AboutDialogCommentsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AboutDialogCommentsPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint AboutDialogCommentsPropertyInfo = AboutDialogK
    type AttrGetType AboutDialogCommentsPropertyInfo = T.Text
    type AttrLabel AboutDialogCommentsPropertyInfo = "AboutDialog::comments"
    attrGet _ = getAboutDialogComments
    attrSet _ = setAboutDialogComments
    attrConstruct _ = constructAboutDialogComments

-- VVV Prop "copyright"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getAboutDialogCopyright :: (MonadIO m, AboutDialogK o) => o -> m T.Text
getAboutDialogCopyright obj = liftIO $ getObjectPropertyString obj "copyright"

setAboutDialogCopyright :: (MonadIO m, AboutDialogK o) => o -> T.Text -> m ()
setAboutDialogCopyright obj val = liftIO $ setObjectPropertyString obj "copyright" val

constructAboutDialogCopyright :: T.Text -> IO ([Char], GValue)
constructAboutDialogCopyright val = constructObjectPropertyString "copyright" val

data AboutDialogCopyrightPropertyInfo
instance AttrInfo AboutDialogCopyrightPropertyInfo where
    type AttrAllowedOps AboutDialogCopyrightPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AboutDialogCopyrightPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint AboutDialogCopyrightPropertyInfo = AboutDialogK
    type AttrGetType AboutDialogCopyrightPropertyInfo = T.Text
    type AttrLabel AboutDialogCopyrightPropertyInfo = "AboutDialog::copyright"
    attrGet _ = getAboutDialogCopyright
    attrSet _ = setAboutDialogCopyright
    attrConstruct _ = constructAboutDialogCopyright

-- VVV Prop "documenters"
   -- Type: TCArray True (-1) (-1) (TBasicType TUTF8)
   -- Flags: [PropertyReadable,PropertyWritable]

getAboutDialogDocumenters :: (MonadIO m, AboutDialogK o) => o -> m [T.Text]
getAboutDialogDocumenters obj = liftIO $ getObjectPropertyStringArray obj "documenters"

setAboutDialogDocumenters :: (MonadIO m, AboutDialogK o) => o -> [T.Text] -> m ()
setAboutDialogDocumenters obj val = liftIO $ setObjectPropertyStringArray obj "documenters" val

constructAboutDialogDocumenters :: [T.Text] -> IO ([Char], GValue)
constructAboutDialogDocumenters val = constructObjectPropertyStringArray "documenters" val

data AboutDialogDocumentersPropertyInfo
instance AttrInfo AboutDialogDocumentersPropertyInfo where
    type AttrAllowedOps AboutDialogDocumentersPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AboutDialogDocumentersPropertyInfo = (~) [T.Text]
    type AttrBaseTypeConstraint AboutDialogDocumentersPropertyInfo = AboutDialogK
    type AttrGetType AboutDialogDocumentersPropertyInfo = [T.Text]
    type AttrLabel AboutDialogDocumentersPropertyInfo = "AboutDialog::documenters"
    attrGet _ = getAboutDialogDocumenters
    attrSet _ = setAboutDialogDocumenters
    attrConstruct _ = constructAboutDialogDocumenters

-- VVV Prop "license"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getAboutDialogLicense :: (MonadIO m, AboutDialogK o) => o -> m T.Text
getAboutDialogLicense obj = liftIO $ getObjectPropertyString obj "license"

setAboutDialogLicense :: (MonadIO m, AboutDialogK o) => o -> T.Text -> m ()
setAboutDialogLicense obj val = liftIO $ setObjectPropertyString obj "license" val

constructAboutDialogLicense :: T.Text -> IO ([Char], GValue)
constructAboutDialogLicense val = constructObjectPropertyString "license" val

data AboutDialogLicensePropertyInfo
instance AttrInfo AboutDialogLicensePropertyInfo where
    type AttrAllowedOps AboutDialogLicensePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AboutDialogLicensePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint AboutDialogLicensePropertyInfo = AboutDialogK
    type AttrGetType AboutDialogLicensePropertyInfo = T.Text
    type AttrLabel AboutDialogLicensePropertyInfo = "AboutDialog::license"
    attrGet _ = getAboutDialogLicense
    attrSet _ = setAboutDialogLicense
    attrConstruct _ = constructAboutDialogLicense

-- VVV Prop "license-type"
   -- Type: TInterface "Gtk" "License"
   -- Flags: [PropertyReadable,PropertyWritable]

getAboutDialogLicenseType :: (MonadIO m, AboutDialogK o) => o -> m License
getAboutDialogLicenseType obj = liftIO $ getObjectPropertyEnum obj "license-type"

setAboutDialogLicenseType :: (MonadIO m, AboutDialogK o) => o -> License -> m ()
setAboutDialogLicenseType obj val = liftIO $ setObjectPropertyEnum obj "license-type" val

constructAboutDialogLicenseType :: License -> IO ([Char], GValue)
constructAboutDialogLicenseType val = constructObjectPropertyEnum "license-type" val

data AboutDialogLicenseTypePropertyInfo
instance AttrInfo AboutDialogLicenseTypePropertyInfo where
    type AttrAllowedOps AboutDialogLicenseTypePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AboutDialogLicenseTypePropertyInfo = (~) License
    type AttrBaseTypeConstraint AboutDialogLicenseTypePropertyInfo = AboutDialogK
    type AttrGetType AboutDialogLicenseTypePropertyInfo = License
    type AttrLabel AboutDialogLicenseTypePropertyInfo = "AboutDialog::license-type"
    attrGet _ = getAboutDialogLicenseType
    attrSet _ = setAboutDialogLicenseType
    attrConstruct _ = constructAboutDialogLicenseType

-- VVV Prop "logo"
   -- Type: TInterface "GdkPixbuf" "Pixbuf"
   -- Flags: [PropertyReadable,PropertyWritable]

getAboutDialogLogo :: (MonadIO m, AboutDialogK o) => o -> m GdkPixbuf.Pixbuf
getAboutDialogLogo obj = liftIO $ getObjectPropertyObject obj "logo" GdkPixbuf.Pixbuf

setAboutDialogLogo :: (MonadIO m, AboutDialogK o, GdkPixbuf.PixbufK a) => o -> a -> m ()
setAboutDialogLogo obj val = liftIO $ setObjectPropertyObject obj "logo" val

constructAboutDialogLogo :: (GdkPixbuf.PixbufK a) => a -> IO ([Char], GValue)
constructAboutDialogLogo val = constructObjectPropertyObject "logo" val

data AboutDialogLogoPropertyInfo
instance AttrInfo AboutDialogLogoPropertyInfo where
    type AttrAllowedOps AboutDialogLogoPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AboutDialogLogoPropertyInfo = GdkPixbuf.PixbufK
    type AttrBaseTypeConstraint AboutDialogLogoPropertyInfo = AboutDialogK
    type AttrGetType AboutDialogLogoPropertyInfo = GdkPixbuf.Pixbuf
    type AttrLabel AboutDialogLogoPropertyInfo = "AboutDialog::logo"
    attrGet _ = getAboutDialogLogo
    attrSet _ = setAboutDialogLogo
    attrConstruct _ = constructAboutDialogLogo

-- VVV Prop "logo-icon-name"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getAboutDialogLogoIconName :: (MonadIO m, AboutDialogK o) => o -> m T.Text
getAboutDialogLogoIconName obj = liftIO $ getObjectPropertyString obj "logo-icon-name"

setAboutDialogLogoIconName :: (MonadIO m, AboutDialogK o) => o -> T.Text -> m ()
setAboutDialogLogoIconName obj val = liftIO $ setObjectPropertyString obj "logo-icon-name" val

constructAboutDialogLogoIconName :: T.Text -> IO ([Char], GValue)
constructAboutDialogLogoIconName val = constructObjectPropertyString "logo-icon-name" val

data AboutDialogLogoIconNamePropertyInfo
instance AttrInfo AboutDialogLogoIconNamePropertyInfo where
    type AttrAllowedOps AboutDialogLogoIconNamePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AboutDialogLogoIconNamePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint AboutDialogLogoIconNamePropertyInfo = AboutDialogK
    type AttrGetType AboutDialogLogoIconNamePropertyInfo = T.Text
    type AttrLabel AboutDialogLogoIconNamePropertyInfo = "AboutDialog::logo-icon-name"
    attrGet _ = getAboutDialogLogoIconName
    attrSet _ = setAboutDialogLogoIconName
    attrConstruct _ = constructAboutDialogLogoIconName

-- VVV Prop "program-name"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getAboutDialogProgramName :: (MonadIO m, AboutDialogK o) => o -> m T.Text
getAboutDialogProgramName obj = liftIO $ getObjectPropertyString obj "program-name"

setAboutDialogProgramName :: (MonadIO m, AboutDialogK o) => o -> T.Text -> m ()
setAboutDialogProgramName obj val = liftIO $ setObjectPropertyString obj "program-name" val

constructAboutDialogProgramName :: T.Text -> IO ([Char], GValue)
constructAboutDialogProgramName val = constructObjectPropertyString "program-name" val

data AboutDialogProgramNamePropertyInfo
instance AttrInfo AboutDialogProgramNamePropertyInfo where
    type AttrAllowedOps AboutDialogProgramNamePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AboutDialogProgramNamePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint AboutDialogProgramNamePropertyInfo = AboutDialogK
    type AttrGetType AboutDialogProgramNamePropertyInfo = T.Text
    type AttrLabel AboutDialogProgramNamePropertyInfo = "AboutDialog::program-name"
    attrGet _ = getAboutDialogProgramName
    attrSet _ = setAboutDialogProgramName
    attrConstruct _ = constructAboutDialogProgramName

-- VVV Prop "translator-credits"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getAboutDialogTranslatorCredits :: (MonadIO m, AboutDialogK o) => o -> m T.Text
getAboutDialogTranslatorCredits obj = liftIO $ getObjectPropertyString obj "translator-credits"

setAboutDialogTranslatorCredits :: (MonadIO m, AboutDialogK o) => o -> T.Text -> m ()
setAboutDialogTranslatorCredits obj val = liftIO $ setObjectPropertyString obj "translator-credits" val

constructAboutDialogTranslatorCredits :: T.Text -> IO ([Char], GValue)
constructAboutDialogTranslatorCredits val = constructObjectPropertyString "translator-credits" val

data AboutDialogTranslatorCreditsPropertyInfo
instance AttrInfo AboutDialogTranslatorCreditsPropertyInfo where
    type AttrAllowedOps AboutDialogTranslatorCreditsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AboutDialogTranslatorCreditsPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint AboutDialogTranslatorCreditsPropertyInfo = AboutDialogK
    type AttrGetType AboutDialogTranslatorCreditsPropertyInfo = T.Text
    type AttrLabel AboutDialogTranslatorCreditsPropertyInfo = "AboutDialog::translator-credits"
    attrGet _ = getAboutDialogTranslatorCredits
    attrSet _ = setAboutDialogTranslatorCredits
    attrConstruct _ = constructAboutDialogTranslatorCredits

-- VVV Prop "version"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getAboutDialogVersion :: (MonadIO m, AboutDialogK o) => o -> m T.Text
getAboutDialogVersion obj = liftIO $ getObjectPropertyString obj "version"

setAboutDialogVersion :: (MonadIO m, AboutDialogK o) => o -> T.Text -> m ()
setAboutDialogVersion obj val = liftIO $ setObjectPropertyString obj "version" val

constructAboutDialogVersion :: T.Text -> IO ([Char], GValue)
constructAboutDialogVersion val = constructObjectPropertyString "version" val

data AboutDialogVersionPropertyInfo
instance AttrInfo AboutDialogVersionPropertyInfo where
    type AttrAllowedOps AboutDialogVersionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AboutDialogVersionPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint AboutDialogVersionPropertyInfo = AboutDialogK
    type AttrGetType AboutDialogVersionPropertyInfo = T.Text
    type AttrLabel AboutDialogVersionPropertyInfo = "AboutDialog::version"
    attrGet _ = getAboutDialogVersion
    attrSet _ = setAboutDialogVersion
    attrConstruct _ = constructAboutDialogVersion

-- VVV Prop "website"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getAboutDialogWebsite :: (MonadIO m, AboutDialogK o) => o -> m T.Text
getAboutDialogWebsite obj = liftIO $ getObjectPropertyString obj "website"

setAboutDialogWebsite :: (MonadIO m, AboutDialogK o) => o -> T.Text -> m ()
setAboutDialogWebsite obj val = liftIO $ setObjectPropertyString obj "website" val

constructAboutDialogWebsite :: T.Text -> IO ([Char], GValue)
constructAboutDialogWebsite val = constructObjectPropertyString "website" val

data AboutDialogWebsitePropertyInfo
instance AttrInfo AboutDialogWebsitePropertyInfo where
    type AttrAllowedOps AboutDialogWebsitePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AboutDialogWebsitePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint AboutDialogWebsitePropertyInfo = AboutDialogK
    type AttrGetType AboutDialogWebsitePropertyInfo = T.Text
    type AttrLabel AboutDialogWebsitePropertyInfo = "AboutDialog::website"
    attrGet _ = getAboutDialogWebsite
    attrSet _ = setAboutDialogWebsite
    attrConstruct _ = constructAboutDialogWebsite

-- VVV Prop "website-label"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getAboutDialogWebsiteLabel :: (MonadIO m, AboutDialogK o) => o -> m T.Text
getAboutDialogWebsiteLabel obj = liftIO $ getObjectPropertyString obj "website-label"

setAboutDialogWebsiteLabel :: (MonadIO m, AboutDialogK o) => o -> T.Text -> m ()
setAboutDialogWebsiteLabel obj val = liftIO $ setObjectPropertyString obj "website-label" val

constructAboutDialogWebsiteLabel :: T.Text -> IO ([Char], GValue)
constructAboutDialogWebsiteLabel val = constructObjectPropertyString "website-label" val

data AboutDialogWebsiteLabelPropertyInfo
instance AttrInfo AboutDialogWebsiteLabelPropertyInfo where
    type AttrAllowedOps AboutDialogWebsiteLabelPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AboutDialogWebsiteLabelPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint AboutDialogWebsiteLabelPropertyInfo = AboutDialogK
    type AttrGetType AboutDialogWebsiteLabelPropertyInfo = T.Text
    type AttrLabel AboutDialogWebsiteLabelPropertyInfo = "AboutDialog::website-label"
    attrGet _ = getAboutDialogWebsiteLabel
    attrSet _ = setAboutDialogWebsiteLabel
    attrConstruct _ = constructAboutDialogWebsiteLabel

-- VVV Prop "wrap-license"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getAboutDialogWrapLicense :: (MonadIO m, AboutDialogK o) => o -> m Bool
getAboutDialogWrapLicense obj = liftIO $ getObjectPropertyBool obj "wrap-license"

setAboutDialogWrapLicense :: (MonadIO m, AboutDialogK o) => o -> Bool -> m ()
setAboutDialogWrapLicense obj val = liftIO $ setObjectPropertyBool obj "wrap-license" val

constructAboutDialogWrapLicense :: Bool -> IO ([Char], GValue)
constructAboutDialogWrapLicense val = constructObjectPropertyBool "wrap-license" val

data AboutDialogWrapLicensePropertyInfo
instance AttrInfo AboutDialogWrapLicensePropertyInfo where
    type AttrAllowedOps AboutDialogWrapLicensePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AboutDialogWrapLicensePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint AboutDialogWrapLicensePropertyInfo = AboutDialogK
    type AttrGetType AboutDialogWrapLicensePropertyInfo = Bool
    type AttrLabel AboutDialogWrapLicensePropertyInfo = "AboutDialog::wrap-license"
    attrGet _ = getAboutDialogWrapLicense
    attrSet _ = setAboutDialogWrapLicense
    attrConstruct _ = constructAboutDialogWrapLicense

type instance AttributeList AboutDialog = AboutDialogAttributeList
type AboutDialogAttributeList = ('[ '("accept-focus", WindowAcceptFocusPropertyInfo), '("app-paintable", WidgetAppPaintablePropertyInfo), '("application", WindowApplicationPropertyInfo), '("artists", AboutDialogArtistsPropertyInfo), '("attached-to", WindowAttachedToPropertyInfo), '("authors", AboutDialogAuthorsPropertyInfo), '("border-width", ContainerBorderWidthPropertyInfo), '("can-default", WidgetCanDefaultPropertyInfo), '("can-focus", WidgetCanFocusPropertyInfo), '("child", ContainerChildPropertyInfo), '("comments", AboutDialogCommentsPropertyInfo), '("composite-child", WidgetCompositeChildPropertyInfo), '("copyright", AboutDialogCopyrightPropertyInfo), '("decorated", WindowDecoratedPropertyInfo), '("default-height", WindowDefaultHeightPropertyInfo), '("default-width", WindowDefaultWidthPropertyInfo), '("deletable", WindowDeletablePropertyInfo), '("destroy-with-parent", WindowDestroyWithParentPropertyInfo), '("documenters", AboutDialogDocumentersPropertyInfo), '("double-buffered", WidgetDoubleBufferedPropertyInfo), '("events", WidgetEventsPropertyInfo), '("expand", WidgetExpandPropertyInfo), '("focus-on-map", WindowFocusOnMapPropertyInfo), '("focus-visible", WindowFocusVisiblePropertyInfo), '("gravity", WindowGravityPropertyInfo), '("halign", WidgetHalignPropertyInfo), '("has-default", WidgetHasDefaultPropertyInfo), '("has-focus", WidgetHasFocusPropertyInfo), '("has-resize-grip", WindowHasResizeGripPropertyInfo), '("has-tooltip", WidgetHasTooltipPropertyInfo), '("has-toplevel-focus", WindowHasToplevelFocusPropertyInfo), '("height-request", WidgetHeightRequestPropertyInfo), '("hexpand", WidgetHexpandPropertyInfo), '("hexpand-set", WidgetHexpandSetPropertyInfo), '("hide-titlebar-when-maximized", WindowHideTitlebarWhenMaximizedPropertyInfo), '("icon", WindowIconPropertyInfo), '("icon-name", WindowIconNamePropertyInfo), '("is-active", WindowIsActivePropertyInfo), '("is-focus", WidgetIsFocusPropertyInfo), '("is-maximized", WindowIsMaximizedPropertyInfo), '("license", AboutDialogLicensePropertyInfo), '("license-type", AboutDialogLicenseTypePropertyInfo), '("logo", AboutDialogLogoPropertyInfo), '("logo-icon-name", AboutDialogLogoIconNamePropertyInfo), '("margin", WidgetMarginPropertyInfo), '("margin-bottom", WidgetMarginBottomPropertyInfo), '("margin-end", WidgetMarginEndPropertyInfo), '("margin-left", WidgetMarginLeftPropertyInfo), '("margin-right", WidgetMarginRightPropertyInfo), '("margin-start", WidgetMarginStartPropertyInfo), '("margin-top", WidgetMarginTopPropertyInfo), '("mnemonics-visible", WindowMnemonicsVisiblePropertyInfo), '("modal", WindowModalPropertyInfo), '("name", WidgetNamePropertyInfo), '("no-show-all", WidgetNoShowAllPropertyInfo), '("opacity", WidgetOpacityPropertyInfo), '("parent", WidgetParentPropertyInfo), '("program-name", AboutDialogProgramNamePropertyInfo), '("receives-default", WidgetReceivesDefaultPropertyInfo), '("resizable", WindowResizablePropertyInfo), '("resize-grip-visible", WindowResizeGripVisiblePropertyInfo), '("resize-mode", ContainerResizeModePropertyInfo), '("role", WindowRolePropertyInfo), '("scale-factor", WidgetScaleFactorPropertyInfo), '("screen", WindowScreenPropertyInfo), '("sensitive", WidgetSensitivePropertyInfo), '("skip-pager-hint", WindowSkipPagerHintPropertyInfo), '("skip-taskbar-hint", WindowSkipTaskbarHintPropertyInfo), '("startup-id", WindowStartupIdPropertyInfo), '("style", WidgetStylePropertyInfo), '("title", WindowTitlePropertyInfo), '("tooltip-markup", WidgetTooltipMarkupPropertyInfo), '("tooltip-text", WidgetTooltipTextPropertyInfo), '("transient-for", WindowTransientForPropertyInfo), '("translator-credits", AboutDialogTranslatorCreditsPropertyInfo), '("type", WindowTypePropertyInfo), '("type-hint", WindowTypeHintPropertyInfo), '("urgency-hint", WindowUrgencyHintPropertyInfo), '("use-header-bar", DialogUseHeaderBarPropertyInfo), '("valign", WidgetValignPropertyInfo), '("version", AboutDialogVersionPropertyInfo), '("vexpand", WidgetVexpandPropertyInfo), '("vexpand-set", WidgetVexpandSetPropertyInfo), '("visible", WidgetVisiblePropertyInfo), '("website", AboutDialogWebsitePropertyInfo), '("website-label", AboutDialogWebsiteLabelPropertyInfo), '("width-request", WidgetWidthRequestPropertyInfo), '("window", WidgetWindowPropertyInfo), '("window-position", WindowWindowPositionPropertyInfo), '("wrap-license", AboutDialogWrapLicensePropertyInfo)] :: [(Symbol, *)])

data AboutDialogActivateLinkSignalInfo
instance SignalInfo AboutDialogActivateLinkSignalInfo where
    type HaskellCallbackType AboutDialogActivateLinkSignalInfo = AboutDialogActivateLinkCallback
    connectSignal _ = connectAboutDialogActivateLink

type instance SignalList AboutDialog = AboutDialogSignalList
type AboutDialogSignalList = ('[ '("accel-closures-changed", WidgetAccelClosuresChangedSignalInfo), '("activate-default", WindowActivateDefaultSignalInfo), '("activate-focus", WindowActivateFocusSignalInfo), '("activate-link", AboutDialogActivateLinkSignalInfo), '("add", ContainerAddSignalInfo), '("button-press-event", WidgetButtonPressEventSignalInfo), '("button-release-event", WidgetButtonReleaseEventSignalInfo), '("can-activate-accel", WidgetCanActivateAccelSignalInfo), '("check-resize", ContainerCheckResizeSignalInfo), '("child-notify", WidgetChildNotifySignalInfo), '("close", DialogCloseSignalInfo), '("composited-changed", WidgetCompositedChangedSignalInfo), '("configure-event", WidgetConfigureEventSignalInfo), '("damage-event", WidgetDamageEventSignalInfo), '("delete-event", WidgetDeleteEventSignalInfo), '("destroy", WidgetDestroySignalInfo), '("destroy-event", WidgetDestroyEventSignalInfo), '("direction-changed", WidgetDirectionChangedSignalInfo), '("drag-begin", WidgetDragBeginSignalInfo), '("drag-data-delete", WidgetDragDataDeleteSignalInfo), '("drag-data-get", WidgetDragDataGetSignalInfo), '("drag-data-received", WidgetDragDataReceivedSignalInfo), '("drag-drop", WidgetDragDropSignalInfo), '("drag-end", WidgetDragEndSignalInfo), '("drag-failed", WidgetDragFailedSignalInfo), '("drag-leave", WidgetDragLeaveSignalInfo), '("drag-motion", WidgetDragMotionSignalInfo), '("draw", WidgetDrawSignalInfo), '("enable-debugging", WindowEnableDebuggingSignalInfo), '("enter-notify-event", WidgetEnterNotifyEventSignalInfo), '("event", WidgetEventSignalInfo), '("event-after", WidgetEventAfterSignalInfo), '("focus", WidgetFocusSignalInfo), '("focus-in-event", WidgetFocusInEventSignalInfo), '("focus-out-event", WidgetFocusOutEventSignalInfo), '("grab-broken-event", WidgetGrabBrokenEventSignalInfo), '("grab-focus", WidgetGrabFocusSignalInfo), '("grab-notify", WidgetGrabNotifySignalInfo), '("hide", WidgetHideSignalInfo), '("hierarchy-changed", WidgetHierarchyChangedSignalInfo), '("key-press-event", WidgetKeyPressEventSignalInfo), '("key-release-event", WidgetKeyReleaseEventSignalInfo), '("keynav-failed", WidgetKeynavFailedSignalInfo), '("keys-changed", WindowKeysChangedSignalInfo), '("leave-notify-event", WidgetLeaveNotifyEventSignalInfo), '("map", WidgetMapSignalInfo), '("map-event", WidgetMapEventSignalInfo), '("mnemonic-activate", WidgetMnemonicActivateSignalInfo), '("motion-notify-event", WidgetMotionNotifyEventSignalInfo), '("move-focus", WidgetMoveFocusSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("parent-set", WidgetParentSetSignalInfo), '("popup-menu", WidgetPopupMenuSignalInfo), '("property-notify-event", WidgetPropertyNotifyEventSignalInfo), '("proximity-in-event", WidgetProximityInEventSignalInfo), '("proximity-out-event", WidgetProximityOutEventSignalInfo), '("query-tooltip", WidgetQueryTooltipSignalInfo), '("realize", WidgetRealizeSignalInfo), '("remove", ContainerRemoveSignalInfo), '("response", DialogResponseSignalInfo), '("screen-changed", WidgetScreenChangedSignalInfo), '("scroll-event", WidgetScrollEventSignalInfo), '("selection-clear-event", WidgetSelectionClearEventSignalInfo), '("selection-get", WidgetSelectionGetSignalInfo), '("selection-notify-event", WidgetSelectionNotifyEventSignalInfo), '("selection-received", WidgetSelectionReceivedSignalInfo), '("selection-request-event", WidgetSelectionRequestEventSignalInfo), '("set-focus", WindowSetFocusSignalInfo), '("set-focus-child", ContainerSetFocusChildSignalInfo), '("show", WidgetShowSignalInfo), '("show-help", WidgetShowHelpSignalInfo), '("size-allocate", WidgetSizeAllocateSignalInfo), '("state-changed", WidgetStateChangedSignalInfo), '("state-flags-changed", WidgetStateFlagsChangedSignalInfo), '("style-set", WidgetStyleSetSignalInfo), '("style-updated", WidgetStyleUpdatedSignalInfo), '("touch-event", WidgetTouchEventSignalInfo), '("unmap", WidgetUnmapSignalInfo), '("unmap-event", WidgetUnmapEventSignalInfo), '("unrealize", WidgetUnrealizeSignalInfo), '("visibility-notify-event", WidgetVisibilityNotifyEventSignalInfo), '("window-state-event", WidgetWindowStateEventSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method AboutDialog::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- hInArgs : []
-- returnType : TInterface "Gtk" "AboutDialog"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_new" gtk_about_dialog_new :: 
    IO (Ptr AboutDialog)


aboutDialogNew ::
    (MonadIO m) =>
    m AboutDialog
aboutDialogNew  = liftIO $ do
    result <- gtk_about_dialog_new
    checkUnexpectedReturnNULL "gtk_about_dialog_new" result
    result' <- (newObject AboutDialog) result
    return result'

-- method AboutDialog::add_credit_section
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "section_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "people", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "section_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "people", argType = TCArray True (-1) (-1) (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 "gtk_about_dialog_add_credit_section" gtk_about_dialog_add_credit_section :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    CString ->                              -- section_name : TBasicType TUTF8
    Ptr CString ->                          -- people : TCArray True (-1) (-1) (TBasicType TUTF8)
    IO ()


aboutDialogAddCreditSection ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- section_name
    [T.Text] ->                             -- people
    m ()
aboutDialogAddCreditSection _obj section_name people = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    section_name' <- textToCString section_name
    people' <- packZeroTerminatedUTF8CArray people
    gtk_about_dialog_add_credit_section _obj' section_name' people'
    touchManagedPtr _obj
    freeMem section_name'
    mapZeroTerminatedCArray freeMem people'
    freeMem people'
    return ()

-- method AboutDialog::get_artists
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", 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 "gtk_about_dialog_get_artists" gtk_about_dialog_get_artists :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    IO (Ptr CString)


aboutDialogGetArtists ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    m [T.Text]
aboutDialogGetArtists _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_about_dialog_get_artists _obj'
    checkUnexpectedReturnNULL "gtk_about_dialog_get_artists" result
    result' <- unpackZeroTerminatedUTF8CArray result
    touchManagedPtr _obj
    return result'

-- method AboutDialog::get_authors
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", 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 "gtk_about_dialog_get_authors" gtk_about_dialog_get_authors :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    IO (Ptr CString)


aboutDialogGetAuthors ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    m [T.Text]
aboutDialogGetAuthors _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_about_dialog_get_authors _obj'
    checkUnexpectedReturnNULL "gtk_about_dialog_get_authors" result
    result' <- unpackZeroTerminatedUTF8CArray result
    touchManagedPtr _obj
    return result'

-- method AboutDialog::get_comments
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_get_comments" gtk_about_dialog_get_comments :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    IO CString


aboutDialogGetComments ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    m T.Text
aboutDialogGetComments _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_about_dialog_get_comments _obj'
    checkUnexpectedReturnNULL "gtk_about_dialog_get_comments" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

-- method AboutDialog::get_copyright
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_get_copyright" gtk_about_dialog_get_copyright :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    IO CString


aboutDialogGetCopyright ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    m T.Text
aboutDialogGetCopyright _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_about_dialog_get_copyright _obj'
    checkUnexpectedReturnNULL "gtk_about_dialog_get_copyright" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

-- method AboutDialog::get_documenters
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", 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 "gtk_about_dialog_get_documenters" gtk_about_dialog_get_documenters :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    IO (Ptr CString)


aboutDialogGetDocumenters ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    m [T.Text]
aboutDialogGetDocumenters _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_about_dialog_get_documenters _obj'
    checkUnexpectedReturnNULL "gtk_about_dialog_get_documenters" result
    result' <- unpackZeroTerminatedUTF8CArray result
    touchManagedPtr _obj
    return result'

-- method AboutDialog::get_license
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_get_license" gtk_about_dialog_get_license :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    IO CString


aboutDialogGetLicense ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    m T.Text
aboutDialogGetLicense _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_about_dialog_get_license _obj'
    checkUnexpectedReturnNULL "gtk_about_dialog_get_license" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

-- method AboutDialog::get_license_type
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "License"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_get_license_type" gtk_about_dialog_get_license_type :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    IO CUInt


aboutDialogGetLicenseType ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    m License
aboutDialogGetLicenseType _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_about_dialog_get_license_type _obj'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr _obj
    return result'

-- method AboutDialog::get_logo
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_get_logo" gtk_about_dialog_get_logo :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    IO (Ptr GdkPixbuf.Pixbuf)


aboutDialogGetLogo ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    m GdkPixbuf.Pixbuf
aboutDialogGetLogo _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_about_dialog_get_logo _obj'
    checkUnexpectedReturnNULL "gtk_about_dialog_get_logo" result
    result' <- (newObject GdkPixbuf.Pixbuf) result
    touchManagedPtr _obj
    return result'

-- method AboutDialog::get_logo_icon_name
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_get_logo_icon_name" gtk_about_dialog_get_logo_icon_name :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    IO CString


aboutDialogGetLogoIconName ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    m T.Text
aboutDialogGetLogoIconName _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_about_dialog_get_logo_icon_name _obj'
    checkUnexpectedReturnNULL "gtk_about_dialog_get_logo_icon_name" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

-- method AboutDialog::get_program_name
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_get_program_name" gtk_about_dialog_get_program_name :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    IO CString


aboutDialogGetProgramName ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    m T.Text
aboutDialogGetProgramName _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_about_dialog_get_program_name _obj'
    checkUnexpectedReturnNULL "gtk_about_dialog_get_program_name" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

-- method AboutDialog::get_translator_credits
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_get_translator_credits" gtk_about_dialog_get_translator_credits :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    IO CString


aboutDialogGetTranslatorCredits ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    m T.Text
aboutDialogGetTranslatorCredits _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_about_dialog_get_translator_credits _obj'
    checkUnexpectedReturnNULL "gtk_about_dialog_get_translator_credits" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

-- method AboutDialog::get_version
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_get_version" gtk_about_dialog_get_version :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    IO CString


aboutDialogGetVersion ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    m T.Text
aboutDialogGetVersion _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_about_dialog_get_version _obj'
    checkUnexpectedReturnNULL "gtk_about_dialog_get_version" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

-- method AboutDialog::get_website
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_get_website" gtk_about_dialog_get_website :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    IO CString


aboutDialogGetWebsite ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    m T.Text
aboutDialogGetWebsite _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_about_dialog_get_website _obj'
    checkUnexpectedReturnNULL "gtk_about_dialog_get_website" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

-- method AboutDialog::get_website_label
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_get_website_label" gtk_about_dialog_get_website_label :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    IO CString


aboutDialogGetWebsiteLabel ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    m T.Text
aboutDialogGetWebsiteLabel _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_about_dialog_get_website_label _obj'
    checkUnexpectedReturnNULL "gtk_about_dialog_get_website_label" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

-- method AboutDialog::get_wrap_license
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_get_wrap_license" gtk_about_dialog_get_wrap_license :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    IO CInt


aboutDialogGetWrapLicense ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    m Bool
aboutDialogGetWrapLicense _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_about_dialog_get_wrap_license _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method AboutDialog::set_artists
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "artists", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "artists", argType = TCArray True (-1) (-1) (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 "gtk_about_dialog_set_artists" gtk_about_dialog_set_artists :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    Ptr CString ->                          -- artists : TCArray True (-1) (-1) (TBasicType TUTF8)
    IO ()


aboutDialogSetArtists ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    [T.Text] ->                             -- artists
    m ()
aboutDialogSetArtists _obj artists = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    artists' <- packZeroTerminatedUTF8CArray artists
    gtk_about_dialog_set_artists _obj' artists'
    touchManagedPtr _obj
    mapZeroTerminatedCArray freeMem artists'
    freeMem artists'
    return ()

-- method AboutDialog::set_authors
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "authors", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "authors", argType = TCArray True (-1) (-1) (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 "gtk_about_dialog_set_authors" gtk_about_dialog_set_authors :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    Ptr CString ->                          -- authors : TCArray True (-1) (-1) (TBasicType TUTF8)
    IO ()


aboutDialogSetAuthors ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    [T.Text] ->                             -- authors
    m ()
aboutDialogSetAuthors _obj authors = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    authors' <- packZeroTerminatedUTF8CArray authors
    gtk_about_dialog_set_authors _obj' authors'
    touchManagedPtr _obj
    mapZeroTerminatedCArray freeMem authors'
    freeMem authors'
    return ()

-- method AboutDialog::set_comments
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "comments", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "comments", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_set_comments" gtk_about_dialog_set_comments :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    CString ->                              -- comments : TBasicType TUTF8
    IO ()


aboutDialogSetComments ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    Maybe (T.Text) ->                       -- comments
    m ()
aboutDialogSetComments _obj comments = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeComments <- case comments of
        Nothing -> return nullPtr
        Just jComments -> do
            jComments' <- textToCString jComments
            return jComments'
    gtk_about_dialog_set_comments _obj' maybeComments
    touchManagedPtr _obj
    freeMem maybeComments
    return ()

-- method AboutDialog::set_copyright
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "copyright", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "copyright", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_set_copyright" gtk_about_dialog_set_copyright :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    CString ->                              -- copyright : TBasicType TUTF8
    IO ()


aboutDialogSetCopyright ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    Maybe (T.Text) ->                       -- copyright
    m ()
aboutDialogSetCopyright _obj copyright = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeCopyright <- case copyright of
        Nothing -> return nullPtr
        Just jCopyright -> do
            jCopyright' <- textToCString jCopyright
            return jCopyright'
    gtk_about_dialog_set_copyright _obj' maybeCopyright
    touchManagedPtr _obj
    freeMem maybeCopyright
    return ()

-- method AboutDialog::set_documenters
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "documenters", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "documenters", argType = TCArray True (-1) (-1) (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 "gtk_about_dialog_set_documenters" gtk_about_dialog_set_documenters :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    Ptr CString ->                          -- documenters : TCArray True (-1) (-1) (TBasicType TUTF8)
    IO ()


aboutDialogSetDocumenters ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    [T.Text] ->                             -- documenters
    m ()
aboutDialogSetDocumenters _obj documenters = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    documenters' <- packZeroTerminatedUTF8CArray documenters
    gtk_about_dialog_set_documenters _obj' documenters'
    touchManagedPtr _obj
    mapZeroTerminatedCArray freeMem documenters'
    freeMem documenters'
    return ()

-- method AboutDialog::set_license
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "license", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "license", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_set_license" gtk_about_dialog_set_license :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    CString ->                              -- license : TBasicType TUTF8
    IO ()


aboutDialogSetLicense ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    Maybe (T.Text) ->                       -- license
    m ()
aboutDialogSetLicense _obj license = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeLicense <- case license of
        Nothing -> return nullPtr
        Just jLicense -> do
            jLicense' <- textToCString jLicense
            return jLicense'
    gtk_about_dialog_set_license _obj' maybeLicense
    touchManagedPtr _obj
    freeMem maybeLicense
    return ()

-- method AboutDialog::set_license_type
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "license_type", argType = TInterface "Gtk" "License", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "license_type", argType = TInterface "Gtk" "License", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_set_license_type" gtk_about_dialog_set_license_type :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    CUInt ->                                -- license_type : TInterface "Gtk" "License"
    IO ()


aboutDialogSetLicenseType ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    License ->                              -- license_type
    m ()
aboutDialogSetLicenseType _obj license_type = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let license_type' = (fromIntegral . fromEnum) license_type
    gtk_about_dialog_set_license_type _obj' license_type'
    touchManagedPtr _obj
    return ()

-- method AboutDialog::set_logo
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logo", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "logo", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_set_logo" gtk_about_dialog_set_logo :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    Ptr GdkPixbuf.Pixbuf ->                 -- logo : TInterface "GdkPixbuf" "Pixbuf"
    IO ()


aboutDialogSetLogo ::
    (MonadIO m, AboutDialogK a, GdkPixbuf.PixbufK b) =>
    a ->                                    -- _obj
    Maybe (b) ->                            -- logo
    m ()
aboutDialogSetLogo _obj logo = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeLogo <- case logo of
        Nothing -> return nullPtr
        Just jLogo -> do
            let jLogo' = unsafeManagedPtrCastPtr jLogo
            return jLogo'
    gtk_about_dialog_set_logo _obj' maybeLogo
    touchManagedPtr _obj
    whenJust logo touchManagedPtr
    return ()

-- method AboutDialog::set_logo_icon_name
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "icon_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "icon_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_set_logo_icon_name" gtk_about_dialog_set_logo_icon_name :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    CString ->                              -- icon_name : TBasicType TUTF8
    IO ()


aboutDialogSetLogoIconName ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    Maybe (T.Text) ->                       -- icon_name
    m ()
aboutDialogSetLogoIconName _obj icon_name = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeIcon_name <- case icon_name of
        Nothing -> return nullPtr
        Just jIcon_name -> do
            jIcon_name' <- textToCString jIcon_name
            return jIcon_name'
    gtk_about_dialog_set_logo_icon_name _obj' maybeIcon_name
    touchManagedPtr _obj
    freeMem maybeIcon_name
    return ()

-- method AboutDialog::set_program_name
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_set_program_name" gtk_about_dialog_set_program_name :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    CString ->                              -- name : TBasicType TUTF8
    IO ()


aboutDialogSetProgramName ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- name
    m ()
aboutDialogSetProgramName _obj name = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    name' <- textToCString name
    gtk_about_dialog_set_program_name _obj' name'
    touchManagedPtr _obj
    freeMem name'
    return ()

-- method AboutDialog::set_translator_credits
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "translator_credits", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "translator_credits", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_set_translator_credits" gtk_about_dialog_set_translator_credits :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    CString ->                              -- translator_credits : TBasicType TUTF8
    IO ()


aboutDialogSetTranslatorCredits ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    Maybe (T.Text) ->                       -- translator_credits
    m ()
aboutDialogSetTranslatorCredits _obj translator_credits = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeTranslator_credits <- case translator_credits of
        Nothing -> return nullPtr
        Just jTranslator_credits -> do
            jTranslator_credits' <- textToCString jTranslator_credits
            return jTranslator_credits'
    gtk_about_dialog_set_translator_credits _obj' maybeTranslator_credits
    touchManagedPtr _obj
    freeMem maybeTranslator_credits
    return ()

-- method AboutDialog::set_version
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "version", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "version", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_set_version" gtk_about_dialog_set_version :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    CString ->                              -- version : TBasicType TUTF8
    IO ()


aboutDialogSetVersion ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    Maybe (T.Text) ->                       -- version
    m ()
aboutDialogSetVersion _obj version = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeVersion <- case version of
        Nothing -> return nullPtr
        Just jVersion -> do
            jVersion' <- textToCString jVersion
            return jVersion'
    gtk_about_dialog_set_version _obj' maybeVersion
    touchManagedPtr _obj
    freeMem maybeVersion
    return ()

-- method AboutDialog::set_website
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "website", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "website", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_about_dialog_set_website" gtk_about_dialog_set_website :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    CString ->                              -- website : TBasicType TUTF8
    IO ()


aboutDialogSetWebsite ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    Maybe (T.Text) ->                       -- website
    m ()
aboutDialogSetWebsite _obj website = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeWebsite <- case website of
        Nothing -> return nullPtr
        Just jWebsite -> do
            jWebsite' <- textToCString jWebsite
            return jWebsite'
    gtk_about_dialog_set_website _obj' maybeWebsite
    touchManagedPtr _obj
    freeMem maybeWebsite
    return ()

-- method AboutDialog::set_website_label
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "website_label", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "website_label", 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 "gtk_about_dialog_set_website_label" gtk_about_dialog_set_website_label :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    CString ->                              -- website_label : TBasicType TUTF8
    IO ()


aboutDialogSetWebsiteLabel ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- website_label
    m ()
aboutDialogSetWebsiteLabel _obj website_label = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    website_label' <- textToCString website_label
    gtk_about_dialog_set_website_label _obj' website_label'
    touchManagedPtr _obj
    freeMem website_label'
    return ()

-- method AboutDialog::set_wrap_license
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wrap_license", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "AboutDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wrap_license", 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 "gtk_about_dialog_set_wrap_license" gtk_about_dialog_set_wrap_license :: 
    Ptr AboutDialog ->                      -- _obj : TInterface "Gtk" "AboutDialog"
    CInt ->                                 -- wrap_license : TBasicType TBoolean
    IO ()


aboutDialogSetWrapLicense ::
    (MonadIO m, AboutDialogK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- wrap_license
    m ()
aboutDialogSetWrapLicense _obj wrap_license = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let wrap_license' = (fromIntegral . fromEnum) wrap_license
    gtk_about_dialog_set_wrap_license _obj' wrap_license'
    touchManagedPtr _obj
    return ()