GdauiDataStore — Bridge between a GdaDataModel and a GtkTreeModel
| #define | GDAUI_TYPE_DATA_STORE |
| #define | DATA_STORE_COL_MODEL_N_COLUMNS |
| #define | DATA_STORE_COL_MODEL_POINTER |
| #define | DATA_STORE_COL_MODEL_ROW |
| #define | DATA_STORE_COL_MODIFIED |
| #define | DATA_STORE_COL_TO_DELETE |
| struct | GdauiDataStoreClass |
| GdauiDataStore |
The GdauiDataStore object implements the GtkTreeModel interface on top of a GdaDataModel to be able to display its contents
in a GtkTreeView (however you should not directly a GdauiTreeStore with a GtkTreeView but use
a GdauiRauGrid or GdauiGrid instead, see explanatione below). You should probably not have to create you own
GdauiDataStore, but use the ones returned by gtk_tree_view_get_model() (on a GdauiRawGrid).
The values returned by gtk_tree_model_get() are pointers to GValue which do actually contain the values (i.e.
gtk_tree_model_get() does not return strings, integers, or booleans directly). The returned values are the same as returned
by gda_data_model_get_value_at() or similar functions (i.e. there can be NULL values, or errors).
Here is for example a correct way to use the GdauiDataStore object (assuming for example that column 0 is supposed to hold a string):
GMainContext *context;
GdauiDataStore *store;
GtkTreeIter iter;
store = ...
if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter)) {
GValue *value;
gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, 0, &value, -1);
if (value == NULL) {
// an error occured while getting the value, see gda_data_model_get() for details
}
else if (G_VALUE_HOLDS (value, G_TYPE_STRING)) {
gchar *str;
str = g_value_get_string (value);
...
}
else if (GDA_VALUE_HOLDS_NULL (value)) {
...
}
else {
// this should not happen if column 0 is supposed to hold a string
g_assert_not_reached ();
}
}
GtkTreeModel *
gdaui_data_store_new (GdaDataModel *model);
Creates a GtkTreeModel interface with a GdaDataModel
Since: 4.2
GdaDataProxy *
gdaui_data_store_get_proxy (GdauiDataStore *store);
Since: 4.2
gint gdaui_data_store_get_row_from_iter (GdauiDataStore *store,GtkTreeIter *iter);
Get the number of the row represented by iter
Since: 4.2
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. |
[out] |
values |
a list of GValue values. |
[element-type GValue] |
cols_index |
an array of gint containing the column number to match each value of |
Since: 4.2
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) |
Since: 4.2
void gdaui_data_store_delete (GdauiDataStore *store,GtkTreeIter *iter);
Marks the row pointed by iter
to be deleted
Since: 4.2
void gdaui_data_store_undelete (GdauiDataStore *store,GtkTreeIter *iter);
Remove the "to be deleted" mark the row pointed by iter
, if it existed.
Since: 4.2
gboolean gdaui_data_store_append (GdauiDataStore *store,GtkTreeIter *iter);
Appends a new row.
Since: 4.2
#define DATA_STORE_COL_MODEL_N_COLUMNS GDAUI_DATA_STORE_COL_MODEL_N_COLUMNS
#define DATA_STORE_COL_MODEL_POINTER GDAUI_DATA_STORE_COL_MODEL_POINTER
“prepend-null-entry” property“prepend-null-entry” gboolean
Owner: GdauiDataStore
Flags: Read / Write
Default value: FALSE