    {-# LINE 2 "./Graphics/UI/Gtk/Recent/RecentManager.chs" #-}
    -- -*-haskell-*-
    -- GIMP Toolkit (GTK) Widget RecentManager
    --
    -- Author : Andy Stewart
    --
    -- Created: 27 Mar 2010
    --
    -- Copyright (C) 2010 Andy Stewart
    --
    -- 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)
    --
    -- Managing Recently Used Files
    --
    -- * Module available since Gtk+ version 2.10
    --
    -- TODO:
    -- GtkRecentData
    -- gtk_recent_manager_add_full
    --
    module Graphics.UI.Gtk.Recent.RecentManager (

    -- * Detail
    --
    -- | 'RecentManager' provides a facility for adding, removing and looking up
    -- recently used files. Each recently used file is identified by its URI, and
    -- has meta-data associated to it, like the names and command lines of the
    -- applications that have registered it, the number of time each application
    -- has registered the same file, the mime type of the file and whether the file
    -- should be displayed only by the applications that have registered it.
    --
    -- The 'RecentManager' acts like a database of all the recently used files.
    -- You can create new 'RecentManager' objects, but it is more efficient to use
    -- the standard recent manager for the 'Screen' so that information about the
    -- recently used files is shared with other people using them. In case the
    -- default screen is being used, adding a new recently used file is as simple
    -- as:
    --
    -- Recently used files are supported since Gtk+ 2.10.

    -- * Class Hierarchy
    --
    -- |
    -- @
    -- | 'GObject'
    -- | +----RecentManager
    -- @

    -- * Types
      RecentManager,
      RecentManagerClass,
      castToRecentManager,
      toRecentManager,

    -- * Constructors
      recentManagerNew,

    -- * Methods
      recentManagerGetDefault,
      recentManagerAddItem,
      recentManagerRemoveItem,
      recentManagerLookupItem,
      recentManagerHasItem,
      recentManagerMoveItem,
      recentManagerGetItems,
      recentManagerPurgeItems,

    -- * Attributes
      recentManagerFilename,
      recentManagerLimit,
      recentManagerSize,

    -- * Signals
      recentManagerChanged,

      ) where

    import Control.Monad (liftM)

    import System.Glib.FFI
    import System.Glib.Attributes
    import System.Glib.Properties
    import System.Glib.GList
    import System.Glib.UTFString
    import System.Glib.GError (propagateGError, checkGError)
    import Graphics.UI.Gtk.Recent.RecentInfo (RecentInfo, mkRecentInfo)
    import Graphics.UI.Gtk.Types
    {-# LINE 104 "./Graphics/UI/Gtk/Recent/RecentManager.chs" #-}
    import Graphics.UI.Gtk.Signals
    {-# LINE 105 "./Graphics/UI/Gtk/Recent/RecentManager.chs" #-}

    {-# LINE 107 "./Graphics/UI/Gtk/Recent/RecentManager.chs" #-}

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

    -- | Creates a new recent manager object. Recent manager objects are used to
    -- handle the list of recently used resources. A 'RecentManager' object
    -- monitors the recently used resources list, and emits the \"changed\" signal
    -- each time something inside the list changes.
    --
    -- * Available since Gtk+ version 2.10
    --
    recentManagerNew :: IO RecentManager
    recentManagerNew :: IO RecentManager
    recentManagerNew =
      (ForeignPtr RecentManager -> RecentManager,
     FinalizerPtr RecentManager)
    -> IO (Ptr RecentManager) -> IO RecentManager
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    wrapNewGObject (ForeignPtr RecentManager -> RecentManager,
     FinalizerPtr RecentManager)
    forall {a}.
    (ForeignPtr RecentManager -> RecentManager, FinalizerPtr a)
    mkRecentManager (IO (Ptr RecentManager) -> IO RecentManager)
    -> IO (Ptr RecentManager) -> IO RecentManager
    forall a b. (a -> b) -> a -> b
    $
      IO (Ptr RecentManager)
    gtk_recent_manager_new
    {-# LINE 122 "./Graphics/UI/Gtk/Recent/RecentManager.chs" #-}

    --------------------
    -- Methods

    -- | Gets a unique instance of 'RecentManager'.
    --
    -- * Available since Gtk+ version 2.10
    --
    recentManagerGetDefault :: IO RecentManager -- ^ returns A unique 'RecentManager'.
    recentManagerGetDefault :: IO RecentManager
    recentManagerGetDefault =
      (ForeignPtr RecentManager -> RecentManager,
     FinalizerPtr RecentManager)
    -> IO (Ptr RecentManager) -> IO RecentManager
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr RecentManager -> RecentManager,
     FinalizerPtr RecentManager)
    forall {a}.
    (ForeignPtr RecentManager -> RecentManager, FinalizerPtr a)
    mkRecentManager (IO (Ptr RecentManager) -> IO RecentManager)
    -> IO (Ptr RecentManager) -> IO RecentManager
    forall a b. (a -> b) -> a -> b
    $
      IO (Ptr RecentManager)
    gtk_recent_manager_get_default
    {-# LINE 134 "./Graphics/UI/Gtk/Recent/RecentManager.chs" #-}

    -- | Adds a new resource, pointed by @uri@, into the recently used resources
    -- list.
    --
    -- This function automatically retrieves some of the needed metadata and
    -- setting other metadata to common default values; it then feeds the data to
    -- 'recentManagerAddFull'.
    --
    -- See 'recentManagerAddFull' if you want to explicitly define the metadata
    -- for the resource pointed by @uri@.
    --
    --
    -- * Available since Gtk+ version 2.10
    --
    recentManagerAddItem :: (RecentManagerClass self, GlibString string) => self
     -> string -- ^ @uri@ - a valid URI
     -> IO Bool -- ^ returns @True@ if the new item was successfully added to the
                -- recently used resources list
    recentManagerAddItem :: forall self string.
    (RecentManagerClass self, GlibString string) =>
    self -> string -> IO Bool
    recentManagerAddItem self
    self string
    uri =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      string -> (CString -> IO CInt) -> IO CInt
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    uri ((CString -> IO CInt) -> IO CInt)
    -> (CString -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \CString
    uriPtr ->
      (\(RecentManager ForeignPtr RecentManager
    arg1) CString
    arg2 -> ForeignPtr RecentManager
    -> (Ptr RecentManager -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr RecentManager
    arg1 ((Ptr RecentManager -> IO CInt) -> IO CInt)
    -> (Ptr RecentManager -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr RecentManager
    argPtr1 ->Ptr RecentManager -> CString -> IO CInt
    gtk_recent_manager_add_item Ptr RecentManager
    argPtr1 CString
    arg2)
    {-# LINE 156 "./Graphics/UI/Gtk/Recent/RecentManager.chs" #-}
        (toRecentManager self)
        CString
    uriPtr

    -- | Removes a resource pointed by @uri@ from the recently used resources list
    -- handled by a recent manager.
    --
    --
    -- * Available since Gtk+ version 2.10
    --
    recentManagerRemoveItem :: (RecentManagerClass self, GlibString string) => self
     -> string -- ^ @uri@ - the URI of the item you wish to remove
     -> IO Bool -- ^ returns @True@ if the item pointed by @uri@ has been
                -- successfully removed by the recently used resources list, and
                -- @False@ otherwise.
    recentManagerRemoveItem :: forall self string.
    (RecentManagerClass self, GlibString string) =>
    self -> string -> IO Bool
    recentManagerRemoveItem self
    self string
    uri =
          (Ptr (Ptr ()) -> IO Bool) -> (GError -> IO Bool) -> IO Bool
    forall a. (Ptr (Ptr ()) -> IO a) -> (GError -> IO a) -> IO a
    checkGError (\Ptr (Ptr ())
    errorPtr ->
                           (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
                           string -> (CString -> IO CInt) -> IO CInt
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    uri ((CString -> IO CInt) -> IO CInt)
    -> (CString -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \CString
    uriPtr ->
                           (\(RecentManager ForeignPtr RecentManager
    arg1) CString
    arg2 Ptr (Ptr ())
    arg3 -> ForeignPtr RecentManager
    -> (Ptr RecentManager -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr RecentManager
    arg1 ((Ptr RecentManager -> IO CInt) -> IO CInt)
    -> (Ptr RecentManager -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr RecentManager
    argPtr1 ->Ptr RecentManager -> CString -> Ptr (Ptr ()) -> IO CInt
    gtk_recent_manager_remove_item Ptr RecentManager
    argPtr1 CString
    arg2 Ptr (Ptr ())
    arg3)
    {-# LINE 175 "./Graphics/UI/Gtk/Recent/RecentManager.chs" #-}
                                (self -> RecentManager
    forall o. RecentManagerClass o => o -> RecentManager
    toRecentManager self
    self)
                                CString
    uriPtr
                                Ptr (Ptr ())
    errorPtr)
                      (\GError
    _ -> Bool -> IO Bool
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Bool
    False)

    -- | Searches for a URI inside the recently used resources list, and returns a
    -- structure containing information about the resource like its MIME type, or
    -- its display name.
    --
    --
    -- * Available since Gtk+ version 2.10
    --
    recentManagerLookupItem :: (RecentManagerClass self, GlibString string) => self
     -> string -- ^ @uri@ - a URI
     -> IO RecentInfo -- ^ returns a 'RecentInfo'
                              -- structure containing information about the
                              -- resource pointed by @uri@, or {@NULL@, FIXME: this
                              -- should probably be converted to a Maybe data type}
                              -- if the URI was not registered in the recently used
                              -- resources list.
    recentManagerLookupItem :: forall self string.
    (RecentManagerClass self, GlibString string) =>
    self -> string -> IO RecentInfo
    recentManagerLookupItem self
    self string
    uri =
      (Ptr (Ptr ()) -> IO RecentInfo) -> IO RecentInfo
    forall a. (Ptr (Ptr ()) -> IO a) -> IO a
    propagateGError ((Ptr (Ptr ()) -> IO RecentInfo) -> IO RecentInfo)
    -> (Ptr (Ptr ()) -> IO RecentInfo) -> IO RecentInfo
    forall a b. (a -> b) -> a -> b
    $ \Ptr (Ptr ())
    errorPtr ->
      string -> (CString -> IO RecentInfo) -> IO RecentInfo
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    uri ((CString -> IO RecentInfo) -> IO RecentInfo)
    -> (CString -> IO RecentInfo) -> IO RecentInfo
    forall a b. (a -> b) -> a -> b
    $ \CString
    uriPtr -> do
      result <- (\(RecentManager ForeignPtr RecentManager
    arg1) CString
    arg2 Ptr (Ptr ())
    arg3 -> ForeignPtr RecentManager
    -> (Ptr RecentManager -> IO (Ptr RecentInfo))
    -> IO (Ptr RecentInfo)
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr RecentManager
    arg1 ((Ptr RecentManager -> IO (Ptr RecentInfo)) -> IO (Ptr RecentInfo))
    -> (Ptr RecentManager -> IO (Ptr RecentInfo))
    -> IO (Ptr RecentInfo)
    forall a b. (a -> b) -> a -> b
    $ \Ptr RecentManager
    argPtr1 ->Ptr RecentManager -> CString -> Ptr (Ptr ()) -> IO (Ptr RecentInfo)
    gtk_recent_manager_lookup_item Ptr RecentManager
    argPtr1 CString
    arg2 Ptr (Ptr ())
    arg3)
    {-# LINE 199 "./Graphics/UI/Gtk/Recent/RecentManager.chs" #-}
               (self -> RecentManager
    forall o. RecentManagerClass o => o -> RecentManager
    toRecentManager self
    self)
               CString
    uriPtr
               Ptr (Ptr ())
    errorPtr
      mkRecentInfo result

    -- | Checks whether there is a recently used resource registered with @uri@
    -- inside the recent manager.
    --
    --
    -- * Available since Gtk+ version 2.10
    --
    recentManagerHasItem :: (RecentManagerClass self, GlibString string) => self
     -> string -- ^ @uri@ - a URI
     -> IO Bool -- ^ returns @True@ if the resource was found, @False@ otherwise.
    recentManagerHasItem :: forall self string.
    (RecentManagerClass self, GlibString string) =>
    self -> string -> IO Bool
    recentManagerHasItem self
    self string
    uri =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      string -> (CString -> IO CInt) -> IO CInt
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    uri ((CString -> IO CInt) -> IO CInt)
    -> (CString -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \CString
    uriPtr ->
      (\(RecentManager ForeignPtr RecentManager
    arg1) CString
    arg2 -> ForeignPtr RecentManager
    -> (Ptr RecentManager -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr RecentManager
    arg1 ((Ptr RecentManager -> IO CInt) -> IO CInt)
    -> (Ptr RecentManager -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr RecentManager
    argPtr1 ->Ptr RecentManager -> CString -> IO CInt
    gtk_recent_manager_has_item Ptr RecentManager
    argPtr1 CString
    arg2)
    {-# LINE 217 "./Graphics/UI/Gtk/Recent/RecentManager.chs" #-}
        (toRecentManager self)
        CString
    uriPtr

    -- | Changes the location of a recently used resource from @uri@ to @newUri@.
    --
    -- Please note that this function will not affect the resource pointed by
    -- the URIs, but only the URI used in the recently used resources list.
    --
    --
    -- * Available since Gtk+ version 2.10
    --
    recentManagerMoveItem :: (RecentManagerClass self, GlibString string) => self
     -> string -- ^ @uri@ - the URI of a recently used resource
     -> string -- ^ @newUri@ - the new URI of the recently used resource to remove the item pointed by @uri@ in the list
     -> IO Bool -- ^ returns @True@ on success.
    recentManagerMoveItem :: forall self string.
    (RecentManagerClass self, GlibString string) =>
    self -> string -> string -> IO Bool
    recentManagerMoveItem self
    self string
    uri string
    newUri =
      (Ptr (Ptr ()) -> IO Bool) -> (GError -> IO Bool) -> IO Bool
    forall a. (Ptr (Ptr ()) -> IO a) -> (GError -> IO a) -> IO a
    checkGError ( \Ptr (Ptr ())
    errorPtr ->
                        (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
                        string -> (CString -> IO CInt) -> IO CInt
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    newUri ((CString -> IO CInt) -> IO CInt)
    -> (CString -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \CString
    newUriPtr ->
                        string -> (CString -> IO CInt) -> IO CInt
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    uri ((CString -> IO CInt) -> IO CInt)
    -> (CString -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \CString
    uriPtr ->
                        (\(RecentManager ForeignPtr RecentManager
    arg1) CString
    arg2 CString
    arg3 Ptr (Ptr ())
    arg4 -> ForeignPtr RecentManager
    -> (Ptr RecentManager -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr RecentManager
    arg1 ((Ptr RecentManager -> IO CInt) -> IO CInt)
    -> (Ptr RecentManager -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr RecentManager
    argPtr1 ->Ptr RecentManager -> CString -> CString -> Ptr (Ptr ()) -> IO CInt
    gtk_recent_manager_move_item Ptr RecentManager
    argPtr1 CString
    arg2 CString
    arg3 Ptr (Ptr ())
    arg4)
    {-# LINE 238 "./Graphics/UI/Gtk/Recent/RecentManager.chs" #-}
                             (self -> RecentManager
    forall o. RecentManagerClass o => o -> RecentManager
    toRecentManager self
    self)
                             CString
    uriPtr
                             CString
    newUriPtr
                             Ptr (Ptr ())
    errorPtr)
                  (\GError
    _ -> Bool -> IO Bool
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Bool
    False)

    -- | Gets the list of recently used resources.
    --
    --
    -- * Available since Gtk+ version 2.10
    --
    recentManagerGetItems :: RecentManagerClass self => self
     -> IO [RecentInfo] -- ^ returns a list of newly allocated
                                -- 'RecentInfo' objects.
    recentManagerGetItems :: forall self. RecentManagerClass self => self -> IO [RecentInfo]
    recentManagerGetItems self
    self = do
      glist <- (\(RecentManager ForeignPtr RecentManager
    arg1) -> ForeignPtr RecentManager
    -> (Ptr RecentManager -> IO (Ptr ())) -> IO (Ptr ())
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr RecentManager
    arg1 ((Ptr RecentManager -> IO (Ptr ())) -> IO (Ptr ()))
    -> (Ptr RecentManager -> IO (Ptr ())) -> IO (Ptr ())
    forall a b. (a -> b) -> a -> b
    $ \Ptr RecentManager
    argPtr1 ->Ptr RecentManager -> IO (Ptr ())
    gtk_recent_manager_get_items Ptr RecentManager
    argPtr1)
    {-# LINE 254 "./Graphics/UI/Gtk/Recent/RecentManager.chs" #-}
                (self -> RecentManager
    forall o. RecentManagerClass o => o -> RecentManager
    toRecentManager self
    self)
      list <- fromGList glist
      mapM mkRecentInfo list

    -- | Purges every item from the recently used resources list.
    --
    --
    -- * Available since Gtk+ version 2.10
    --
    recentManagerPurgeItems :: RecentManagerClass self => self
     -> IO Int -- ^ returns the number of items that have been removed from the
               -- recently used resources list.
    recentManagerPurgeItems :: forall self. RecentManagerClass self => self -> IO Int
    recentManagerPurgeItems self
    self =
      (CInt -> Int) -> IO CInt -> IO Int
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
    forall a b. (a -> b) -> a -> b
    $
      (Ptr (Ptr ()) -> IO CInt) -> IO CInt
    forall a. (Ptr (Ptr ()) -> IO a) -> IO a
    propagateGError ((Ptr (Ptr ()) -> IO CInt) -> IO CInt)
    -> (Ptr (Ptr ()) -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr (Ptr ())
    errorPtr ->
      (\(RecentManager ForeignPtr RecentManager
    arg1) Ptr (Ptr ())
    arg2 -> ForeignPtr RecentManager
    -> (Ptr RecentManager -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr RecentManager
    arg1 ((Ptr RecentManager -> IO CInt) -> IO CInt)
    -> (Ptr RecentManager -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr RecentManager
    argPtr1 ->Ptr RecentManager -> Ptr (Ptr ()) -> IO CInt
    gtk_recent_manager_purge_items Ptr RecentManager
    argPtr1 Ptr (Ptr ())
    arg2)
    {-# LINE 270 "./Graphics/UI/Gtk/Recent/RecentManager.chs" #-}
        (toRecentManager self)
        Ptr (Ptr ())
    errorPtr

    --------------------
    -- Attributes

    -- | The full path to the file to be used to store and read the recently used resources list
    --
    -- Default value: 'Nothing'
    --
    -- * Available since Gtk+ version 2.10
    --
    recentManagerFilename :: (RecentManagerClass self, GlibString string) => ReadAttr self string
    recentManagerFilename :: forall self string.
    (RecentManagerClass self, GlibString string) =>
    ReadAttr self string
    recentManagerFilename = String -> ReadAttr self string
    forall gobj string.
    (GObjectClass gobj, GlibString string) =>
    String -> ReadAttr gobj string
    readAttrFromStringProperty String
    "filename"

    -- | The maximum number of items to be returned by the 'recentManagerGetItems' function.
    --
    -- Allowed values: >= 'GMaxulong'
    --
    -- Default value: -1
    --
    --
    -- * Available since Gtk+ version 2.10
    --
    recentManagerLimit :: RecentManagerClass self => Attr self Int
    recentManagerLimit :: forall self. RecentManagerClass self => Attr self Int
    recentManagerLimit = String -> Attr self Int
    forall gobj. GObjectClass gobj => String -> Attr gobj Int
    newAttrFromIntProperty String
    "limit"

    -- | The size of the recently used resources list.
    --
    -- Allowed values: >= 'GMaxulong'
    --
    -- Default value: 0
    --
    --
    -- * Available since Gtk+ version 2.10
    --
    recentManagerSize :: RecentManagerClass self => ReadAttr self Int
    recentManagerSize :: forall self. RecentManagerClass self => ReadAttr self Int
    recentManagerSize = String -> ReadAttr self Int
    forall gobj. GObjectClass gobj => String -> ReadAttr gobj Int
    readAttrFromIntProperty String
    "size"

    --------------------
    -- Signals

    -- | Emitted when the current recently used resources manager changes its
    -- contents.
    --
    --
    -- * Available since Gtk+ version 2.10
    --
    recentManagerChanged :: RecentManagerClass self => Signal self (IO ())
    recentManagerChanged :: forall self. RecentManagerClass self => Signal self (IO ())
    recentManagerChanged = (Bool -> self -> IO () -> IO (ConnectId self))
    -> Signal self (IO ())
    forall object handler.
    (Bool -> object -> handler -> IO (ConnectId object))
    -> Signal object handler
    Signal (String -> Bool -> self -> IO () -> IO (ConnectId self)
    forall obj.
    GObjectClass obj =>
    String -> Bool -> obj -> IO () -> IO (ConnectId obj)
    connect_NONE__NONE String
    "changed")

    foreign import ccall safe "gtk_recent_manager_new"
      gtk_recent_manager_new :: (IO (Ptr RecentManager))

    foreign import ccall safe "gtk_recent_manager_get_default"
      gtk_recent_manager_get_default :: (IO (Ptr RecentManager))

    foreign import ccall safe "gtk_recent_manager_add_item"
      gtk_recent_manager_add_item :: ((Ptr RecentManager) -> ((Ptr CChar) -> (IO CInt)))

    foreign import ccall safe "gtk_recent_manager_remove_item"
      gtk_recent_manager_remove_item :: ((Ptr RecentManager) -> ((Ptr CChar) -> ((Ptr (Ptr ())) -> (IO CInt))))

    foreign import ccall unsafe "gtk_recent_manager_lookup_item"
      gtk_recent_manager_lookup_item :: ((Ptr RecentManager) -> ((Ptr CChar) -> ((Ptr (Ptr ())) -> (IO (Ptr RecentInfo)))))

    foreign import ccall safe "gtk_recent_manager_has_item"
      gtk_recent_manager_has_item :: ((Ptr RecentManager) -> ((Ptr CChar) -> (IO CInt)))

    foreign import ccall safe "gtk_recent_manager_move_item"
      gtk_recent_manager_move_item :: ((Ptr RecentManager) -> ((Ptr CChar) -> ((Ptr CChar) -> ((Ptr (Ptr ())) -> (IO CInt)))))

    foreign import ccall safe "gtk_recent_manager_get_items"
      gtk_recent_manager_get_items :: ((Ptr RecentManager) -> (IO (Ptr ())))

    foreign import ccall safe "gtk_recent_manager_purge_items"
      gtk_recent_manager_purge_items :: ((Ptr RecentManager) -> ((Ptr (Ptr ())) -> (IO CInt)))