Copyright | Will Thompson and Iñaki García Etxebarria |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
GI.GLib.Structs.Node
Description
The Node
struct represents one node in a [n-ary tree][glib-N-ary-Trees].
Synopsis
- newtype Node = Node (ManagedPtr Node)
- newZeroNode :: MonadIO m => m Node
- nodeChildIndex :: (HasCallStack, MonadIO m) => Node -> Ptr () -> m Int32
- nodeChildPosition :: (HasCallStack, MonadIO m) => Node -> Node -> m Int32
- nodeChildrenForeach :: (HasCallStack, MonadIO m) => Node -> [TraverseFlags] -> NodeForeachFunc -> m ()
- nodeDepth :: (HasCallStack, MonadIO m) => Node -> m Word32
- nodeDestroy :: (HasCallStack, MonadIO m) => Node -> m ()
- nodeIsAncestor :: (HasCallStack, MonadIO m) => Node -> Node -> m Bool
- nodeMaxHeight :: (HasCallStack, MonadIO m) => Node -> m Word32
- nodeNChildren :: (HasCallStack, MonadIO m) => Node -> m Word32
- nodeNNodes :: (HasCallStack, MonadIO m) => Node -> [TraverseFlags] -> m Word32
- nodePopAllocator :: (HasCallStack, MonadIO m) => m ()
- nodePushAllocator :: (HasCallStack, MonadIO m) => Allocator -> m ()
- nodeReverseChildren :: (HasCallStack, MonadIO m) => Node -> m ()
- nodeTraverse :: (HasCallStack, MonadIO m) => Node -> TraverseType -> [TraverseFlags] -> Int32 -> NodeTraverseFunc -> m ()
- nodeUnlink :: (HasCallStack, MonadIO m) => Node -> m ()
- clearNodeChildren :: MonadIO m => Node -> m ()
- getNodeChildren :: MonadIO m => Node -> m (Maybe Node)
- setNodeChildren :: MonadIO m => Node -> Ptr Node -> m ()
- clearNodeData :: MonadIO m => Node -> m ()
- getNodeData :: MonadIO m => Node -> m (Ptr ())
- setNodeData :: MonadIO m => Node -> Ptr () -> m ()
- clearNodeNext :: MonadIO m => Node -> m ()
- getNodeNext :: MonadIO m => Node -> m (Maybe Node)
- setNodeNext :: MonadIO m => Node -> Ptr Node -> m ()
- clearNodeParent :: MonadIO m => Node -> m ()
- getNodeParent :: MonadIO m => Node -> m (Maybe Node)
- setNodeParent :: MonadIO m => Node -> Ptr Node -> m ()
- clearNodePrev :: MonadIO m => Node -> m ()
- getNodePrev :: MonadIO m => Node -> m (Maybe Node)
- setNodePrev :: MonadIO m => Node -> Ptr Node -> m ()
Exported types
Memory-managed wrapper type.
Instances
Eq Node Source # | |
BoxedPtr Node Source # | |
Defined in GI.GLib.Structs.Node | |
CallocPtr Node Source # | |
Defined in GI.GLib.Structs.Node Methods boxedPtrCalloc :: IO (Ptr Node) | |
ManagedPtrNewtype Node Source # | |
Defined in GI.GLib.Structs.Node Methods toManagedPtr :: Node -> ManagedPtr Node | |
tag ~ 'AttrSet => Constructible Node tag Source # | |
newZeroNode :: MonadIO m => m Node Source #
Construct a Node
struct initialized to zero.
Methods
Click to display all available methods, including inherited ones
Methods
childIndex, childPosition, childrenForeach, depth, destroy, isAncestor, maxHeight, nChildren, nNodes, reverseChildren, traverse, unlink.
Getters
None.
Setters
None.
childIndex
Arguments
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> Ptr () |
|
-> m Int32 | Returns: the index of the child of |
Gets the position of the first child of a Node
which contains the given data.
childPosition
Arguments
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> Node |
|
-> m Int32 | Returns: the position of |
Gets the position of a Node
with respect to its siblings.
child
must be a child of node
. The first child is numbered 0,
the second 1, and so on.
childrenForeach
Arguments
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> [TraverseFlags] |
|
-> NodeForeachFunc |
|
-> m () |
Calls a function for each of the children of a Node
. Note that it
doesn't descend beneath the child nodes. func
must not do anything
that would modify the structure of the tree.
depth
Gets the depth of a Node
.
If node
is Nothing
the depth is 0. The root node has a depth of 1.
For the children of the root node the depth is 2. And so on.
destroy
Arguments
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> m () |
Removes root
and its children from the tree, freeing any memory
allocated.
isAncestor
Arguments
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> Node |
|
-> m Bool | Returns: |
Returns True
if node
is an ancestor of descendant
.
This is true if node is the parent of descendant
,
or if node is the grandparent of descendant
etc.
maxHeight
nChildren
Arguments
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> m Word32 | Returns: the number of children of |
Gets the number of children of a Node
.
nNodes
Arguments
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> [TraverseFlags] |
|
-> m Word32 | Returns: the number of nodes in the tree |
Gets the number of nodes in a tree.
popAllocator
nodePopAllocator :: (HasCallStack, MonadIO m) => m () Source #
No description available in the introspection data.
pushAllocator
nodePushAllocator :: (HasCallStack, MonadIO m) => Allocator -> m () Source #
No description available in the introspection data.
reverseChildren
Reverses the order of the children of a Node
.
(It doesn't change the order of the grandchildren.)
traverse
Arguments
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> TraverseType |
|
-> [TraverseFlags] |
|
-> Int32 |
|
-> NodeTraverseFunc |
|
-> m () |
Traverses a tree starting at the given root Node
.
It calls the given function for each node visited.
The traversal can be halted at any point by returning True
from func
.
func
must not do anything that would modify the structure of the tree.
unlink
Arguments
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> m () |
Unlinks a Node
from a tree, resulting in two separate trees.
Properties
children
points to the first child of the Node
. The other
children are accessed by using the next
pointer of each
child.
clearNodeChildren :: MonadIO m => Node -> m () Source #
Set the value of the “children
” field to Nothing
.
When overloading is enabled, this is equivalent to
clear
#children
getNodeChildren :: MonadIO m => Node -> m (Maybe Node) Source #
Get the value of the “children
” field.
When overloading is enabled, this is equivalent to
get
node #children
setNodeChildren :: MonadIO m => Node -> Ptr Node -> m () Source #
Set the value of the “children
” field.
When overloading is enabled, this is equivalent to
set
node [ #children:=
value ]
data
contains the actual data of the node.
clearNodeData :: MonadIO m => Node -> m () Source #
Set the value of the “data
” field to Nothing
.
When overloading is enabled, this is equivalent to
clear
#data
getNodeData :: MonadIO m => Node -> m (Ptr ()) Source #
Get the value of the “data
” field.
When overloading is enabled, this is equivalent to
get
node #data
setNodeData :: MonadIO m => Node -> Ptr () -> m () Source #
Set the value of the “data
” field.
When overloading is enabled, this is equivalent to
set
node [ #data:=
value ]
next
points to the node's next sibling (a sibling is another
Node
with the same parent).
clearNodeNext :: MonadIO m => Node -> m () Source #
Set the value of the “next
” field to Nothing
.
When overloading is enabled, this is equivalent to
clear
#next
getNodeNext :: MonadIO m => Node -> m (Maybe Node) Source #
Get the value of the “next
” field.
When overloading is enabled, this is equivalent to
get
node #next
setNodeNext :: MonadIO m => Node -> Ptr Node -> m () Source #
Set the value of the “next
” field.
When overloading is enabled, this is equivalent to
set
node [ #next:=
value ]
parent
clearNodeParent :: MonadIO m => Node -> m () Source #
Set the value of the “parent
” field to Nothing
.
When overloading is enabled, this is equivalent to
clear
#parent
getNodeParent :: MonadIO m => Node -> m (Maybe Node) Source #
Get the value of the “parent
” field.
When overloading is enabled, this is equivalent to
get
node #parent
setNodeParent :: MonadIO m => Node -> Ptr Node -> m () Source #
Set the value of the “parent
” field.
When overloading is enabled, this is equivalent to
set
node [ #parent:=
value ]
prev
points to the node's previous sibling.
clearNodePrev :: MonadIO m => Node -> m () Source #
Set the value of the “prev
” field to Nothing
.
When overloading is enabled, this is equivalent to
clear
#prev
getNodePrev :: MonadIO m => Node -> m (Maybe Node) Source #
Get the value of the “prev
” field.
When overloading is enabled, this is equivalent to
get
node #prev
setNodePrev :: MonadIO m => Node -> Ptr Node -> m () Source #
Set the value of the “prev
” field.
When overloading is enabled, this is equivalent to
set
node [ #prev:=
value ]