---
name: "Blt_TreeCreateNode"
section: "3"
platform: "linux"
package: "blt-dev"
version: "2.5.3+dfsg-8"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Blt_TreeCreateNode"
---

# Blt\_TreeCreateNode(3)

Creates a node in a tree data object.

```

```

## NAME

Blt\_TreeCreateNode - Creates a node in a tree data object.

## SYNOPSIS

```
#include <bltTree.h>

Blt_TreeNode
Blt_TreeCreateNode(tree, parent, name, position)
```

## ARGUMENTS

- Blt\_Tree *tree* (in)

  Tree containing the parent node.

- Blt\_TreeNode *parent* (in)

  Node in which to insert the new child.

- const char *\*name* (in)

  Node label.  If NULL, a label will automatically be generated.

- int *position* (in)

  Position in the parent's list of children to insert the new node.

  ```

  ```

## DESCRIPTION

This procedure creates a new node is a tree data object.  The node is initially empty, but data values can be added with **Blt\_TreeSetValue**.  Each node has a serial number that identifies it within the tree.  No two nodes in the same tree will ever have the same ID.  You can find a node's ID with **Blt\_TreeNodeId**.

The arguments are as follows:

- *tree*

  The tree containing the parent node.

- *parent*

  Node in which the new child will be inserted.

- *name*

  Label of the new node.  If *name* is NULL, a label in the form "**node0**", "**node1**", etc. will automatically be generated.  *Name* can be any string.  Labels are non-unique.  A parent can contain two nodes with the same label. Nodes can be relabeled using **Blt\_TreeRelabelNode**.

- *position*

  Position the parent's list of children to insert the new node.  For example, if *position* is 0, then the new node is prepended to the beginning of the list.  If *position* is -1, then the node is appended onto the end of the parent's list.

## RETURNS

The new node returned is of type **Blt\_TreeNode**.  It's a token that can be used with other routines to add/delete data values or children nodes.

## EXAMPLE

The following example creates a new node from the root node.

```

Blt_Tree token;
Blt_TreeNode root, node;
if (Blt_TreeGetToken(interp, "myTree", &token) != TCL_OK) {
    return TCL_ERROR;
}
root = Blt_TreeRootNode(token);
node = Blt_TreeCreateNode(token, root, "myNode", -1);
```

## NOTIFICATIONS

**Blt\_TreeCreateNode** can trigger tree notify events. You can be notified whenever a node is created by using the  **Blt\_TreeCreateNotifyHandler**.  A callback routine is registered that will be automatically invoked whenever a new node is added via **Blt\_TreeCreateNode** to the tree.

## KEYWORDS

tree, token
