{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gtk.Objects.MultiFilter
(
MultiFilter(..) ,
IsMultiFilter ,
toMultiFilter ,
#if defined(ENABLE_OVERLOADING)
ResolveMultiFilterMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
MultiFilterAppendMethodInfo ,
#endif
multiFilterAppend ,
#if defined(ENABLE_OVERLOADING)
MultiFilterRemoveMethodInfo ,
#endif
multiFilterRemove ,
) 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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
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.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
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 GHC.Records as R
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gio.Interfaces.ListModel as Gio.ListModel
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.Buildable as Gtk.Buildable
import {-# SOURCE #-} qualified GI.Gtk.Objects.Filter as Gtk.Filter
newtype MultiFilter = MultiFilter (SP.ManagedPtr MultiFilter)
deriving (MultiFilter -> MultiFilter -> Bool
(MultiFilter -> MultiFilter -> Bool)
-> (MultiFilter -> MultiFilter -> Bool) -> Eq MultiFilter
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MultiFilter -> MultiFilter -> Bool
$c/= :: MultiFilter -> MultiFilter -> Bool
== :: MultiFilter -> MultiFilter -> Bool
$c== :: MultiFilter -> MultiFilter -> Bool
Eq)
instance SP.ManagedPtrNewtype MultiFilter where
toManagedPtr :: MultiFilter -> ManagedPtr MultiFilter
toManagedPtr (MultiFilter ManagedPtr MultiFilter
p) = ManagedPtr MultiFilter
p
foreign import ccall "gtk_multi_filter_get_type"
c_gtk_multi_filter_get_type :: IO B.Types.GType
instance B.Types.TypedObject MultiFilter where
glibType :: IO GType
glibType = IO GType
c_gtk_multi_filter_get_type
instance B.Types.GObject MultiFilter
class (SP.GObject o, O.IsDescendantOf MultiFilter o) => IsMultiFilter o
instance (SP.GObject o, O.IsDescendantOf MultiFilter o) => IsMultiFilter o
instance O.HasParentTypes MultiFilter
type instance O.ParentTypes MultiFilter = '[Gtk.Filter.Filter, GObject.Object.Object, Gio.ListModel.ListModel, Gtk.Buildable.Buildable]
toMultiFilter :: (MIO.MonadIO m, IsMultiFilter o) => o -> m MultiFilter
toMultiFilter :: forall (m :: * -> *) o.
(MonadIO m, IsMultiFilter o) =>
o -> m MultiFilter
toMultiFilter = IO MultiFilter -> m MultiFilter
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO MultiFilter -> m MultiFilter)
-> (o -> IO MultiFilter) -> o -> m MultiFilter
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr MultiFilter -> MultiFilter) -> o -> IO MultiFilter
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr MultiFilter -> MultiFilter
MultiFilter
instance B.GValue.IsGValue (Maybe MultiFilter) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gtk_multi_filter_get_type
gvalueSet_ :: Ptr GValue -> Maybe MultiFilter -> IO ()
gvalueSet_ Ptr GValue
gv Maybe MultiFilter
P.Nothing = Ptr GValue -> Ptr MultiFilter -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr MultiFilter
forall a. Ptr a
FP.nullPtr :: FP.Ptr MultiFilter)
gvalueSet_ Ptr GValue
gv (P.Just MultiFilter
obj) = MultiFilter -> (Ptr MultiFilter -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr MultiFilter
obj (Ptr GValue -> Ptr MultiFilter -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe MultiFilter)
gvalueGet_ Ptr GValue
gv = do
Ptr MultiFilter
ptr <- Ptr GValue -> IO (Ptr MultiFilter)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr MultiFilter)
if Ptr MultiFilter
ptr Ptr MultiFilter -> Ptr MultiFilter -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr MultiFilter
forall a. Ptr a
FP.nullPtr
then MultiFilter -> Maybe MultiFilter
forall a. a -> Maybe a
P.Just (MultiFilter -> Maybe MultiFilter)
-> IO MultiFilter -> IO (Maybe MultiFilter)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr MultiFilter -> MultiFilter)
-> Ptr MultiFilter -> IO MultiFilter
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr MultiFilter -> MultiFilter
MultiFilter Ptr MultiFilter
ptr
else Maybe MultiFilter -> IO (Maybe MultiFilter)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe MultiFilter
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveMultiFilterMethod (t :: Symbol) (o :: *) :: * where
ResolveMultiFilterMethod "append" o = MultiFilterAppendMethodInfo
ResolveMultiFilterMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveMultiFilterMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveMultiFilterMethod "changed" o = Gtk.Filter.FilterChangedMethodInfo
ResolveMultiFilterMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveMultiFilterMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveMultiFilterMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveMultiFilterMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveMultiFilterMethod "itemsChanged" o = Gio.ListModel.ListModelItemsChangedMethodInfo
ResolveMultiFilterMethod "match" o = Gtk.Filter.FilterMatchMethodInfo
ResolveMultiFilterMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveMultiFilterMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveMultiFilterMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveMultiFilterMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveMultiFilterMethod "remove" o = MultiFilterRemoveMethodInfo
ResolveMultiFilterMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveMultiFilterMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveMultiFilterMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveMultiFilterMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveMultiFilterMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveMultiFilterMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveMultiFilterMethod "getBuildableId" o = Gtk.Buildable.BuildableGetBuildableIdMethodInfo
ResolveMultiFilterMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveMultiFilterMethod "getItem" o = Gio.ListModel.ListModelGetItemMethodInfo
ResolveMultiFilterMethod "getItemType" o = Gio.ListModel.ListModelGetItemTypeMethodInfo
ResolveMultiFilterMethod "getNItems" o = Gio.ListModel.ListModelGetNItemsMethodInfo
ResolveMultiFilterMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveMultiFilterMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveMultiFilterMethod "getStrictness" o = Gtk.Filter.FilterGetStrictnessMethodInfo
ResolveMultiFilterMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveMultiFilterMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveMultiFilterMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveMultiFilterMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveMultiFilterMethod t MultiFilter, O.OverloadedMethod info MultiFilter p) => OL.IsLabel t (MultiFilter -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveMultiFilterMethod t MultiFilter, O.OverloadedMethod info MultiFilter p, R.HasField t MultiFilter p) => R.HasField t MultiFilter p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveMultiFilterMethod t MultiFilter, O.OverloadedMethodInfo info MultiFilter) => OL.IsLabel t (O.MethodProxy info MultiFilter) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList MultiFilter
type instance O.AttributeList MultiFilter = MultiFilterAttributeList
type MultiFilterAttributeList = ('[ ] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList MultiFilter = MultiFilterSignalList
type MultiFilterSignalList = ('[ '("changed", Gtk.Filter.FilterChangedSignalInfo), '("itemsChanged", Gio.ListModel.ListModelItemsChangedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "gtk_multi_filter_append" gtk_multi_filter_append ::
Ptr MultiFilter ->
Ptr Gtk.Filter.Filter ->
IO ()
multiFilterAppend ::
(B.CallStack.HasCallStack, MonadIO m, IsMultiFilter a, Gtk.Filter.IsFilter b) =>
a
-> b
-> m ()
multiFilterAppend :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsMultiFilter a, IsFilter b) =>
a -> b -> m ()
multiFilterAppend a
self b
filter = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr MultiFilter
self' <- a -> IO (Ptr MultiFilter)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
Ptr Filter
filter' <- b -> IO (Ptr Filter)
forall a b. (HasCallStack, GObject a) => a -> IO (Ptr b)
B.ManagedPtr.disownObject b
filter
Ptr MultiFilter -> Ptr Filter -> IO ()
gtk_multi_filter_append Ptr MultiFilter
self' Ptr Filter
filter'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
filter
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data MultiFilterAppendMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsMultiFilter a, Gtk.Filter.IsFilter b) => O.OverloadedMethod MultiFilterAppendMethodInfo a signature where
overloadedMethod = multiFilterAppend
instance O.OverloadedMethodInfo MultiFilterAppendMethodInfo a where
overloadedMethodInfo = O.MethodInfo {
O.overloadedMethodName = "GI.Gtk.Objects.MultiFilter.multiFilterAppend",
O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-MultiFilter.html#v:multiFilterAppend"
}
#endif
foreign import ccall "gtk_multi_filter_remove" gtk_multi_filter_remove ::
Ptr MultiFilter ->
Word32 ->
IO ()
multiFilterRemove ::
(B.CallStack.HasCallStack, MonadIO m, IsMultiFilter a) =>
a
-> Word32
-> m ()
multiFilterRemove :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMultiFilter a) =>
a -> Word32 -> m ()
multiFilterRemove a
self Word32
position = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr MultiFilter
self' <- a -> IO (Ptr MultiFilter)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
Ptr MultiFilter -> Word32 -> IO ()
gtk_multi_filter_remove Ptr MultiFilter
self' Word32
position
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data MultiFilterRemoveMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m, IsMultiFilter a) => O.OverloadedMethod MultiFilterRemoveMethodInfo a signature where
overloadedMethod = multiFilterRemove
instance O.OverloadedMethodInfo MultiFilterRemoveMethodInfo a where
overloadedMethodInfo = O.MethodInfo {
O.overloadedMethodName = "GI.Gtk.Objects.MultiFilter.multiFilterRemove",
O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-MultiFilter.html#v:multiFilterRemove"
}
#endif