## dzl-tree-types dzl-tree-types |

## Functions

gint | (*DzlTreeNodeCompareFunc) ()

## Properties

gboolean | always-expand | Read / Write / Construct Only
GMenuModel * | context-menu | Read / Write
DzlTreeNode * | root | Read / Write
DzlTreeNode * | selection | Read / Write
gboolean | show-icons | Read / Write
DzlTree * | tree | Read
gboolean | children-possible | Read / Write
gchar * | expanded-icon-name | Read / Write
GIcon * | gicon | Read / Write
gchar * | icon-name | Read / Write
GObject * | item | Read / Write
DzlTreeNode * | parent | Read
gboolean | reset-on-collapse | Read / Write
gchar * | text | Read / Write
DzlTree * | tree | Read / Write
gboolean | use-dim-label | Read / Write
gboolean | use-markup | Read / Write

## Signals

void | action | Action
void | populate-popup | Run Last
void | added | Run Last
void | build-children | Run Last
void | build-node | Run Last
gboolean | drag-data-get | Run Last
gboolean | drag-data-received | Run Last
gboolean | drag-node-delete | Run Last
gboolean | drag-node-received | Run Last
gboolean | node-activated | Run Last
void | node-collapsed | Run Last
gboolean | node-draggable | Run Last
gboolean | node-droppable | Run Last
void | node-expanded | Run Last
void | node-popup | Run Last
void | node-selected | Run Last
void | node-unselected | Run Last
void | removed | Run Last

## Types and Values

#define | DZL_TYPE_TREE
#define | DZL_TYPE_TREE_NODE
#define | DZL_TYPE_TREE_BUILDER
enum | DzlTreeDropPosition
| DzlTree
| DzlTreeBuilder
| DzlTreeBuilderClass
| DzlTreeClass
| DzlTreeNode

## Object Hierarchy

        GEnum
        ╰── DzlTreeDropPosition
        GObject
        ╰── GInitiallyUnowned
            ├── DzlTreeBuilder
            ├── DzlTreeNode
            ╰── GtkWidget
                ╰── GtkContainer
                    ╰── GtkTreeView
                        ╰── DzlTree

## Implemented Interfaces

DzlTree implements AtkImplementorIface, GtkBuildable and GtkScrollable.

## Description

## Functions

### DzlTreeNodeCompareFunc ()

    gint
    (*DzlTreeNodeCompareFunc) (DzlTreeNode *a,
                               DzlTreeNode *b,
                               gpointer user_data);

## Types and Values

### DZL_TYPE_TREE

    #define DZL_TYPE_TREE         (dzl_tree_get_type())

### DZL_TYPE_TREE_NODE

    #define DZL_TYPE_TREE_NODE    (dzl_tree_node_get_type())

### DZL_TYPE_TREE_BUILDER

    #define DZL_TYPE_TREE_BUILDER (dzl_tree_builder_get_type())

### enum DzlTreeDropPosition

#### Members

DZL_TREE_DROP_INTO |  |
DZL_TREE_DROP_BEFORE |  |
DZL_TREE_DROP_AFTER |  |

### DzlTree

    typedef struct _DzlTree DzlTree;

### DzlTreeBuilder

    typedef struct _DzlTreeBuilder DzlTreeBuilder;

