diff options
author | Matthew Barnes <mbarnes@src.gnome.org> | 2009-02-13 12:32:51 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@src.gnome.org> | 2009-02-13 12:32:51 +0800 |
commit | 7986af5369482c4feeaad6880045bf92a4d3f744 (patch) | |
tree | 6145dc9d0ca08c545f92f99e9fb973385b6506ec /composer/e-composer-name-header.c | |
parent | 10c3ddb38138f3408044fd46115d5804f057c13a (diff) | |
download | gsoc2013-evolution-7986af5369482c4feeaad6880045bf92a4d3f744.tar.gz gsoc2013-evolution-7986af5369482c4feeaad6880045bf92a4d3f744.tar.zst gsoc2013-evolution-7986af5369482c4feeaad6880045bf92a4d3f744.zip |
Let the mail module handle composer "Post To:" button clicks, since
EMFolderSelector and EMFolderTree are off-limits to the composer.
This further weakens the composer's mail module dependency.
Add class methods to EComposerHeader for "changed" and "clicked" signals.
Allows subclasses to implement them without connecting to their own signals.
svn path=/branches/kill-bonobo/; revision=37260
Diffstat (limited to 'composer/e-composer-name-header.c')
-rw-r--r-- | composer/e-composer-name-header.c | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/composer/e-composer-name-header.c b/composer/e-composer-name-header.c index 70a126b1e0..1b5acc19d5 100644 --- a/composer/e-composer-name-header.c +++ b/composer/e-composer-name-header.c @@ -47,18 +47,6 @@ struct _EComposerNameHeaderPrivate { static gpointer parent_class; static void -composer_name_header_clicked_cb (EComposerNameHeader *header) -{ - ENameSelectorDialog *dialog; - - dialog = e_name_selector_peek_dialog (header->priv->name_selector); - e_name_selector_dialog_set_destination_index ( - dialog, header->priv->destination_index); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_hide (GTK_WIDGET (dialog)); -} - -static void composer_name_header_entry_changed_cb (ENameSelectorEntry *entry, EComposerNameHeader *header) { @@ -130,10 +118,6 @@ composer_name_header_constructor (GType type, NULL); E_COMPOSER_HEADER (object)->input_widget = g_object_ref_sink (entry); - g_signal_connect ( - object, "clicked", - G_CALLBACK (composer_name_header_clicked_cb), NULL); - return object; } @@ -192,9 +176,25 @@ composer_name_header_dispose (GObject *object) } static void +composer_name_header_clicked (EComposerHeader *header) +{ + EComposerNameHeaderPrivate *priv; + ENameSelectorDialog *dialog; + + priv = E_COMPOSER_NAME_HEADER_GET_PRIVATE (header); + + dialog = e_name_selector_peek_dialog (priv->name_selector); + e_name_selector_dialog_set_destination_index ( + dialog, priv->destination_index); + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_hide (GTK_WIDGET (dialog)); +} + +static void composer_name_header_class_init (EComposerNameHeaderClass *class) { GObjectClass *object_class; + EComposerHeaderClass *header_class; parent_class = g_type_class_peek_parent (class); g_type_class_add_private (class, sizeof (EComposerNameHeaderPrivate)); @@ -205,6 +205,9 @@ composer_name_header_class_init (EComposerNameHeaderClass *class) object_class->get_property = composer_name_header_get_property; object_class->dispose = composer_name_header_dispose; + header_class = E_COMPOSER_HEADER_CLASS (class); + header_class->clicked = composer_name_header_clicked; + g_object_class_install_property ( object_class, PROP_NAME_SELECTOR, |