aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook/gui/widgets')
-rw-r--r--addressbook/gui/widgets/e-minicard-widget.c38
-rw-r--r--addressbook/gui/widgets/e-minicard-widget.h2
2 files changed, 28 insertions, 12 deletions
diff --git a/addressbook/gui/widgets/e-minicard-widget.c b/addressbook/gui/widgets/e-minicard-widget.c
index 3f765425e4..3712d5e306 100644
--- a/addressbook/gui/widgets/e-minicard-widget.c
+++ b/addressbook/gui/widgets/e-minicard-widget.c
@@ -196,21 +196,12 @@ static void
e_minicard_widget_set_arg (GtkObject *object, GtkArg *arg, guint arg_id)
{
EMinicardWidget *emw = E_MINICARD_WIDGET(object);
+ gpointer ptr;
switch (arg_id){
case ARG_CARD:
- if (emw->card)
- gtk_object_unref(GTK_OBJECT(emw->card));
- if (GTK_VALUE_OBJECT(*arg)) {
- emw->card = E_CARD(GTK_VALUE_OBJECT(*arg));
- gtk_object_ref(GTK_OBJECT(emw->card));
- }
- else
- emw->card = NULL;
- if (emw->item)
- gtk_object_set(GTK_OBJECT(emw->item),
- "card", emw->card,
- NULL);
+ ptr = GTK_VALUE_POINTER (*arg);
+ e_minicard_widget_set_card (emw, ptr ? E_CARD (ptr) : NULL);
break;
default:
break;
@@ -234,3 +225,26 @@ e_minicard_widget_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)
break;
}
}
+
+void
+e_minicard_widget_set_card (EMinicardWidget *emw, ECard *card)
+{
+ g_return_if_fail (emw && E_IS_MINICARD_WIDGET (emw));
+ g_return_if_fail (card == NULL || E_IS_CARD (card));
+
+ if (card != emw->card) {
+
+ if (emw->card)
+ gtk_object_unref (GTK_OBJECT (emw->card));
+
+ emw->card = card;
+
+ if (emw->card)
+ gtk_object_ref (GTK_OBJECT (emw->card));
+
+ if (emw->item)
+ gtk_object_set (GTK_OBJECT (emw->item),
+ "card", emw->card,
+ NULL);
+ }
+}
diff --git a/addressbook/gui/widgets/e-minicard-widget.h b/addressbook/gui/widgets/e-minicard-widget.h
index 95b56cf3de..3eb544c15e 100644
--- a/addressbook/gui/widgets/e-minicard-widget.h
+++ b/addressbook/gui/widgets/e-minicard-widget.h
@@ -68,6 +68,8 @@ struct _EMinicardWidgetClass
GtkWidget *e_minicard_widget_new(void);
GtkType e_minicard_widget_get_type (void);
+void e_minicard_widget_set_card (EMinicardWidget *, ECard *);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */