{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) A 'GI.Gtk.Objects.RecentFilter.RecentFilter' can be used to restrict the files being shown in a 'GI.Gtk.Interfaces.RecentChooser.RecentChooser'. Files can be filtered based on their name (with 'GI.Gtk.Objects.RecentFilter.recentFilterAddPattern'), on their mime type (with 'GI.Gtk.Objects.FileFilter.fileFilterAddMimeType'), on the application that has registered them (with 'GI.Gtk.Objects.RecentFilter.recentFilterAddApplication'), or by a custom filter function (with 'GI.Gtk.Objects.RecentFilter.recentFilterAddCustom'). Filtering by mime type handles aliasing and subclassing of mime types; e.g. a filter for text\/plain also matches a file with mime type application\/rtf, since application\/rtf is a subclass of text\/plain. Note that 'GI.Gtk.Objects.RecentFilter.RecentFilter' allows wildcards for the subtype of a mime type, so you can e.g. filter for image\/\\*. Normally, filters are used by adding them to a 'GI.Gtk.Interfaces.RecentChooser.RecentChooser', see 'GI.Gtk.Interfaces.RecentChooser.recentChooserAddFilter', but it is also possible to manually use a filter on a file with 'GI.Gtk.Objects.RecentFilter.recentFilterFilter'. Recently used files are supported since GTK+ 2.10. == GtkRecentFilter as GtkBuildable The GtkRecentFilter implementation of the GtkBuildable interface supports adding rules using the \<mime-types>, \<patterns> and \<applications> elements and listing the rules within. Specifying a \<mime-type>, \<pattern> or \<application> has the same effect as calling 'GI.Gtk.Objects.RecentFilter.recentFilterAddMimeType', 'GI.Gtk.Objects.RecentFilter.recentFilterAddPattern' or 'GI.Gtk.Objects.RecentFilter.recentFilterAddApplication'. An example of a UI definition fragment specifying GtkRecentFilter rules: > ><object class="GtkRecentFilter"> > <mime-types> > <mime-type>text/plain</mime-type> > <mime-type>image/png</mime-type> > </mime-types> > <patterns> > <pattern>*.txt</pattern> > <pattern>*.png</pattern> > </patterns> > <applications> > <application>gimp</application> > <application>gedit</application> > <application>glade</application> > </applications> ></object> -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Gtk.Objects.RecentFilter ( -- * Exported types RecentFilter(..) , IsRecentFilter , toRecentFilter , noRecentFilter , -- * Methods -- ** addAge #method:addAge# #if ENABLE_OVERLOADING RecentFilterAddAgeMethodInfo , #endif recentFilterAddAge , -- ** addApplication #method:addApplication# #if ENABLE_OVERLOADING RecentFilterAddApplicationMethodInfo , #endif recentFilterAddApplication , -- ** addCustom #method:addCustom# #if ENABLE_OVERLOADING RecentFilterAddCustomMethodInfo , #endif recentFilterAddCustom , -- ** addGroup #method:addGroup# #if ENABLE_OVERLOADING RecentFilterAddGroupMethodInfo , #endif recentFilterAddGroup , -- ** addMimeType #method:addMimeType# #if ENABLE_OVERLOADING RecentFilterAddMimeTypeMethodInfo , #endif recentFilterAddMimeType , -- ** addPattern #method:addPattern# #if ENABLE_OVERLOADING RecentFilterAddPatternMethodInfo , #endif recentFilterAddPattern , -- ** addPixbufFormats #method:addPixbufFormats# #if ENABLE_OVERLOADING RecentFilterAddPixbufFormatsMethodInfo , #endif recentFilterAddPixbufFormats , -- ** filter #method:filter# #if ENABLE_OVERLOADING RecentFilterFilterMethodInfo , #endif recentFilterFilter , -- ** getName #method:getName# #if ENABLE_OVERLOADING RecentFilterGetNameMethodInfo , #endif recentFilterGetName , -- ** getNeeded #method:getNeeded# #if ENABLE_OVERLOADING RecentFilterGetNeededMethodInfo , #endif recentFilterGetNeeded , -- ** new #method:new# recentFilterNew , -- ** setName #method:setName# #if ENABLE_OVERLOADING RecentFilterSetNameMethodInfo , #endif recentFilterSetName , ) where import Data.GI.Base.ShortPrelude import qualified Data.GI.Base.ShortPrelude as SP import qualified Data.GI.Base.Overloading as O import qualified Prelude as P import qualified Data.GI.Base.Attributes as GI.Attributes import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr import qualified Data.GI.Base.GClosure as B.GClosure import qualified Data.GI.Base.GError as B.GError import qualified Data.GI.Base.GVariant as B.GVariant import qualified Data.GI.Base.GValue as B.GValue import qualified Data.GI.Base.GParamSpec as B.GParamSpec import qualified Data.GI.Base.CallStack as B.CallStack import qualified Data.GI.Base.Properties as B.Properties import qualified Data.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import qualified Foreign.Ptr as FP import qualified GHC.OverloadedLabels as OL import qualified GI.GLib.Callbacks as GLib.Callbacks import qualified GI.GObject.Objects.Object as GObject.Object import qualified GI.Gtk.Callbacks as Gtk.Callbacks import {-# SOURCE #-} qualified GI.Gtk.Flags as Gtk.Flags import {-# SOURCE #-} qualified GI.Gtk.Interfaces.Buildable as Gtk.Buildable import {-# SOURCE #-} qualified GI.Gtk.Structs.RecentFilterInfo as Gtk.RecentFilterInfo -- | Memory-managed wrapper type. newtype RecentFilter = RecentFilter (ManagedPtr RecentFilter) foreign import ccall "gtk_recent_filter_get_type" c_gtk_recent_filter_get_type :: IO GType instance GObject RecentFilter where gobjectType = c_gtk_recent_filter_get_type -- | Type class for types which can be safely cast to `RecentFilter`, for instance with `toRecentFilter`. class (GObject o, O.IsDescendantOf RecentFilter o) => IsRecentFilter o instance (GObject o, O.IsDescendantOf RecentFilter o) => IsRecentFilter o instance O.HasParentTypes RecentFilter type instance O.ParentTypes RecentFilter = '[GObject.Object.Object, Gtk.Buildable.Buildable] -- | Cast to `RecentFilter`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toRecentFilter :: (MonadIO m, IsRecentFilter o) => o -> m RecentFilter toRecentFilter = liftIO . unsafeCastTo RecentFilter -- | A convenience alias for `Nothing` :: `Maybe` `RecentFilter`. noRecentFilter :: Maybe RecentFilter noRecentFilter = Nothing #if ENABLE_OVERLOADING type family ResolveRecentFilterMethod (t :: Symbol) (o :: *) :: * where ResolveRecentFilterMethod "addAge" o = RecentFilterAddAgeMethodInfo ResolveRecentFilterMethod "addApplication" o = RecentFilterAddApplicationMethodInfo ResolveRecentFilterMethod "addChild" o = Gtk.Buildable.BuildableAddChildMethodInfo ResolveRecentFilterMethod "addCustom" o = RecentFilterAddCustomMethodInfo ResolveRecentFilterMethod "addGroup" o = RecentFilterAddGroupMethodInfo ResolveRecentFilterMethod "addMimeType" o = RecentFilterAddMimeTypeMethodInfo ResolveRecentFilterMethod "addPattern" o = RecentFilterAddPatternMethodInfo ResolveRecentFilterMethod "addPixbufFormats" o = RecentFilterAddPixbufFormatsMethodInfo ResolveRecentFilterMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo ResolveRecentFilterMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo ResolveRecentFilterMethod "constructChild" o = Gtk.Buildable.BuildableConstructChildMethodInfo ResolveRecentFilterMethod "customFinished" o = Gtk.Buildable.BuildableCustomFinishedMethodInfo ResolveRecentFilterMethod "customTagEnd" o = Gtk.Buildable.BuildableCustomTagEndMethodInfo ResolveRecentFilterMethod "customTagStart" o = Gtk.Buildable.BuildableCustomTagStartMethodInfo ResolveRecentFilterMethod "filter" o = RecentFilterFilterMethodInfo ResolveRecentFilterMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo ResolveRecentFilterMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo ResolveRecentFilterMethod "getv" o = GObject.Object.ObjectGetvMethodInfo ResolveRecentFilterMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo ResolveRecentFilterMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo ResolveRecentFilterMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo ResolveRecentFilterMethod "parserFinished" o = Gtk.Buildable.BuildableParserFinishedMethodInfo ResolveRecentFilterMethod "ref" o = GObject.Object.ObjectRefMethodInfo ResolveRecentFilterMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo ResolveRecentFilterMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo ResolveRecentFilterMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo ResolveRecentFilterMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo ResolveRecentFilterMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo ResolveRecentFilterMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo ResolveRecentFilterMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo ResolveRecentFilterMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo ResolveRecentFilterMethod "getInternalChild" o = Gtk.Buildable.BuildableGetInternalChildMethodInfo ResolveRecentFilterMethod "getName" o = RecentFilterGetNameMethodInfo ResolveRecentFilterMethod "getNeeded" o = RecentFilterGetNeededMethodInfo ResolveRecentFilterMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo ResolveRecentFilterMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo ResolveRecentFilterMethod "setBuildableProperty" o = Gtk.Buildable.BuildableSetBuildablePropertyMethodInfo ResolveRecentFilterMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo ResolveRecentFilterMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo ResolveRecentFilterMethod "setName" o = RecentFilterSetNameMethodInfo ResolveRecentFilterMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolveRecentFilterMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveRecentFilterMethod t RecentFilter, O.MethodInfo info RecentFilter p) => OL.IsLabel t (RecentFilter -> p) where #if MIN_VERSION_base(4,10,0) fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #else fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #endif #endif #if ENABLE_OVERLOADING instance O.HasAttributeList RecentFilter type instance O.AttributeList RecentFilter = RecentFilterAttributeList type RecentFilterAttributeList = ('[ ] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING #endif #if ENABLE_OVERLOADING type instance O.SignalList RecentFilter = RecentFilterSignalList type RecentFilterSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)]) #endif -- method RecentFilter::new -- method type : Constructor -- Args : [] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gtk", name = "RecentFilter"})) -- throws : False -- Skip return : False foreign import ccall "gtk_recent_filter_new" gtk_recent_filter_new :: IO (Ptr RecentFilter) {- | Creates a new 'GI.Gtk.Objects.RecentFilter.RecentFilter' with no rules added to it. Such filter does not accept any recently used resources, so is not particularly useful until you add rules with 'GI.Gtk.Objects.RecentFilter.recentFilterAddPattern', 'GI.Gtk.Objects.RecentFilter.recentFilterAddMimeType', 'GI.Gtk.Objects.RecentFilter.recentFilterAddApplication', 'GI.Gtk.Objects.RecentFilter.recentFilterAddAge'. To create a filter that accepts any recently used resource, use: === /C code/ > >GtkRecentFilter *filter = gtk_recent_filter_new (); >gtk_recent_filter_add_pattern (filter, "*"); /Since: 2.10/ -} recentFilterNew :: (B.CallStack.HasCallStack, MonadIO m) => m RecentFilter {- ^ __Returns:__ a new 'GI.Gtk.Objects.RecentFilter.RecentFilter' -} recentFilterNew = liftIO $ do result <- gtk_recent_filter_new checkUnexpectedReturnNULL "recentFilterNew" result result' <- (newObject RecentFilter) result return result' #if ENABLE_OVERLOADING #endif -- method RecentFilter::add_age -- method type : OrdinaryMethod -- Args : [Arg {argCName = "filter", argType = TInterface (Name {namespace = "Gtk", name = "RecentFilter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkRecentFilter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "days", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of days", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gtk_recent_filter_add_age" gtk_recent_filter_add_age :: Ptr RecentFilter -> -- filter : TInterface (Name {namespace = "Gtk", name = "RecentFilter"}) Int32 -> -- days : TBasicType TInt IO () {- | Adds a rule that allows resources based on their age - that is, the number of days elapsed since they were last modified. /Since: 2.10/ -} recentFilterAddAge :: (B.CallStack.HasCallStack, MonadIO m, IsRecentFilter a) => a {- ^ /@filter@/: a 'GI.Gtk.Objects.RecentFilter.RecentFilter' -} -> Int32 {- ^ /@days@/: number of days -} -> m () recentFilterAddAge filter days = liftIO $ do filter' <- unsafeManagedPtrCastPtr filter gtk_recent_filter_add_age filter' days touchManagedPtr filter return () #if ENABLE_OVERLOADING data RecentFilterAddAgeMethodInfo instance (signature ~ (Int32 -> m ()), MonadIO m, IsRecentFilter a) => O.MethodInfo RecentFilterAddAgeMethodInfo a signature where overloadedMethod _ = recentFilterAddAge #endif -- method RecentFilter::add_application -- method type : OrdinaryMethod -- Args : [Arg {argCName = "filter", argType = TInterface (Name {namespace = "Gtk", name = "RecentFilter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkRecentFilter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "application", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an application name", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gtk_recent_filter_add_application" gtk_recent_filter_add_application :: Ptr RecentFilter -> -- filter : TInterface (Name {namespace = "Gtk", name = "RecentFilter"}) CString -> -- application : TBasicType TUTF8 IO () {- | Adds a rule that allows resources based on the name of the application that has registered them. /Since: 2.10/ -} recentFilterAddApplication :: (B.CallStack.HasCallStack, MonadIO m, IsRecentFilter a) => a {- ^ /@filter@/: a 'GI.Gtk.Objects.RecentFilter.RecentFilter' -} -> T.Text {- ^ /@application@/: an application name -} -> m () recentFilterAddApplication filter application = liftIO $ do filter' <- unsafeManagedPtrCastPtr filter application' <- textToCString application gtk_recent_filter_add_application filter' application' touchManagedPtr filter freeMem application' return () #if ENABLE_OVERLOADING data RecentFilterAddApplicationMethodInfo instance (signature ~ (T.Text -> m ()), MonadIO m, IsRecentFilter a) => O.MethodInfo RecentFilterAddApplicationMethodInfo a signature where overloadedMethod _ = recentFilterAddApplication #endif -- method RecentFilter::add_custom -- method type : OrdinaryMethod -- Args : [Arg {argCName = "filter", argType = TInterface (Name {namespace = "Gtk", name = "RecentFilter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkRecentFilter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "needed", argType = TInterface (Name {namespace = "Gtk", name = "RecentFilterFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "bitfield of flags indicating the information that the custom\n filter function needs.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface (Name {namespace = "Gtk", name = "RecentFilterFunc"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "callback function; if the function returns %TRUE, then\n the file will be displayed.", sinceVersion = Nothing}, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "data to pass to @func", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data_destroy", argType = TInterface (Name {namespace = "GLib", name = "DestroyNotify"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "function to call to free @data when it is no longer needed.", sinceVersion = Nothing}, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gtk_recent_filter_add_custom" gtk_recent_filter_add_custom :: Ptr RecentFilter -> -- filter : TInterface (Name {namespace = "Gtk", name = "RecentFilter"}) CUInt -> -- needed : TInterface (Name {namespace = "Gtk", name = "RecentFilterFlags"}) FunPtr Gtk.Callbacks.C_RecentFilterFunc -> -- func : TInterface (Name {namespace = "Gtk", name = "RecentFilterFunc"}) Ptr () -> -- data : TBasicType TPtr FunPtr GLib.Callbacks.C_DestroyNotify -> -- data_destroy : TInterface (Name {namespace = "GLib", name = "DestroyNotify"}) IO () {- | Adds a rule to a filter that allows resources based on a custom callback function. The bitfield /@needed@/ which is passed in provides information about what sorts of information that the filter function needs; this allows GTK+ to avoid retrieving expensive information when it isn’t needed by the filter. /Since: 2.10/ -} recentFilterAddCustom :: (B.CallStack.HasCallStack, MonadIO m, IsRecentFilter a) => a {- ^ /@filter@/: a 'GI.Gtk.Objects.RecentFilter.RecentFilter' -} -> [Gtk.Flags.RecentFilterFlags] {- ^ /@needed@/: bitfield of flags indicating the information that the custom filter function needs. -} -> Gtk.Callbacks.RecentFilterFunc {- ^ /@func@/: callback function; if the function returns 'True', then the file will be displayed. -} -> m () recentFilterAddCustom filter needed func = liftIO $ do filter' <- unsafeManagedPtrCastPtr filter let needed' = gflagsToWord needed func' <- Gtk.Callbacks.mk_RecentFilterFunc (Gtk.Callbacks.wrap_RecentFilterFunc Nothing (Gtk.Callbacks.drop_closures_RecentFilterFunc func)) let data_ = castFunPtrToPtr func' let dataDestroy = safeFreeFunPtrPtr gtk_recent_filter_add_custom filter' needed' func' data_ dataDestroy touchManagedPtr filter return () #if ENABLE_OVERLOADING data RecentFilterAddCustomMethodInfo instance (signature ~ ([Gtk.Flags.RecentFilterFlags] -> Gtk.Callbacks.RecentFilterFunc -> m ()), MonadIO m, IsRecentFilter a) => O.MethodInfo RecentFilterAddCustomMethodInfo a signature where overloadedMethod _ = recentFilterAddCustom #endif -- method RecentFilter::add_group -- method type : OrdinaryMethod -- Args : [Arg {argCName = "filter", argType = TInterface (Name {namespace = "Gtk", name = "RecentFilter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkRecentFilter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a group name", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gtk_recent_filter_add_group" gtk_recent_filter_add_group :: Ptr RecentFilter -> -- filter : TInterface (Name {namespace = "Gtk", name = "RecentFilter"}) CString -> -- group : TBasicType TUTF8 IO () {- | Adds a rule that allows resources based on the name of the group to which they belong /Since: 2.10/ -} recentFilterAddGroup :: (B.CallStack.HasCallStack, MonadIO m, IsRecentFilter a) => a {- ^ /@filter@/: a 'GI.Gtk.Objects.RecentFilter.RecentFilter' -} -> T.Text {- ^ /@group@/: a group name -} -> m () recentFilterAddGroup filter group = liftIO $ do filter' <- unsafeManagedPtrCastPtr filter group' <- textToCString group gtk_recent_filter_add_group filter' group' touchManagedPtr filter freeMem group' return () #if ENABLE_OVERLOADING data RecentFilterAddGroupMethodInfo instance (signature ~ (T.Text -> m ()), MonadIO m, IsRecentFilter a) => O.MethodInfo RecentFilterAddGroupMethodInfo a signature where overloadedMethod _ = recentFilterAddGroup #endif -- method RecentFilter::add_mime_type -- method type : OrdinaryMethod -- Args : [Arg {argCName = "filter", argType = TInterface (Name {namespace = "Gtk", name = "RecentFilter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkRecentFilter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a MIME type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gtk_recent_filter_add_mime_type" gtk_recent_filter_add_mime_type :: Ptr RecentFilter -> -- filter : TInterface (Name {namespace = "Gtk", name = "RecentFilter"}) CString -> -- mime_type : TBasicType TUTF8 IO () {- | Adds a rule that allows resources based on their registered MIME type. /Since: 2.10/ -} recentFilterAddMimeType :: (B.CallStack.HasCallStack, MonadIO m, IsRecentFilter a) => a {- ^ /@filter@/: a 'GI.Gtk.Objects.RecentFilter.RecentFilter' -} -> T.Text {- ^ /@mimeType@/: a MIME type -} -> m () recentFilterAddMimeType filter mimeType = liftIO $ do filter' <- unsafeManagedPtrCastPtr filter mimeType' <- textToCString mimeType gtk_recent_filter_add_mime_type filter' mimeType' touchManagedPtr filter freeMem mimeType' return () #if ENABLE_OVERLOADING data RecentFilterAddMimeTypeMethodInfo instance (signature ~ (T.Text -> m ()), MonadIO m, IsRecentFilter a) => O.MethodInfo RecentFilterAddMimeTypeMethodInfo a signature where overloadedMethod _ = recentFilterAddMimeType #endif -- method RecentFilter::add_pattern -- method type : OrdinaryMethod -- Args : [Arg {argCName = "filter", argType = TInterface (Name {namespace = "Gtk", name = "RecentFilter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkRecentFilter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a file pattern", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gtk_recent_filter_add_pattern" gtk_recent_filter_add_pattern :: Ptr RecentFilter -> -- filter : TInterface (Name {namespace = "Gtk", name = "RecentFilter"}) CString -> -- pattern : TBasicType TUTF8 IO () {- | Adds a rule that allows resources based on a pattern matching their display name. /Since: 2.10/ -} recentFilterAddPattern :: (B.CallStack.HasCallStack, MonadIO m, IsRecentFilter a) => a {- ^ /@filter@/: a 'GI.Gtk.Objects.RecentFilter.RecentFilter' -} -> T.Text {- ^ /@pattern@/: a file pattern -} -> m () recentFilterAddPattern filter pattern = liftIO $ do filter' <- unsafeManagedPtrCastPtr filter pattern' <- textToCString pattern gtk_recent_filter_add_pattern filter' pattern' touchManagedPtr filter freeMem pattern' return () #if ENABLE_OVERLOADING data RecentFilterAddPatternMethodInfo instance (signature ~ (T.Text -> m ()), MonadIO m, IsRecentFilter a) => O.MethodInfo RecentFilterAddPatternMethodInfo a signature where overloadedMethod _ = recentFilterAddPattern #endif -- method RecentFilter::add_pixbuf_formats -- method type : OrdinaryMethod -- Args : [Arg {argCName = "filter", argType = TInterface (Name {namespace = "Gtk", name = "RecentFilter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkRecentFilter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gtk_recent_filter_add_pixbuf_formats" gtk_recent_filter_add_pixbuf_formats :: Ptr RecentFilter -> -- filter : TInterface (Name {namespace = "Gtk", name = "RecentFilter"}) IO () {- | Adds a rule allowing image files in the formats supported by GdkPixbuf. /Since: 2.10/ -} recentFilterAddPixbufFormats :: (B.CallStack.HasCallStack, MonadIO m, IsRecentFilter a) => a {- ^ /@filter@/: a 'GI.Gtk.Objects.RecentFilter.RecentFilter' -} -> m () recentFilterAddPixbufFormats filter = liftIO $ do filter' <- unsafeManagedPtrCastPtr filter gtk_recent_filter_add_pixbuf_formats filter' touchManagedPtr filter return () #if ENABLE_OVERLOADING data RecentFilterAddPixbufFormatsMethodInfo instance (signature ~ (m ()), MonadIO m, IsRecentFilter a) => O.MethodInfo RecentFilterAddPixbufFormatsMethodInfo a signature where overloadedMethod _ = recentFilterAddPixbufFormats #endif -- method RecentFilter::filter -- method type : OrdinaryMethod -- Args : [Arg {argCName = "filter", argType = TInterface (Name {namespace = "Gtk", name = "RecentFilter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkRecentFilter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filter_info", argType = TInterface (Name {namespace = "Gtk", name = "RecentFilterInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkRecentFilterInfo containing information\n about a recently used resource", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gtk_recent_filter_filter" gtk_recent_filter_filter :: Ptr RecentFilter -> -- filter : TInterface (Name {namespace = "Gtk", name = "RecentFilter"}) Ptr Gtk.RecentFilterInfo.RecentFilterInfo -> -- filter_info : TInterface (Name {namespace = "Gtk", name = "RecentFilterInfo"}) IO CInt {- | Tests whether a file should be displayed according to /@filter@/. The 'GI.Gtk.Structs.RecentFilterInfo.RecentFilterInfo' /@filterInfo@/ should include the fields returned from 'GI.Gtk.Objects.RecentFilter.recentFilterGetNeeded', and must set the 'GI.Gtk.Structs.RecentFilterInfo.RecentFilterInfo'.@/contains/@ field of /@filterInfo@/ to indicate which fields have been set. This function will not typically be used by applications; it is intended principally for use in the implementation of 'GI.Gtk.Interfaces.RecentChooser.RecentChooser'. /Since: 2.10/ -} recentFilterFilter :: (B.CallStack.HasCallStack, MonadIO m, IsRecentFilter a) => a {- ^ /@filter@/: a 'GI.Gtk.Objects.RecentFilter.RecentFilter' -} -> Gtk.RecentFilterInfo.RecentFilterInfo {- ^ /@filterInfo@/: a 'GI.Gtk.Structs.RecentFilterInfo.RecentFilterInfo' containing information about a recently used resource -} -> m Bool {- ^ __Returns:__ 'True' if the file should be displayed -} recentFilterFilter filter filterInfo = liftIO $ do filter' <- unsafeManagedPtrCastPtr filter filterInfo' <- unsafeManagedPtrGetPtr filterInfo result <- gtk_recent_filter_filter filter' filterInfo' let result' = (/= 0) result touchManagedPtr filter touchManagedPtr filterInfo return result' #if ENABLE_OVERLOADING data RecentFilterFilterMethodInfo instance (signature ~ (Gtk.RecentFilterInfo.RecentFilterInfo -> m Bool), MonadIO m, IsRecentFilter a) => O.MethodInfo RecentFilterFilterMethodInfo a signature where overloadedMethod _ = recentFilterFilter #endif -- method RecentFilter::get_name -- method type : OrdinaryMethod -- Args : [Arg {argCName = "filter", argType = TInterface (Name {namespace = "Gtk", name = "RecentFilter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkRecentFilter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUTF8) -- throws : False -- Skip return : False foreign import ccall "gtk_recent_filter_get_name" gtk_recent_filter_get_name :: Ptr RecentFilter -> -- filter : TInterface (Name {namespace = "Gtk", name = "RecentFilter"}) IO CString {- | Gets the human-readable name for the filter. See 'GI.Gtk.Objects.RecentFilter.recentFilterSetName'. /Since: 2.10/ -} recentFilterGetName :: (B.CallStack.HasCallStack, MonadIO m, IsRecentFilter a) => a {- ^ /@filter@/: a 'GI.Gtk.Objects.RecentFilter.RecentFilter' -} -> m (Maybe T.Text) {- ^ __Returns:__ the name of the filter, or 'Nothing'. The returned string is owned by the filter object and should not be freed. -} recentFilterGetName filter = liftIO $ do filter' <- unsafeManagedPtrCastPtr filter result <- gtk_recent_filter_get_name filter' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- cstringToText result' return result'' touchManagedPtr filter return maybeResult #if ENABLE_OVERLOADING data RecentFilterGetNameMethodInfo instance (signature ~ (m (Maybe T.Text)), MonadIO m, IsRecentFilter a) => O.MethodInfo RecentFilterGetNameMethodInfo a signature where overloadedMethod _ = recentFilterGetName #endif -- method RecentFilter::get_needed -- method type : OrdinaryMethod -- Args : [Arg {argCName = "filter", argType = TInterface (Name {namespace = "Gtk", name = "RecentFilter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkRecentFilter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gtk", name = "RecentFilterFlags"})) -- throws : False -- Skip return : False foreign import ccall "gtk_recent_filter_get_needed" gtk_recent_filter_get_needed :: Ptr RecentFilter -> -- filter : TInterface (Name {namespace = "Gtk", name = "RecentFilter"}) IO CUInt {- | Gets the fields that need to be filled in for the 'GI.Gtk.Structs.RecentFilterInfo.RecentFilterInfo' passed to 'GI.Gtk.Objects.RecentFilter.recentFilterFilter' This function will not typically be used by applications; it is intended principally for use in the implementation of 'GI.Gtk.Interfaces.RecentChooser.RecentChooser'. /Since: 2.10/ -} recentFilterGetNeeded :: (B.CallStack.HasCallStack, MonadIO m, IsRecentFilter a) => a {- ^ /@filter@/: a 'GI.Gtk.Objects.RecentFilter.RecentFilter' -} -> m [Gtk.Flags.RecentFilterFlags] {- ^ __Returns:__ bitfield of flags indicating needed fields when calling 'GI.Gtk.Objects.RecentFilter.recentFilterFilter' -} recentFilterGetNeeded filter = liftIO $ do filter' <- unsafeManagedPtrCastPtr filter result <- gtk_recent_filter_get_needed filter' let result' = wordToGFlags result touchManagedPtr filter return result' #if ENABLE_OVERLOADING data RecentFilterGetNeededMethodInfo instance (signature ~ (m [Gtk.Flags.RecentFilterFlags]), MonadIO m, IsRecentFilter a) => O.MethodInfo RecentFilterGetNeededMethodInfo a signature where overloadedMethod _ = recentFilterGetNeeded #endif -- method RecentFilter::set_name -- method type : OrdinaryMethod -- Args : [Arg {argCName = "filter", argType = TInterface (Name {namespace = "Gtk", name = "RecentFilter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkRecentFilter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "then human readable name of @filter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gtk_recent_filter_set_name" gtk_recent_filter_set_name :: Ptr RecentFilter -> -- filter : TInterface (Name {namespace = "Gtk", name = "RecentFilter"}) CString -> -- name : TBasicType TUTF8 IO () {- | Sets the human-readable name of the filter; this is the string that will be displayed in the recently used resources selector user interface if there is a selectable list of filters. /Since: 2.10/ -} recentFilterSetName :: (B.CallStack.HasCallStack, MonadIO m, IsRecentFilter a) => a {- ^ /@filter@/: a 'GI.Gtk.Objects.RecentFilter.RecentFilter' -} -> T.Text {- ^ /@name@/: then human readable name of /@filter@/ -} -> m () recentFilterSetName filter name = liftIO $ do filter' <- unsafeManagedPtrCastPtr filter name' <- textToCString name gtk_recent_filter_set_name filter' name' touchManagedPtr filter freeMem name' return () #if ENABLE_OVERLOADING data RecentFilterSetNameMethodInfo instance (signature ~ (T.Text -> m ()), MonadIO m, IsRecentFilter a) => O.MethodInfo RecentFilterSetNameMethodInfo a signature where overloadedMethod _ = recentFilterSetName #endif