aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook')
-rw-r--r--addressbook/ChangeLog14
-rw-r--r--addressbook/gui/component/select-names/e-select-names-bonobo.c21
2 files changed, 34 insertions, 1 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index 673d4ac975..27c728694f 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,3 +1,17 @@
+2001-01-19 Jason Leach <jasonleach@usa.net>
+
+ (Adding a boolean "entry_changed" BonoboPropertyBag arg)
+
+ * gui/component/select-names/e-select-names-bonobo.c
+ (entry_set_property_fn): Use a gtk_object_set_data to set the
+ property to TRUE here.
+
+ (entry_changed): New function, calls bonobo_control_set_property
+ if entry_changed hasn't been set to TRUE yet.
+
+ (impl_SelectNames_get_entry_for_section): Connect "changed" on
+ each entry_widget to the new entry_changed() func.
+
2001-01-19 JP Rosevear <jpr@ximian.com>
* conduit/address-conduit.c (ecard_from_remote_record): always free
diff --git a/addressbook/gui/component/select-names/e-select-names-bonobo.c b/addressbook/gui/component/select-names/e-select-names-bonobo.c
index 7014cddc22..87be63c3db 100644
--- a/addressbook/gui/component/select-names/e-select-names-bonobo.c
+++ b/addressbook/gui/component/select-names/e-select-names-bonobo.c
@@ -46,7 +46,8 @@ struct _ESelectNamesBonoboPrivate {
};
enum _EntryPropertyID {
- ENTRY_PROPERTY_ID_TEXT
+ ENTRY_PROPERTY_ID_TEXT,
+ ENTRY_PROPERTY_ID_ENTRY_CHANGED
};
typedef enum _EntryPropertyID EntryPropertyID;
@@ -92,6 +93,9 @@ entry_set_property_fn (BonoboPropertyBag *bag,
text = BONOBO_ARG_GET_STRING (arg);
gtk_object_set (GTK_OBJECT (widget), "text", text, NULL);
break;
+ case ENTRY_PROPERTY_ID_ENTRY_CHANGED:
+ gtk_object_set_data (GTK_OBJECT (widget), "entry_property_id_changed", GUINT_TO_POINTER (1));
+ break;
default:
break;
}
@@ -142,6 +146,15 @@ impl_SelectNames_add_section (PortableServer_Servant servant,
e_select_names_manager_add_section (priv->manager, id, title);
}
+static void
+entry_changed (GtkWidget *widget, BonoboControl *control)
+{
+ gboolean changed = GPOINTER_TO_UINT (gtk_object_get_data (GTK_OBJECT (widget), "entry_property_id_changed"));
+
+ if (!changed)
+ bonobo_control_set_property (control, "entry_changed", TRUE, NULL);
+}
+
static Bonobo_Control
impl_SelectNames_get_entry_for_section (PortableServer_Servant servant,
const CORBA_char *section_id,
@@ -175,9 +188,15 @@ impl_SelectNames_get_entry_for_section (PortableServer_Servant servant,
bonobo_property_bag_add (property_bag, "text", ENTRY_PROPERTY_ID_TEXT,
BONOBO_ARG_STRING, NULL, NULL,
BONOBO_PROPERTY_READABLE | BONOBO_PROPERTY_WRITEABLE);
+ bonobo_property_bag_add (property_bag, "entry_changed", ENTRY_PROPERTY_ID_ENTRY_CHANGED,
+ BONOBO_ARG_BOOLEAN, NULL, NULL,
+ BONOBO_PROPERTY_WRITEABLE);
bonobo_control_set_properties (control, property_bag);
+ gtk_signal_connect (GTK_OBJECT (entry_widget), "changed",
+ GTK_SIGNAL_FUNC (entry_changed), control);
+
return CORBA_Object_duplicate (bonobo_object_corba_objref (BONOBO_OBJECT (control)), ev);
}