diff options
author | Christopher James Lahey <clahey@helixcode.com> | 2000-05-20 02:47:16 +0800 |
---|---|---|
committer | Chris Lahey <clahey@src.gnome.org> | 2000-05-20 02:47:16 +0800 |
commit | 46f211579d1dfd60147099942b40c9697796e7c8 (patch) | |
tree | 5f8e8027e3e378bd2c8061ecf10061f4609ab02e /widgets/table/e-table-example-2.c | |
parent | ae208c7e8ff0463666c52392553af2572a8ee9b5 (diff) | |
download | gsoc2013-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.c | 98 |
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 |