From 26c45ab265e8dfec121a765306143de5a579ccbb Mon Sep 17 00:00:00 2001 From: Christopher James Lahey Date: Fri, 19 May 2000 18:47:39 +0000 Subject: Added initialize_value and value_is_empty callbacks. 2000-05-19 Christopher James Lahey * contact-editor/e-contact-editor-categories.c, gui/component/e-addressbook-model.c: Added initialize_value and value_is_empty callbacks. svn path=/trunk/; revision=3139 --- addressbook/ChangeLog | 6 ++++++ .../contact-editor/e-contact-editor-categories.c | 22 ++++++++++++++++++++++ addressbook/gui/component/e-addressbook-model.c | 14 ++++++++++++++ .../contact-editor/e-contact-editor-categories.c | 22 ++++++++++++++++++++++ addressbook/gui/widgets/e-addressbook-model.c | 14 ++++++++++++++ 5 files changed, 78 insertions(+) diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index 21dcebd4a1..a3eb738631 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,9 @@ +2000-05-19 Christopher James Lahey + + * contact-editor/e-contact-editor-categories.c, + gui/component/e-addressbook-model.c: Added initialize_value and + value_is_empty callbacks. + 2000-05-19 Christopher James Lahey * contact-editor/e-contact-editor.c: Fixed a bug that broke diff --git a/addressbook/contact-editor/e-contact-editor-categories.c b/addressbook/contact-editor/e-contact-editor-categories.c index 3287672861..831fbce2b9 100644 --- a/addressbook/contact-editor/e-contact-editor-categories.c +++ b/addressbook/contact-editor/e-contact-editor-categories.c @@ -40,6 +40,8 @@ static void e_contact_editor_categories_set_value_at (ETableModel *etc, int col, static gboolean e_contact_editor_categories_is_cell_editable (ETableModel *etc, int col, int row, gpointer data); static void *e_contact_editor_categories_duplicate_value (ETableModel *etc, int col, const void *value, gpointer data); static void e_contact_editor_categories_free_value (ETableModel *etc, int col, void *value, gpointer data); +static void *e_contact_editor_categories_initialize_value (ETableModel *etc, int col, gpointer data); +static gboolean e_contact_editor_categories_value_is_empty (ETableModel *etc, int col, const void *value, gpointer data); static void e_contact_editor_categories_thaw (ETableModel *etc, gpointer data); static GnomeDialogClass *parent_class = NULL; @@ -271,6 +273,8 @@ e_contact_editor_categories_init (EContactEditorCategories *categories) e_contact_editor_categories_is_cell_editable, e_contact_editor_categories_duplicate_value, e_contact_editor_categories_free_value, + e_contact_editor_categories_initialize_value, + e_contact_editor_categories_value_is_empty, e_contact_editor_categories_thaw, categories); @@ -435,6 +439,24 @@ e_contact_editor_categories_free_value (ETableModel *etc, int col, void *value, g_free(value); } +static void * +e_contact_editor_categories_initialize_value (ETableModel *etc, int col, gpointer data) +{ + if (col == 0) + return NULL; + else + return g_strdup(""); +} + +static gboolean +e_contact_editor_categories_value_is_empty (ETableModel *etc, int col, const void *value, gpointer data) +{ + if (col == 0) + return value == NULL; + else + return !(value && *(char *)value); +} + /* This function is for when the model is unfrozen. This can mostly be ignored for simple models. */ static void diff --git a/addressbook/gui/component/e-addressbook-model.c b/addressbook/gui/component/e-addressbook-model.c index b2f7332c52..598f6786cf 100644 --- a/addressbook/gui/component/e-addressbook-model.c +++ b/addressbook/gui/component/e-addressbook-model.c @@ -125,6 +125,18 @@ addressbook_free_value (ETableModel *etc, int col, void *value) g_free(value); } +static void * +addressbook_initialize_value (ETableModel *etc, int col) +{ + return g_strdup(""); +} + +static gboolean +addressbook_value_is_empty (ETableModel *etc, int col, const void *value) +{ + return !(value && *(char *)value); +} + /* This function is for when the model is unfrozen. This can mostly be ignored for simple models. */ static void @@ -201,6 +213,8 @@ e_addressbook_model_class_init (GtkObjectClass *object_class) model_class->is_cell_editable = addressbook_is_cell_editable; model_class->duplicate_value = addressbook_duplicate_value; model_class->free_value = addressbook_free_value; + model_class->initialize_value = addressbook_initialize_value; + model_class->value_is_empty = addressbook_value_is_empty; model_class->thaw = addressbook_thaw; } diff --git a/addressbook/gui/contact-editor/e-contact-editor-categories.c b/addressbook/gui/contact-editor/e-contact-editor-categories.c index 3287672861..831fbce2b9 100644 --- a/addressbook/gui/contact-editor/e-contact-editor-categories.c +++ b/addressbook/gui/contact-editor/e-contact-editor-categories.c @@ -40,6 +40,8 @@ static void e_contact_editor_categories_set_value_at (ETableModel *etc, int col, static gboolean e_contact_editor_categories_is_cell_editable (ETableModel *etc, int col, int row, gpointer data); static void *e_contact_editor_categories_duplicate_value (ETableModel *etc, int col, const void *value, gpointer data); static void e_contact_editor_categories_free_value (ETableModel *etc, int col, void *value, gpointer data); +static void *e_contact_editor_categories_initialize_value (ETableModel *etc, int col, gpointer data); +static gboolean e_contact_editor_categories_value_is_empty (ETableModel *etc, int col, const void *value, gpointer data); static void e_contact_editor_categories_thaw (ETableModel *etc, gpointer data); static GnomeDialogClass *parent_class = NULL; @@ -271,6 +273,8 @@ e_contact_editor_categories_init (EContactEditorCategories *categories) e_contact_editor_categories_is_cell_editable, e_contact_editor_categories_duplicate_value, e_contact_editor_categories_free_value, + e_contact_editor_categories_initialize_value, + e_contact_editor_categories_value_is_empty, e_contact_editor_categories_thaw, categories); @@ -435,6 +439,24 @@ e_contact_editor_categories_free_value (ETableModel *etc, int col, void *value, g_free(value); } +static void * +e_contact_editor_categories_initialize_value (ETableModel *etc, int col, gpointer data) +{ + if (col == 0) + return NULL; + else + return g_strdup(""); +} + +static gboolean +e_contact_editor_categories_value_is_empty (ETableModel *etc, int col, const void *value, gpointer data) +{ + if (col == 0) + return value == NULL; + else + return !(value && *(char *)value); +} + /* This function is for when the model is unfrozen. This can mostly be ignored for simple models. */ static void diff --git a/addressbook/gui/widgets/e-addressbook-model.c b/addressbook/gui/widgets/e-addressbook-model.c index b2f7332c52..598f6786cf 100644 --- a/addressbook/gui/widgets/e-addressbook-model.c +++ b/addressbook/gui/widgets/e-addressbook-model.c @@ -125,6 +125,18 @@ addressbook_free_value (ETableModel *etc, int col, void *value) g_free(value); } +static void * +addressbook_initialize_value (ETableModel *etc, int col) +{ + return g_strdup(""); +} + +static gboolean +addressbook_value_is_empty (ETableModel *etc, int col, const void *value) +{ + return !(value && *(char *)value); +} + /* This function is for when the model is unfrozen. This can mostly be ignored for simple models. */ static void @@ -201,6 +213,8 @@ e_addressbook_model_class_init (GtkObjectClass *object_class) model_class->is_cell_editable = addressbook_is_cell_editable; model_class->duplicate_value = addressbook_duplicate_value; model_class->free_value = addressbook_free_value; + model_class->initialize_value = addressbook_initialize_value; + model_class->value_is_empty = addressbook_value_is_empty; model_class->thaw = addressbook_thaw; } -- cgit v1.2.3