{- | 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.FileFilter ( -- * Exported types FileFilter(..) , FileFilterK , toFileFilter , noFileFilter , -- * Methods -- ** fileFilterAddCustom fileFilterAddCustom , -- ** fileFilterAddMimeType fileFilterAddMimeType , -- ** fileFilterAddPattern fileFilterAddPattern , -- ** fileFilterAddPixbufFormats fileFilterAddPixbufFormats , -- ** fileFilterFilter fileFilterFilter , -- ** fileFilterGetName fileFilterGetName , -- ** fileFilterGetNeeded fileFilterGetNeeded , -- ** fileFilterNew fileFilterNew , -- ** fileFilterSetName fileFilterSetName , ) 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.GLib as GLib import qualified GI.GObject as GObject newtype FileFilter = FileFilter (ForeignPtr FileFilter) foreign import ccall "gtk_file_filter_get_type" c_gtk_file_filter_get_type :: IO GType type instance ParentTypes FileFilter = FileFilterParentTypes type FileFilterParentTypes = '[GObject.Object, Buildable] instance GObject FileFilter where gobjectIsInitiallyUnowned _ = True gobjectType _ = c_gtk_file_filter_get_type class GObject o => FileFilterK o instance (GObject o, IsDescendantOf FileFilter o) => FileFilterK o toFileFilter :: FileFilterK o => o -> IO FileFilter toFileFilter = unsafeCastTo FileFilter noFileFilter :: Maybe FileFilter noFileFilter = Nothing type instance AttributeList FileFilter = FileFilterAttributeList type FileFilterAttributeList = ('[ ] :: [(Symbol, *)]) type instance SignalList FileFilter = FileFilterSignalList type FileFilterSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)]) -- method FileFilter::new -- method type : Constructor -- Args : [] -- Lengths : [] -- hInArgs : [] -- returnType : TInterface "Gtk" "FileFilter" -- throws : False -- Skip return : False foreign import ccall "gtk_file_filter_new" gtk_file_filter_new :: IO (Ptr FileFilter) fileFilterNew :: (MonadIO m) => m FileFilter fileFilterNew = liftIO $ do result <- gtk_file_filter_new checkUnexpectedReturnNULL "gtk_file_filter_new" result result' <- (newObject FileFilter) result return result' -- method FileFilter::add_custom -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "FileFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "needed", argType = TInterface "Gtk" "FileFilterFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "FileFilterFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "FileFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "needed", argType = TInterface "Gtk" "FileFilterFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "FileFilterFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gtk_file_filter_add_custom" gtk_file_filter_add_custom :: Ptr FileFilter -> -- _obj : TInterface "Gtk" "FileFilter" CUInt -> -- needed : TInterface "Gtk" "FileFilterFlags" FunPtr FileFilterFuncC -> -- func : TInterface "Gtk" "FileFilterFunc" Ptr () -> -- data : TBasicType TVoid FunPtr GLib.DestroyNotifyC -> -- notify : TInterface "GLib" "DestroyNotify" IO () fileFilterAddCustom :: (MonadIO m, FileFilterK a) => a -> -- _obj [FileFilterFlags] -> -- needed FileFilterFunc -> -- func m () fileFilterAddCustom _obj needed func = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let needed' = gflagsToWord needed func' <- mkFileFilterFunc (fileFilterFuncWrapper Nothing func) let data_ = castFunPtrToPtr func' let notify = safeFreeFunPtrPtr gtk_file_filter_add_custom _obj' needed' func' data_ notify touchManagedPtr _obj return () -- method FileFilter::add_mime_type -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "FileFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "FileFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gtk_file_filter_add_mime_type" gtk_file_filter_add_mime_type :: Ptr FileFilter -> -- _obj : TInterface "Gtk" "FileFilter" CString -> -- mime_type : TBasicType TUTF8 IO () fileFilterAddMimeType :: (MonadIO m, FileFilterK a) => a -> -- _obj T.Text -> -- mime_type m () fileFilterAddMimeType _obj mime_type = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj mime_type' <- textToCString mime_type gtk_file_filter_add_mime_type _obj' mime_type' touchManagedPtr _obj freeMem mime_type' return () -- method FileFilter::add_pattern -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "FileFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "FileFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gtk_file_filter_add_pattern" gtk_file_filter_add_pattern :: Ptr FileFilter -> -- _obj : TInterface "Gtk" "FileFilter" CString -> -- pattern : TBasicType TUTF8 IO () fileFilterAddPattern :: (MonadIO m, FileFilterK a) => a -> -- _obj T.Text -> -- pattern m () fileFilterAddPattern _obj pattern = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj pattern' <- textToCString pattern gtk_file_filter_add_pattern _obj' pattern' touchManagedPtr _obj freeMem pattern' return () -- method FileFilter::add_pixbuf_formats -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "FileFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "FileFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gtk_file_filter_add_pixbuf_formats" gtk_file_filter_add_pixbuf_formats :: Ptr FileFilter -> -- _obj : TInterface "Gtk" "FileFilter" IO () fileFilterAddPixbufFormats :: (MonadIO m, FileFilterK a) => a -> -- _obj m () fileFilterAddPixbufFormats _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj gtk_file_filter_add_pixbuf_formats _obj' touchManagedPtr _obj return () -- method FileFilter::filter -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "FileFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "filter_info", argType = TInterface "Gtk" "FileFilterInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "FileFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "filter_info", argType = TInterface "Gtk" "FileFilterInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gtk_file_filter_filter" gtk_file_filter_filter :: Ptr FileFilter -> -- _obj : TInterface "Gtk" "FileFilter" Ptr FileFilterInfo -> -- filter_info : TInterface "Gtk" "FileFilterInfo" IO CInt fileFilterFilter :: (MonadIO m, FileFilterK a) => a -> -- _obj FileFilterInfo -> -- filter_info m Bool fileFilterFilter _obj filter_info = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let filter_info' = unsafeManagedPtrGetPtr filter_info result <- gtk_file_filter_filter _obj' filter_info' let result' = (/= 0) result touchManagedPtr _obj touchManagedPtr filter_info return result' -- method FileFilter::get_name -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "FileFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "FileFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TUTF8 -- throws : False -- Skip return : False foreign import ccall "gtk_file_filter_get_name" gtk_file_filter_get_name :: Ptr FileFilter -> -- _obj : TInterface "Gtk" "FileFilter" IO CString fileFilterGetName :: (MonadIO m, FileFilterK a) => a -> -- _obj m T.Text fileFilterGetName _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj result <- gtk_file_filter_get_name _obj' checkUnexpectedReturnNULL "gtk_file_filter_get_name" result result' <- cstringToText result touchManagedPtr _obj return result' -- method FileFilter::get_needed -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "FileFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "FileFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TInterface "Gtk" "FileFilterFlags" -- throws : False -- Skip return : False foreign import ccall "gtk_file_filter_get_needed" gtk_file_filter_get_needed :: Ptr FileFilter -> -- _obj : TInterface "Gtk" "FileFilter" IO CUInt fileFilterGetNeeded :: (MonadIO m, FileFilterK a) => a -> -- _obj m [FileFilterFlags] fileFilterGetNeeded _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj result <- gtk_file_filter_get_needed _obj' let result' = wordToGFlags result touchManagedPtr _obj return result' -- method FileFilter::set_name -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "FileFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "FileFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gtk_file_filter_set_name" gtk_file_filter_set_name :: Ptr FileFilter -> -- _obj : TInterface "Gtk" "FileFilter" CString -> -- name : TBasicType TUTF8 IO () fileFilterSetName :: (MonadIO m, FileFilterK a) => a -> -- _obj Maybe (T.Text) -> -- name m () fileFilterSetName _obj name = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj maybeName <- case name of Nothing -> return nullPtr Just jName -> do jName' <- textToCString jName return jName' gtk_file_filter_set_name _obj' maybeName touchManagedPtr _obj freeMem maybeName return ()