From 35444ef18c978de9b7037ac30da507d5322671a9 Mon Sep 17 00:00:00 2001 From: Christopher James Lahey Date: Fri, 19 May 2000 18:47:54 +0000 Subject: Added initialize_value and value_is_empty callbacks. 2000-05-19 Christopher James Lahey * message-list.c: Added initialize_value and value_is_empty callbacks. svn path=/trunk/; revision=3140 --- mail/ChangeLog | 5 +++++ mail/message-list.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/mail/ChangeLog b/mail/ChangeLog index b876d0e781..f81e6bc148 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,8 @@ +2000-05-19 Christopher James Lahey + + * message-list.c: Added initialize_value and value_is_empty + callbacks. + 2000-05-18 Dan Winship * folder-browser-factory.c (folder_browser_factory): Remove diff --git a/mail/message-list.c b/mail/message-list.c index 2fe47c87ca..41c4ad7314 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -302,6 +302,51 @@ ml_free_value (ETableModel *etm, int col, void *value, void *data) } } +static void * +ml_initialize_value (ETableModel *etm, int col, void *data) +{ + switch (col){ + case COL_ONLINE_STATUS: + case COL_MESSAGE_STATUS: + case COL_PRIORITY: + case COL_ATTACHMENT: + return NULL; + + case COL_FROM: + case COL_SUBJECT: + case COL_SENT: + case COL_RECEIVE: + case COL_TO: + case COL_SIZE: + return g_strdup(""); + default: + g_assert_not_reached (); + } +} + +static gboolean +ml_value_is_empty (ETableModel *etm, int col, const void *value, void *data) +{ + switch (col){ + case COL_ONLINE_STATUS: + case COL_MESSAGE_STATUS: + case COL_PRIORITY: + case COL_ATTACHMENT: + return value == NULL; + + case COL_FROM: + case COL_SUBJECT: + case COL_SENT: + case COL_RECEIVE: + case COL_TO: + case COL_SIZE: + return !(value && *(char *)value); + default: + g_assert_not_reached (); + return FALSE; + } +} + static void ml_thaw (ETableModel *etm, void *data) { @@ -502,7 +547,9 @@ message_list_init (GtkObject *object) message_list->table_model = e_table_simple_new ( ml_col_count, ml_row_count, ml_value_at, - ml_set_value_at, ml_is_cell_editable, ml_duplicate_value, ml_free_value, + ml_set_value_at, ml_is_cell_editable, + ml_duplicate_value, ml_free_value, + ml_initialize_value, ml_value_is_empty, ml_thaw, message_list); message_list_init_renderers (message_list); -- cgit v1.2.3