{- | 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.RecentManager ( -- * Exported types RecentManager(..) , RecentManagerK , toRecentManager , noRecentManager , -- * Methods -- ** recentManagerAddFull recentManagerAddFull , -- ** recentManagerAddItem recentManagerAddItem , -- ** recentManagerGetDefault recentManagerGetDefault , -- ** recentManagerGetItems recentManagerGetItems , -- ** recentManagerHasItem recentManagerHasItem , -- ** recentManagerLookupItem recentManagerLookupItem , -- ** recentManagerMoveItem recentManagerMoveItem , -- ** recentManagerNew recentManagerNew , -- ** recentManagerPurgeItems recentManagerPurgeItems , -- ** recentManagerRemoveItem recentManagerRemoveItem , -- * Properties -- ** Filename RecentManagerFilenamePropertyInfo , constructRecentManagerFilename , getRecentManagerFilename , -- ** Size RecentManagerSizePropertyInfo , getRecentManagerSize , -- * Signals -- ** Changed RecentManagerChangedCallback , RecentManagerChangedCallbackC , RecentManagerChangedSignalInfo , afterRecentManagerChanged , mkRecentManagerChangedCallback , noRecentManagerChangedCallback , onRecentManagerChanged , recentManagerChangedCallbackWrapper , recentManagerChangedClosure , ) 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.GObject as GObject newtype RecentManager = RecentManager (ForeignPtr RecentManager) foreign import ccall "gtk_recent_manager_get_type" c_gtk_recent_manager_get_type :: IO GType type instance ParentTypes RecentManager = RecentManagerParentTypes type RecentManagerParentTypes = '[GObject.Object] instance GObject RecentManager where gobjectIsInitiallyUnowned _ = False gobjectType _ = c_gtk_recent_manager_get_type class GObject o => RecentManagerK o instance (GObject o, IsDescendantOf RecentManager o) => RecentManagerK o toRecentManager :: RecentManagerK o => o -> IO RecentManager toRecentManager = unsafeCastTo RecentManager noRecentManager :: Maybe RecentManager noRecentManager = Nothing -- signal RecentManager::changed type RecentManagerChangedCallback = IO () noRecentManagerChangedCallback :: Maybe RecentManagerChangedCallback noRecentManagerChangedCallback = Nothing type RecentManagerChangedCallbackC = Ptr () -> -- object Ptr () -> -- user_data IO () foreign import ccall "wrapper" mkRecentManagerChangedCallback :: RecentManagerChangedCallbackC -> IO (FunPtr RecentManagerChangedCallbackC) recentManagerChangedClosure :: RecentManagerChangedCallback -> IO Closure recentManagerChangedClosure cb = newCClosure =<< mkRecentManagerChangedCallback wrapped where wrapped = recentManagerChangedCallbackWrapper cb recentManagerChangedCallbackWrapper :: RecentManagerChangedCallback -> Ptr () -> Ptr () -> IO () recentManagerChangedCallbackWrapper _cb _ _ = do _cb onRecentManagerChanged :: (GObject a, MonadIO m) => a -> RecentManagerChangedCallback -> m SignalHandlerId onRecentManagerChanged obj cb = liftIO $ connectRecentManagerChanged obj cb SignalConnectBefore afterRecentManagerChanged :: (GObject a, MonadIO m) => a -> RecentManagerChangedCallback -> m SignalHandlerId afterRecentManagerChanged obj cb = connectRecentManagerChanged obj cb SignalConnectAfter connectRecentManagerChanged :: (GObject a, MonadIO m) => a -> RecentManagerChangedCallback -> SignalConnectMode -> m SignalHandlerId connectRecentManagerChanged obj cb after = liftIO $ do cb' <- mkRecentManagerChangedCallback (recentManagerChangedCallbackWrapper cb) connectSignalFunPtr obj "changed" cb' after -- VVV Prop "filename" -- Type: TBasicType TUTF8 -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly] getRecentManagerFilename :: (MonadIO m, RecentManagerK o) => o -> m T.Text getRecentManagerFilename obj = liftIO $ getObjectPropertyString obj "filename" constructRecentManagerFilename :: T.Text -> IO ([Char], GValue) constructRecentManagerFilename val = constructObjectPropertyString "filename" val data RecentManagerFilenamePropertyInfo instance AttrInfo RecentManagerFilenamePropertyInfo where type AttrAllowedOps RecentManagerFilenamePropertyInfo = '[ 'AttrConstruct, 'AttrGet] type AttrSetTypeConstraint RecentManagerFilenamePropertyInfo = (~) T.Text type AttrBaseTypeConstraint RecentManagerFilenamePropertyInfo = RecentManagerK type AttrGetType RecentManagerFilenamePropertyInfo = T.Text type AttrLabel RecentManagerFilenamePropertyInfo = "RecentManager::filename" attrGet _ = getRecentManagerFilename attrSet _ = undefined attrConstruct _ = constructRecentManagerFilename -- VVV Prop "size" -- Type: TBasicType TInt32 -- Flags: [PropertyReadable] getRecentManagerSize :: (MonadIO m, RecentManagerK o) => o -> m Int32 getRecentManagerSize obj = liftIO $ getObjectPropertyCInt obj "size" data RecentManagerSizePropertyInfo instance AttrInfo RecentManagerSizePropertyInfo where type AttrAllowedOps RecentManagerSizePropertyInfo = '[ 'AttrGet] type AttrSetTypeConstraint RecentManagerSizePropertyInfo = (~) () type AttrBaseTypeConstraint RecentManagerSizePropertyInfo = RecentManagerK type AttrGetType RecentManagerSizePropertyInfo = Int32 type AttrLabel RecentManagerSizePropertyInfo = "RecentManager::size" attrGet _ = getRecentManagerSize attrSet _ = undefined attrConstruct _ = undefined type instance AttributeList RecentManager = RecentManagerAttributeList type RecentManagerAttributeList = ('[ '("filename", RecentManagerFilenamePropertyInfo), '("size", RecentManagerSizePropertyInfo)] :: [(Symbol, *)]) data RecentManagerChangedSignalInfo instance SignalInfo RecentManagerChangedSignalInfo where type HaskellCallbackType RecentManagerChangedSignalInfo = RecentManagerChangedCallback connectSignal _ = connectRecentManagerChanged type instance SignalList RecentManager = RecentManagerSignalList type RecentManagerSignalList = ('[ '("changed", RecentManagerChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)]) -- method RecentManager::new -- method type : Constructor -- Args : [] -- Lengths : [] -- hInArgs : [] -- returnType : TInterface "Gtk" "RecentManager" -- throws : False -- Skip return : False foreign import ccall "gtk_recent_manager_new" gtk_recent_manager_new :: IO (Ptr RecentManager) recentManagerNew :: (MonadIO m) => m RecentManager recentManagerNew = liftIO $ do result <- gtk_recent_manager_new checkUnexpectedReturnNULL "gtk_recent_manager_new" result result' <- (wrapObject RecentManager) result return result' -- method RecentManager::add_full -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "RecentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "recent_data", argType = TInterface "Gtk" "RecentData", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "RecentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "recent_data", argType = TInterface "Gtk" "RecentData", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gtk_recent_manager_add_full" gtk_recent_manager_add_full :: Ptr RecentManager -> -- _obj : TInterface "Gtk" "RecentManager" CString -> -- uri : TBasicType TUTF8 Ptr RecentData -> -- recent_data : TInterface "Gtk" "RecentData" IO CInt recentManagerAddFull :: (MonadIO m, RecentManagerK a) => a -> -- _obj T.Text -> -- uri RecentData -> -- recent_data m Bool recentManagerAddFull _obj uri recent_data = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj uri' <- textToCString uri let recent_data' = unsafeManagedPtrGetPtr recent_data result <- gtk_recent_manager_add_full _obj' uri' recent_data' let result' = (/= 0) result touchManagedPtr _obj touchManagedPtr recent_data freeMem uri' return result' -- method RecentManager::add_item -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "RecentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "RecentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gtk_recent_manager_add_item" gtk_recent_manager_add_item :: Ptr RecentManager -> -- _obj : TInterface "Gtk" "RecentManager" CString -> -- uri : TBasicType TUTF8 IO CInt recentManagerAddItem :: (MonadIO m, RecentManagerK a) => a -> -- _obj T.Text -> -- uri m Bool recentManagerAddItem _obj uri = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj uri' <- textToCString uri result <- gtk_recent_manager_add_item _obj' uri' let result' = (/= 0) result touchManagedPtr _obj freeMem uri' return result' -- method RecentManager::get_items -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "RecentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "RecentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TGList (TInterface "Gtk" "RecentInfo") -- throws : False -- Skip return : False foreign import ccall "gtk_recent_manager_get_items" gtk_recent_manager_get_items :: Ptr RecentManager -> -- _obj : TInterface "Gtk" "RecentManager" IO (Ptr (GList (Ptr RecentInfo))) recentManagerGetItems :: (MonadIO m, RecentManagerK a) => a -> -- _obj m [RecentInfo] recentManagerGetItems _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj result <- gtk_recent_manager_get_items _obj' checkUnexpectedReturnNULL "gtk_recent_manager_get_items" result result' <- unpackGList result result'' <- mapM (wrapBoxed RecentInfo) result' g_list_free result touchManagedPtr _obj return result'' -- method RecentManager::has_item -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "RecentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "RecentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gtk_recent_manager_has_item" gtk_recent_manager_has_item :: Ptr RecentManager -> -- _obj : TInterface "Gtk" "RecentManager" CString -> -- uri : TBasicType TUTF8 IO CInt recentManagerHasItem :: (MonadIO m, RecentManagerK a) => a -> -- _obj T.Text -> -- uri m Bool recentManagerHasItem _obj uri = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj uri' <- textToCString uri result <- gtk_recent_manager_has_item _obj' uri' let result' = (/= 0) result touchManagedPtr _obj freeMem uri' return result' -- method RecentManager::lookup_item -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "RecentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "RecentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TInterface "Gtk" "RecentInfo" -- throws : True -- Skip return : False foreign import ccall "gtk_recent_manager_lookup_item" gtk_recent_manager_lookup_item :: Ptr RecentManager -> -- _obj : TInterface "Gtk" "RecentManager" CString -> -- uri : TBasicType TUTF8 Ptr (Ptr GError) -> -- error IO (Ptr RecentInfo) recentManagerLookupItem :: (MonadIO m, RecentManagerK a) => a -> -- _obj T.Text -> -- uri m RecentInfo recentManagerLookupItem _obj uri = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj uri' <- textToCString uri onException (do result <- propagateGError $ gtk_recent_manager_lookup_item _obj' uri' checkUnexpectedReturnNULL "gtk_recent_manager_lookup_item" result result' <- (wrapBoxed RecentInfo) result touchManagedPtr _obj freeMem uri' return result' ) (do freeMem uri' ) -- method RecentManager::move_item -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "RecentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "RecentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TBoolean -- throws : True -- Skip return : False foreign import ccall "gtk_recent_manager_move_item" gtk_recent_manager_move_item :: Ptr RecentManager -> -- _obj : TInterface "Gtk" "RecentManager" CString -> -- uri : TBasicType TUTF8 CString -> -- new_uri : TBasicType TUTF8 Ptr (Ptr GError) -> -- error IO CInt recentManagerMoveItem :: (MonadIO m, RecentManagerK a) => a -> -- _obj T.Text -> -- uri Maybe (T.Text) -> -- new_uri m () recentManagerMoveItem _obj uri new_uri = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj uri' <- textToCString uri maybeNew_uri <- case new_uri of Nothing -> return nullPtr Just jNew_uri -> do jNew_uri' <- textToCString jNew_uri return jNew_uri' onException (do _ <- propagateGError $ gtk_recent_manager_move_item _obj' uri' maybeNew_uri touchManagedPtr _obj freeMem uri' freeMem maybeNew_uri return () ) (do freeMem uri' freeMem maybeNew_uri ) -- method RecentManager::purge_items -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "RecentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "RecentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TInt32 -- throws : True -- Skip return : False foreign import ccall "gtk_recent_manager_purge_items" gtk_recent_manager_purge_items :: Ptr RecentManager -> -- _obj : TInterface "Gtk" "RecentManager" Ptr (Ptr GError) -> -- error IO Int32 recentManagerPurgeItems :: (MonadIO m, RecentManagerK a) => a -> -- _obj m Int32 recentManagerPurgeItems _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj onException (do result <- propagateGError $ gtk_recent_manager_purge_items _obj' touchManagedPtr _obj return result ) (do return () ) -- method RecentManager::remove_item -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "RecentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "RecentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TBoolean -- throws : True -- Skip return : False foreign import ccall "gtk_recent_manager_remove_item" gtk_recent_manager_remove_item :: Ptr RecentManager -> -- _obj : TInterface "Gtk" "RecentManager" CString -> -- uri : TBasicType TUTF8 Ptr (Ptr GError) -> -- error IO CInt recentManagerRemoveItem :: (MonadIO m, RecentManagerK a) => a -> -- _obj T.Text -> -- uri m () recentManagerRemoveItem _obj uri = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj uri' <- textToCString uri onException (do _ <- propagateGError $ gtk_recent_manager_remove_item _obj' uri' touchManagedPtr _obj freeMem uri' return () ) (do freeMem uri' ) -- method RecentManager::get_default -- method type : MemberFunction -- Args : [] -- Lengths : [] -- hInArgs : [] -- returnType : TInterface "Gtk" "RecentManager" -- throws : False -- Skip return : False foreign import ccall "gtk_recent_manager_get_default" gtk_recent_manager_get_default :: IO (Ptr RecentManager) recentManagerGetDefault :: (MonadIO m) => m RecentManager recentManagerGetDefault = liftIO $ do result <- gtk_recent_manager_get_default checkUnexpectedReturnNULL "gtk_recent_manager_get_default" result result' <- (newObject RecentManager) result return result'