### DzlTreeBuilderClass

    typedef struct {
      GInitiallyUnownedClass parent_class;

      void     (*added)                   (DzlTreeBuilder      *builder,
                                           GtkWidget           *tree);
      void     (*removed)                 (DzlTreeBuilder      *builder,
                                           GtkWidget           *tree);
      void     (*build_node)              (DzlTreeBuilder      *builder,
                                           DzlTreeNode         *node);
      void     (*build_children)          (DzlTreeBuilder      *builder,
                                           DzlTreeNode         *parent);
      gboolean (*node_activated)          (DzlTreeBuilder      *builder,
                                           DzlTreeNode         *node);
      void     (*node_selected)           (DzlTreeBuilder      *builder,
                                           DzlTreeNode         *node);
      void     (*node_unselected)         (DzlTreeBuilder      *builder,
                                           DzlTreeNode         *node);
      void     (*node_popup)              (DzlTreeBuilder      *builder,
                                           DzlTreeNode         *node,
                                           GMenu               *menu);
      void     (*node_expanded)           (DzlTreeBuilder      *builder,
                                           DzlTreeNode         *node);
      void     (*node_collapsed)          (DzlTreeBuilder      *builder,
                                           DzlTreeNode         *node);
      gboolean (*node_draggable)          (DzlTreeBuilder      *builder,
                                           DzlTreeNode         *node);
      gboolean (*node_droppable)          (DzlTreeBuilder      *builder,
                                           DzlTreeNode         *node,
                                           GtkSelectionData    *data);
      gboolean (*drag_data_get)           (DzlTreeBuilder      *builder,
                                           DzlTreeNode         *node,
                                           GtkSelectionData    *data);
      gboolean (*drag_node_received)      (DzlTreeBuilder      *builder,
                                           DzlTreeNode         *drag_node,
                                           DzlTreeNode         *drop_node,
                                           DzlTreeDropPosition  position,
                                           GdkDragAction        action,
                                           GtkSelectionData    *data);
      gboolean (*drag_data_received)      (DzlTreeBuilder      *builder,
                                           DzlTreeNode         *drop_node,
                                           DzlTreeDropPosition  position,
                                           GdkDragAction        action,
                                           GtkSelectionData    *data);
      gboolean (*drag_node_delete)        (DzlTreeBuilder      *builder,
                                           DzlTreeNode         *node);
      void     (*cell_data_func)          (DzlTreeBuilder      *tree,
                                           DzlTreeNode         *node,
                                           GtkCellRenderer     *cell);
    } DzlTreeBuilderClass;

### DzlTreeClass

    typedef struct {
    	GtkTreeViewClass parent_class;

      void (*action)         (DzlTree     *self,
                              const gchar *action_group,
                              const gchar *action_name,
                              const gchar *param);
      void (*populate_popup) (DzlTree     *self,
                              GtkWidget   *widget);
    } DzlTreeClass;

### DzlTreeNode

    typedef struct _DzlTreeNode DzlTreeNode;

## Property Details

### The `“always-expand”` property

      “always-expand”            gboolean

Always expand.

Flags: Read / Write / Construct Only

Default value: FALSE

### The `“context-menu”` property

      “context-menu”             GMenuModel *

The context menu to display.

Flags: Read / Write

### The `“root”` property

      “root”                     DzlTreeNode *

The root object of the tree.

Flags: Read / Write

### The `“selection”` property

      “selection”                DzlTreeNode *

The node selection.

Flags: Read / Write

### The `“show-icons”` property

      “show-icons”               gboolean

Show Icons.

Flags: Read / Write

Default value: FALSE

### The `“tree”` property

      “tree”                     DzlTree *

The DzlTree the builder belongs to.

Flags: Read

### The `“children-possible”` property

      “children-possible”        gboolean

This property allows for more lazy loading of nodes.

When a node becomes visible, we normally build its children nodes so that we know if we need an expansion arrow. However, that can be expensive when rendering directories with lots of subdirectories.

Using this, you can always show an arrow without building the children and simply hide the arrow if there were in fact no children (upon expansion).

Flags: Read / Write

Default value: FALSE

### The `“expanded-icon-name”` property

      “expanded-icon-name”       gchar *

The icon-name to use when the row is expanded.

Flags: Read / Write

Default value: NULL

### The `“gicon”` property

      “gicon”                    GIcon *

The cached GIcon to display.

Flags: Read / Write

### The `“icon-name”` property

      “icon-name”                gchar *

An icon-name to display on the row.

Flags: Read / Write

Default value: NULL

### The `“item”` property

      “item”                     GObject *

An optional GObject to associate with the node.

Flags: Read / Write

### The `“parent”` property

      “parent”                   DzlTreeNode *

The parent of the node.

Flags: Read

### The `“reset-on-collapse”` property

      “reset-on-collapse”        gboolean

The "reset-on-collapse" property denotes that all children should be removed from the node when it's row is collapsed. It will also set “needs-build” to `TRUE` so the next expansion rebuilds the children. This is useful for situations where you want to ensure the nodes are up to date (refreshed) on every expansion.

Flags: Read / Write

Default value: FALSE

Since: 3.28

### The `“text”` property

      “text”                     gchar *

Text to display on the tree node.

Flags: Read / Write

Default value: NULL

### The `“tree”` property

      “tree”                     DzlTree *

The tree the node belongs to.

Flags: Read / Write

### The `“use-dim-label”` property

      “use-dim-label”            gboolean

