## GtkCTree GtkCTree — A widget displaying a hierarchical tree |

## Synopsis

    #include <gtk/gtk.h>

                        GtkCTree;
    #define             GTK_CTREE_ROW                       (_node_)
    #define             GTK_CTREE_NODE                      (_node_)
    #define             GTK_CTREE_NODE_NEXT                 (_nnode_)
    #define             GTK_CTREE_NODE_PREV                 (_pnode_)
    #define             GTK_CTREE_FUNC                      (_func_)
    enum                GtkCTreePos;
    enum                GtkCTreeLineStyle;
    enum                GtkCTreeExpanderStyle;
    enum                GtkCTreeExpansionType;
    void                (*GtkCTreeFunc)                     (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gpointer data);
    gboolean            (*GtkCTreeGNodeFunc)                (GtkCTree *ctree,
                                                             guint depth,
                                                             GNode *gnode,
                                                             GtkCTreeNode *cnode,
                                                             gpointer data);
    gboolean            (*GtkCTreeCompareDragFunc)          (GtkCTree *ctree,
                                                             GtkCTreeNode *source_node,
                                                             GtkCTreeNode *new_parent,
                                                             GtkCTreeNode *new_sibling);
                        GtkCTreeRow;
                        GtkCTreeNode;
    #define             GTK_TYPE_CTREE_NODE
    GtkWidget *         gtk_ctree_new_with_titles           (gint columns,
                                                             gint tree_column,
                                                             gchar *titles[]);
    GtkWidget *         gtk_ctree_new                       (gint columns,
                                                             gint tree_column);
    GtkCTreeNode *      gtk_ctree_insert_node               (GtkCTree *ctree,
                                                             GtkCTreeNode *parent,
                                                             GtkCTreeNode *sibling,
                                                             gchar *text[],
                                                             guint8 spacing,
                                                             GdkPixmap *pixmap_closed,
                                                             GdkBitmap *mask_closed,
                                                             GdkPixmap *pixmap_opened,
                                                             GdkBitmap *mask_opened,
                                                             gboolean is_leaf,
                                                             gboolean expanded);
    void                gtk_ctree_remove_node               (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    GtkCTreeNode *      gtk_ctree_insert_gnode              (GtkCTree *ctree,
                                                             GtkCTreeNode *parent,
                                                             GtkCTreeNode *sibling,
                                                             GNode *gnode,
                                                             GtkCTreeGNodeFunc func,
                                                             gpointer data);
    GNode *             gtk_ctree_export_to_gnode           (GtkCTree *ctree,
                                                             GNode *parent,
                                                             GNode *sibling,
                                                             GtkCTreeNode *node,
                                                             GtkCTreeGNodeFunc func,
                                                             gpointer data);
    void                gtk_ctree_post_recursive            (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             GtkCTreeFunc func,
                                                             gpointer data);
    void                gtk_ctree_post_recursive_to_depth   (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint depth,
                                                             GtkCTreeFunc func,
                                                             gpointer data);
    void                gtk_ctree_pre_recursive             (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             GtkCTreeFunc func,
                                                             gpointer data);
    void                gtk_ctree_pre_recursive_to_depth    (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint depth,
                                                             GtkCTreeFunc func,
                                                             gpointer data);
    gboolean            gtk_ctree_is_viewable               (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    GtkCTreeNode *      gtk_ctree_last                      (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    GtkCTreeNode *      gtk_ctree_find_node_ptr             (GtkCTree *ctree,
                                                             GtkCTreeRow *ctree_row);
    gboolean            gtk_ctree_find                      (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             GtkCTreeNode *child);
    gboolean            gtk_ctree_is_ancestor               (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             GtkCTreeNode *child);
    GtkCTreeNode *      gtk_ctree_find_by_row_data          (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gpointer data);
    GList *             gtk_ctree_find_all_by_row_data      (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gpointer data);
    GtkCTreeNode *      gtk_ctree_find_by_row_data_custom   (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gpointer data,
                                                             GCompareFunc func);
    GList *             gtk_ctree_find_all_by_row_data_custom
                                                            (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gpointer data,
                                                             GCompareFunc func);
    gboolean            gtk_ctree_is_hot_spot               (GtkCTree *ctree,
                                                             gint x,
                                                             gint y);
    void                gtk_ctree_move                      (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             GtkCTreeNode *new_parent,
                                                             GtkCTreeNode *new_sibling);
    void                gtk_ctree_expand                    (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    void                gtk_ctree_expand_recursive          (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    void                gtk_ctree_expand_to_depth           (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint depth);
    void                gtk_ctree_collapse                  (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    void                gtk_ctree_collapse_recursive        (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    void                gtk_ctree_collapse_to_depth         (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint depth);
    void                gtk_ctree_toggle_expansion          (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    void                gtk_ctree_toggle_expansion_recursive
                                                            (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    void                gtk_ctree_select                    (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    void                gtk_ctree_select_recursive          (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    void                gtk_ctree_unselect                  (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    void                gtk_ctree_unselect_recursive        (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    void                gtk_ctree_real_select_recursive     (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint state);
    void                gtk_ctree_node_set_text             (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             const gchar *text);
    void                gtk_ctree_node_set_pixmap           (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             GdkPixmap *pixmap,
                                                             GdkBitmap *mask);
    void                gtk_ctree_node_set_pixtext          (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             const gchar *text,
                                                             guint8 spacing,
                                                             GdkPixmap *pixmap,
                                                             GdkBitmap *mask);
    void                gtk_ctree_set_node_info             (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             const gchar *text,
                                                             guint8 spacing,
                                                             GdkPixmap *pixmap_closed,
                                                             GdkBitmap *mask_closed,
                                                             GdkPixmap *pixmap_opened,
                                                             GdkBitmap *mask_opened,
                                                             gboolean is_leaf,
                                                             gboolean expanded);
    void                gtk_ctree_node_set_shift            (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             gint vertical,
                                                             gint horizontal);
    void                gtk_ctree_node_set_selectable       (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gboolean selectable);
    gboolean            gtk_ctree_node_get_selectable       (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    GtkCellType         gtk_ctree_node_get_cell_type        (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column);
    gboolean            gtk_ctree_node_get_text             (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             gchar **text);
    gboolean            gtk_ctree_node_get_pixmap           (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             GdkPixmap **pixmap,
                                                             GdkBitmap **mask);
    gboolean            gtk_ctree_node_get_pixtext          (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             gchar **text,
                                                             guint8 *spacing,
                                                             GdkPixmap **pixmap,
                                                             GdkBitmap **mask);
    gboolean            gtk_ctree_get_node_info             (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gchar **text,
                                                             guint8 *spacing,
                                                             GdkPixmap **pixmap_closed,
                                                             GdkBitmap **mask_closed,
                                                             GdkPixmap **pixmap_opened,
                                                             GdkBitmap **mask_opened,
                                                             gboolean *is_leaf,
                                                             gboolean *expanded);
    void                gtk_ctree_node_set_row_style        (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             GtkStyle *style);
    GtkStyle *          gtk_ctree_node_get_row_style        (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    void                gtk_ctree_node_set_cell_style       (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             GtkStyle *style);
    GtkStyle *          gtk_ctree_node_get_cell_style       (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column);
    void                gtk_ctree_node_set_foreground       (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             const GdkColor *color);
    void                gtk_ctree_node_set_background       (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             const GdkColor *color);
    void                gtk_ctree_node_set_row_data         (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gpointer data);
    void                gtk_ctree_node_set_row_data_full    (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gpointer data,
                                                             GDestroyNotify destroy);
    gpointer            gtk_ctree_node_get_row_data         (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    void                gtk_ctree_node_moveto               (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             gfloat row_align,
                                                             gfloat col_align);
    GtkVisibility       gtk_ctree_node_is_visible           (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    void                gtk_ctree_set_indent                (GtkCTree *ctree,
                                                             gint indent);
    void                gtk_ctree_set_spacing               (GtkCTree *ctree,
                                                             gint spacing);
    #define             gtk_ctree_set_reorderable           (t,
                                                             r)
    void                gtk_ctree_set_line_style            (GtkCTree *ctree,
                                                             GtkCTreeLineStyle line_style);
    void                gtk_ctree_set_expander_style        (GtkCTree *ctree,
                                                             GtkCTreeExpanderStyle expander_style);
    void                gtk_ctree_set_drag_compare_func     (GtkCTree *ctree,
                                                             GtkCTreeCompareDragFunc cmp_func);
    void                gtk_ctree_sort_node                 (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    void                gtk_ctree_sort_recursive            (GtkCTree *ctree,
                                                             GtkCTreeNode *node);
    GtkCTreeNode *      gtk_ctree_node_nth                  (GtkCTree *ctree,
                                                             guint row);
    void                gtk_ctree_set_show_stub             (GtkCTree *ctree,
                                                             gboolean show_stub);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkContainer
                               +----GtkCList
                                     +----GtkCTree

## Implemented Interfaces

GtkCTree implements AtkImplementorIface and GtkBuildable.

## Properties

      "expander-style"           GtkCTreeExpanderStyle  : Read / Write
      "indent"                   guint                 : Read / Write
      "line-style"               GtkCTreeLineStyle     : Read / Write
      "n-columns"                guint                 : Read / Write / Construct Only
      "show-stub"                gboolean              : Read / Write
      "spacing"                  guint                 : Read / Write
      "tree-column"              guint                 : Read / Write / Construct Only

## Signals

      "change-focus-row-expansion"                     : Run Last / Action
      "tree-collapse"                                  : Run Last
      "tree-expand"                                    : Run Last
      "tree-move"                                      : Run Last
      "tree-select-row"                                : Run First
      "tree-unselect-row"                              : Run First

## Description

The GtkCTree widget is used for showing a hierarchical tree to the user, for example a directory tree.

The tree is internally represented as a set of GtkCTreeNode structures.

The interface has much in common with the GtkCList widget: rows (nodes) can be selected by the user etc.

Positions in the tree are often indicated by two arguments, a parent and a sibling, both GtkCTreeNode pointers. If the parent is `NULL`, the position is at the root of the tree and if the sibling is `NULL`, it will be the last child of parent, otherwise it will be inserted just before the sibling.

GtkCTree has been deprecated since GTK+ 2.0 and should not be used in newly written code. Use GtkTreeView instead.

## Details

### GtkCTree

    typedef struct _GtkCTree GtkCTree;

### Warning

`GtkCTree` is deprecated and should not be used in newly-written code.

The GtkCTree contains the following user-accessible fields. These fields should be considered read-only; to set the values, use the methods below.

gint `tree_indent`; | The number of pixels each successive level of the tree is indented in the display.
gint `tree_spacing`; | The space in pixels between the graphical tree and the text in the node.
gint `tree_column`; | The index of the column for which the tree graphics is drawn.
GtkCTreeLineStyle `line_style`; | The style in which the lines in the tree graphics are drawn.
GtkCTreeExpanderStyle `expander_style`; | The style in which the expander buttons are drawn.
GtkCTreeExpanderStyle `expander_style`; | FIXME.

### GTK_CTREE_ROW()

    #define GTK_CTREE_ROW(_node_) ((GtkCTreeRow *)(((GList *)(_node_))->data))

### Warning

`GTK_CTREE_ROW` is deprecated and should not be used in newly-written code.

Used to get the GtkCTreeRow structure corresponding to the given GtkCTreeNode.

`_node_` : |

### GTK_CTREE_NODE()

    #define GTK_CTREE_NODE(_node_) ((GtkCTreeNode *)((_node_)))

### Warning

`GTK_CTREE_NODE` is deprecated and should not be used in newly-written code.

`_node_` : |

### GTK_CTREE_NODE_NEXT()

    #define GTK_CTREE_NODE_NEXT(_nnode_) ((GtkCTreeNode *)(((GList *)(_nnode_))->next))

### Warning

`GTK_CTREE_NODE_NEXT` is deprecated and should not be used in newly-written code.

FIXME

`_nnode_` : |

### GTK_CTREE_NODE_PREV()

    #define GTK_CTREE_NODE_PREV(_pnode_) ((GtkCTreeNode *)(((GList *)(_pnode_))->prev))

### Warning

`GTK_CTREE_NODE_PREV` is deprecated and should not be used in newly-written code.

FIXME

`_pnode_` : |

### GTK_CTREE_FUNC()

    #define GTK_CTREE_FUNC(_func_) ((GtkCTreeFunc)(_func_))

### Warning

`GTK_CTREE_FUNC` is deprecated and should not be used in newly-written code.

`_func_` : |

### enum GtkCTreePos

    typedef enum
    {
      GTK_CTREE_POS_BEFORE,
      GTK_CTREE_POS_AS_CHILD,
      GTK_CTREE_POS_AFTER
    } GtkCTreePos;

### Warning

`GtkCTreePos` is deprecated and should not be used in newly-written code.

A value specifying the position of a new node relative to an old one.

GTK_CTREE_POS_BEFORE | As a sibling, before the specified node.
GTK_CTREE_POS_AS_CHILD | As a child of the specified node.
GTK_CTREE_POS_AFTER | As a sibling, after the specified node.

### enum GtkCTreeLineStyle

    typedef enum
    {
      GTK_CTREE_LINES_NONE,
      GTK_CTREE_LINES_SOLID,
      GTK_CTREE_LINES_DOTTED,
      GTK_CTREE_LINES_TABBED
    } GtkCTreeLineStyle;

### Warning

`GtkCTreeLineStyle` is deprecated and should not be used in newly-written code.

The appearance of the lines in the tree graphics.

GTK_CTREE_LINES_NONE | No lines.
GTK_CTREE_LINES_SOLID | Solid lines.
GTK_CTREE_LINES_DOTTED | Dotted lines.
GTK_CTREE_LINES_TABBED | FIXME.

### enum GtkCTreeExpanderStyle

    typedef enum
    {
      GTK_CTREE_EXPANDER_NONE,
      GTK_CTREE_EXPANDER_SQUARE,
      GTK_CTREE_EXPANDER_TRIANGLE,
      GTK_CTREE_EXPANDER_CIRCULAR
    } GtkCTreeExpanderStyle;

### Warning

`GtkCTreeExpanderStyle` is deprecated and should not be used in newly-written code.

The appearance of the expander buttons, i.e. the small buttons which expand or contract parts of the tree when pressed.

GTK_CTREE_EXPANDER_NONE | No expanders.
GTK_CTREE_EXPANDER_SQUARE | Square expanders.
GTK_CTREE_EXPANDER_TRIANGLE | Triangular expanders.
GTK_CTREE_EXPANDER_CIRCULAR | Round expanders.

### enum GtkCTreeExpansionType

    typedef enum
    {
      GTK_CTREE_EXPANSION_EXPAND,
      GTK_CTREE_EXPANSION_EXPAND_RECURSIVE,
      GTK_CTREE_EXPANSION_COLLAPSE,
      GTK_CTREE_EXPANSION_COLLAPSE_RECURSIVE,
      GTK_CTREE_EXPANSION_TOGGLE,
      GTK_CTREE_EXPANSION_TOGGLE_RECURSIVE
    } GtkCTreeExpansionType;

### Warning

`GtkCTreeExpansionType` is deprecated and should not be used in newly-written code.

How to expand or collapse a part of a tree.

GTK_CTREE_EXPANSION_EXPAND | Expand this node.
GTK_CTREE_EXPANSION_EXPAND_RECURSIVE | Expand this node and everything below it in the hierarchy.
GTK_CTREE_EXPANSION_COLLAPSE | Collapse this node.
GTK_CTREE_EXPANSION_COLLAPSE_RECURSIVE | Collapse this node and everything below it in the hierarchy.
GTK_CTREE_EXPANSION_TOGGLE | Toggle this node (i.e. expand if collapsed and vice versa).
GTK_CTREE_EXPANSION_TOGGLE_RECURSIVE | Toggle this node and everything below it in the hierarchy.

### GtkCTreeFunc ()

    void                (*GtkCTreeFunc)                     (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gpointer data);

### Warning

`GtkCTreeFunc` is deprecated and should not be used in newly-written code.

A generic callback type to do something with a particular node.

`ctree` : | The GtkCTree object.
`node` : | The GtkCTreeNode in the tree.
`data` : | The user data associated with the node.

### GtkCTreeGNodeFunc ()

    gboolean            (*GtkCTreeGNodeFunc)                (GtkCTree *ctree,
                                                             guint depth,
                                                             GNode *gnode,
                                                             GtkCTreeNode *cnode,
                                                             gpointer data);

### Warning

`GtkCTreeGNodeFunc` is deprecated and should not be used in newly-written code.

FIXME

`ctree` : |
`depth` : |
`gnode` : |
`cnode` : |
`data` : |
Returns : |

### GtkCTreeCompareDragFunc ()

    gboolean            (*GtkCTreeCompareDragFunc)          (GtkCTree *ctree,
                                                             GtkCTreeNode *source_node,
                                                             GtkCTreeNode *new_parent,
                                                             GtkCTreeNode *new_sibling);

### Warning

`GtkCTreeCompareDragFunc` is deprecated and should not be used in newly-written code.

FIXME

`ctree` : |
`source_node` : |
`new_parent` : |
`new_sibling` : |
Returns : |

### GtkCTreeRow

    typedef struct {
      GtkCListRow row;

      GtkCTreeNode *parent;
      GtkCTreeNode *sibling;
      GtkCTreeNode *children;

      GdkPixmap *pixmap_closed;
      GdkBitmap *mask_closed;
      GdkPixmap *pixmap_opened;
      GdkBitmap *mask_opened;

      guint16 level;

      guint is_leaf  : 1;
      guint expanded : 1;
    } GtkCTreeRow;

### Warning

`GtkCTreeRow` is deprecated and should not be used in newly-written code.

A structure representing a single row in the tree graph. The values inside the structure should be considered read-only. This structure is derived from the GtkCListRow structure.

GtkCTreeNode *`parent`; | The parent node of the node corresponding to this row.
GtkCTreeNode *`sibling`; | The next sibling node of the node corresponding to this row.
GtkCTreeNode *`children`; | The first child node corresponding to this row; to access the other children, just use the siblings of that node.
GdkPixmap *`pixmap_closed`; | The pixmap to be shown when the node is collapsed.
GdkBitmap *`mask_closed`; | The mask for the above pixmap.
GdkPixmap *`pixmap_opened`; | The pixmap to be shown when the node is expanded.
GdkBitmap *`mask_opened`; | The mask for the above pixmap.
guint16 `level`; | The level of this node in the tree.
guint `is_leaf` : 1; | Whether this row is a leaf.
guint `expanded` : 1; | Whether the children of this row are visible.

### GtkCTreeNode

    typedef struct {
      GList list;
    } GtkCTreeNode;

### Warning

`GtkCTreeNode` is deprecated and should not be used in newly-written code.

This structure is opaque - you should use the macros GTK_CTREE_ROW, GTK_CTREE_NODE_NEXT etc. as well as the functions below to access it.

### GTK_TYPE_CTREE_NODE

    #define GTK_TYPE_CTREE_NODE (gtk_ctree_node_get_type ())

### Warning

`GTK_TYPE_CTREE_NODE` is deprecated and should not be used in newly-written code.

### gtk_ctree_new_with_titles ()

    GtkWidget *         gtk_ctree_new_with_titles           (gint columns,
                                                             gint tree_column,
                                                             gchar *titles[]);

### Warning

`gtk_ctree_new_with_titles` is deprecated and should not be used in newly-written code.

Create a new GtkCTree widget with the given titles for the columns.

`columns` : | Number of columns.
`tree_column` : | Which column has the tree graphic; 0 = leftmost.
`titles` : | The titles for the columns.
Returns : | The GtkCTree widget.

### gtk_ctree_new ()

    GtkWidget *         gtk_ctree_new                       (gint columns,
                                                             gint tree_column);

### Warning

`gtk_ctree_new` is deprecated and should not be used in newly-written code.

Create a new GtkCTree widget.

`columns` : | Number of columns.
`tree_column` : | Which columns has the tree graphic.
Returns : | The new GtkCTree widget.

### gtk_ctree_insert_node ()

    GtkCTreeNode *      gtk_ctree_insert_node               (GtkCTree *ctree,
                                                             GtkCTreeNode *parent,
                                                             GtkCTreeNode *sibling,
                                                             gchar *text[],
                                                             guint8 spacing,
                                                             GdkPixmap *pixmap_closed,
                                                             GdkBitmap *mask_closed,
                                                             GdkPixmap *pixmap_opened,
                                                             GdkBitmap *mask_opened,
                                                             gboolean is_leaf,
                                                             gboolean expanded);

### Warning

`gtk_ctree_insert_node` is deprecated and should not be used in newly-written code.

Insert a new node to the tree. The position is specified through the parent-sibling notation, as explained in the introduction above.

`ctree` : | The GtkCTree widget.
`parent` : | The parent node to be.
`sibling` : | The sibling node to be.
`text` : | The texts to be shown in each column.
`spacing` : | The extra space between the pixmap and the text.
`pixmap_closed` : | . [allow-none]
`mask_closed` : | . [allow-none]
`pixmap_opened` : | . [allow-none]
`mask_opened` : | . [allow-none]
`is_leaf` : | Whether this node is going to be a leaf.
`expanded` : | Whether this node should start out expanded or not.
Returns : |

### gtk_ctree_remove_node ()

    void                gtk_ctree_remove_node               (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_remove_node` is deprecated and should not be used in newly-written code.

Remove the node and all nodes underneath it from the tree.

`ctree` : | The widget.
`node` : | The node to be removed.

### gtk_ctree_insert_gnode ()

    GtkCTreeNode *      gtk_ctree_insert_gnode              (GtkCTree *ctree,
                                                             GtkCTreeNode *parent,
                                                             GtkCTreeNode *sibling,
                                                             GNode *gnode,
                                                             GtkCTreeGNodeFunc func,
                                                             gpointer data);

### Warning

`gtk_ctree_insert_gnode` is deprecated and should not be used in newly-written code.

FIXME

`ctree` : |
`parent` : |
`sibling` : |
`gnode` : |
`func` : |
`data` : |
Returns : |

### gtk_ctree_export_to_gnode ()

    GNode *             gtk_ctree_export_to_gnode           (GtkCTree *ctree,
                                                             GNode *parent,
                                                             GNode *sibling,
                                                             GtkCTreeNode *node,
                                                             GtkCTreeGNodeFunc func,
                                                             gpointer data);

### Warning

`gtk_ctree_export_to_gnode` is deprecated and should not be used in newly-written code.

FIXME

`ctree` : |
`parent` : |
`sibling` : |
`node` : |
`func` : |
`data` : |
Returns : |

### gtk_ctree_post_recursive ()

    void                gtk_ctree_post_recursive            (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             GtkCTreeFunc func,
                                                             gpointer data);

### Warning

`gtk_ctree_post_recursive` is deprecated and should not be used in newly-written code.

Recursively apply a function to all nodes of the tree at or below a certain node. The function is called for each node after it has been called for that node's children.

`ctree` : |
`node` : | The node where to start. `NULL` means to start at the root.
`func` : | The function to apply to each node.
`data` : | A closure argument given to each invocation of the function.

### gtk_ctree_post_recursive_to_depth ()

    void                gtk_ctree_post_recursive_to_depth   (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint depth,
                                                             GtkCTreeFunc func,
                                                             gpointer data);

### Warning

`gtk_ctree_post_recursive_to_depth` is deprecated and should not be used in newly-written code.

Recursively apply a function to nodes up to a certain depth. The function is called for each node after it has been called for that node's children.

`ctree` : |
`node` : | The node where to start.
`depth` : | The maximum absolute depth for applying the function. If depth is negative, this function just calls gtk_ctree_post_recursive.
`func` : | The function to apply to each node.
`data` : | A closure argument given to each invocation of the function.

### gtk_ctree_pre_recursive ()

    void                gtk_ctree_pre_recursive             (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             GtkCTreeFunc func,
                                                             gpointer data);

### Warning

`gtk_ctree_pre_recursive` is deprecated and should not be used in newly-written code.

Recursively apply a function to all nodes of the tree at or below a certain node. The function is called for each node after it has been called for its parent.

`ctree` : |
`node` : | The node where to start. `NULL` means to start at the root.
`func` : | The function to apply to each node.
`data` : | A closure argument given to each invocation of the function.

### gtk_ctree_pre_recursive_to_depth ()

    void                gtk_ctree_pre_recursive_to_depth    (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint depth,
                                                             GtkCTreeFunc func,
                                                             gpointer data);

### Warning

`gtk_ctree_pre_recursive_to_depth` is deprecated and should not be used in newly-written code.

Recursively apply a function to nodes up to a certain depth. The function is called for each node after it has been called for that node's children.

`ctree` : |
`node` : | The node where to start.
`depth` : | The maximum absolute depth for applying the function. If depth is negative, this function just calls gtk_ctree_post_recursive.
`func` : | The function to apply to each node.
`data` : | A closure argument given to each invocation of the function.

### gtk_ctree_is_viewable ()

    gboolean            gtk_ctree_is_viewable               (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_is_viewable` is deprecated and should not be used in newly-written code.

This function checks whether the given node is viewable i.e. so that all of its parent nodes are expanded. This is different from being actually visible: the node can be viewable but outside the scrolling area of the window.

`ctree` : |
`node` : |
Returns : | Whether the node is viewable.

### gtk_ctree_last ()

    GtkCTreeNode *      gtk_ctree_last                      (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_last` is deprecated and should not be used in newly-written code.

Returns the last child of the last child of the last child... of the given node.

`ctree` : |
`node` : |
Returns : |

### gtk_ctree_find_node_ptr ()

    GtkCTreeNode *      gtk_ctree_find_node_ptr             (GtkCTree *ctree,
                                                             GtkCTreeRow *ctree_row);

### Warning

`gtk_ctree_find_node_ptr` is deprecated and should not be used in newly-written code.

Finds the node pointer given a GtkCTreeRow structure.

`ctree` : |
`ctree_row` : |
Returns : | The node pointer.

### gtk_ctree_find ()

    gboolean            gtk_ctree_find                      (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             GtkCTreeNode *child);

### Warning

`gtk_ctree_find` is deprecated and should not be used in newly-written code.

`ctree` : |
`node` : | The node to start searching from. May be `NULL`.
`child` : |
Returns : | True if `child` is on some level a child (grandchild...) of the `node`.

### gtk_ctree_is_ancestor ()

    gboolean            gtk_ctree_is_ancestor               (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             GtkCTreeNode *child);

### Warning

`gtk_ctree_is_ancestor` is deprecated and should not be used in newly-written code.

`ctree` : |
`node` : |
`child` : |
Returns : | True is `node` is an ancestor of `child`.

### gtk_ctree_find_by_row_data ()

    GtkCTreeNode *      gtk_ctree_find_by_row_data          (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gpointer data);

### Warning

`gtk_ctree_find_by_row_data` is deprecated and should not be used in newly-written code.

Finds a node in the tree under `node` that has the given user data pointer.

`ctree` : |
`node` : |
`data` : |
Returns : | The node, or `NULL` if not found.

### gtk_ctree_find_all_by_row_data ()

    GList *             gtk_ctree_find_all_by_row_data      (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gpointer data);

### Warning

`gtk_ctree_find_all_by_row_data` is deprecated and should not be used in newly-written code.

Finds all nodes in the tree under `node` that have the given user data pointer.

`ctree` : |
`node` : |
`data` : |
Returns : | A list of nodes that have the given data pointer.

### gtk_ctree_find_by_row_data_custom ()

    GtkCTreeNode *      gtk_ctree_find_by_row_data_custom   (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gpointer data,
                                                             GCompareFunc func);

### Warning

`gtk_ctree_find_by_row_data_custom` is deprecated and should not be used in newly-written code.

Find the first node under `node` whose row data pointer fulfills a custom criterion.

`ctree` : |
`node` : | The node where to start searching.
`data` : | User data for the criterion function.
`func` : | The criterion function.
Returns : | The first node found.

### gtk_ctree_find_all_by_row_data_custom ()

    GList *             gtk_ctree_find_all_by_row_data_custom
                                                            (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gpointer data,
                                                             GCompareFunc func);

### Warning

`gtk_ctree_find_all_by_row_data_custom` is deprecated and should not be used in newly-written code.

Find all nodes under `node` whose row data pointer fulfills a custom criterion.

`ctree` : |
`node` : | The node where to start searching.
`data` : | User data for the criterion function.
`func` : | The criterion function.
Returns : | A list of all nodes found.

### gtk_ctree_is_hot_spot ()

    gboolean            gtk_ctree_is_hot_spot               (GtkCTree *ctree,
                                                             gint x,
                                                             gint y);

### Warning

`gtk_ctree_is_hot_spot` is deprecated and should not be used in newly-written code.

`ctree` : |
`x` : |
`y` : |
Returns : | True if the given coordinates lie on an expander button.

### gtk_ctree_move ()

    void                gtk_ctree_move                      (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             GtkCTreeNode *new_parent,
                                                             GtkCTreeNode *new_sibling);

### Warning

`gtk_ctree_move` is deprecated and should not be used in newly-written code.

Move a node in the tree to another location.

`ctree` : |
`node` : | The node to be moved.
`new_parent` : | . [allow-none]
`new_sibling` : | . [allow-none]

### gtk_ctree_expand ()

    void                gtk_ctree_expand                    (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_expand` is deprecated and should not be used in newly-written code.

Expand one node.

`ctree` : |
`node` : |

### gtk_ctree_expand_recursive ()

    void                gtk_ctree_expand_recursive          (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_expand_recursive` is deprecated and should not be used in newly-written code.

Expand one node and all nodes underneath.

`ctree` : |
`node` : |

### gtk_ctree_expand_to_depth ()

    void                gtk_ctree_expand_to_depth           (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint depth);

### Warning

`gtk_ctree_expand_to_depth` is deprecated and should not be used in newly-written code.

Expand a node and its children up to the depth given.

`ctree` : |
`node` : |
`depth` : | The (absolute) depth up to which to expand nodes.

### gtk_ctree_collapse ()

    void                gtk_ctree_collapse                  (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_collapse` is deprecated and should not be used in newly-written code.

Collapse one node.

`ctree` : |
`node` : |

### gtk_ctree_collapse_recursive ()

    void                gtk_ctree_collapse_recursive        (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_collapse_recursive` is deprecated and should not be used in newly-written code.

Collapse one node and all its subnodes.

`ctree` : |
`node` : |

### gtk_ctree_collapse_to_depth ()

    void                gtk_ctree_collapse_to_depth         (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint depth);

### Warning

`gtk_ctree_collapse_to_depth` is deprecated and should not be used in newly-written code.

Collapse a node and its children up to the depth given.

`ctree` : |
`node` : |
`depth` : | The (absolute) depth up to which to collapse nodes.

### gtk_ctree_toggle_expansion ()

    void                gtk_ctree_toggle_expansion          (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_toggle_expansion` is deprecated and should not be used in newly-written code.

Toggle a node, i.e. if it is collapsed, expand it and vice versa.

`ctree` : |
`node` : |

### gtk_ctree_toggle_expansion_recursive ()

    void                gtk_ctree_toggle_expansion_recursive
                                                            (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_toggle_expansion_recursive` is deprecated and should not be used in newly-written code.

Toggle the expansion of a node and all its children.

`ctree` : |
`node` : |

### gtk_ctree_select ()

    void                gtk_ctree_select                    (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_select` is deprecated and should not be used in newly-written code.

Cause the given node to be selected and emit the appropriate signal.

`ctree` : |
`node` : |

### gtk_ctree_select_recursive ()

    void                gtk_ctree_select_recursive          (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_select_recursive` is deprecated and should not be used in newly-written code.

Cause the given node and its subnodes to be selected and emit the appropriate signal(s).

`ctree` : |
`node` : |

### gtk_ctree_unselect ()

    void                gtk_ctree_unselect                  (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_unselect` is deprecated and should not be used in newly-written code.

Unselect the given node and emit the appropriate signal.

`ctree` : |
`node` : |

### gtk_ctree_unselect_recursive ()

    void                gtk_ctree_unselect_recursive        (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_unselect_recursive` is deprecated and should not be used in newly-written code.

Unselect the given node and its subnodes and emit the appropriate signal(s).

`ctree` : |
`node` : |

### gtk_ctree_real_select_recursive ()

    void                gtk_ctree_real_select_recursive     (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint state);

### Warning

`gtk_ctree_real_select_recursive` is deprecated and should not be used in newly-written code.

The function that implements both gtk_ctree_select_recursive and gtk_ctree_unselect_recursive.

`ctree` : |
`node` : |
`state` : | True for selecting, false for unselecting.

### gtk_ctree_node_set_text ()

    void                gtk_ctree_node_set_text             (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             const gchar *text);

### Warning

`gtk_ctree_node_set_text` is deprecated and should not be used in newly-written code.

Set the text in a node.

`ctree` : |
`node` : |
`column` : | The column whose text to change.
`text` : | The new text.

### gtk_ctree_node_set_pixmap ()

    void                gtk_ctree_node_set_pixmap           (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             GdkPixmap *pixmap,
                                                             GdkBitmap *mask);

### Warning

`gtk_ctree_node_set_pixmap` is deprecated and should not be used in newly-written code.

FIXME

`ctree` : |
`node` : |
`column` : |
`pixmap` : |
`mask` : | . [allow-none]

### gtk_ctree_node_set_pixtext ()

    void                gtk_ctree_node_set_pixtext          (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             const gchar *text,
                                                             guint8 spacing,
                                                             GdkPixmap *pixmap,
                                                             GdkBitmap *mask);

### Warning

`gtk_ctree_node_set_pixtext` is deprecated and should not be used in newly-written code.

FIXME

`ctree` : |
`node` : |
`column` : |
`text` : |
`spacing` : |
`pixmap` : |
`mask` : | . [allow-none]

### gtk_ctree_set_node_info ()

    void                gtk_ctree_set_node_info             (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             const gchar *text,
                                                             guint8 spacing,
                                                             GdkPixmap *pixmap_closed,
                                                             GdkBitmap *mask_closed,
                                                             GdkPixmap *pixmap_opened,
                                                             GdkBitmap *mask_opened,
                                                             gboolean is_leaf,
                                                             gboolean expanded);

### Warning

`gtk_ctree_set_node_info` is deprecated and should not be used in newly-written code.

Change the information. Most parameters correspond to the parameters of gtk_ctree_insert_node.

`ctree` : |
`node` : |
`text` : | The text to be in the tree column.
`spacing` : |
`pixmap_closed` : | . [allow-none]
`mask_closed` : | . [allow-none]
`pixmap_opened` : | . [allow-none]
`mask_opened` : | . [allow-none]
`is_leaf` : |
`expanded` : |

### gtk_ctree_node_set_shift ()

    void                gtk_ctree_node_set_shift            (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             gint vertical,
                                                             gint horizontal);

### Warning

`gtk_ctree_node_set_shift` is deprecated and should not be used in newly-written code.

Shift the given cell the given amounts in pixels.

`ctree` : |
`node` : |
`column` : |
`vertical` : |
`horizontal` : |

### gtk_ctree_node_set_selectable ()

    void                gtk_ctree_node_set_selectable       (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gboolean selectable);

### Warning

`gtk_ctree_node_set_selectable` is deprecated and should not be used in newly-written code.

`ctree` : |
`node` : |
`selectable` : | Whether this node can be selected by the user.

### gtk_ctree_node_get_selectable ()

    gboolean            gtk_ctree_node_get_selectable       (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_node_get_selectable` is deprecated and should not be used in newly-written code.

`ctree` : |
`node` : |
Returns : | Whether this node can be selected by the user.

### gtk_ctree_node_get_cell_type ()

    GtkCellType         gtk_ctree_node_get_cell_type        (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column);

### Warning

`gtk_ctree_node_get_cell_type` is deprecated and should not be used in newly-written code.

`ctree` : |
`node` : |
`column` : |
Returns : | The type of the given cell.

### gtk_ctree_node_get_text ()

    gboolean            gtk_ctree_node_get_text             (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             gchar **text);

### Warning

`gtk_ctree_node_get_text` is deprecated and should not be used in newly-written code.

`ctree` : |
`node` : |
`column` : |
`text` : | If nonnull, the pointer to the text string is assigned to *`text`.
Returns : | True if the given cell has text in it.

### gtk_ctree_node_get_pixmap ()

    gboolean            gtk_ctree_node_get_pixmap           (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             GdkPixmap **pixmap,
                                                             GdkBitmap **mask);

### Warning

`gtk_ctree_node_get_pixmap` is deprecated and should not be used in newly-written code.

`ctree` : |
`node` : |
`column` : |
`pixmap` : | If nonnull, the pointer to the pixmap is returned through this.
`mask` : | If nonnull, the pointer to the mask is returned through this.
Returns : | True if the given cell contains a pixmap.

### gtk_ctree_node_get_pixtext ()

    gboolean            gtk_ctree_node_get_pixtext          (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             gchar **text,
                                                             guint8 *spacing,
                                                             GdkPixmap **pixmap,
                                                             GdkBitmap **mask);

### Warning

`gtk_ctree_node_get_pixtext` is deprecated and should not be used in newly-written code.

Get the parameters of a cell containing both a pixmap and text.

`ctree` : |
`node` : |
`column` : |
`text` : |
`spacing` : |
`pixmap` : |
`mask` : |
Returns : |

### gtk_ctree_get_node_info ()

    gboolean            gtk_ctree_get_node_info             (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gchar **text,
                                                             guint8 *spacing,
                                                             GdkPixmap **pixmap_closed,
                                                             GdkBitmap **mask_closed,
                                                             GdkPixmap **pixmap_opened,
                                                             GdkBitmap **mask_opened,
                                                             gboolean *is_leaf,
                                                             gboolean *expanded);

### Warning

`gtk_ctree_get_node_info` is deprecated and should not be used in newly-written code.

Get information corresponding to a node. Any of the return parameters can be null.

`ctree` : |
`node` : |
`text` : |
`spacing` : |
`pixmap_closed` : |
`mask_closed` : |
`pixmap_opened` : |
`mask_opened` : |
`is_leaf` : |
`expanded` : |
Returns : |

### gtk_ctree_node_set_row_style ()

    void                gtk_ctree_node_set_row_style        (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             GtkStyle *style);

### Warning

`gtk_ctree_node_set_row_style` is deprecated and should not be used in newly-written code.

Set the style of a row.

`ctree` : |
`node` : |
`style` : |

### gtk_ctree_node_get_row_style ()

    GtkStyle *          gtk_ctree_node_get_row_style        (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_node_get_row_style` is deprecated and should not be used in newly-written code.

Get the style of a row.

`ctree` : |
`node` : |
Returns : |

### gtk_ctree_node_set_cell_style ()

    void                gtk_ctree_node_set_cell_style       (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             GtkStyle *style);

### Warning

`gtk_ctree_node_set_cell_style` is deprecated and should not be used in newly-written code.

Set the style of an individual cell.

`ctree` : |
`node` : |
`column` : |
`style` : |

### gtk_ctree_node_get_cell_style ()

    GtkStyle *          gtk_ctree_node_get_cell_style       (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column);

### Warning

`gtk_ctree_node_get_cell_style` is deprecated and should not be used in newly-written code.

Get the style of an individual cell.

`ctree` : |
`node` : |
`column` : |
Returns : |

### gtk_ctree_node_set_foreground ()

    void                gtk_ctree_node_set_foreground       (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             const GdkColor *color);

### Warning

`gtk_ctree_node_set_foreground` is deprecated and should not be used in newly-written code.

`ctree` : |
`node` : |
`color` : |

### gtk_ctree_node_set_background ()

    void                gtk_ctree_node_set_background       (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             const GdkColor *color);

### Warning

`gtk_ctree_node_set_background` is deprecated and should not be used in newly-written code.

`ctree` : |
`node` : |
`color` : |

### gtk_ctree_node_set_row_data ()

    void                gtk_ctree_node_set_row_data         (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gpointer data);

### Warning

`gtk_ctree_node_set_row_data` is deprecated and should not be used in newly-written code.

Set the custom data associated with a node.

`ctree` : |
`node` : |
`data` : |

### gtk_ctree_node_set_row_data_full ()

    void                gtk_ctree_node_set_row_data_full    (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gpointer data,
                                                             GDestroyNotify destroy);

### Warning

`gtk_ctree_node_set_row_data_full` is deprecated and should not be used in newly-written code.

This is the full interface to setting row data, so that a destructor can be given for the data.

`ctree` : |
`node` : |
`data` : |
`destroy` : | The routine to be called when `data` is no longer needed.

### gtk_ctree_node_get_row_data ()

    gpointer            gtk_ctree_node_get_row_data         (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_node_get_row_data` is deprecated and should not be used in newly-written code.

`ctree` : |
`node` : |
Returns : |

### gtk_ctree_node_moveto ()

    void                gtk_ctree_node_moveto               (GtkCTree *ctree,
                                                             GtkCTreeNode *node,
                                                             gint column,
                                                             gfloat row_align,
                                                             gfloat col_align);

### Warning

`gtk_ctree_node_moveto` is deprecated and should not be used in newly-written code.

This function makes the given column of the given node visible by scrolling.

`ctree` : |
`node` : | The node to be made visible.
`column` : | The column to be made visible.
`row_align` : | Where in the window the row should appear.
`col_align` : | Where in the window the column should appear.

### gtk_ctree_node_is_visible ()

    GtkVisibility       gtk_ctree_node_is_visible           (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_node_is_visible` is deprecated and should not be used in newly-written code.

`ctree` : |
`node` : |
Returns : | True if the node is currently inside the bounds of the window. Note that this function can return true even if the node is not viewable, if the node's ancestor is visible.

### gtk_ctree_set_indent ()

    void                gtk_ctree_set_indent                (GtkCTree *ctree,
                                                             gint indent);

### Warning

`gtk_ctree_set_indent` is deprecated and should not be used in newly-written code.

`ctree` : |
`indent` : | The number of pixels to shift the levels of the tree.

### gtk_ctree_set_spacing ()

    void                gtk_ctree_set_spacing               (GtkCTree *ctree,
                                                             gint spacing);

### Warning

`gtk_ctree_set_spacing` is deprecated and should not be used in newly-written code.

The spacing between the tree graphic and the actual node content.

`ctree` : |
`spacing` : |

### gtk_ctree_set_reorderable()

    #define gtk_ctree_set_reorderable(t,r)                    gtk_clist_set_reorderable((GtkCList*) (t),(r))

### Warning

`gtk_ctree_set_reorderable` is deprecated and should not be used in newly-written code.

`t` : |
`r` : |

### gtk_ctree_set_line_style ()

    void                gtk_ctree_set_line_style            (GtkCTree *ctree,
                                                             GtkCTreeLineStyle line_style);

### Warning

`gtk_ctree_set_line_style` is deprecated and should not be used in newly-written code.

`ctree` : |
`line_style` : |

### gtk_ctree_set_expander_style ()

    void                gtk_ctree_set_expander_style        (GtkCTree *ctree,
                                                             GtkCTreeExpanderStyle expander_style);

### Warning

`gtk_ctree_set_expander_style` is deprecated and should not be used in newly-written code.

`ctree` : |
`expander_style` : |

### gtk_ctree_set_drag_compare_func ()

    void                gtk_ctree_set_drag_compare_func     (GtkCTree *ctree,
                                                             GtkCTreeCompareDragFunc cmp_func);

### Warning

`gtk_ctree_set_drag_compare_func` is deprecated and should not be used in newly-written code.

FIXME

`ctree` : |
`cmp_func` : |

### gtk_ctree_sort_node ()

    void                gtk_ctree_sort_node                 (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_sort_node` is deprecated and should not be used in newly-written code.

Sort the children of a node. See GtkCList for how to set the sorting criteria etc.

`ctree` : |
`node` : |

### gtk_ctree_sort_recursive ()

    void                gtk_ctree_sort_recursive            (GtkCTree *ctree,
                                                             GtkCTreeNode *node);

### Warning

`gtk_ctree_sort_recursive` is deprecated and should not be used in newly-written code.

Sort the descendants of a node. See GtkCList for how to set the sorting criteria etc.

`ctree` : |
`node` : |

### gtk_ctree_node_nth ()

    GtkCTreeNode *      gtk_ctree_node_nth                  (GtkCTree *ctree,
                                                             guint row);

### Warning

`gtk_ctree_node_nth` is deprecated and should not be used in newly-written code.

`ctree` : |
`row` : |
Returns : | The node corresponding to the `row` th row.

### gtk_ctree_set_show_stub ()

    void                gtk_ctree_set_show_stub             (GtkCTree *ctree,
                                                             gboolean show_stub);

### Warning

`gtk_ctree_set_show_stub` is deprecated and should not be used in newly-written code.

`ctree` : |
`show_stub` : |

## Property Details

### The `"expander-style"` property

      "expander-style"           GtkCTreeExpanderStyle  : Read / Write

The style of the expander buttons.

Default value: GTK_CTREE_EXPANDER_NONE

### The `"indent"` property

      "indent"                   guint                 : Read / Write

The number of pixels to indent the tree levels.

Default value: 0

### The `"line-style"` property

      "line-style"               GtkCTreeLineStyle     : Read / Write

The style of the lines in the tree graphic.

Default value: GTK_CTREE_LINES_NONE

### The `"n-columns"` property

      "n-columns"                guint                 : Read / Write / Construct Only

The number of columns in the tree.

Default value: 0

### The `"show-stub"` property

      "show-stub"                gboolean              : Read / Write

Default value: FALSE

### The `"spacing"` property

      "spacing"                  guint                 : Read / Write

The number of pixels between the tree and the columns.

Default value: 0

### The `"tree-column"` property

      "tree-column"              guint                 : Read / Write / Construct Only

The column in which the actual tree graphic appears.

Default value: 0

## Signal Details

### The `"change-focus-row-expansion"` signal

    void                user_function                      (GtkCTree             *ctree,
                                                            GtkCTreeExpansionType expansion,
                                                            gpointer              user_data)      : Run Last / Action

The row which has the focus is either collapsed or expanded or toggled.

`ctree` : | the object which received the signal.
`expansion` : | What is being done.
`user_data` : | user data set when the signal handler was connected.

### The `"tree-collapse"` signal

    void                user_function                      (GtkCTree     *ctree,
                                                            GtkCTreeNode *node,
                                                            gpointer      user_data)      : Run Last

Emitted when a node is collapsed.

`ctree` : | the object which received the signal.
`node` : |
`user_data` : | user data set when the signal handler was connected.

### The `"tree-expand"` signal

    void                user_function                      (GtkCTree     *ctree,
                                                            GtkCTreeNode *node,
                                                            gpointer      user_data)      : Run Last

Emitted when a node is expanded.

`ctree` : | the object which received the signal.
`node` : |
`user_data` : | user data set when the signal handler was connected.

### The `"tree-move"` signal

    void                user_function                      (GtkCTree     *ctree,
                                                            GtkCTreeNode *node,
                                                            GtkCTreeNode *new_parent,
                                                            GtkCTreeNode *new_sibling,
                                                            gpointer      user_data)        : Run Last

Emitted when a node is moved.

`ctree` : | the object which received the signal.
`node` : | The node that is moved.
`new_parent` : | The new parent of the node.
`new_sibling` : | The new sibling of the node.
`user_data` : | user data set when the signal handler was connected.

### The `"tree-select-row"` signal

    void                user_function                      (GtkCTree     *ctree,
                                                            GtkCTreeNode *node,
                                                            gint          column,
                                                            gpointer      user_data)      : Run First

Emitted when a row is selected.

`ctree` : | the object which received the signal.
`node` : | The node corresponding to the selected row.
`column` : | The column which was selected.
`user_data` : | user data set when the signal handler was connected.

### The `"tree-unselect-row"` signal

    void                user_function                      (GtkCTree     *ctree,
                                                            GtkCTreeNode *node,
                                                            gint          column,
                                                            gpointer      user_data)      : Run First

Emitted when a node is unselected.

`ctree` : | the object which received the signal.
`node` : | The node corresponding to the selected row.
`column` : |
`user_data` : | user data set when the signal handler was connected.