## GdauiDataStore GdauiDataStore — Bridge between a GdaDataModel and a GtkTreeModel |

## Synopsis

                        GdauiDataStore;
    GtkTreeModel *      gdaui_data_store_new                (GdaDataModel *model);
    GdaDataProxy *      gdaui_data_store_get_proxy          (GdauiDataStore *store);
    gint                gdaui_data_store_get_row_from_iter  (GdauiDataStore *store,
                                                             GtkTreeIter *iter);
    gboolean            gdaui_data_store_get_iter_from_values
                                                            (GdauiDataStore *store,
                                                             GtkTreeIter *iter,
                                                             GSList *values,
                                                             gint *cols_index);

    gboolean            gdaui_data_store_set_value          (GdauiDataStore *store,
                                                             GtkTreeIter *iter,
                                                             gint col,
                                                             const GValue *value);
    void                gdaui_data_store_delete             (GdauiDataStore *store,
                                                             GtkTreeIter *iter);
    void                gdaui_data_store_undelete           (GdauiDataStore *store,
                                                             GtkTreeIter *iter);
    gboolean            gdaui_data_store_append             (GdauiDataStore *store,
                                                             GtkTreeIter *iter);

## Object Hierarchy

      GObject
       +----GdauiDataStore

## Implemented Interfaces

GdauiDataStore implements GtkTreeModel.

## Properties

      "model"                    gpointer              : Read / Write / Construct Only
      "prepend-null-entry"       gboolean              : Read / Write
      "proxy"                    gpointer              : Read

## Description

The GdauiDataStore object implements the GtkTreeModel interface on top of a GdaDataModel to be able to display its contents in a GtkTreeView.

## Details

### GdauiDataStore

    typedef struct _GdauiDataStore GdauiDataStore;

### gdaui_data_store_new ()

    GtkTreeModel *      gdaui_data_store_new                (GdaDataModel *model);

Creates a GtkTreeModel interface with a GdaDataModel

`model` : | a GdaDataModel object
Returns : | the new object

Since 4.2

### gdaui_data_store_get_proxy ()

    GdaDataProxy *      gdaui_data_store_get_proxy          (GdauiDataStore *store);

`store` : | a GdauiDataStore object
Returns : | the internal GdaDataProxy being used by `store`

Since 4.2

### gdaui_data_store_get_row_from_iter ()

    gint                gdaui_data_store_get_row_from_iter  (GdauiDataStore *store,
                                                             GtkTreeIter *iter);

Get the number of the row represented by `iter`

`store` : | a GdauiDataStore object
`iter` : | a valid GtkTreeIter
Returns : | the row number, or -1 if an error occurred

Since 4.2

### gdaui_data_store_get_iter_from_values ()

    gboolean            gdaui_data_store_get_iter_from_values
                                                            (GdauiDataStore *store,
                                                             GtkTreeIter *iter,
                                                             GSList *values,
                                                             gint *cols_index);

Sets `iter` to the first row where all the values in `values` at the columns identified at `cols_index` match. If the row can't be identified, then the contents of `iter` is not modified.

NOTE: the `cols_index` array MUST contain a column index for each value in `values`

`store` : | a GdauiDataStore object
`iter` : | an unset GtkTreeIter to set to the requested row
`values` : | a list of GValue values
`cols_index` : | an array of gint containing the column number to match each value of `values`
Returns : | TRUE if the row has been identified `iter` was set

Since 4.2

### gdaui_data_store_set_value ()

    gboolean            gdaui_data_store_set_value          (GdauiDataStore *store,
                                                             GtkTreeIter *iter,
                                                             gint col,
                                                             const GValue *value);

Stores a value in the `store` data model.

`store` : | a GdauiDataStore object
`iter` : | the considered row
`col` : | the data model column
`value` : | the value to store (gets copied)
Returns : | TRUE on success

Since 4.2

### gdaui_data_store_delete ()

    void                gdaui_data_store_delete             (GdauiDataStore *store,
                                                             GtkTreeIter *iter);

Marks the row pointed by `iter` to be deleted

`store` : | a GdauiDataStore object
`iter` : | the considered row

Since 4.2

### gdaui_data_store_undelete ()

    void                gdaui_data_store_undelete           (GdauiDataStore *store,
                                                             GtkTreeIter *iter);

Remove the "to be deleted" mark the row pointed by `iter`, if it existed.

`store` : | a GdauiDataStore object
`iter` : | the considered row

Since 4.2

### gdaui_data_store_append ()

    gboolean            gdaui_data_store_append             (GdauiDataStore *store,
                                                             GtkTreeIter *iter);

Appends a new row.

`store` : | a GdauiDataStore object
`iter` : | an unset GtkTreeIter to set to the appended row
Returns : | TRUE if no error occurred

Since 4.2

## Property Details

### The `"model"` property

      "model"                    gpointer              : Read / Write / Construct Only

### The `"prepend-null-entry"` property

      "prepend-null-entry"       gboolean              : Read / Write

Default value: FALSE

### The `"proxy"` property

      "proxy"                    gpointer              : Read