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 GValue *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 GValue *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 occurred

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 occurred

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 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

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