{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gtk.Structs.TreePath
(
TreePath(..) ,
noTreePath ,
#if defined(ENABLE_OVERLOADING)
ResolveTreePathMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
TreePathAppendIndexMethodInfo ,
#endif
treePathAppendIndex ,
#if defined(ENABLE_OVERLOADING)
TreePathCompareMethodInfo ,
#endif
treePathCompare ,
#if defined(ENABLE_OVERLOADING)
TreePathCopyMethodInfo ,
#endif
treePathCopy ,
#if defined(ENABLE_OVERLOADING)
TreePathDownMethodInfo ,
#endif
treePathDown ,
#if defined(ENABLE_OVERLOADING)
TreePathFreeMethodInfo ,
#endif
treePathFree ,
#if defined(ENABLE_OVERLOADING)
TreePathGetDepthMethodInfo ,
#endif
treePathGetDepth ,
#if defined(ENABLE_OVERLOADING)
TreePathGetIndicesMethodInfo ,
#endif
treePathGetIndices ,
#if defined(ENABLE_OVERLOADING)
TreePathIsAncestorMethodInfo ,
#endif
treePathIsAncestor ,
#if defined(ENABLE_OVERLOADING)
TreePathIsDescendantMethodInfo ,
#endif
treePathIsDescendant ,
treePathNew ,
treePathNewFirst ,
treePathNewFromIndices ,
treePathNewFromString ,
#if defined(ENABLE_OVERLOADING)
TreePathNextMethodInfo ,
#endif
treePathNext ,
#if defined(ENABLE_OVERLOADING)
TreePathPrependIndexMethodInfo ,
#endif
treePathPrependIndex ,
#if defined(ENABLE_OVERLOADING)
TreePathPrevMethodInfo ,
#endif
treePathPrev ,
#if defined(ENABLE_OVERLOADING)
TreePathToStringMethodInfo ,
#endif
treePathToString ,
#if defined(ENABLE_OVERLOADING)
TreePathUpMethodInfo ,
#endif
treePathUp ,
) 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.GI.Base.Signals as B.Signals
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
newtype TreePath = TreePath (ManagedPtr TreePath)
deriving (TreePath -> TreePath -> Bool
(TreePath -> TreePath -> Bool)
-> (TreePath -> TreePath -> Bool) -> Eq TreePath
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TreePath -> TreePath -> Bool
$c/= :: TreePath -> TreePath -> Bool
== :: TreePath -> TreePath -> Bool
$c== :: TreePath -> TreePath -> Bool
Eq)
foreign import ccall "gtk_tree_path_get_type" c_gtk_tree_path_get_type ::
IO GType
instance BoxedObject TreePath where
boxedType :: TreePath -> IO GType
boxedType _ = IO GType
c_gtk_tree_path_get_type
instance B.GValue.IsGValue TreePath where
toGValue :: TreePath -> IO GValue
toGValue o :: TreePath
o = do
GType
gtype <- IO GType
c_gtk_tree_path_get_type
TreePath -> (Ptr TreePath -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr TreePath
o (GType
-> (GValue -> Ptr TreePath -> IO ()) -> Ptr TreePath -> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr TreePath -> IO ()
forall a. GValue -> Ptr a -> IO ()
B.GValue.set_boxed)
fromGValue :: GValue -> IO TreePath
fromGValue gv :: GValue
gv = do
Ptr TreePath
ptr <- GValue -> IO (Ptr TreePath)
forall b. GValue -> IO (Ptr b)
B.GValue.get_boxed GValue
gv :: IO (Ptr TreePath)
(ManagedPtr TreePath -> TreePath) -> Ptr TreePath -> IO TreePath
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.newBoxed ManagedPtr TreePath -> TreePath
TreePath Ptr TreePath
ptr
noTreePath :: Maybe TreePath
noTreePath :: Maybe TreePath
noTreePath = Maybe TreePath
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList TreePath
type instance O.AttributeList TreePath = TreePathAttributeList
type TreePathAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "gtk_tree_path_new" gtk_tree_path_new ::
IO (Ptr TreePath)
treePathNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
m TreePath
treePathNew :: m TreePath
treePathNew = IO TreePath -> m TreePath
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TreePath -> m TreePath) -> IO TreePath -> m TreePath
forall a b. (a -> b) -> a -> b
$ do
Ptr TreePath
result <- IO (Ptr TreePath)
gtk_tree_path_new
Text -> Ptr TreePath -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "treePathNew" Ptr TreePath
result
TreePath
result' <- ((ManagedPtr TreePath -> TreePath) -> Ptr TreePath -> IO TreePath
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TreePath -> TreePath
TreePath) Ptr TreePath
result
TreePath -> IO TreePath
forall (m :: * -> *) a. Monad m => a -> m a
return TreePath
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gtk_tree_path_new_first" gtk_tree_path_new_first ::
IO (Ptr TreePath)
treePathNewFirst ::
(B.CallStack.HasCallStack, MonadIO m) =>
m TreePath
treePathNewFirst :: m TreePath
treePathNewFirst = IO TreePath -> m TreePath
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TreePath -> m TreePath) -> IO TreePath -> m TreePath
forall a b. (a -> b) -> a -> b
$ do
Ptr TreePath
result <- IO (Ptr TreePath)
gtk_tree_path_new_first
Text -> Ptr TreePath -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "treePathNewFirst" Ptr TreePath
result
TreePath
result' <- ((ManagedPtr TreePath -> TreePath) -> Ptr TreePath -> IO TreePath
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TreePath -> TreePath
TreePath) Ptr TreePath
result
TreePath -> IO TreePath
forall (m :: * -> *) a. Monad m => a -> m a
return TreePath
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gtk_tree_path_new_from_indicesv" gtk_tree_path_new_from_indicesv ::
Ptr Int32 ->
Word64 ->
IO (Ptr TreePath)
treePathNewFromIndices ::
(B.CallStack.HasCallStack, MonadIO m) =>
[Int32]
-> m TreePath
treePathNewFromIndices :: [Int32] -> m TreePath
treePathNewFromIndices indices :: [Int32]
indices = IO TreePath -> m TreePath
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TreePath -> m TreePath) -> IO TreePath -> m TreePath
forall a b. (a -> b) -> a -> b
$ do
let length_ :: Word64
length_ = Int -> Word64
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> Word64) -> Int -> Word64
forall a b. (a -> b) -> a -> b
$ [Int32] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length [Int32]
indices
Ptr Int32
indices' <- [Int32] -> IO (Ptr Int32)
forall a. Storable a => [a] -> IO (Ptr a)
packStorableArray [Int32]
indices
Ptr TreePath
result <- Ptr Int32 -> Word64 -> IO (Ptr TreePath)
gtk_tree_path_new_from_indicesv Ptr Int32
indices' Word64
length_
Text -> Ptr TreePath -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "treePathNewFromIndices" Ptr TreePath
result
TreePath
result' <- ((ManagedPtr TreePath -> TreePath) -> Ptr TreePath -> IO TreePath
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TreePath -> TreePath
TreePath) Ptr TreePath
result
Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
indices'
TreePath -> IO TreePath
forall (m :: * -> *) a. Monad m => a -> m a
return TreePath
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gtk_tree_path_new_from_string" gtk_tree_path_new_from_string ::
CString ->
IO (Ptr TreePath)
treePathNewFromString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m TreePath
treePathNewFromString :: Text -> m TreePath
treePathNewFromString path :: Text
path = IO TreePath -> m TreePath
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TreePath -> m TreePath) -> IO TreePath -> m TreePath
forall a b. (a -> b) -> a -> b
$ do
CString
path' <- Text -> IO CString
textToCString Text
path
Ptr TreePath
result <- CString -> IO (Ptr TreePath)
gtk_tree_path_new_from_string CString
path'
Text -> Ptr TreePath -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "treePathNewFromString" Ptr TreePath
result
TreePath
result' <- ((ManagedPtr TreePath -> TreePath) -> Ptr TreePath -> IO TreePath
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TreePath -> TreePath
TreePath) Ptr TreePath
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
path'
TreePath -> IO TreePath
forall (m :: * -> *) a. Monad m => a -> m a
return TreePath
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gtk_tree_path_append_index" gtk_tree_path_append_index ::
Ptr TreePath ->
Int32 ->
IO ()
treePathAppendIndex ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreePath
-> Int32
-> m ()
treePathAppendIndex :: TreePath -> Int32 -> m ()
treePathAppendIndex path :: TreePath
path index_ :: Int32
index_ = 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 TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
Ptr TreePath -> Int32 -> IO ()
gtk_tree_path_append_index Ptr TreePath
path' Int32
index_
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data TreePathAppendIndexMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m) => O.MethodInfo TreePathAppendIndexMethodInfo TreePath signature where
overloadedMethod = treePathAppendIndex
#endif
foreign import ccall "gtk_tree_path_compare" gtk_tree_path_compare ::
Ptr TreePath ->
Ptr TreePath ->
IO Int32
treePathCompare ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreePath
-> TreePath
-> m Int32
treePathCompare :: TreePath -> TreePath -> m Int32
treePathCompare a :: TreePath
a b :: TreePath
b = 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
$ do
Ptr TreePath
a' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
a
Ptr TreePath
b' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
b
Int32
result <- Ptr TreePath -> Ptr TreePath -> IO Int32
gtk_tree_path_compare Ptr TreePath
a' Ptr TreePath
b'
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
a
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
b
Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result
#if defined(ENABLE_OVERLOADING)
data TreePathCompareMethodInfo
instance (signature ~ (TreePath -> m Int32), MonadIO m) => O.MethodInfo TreePathCompareMethodInfo TreePath signature where
overloadedMethod = treePathCompare
#endif
foreign import ccall "gtk_tree_path_copy" gtk_tree_path_copy ::
Ptr TreePath ->
IO (Ptr TreePath)
treePathCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreePath
-> m TreePath
treePathCopy :: TreePath -> m TreePath
treePathCopy path :: TreePath
path = IO TreePath -> m TreePath
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TreePath -> m TreePath) -> IO TreePath -> m TreePath
forall a b. (a -> b) -> a -> b
$ do
Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
Ptr TreePath
result <- Ptr TreePath -> IO (Ptr TreePath)
gtk_tree_path_copy Ptr TreePath
path'
Text -> Ptr TreePath -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "treePathCopy" Ptr TreePath
result
TreePath
result' <- ((ManagedPtr TreePath -> TreePath) -> Ptr TreePath -> IO TreePath
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TreePath -> TreePath
TreePath) Ptr TreePath
result
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
TreePath -> IO TreePath
forall (m :: * -> *) a. Monad m => a -> m a
return TreePath
result'
#if defined(ENABLE_OVERLOADING)
data TreePathCopyMethodInfo
instance (signature ~ (m TreePath), MonadIO m) => O.MethodInfo TreePathCopyMethodInfo TreePath signature where
overloadedMethod = treePathCopy
#endif
foreign import ccall "gtk_tree_path_down" gtk_tree_path_down ::
Ptr TreePath ->
IO ()
treePathDown ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreePath
-> m ()
treePathDown :: TreePath -> m ()
treePathDown path :: TreePath
path = 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 TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
Ptr TreePath -> IO ()
gtk_tree_path_down Ptr TreePath
path'
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data TreePathDownMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo TreePathDownMethodInfo TreePath signature where
overloadedMethod = treePathDown
#endif
foreign import ccall "gtk_tree_path_free" gtk_tree_path_free ::
Ptr TreePath ->
IO ()
treePathFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreePath
-> m ()
treePathFree :: TreePath -> m ()
treePathFree path :: TreePath
path = 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 TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
Ptr TreePath -> IO ()
gtk_tree_path_free Ptr TreePath
path'
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data TreePathFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo TreePathFreeMethodInfo TreePath signature where
overloadedMethod = treePathFree
#endif
foreign import ccall "gtk_tree_path_get_depth" gtk_tree_path_get_depth ::
Ptr TreePath ->
IO Int32
treePathGetDepth ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreePath
-> m Int32
treePathGetDepth :: TreePath -> m Int32
treePathGetDepth path :: TreePath
path = 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
$ do
Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
Int32
result <- Ptr TreePath -> IO Int32
gtk_tree_path_get_depth Ptr TreePath
path'
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result
#if defined(ENABLE_OVERLOADING)
data TreePathGetDepthMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo TreePathGetDepthMethodInfo TreePath signature where
overloadedMethod = treePathGetDepth
#endif
foreign import ccall "gtk_tree_path_get_indices_with_depth" gtk_tree_path_get_indices_with_depth ::
Ptr TreePath ->
Ptr Int32 ->
IO (Ptr Int32)
treePathGetIndices ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreePath
-> m (Maybe [Int32])
treePathGetIndices :: TreePath -> m (Maybe [Int32])
treePathGetIndices path :: TreePath
path = IO (Maybe [Int32]) -> m (Maybe [Int32])
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe [Int32]) -> m (Maybe [Int32]))
-> IO (Maybe [Int32]) -> m (Maybe [Int32])
forall a b. (a -> b) -> a -> b
$ do
Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
Ptr Int32
depth <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
Ptr Int32
result <- Ptr TreePath -> Ptr Int32 -> IO (Ptr Int32)
gtk_tree_path_get_indices_with_depth Ptr TreePath
path' Ptr Int32
depth
Int32
depth' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
depth
Maybe [Int32]
maybeResult <- Ptr Int32 -> (Ptr Int32 -> IO [Int32]) -> IO (Maybe [Int32])
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Int32
result ((Ptr Int32 -> IO [Int32]) -> IO (Maybe [Int32]))
-> (Ptr Int32 -> IO [Int32]) -> IO (Maybe [Int32])
forall a b. (a -> b) -> a -> b
$ \result' :: Ptr Int32
result' -> do
[Int32]
result'' <- (Int32 -> Ptr Int32 -> IO [Int32]
forall a b. (Integral a, Storable b) => a -> Ptr b -> IO [b]
unpackStorableArrayWithLength Int32
depth') Ptr Int32
result'
[Int32] -> IO [Int32]
forall (m :: * -> *) a. Monad m => a -> m a
return [Int32]
result''
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
depth
Maybe [Int32] -> IO (Maybe [Int32])
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe [Int32]
maybeResult
#if defined(ENABLE_OVERLOADING)
data TreePathGetIndicesMethodInfo
instance (signature ~ (m (Maybe [Int32])), MonadIO m) => O.MethodInfo TreePathGetIndicesMethodInfo TreePath signature where
overloadedMethod = treePathGetIndices
#endif
foreign import ccall "gtk_tree_path_is_ancestor" gtk_tree_path_is_ancestor ::
Ptr TreePath ->
Ptr TreePath ->
IO CInt
treePathIsAncestor ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreePath
-> TreePath
-> m Bool
treePathIsAncestor :: TreePath -> TreePath -> m Bool
treePathIsAncestor path :: TreePath
path descendant :: TreePath
descendant = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
Ptr TreePath
descendant' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
descendant
CInt
result <- Ptr TreePath -> Ptr TreePath -> IO CInt
gtk_tree_path_is_ancestor Ptr TreePath
path' Ptr TreePath
descendant'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
descendant
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data TreePathIsAncestorMethodInfo
instance (signature ~ (TreePath -> m Bool), MonadIO m) => O.MethodInfo TreePathIsAncestorMethodInfo TreePath signature where
overloadedMethod = treePathIsAncestor
#endif
foreign import ccall "gtk_tree_path_is_descendant" gtk_tree_path_is_descendant ::
Ptr TreePath ->
Ptr TreePath ->
IO CInt
treePathIsDescendant ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreePath
-> TreePath
-> m Bool
treePathIsDescendant :: TreePath -> TreePath -> m Bool
treePathIsDescendant path :: TreePath
path ancestor :: TreePath
ancestor = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
Ptr TreePath
ancestor' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
ancestor
CInt
result <- Ptr TreePath -> Ptr TreePath -> IO CInt
gtk_tree_path_is_descendant Ptr TreePath
path' Ptr TreePath
ancestor'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
ancestor
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data TreePathIsDescendantMethodInfo
instance (signature ~ (TreePath -> m Bool), MonadIO m) => O.MethodInfo TreePathIsDescendantMethodInfo TreePath signature where
overloadedMethod = treePathIsDescendant
#endif
foreign import ccall "gtk_tree_path_next" gtk_tree_path_next ::
Ptr TreePath ->
IO ()
treePathNext ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreePath
-> m ()
treePathNext :: TreePath -> m ()
treePathNext path :: TreePath
path = 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 TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
Ptr TreePath -> IO ()
gtk_tree_path_next Ptr TreePath
path'
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data TreePathNextMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo TreePathNextMethodInfo TreePath signature where
overloadedMethod = treePathNext
#endif
foreign import ccall "gtk_tree_path_prepend_index" gtk_tree_path_prepend_index ::
Ptr TreePath ->
Int32 ->
IO ()
treePathPrependIndex ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreePath
-> Int32
-> m ()
treePathPrependIndex :: TreePath -> Int32 -> m ()
treePathPrependIndex path :: TreePath
path index_ :: Int32
index_ = 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 TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
Ptr TreePath -> Int32 -> IO ()
gtk_tree_path_prepend_index Ptr TreePath
path' Int32
index_
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data TreePathPrependIndexMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m) => O.MethodInfo TreePathPrependIndexMethodInfo TreePath signature where
overloadedMethod = treePathPrependIndex
#endif
foreign import ccall "gtk_tree_path_prev" gtk_tree_path_prev ::
Ptr TreePath ->
IO CInt
treePathPrev ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreePath
-> m Bool
treePathPrev :: TreePath -> m Bool
treePathPrev path :: TreePath
path = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
CInt
result <- Ptr TreePath -> IO CInt
gtk_tree_path_prev Ptr TreePath
path'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data TreePathPrevMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo TreePathPrevMethodInfo TreePath signature where
overloadedMethod = treePathPrev
#endif
foreign import ccall "gtk_tree_path_to_string" gtk_tree_path_to_string ::
Ptr TreePath ->
IO CString
treePathToString ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreePath
-> m T.Text
treePathToString :: TreePath -> m Text
treePathToString path :: TreePath
path = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
CString
result <- Ptr TreePath -> IO CString
gtk_tree_path_to_string Ptr TreePath
path'
Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "treePathToString" CString
result
Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data TreePathToStringMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo TreePathToStringMethodInfo TreePath signature where
overloadedMethod = treePathToString
#endif
foreign import ccall "gtk_tree_path_up" gtk_tree_path_up ::
Ptr TreePath ->
IO CInt
treePathUp ::
(B.CallStack.HasCallStack, MonadIO m) =>
TreePath
-> m Bool
treePathUp :: TreePath -> m Bool
treePathUp path :: TreePath
path = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
CInt
result <- Ptr TreePath -> IO CInt
gtk_tree_path_up Ptr TreePath
path'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data TreePathUpMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo TreePathUpMethodInfo TreePath signature where
overloadedMethod = treePathUp
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveTreePathMethod (t :: Symbol) (o :: *) :: * where
ResolveTreePathMethod "appendIndex" o = TreePathAppendIndexMethodInfo
ResolveTreePathMethod "compare" o = TreePathCompareMethodInfo
ResolveTreePathMethod "copy" o = TreePathCopyMethodInfo
ResolveTreePathMethod "down" o = TreePathDownMethodInfo
ResolveTreePathMethod "free" o = TreePathFreeMethodInfo
ResolveTreePathMethod "isAncestor" o = TreePathIsAncestorMethodInfo
ResolveTreePathMethod "isDescendant" o = TreePathIsDescendantMethodInfo
ResolveTreePathMethod "next" o = TreePathNextMethodInfo
ResolveTreePathMethod "prependIndex" o = TreePathPrependIndexMethodInfo
ResolveTreePathMethod "prev" o = TreePathPrevMethodInfo
ResolveTreePathMethod "toString" o = TreePathToStringMethodInfo
ResolveTreePathMethod "up" o = TreePathUpMethodInfo
ResolveTreePathMethod "getDepth" o = TreePathGetDepthMethodInfo
ResolveTreePathMethod "getIndices" o = TreePathGetIndicesMethodInfo
ResolveTreePathMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveTreePathMethod t TreePath, O.MethodInfo info TreePath p) => OL.IsLabel t (TreePath -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#endif