If text should be rendered with a dim label.

Flags: Read / Write

Default value: FALSE

### The `“use-markup”` property

      “use-markup”               gboolean

If the "text" property includes GMarkup.

Flags: Read / Write

Default value: FALSE

## Signal Details

### The `“action”` signal

    void
    user_function (DzlTree *dzltree,
                   gchar   *arg1,
                   gchar   *arg2,
                   gchar   *arg3,
                   gpointer user_data)

Flags: Action

### The `“populate-popup”` signal

    void
    user_function (DzlTree   *dzltree,
                   GtkWidget *widget,
                   gpointer   user_data)

Flags: Run Last

### The `“added”` signal

    void
    user_function (DzlTreeBuilder *dzltreebuilder,
                   DzlTree        *arg1,
                   gpointer        user_data)

Flags: Run Last

### The `“build-children”` signal

    void
    user_function (DzlTreeBuilder *dzltreebuilder,
                   DzlTreeNode    *arg1,
                   gpointer        user_data)

Flags: Run Last

### The `“build-node”` signal

    void
    user_function (DzlTreeBuilder *dzltreebuilder,
                   DzlTreeNode    *arg1,
                   gpointer        user_data)

Flags: Run Last

### The `“drag-data-get”` signal

    gboolean
    user_function (DzlTreeBuilder   *dzltreebuilder,
                   DzlTreeNode      *arg1,
                   GtkSelectionData *arg2,
                   gpointer          user_data)

Flags: Run Last

### The `“drag-data-received”` signal

    gboolean
    user_function (DzlTreeBuilder     *dzltreebuilder,
                   DzlTreeNode        *arg1,
                   DzlTreeDropPosition arg2,
                   GdkDragAction       arg3,
                   GtkSelectionData   *arg4,
                   gpointer            user_data)

Flags: Run Last

### The `“drag-node-delete”` signal

    gboolean
    user_function (DzlTreeBuilder *dzltreebuilder,
                   DzlTreeNode    *arg1,
                   gpointer        user_data)

Flags: Run Last

### The `“drag-node-received”` signal

    gboolean
    user_function (DzlTreeBuilder     *dzltreebuilder,
                   DzlTreeNode        *arg1,
                   DzlTreeNode        *arg2,
                   DzlTreeDropPosition arg3,
                   GdkDragAction       arg4,
                   GtkSelectionData   *arg5,
                   gpointer            user_data)

Flags: Run Last

### The `“node-activated”` signal

    gboolean
    user_function (DzlTreeBuilder *dzltreebuilder,
                   DzlTreeNode    *arg1,
                   gpointer        user_data)

Flags: Run Last

### The `“node-collapsed”` signal

    void
    user_function (DzlTreeBuilder *dzltreebuilder,
                   DzlTreeNode    *arg1,
                   gpointer        user_data)

Flags: Run Last

### The `“node-draggable”` signal

    gboolean
    user_function (DzlTreeBuilder *dzltreebuilder,
                   DzlTreeNode    *arg1,
                   gpointer        user_data)

Flags: Run Last

### The `“node-droppable”` signal

    gboolean
    user_function (DzlTreeBuilder   *dzltreebuilder,
                   DzlTreeNode      *arg1,
                   GtkSelectionData *arg2,
                   gpointer          user_data)

Flags: Run Last

### The `“node-expanded”` signal

    void
    user_function (DzlTreeBuilder *dzltreebuilder,
                   DzlTreeNode    *arg1,
                   gpointer        user_data)

Flags: Run Last

### The `“node-popup”` signal

    void
    user_function (DzlTreeBuilder *dzltreebuilder,
                   DzlTreeNode    *arg1,
                   GMenu          *arg2,
                   gpointer        user_data)

Flags: Run Last

### The `“node-selected”` signal

    void
    user_function (DzlTreeBuilder *dzltreebuilder,
                   DzlTreeNode    *arg1,
                   gpointer        user_data)

Flags: Run Last

### The `“node-unselected”` signal

    void
    user_function (DzlTreeBuilder *dzltreebuilder,
                   DzlTreeNode    *arg1,
                   gpointer        user_data)

Flags: Run Last

### The `“removed”` signal

    void
    user_function (DzlTreeBuilder *dzltreebuilder,
                   DzlTree        *arg1,
                   gpointer        user_data)

Flags: Run Last