{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gtk.Structs.TreeIter
(
TreeIter(..) ,
newZeroTreeIter ,
#if defined(ENABLE_OVERLOADING)
ResolveTreeIterMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
TreeIterCopyMethodInfo ,
#endif
treeIterCopy ,
#if defined(ENABLE_OVERLOADING)
TreeIterFreeMethodInfo ,
#endif
treeIterFree ,
getTreeIterStamp ,
setTreeIterStamp ,
#if defined(ENABLE_OVERLOADING)
treeIter_stamp ,
#endif
clearTreeIterUserData ,
getTreeIterUserData ,
setTreeIterUserData ,
#if defined(ENABLE_OVERLOADING)
treeIter_userData ,
#endif
clearTreeIterUserData2 ,
getTreeIterUserData2 ,
setTreeIterUserData2 ,
#if defined(ENABLE_OVERLOADING)
treeIter_userData2 ,
#endif
clearTreeIterUserData3 ,
getTreeIterUserData3 ,
setTreeIterUserData3 ,
#if defined(ENABLE_OVERLOADING)
treeIter_userData3 ,
#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.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
newtype TreeIter = TreeIter (SP.ManagedPtr TreeIter)
deriving (TreeIter -> TreeIter -> Bool
(TreeIter -> TreeIter -> Bool)
-> (TreeIter -> TreeIter -> Bool) -> Eq TreeIter
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TreeIter -> TreeIter -> Bool
$c/= :: TreeIter -> TreeIter -> Bool
== :: TreeIter -> TreeIter -> Bool
$c== :: TreeIter -> TreeIter -> Bool
Eq)
instance SP.ManagedPtrNewtype TreeIter where
toManagedPtr :: TreeIter -> ManagedPtr TreeIter
toManagedPtr (TreeIter ManagedPtr TreeIter
p) = ManagedPtr TreeIter
p
foreign import ccall "gtk_tree_iter_get_type" c_gtk_tree_iter_get_type ::
IO GType
type instance O.ParentTypes TreeIter = '[]
instance O.HasParentTypes TreeIter
instance B.Types.TypedObject TreeIter where
glibType :: IO GType
glibType = IO GType
c_gtk_tree_iter_get_type
instance B.Types.GBoxed TreeIter
instance B.GValue.IsGValue (Maybe TreeIter) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gtk_tree_iter_get_type
gvalueSet_ :: Ptr GValue -> Maybe TreeIter -> IO ()
gvalueSet_ Ptr GValue
gv Maybe TreeIter
P.Nothing = Ptr GValue -> Ptr TreeIter -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv (Ptr TreeIter
forall a. Ptr a
FP.nullPtr :: FP.Ptr TreeIter)
gvalueSet_ Ptr GValue
gv (P.Just TreeIter
obj) = TreeIter -> (Ptr TreeIter -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr TreeIter
obj (Ptr GValue -> Ptr TreeIter -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe TreeIter)
gvalueGet_ Ptr GValue
gv = do
Ptr TreeIter
ptr <- Ptr GValue -> IO (Ptr TreeIter)
forall b. Ptr GValue -> IO (Ptr b)
B.GValue.get_boxed Ptr GValue
gv :: IO (Ptr TreeIter)
if Ptr TreeIter
ptr Ptr TreeIter -> Ptr TreeIter -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr TreeIter
forall a. Ptr a
FP.nullPtr
then TreeIter -> Maybe TreeIter
forall a. a -> Maybe a
P.Just (TreeIter -> Maybe TreeIter) -> IO TreeIter -> IO (Maybe TreeIter)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr TreeIter -> TreeIter) -> Ptr TreeIter -> IO TreeIter
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.newBoxed ManagedPtr TreeIter -> TreeIter
TreeIter Ptr TreeIter
ptr
else Maybe TreeIter -> IO (Maybe TreeIter)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe TreeIter
forall a. Maybe a
P.Nothing
newZeroTreeIter :: MonadIO m => m TreeIter
newZeroTreeIter :: forall (m :: * -> *). MonadIO m => m TreeIter
newZeroTreeIter = IO TreeIter -> m TreeIter
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TreeIter -> m TreeIter) -> IO TreeIter -> m TreeIter
forall a b. (a -> b) -> a -> b
$ Int -> IO (Ptr TreeIter)
forall a. GBoxed a => Int -> IO (Ptr a)
callocBoxedBytes Int
32 IO (Ptr TreeIter) -> (Ptr TreeIter -> IO TreeIter) -> IO TreeIter
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (ManagedPtr TreeIter -> TreeIter) -> Ptr TreeIter -> IO TreeIter
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TreeIter -> TreeIter
TreeIter
instance tag ~ 'AttrSet => Constructible TreeIter tag where
new :: forall (m :: * -> *).
MonadIO m =>
(ManagedPtr TreeIter -> TreeIter)
-> [AttrOp TreeIter tag] -> m TreeIter
new ManagedPtr TreeIter -> TreeIter
_ [AttrOp TreeIter tag]
attrs = do
TreeIter
o <- m TreeIter
forall (m :: * -> *). MonadIO m => m TreeIter
newZeroTreeIter
TreeIter -> [AttrOp TreeIter 'AttrSet] -> m ()
forall o (m :: * -> *).
MonadIO m =>
o -> [AttrOp o 'AttrSet] -> m ()
GI.Attributes.set TreeIter
o [AttrOp TreeIter tag]
[AttrOp TreeIter 'AttrSet]
attrs
TreeIter -> m TreeIter
forall (m :: * -> *) a. Monad m => a -> m a
return TreeIter
o
getTreeIterStamp :: MonadIO m => TreeIter -> m Int32
getTreeIterStamp :: forall (m :: * -> *). MonadIO m => TreeIter -> m Int32
getTreeIterStamp TreeIter
s = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ TreeIter -> (Ptr TreeIter -> IO Int32) -> IO Int32
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TreeIter
s ((Ptr TreeIter -> IO Int32) -> IO Int32)
-> (Ptr TreeIter -> IO Int32) -> IO Int32
forall a b. (a -> b) -> a -> b
$ \Ptr TreeIter
ptr -> do
Int32
val <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek (Ptr TreeIter
ptr Ptr TreeIter -> Int -> Ptr Int32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0) :: IO Int32
Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
val
setTreeIterStamp :: MonadIO m => TreeIter -> Int32 -> m ()
setTreeIterStamp :: forall (m :: * -> *). MonadIO m => TreeIter -> Int32 -> m ()
setTreeIterStamp TreeIter
s Int32
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TreeIter -> (Ptr TreeIter -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TreeIter
s ((Ptr TreeIter -> IO ()) -> IO ())
-> (Ptr TreeIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TreeIter
ptr -> do
Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TreeIter
ptr Ptr TreeIter -> Int -> Ptr Int32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0) (Int32
val :: Int32)
#if defined(ENABLE_OVERLOADING)
data TreeIterStampFieldInfo
instance AttrInfo TreeIterStampFieldInfo where
type AttrBaseTypeConstraint TreeIterStampFieldInfo = (~) TreeIter
type AttrAllowedOps TreeIterStampFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint TreeIterStampFieldInfo = (~) Int32
type AttrTransferTypeConstraint TreeIterStampFieldInfo = (~)Int32
type AttrTransferType TreeIterStampFieldInfo = Int32
type AttrGetType TreeIterStampFieldInfo = Int32
type AttrLabel TreeIterStampFieldInfo = "stamp"
type AttrOrigin TreeIterStampFieldInfo = TreeIter
attrGet = getTreeIterStamp
attrSet = setTreeIterStamp
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
treeIter_stamp :: AttrLabelProxy "stamp"
treeIter_stamp = AttrLabelProxy
#endif
getTreeIterUserData :: MonadIO m => TreeIter -> m (Ptr ())
getTreeIterUserData :: forall (m :: * -> *). MonadIO m => TreeIter -> m (Ptr ())
getTreeIterUserData TreeIter
s = IO (Ptr ()) -> m (Ptr ())
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Ptr ()) -> m (Ptr ())) -> IO (Ptr ()) -> m (Ptr ())
forall a b. (a -> b) -> a -> b
$ TreeIter -> (Ptr TreeIter -> IO (Ptr ())) -> IO (Ptr ())
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TreeIter
s ((Ptr TreeIter -> IO (Ptr ())) -> IO (Ptr ()))
-> (Ptr TreeIter -> IO (Ptr ())) -> IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ \Ptr TreeIter
ptr -> do
Ptr ()
val <- Ptr (Ptr ()) -> IO (Ptr ())
forall a. Storable a => Ptr a -> IO a
peek (Ptr TreeIter
ptr Ptr TreeIter -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8) :: IO (Ptr ())
Ptr () -> IO (Ptr ())
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr ()
val
setTreeIterUserData :: MonadIO m => TreeIter -> Ptr () -> m ()
setTreeIterUserData :: forall (m :: * -> *). MonadIO m => TreeIter -> Ptr () -> m ()
setTreeIterUserData TreeIter
s Ptr ()
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TreeIter -> (Ptr TreeIter -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TreeIter
s ((Ptr TreeIter -> IO ()) -> IO ())
-> (Ptr TreeIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TreeIter
ptr -> do
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TreeIter
ptr Ptr TreeIter -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8) (Ptr ()
val :: Ptr ())
clearTreeIterUserData :: MonadIO m => TreeIter -> m ()
clearTreeIterUserData :: forall (m :: * -> *). MonadIO m => TreeIter -> m ()
clearTreeIterUserData TreeIter
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TreeIter -> (Ptr TreeIter -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TreeIter
s ((Ptr TreeIter -> IO ()) -> IO ())
-> (Ptr TreeIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TreeIter
ptr -> do
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TreeIter
ptr Ptr TreeIter -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8) (Ptr ()
forall a. Ptr a
FP.nullPtr :: Ptr ())
#if defined(ENABLE_OVERLOADING)
data TreeIterUserDataFieldInfo
instance AttrInfo TreeIterUserDataFieldInfo where
type AttrBaseTypeConstraint TreeIterUserDataFieldInfo = (~) TreeIter
type AttrAllowedOps TreeIterUserDataFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint TreeIterUserDataFieldInfo = (~) (Ptr ())
type AttrTransferTypeConstraint TreeIterUserDataFieldInfo = (~)(Ptr ())
type AttrTransferType TreeIterUserDataFieldInfo = (Ptr ())
type AttrGetType TreeIterUserDataFieldInfo = Ptr ()
type AttrLabel TreeIterUserDataFieldInfo = "user_data"
type AttrOrigin TreeIterUserDataFieldInfo = TreeIter
attrGet = getTreeIterUserData
attrSet = setTreeIterUserData
attrConstruct = undefined
attrClear = clearTreeIterUserData
attrTransfer _ v = do
return v
treeIter_userData :: AttrLabelProxy "userData"
treeIter_userData = AttrLabelProxy
#endif
getTreeIterUserData2 :: MonadIO m => TreeIter -> m (Ptr ())
getTreeIterUserData2 :: forall (m :: * -> *). MonadIO m => TreeIter -> m (Ptr ())
getTreeIterUserData2 TreeIter
s = IO (Ptr ()) -> m (Ptr ())
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Ptr ()) -> m (Ptr ())) -> IO (Ptr ()) -> m (Ptr ())
forall a b. (a -> b) -> a -> b
$ TreeIter -> (Ptr TreeIter -> IO (Ptr ())) -> IO (Ptr ())
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TreeIter
s ((Ptr TreeIter -> IO (Ptr ())) -> IO (Ptr ()))
-> (Ptr TreeIter -> IO (Ptr ())) -> IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ \Ptr TreeIter
ptr -> do
Ptr ()
val <- Ptr (Ptr ()) -> IO (Ptr ())
forall a. Storable a => Ptr a -> IO a
peek (Ptr TreeIter
ptr Ptr TreeIter -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16) :: IO (Ptr ())
Ptr () -> IO (Ptr ())
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr ()
val
setTreeIterUserData2 :: MonadIO m => TreeIter -> Ptr () -> m ()
setTreeIterUserData2 :: forall (m :: * -> *). MonadIO m => TreeIter -> Ptr () -> m ()
setTreeIterUserData2 TreeIter
s Ptr ()
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TreeIter -> (Ptr TreeIter -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TreeIter
s ((Ptr TreeIter -> IO ()) -> IO ())
-> (Ptr TreeIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TreeIter
ptr -> do
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TreeIter
ptr Ptr TreeIter -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16) (Ptr ()
val :: Ptr ())
clearTreeIterUserData2 :: MonadIO m => TreeIter -> m ()
clearTreeIterUserData2 :: forall (m :: * -> *). MonadIO m => TreeIter -> m ()
clearTreeIterUserData2 TreeIter
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TreeIter -> (Ptr TreeIter -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TreeIter
s ((Ptr TreeIter -> IO ()) -> IO ())
-> (Ptr TreeIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TreeIter
ptr -> do
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TreeIter
ptr Ptr TreeIter -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16) (Ptr ()
forall a. Ptr a
FP.nullPtr :: Ptr ())
#if defined(ENABLE_OVERLOADING)
data TreeIterUserData2FieldInfo
instance AttrInfo TreeIterUserData2FieldInfo where
type AttrBaseTypeConstraint TreeIterUserData2FieldInfo = (~) TreeIter
type AttrAllowedOps TreeIterUserData2FieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint TreeIterUserData2FieldInfo = (~) (Ptr ())
type AttrTransferTypeConstraint TreeIterUserData2FieldInfo = (~)(Ptr ())
type AttrTransferType TreeIterUserData2FieldInfo = (Ptr ())
type AttrGetType TreeIterUserData2FieldInfo = Ptr ()
type AttrLabel TreeIterUserData2FieldInfo = "user_data2"
type AttrOrigin TreeIterUserData2FieldInfo = TreeIter
attrGet = getTreeIterUserData2
attrSet = setTreeIterUserData2
attrConstruct = undefined
attrClear = clearTreeIterUserData2
attrTransfer _ v = do
return v
treeIter_userData2 :: AttrLabelProxy "userData2"
treeIter_userData2 = AttrLabelProxy
#endif
getTreeIterUserData3 :: MonadIO m => TreeIter -> m (Ptr ())
getTreeIterUserData3 :: forall (m :: * -> *). MonadIO m => TreeIter -> m (Ptr ())
getTreeIterUserData3 TreeIter
s = IO (Ptr ()) -> m (Ptr ())
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Ptr ()) -> m (Ptr ())) -> IO (Ptr ()) -> m (Ptr ())
forall a b. (a -> b) -> a -> b
$ TreeIter -> (Ptr TreeIter -> IO (Ptr ())) -> IO (Ptr ())
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TreeIter
s ((Ptr TreeIter -> IO (Ptr ())) -> IO (Ptr ()))
-> (Ptr TreeIter -> IO (Ptr ())) -> IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ \Ptr TreeIter
ptr -> do
Ptr ()
val <- Ptr (Ptr ()) -> IO (Ptr ())
forall a. Storable a => Ptr a -> IO a
peek (Ptr TreeIter
ptr Ptr TreeIter -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24) :: IO (Ptr ())
Ptr () -> IO (Ptr ())
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr ()
val
setTreeIterUserData3 :: MonadIO m => TreeIter -> Ptr () -> m ()
setTreeIterUserData3 :: forall (m :: * -> *). MonadIO m => TreeIter -> Ptr () -> m ()
setTreeIterUserData3 TreeIter
s Ptr ()
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TreeIter -> (Ptr TreeIter -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TreeIter
s ((Ptr TreeIter -> IO ()) -> IO ())
-> (Ptr TreeIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TreeIter
ptr -> do
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TreeIter
ptr Ptr TreeIter -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24) (Ptr ()
val :: Ptr ())
clearTreeIterUserData3 :: MonadIO m => TreeIter -> m ()
clearTreeIterUserData3 :: forall (m :: * -> *). MonadIO m => TreeIter -> m ()
clearTreeIterUserData3 TreeIter
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ TreeIter -> (Ptr TreeIter -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr TreeIter
s ((Ptr TreeIter -> IO ()) -> IO ())
-> (Ptr TreeIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TreeIter
ptr -> do
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr TreeIter
ptr Ptr TreeIter -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24) (Ptr ()
forall a. Ptr a
FP.nullPtr :: Ptr ())
#if defined(ENABLE_OVERLOADING)
data TreeIterUserData3FieldInfo
instance AttrInfo TreeIterUserData3FieldInfo where
type AttrBaseTypeConstraint TreeIterUserData3FieldInfo = (~) TreeIter
type AttrAllowedOps TreeIterUserData3FieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint TreeIterUserData3FieldInfo = (~) (Ptr ())
type AttrTransferTypeConstraint TreeIterUserData3FieldInfo = (~)(Ptr ())
type AttrTransferType TreeIterUserData3FieldInfo = (Ptr ())
type AttrGetType TreeIterUserData3FieldInfo = Ptr ()
type AttrLabel TreeIterUserData3FieldInfo = "user_data3"
type AttrOrigin TreeIterUserData3FieldInfo = TreeIter
attrGet = getTreeIterUserData3
attrSet = setTreeIterUserData3
attrConstruct = undefined
attrClear = clearTreeIterUserData3
attrTransfer _ v = do
return v
treeIter_userData3 :: AttrLabelProxy "userData3"
treeIter_userData3 = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList TreeIter
type instance O.AttributeList TreeIter = TreeIterAttributeList
type TreeIterAttributeList = ('[ '("stamp", TreeIterStampFieldInfo), '("userData", TreeIterUserDataFieldInfo), '("userData2", TreeIterUserData2FieldInfo), '("userData3", TreeIterUserData3FieldInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "gtk_tree_iter_copy" gtk_tree_iter_copy ::
Ptr TreeIter ->
IO (Ptr TreeIter)
treeIterCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreeIter
-> m TreeIter
treeIterCopy :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
TreeIter -> m TreeIter
treeIterCopy TreeIter
iter = IO TreeIter -> m TreeIter
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TreeIter -> m TreeIter) -> IO TreeIter -> m TreeIter
forall a b. (a -> b) -> a -> b
$ do
Ptr TreeIter
iter' <- TreeIter -> IO (Ptr TreeIter)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreeIter
iter
Ptr TreeIter
result <- Ptr TreeIter -> IO (Ptr TreeIter)
gtk_tree_iter_copy Ptr TreeIter
iter'
Text -> Ptr TreeIter -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"treeIterCopy" Ptr TreeIter
result
TreeIter
result' <- ((ManagedPtr TreeIter -> TreeIter) -> Ptr TreeIter -> IO TreeIter
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TreeIter -> TreeIter
TreeIter) Ptr TreeIter
result
TreeIter -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreeIter
iter
TreeIter -> IO TreeIter
forall (m :: * -> *) a. Monad m => a -> m a
return TreeIter
result'
#if defined(ENABLE_OVERLOADING)
data TreeIterCopyMethodInfo
instance (signature ~ (m TreeIter), MonadIO m) => O.OverloadedMethod TreeIterCopyMethodInfo TreeIter signature where
overloadedMethod = treeIterCopy
instance O.OverloadedMethodInfo TreeIterCopyMethodInfo TreeIter where
overloadedMethodInfo = O.MethodInfo {
O.overloadedMethodName = "GI.Gtk.Structs.TreeIter.treeIterCopy",
O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Structs-TreeIter.html#v:treeIterCopy"
}
#endif
foreign import ccall "gtk_tree_iter_free" gtk_tree_iter_free ::
Ptr TreeIter ->
IO ()
treeIterFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreeIter
-> m ()
treeIterFree :: forall (m :: * -> *). (HasCallStack, MonadIO m) => TreeIter -> m ()
treeIterFree TreeIter
iter = 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 TreeIter
iter' <- TreeIter -> IO (Ptr TreeIter)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreeIter
iter
Ptr TreeIter -> IO ()
gtk_tree_iter_free Ptr TreeIter
iter'
TreeIter -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreeIter
iter
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data TreeIterFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.OverloadedMethod TreeIterFreeMethodInfo TreeIter signature where
overloadedMethod = treeIterFree
instance O.OverloadedMethodInfo TreeIterFreeMethodInfo TreeIter where
overloadedMethodInfo = O.MethodInfo {
O.overloadedMethodName = "GI.Gtk.Structs.TreeIter.treeIterFree",
O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Structs-TreeIter.html#v:treeIterFree"
}
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveTreeIterMethod (t :: Symbol) (o :: *) :: * where
ResolveTreeIterMethod "copy" o = TreeIterCopyMethodInfo
ResolveTreeIterMethod "free" o = TreeIterFreeMethodInfo
ResolveTreeIterMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveTreeIterMethod t TreeIter, O.OverloadedMethod info TreeIter p) => OL.IsLabel t (TreeIter -> 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 ~ ResolveTreeIterMethod t TreeIter, O.OverloadedMethod info TreeIter p, R.HasField t TreeIter p) => R.HasField t TreeIter p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveTreeIterMethod t TreeIter, O.OverloadedMethodInfo info TreeIter) => OL.IsLabel t (O.MethodProxy info TreeIter) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif