gi-glib-2.0.12: GLib bindings

CopyrightWill Thompson Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria (garetxe@gmail.com)
Safe HaskellNone
LanguageHaskell2010

GI.GLib.Structs.Node

Contents

Description

The Node struct represents one node in a [n-ary tree][glib-N-ary-Trees].

Synopsis

Exported types

newtype Node #

Constructors

Node (ManagedPtr Node) 

Instances

WrappedPtr Node # 
(~) AttrOpTag tag AttrSet => Constructible Node tag # 

Methods

new :: MonadIO m => (ManagedPtr Node -> Node) -> [AttrOp Node tag] -> m Node #

((~) * info (ResolveNodeMethod t Node), MethodInfo * info Node p) => IsLabel t (Node -> p) # 

Methods

fromLabel :: Proxy# Symbol t -> Node -> p #

((~) * info (ResolveNodeMethod t Node), MethodInfo * info Node p) => IsLabelProxy t (Node -> p) # 

Methods

fromLabelProxy :: Proxy Symbol t -> Node -> p #

HasAttributeList * Node # 
((~) * signature (m ()), MonadIO m) => MethodInfo * NodeUnlinkMethodInfo Node signature # 
((~) * signature (m ()), MonadIO m) => MethodInfo * NodeReverseChildrenMethodInfo Node signature # 
((~) * signature ([TraverseFlags] -> m Word32), MonadIO m) => MethodInfo * NodeNNodesMethodInfo Node signature # 
((~) * signature (m Word32), MonadIO m) => MethodInfo * NodeNChildrenMethodInfo Node signature # 
((~) * signature (m Word32), MonadIO m) => MethodInfo * NodeMaxHeightMethodInfo Node signature # 
((~) * signature (Node -> m Bool), MonadIO m) => MethodInfo * NodeIsAncestorMethodInfo Node signature # 
((~) * signature (m ()), MonadIO m) => MethodInfo * NodeDestroyMethodInfo Node signature # 
((~) * signature (m Word32), MonadIO m) => MethodInfo * NodeDepthMethodInfo Node signature # 
((~) * signature (Node -> m Int32), MonadIO m) => MethodInfo * NodeChildPositionMethodInfo Node signature # 
((~) * signature (Ptr () -> m Int32), MonadIO m) => MethodInfo * NodeChildIndexMethodInfo Node signature # 
type AttributeList Node # 

newZeroNode :: MonadIO m => m Node #

Construct a Node struct initialized to zero.

Methods

childIndex

data NodeChildIndexMethodInfo #

Instances

((~) * signature (Ptr () -> m Int32), MonadIO m) => MethodInfo * NodeChildIndexMethodInfo Node signature # 

nodeChildIndex #

Arguments

:: (HasCallStack, MonadIO m) 
=> Node

node: a Node

-> Ptr ()

data: the data to find

-> m Int32

Returns: the index of the child of node which contains data, or -1 if the data is not found

Gets the position of the first child of a Node which contains the given data.

childPosition

nodeChildPosition #

Arguments

:: (HasCallStack, MonadIO m) 
=> Node

node: a Node

-> Node

child: a child of node

-> m Int32

Returns: the position of child with respect to its siblings

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.

depth

data NodeDepthMethodInfo #

Instances

((~) * signature (m Word32), MonadIO m) => MethodInfo * NodeDepthMethodInfo Node signature # 

nodeDepth #

Arguments

:: (HasCallStack, MonadIO m) 
=> Node

node: a Node

-> m Word32

Returns: the depth of the Node

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

data NodeDestroyMethodInfo #

Instances

((~) * signature (m ()), MonadIO m) => MethodInfo * NodeDestroyMethodInfo Node signature # 

nodeDestroy #

Arguments

:: (HasCallStack, MonadIO m) 
=> Node

root: the root of the tree/subtree to destroy

-> m () 

Removes root and its children from the tree, freeing any memory allocated.

isAncestor

data NodeIsAncestorMethodInfo #

Instances

((~) * signature (Node -> m Bool), MonadIO m) => MethodInfo * NodeIsAncestorMethodInfo Node signature # 

nodeIsAncestor #

Arguments

:: (HasCallStack, MonadIO m) 
=> Node

node: a Node

-> Node

descendant: a Node

-> m Bool

Returns: True if node is an ancestor of descendant

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

data NodeMaxHeightMethodInfo #

Instances

((~) * signature (m Word32), MonadIO m) => MethodInfo * NodeMaxHeightMethodInfo Node signature # 

nodeMaxHeight #

Arguments

:: (HasCallStack, MonadIO m) 
=> Node

root: a Node

-> m Word32

Returns: the maximum height of the tree beneath root

Gets the maximum height of all branches beneath a Node. This is the maximum distance from the Node to all leaf nodes.

If root is Nothing, 0 is returned. If root has no children, 1 is returned. If root has children, 2 is returned. And so on.

nChildren

data NodeNChildrenMethodInfo #

Instances

((~) * signature (m Word32), MonadIO m) => MethodInfo * NodeNChildrenMethodInfo Node signature # 

nodeNChildren #

Arguments

:: (HasCallStack, MonadIO m) 
=> Node

node: a Node

-> m Word32

Returns: the number of children of node

Gets the number of children of a Node.

nNodes

data NodeNNodesMethodInfo #

Instances

((~) * signature ([TraverseFlags] -> m Word32), MonadIO m) => MethodInfo * NodeNNodesMethodInfo Node signature # 

nodeNNodes #

Arguments

:: (HasCallStack, MonadIO m) 
=> Node

root: a Node

-> [TraverseFlags]

flags: which types of children are to be counted, one of TraverseFlagsAll, TraverseFlagsLeaves and TraverseFlagsNonLeaves

-> m Word32

Returns: the number of nodes in the tree

Gets the number of nodes in a tree.

reverseChildren

nodeReverseChildren #

Arguments

:: (HasCallStack, MonadIO m) 
=> Node

node: a Node.

-> m () 

Reverses the order of the children of a Node. (It doesn't change the order of the grandchildren.)

unlink

data NodeUnlinkMethodInfo #

Instances

((~) * signature (m ()), MonadIO m) => MethodInfo * NodeUnlinkMethodInfo Node signature # 

nodeUnlink #

Arguments

:: (HasCallStack, MonadIO m) 
=> Node

node: the Node to unlink, which becomes the root of a new tree

-> m () 

Unlinks a Node from a tree, resulting in two separate trees.

Properties

children

setNodeChildren :: MonadIO m => Node -> Ptr Node -> m () #

data

clearNodeData :: MonadIO m => Node -> m () #

getNodeData :: MonadIO m => Node -> m (Ptr ()) #

setNodeData :: MonadIO m => Node -> Ptr () -> m () #

next

clearNodeNext :: MonadIO m => Node -> m () #

setNodeNext :: MonadIO m => Node -> Ptr Node -> m () #

parent

clearNodeParent :: MonadIO m => Node -> m () #

setNodeParent :: MonadIO m => Node -> Ptr Node -> m () #

prev

clearNodePrev :: MonadIO m => Node -> m () #

setNodePrev :: MonadIO m => Node -> Ptr Node -> m () #