    {-# LINE 2 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}
    -- -*-haskell-*-
    -- GIMP Toolkit (GTK) Widget AboutDialog
    --
    -- Author : Duncan Coutts
    --
    -- Created: 1 March 2005
    --
    -- Copyright (C) 2005 Duncan Coutts
    --
    -- 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.
    --
    -- |
    -- Maintainer : gtk2hs-users@lists.sourceforge.net
    -- Stability : provisional
    -- Portability : portable (depends on GHC)
    --
    -- Display information about an application
    --
    -- * Module available since Gtk+ version 2.6
    --
    module Graphics.UI.Gtk.Windows.AboutDialog (
    -- * Detail
    --
    -- | The 'AboutDialog' offers a simple way to display information about a
    -- program like its logo, name, copyright, website and license. It is also
    -- possible to give credits to the authors, documenters, translators and
    -- artists who have worked on the program. An about dialog is typically opened
    -- when the user selects the @About@ option from the @Help@ menu. All parts of
    -- the dialog are optional.
    --
    -- About dialog often contain links and email addresses. 'AboutDialog'
    -- supports this by offering global hooks, which are called when the user
    -- clicks on a link or email address, see 'aboutDialogSetEmailHook' and
    -- 'aboutDialogSetUrlHook'. Email addresses in the authors, documenters and
    -- artists properties are recognized by looking for @\<user\@host>@, URLs are
    -- recognized by looking for @http:\/\/url@, with @url@ extending to the next
    -- space, tab or line break.
    -- Since 2.18 'AboutDialog' provides default website and email hooks that
    -- use 'showURI'.
    --
    -- Note that Gtk+ sets a default title of @_(\"About %s\")@ on the dialog
    -- window (where %s is replaced by the name of the application, but in order to
    -- ensure proper translation of the title, applications should set the title
    -- property explicitly when constructing a 'AboutDialog', as shown in the
    -- following example:
    --
    -- Note that prior to Gtk+ 2.12, the 'aboutDialogProgramName' property was called
    -- 'aboutDialogName'. Both names may be used in Gtk2Hs.

    -- * Class Hierarchy
    -- |
    -- @
    -- | 'GObject'
    -- | +----'Object'
    -- | +----'Widget'
    -- | +----'Container'
    -- | +----'Bin'
    -- | +----'Window'
    -- | +----'Dialog'
    -- | +----AboutDialog
    -- @

    -- * Types
      AboutDialog,
      AboutDialogClass,
      castToAboutDialog, gTypeAboutDialog,
      toAboutDialog,

    -- * Constructors
      aboutDialogNew,

    -- * Methods

    -- * Attributes
      aboutDialogProgramName,
      aboutDialogName,
      aboutDialogVersion,
      aboutDialogCopyright,
      aboutDialogComments,
      aboutDialogLicense,
      aboutDialogWebsite,
      aboutDialogWebsiteLabel,
      aboutDialogAuthors,
      aboutDialogDocumenters,
      aboutDialogArtists,
      aboutDialogTranslatorCredits,
      aboutDialogLogo,
      aboutDialogLogoIconName,

      aboutDialogWrapLicense,

    -- * Deprecated
    {-# LINE 141 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}
      ) where

    import Control.Monad (liftM)
    import Data.Maybe (fromMaybe)

    import System.Glib.FFI
    import System.Glib.UTFString
    import System.Glib.Attributes
    import System.Glib.Properties
    import Graphics.UI.Gtk.Abstract.Object (makeNewObject)
    import Graphics.UI.Gtk.Types
    {-# LINE 152 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}

    {-# LINE 154 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}

    --------------------
    -- Constructors

    -- | Creates a new 'AboutDialog'.
    --
    aboutDialogNew :: IO AboutDialog
    aboutDialogNew :: IO AboutDialog
    aboutDialogNew =
      (ForeignPtr AboutDialog -> AboutDialog, FinalizerPtr AboutDialog)
    -> IO (Ptr AboutDialog) -> IO AboutDialog
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewObject (ForeignPtr AboutDialog -> AboutDialog, FinalizerPtr AboutDialog)
    forall {a}. (ForeignPtr AboutDialog -> AboutDialog, FinalizerPtr a)
    mkAboutDialog (IO (Ptr AboutDialog) -> IO AboutDialog)
    -> IO (Ptr AboutDialog) -> IO AboutDialog
    forall a b. (a -> b) -> a -> b
    $
      (Ptr Widget -> Ptr AboutDialog)
    -> IO (Ptr Widget) -> IO (Ptr AboutDialog)
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Ptr Widget -> Ptr AboutDialog
    forall a b. Ptr a -> Ptr b
    castPtr :: Ptr Widget -> Ptr AboutDialog) (IO (Ptr Widget) -> IO (Ptr AboutDialog))
    -> IO (Ptr Widget) -> IO (Ptr AboutDialog)
    forall a b. (a -> b) -> a -> b
    $
      IO (Ptr Widget)
    gtk_about_dialog_new
    {-# LINE 166 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}

    --------------------
    -- Methods
    {-# LINE 311 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}
    -- | Sets the strings which are displayed in the authors tab of the secondary
    -- credits dialog.
    --
    aboutDialogSetAuthors :: (AboutDialogClass self, GlibString string) => self
     -> [string] -- ^ @authors@ - a list of author names
     -> IO ()
    aboutDialogSetAuthors :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    self -> [string] -> IO ()
    aboutDialogSetAuthors self
    self [string]
    authors =
      [string] -> (Ptr CString -> IO ()) -> IO ()
    forall s a. GlibString s => [s] -> (Ptr CString -> IO a) -> IO a
    withUTFStringArray0 [string]
    authors ((Ptr CString -> IO ()) -> IO ())
    -> (Ptr CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr CString
    authorsPtr ->
      (\(AboutDialog ForeignPtr AboutDialog
    arg1) Ptr CString
    arg2 -> ForeignPtr AboutDialog -> (Ptr AboutDialog -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr AboutDialog
    arg1 ((Ptr AboutDialog -> IO ()) -> IO ())
    -> (Ptr AboutDialog -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr AboutDialog
    argPtr1 ->Ptr AboutDialog -> Ptr CString -> IO ()
    gtk_about_dialog_set_authors Ptr AboutDialog
    argPtr1 Ptr CString
    arg2)
    {-# LINE 320 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}
        (toAboutDialog self)
        Ptr CString
    authorsPtr

    -- | Returns the string which are displayed in the authors tab of the
    -- secondary credits dialog.
    --
    aboutDialogGetAuthors :: (AboutDialogClass self, GlibString string) => self -> IO [string]
    aboutDialogGetAuthors :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    self -> IO [string]
    aboutDialogGetAuthors self
    self =
      (\(AboutDialog ForeignPtr AboutDialog
    arg1) -> ForeignPtr AboutDialog
    -> (Ptr AboutDialog -> IO (Ptr CString)) -> IO (Ptr CString)
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr AboutDialog
    arg1 ((Ptr AboutDialog -> IO (Ptr CString)) -> IO (Ptr CString))
    -> (Ptr AboutDialog -> IO (Ptr CString)) -> IO (Ptr CString)
    forall a b. (a -> b) -> a -> b
    $ \Ptr AboutDialog
    argPtr1 ->Ptr AboutDialog -> IO (Ptr CString)
    gtk_about_dialog_get_authors Ptr AboutDialog
    argPtr1)
    {-# LINE 329 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}
        (toAboutDialog self)
      IO (Ptr CString) -> (Ptr CString -> IO [string]) -> IO [string]
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= Ptr CString -> IO [string]
    forall s. GlibString s => Ptr CString -> IO [s]
    peekUTFStringArray0

    -- | Sets the strings which are displayed in the artists tab of the secondary
    -- credits dialog.
    --
    aboutDialogSetArtists :: (AboutDialogClass self, GlibString string) => self
     -> [string] -- ^ @artists@ - a list of artist names
     -> IO ()
    aboutDialogSetArtists :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    self -> [string] -> IO ()
    aboutDialogSetArtists self
    self [string]
    artists =
      [string] -> (Ptr CString -> IO ()) -> IO ()
    forall s a. GlibString s => [s] -> (Ptr CString -> IO a) -> IO a
    withUTFStringArray0 [string]
    artists ((Ptr CString -> IO ()) -> IO ())
    -> (Ptr CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr CString
    artistsPtr ->
      (\(AboutDialog ForeignPtr AboutDialog
    arg1) Ptr CString
    arg2 -> ForeignPtr AboutDialog -> (Ptr AboutDialog -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr AboutDialog
    arg1 ((Ptr AboutDialog -> IO ()) -> IO ())
    -> (Ptr AboutDialog -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr AboutDialog
    argPtr1 ->Ptr AboutDialog -> Ptr CString -> IO ()
    gtk_about_dialog_set_artists Ptr AboutDialog
    argPtr1 Ptr CString
    arg2)
    {-# LINE 341 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}
        (toAboutDialog self)
        Ptr CString
    artistsPtr

    -- | Returns the string which are displayed in the artists tab of the
    -- secondary credits dialog.
    --
    aboutDialogGetArtists :: (AboutDialogClass self, GlibString string) => self -> IO [string]
    aboutDialogGetArtists :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    self -> IO [string]
    aboutDialogGetArtists self
    self =
      (\(AboutDialog ForeignPtr AboutDialog
    arg1) -> ForeignPtr AboutDialog
    -> (Ptr AboutDialog -> IO (Ptr CString)) -> IO (Ptr CString)
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr AboutDialog
    arg1 ((Ptr AboutDialog -> IO (Ptr CString)) -> IO (Ptr CString))
    -> (Ptr AboutDialog -> IO (Ptr CString)) -> IO (Ptr CString)
    forall a b. (a -> b) -> a -> b
    $ \Ptr AboutDialog
    argPtr1 ->Ptr AboutDialog -> IO (Ptr CString)
    gtk_about_dialog_get_artists Ptr AboutDialog
    argPtr1)
    {-# LINE 350 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}
        (toAboutDialog self)
      IO (Ptr CString) -> (Ptr CString -> IO [string]) -> IO [string]
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= Ptr CString -> IO [string]
    forall s. GlibString s => Ptr CString -> IO [s]
    peekUTFStringArray0

    -- | Sets the strings which are displayed in the documenters tab of the
    -- secondary credits dialog.
    --
    aboutDialogSetDocumenters :: (AboutDialogClass self, GlibString string) => self
     -> [string] -- ^ @artists@ - a list of documenter names
     -> IO ()
    aboutDialogSetDocumenters :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    self -> [string] -> IO ()
    aboutDialogSetDocumenters self
    self [string]
    documenters =
      [string] -> (Ptr CString -> IO ()) -> IO ()
    forall s a. GlibString s => [s] -> (Ptr CString -> IO a) -> IO a
    withUTFStringArray0 [string]
    documenters ((Ptr CString -> IO ()) -> IO ())
    -> (Ptr CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr CString
    documentersPtr ->
      (\(AboutDialog ForeignPtr AboutDialog
    arg1) Ptr CString
    arg2 -> ForeignPtr AboutDialog -> (Ptr AboutDialog -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr AboutDialog
    arg1 ((Ptr AboutDialog -> IO ()) -> IO ())
    -> (Ptr AboutDialog -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr AboutDialog
    argPtr1 ->Ptr AboutDialog -> Ptr CString -> IO ()
    gtk_about_dialog_set_documenters Ptr AboutDialog
    argPtr1 Ptr CString
    arg2)
    {-# LINE 362 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}
        (toAboutDialog self)
        Ptr CString
    documentersPtr

    -- | Returns the string which are displayed in the documenters tab of the
    -- secondary credits dialog.
    --
    aboutDialogGetDocumenters :: (AboutDialogClass self, GlibString string) => self -> IO [string]
    aboutDialogGetDocumenters :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    self -> IO [string]
    aboutDialogGetDocumenters self
    self =
      (\(AboutDialog ForeignPtr AboutDialog
    arg1) -> ForeignPtr AboutDialog
    -> (Ptr AboutDialog -> IO (Ptr CString)) -> IO (Ptr CString)
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr AboutDialog
    arg1 ((Ptr AboutDialog -> IO (Ptr CString)) -> IO (Ptr CString))
    -> (Ptr AboutDialog -> IO (Ptr CString)) -> IO (Ptr CString)
    forall a b. (a -> b) -> a -> b
    $ \Ptr AboutDialog
    argPtr1 ->Ptr AboutDialog -> IO (Ptr CString)
    gtk_about_dialog_get_documenters Ptr AboutDialog
    argPtr1)
    {-# LINE 371 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}
        (toAboutDialog self)
      IO (Ptr CString) -> (Ptr CString -> IO [string]) -> IO [string]
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= Ptr CString -> IO [string]
    forall s. GlibString s => Ptr CString -> IO [s]
    peekUTFStringArray0
    {-# LINE 398 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}
    -- | Returns the pixbuf displayed as logo in the about dialog.
    --
    aboutDialogGetLogo :: AboutDialogClass self => self -> IO Pixbuf
    aboutDialogGetLogo :: forall self. AboutDialogClass self => self -> IO Pixbuf
    aboutDialogGetLogo self
    self =
      (ForeignPtr Pixbuf -> Pixbuf, FinalizerPtr Pixbuf)
    -> IO (Ptr Pixbuf) -> IO Pixbuf
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr Pixbuf -> Pixbuf, FinalizerPtr Pixbuf)
    forall {a}. (ForeignPtr Pixbuf -> Pixbuf, FinalizerPtr a)
    mkPixbuf (IO (Ptr Pixbuf) -> IO Pixbuf) -> IO (Ptr Pixbuf) -> IO Pixbuf
    forall a b. (a -> b) -> a -> b
    $
      (\(AboutDialog ForeignPtr AboutDialog
    arg1) -> ForeignPtr AboutDialog
    -> (Ptr AboutDialog -> IO (Ptr Pixbuf)) -> IO (Ptr Pixbuf)
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr AboutDialog
    arg1 ((Ptr AboutDialog -> IO (Ptr Pixbuf)) -> IO (Ptr Pixbuf))
    -> (Ptr AboutDialog -> IO (Ptr Pixbuf)) -> IO (Ptr Pixbuf)
    forall a b. (a -> b) -> a -> b
    $ \Ptr AboutDialog
    argPtr1 ->Ptr AboutDialog -> IO (Ptr Pixbuf)
    gtk_about_dialog_get_logo Ptr AboutDialog
    argPtr1)
    {-# LINE 404 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}
        (toAboutDialog self)

    -- | Sets the pixbuf to be displayed as logo in the about dialog. If it is
    -- @Nothing@, the default window icon set with 'windowSetDefaultIcon' will be
    -- used.
    --
    aboutDialogSetLogo :: AboutDialogClass self => self
     -> Maybe Pixbuf -- ^ @logo@ - a 'Pixbuf', or @Nothing@
     -> IO ()
    aboutDialogSetLogo :: forall self. AboutDialogClass self => self -> Maybe Pixbuf -> IO ()
    aboutDialogSetLogo self
    self Maybe Pixbuf
    logo =
      (\(AboutDialog ForeignPtr AboutDialog
    arg1) (Pixbuf ForeignPtr Pixbuf
    arg2) -> ForeignPtr AboutDialog -> (Ptr AboutDialog -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr AboutDialog
    arg1 ((Ptr AboutDialog -> IO ()) -> IO ())
    -> (Ptr AboutDialog -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr AboutDialog
    argPtr1 ->ForeignPtr Pixbuf -> (Ptr Pixbuf -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr Pixbuf
    arg2 ((Ptr Pixbuf -> IO ()) -> IO ()) -> (Ptr Pixbuf -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr Pixbuf
    argPtr2 ->Ptr AboutDialog -> Ptr Pixbuf -> IO ()
    gtk_about_dialog_set_logo Ptr AboutDialog
    argPtr1 Ptr Pixbuf
    argPtr2)
    {-# LINE 415 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}
        (toAboutDialog self)
        (Pixbuf -> Maybe Pixbuf -> Pixbuf
    forall a. a -> Maybe a -> a
    fromMaybe (ForeignPtr Pixbuf -> Pixbuf
    Pixbuf ForeignPtr Pixbuf
    forall a. ForeignPtr a
    nullForeignPtr) Maybe Pixbuf
    logo)

    -- | Returns the icon name displayed as logo in the about dialog.
    --
    aboutDialogGetLogoIconName :: (AboutDialogClass self, GlibString string) => self -> IO string
    aboutDialogGetLogoIconName :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    self -> IO string
    aboutDialogGetLogoIconName self
    self =
      (\(AboutDialog ForeignPtr AboutDialog
    arg1) -> ForeignPtr AboutDialog
    -> (Ptr AboutDialog -> IO CString) -> IO CString
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr AboutDialog
    arg1 ((Ptr AboutDialog -> IO CString) -> IO CString)
    -> (Ptr AboutDialog -> IO CString) -> IO CString
    forall a b. (a -> b) -> a -> b
    $ \Ptr AboutDialog
    argPtr1 ->Ptr AboutDialog -> IO CString
    gtk_about_dialog_get_logo_icon_name Ptr AboutDialog
    argPtr1)
    {-# LINE 423 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}
        (toAboutDialog self)
      IO CString -> (CString -> IO string) -> IO string
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= CString -> IO string
    forall s. GlibString s => CString -> IO s
    peekUTFString

    -- | Sets the pixbuf to be displayed as logo in the about dialog. If it is
    -- @Nothing@, the default window icon set with 'windowSetDefaultIcon' will be
    -- used.
    --
    aboutDialogSetLogoIconName :: (AboutDialogClass self, GlibString string) => self
     -> Maybe string -- ^ @iconName@ - an icon name, or @Nothing@
     -> IO ()
    aboutDialogSetLogoIconName :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    self -> Maybe string -> IO ()
    aboutDialogSetLogoIconName self
    self Maybe string
    iconName =
      (string -> (CString -> IO ()) -> IO ())
    -> Maybe string -> (CString -> IO ()) -> IO ()
    forall a b c.
    (a -> (Ptr b -> IO c) -> IO c)
    -> Maybe a -> (Ptr b -> IO c) -> IO c
    maybeWith string -> (CString -> IO ()) -> IO ()
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString Maybe string
    iconName ((CString -> IO ()) -> IO ()) -> (CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \CString
    iconNamePtr ->
      (\(AboutDialog ForeignPtr AboutDialog
    arg1) CString
    arg2 -> ForeignPtr AboutDialog -> (Ptr AboutDialog -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr AboutDialog
    arg1 ((Ptr AboutDialog -> IO ()) -> IO ())
    -> (Ptr AboutDialog -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr AboutDialog
    argPtr1 ->Ptr AboutDialog -> CString -> IO ()
    gtk_about_dialog_set_logo_icon_name Ptr AboutDialog
    argPtr1 CString
    arg2)
    {-# LINE 436 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}
        (toAboutDialog self)
        CString
    iconNamePtr
    {-# LINE 511 "./Graphics/UI/Gtk/Windows/AboutDialog.chs" #-}
    --------------------
    -- Attributes

    -- | The name of the program. If this is not set, it defaults to
    -- 'gGetApplicationName'.
    --
    aboutDialogName :: (AboutDialogClass self, GlibString string) => Attr self string
    aboutDialogName :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    Attr self string
    aboutDialogName = String -> Attr self string
    forall gobj string.
    (GObjectClass gobj, GlibString string) =>
    String -> Attr gobj string
    newAttrFromStringProperty String
    "name"

    -- | The name of the program. If this is not set, it defaults to
    -- 'gGetApplicationName'.
    --

    aboutDialogProgramName :: (AboutDialogClass self, GlibString string) => Attr self string
    aboutDialogProgramName :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    Attr self string
    aboutDialogProgramName = String -> Attr self string
    forall gobj string.
    (GObjectClass gobj, GlibString string) =>
    String -> Attr gobj string
    newAttrFromStringProperty String
    "program-name"

    -- | The version of the program.
    --
    aboutDialogVersion :: (AboutDialogClass self, GlibString string) => Attr self string
    aboutDialogVersion :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    Attr self string
    aboutDialogVersion = String -> Attr self string
    forall gobj string.
    (GObjectClass gobj, GlibString string) =>
    String -> Attr gobj string
    newAttrFromStringProperty String
    "version"

    -- | Copyright information for the program.
    --
    aboutDialogCopyright :: (AboutDialogClass self, GlibString string) => Attr self string
    aboutDialogCopyright :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    Attr self string
    aboutDialogCopyright = String -> Attr self string
    forall gobj string.
    (GObjectClass gobj, GlibString string) =>
    String -> Attr gobj string
    newAttrFromStringProperty String
    "copyright"

    -- | Comments about the program. This string is displayed in a label in the
    -- main dialog, thus it should be a short explanation of the main purpose of
    -- the program, not a detailed list of features.
    --
    aboutDialogComments :: (AboutDialogClass self, GlibString string) => Attr self string
    aboutDialogComments :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    Attr self string
    aboutDialogComments = String -> Attr self string
    forall gobj string.
    (GObjectClass gobj, GlibString string) =>
    String -> Attr gobj string
    newAttrFromStringProperty String
    "comments"

    -- | The license of the program. This string is displayed in a text view in a
    -- secondary dialog, therefore it is fine to use a long multi-paragraph text.
    -- Note that the text is only wrapped in the text view if the 'aboutDialogWrapLicense'
    -- property is set to @True@; otherwise the text itself must contain the
    -- intended linebreaks.
    --
    -- Default value: @Nothing@
    --
    aboutDialogLicense :: (AboutDialogClass self, GlibString string) => Attr self (Maybe string)
    aboutDialogLicense :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    Attr self (Maybe string)
    aboutDialogLicense = String -> Attr self (Maybe string)
    forall gobj string.
    (GObjectClass gobj, GlibString string) =>
    String -> Attr gobj (Maybe string)
    newAttrFromMaybeStringProperty String
    "license"

    -- | The URL for the link to the website of the program. This should be a
    -- string starting with \"http:\/\/.
    --
    aboutDialogWebsite :: (AboutDialogClass self, GlibString string) => Attr self string
    aboutDialogWebsite :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    Attr self string
    aboutDialogWebsite = String -> Attr self string
    forall gobj string.
    (GObjectClass gobj, GlibString string) =>
    String -> Attr gobj string
    newAttrFromStringProperty String
    "website"

    -- | The label for the link to the website of the program. If this is not set,
    -- it defaults to the URL specified in the website property.
    --
    aboutDialogWebsiteLabel :: (AboutDialogClass self, GlibString string) => Attr self string
    aboutDialogWebsiteLabel :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    Attr self string
    aboutDialogWebsiteLabel = String -> Attr self string
    forall gobj string.
    (GObjectClass gobj, GlibString string) =>
    String -> Attr gobj string
    newAttrFromStringProperty String
    "website-label"

    -- | The authors of the program. Each string may
    -- contain email addresses and URLs, which will be displayed as links, see the
    -- introduction for more details.
    --
    aboutDialogAuthors :: (AboutDialogClass self, GlibString string) => Attr self [string]
    aboutDialogAuthors :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    Attr self [string]
    aboutDialogAuthors = (self -> IO [string])
    -> (self -> [string] -> IO ())
    -> ReadWriteAttr self [string] [string]
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO [string]
    forall self string.
    (AboutDialogClass self, GlibString string) =>
    self -> IO [string]
    aboutDialogGetAuthors
      self -> [string] -> IO ()
    forall self string.
    (AboutDialogClass self, GlibString string) =>
    self -> [string] -> IO ()
    aboutDialogSetAuthors

    -- | The people documenting the program.
    -- Each string may contain email addresses and URLs, which will be displayed as
    -- links, see the introduction for more details.
    --
    aboutDialogDocumenters :: (AboutDialogClass self, GlibString string) => Attr self [string]
    aboutDialogDocumenters :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    Attr self [string]
    aboutDialogDocumenters = (self -> IO [string])
    -> (self -> [string] -> IO ())
    -> ReadWriteAttr self [string] [string]
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO [string]
    forall self string.
    (AboutDialogClass self, GlibString string) =>
    self -> IO [string]
    aboutDialogGetDocumenters
      self -> [string] -> IO ()
    forall self string.
    (AboutDialogClass self, GlibString string) =>
    self -> [string] -> IO ()
    aboutDialogSetDocumenters

    -- | The people who contributed artwork to the program.
    -- Each string may contain email addresses and URLs, which will be
    -- displayed as links, see the introduction for more details.
    --
    aboutDialogArtists :: (AboutDialogClass self, GlibString string) => Attr self [string]
    aboutDialogArtists :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    Attr self [string]
    aboutDialogArtists = (self -> IO [string])
    -> (self -> [string] -> IO ())
    -> ReadWriteAttr self [string] [string]
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO [string]
    forall self string.
    (AboutDialogClass self, GlibString string) =>
    self -> IO [string]
    aboutDialogGetArtists
      self -> [string] -> IO ()
    forall self string.
    (AboutDialogClass self, GlibString string) =>
    self -> [string] -> IO ()
    aboutDialogSetArtists

    -- | Credits to the translators. This string should be marked as translatable.
    -- The string may contain email addresses and URLs, which will be displayed as
    -- links, see the introduction for more details.
    --
    aboutDialogTranslatorCredits :: (AboutDialogClass self, GlibString string) => Attr self string
    aboutDialogTranslatorCredits :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    Attr self string
    aboutDialogTranslatorCredits = String -> Attr self string
    forall gobj string.
    (GObjectClass gobj, GlibString string) =>
    String -> Attr gobj string
    newAttrFromStringProperty String
    "translator-credits"

    -- | A logo for the about box. If this is not set, it defaults to
    -- 'windowGetDefaultIconList'.
    --
    aboutDialogLogo :: AboutDialogClass self => ReadWriteAttr self Pixbuf (Maybe Pixbuf)
    aboutDialogLogo :: forall self.
    AboutDialogClass self =>
    ReadWriteAttr self Pixbuf (Maybe Pixbuf)
    aboutDialogLogo = (self -> IO Pixbuf)
    -> (self -> Maybe Pixbuf -> IO ())
    -> ReadWriteAttr self Pixbuf (Maybe Pixbuf)
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO Pixbuf
    forall self. AboutDialogClass self => self -> IO Pixbuf
    aboutDialogGetLogo
      self -> Maybe Pixbuf -> IO ()
    forall self. AboutDialogClass self => self -> Maybe Pixbuf -> IO ()
    aboutDialogSetLogo

    -- | A named icon to use as the logo for the about box. This property
    -- overrides the logo property.
    --
    -- Default value: @Nothing@
    --
    aboutDialogLogoIconName :: (AboutDialogClass self, GlibString string) => ReadWriteAttr self string (Maybe string)
    aboutDialogLogoIconName :: forall self string.
    (AboutDialogClass self, GlibString string) =>
    ReadWriteAttr self string (Maybe string)
    aboutDialogLogoIconName = (self -> IO string)
    -> (self -> Maybe string -> IO ())
    -> ReadWriteAttr self string (Maybe string)
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO string
    forall self string.
    (AboutDialogClass self, GlibString string) =>
    self -> IO string
    aboutDialogGetLogoIconName
      self -> Maybe string -> IO ()
    forall self string.
    (AboutDialogClass self, GlibString string) =>
    self -> Maybe string -> IO ()
    aboutDialogSetLogoIconName

    -- | Whether to wrap the text in the license dialog.
    --
    -- Default value: @False@
    --
    aboutDialogWrapLicense :: AboutDialogClass self => Attr self Bool
    aboutDialogWrapLicense :: forall self. AboutDialogClass self => Attr self Bool
    aboutDialogWrapLicense = String -> Attr self Bool
    forall gobj. GObjectClass gobj => String -> Attr gobj Bool
    newAttrFromBoolProperty String
    "wrap-license"

    foreign import ccall safe "gtk_about_dialog_new"
      gtk_about_dialog_new :: (IO (Ptr Widget))

    foreign import ccall safe "gtk_about_dialog_set_authors"
      gtk_about_dialog_set_authors :: ((Ptr AboutDialog) -> ((Ptr (Ptr CChar)) -> (IO ())))

    foreign import ccall safe "gtk_about_dialog_get_authors"
      gtk_about_dialog_get_authors :: ((Ptr AboutDialog) -> (IO (Ptr (Ptr CChar))))

    foreign import ccall safe "gtk_about_dialog_set_artists"
      gtk_about_dialog_set_artists :: ((Ptr AboutDialog) -> ((Ptr (Ptr CChar)) -> (IO ())))

    foreign import ccall safe "gtk_about_dialog_get_artists"
      gtk_about_dialog_get_artists :: ((Ptr AboutDialog) -> (IO (Ptr (Ptr CChar))))

    foreign import ccall safe "gtk_about_dialog_set_documenters"
      gtk_about_dialog_set_documenters :: ((Ptr AboutDialog) -> ((Ptr (Ptr CChar)) -> (IO ())))

    foreign import ccall safe "gtk_about_dialog_get_documenters"
      gtk_about_dialog_get_documenters :: ((Ptr AboutDialog) -> (IO (Ptr (Ptr CChar))))

    foreign import ccall safe "gtk_about_dialog_get_logo"
      gtk_about_dialog_get_logo :: ((Ptr AboutDialog) -> (IO (Ptr Pixbuf)))

    foreign import ccall safe "gtk_about_dialog_set_logo"
      gtk_about_dialog_set_logo :: ((Ptr AboutDialog) -> ((Ptr Pixbuf) -> (IO ())))

    foreign import ccall safe "gtk_about_dialog_get_logo_icon_name"
      gtk_about_dialog_get_logo_icon_name :: ((Ptr AboutDialog) -> (IO (Ptr CChar)))

    foreign import ccall safe "gtk_about_dialog_set_logo_icon_name"
      gtk_about_dialog_set_logo_icon_name :: ((Ptr AboutDialog) -> ((Ptr CChar) -> (IO ())))