{-# LINE 2 "./Graphics/UI/Gtk/Recent/RecentManager.chs" #-}
module Graphics.UI.Gtk.Recent.RecentManager (
RecentManager,
RecentManagerClass,
castToRecentManager,
toRecentManager,
recentManagerNew,
recentManagerGetDefault,
recentManagerAddItem,
recentManagerRemoveItem,
recentManagerLookupItem,
recentManagerHasItem,
recentManagerMoveItem,
recentManagerGetItems,
recentManagerPurgeItems,
recentManagerFilename,
recentManagerLimit,
recentManagerSize,
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" #-}
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" #-}
recentManagerGetDefault :: IO 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" #-}
recentManagerAddItem :: (RecentManagerClass self, GlibString string) => self
-> string
-> IO Bool
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
recentManagerRemoveItem :: (RecentManagerClass self, GlibString string) => self
-> string
-> IO Bool
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)
recentManagerLookupItem :: (RecentManagerClass self, GlibString string) => self
-> string
-> IO RecentInfo
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
Ptr RecentInfo
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
Ptr RecentInfo -> IO RecentInfo
mkRecentInfo Ptr RecentInfo
result
recentManagerHasItem :: (RecentManagerClass self, GlibString string) => self
-> string
-> IO Bool
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
recentManagerMoveItem :: (RecentManagerClass self, GlibString string) => self
-> string
-> string
-> IO Bool
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)
recentManagerGetItems :: RecentManagerClass self => self
-> IO [RecentInfo]
recentManagerGetItems :: forall self. RecentManagerClass self => self -> IO [RecentInfo]
recentManagerGetItems self
self = do
Ptr ()
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)
[Ptr RecentInfo]
list <- Ptr () -> IO [Ptr RecentInfo]
forall a. Ptr () -> IO [Ptr a]
fromGList Ptr ()
glist
(Ptr RecentInfo -> IO RecentInfo)
-> [Ptr RecentInfo] -> IO [RecentInfo]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> [a] -> m [b]
mapM Ptr RecentInfo -> IO RecentInfo
mkRecentInfo [Ptr RecentInfo]
list
recentManagerPurgeItems :: RecentManagerClass self => self
-> IO Int
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
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"
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"
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"
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)))