## GdauiTreeStore

GdauiTreeStore — Bridge between a GdaTree and a GtkTreeModel

## Synopsis

    struct              GdauiTreeStore;
    GtkTreeModel *      gdaui_tree_store_new                (GdaTree *tree,
                                                             guint n_columns,
                                                             ...);
    GtkTreeModel *      gdaui_tree_store_newv               (GdaTree *tree,
                                                             guint n_columns,
                                                             GType *types,
                                                             const gchar **attribute_names);
    GdaTreeNode *       gdaui_tree_store_get_node           (GdauiTreeStore *store,
                                                             GtkTreeIter *iter);
    gboolean            gdaui_tree_store_get_iter           (GdauiTreeStore *store,
                                                             GtkTreeIter *iter,
                                                             GdaTreeNode *node);

## Object Hierarchy

      GObject
       +----GdauiTreeStore

## Implemented Interfaces

GdauiTreeStore implements GtkTreeModel, GtkTreeDragSource and GtkTreeDragDest.

## Properties

      "tree"                     GdaTree*              : Read / Write / Construct Only

## Signals

      "drag-can-drag"                                  : Run Last
      "drag-can-drop"                                  : Run Last
      "drag-delete"                                    : Run Last
      "drag-drop"                                      : Run Last
      "drag-get"                                       : Run Last

## Description

The GdauiTreeStore implements the GtkTreeModel interface required to display data from a GdaTree in a GtkTreeView widget.

## Details

### struct GdauiTreeStore

    struct GdauiTreeStore;

### gdaui_tree_store_new ()

    GtkTreeModel *      gdaui_tree_store_new                (GdaTree *tree,
                                                             guint n_columns,
                                                             ...);

Creates a GtkTreeModel interface with a GdaTree, mapping columns to attributes' values.

As an example, `gdaui_tree_store_new (tree, 2, G_TYPE_STRING, "name", G_TYPE_STRING, "schema");` creates a GtkTreeStore with two columns (of type G_TYPE_STRING), one with the values of the "name" attribute, and one with the values of the "schema" attribute.

Note that the GType has to correspond to the type of value associated with the attribute name (no type conversion is done), and a warning will be displayed in case of type mismatch.

`tree` : | a GdaTree object
`n_columns` : | number of columns in the tree store
Returns : | the new object, or `NULL` if an attribute's name was NULL or an empty string

Since 4.2

### gdaui_tree_store_newv ()

    GtkTreeModel *      gdaui_tree_store_newv               (GdaTree *tree,
                                                             guint n_columns,
                                                             GType *types,
                                                             const gchar **attribute_names);

Creates a GtkTreeModel interface with a GdaTree, mapping columns to attributes' values. For more information and limitations, see `gdaui_tree_store_new()`.

`tree` : | a GdaTree object
`n_columns` : | number of columns in the tree store
`types` : | an array of `n_columns` GType to specify the type of each column
`attribute_names` : | an array of `n_columns` strings to specify the attribute name to map each column on
Returns : | the new object, or `NULL` if an inconsistency exists in the parameters

Since 4.2

### gdaui_tree_store_get_node ()

    GdaTreeNode *       gdaui_tree_store_get_node           (GdauiTreeStore *store,
                                                             GtkTreeIter *iter);

Get the GdaTreeNode represented by `iter`.

`store` : | a GdauiTreeStore object
`iter` : | a valid GtkTreeIter
Returns : | the GdaTreeNode represented by `iter`, or `NULL` if an error occurred. [transfer none]

Since 4.2.8

### gdaui_tree_store_get_iter ()

    gboolean            gdaui_tree_store_get_iter           (GdauiTreeStore *store,
                                                             GtkTreeIter *iter,
                                                             GdaTreeNode *node);

Sets `iter` to represent `node` in the tree.

`store` : | a GdauiTreeStore object
`iter` : | a pointer to a GtkTreeIter
`node` : | a GdaTreeNode in `store`
Returns : | `TRUE` if no error occurred and `iter` is valid

Since 4.2.8

## Property Details

### The `"tree"` property

      "tree"                     GdaTree*              : Read / Write / Construct Only

## Signal Details

### The `"drag-can-drag"` signal

    gboolean            user_function                      (GdauiTreeStore *gdauitreestore,
                                                            gchar          *arg1,
                                                            gpointer        user_data)           : Run Last

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

### The `"drag-can-drop"` signal

    gboolean            user_function                      (GdauiTreeStore *gdauitreestore,
                                                            gchar          *arg1,
                                                            gpointer        arg2,
                                                            gpointer        user_data)           : Run Last

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

### The `"drag-delete"` signal

    gboolean            user_function                      (GdauiTreeStore *gdauitreestore,
                                                            gchar          *arg1,
                                                            gpointer        user_data)           : Run Last

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

### The `"drag-drop"` signal

    gboolean            user_function                      (GdauiTreeStore *gdauitreestore,
                                                            gchar          *arg1,
                                                            gpointer        arg2,
                                                            gpointer        user_data)           : Run Last

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

### The `"drag-get"` signal

    gboolean            user_function                      (GdauiTreeStore *gdauitreestore,
                                                            gchar          *arg1,
                                                            gpointer        arg2,
                                                            gpointer        user_data)           : Run Last

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