aboutsummaryrefslogtreecommitdiffstats
path: root/composer/e-msg-composer-hdrs.c
diff options
context:
space:
mode:
authorJason Leach <jasonleach@usa.net>2001-01-19 23:58:02 +0800
committerJacob Leach <jleach@src.gnome.org>2001-01-19 23:58:02 +0800
commit62a2dc7c2e5c5a11184ac23fc626aa22f499ab03 (patch)
tree678a10d973d6ccc6a6309893ebd8a433b2d6402e /composer/e-msg-composer-hdrs.c
parente0368460a3f69462db41f41ef3b7c66461daa301 (diff)
downloadgsoc2013-evolution-62a2dc7c2e5c5a11184ac23fc626aa22f499ab03.tar.gz
gsoc2013-evolution-62a2dc7c2e5c5a11184ac23fc626aa22f499ab03.tar.zst
gsoc2013-evolution-62a2dc7c2e5c5a11184ac23fc626aa22f499ab03.zip
(Adding a boolean "entry_changed" BonoboPropertyBag arg)
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 Jason Leach <jasonleach@usa.net> * e-msg-composer-hdrs.c (create_addressbook_entry): Listen for property bag changes to "entry_changed" on here, which means on the To, Cc, and Bcc entries. (addressbook_entry_changed): New function that gets called when "entry_changed" property is changed (to TRUE). svn path=/trunk/; revision=7649
Diffstat (limited to 'composer/e-msg-composer-hdrs.c')
-rw-r--r--composer/e-msg-composer-hdrs.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/composer/e-msg-composer-hdrs.c b/composer/e-msg-composer-hdrs.c
index af22dcf611..834d63214a 100644
--- a/composer/e-msg-composer-hdrs.c
+++ b/composer/e-msg-composer-hdrs.c
@@ -191,6 +191,18 @@ create_optionmenu (EMsgComposerHdrs *hdrs,
return omenu;
}
+static void
+addressbook_entry_changed (BonoboListener *listener,
+ char *event_name,
+ CORBA_any *arg,
+ CORBA_Environment *ev,
+ gpointer user_data)
+{
+ EMsgComposerHdrs *hdrs = E_MSG_COMPOSER_HDRS (user_data);
+
+ hdrs->has_changed = TRUE;
+}
+
static GtkWidget *
create_addressbook_entry (EMsgComposerHdrs *hdrs,
const char *name)
@@ -200,6 +212,8 @@ create_addressbook_entry (EMsgComposerHdrs *hdrs,
Bonobo_Control corba_control;
GtkWidget *control_widget;
CORBA_Environment ev;
+ BonoboControlFrame *cf;
+ Bonobo_PropertyBag pb = CORBA_OBJECT_NIL;
priv = hdrs->priv;
corba_select_names = priv->corba_select_names;
@@ -223,6 +237,13 @@ create_addressbook_entry (EMsgComposerHdrs *hdrs,
control_widget = bonobo_widget_new_control_from_objref (corba_control, CORBA_OBJECT_NIL);
+ cf = bonobo_widget_get_control_frame (BONOBO_WIDGET (control_widget));
+ pb = bonobo_control_frame_get_control_property_bag (cf, NULL);
+
+ bonobo_event_source_client_add_listener (pb, addressbook_entry_changed,
+ "Bonobo/Property:change:entry_changed",
+ NULL, hdrs);
+
return control_widget;
}
@@ -232,7 +253,7 @@ entry_changed (GtkWidget *entry, EMsgComposerHdrs *hdrs)
gchar *tmp;
gchar *subject;
- /* Mark the headers as changed */
+ /* Mark the composer as changed so it prompts to save on close */
hdrs->has_changed = TRUE;
tmp = e_msg_composer_hdrs_get_subject (hdrs);