{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gtk.Objects.MultiSorter
(
MultiSorter(..) ,
IsMultiSorter ,
toMultiSorter ,
#if defined(ENABLE_OVERLOADING)
ResolveMultiSorterMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
MultiSorterAppendMethodInfo ,
#endif
multiSorterAppend ,
multiSorterNew ,
#if defined(ENABLE_OVERLOADING)
MultiSorterRemoveMethodInfo ,
#endif
multiSorterRemove ,
#if defined(ENABLE_OVERLOADING)
MultiSorterItemTypePropertyInfo ,
#endif
getMultiSorterItemType ,
#if defined(ENABLE_OVERLOADING)
multiSorterItemType ,
#endif
#if defined(ENABLE_OVERLOADING)
MultiSorterNItemsPropertyInfo ,
#endif
getMultiSorterNItems ,
#if defined(ENABLE_OVERLOADING)
multiSorterNItems ,
#endif
) 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.GHashTable as B.GHT
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.Coerce as Coerce
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.Sorter as Gtk.Sorter
newtype MultiSorter = MultiSorter (SP.ManagedPtr MultiSorter)
deriving (MultiSorter -> MultiSorter -> Bool
(MultiSorter -> MultiSorter -> Bool)
-> (MultiSorter -> MultiSorter -> Bool) -> Eq MultiSorter
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MultiSorter -> MultiSorter -> Bool
== :: MultiSorter -> MultiSorter -> Bool
$c/= :: MultiSorter -> MultiSorter -> Bool
/= :: MultiSorter -> MultiSorter -> Bool
Eq)
instance SP.ManagedPtrNewtype MultiSorter where
toManagedPtr :: MultiSorter -> ManagedPtr MultiSorter
toManagedPtr (MultiSorter ManagedPtr MultiSorter
p) = ManagedPtr MultiSorter
p
foreign import ccall "gtk_multi_sorter_get_type"
c_gtk_multi_sorter_get_type :: IO B.Types.GType
instance B.Types.TypedObject MultiSorter where
glibType :: IO GType
glibType = IO GType
c_gtk_multi_sorter_get_type
instance B.Types.GObject MultiSorter
class (SP.GObject o, O.IsDescendantOf MultiSorter o) => IsMultiSorter o
instance (SP.GObject o, O.IsDescendantOf MultiSorter o) => IsMultiSorter o
instance O.HasParentTypes MultiSorter
type instance O.ParentTypes MultiSorter = '[Gtk.Sorter.Sorter, GObject.Object.Object, Gio.ListModel.ListModel, Gtk.Buildable.Buildable]
toMultiSorter :: (MIO.MonadIO m, IsMultiSorter o) => o -> m MultiSorter
toMultiSorter :: forall (m :: * -> *) o.
(MonadIO m, IsMultiSorter o) =>
o -> m MultiSorter
toMultiSorter = IO MultiSorter -> m MultiSorter
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO MultiSorter -> m MultiSorter)
-> (o -> IO MultiSorter) -> o -> m MultiSorter
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr MultiSorter -> MultiSorter) -> o -> IO MultiSorter
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr MultiSorter -> MultiSorter
MultiSorter
instance B.GValue.IsGValue (Maybe MultiSorter) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gtk_multi_sorter_get_type
gvalueSet_ :: Ptr GValue -> Maybe MultiSorter -> IO ()
gvalueSet_ Ptr GValue
gv Maybe MultiSorter
P.Nothing = Ptr GValue -> Ptr MultiSorter -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr MultiSorter
forall a. Ptr a
FP.nullPtr :: FP.Ptr MultiSorter)
gvalueSet_ Ptr GValue
gv (P.Just MultiSorter
obj) = MultiSorter -> (Ptr MultiSorter -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr MultiSorter
obj (Ptr GValue -> Ptr MultiSorter -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe MultiSorter)
gvalueGet_ Ptr GValue
gv = do
Ptr MultiSorter
ptr <- Ptr GValue -> IO (Ptr MultiSorter)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr MultiSorter)
if Ptr MultiSorter
ptr Ptr MultiSorter -> Ptr MultiSorter -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr MultiSorter
forall a. Ptr a
FP.nullPtr
then MultiSorter -> Maybe MultiSorter
forall a. a -> Maybe a
P.Just (MultiSorter -> Maybe MultiSorter)
-> IO MultiSorter -> IO (Maybe MultiSorter)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr MultiSorter -> MultiSorter)
-> Ptr MultiSorter -> IO MultiSorter
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr MultiSorter -> MultiSorter
MultiSorter Ptr MultiSorter
ptr
else Maybe MultiSorter -> IO (Maybe MultiSorter)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe MultiSorter
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveMultiSorterMethod (t :: Symbol) (o :: *) :: * where
ResolveMultiSorterMethod "append" o = MultiSorterAppendMethodInfo
ResolveMultiSorterMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveMultiSorterMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveMultiSorterMethod "changed" o = Gtk.Sorter.SorterChangedMethodInfo
ResolveMultiSorterMethod "compare" o = Gtk.Sorter.SorterCompareMethodInfo
ResolveMultiSorterMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveMultiSorterMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveMultiSorterMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveMultiSorterMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveMultiSorterMethod "itemsChanged" o = Gio.ListModel.ListModelItemsChangedMethodInfo
ResolveMultiSorterMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveMultiSorterMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveMultiSorterMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveMultiSorterMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveMultiSorterMethod "remove" o = MultiSorterRemoveMethodInfo
ResolveMultiSorterMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveMultiSorterMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveMultiSorterMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveMultiSorterMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveMultiSorterMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveMultiSorterMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveMultiSorterMethod "getBuildableId" o = Gtk.Buildable.BuildableGetBuildableIdMethodInfo
ResolveMultiSorterMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveMultiSorterMethod "getItem" o = Gio.ListModel.ListModelGetItemMethodInfo
ResolveMultiSorterMethod "getItemType" o = Gio.ListModel.ListModelGetItemTypeMethodInfo
ResolveMultiSorterMethod "getNItems" o = Gio.ListModel.ListModelGetNItemsMethodInfo
ResolveMultiSorterMethod "getOrder" o = Gtk.Sorter.SorterGetOrderMethodInfo
ResolveMultiSorterMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveMultiSorterMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveMultiSorterMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveMultiSorterMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveMultiSorterMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveMultiSorterMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveMultiSorterMethod t MultiSorter, O.OverloadedMethod info MultiSorter p) => OL.IsLabel t (MultiSorter -> 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 ~ ResolveMultiSorterMethod t MultiSorter, O.OverloadedMethod info MultiSorter p, R.HasField t MultiSorter p) => R.HasField t MultiSorter p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveMultiSorterMethod t MultiSorter, O.OverloadedMethodInfo info MultiSorter) => OL.IsLabel t (O.MethodProxy info MultiSorter) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
getMultiSorterItemType :: (MonadIO m, IsMultiSorter o) => o -> m GType
getMultiSorterItemType :: forall (m :: * -> *) o.
(MonadIO m, IsMultiSorter o) =>
o -> m GType
getMultiSorterItemType o
obj = IO GType -> m GType
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO GType -> m GType) -> IO GType -> m GType
forall a b. (a -> b) -> a -> b
$ o -> String -> IO GType
forall a. GObject a => a -> String -> IO GType
B.Properties.getObjectPropertyGType o
obj String
"item-type"
#if defined(ENABLE_OVERLOADING)
data MultiSorterItemTypePropertyInfo
instance AttrInfo MultiSorterItemTypePropertyInfo where
type AttrAllowedOps MultiSorterItemTypePropertyInfo = '[ 'AttrGet]
type AttrBaseTypeConstraint MultiSorterItemTypePropertyInfo = IsMultiSorter
type AttrSetTypeConstraint MultiSorterItemTypePropertyInfo = (~) ()
type AttrTransferTypeConstraint MultiSorterItemTypePropertyInfo = (~) ()
type AttrTransferType MultiSorterItemTypePropertyInfo = ()
type AttrGetType MultiSorterItemTypePropertyInfo = GType
type AttrLabel MultiSorterItemTypePropertyInfo = "item-type"
type AttrOrigin MultiSorterItemTypePropertyInfo = MultiSorter
attrGet = getMultiSorterItemType
attrSet = undefined
attrTransfer _ = undefined
attrConstruct = undefined
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gtk.Objects.MultiSorter.itemType"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-MultiSorter.html#g:attr:itemType"
})
#endif
getMultiSorterNItems :: (MonadIO m, IsMultiSorter o) => o -> m Word32
getMultiSorterNItems :: forall (m :: * -> *) o.
(MonadIO m, IsMultiSorter o) =>
o -> m Word32
getMultiSorterNItems o
obj = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Word32
forall a. GObject a => a -> String -> IO Word32
B.Properties.getObjectPropertyUInt32 o
obj String
"n-items"
#if defined(ENABLE_OVERLOADING)
data MultiSorterNItemsPropertyInfo
instance AttrInfo MultiSorterNItemsPropertyInfo where
type AttrAllowedOps MultiSorterNItemsPropertyInfo = '[ 'AttrGet]
type AttrBaseTypeConstraint MultiSorterNItemsPropertyInfo = IsMultiSorter
type AttrSetTypeConstraint MultiSorterNItemsPropertyInfo = (~) ()
type AttrTransferTypeConstraint MultiSorterNItemsPropertyInfo = (~) ()
type AttrTransferType MultiSorterNItemsPropertyInfo = ()
type AttrGetType MultiSorterNItemsPropertyInfo = Word32
type AttrLabel MultiSorterNItemsPropertyInfo = "n-items"
type AttrOrigin MultiSorterNItemsPropertyInfo = MultiSorter
attrGet = getMultiSorterNItems
attrSet = undefined
attrTransfer _ = undefined
attrConstruct = undefined
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gtk.Objects.MultiSorter.nItems"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-MultiSorter.html#g:attr:nItems"
})
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList MultiSorter
type instance O.AttributeList MultiSorter = MultiSorterAttributeList
type MultiSorterAttributeList = ('[ '("itemType", MultiSorterItemTypePropertyInfo), '("nItems", MultiSorterNItemsPropertyInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
multiSorterItemType :: AttrLabelProxy "itemType"
multiSorterItemType = AttrLabelProxy
multiSorterNItems :: AttrLabelProxy "nItems"
multiSorterNItems = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList MultiSorter = MultiSorterSignalList
type MultiSorterSignalList = ('[ '("changed", Gtk.Sorter.SorterChangedSignalInfo), '("itemsChanged", Gio.ListModel.ListModelItemsChangedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "gtk_multi_sorter_new" gtk_multi_sorter_new ::
IO (Ptr MultiSorter)
multiSorterNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
m MultiSorter
multiSorterNew :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m MultiSorter
multiSorterNew = IO MultiSorter -> m MultiSorter
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MultiSorter -> m MultiSorter)
-> IO MultiSorter -> m MultiSorter
forall a b. (a -> b) -> a -> b
$ do
Ptr MultiSorter
result <- IO (Ptr MultiSorter)
gtk_multi_sorter_new
Text -> Ptr MultiSorter -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"multiSorterNew" Ptr MultiSorter
result
MultiSorter
result' <- ((ManagedPtr MultiSorter -> MultiSorter)
-> Ptr MultiSorter -> IO MultiSorter
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr MultiSorter -> MultiSorter
MultiSorter) Ptr MultiSorter
result
MultiSorter -> IO MultiSorter
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return MultiSorter
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gtk_multi_sorter_append" gtk_multi_sorter_append ::
Ptr MultiSorter ->
Ptr Gtk.Sorter.Sorter ->
IO ()
multiSorterAppend ::
(B.CallStack.HasCallStack, MonadIO m, IsMultiSorter a, Gtk.Sorter.IsSorter b) =>
a
-> b
-> m ()
multiSorterAppend :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsMultiSorter a, IsSorter b) =>
a -> b -> m ()
multiSorterAppend a
self b
sorter = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr MultiSorter
self' <- a -> IO (Ptr MultiSorter)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
Ptr Sorter
sorter' <- b -> IO (Ptr Sorter)
forall a b. (HasCallStack, GObject a) => a -> IO (Ptr b)
B.ManagedPtr.disownObject b
sorter
Ptr MultiSorter -> Ptr Sorter -> IO ()
gtk_multi_sorter_append Ptr MultiSorter
self' Ptr Sorter
sorter'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
sorter
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data MultiSorterAppendMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsMultiSorter a, Gtk.Sorter.IsSorter b) => O.OverloadedMethod MultiSorterAppendMethodInfo a signature where
overloadedMethod = multiSorterAppend
instance O.OverloadedMethodInfo MultiSorterAppendMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gtk.Objects.MultiSorter.multiSorterAppend",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-MultiSorter.html#v:multiSorterAppend"
})
#endif
foreign import ccall "gtk_multi_sorter_remove" gtk_multi_sorter_remove ::
Ptr MultiSorter ->
Word32 ->
IO ()
multiSorterRemove ::
(B.CallStack.HasCallStack, MonadIO m, IsMultiSorter a) =>
a
-> Word32
-> m ()
multiSorterRemove :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMultiSorter a) =>
a -> Word32 -> m ()
multiSorterRemove a
self Word32
position = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr MultiSorter
self' <- a -> IO (Ptr MultiSorter)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
Ptr MultiSorter -> Word32 -> IO ()
gtk_multi_sorter_remove Ptr MultiSorter
self' Word32
position
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data MultiSorterRemoveMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m, IsMultiSorter a) => O.OverloadedMethod MultiSorterRemoveMethodInfo a signature where
overloadedMethod = multiSorterRemove
instance O.OverloadedMethodInfo MultiSorterRemoveMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gtk.Objects.MultiSorter.multiSorterRemove",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-MultiSorter.html#v:multiSorterRemove"
})
#endif