From 0c3101c24a3bb76c57d545ba6071acee529ee3a8 Mon Sep 17 00:00:00 2001 From: Ettore Perazzoli Date: Sat, 6 Nov 1999 21:10:09 +0000 Subject: Some initial work on the dialog for entering addresses from the address book. svn path=/trunk/; revision=1370 --- widgets/e-msg-composer.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) (limited to 'widgets/e-msg-composer.c') diff --git a/widgets/e-msg-composer.c b/widgets/e-msg-composer.c index 70602c0018..6654ddfd17 100644 --- a/widgets/e-msg-composer.c +++ b/widgets/e-msg-composer.c @@ -39,6 +39,7 @@ #include #include "e-msg-composer.h" +#include "e-msg-composer-address-dialog.h" #include "e-msg-composer-attachment-bar.h" #include "e-msg-composer-hdrs.h" @@ -121,7 +122,20 @@ show_attachments (EMsgComposer *composer, } -/* Callbacks. */ +/* Address dialog callbacks. */ + +static void +address_dialog_destroy_cb (GtkWidget *widget, + gpointer data) +{ + EMsgComposer *composer; + + composer = E_MSG_COMPOSER (data); + composer->address_dialog = NULL; +} + + +/* Message composer window callbacks. */ static void send_cb (GtkWidget *widget, @@ -163,6 +177,24 @@ add_attachment_cb (GtkWidget *widget, NULL); } +static void +address_dialog_cb (GtkWidget *widget, + gpointer data) +{ + EMsgComposer *composer; + + composer = E_MSG_COMPOSER (data); + if (composer->address_dialog == NULL) { + composer->address_dialog = e_msg_composer_address_dialog_new (); + gtk_signal_connect (GTK_OBJECT (composer->address_dialog), + "destroy", address_dialog_destroy_cb, + composer); + } + + gtk_widget_show (composer->address_dialog); + gdk_window_show (composer->address_dialog->window); +} + static void glade_connect (GladeXML *gui, const gchar *widget_name, @@ -218,6 +250,13 @@ setup_signals (EMsgComposer *composer) "clicked", GTK_SIGNAL_FUNC (add_attachment_cb), composer); + glade_connect (composer->menubar_gui, "menubar_address_dialog", + "activate", + GTK_SIGNAL_FUNC (address_dialog_cb), composer); + glade_connect (composer->toolbar_gui, "toolbar_address_dialog", + "clicked", + GTK_SIGNAL_FUNC (address_dialog_cb), composer); + gtk_signal_connect (GTK_OBJECT (composer->attachment_bar), "changed", GTK_SIGNAL_FUNC (attachment_bar_changed), @@ -238,6 +277,9 @@ destroy (GtkObject *object) gtk_object_unref (GTK_OBJECT (composer->toolbar_gui)); gtk_object_unref (GTK_OBJECT (composer->appbar_gui)); + if (composer->address_dialog != NULL) + gtk_widget_destroy (composer->address_dialog); + if (GTK_OBJECT_CLASS (parent_class)->destroy != NULL) (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); } @@ -285,6 +327,8 @@ init (EMsgComposer *composer) composer->text = NULL; composer->text_scrolled_window = NULL; + composer->address_dialog = NULL; + composer->attachment_bar = NULL; composer->attachment_scrolled_window = NULL; } @@ -314,6 +358,12 @@ e_msg_composer_get_type (void) } +/** + * e_msg_composer_construct: + * @composer: A message composer widget + * + * Construct @composer. + **/ void e_msg_composer_construct (EMsgComposer *composer) { @@ -390,6 +440,13 @@ e_msg_composer_construct (EMsgComposer *composer) setup_signals (composer); } +/** + * e_msg_composer_new: + * + * Create a new message composer widget. + * + * Return value: A pointer to the newly created widget + **/ GtkWidget * e_msg_composer_new (void) { -- cgit v1.2.3