aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-table-example-2.c
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@helixcode.com>2000-05-20 02:47:16 +0800
committerChris Lahey <clahey@src.gnome.org>2000-05-20 02:47:16 +0800
commit46f211579d1dfd60147099942b40c9697796e7c8 (patch)
tree5f8e8027e3e378bd2c8061ecf10061f4609ab02e /widgets/table/e-table-example-2.c
parentae208c7e8ff0463666c52392553af2572a8ee9b5 (diff)
downloadgsoc2013-evolution-46f211579d1dfd60147099942b40c9697796e7c8.tar.gz
gsoc2013-evolution-46f211579d1dfd60147099942b40c9697796e7c8.tar.zst
gsoc2013-evolution-46f211579d1dfd60147099942b40c9697796e7c8.zip
Added initialize_value and value_is_empty callbacks.
2000-05-19 Christopher James Lahey <clahey@helixcode.com> * e-table-example-1.c, e-table-example-2.c, e-table-simple.c, e-table-simple.h, e-table-size-test.c, test-check.c, test-cols.c, test-table.c: Added initialize_value and value_is_empty callbacks. * e-table-model.c, e-table-model.h: Added initialize_value and value_is_callback virtual functions to the ETableModel class. * e-table-subset.c: Perpetuate the initialize_value and value_is_empty methods. svn path=/trunk/; revision=3138
Diffstat (limited to 'widgets/table/e-table-example-2.c')
-rw-r--r--widgets/table/e-table-example-2.c98
1 files changed, 62 insertions, 36 deletions
diff --git a/widgets/table/e-table-example-2.c b/widgets/table/e-table-example-2.c
index 5bc6910437..c318507ea4 100644
--- a/widgets/table/e-table-example-2.c
+++ b/widgets/table/e-table-example-2.c
@@ -121,66 +121,90 @@ my_col_count (ETableModel *etc, void *data)
static int
my_row_count (ETableModel *etc, void *data)
{
- return ROWS;
+ return ROWS;
}
static void *
my_value_at (ETableModel *etc, int col, int row, void *data)
{
- if (col == COLOR_COLUMN){
- if (importance_data[row]){
- return color1;
- } else {
- return color2;
- }
- } else if (col == IMPORTANCE_COLUMN){
- return (gpointer) importance_data[row];
- } else {
- return (void *) table_data [row][col];
- }
+ if (col == COLOR_COLUMN){
+ if (importance_data[row]){
+ return color1;
+ } else {
+ return color2;
+ }
+ } else if (col == IMPORTANCE_COLUMN){
+ return (gpointer) importance_data[row];
+ } else {
+ return (void *) table_data [row][col];
+ }
}
static void
my_set_value_at (ETableModel *etc, int col, int row, const void *val, void *data)
{
- if (col == COLOR_COLUMN){
- } else if (col == IMPORTANCE_COLUMN){
- importance_data[row] = (gboolean) val;
- } else {
- g_free (table_data [row][col]);
- table_data [row][col] = g_strdup (val);
- }
+ if (col == COLOR_COLUMN){
+ } else if (col == IMPORTANCE_COLUMN){
+ importance_data[row] = (gboolean) val;
+ } else {
+ g_free (table_data [row][col]);
+ table_data [row][col] = g_strdup (val);
+ }
}
static gboolean
my_is_cell_editable (ETableModel *etc, int col, int row, void *data)
{
- if (col == IMPORTANCE_COLUMN)
- return FALSE;
- else
- return TRUE;
+ if (col == IMPORTANCE_COLUMN)
+ return FALSE;
+ else
+ return TRUE;
}
static void *
my_duplicate_value (ETableModel *etc, int col, const void *value, void *data)
{
- if (col == COLOR_COLUMN){
- return (void *) value;
- } else if (col == IMPORTANCE_COLUMN){
- return (void *) value;
- } else {
- return g_strdup (value);
- }
+ if (col == COLOR_COLUMN){
+ return (void *) value;
+ } else if (col == IMPORTANCE_COLUMN){
+ return (void *) value;
+ } else {
+ return g_strdup (value);
+ }
}
static void
my_free_value (ETableModel *etc, int col, void *value, void *data)
{
- if (col == COLOR_COLUMN){
- } else if (col == IMPORTANCE_COLUMN){
- } else {
- g_free (value);
- }
+ if (col == COLOR_COLUMN){
+ } else if (col == IMPORTANCE_COLUMN){
+ } else {
+ g_free (value);
+ }
+}
+
+static void *
+my_initialize_value (ETableModel *etc, int col, void *data)
+{
+ if (col == COLOR_COLUMN){
+ return NULL;
+ } else if (col == IMPORTANCE_COLUMN){
+ return NULL;
+ } else {
+ return g_strdup ("");
+ }
+}
+
+static gboolean
+my_value_is_empty (ETableModel *etc, int col, const void *value, void *data)
+{
+ if (col == COLOR_COLUMN){
+ return value == NULL;
+ } else if (col == IMPORTANCE_COLUMN){
+ return value == NULL;
+ } else {
+ return !(value && *(char *)value);
+ }
}
static void
@@ -213,7 +237,9 @@ create_table ()
e_table_model = e_table_simple_new (
my_col_count, my_row_count, my_value_at,
my_set_value_at, my_is_cell_editable,
- my_duplicate_value, my_free_value, my_thaw, NULL);
+ my_duplicate_value, my_free_value,
+ my_initialize_value, my_value_is_empty,
+ my_thaw, NULL);
/*
Next we create a header. The ETableHeader is used in two
different way. The first is the full_header. This is the