GnomeDbDataStore

GnomeDbDataStore — Implements the GtkTreeModel interface

Synopsis




            GnomeDbDataStore;
            GnomeDbDataStoreClass;
            GnomeDbDataStorePriv;
GtkTreeModel* gnome_db_data_store_new       (GdaDataModel *model);
gboolean    gnome_db_data_store_set_value   (GnomeDbDataStore *store,
                                             GtkTreeIter *iter,
                                             gint col,
                                             const GdaValue *value);
void        gnome_db_data_store_delete      (GnomeDbDataStore *store,
                                             GtkTreeIter *iter);
void        gnome_db_data_store_undelete    (GnomeDbDataStore *store,
                                             GtkTreeIter *iter);
gboolean    gnome_db_data_store_append      (GnomeDbDataStore *store,
                                             GtkTreeIter *iter);
GdaDataProxy* gnome_db_data_store_get_proxy (GnomeDbDataStore *store);
gint        gnome_db_data_store_get_row_from_iter
                                            (GnomeDbDataStore *store,
                                             GtkTreeIter *iter);
gboolean    gnome_db_data_store_get_iter_from_values
                                            (GnomeDbDataStore *store,
                                             GtkTreeIter *iter,
                                             GSList *values,
                                             gint *cols_index);

Object Hierarchy


  GObject
   +----GnomeDbDataStore

Implemented Interfaces

GnomeDbDataStore implements GtkTreeModel.

Properties


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

Description

This object implements the GtkTreeModel interface, to make it easy to display a GdaDataModel in a GtkTreeView widget. Internally a GdaDataProxy is used so it is possible to adjust the range of displayed data using that object.

Specifically, for a GdaDataModel object containing nb_cols columns,the GnomeDbDataStore object provides the following columns, for a given row:

  • negative column number DATA_STORE_COL_MODEL_N_COLUMNS: always contains nb_cols

  • negative column number DATA_STORE_COL_MODEL_POINTER: always contains a pointer to the GdaDataModel

  • negative column number DATA_STORE_COL_MODEL_ROW: contains the GdaDataModel's row number (-1 if the row has been added and is not yet present in the data model)

  • negative column number DATA_STORE_COL_MODIFIED: contains TRUE if the row has been modified in the proxy

  • negative column number DATA_STORE_COL_TO_DELETE: contains TRUE if the row has been marked to be removed in the proxy

  • column such as 0 <= column < nb_cols: contains the current value in the proxy

  • column such as nb_cols <= column < 2*nb_cols: contains the value in the GdaDataModel at column column-nb_cols (which may be different than the one in the proxy)

Details

GnomeDbDataStore

typedef struct _GnomeDbDataStore GnomeDbDataStore;


GnomeDbDataStoreClass

typedef struct {
	GObjectClass           parent_class;
} GnomeDbDataStoreClass;


GnomeDbDataStorePriv

typedef struct _GnomeDbDataStorePriv GnomeDbDataStorePriv;


gnome_db_data_store_new ()

GtkTreeModel* gnome_db_data_store_new       (GdaDataModel *model);

Creates a GtkTreeModel interface with a GdaDataModel

model : a GdaDataModel object
Returns : the new object

gnome_db_data_store_set_value ()

gboolean    gnome_db_data_store_set_value   (GnomeDbDataStore *store,
                                             GtkTreeIter *iter,
                                             gint col,
                                             const GdaValue *value);

Stores a value in the store data model.

store : a GnomeDbDataStore object
iter : the considered row
col :
value : the value to store (gets copied)
Returns : TRUE on succes

gnome_db_data_store_delete ()

void        gnome_db_data_store_delete      (GnomeDbDataStore *store,
                                             GtkTreeIter *iter);

Marks the row pointed by iter to be deleted

store : a GnomeDbDataStore object
iter : the considered row

gnome_db_data_store_undelete ()

void        gnome_db_data_store_undelete    (GnomeDbDataStore *store,
                                             GtkTreeIter *iter);

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

store : a GnomeDbDataStore object
iter : the considered row

gnome_db_data_store_append ()

gboolean    gnome_db_data_store_append      (GnomeDbDataStore *store,
                                             GtkTreeIter *iter);

Appends a new row.

store : a GnomeDbDataStore object
iter : an unset GtkTreeIter to set to the appended row
Returns : TRUE if no error occured

gnome_db_data_store_get_proxy ()

GdaDataProxy* gnome_db_data_store_get_proxy (GnomeDbDataStore *store);

store : a GnomeDbDataStore object
Returns : the internal GdaDataProxy being used by store

gnome_db_data_store_get_row_from_iter ()

gint        gnome_db_data_store_get_row_from_iter
                                            (GnomeDbDataStore *store,
                                             GtkTreeIter *iter);

Get the number of the row represented by iter

store : a GnomeDbDataStore object
iter : a valid GtkTreeIter
Returns : the row number, or -1 if an error occured

gnome_db_data_store_get_iter_from_values ()

gboolean    gnome_db_data_store_get_iter_from_values
                                            (GnomeDbDataStore *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 GnomeDbDataStore object
iter : an unset GtkTreeIter to set to the requested row
values : a list of GdaValue 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

Properties

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