* initial check-in, a copy of the gtk-glade UI with minimal changes so far.
authorArne Zellentin <arne@kernelconcepts.de>
Wed, 21 Jun 2006 15:12:02 +0000 (15:12 +0000)
committerArne Zellentin <arne@kernelconcepts.de>
Wed, 21 Jun 2006 15:12:02 +0000 (15:12 +0000)
pmo-trunk-r301

89 files changed:
src/hildon/Makefile.am
src/hildon/glade/qgn_list_gene_attacpap.png [new file with mode: 0644]
src/hildon/glade/qgn_list_gene_bold.png [new file with mode: 0644]
src/hildon/glade/qgn_list_gene_contacts.png [new file with mode: 0644]
src/hildon/glade/qgn_list_gene_italic.png [new file with mode: 0644]
src/hildon/glade/qgn_list_messagin_mail.png [new file with mode: 0644]
src/hildon/glade/qgn_list_messagin_mail_unread.png [new file with mode: 0644]
src/hildon/glade/qgn_toolb_messagin.png [new file with mode: 0644]
src/hildon/glade/qgn_toolb_messagin_bullets.png [new file with mode: 0644]
src/hildon/glade/qgn_toolb_messagin_delete.png [new file with mode: 0644]
src/hildon/glade/qgn_toolb_messagin_fontcolor.png [new file with mode: 0644]
src/hildon/glade/qgn_toolb_messagin_forward.png [new file with mode: 0644]
src/hildon/glade/qgn_toolb_messagin_moveto.png [new file with mode: 0644]
src/hildon/glade/qgn_toolb_messagin_new.png [new file with mode: 0644]
src/hildon/glade/qgn_toolb_messagin_next.png [new file with mode: 0644]
src/hildon/glade/qgn_toolb_messagin_previous.png [new file with mode: 0644]
src/hildon/glade/qgn_toolb_messagin_reply.png [new file with mode: 0644]
src/hildon/glade/qgn_toolb_messagin_replytoall.png [new file with mode: 0644]
src/hildon/glade/qgn_toolb_messagin_saveattachment.png [new file with mode: 0644]
src/hildon/glade/qgn_toolb_messagin_send.png [new file with mode: 0644]
src/hildon/glade/qgn_toolb_messagin_sendreceive.png [new file with mode: 0644]
src/hildon/modest-icon-names.h [new file with mode: 0644]
src/hildon/modest-ui-account-setup.c [new file with mode: 0644]
src/hildon/modest-ui-account-setup.h [new file with mode: 0644]
src/hildon/modest-ui-glade.h [new file with mode: 0644]
src/hildon/modest-ui-main-view.c [new file with mode: 0644]
src/hildon/modest-ui-main-view.h [new file with mode: 0644]
src/hildon/modest-ui-message-editor.c [new file with mode: 0644]
src/hildon/modest-ui-message-editor.h [new file with mode: 0644]
src/hildon/modest-ui-message-viewer.c [new file with mode: 0644]
src/hildon/modest-ui-message-viewer.h [new file with mode: 0644]
src/hildon/modest-ui-wizard.c [new file with mode: 0644]
src/hildon/modest-ui-wizard.h [new file with mode: 0644]
src/hildon/modest-ui.c [new file with mode: 0644]
src/hildon/modest-ui_1.c [new file with mode: 0644]
src/hildon/modest.glade [new file with mode: 0644]
src/hildon/pixmaps/qgn_addr_icon_user_group.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_gene_attacpap.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_gene_fldr_clp.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_gene_fldr_cls.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_gene_fldr_exp.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_gene_fldr_opn.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_drafts.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_editor.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_encrypted.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_encrypted_high.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_encrypted_low.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_high.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_high_unread.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_low.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_low_unread.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_signed.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_signed_high.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_signed_low.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_unread.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_unread_encrypted.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_unread_encrypted_high.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_unread_encrypted_low.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_unread_signed.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_unread_signed_high.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_hdr_unread_signed_low.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_inbox.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_deleted.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_read.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_read_high.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_read_low.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_unread.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_unread_high.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_unread_low.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_high.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_high_unread.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_low.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_low_unread.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_signed_read.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_signed_read_high.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_signed_read_low.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_signed_unread.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_signed_unread_high.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_signed_unread_low.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_mail_unread.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_outbox.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_sent.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messagin_viewer.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messaging_high.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_list_messaging_low.png [new file with mode: 0644]
src/hildon/pixmaps/qgn_widg_datedit.png [new file with mode: 0644]

index e69de29..81a74e6 100644 (file)
@@ -0,0 +1,52 @@
+#
+# Makefile.am
+# Time-stamp: <2006-06-06 14:27:48 (djcb)>
+#
+#
+# use Automake 'trick' ==> convenience static libraries, which
+# won't be installed, just for linking
+#
+INCLUDES=\
+       $(MODEST_GSTUFF_CFLAGS) \
+       $(MODEST_LIBTINYMAIL_GNOME_DESKTOP_CFLAGS) \
+       $(MODEST_LIBTINYMAIL_MAEMO_CFLAGS) \
+       -DPREFIX=\"@prefix@\" \
+       -Wall
+
+noinst_LTLIBRARIES=\
+       libmodest-ui.la
+
+GLADE_FILES=\
+       modest.glade\
+       glade/*.png
+
+PIXMAP_FILES=\
+       pixmaps/*.png
+
+libmodest_ui_la_SOURCES=\
+       modest-ui.c\
+       modest-ui-glade.h\
+       modest-icon-names.h\
+       modest-ui-main-view.c\
+       modest-ui-main-view.h\
+       modest-ui-message-editor.c\
+       modest-ui-message-editor.h\
+       modest-ui-message-viewer.c\
+       modest-ui-message-viewer.h\
+       modest-ui-wizard.h\
+       modest-ui-wizard.c\
+       modest-ui-account-setup.h\
+       modest-ui-account-setup.c
+
+LDADD = \
+       $(MODEST_GSTUFF_LIBS) \
+       $(MODEST_LIBTINYMAIL_GNOME_DESKTOP_LIBS) \
+       $(MODEST_LIBTINYMAIL_MAEMO_LIBS)
+
+EXTRA_DIST=pixmaps/* glade/* modest.glade modest.gladep
+
+gladedir = $(prefix)/share/modest/glade
+glade_DATA = $(GLADE_FILES)
+
+pixmapdir = $(prefix)/share/modest/pixmaps
+pixmap_DATA = $(PIXMAP_FILES)
diff --git a/src/hildon/glade/qgn_list_gene_attacpap.png b/src/hildon/glade/qgn_list_gene_attacpap.png
new file mode 100644 (file)
index 0000000..0448a7d
Binary files /dev/null and b/src/hildon/glade/qgn_list_gene_attacpap.png differ
diff --git a/src/hildon/glade/qgn_list_gene_bold.png b/src/hildon/glade/qgn_list_gene_bold.png
new file mode 100644 (file)
index 0000000..5d10d3f
Binary files /dev/null and b/src/hildon/glade/qgn_list_gene_bold.png differ
diff --git a/src/hildon/glade/qgn_list_gene_contacts.png b/src/hildon/glade/qgn_list_gene_contacts.png
new file mode 100644 (file)
index 0000000..350271d
Binary files /dev/null and b/src/hildon/glade/qgn_list_gene_contacts.png differ
diff --git a/src/hildon/glade/qgn_list_gene_italic.png b/src/hildon/glade/qgn_list_gene_italic.png
new file mode 100644 (file)
index 0000000..638fa90
Binary files /dev/null and b/src/hildon/glade/qgn_list_gene_italic.png differ
diff --git a/src/hildon/glade/qgn_list_messagin_mail.png b/src/hildon/glade/qgn_list_messagin_mail.png
new file mode 100644 (file)
index 0000000..4038776
Binary files /dev/null and b/src/hildon/glade/qgn_list_messagin_mail.png differ
diff --git a/src/hildon/glade/qgn_list_messagin_mail_unread.png b/src/hildon/glade/qgn_list_messagin_mail_unread.png
new file mode 100644 (file)
index 0000000..3d15a38
Binary files /dev/null and b/src/hildon/glade/qgn_list_messagin_mail_unread.png differ
diff --git a/src/hildon/glade/qgn_toolb_messagin.png b/src/hildon/glade/qgn_toolb_messagin.png
new file mode 100644 (file)
index 0000000..4c4899b
Binary files /dev/null and b/src/hildon/glade/qgn_toolb_messagin.png differ
diff --git a/src/hildon/glade/qgn_toolb_messagin_bullets.png b/src/hildon/glade/qgn_toolb_messagin_bullets.png
new file mode 100644 (file)
index 0000000..aee5a70
Binary files /dev/null and b/src/hildon/glade/qgn_toolb_messagin_bullets.png differ
diff --git a/src/hildon/glade/qgn_toolb_messagin_delete.png b/src/hildon/glade/qgn_toolb_messagin_delete.png
new file mode 100644 (file)
index 0000000..0f31b07
Binary files /dev/null and b/src/hildon/glade/qgn_toolb_messagin_delete.png differ
diff --git a/src/hildon/glade/qgn_toolb_messagin_fontcolor.png b/src/hildon/glade/qgn_toolb_messagin_fontcolor.png
new file mode 100644 (file)
index 0000000..49304cd
Binary files /dev/null and b/src/hildon/glade/qgn_toolb_messagin_fontcolor.png differ
diff --git a/src/hildon/glade/qgn_toolb_messagin_forward.png b/src/hildon/glade/qgn_toolb_messagin_forward.png
new file mode 100644 (file)
index 0000000..b286238
Binary files /dev/null and b/src/hildon/glade/qgn_toolb_messagin_forward.png differ
diff --git a/src/hildon/glade/qgn_toolb_messagin_moveto.png b/src/hildon/glade/qgn_toolb_messagin_moveto.png
new file mode 100644 (file)
index 0000000..3497a2a
Binary files /dev/null and b/src/hildon/glade/qgn_toolb_messagin_moveto.png differ
diff --git a/src/hildon/glade/qgn_toolb_messagin_new.png b/src/hildon/glade/qgn_toolb_messagin_new.png
new file mode 100644 (file)
index 0000000..b93921e
Binary files /dev/null and b/src/hildon/glade/qgn_toolb_messagin_new.png differ
diff --git a/src/hildon/glade/qgn_toolb_messagin_next.png b/src/hildon/glade/qgn_toolb_messagin_next.png
new file mode 100644 (file)
index 0000000..6d70431
Binary files /dev/null and b/src/hildon/glade/qgn_toolb_messagin_next.png differ
diff --git a/src/hildon/glade/qgn_toolb_messagin_previous.png b/src/hildon/glade/qgn_toolb_messagin_previous.png
new file mode 100644 (file)
index 0000000..184e319
Binary files /dev/null and b/src/hildon/glade/qgn_toolb_messagin_previous.png differ
diff --git a/src/hildon/glade/qgn_toolb_messagin_reply.png b/src/hildon/glade/qgn_toolb_messagin_reply.png
new file mode 100644 (file)
index 0000000..5cdd7c2
Binary files /dev/null and b/src/hildon/glade/qgn_toolb_messagin_reply.png differ
diff --git a/src/hildon/glade/qgn_toolb_messagin_replytoall.png b/src/hildon/glade/qgn_toolb_messagin_replytoall.png
new file mode 100644 (file)
index 0000000..78cde69
Binary files /dev/null and b/src/hildon/glade/qgn_toolb_messagin_replytoall.png differ
diff --git a/src/hildon/glade/qgn_toolb_messagin_saveattachment.png b/src/hildon/glade/qgn_toolb_messagin_saveattachment.png
new file mode 100644 (file)
index 0000000..02d7eb1
Binary files /dev/null and b/src/hildon/glade/qgn_toolb_messagin_saveattachment.png differ
diff --git a/src/hildon/glade/qgn_toolb_messagin_send.png b/src/hildon/glade/qgn_toolb_messagin_send.png
new file mode 100644 (file)
index 0000000..84a3420
Binary files /dev/null and b/src/hildon/glade/qgn_toolb_messagin_send.png differ
diff --git a/src/hildon/glade/qgn_toolb_messagin_sendreceive.png b/src/hildon/glade/qgn_toolb_messagin_sendreceive.png
new file mode 100644 (file)
index 0000000..0b794cd
Binary files /dev/null and b/src/hildon/glade/qgn_toolb_messagin_sendreceive.png differ
diff --git a/src/hildon/modest-icon-names.h b/src/hildon/modest-icon-names.h
new file mode 100644 (file)
index 0000000..35745bd
--- /dev/null
@@ -0,0 +1,34 @@
+/* modest-tny-icon-names.h */
+/* FIXME: this should go the front-end dirs,
+ * with specific icons */
+
+#ifndef __MODEST_TNY_ICON_NAMES_H__
+#define __MODEST_TNY_ICON_NAMES_H__
+
+#define PIXMAP_PREFIX PREFIX "/share/modest/pixmaps/"
+
+/* icons */
+
+#define MODEST_HEADER_ICON_READ                        PIXMAP_PREFIX "qgn_list_messagin_mail.png"
+#define MODEST_HEADER_ICON_UNREAD              PIXMAP_PREFIX "qgn_list_messagin_mail_unread.png"
+#define MODEST_HEADER_ICON_DELETED             PIXMAP_PREFIX "qgn_list_messagin_mail_deleted.png"
+#define MODEST_HEADER_ICON_ATTACH              PIXMAP_PREFIX "qgn_list_gene_attacpap.png"
+
+#define MODEST_FOLDER_ICON_OPEN                        PIXMAP_PREFIX "qgn_list_gene_fldr_opn.png"
+#define MODEST_FOLDER_ICON_CLOSED              PIXMAP_PREFIX "qgn_list_gene_fldr_cls.png"
+
+#define MODEST_FOLDER_ICON_INBOX               PIXMAP_PREFIX "qgn_list_messagin_inbox.png"
+#define MODEST_FOLDER_ICON_OUTBOX              PIXMAP_PREFIX "qgn_list_messagin_outbox.png"
+#define MODEST_FOLDER_ICON_SENT                        PIXMAP_PREFIX "qgn_list_messagin_sent.png"
+#define MODEST_FOLDER_ICON_TRASH               PIXMAP_PREFIX "qgn_list_messagin_mail_deleted.png"
+#define MODEST_FOLDER_ICON_JUNK                        PIXMAP_PREFIX "qgn_list_messagin_mail_deleted.png"
+#define MODEST_FOLDER_ICON_DRAFTS              PIXMAP_PREFIX "qgn_list_messagin_drafts.png"
+#define MODEST_FOLDER_ICON_NORMAL              PIXMAP_PREFIX "qgn_list_gene_fldr_cls.png"
+
+#define MODEST_FOLDER_ICON_CONTACTS            PIXMAP_PREFIX "qgn_addr_icon_user_group.png"
+#define MODEST_FOLDER_ICON_NOTES               PIXMAP_PREFIX "qgn_list_messagin_viewer.png"
+#define MODEST_FOLDER_ICON_CALENDAR            PIXMAP_PREFIX "qgn_widg_datedit.png"
+
+
+
+#endif  /*__MODEST_TNY_ICON_NAMES_H__*/
diff --git a/src/hildon/modest-ui-account-setup.c b/src/hildon/modest-ui-account-setup.c
new file mode 100644 (file)
index 0000000..6066363
--- /dev/null
@@ -0,0 +1,575 @@
+/* modest-ui-wizard.c */
+
+/* insert (c)/licensing information) */
+
+#include <gtk/gtk.h>
+#include <glade/glade.h>
+#include <glib/gi18n.h>
+#include <string.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif /*HAVE_CONFIG_H*/
+
+#include "../modest-account-mgr.h"
+#include "../modest-identity-mgr.h"
+
+#include "modest-ui-glade.h"
+#include "modest-ui-account-setup.h"
+
+enum {
+       IDENTITY_NAME,
+       IDENTITY_ADDRESS,
+       IDENTITY_VIA,
+       IDENTITY_COLUMNS
+};
+
+enum {
+       ACCOUNT_NAME,
+       ACCOUNT_HOST,
+       ACCOUNT_COLUMNS
+};
+
+typedef struct _CallbackData CallbackData;
+
+struct _CallbackData {
+       GtkWidget       *id_tree_view;
+       GtkWidget       *acc_tree_view;
+       ModestUI        *modest_ui;
+       GladeXML        *glade_xml;
+};
+
+static void
+identity_setup_dialog (ModestUI *, GtkListStore *, gchar *);
+
+static void
+missing_notification(GtkWindow *, gchar *);
+
+/* CALLBACKS */
+
+static void
+edit_action(GtkWidget *button,
+           gpointer userdata)
+{
+       CallbackData *cb_data;
+       GtkListStore *acc_liststore;
+       GtkTreeModel *id_liststore;
+       GtkTreeSelection *selection;
+       GtkTreeIter selected_iter;
+       gchar *identity_name;
+
+       cb_data = (CallbackData *) userdata;
+       selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(cb_data->id_tree_view));
+
+       gtk_tree_selection_get_selected(selection,
+                                       &id_liststore,
+                                       &selected_iter);
+       gtk_tree_model_get(GTK_TREE_MODEL(id_liststore),
+                          &selected_iter,
+                          ACCOUNT_NAME, &identity_name,
+                          -1);
+       acc_liststore=GTK_LIST_STORE(gtk_tree_view_get_model (GTK_TREE_VIEW(cb_data->acc_tree_view)));
+
+       identity_setup_dialog (cb_data->modest_ui, acc_liststore, identity_name);
+       g_free(identity_name);
+}
+
+static void
+create_action(GtkWidget *button,
+             gpointer userdata)
+{
+       CallbackData *cb_data;
+       GtkListStore *acc_liststore;
+
+       cb_data = (CallbackData *) userdata;
+
+       acc_liststore=GTK_LIST_STORE(gtk_tree_view_get_model (GTK_TREE_VIEW(cb_data->acc_tree_view)));
+
+       identity_setup_dialog(cb_data->modest_ui, acc_liststore, NULL);
+}
+
+static void
+delete_action(GtkWidget *button,
+             gpointer userdata)
+{
+       CallbackData *cb_data;
+       GtkTreeSelection *selection;
+       GtkTreeIter selected_iter;
+       GtkTreeModel *id_liststore;
+       gchar *identity_name;
+       GtkWidget *confirmation_dialog;
+       GtkWidget *confirmation_message;
+       gint result;
+
+       cb_data = (CallbackData *) userdata;
+       selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(cb_data->id_tree_view));
+
+       gtk_tree_selection_get_selected(selection,
+                                       &id_liststore,
+                                       &selected_iter);
+       gtk_tree_model_get(GTK_TREE_MODEL(id_liststore),
+                          &selected_iter,
+                          ACCOUNT_NAME, &identity_name,
+                          -1);
+
+       confirmation_dialog = gtk_dialog_new_with_buttons ("Confirm removal of identity",
+                                                          GTK_WINDOW(gtk_widget_get_toplevel(button)),
+                                                          GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+                                                          GTK_STOCK_OK,
+                                                          GTK_RESPONSE_OK,
+                                                          GTK_STOCK_CANCEL,
+                                                          GTK_RESPONSE_CANCEL,
+                                                          NULL);
+
+       gchar *messy = g_strdup_printf("Remove selected identity '%s'?", identity_name);
+       confirmation_message = gtk_label_new_with_mnemonic (messy);
+
+       gtk_container_add(GTK_CONTAINER(confirmation_dialog),
+                         confirmation_message);
+
+       gtk_widget_show_all(confirmation_dialog);
+
+       result=gtk_dialog_run(GTK_DIALOG(confirmation_dialog));
+       if (result==GTK_RESPONSE_OK)
+       {
+               modest_identity_mgr_remove_identity(MODEST_UI_GET_PRIVATE(cb_data->modest_ui)->modest_id_mgr,
+                                                   identity_name,
+                                                   NULL);
+       }
+       gtk_widget_destroy(confirmation_dialog);
+       g_free(identity_name);
+       g_free(messy);
+
+}
+
+static void
+activate_buttons_on_identity(GtkTreeView *tree_view,
+                            gpointer user_data)
+{
+       GtkWidget *button;
+       GladeXML *glade_xml;
+
+       glade_xml=(GladeXML *) user_data;
+
+       button = glade_xml_get_widget(GLADE_XML(glade_xml), "IdentityEditButton");
+       gtk_widget_set_sensitive(GTK_WIDGET(button), TRUE);
+       button = glade_xml_get_widget(GLADE_XML(glade_xml), "IdentityDeleteButton");
+       gtk_widget_set_sensitive(GTK_WIDGET(button), TRUE);
+}
+
+static void
+use_sig_toggled(GtkToggleButton *button,
+               gpointer userdata) {
+
+       GtkWidget *awidget;
+       GladeXML *glade_xml = (GladeXML *) userdata;
+
+       awidget=glade_xml_get_widget(glade_xml, "ISSignatureTextView");
+       gtk_widget_set_sensitive(awidget, gtk_toggle_button_get_active(button));
+}
+
+/* METHODS */
+
+static void
+missing_notification(GtkWindow *parent, gchar *info_message) {
+       GtkWidget *DenyDialog;
+
+       DenyDialog=gtk_message_dialog_new(parent,
+                                         GTK_DIALOG_MODAL,
+                                         GTK_MESSAGE_INFO,
+                                         GTK_BUTTONS_OK,
+                                         "%s",
+                                         info_message);
+
+       gtk_dialog_run(GTK_DIALOG(DenyDialog));
+
+       gtk_widget_destroy(DenyDialog);
+}
+
+static gboolean
+add_identity(GladeXML *glade_xml, ModestUI *modest_ui, GtkListStore *accounts_model)
+{
+       gchar *reply_to;
+       GtkTextBuffer *sigbuff;
+       gchar *signature;
+       GtkTextIter start_iter;
+       GtkTextIter end_iter;
+       GtkTreeIter transport_iter;
+       ModestUIPrivate *priv;
+       gchar *transport;
+       gint retval;
+
+       priv = MODEST_UI_GET_PRIVATE(MODEST_UI(modest_ui));
+
+       reply_to = g_strdup_printf("%s", gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "ISReplyToEntry"))));
+
+       if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(glade_xml, "ISUseSignatureCheckButton"))))
+       {
+               sigbuff = gtk_text_view_get_buffer(GTK_TEXT_VIEW(glade_xml_get_widget(glade_xml, "ISSignatureTextView")));
+               gtk_text_buffer_get_bounds(sigbuff,
+                                          &start_iter,
+                                          &end_iter);
+               signature = gtk_text_buffer_get_text(sigbuff,
+                                                    &start_iter,
+                                                    &end_iter,
+                                                    FALSE);
+       }
+       else
+               signature = NULL;
+
+       if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(glade_xml_get_widget(glade_xml, "ISOutServerComboBox")), &transport_iter)) {
+               gtk_tree_model_get(GTK_TREE_MODEL(accounts_model),
+                                  &transport_iter,
+                                  ACCOUNT_NAME, &transport,
+                                  -1);
+       }
+       else {
+               missing_notification(NULL, "Please select an outgoing server!");
+               return FALSE;
+       }
+
+       if (modest_identity_mgr_add_identity (priv->modest_id_mgr,
+                                             gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "ISIdentityEntry"))),
+                                             gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "ISNameEntry"))),
+                                             gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "ISEMailAddress"))),
+                                             reply_to,
+                                             signature,
+                                             gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(glade_xml, "ISUseSignatureCheckButton"))),
+                                             transport,
+                                             FALSE ))
+               retval=TRUE;
+       else
+               retval=FALSE;
+       g_free(transport);
+       return retval;
+}
+
+static void
+identity_setup_dialog (ModestUI *modest_ui, GtkListStore *accounts_model, gchar *identity)
+{
+
+       GladeXML *glade_xml;
+       GtkWidget *id_dialog;
+       GtkWidget *outgoing_server;
+       GtkWidget *awidget;
+       GtkCellRenderer *renderer;
+       ModestIdentityMgr *id_mgr;
+       GtkTextBuffer *sigbuff;
+       gchar *tmptext;
+       gint account_added_successfully;
+       gint result;
+
+       glade_xml = glade_xml_new(MODEST_GLADE, "IdentitySetupDialog", NULL);
+       id_dialog = glade_xml_get_widget(glade_xml, "IdentitySetupDialog");
+
+       outgoing_server = glade_xml_get_widget(glade_xml, "ISOutServerComboBox");
+       gtk_combo_box_set_model(GTK_COMBO_BOX(outgoing_server), GTK_TREE_MODEL(accounts_model));
+       renderer = gtk_cell_renderer_text_new ();
+       gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (outgoing_server), renderer, TRUE);
+       gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (outgoing_server), renderer,
+                                       "text", 0,
+                                       NULL);
+       awidget=glade_xml_get_widget(glade_xml, "ISUseSignatureCheckButton");
+       g_signal_connect(awidget,
+                        "toggled",
+                        G_CALLBACK(use_sig_toggled),
+                        glade_xml);
+
+       if (identity!=NULL) {
+               id_mgr = MODEST_UI_GET_PRIVATE(modest_ui)->modest_id_mgr;
+
+               awidget=glade_xml_get_widget(glade_xml, "ISIdentityEntry");
+               gtk_widget_set_sensitive(awidget, FALSE);
+               gtk_entry_set_text(GTK_ENTRY(awidget), identity);
+               tmptext = modest_identity_mgr_get_identity_string(id_mgr,
+                                                                 identity,
+                                                                 MODEST_IDENTITY_EMAIL,
+                                                                 NULL);
+               awidget=glade_xml_get_widget(glade_xml, "ISEMailAddress");
+               gtk_entry_set_text(GTK_ENTRY(awidget), tmptext);
+               g_free(tmptext);
+
+               if (modest_identity_mgr_get_identity_bool(id_mgr,
+                                                         identity,
+                                                         MODEST_IDENTITY_USE_SIGNATURE,
+                                                         NULL)) {
+                       awidget=glade_xml_get_widget(glade_xml, "ISUseSignatureCheckButton");
+                       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(awidget), TRUE);
+                       awidget=glade_xml_get_widget(glade_xml, "ISSignatureTextView");
+                       gtk_widget_set_sensitive(awidget, TRUE);
+               }
+
+               sigbuff=gtk_text_buffer_new(NULL);
+               tmptext = modest_identity_mgr_get_identity_string(id_mgr,
+                                                                 identity,
+                                                                 MODEST_IDENTITY_SIGNATURE,
+                                                                 NULL),
+               gtk_text_buffer_set_text(sigbuff, tmptext, -1);
+               gtk_text_view_set_buffer(GTK_TEXT_VIEW(glade_xml_get_widget(glade_xml, "ISSignatureTextView")),
+                                                      sigbuff);
+               g_object_unref(sigbuff);
+               g_free(tmptext);
+
+               tmptext = modest_identity_mgr_get_identity_string(id_mgr,
+                                                                 identity,
+                                                                 MODEST_IDENTITY_EMAIL,
+                                                                 NULL);
+               awidget=glade_xml_get_widget(glade_xml, "ISEMailAddress");
+               gtk_entry_set_text(GTK_ENTRY(awidget), tmptext);
+               g_free(tmptext);
+
+               tmptext = modest_identity_mgr_get_identity_string(id_mgr,
+                                                                 identity,
+                                                                 MODEST_IDENTITY_REALNAME,
+                                                                 NULL);
+               awidget=glade_xml_get_widget(glade_xml, "ISNameEntry");
+               gtk_entry_set_text(GTK_ENTRY(awidget), tmptext);
+               g_free(tmptext);
+
+               tmptext = modest_identity_mgr_get_identity_string(id_mgr,
+                                                                 identity,
+                                                                 MODEST_IDENTITY_REALNAME,
+                                                                 NULL);
+               awidget=glade_xml_get_widget(glade_xml, "ISNameEntry");
+               gtk_entry_set_text(GTK_ENTRY(awidget), tmptext);
+
+               g_free(tmptext);
+
+               tmptext = modest_identity_mgr_get_identity_string(id_mgr,
+                                                                 identity,
+                                                                 MODEST_IDENTITY_REPLYTO,
+                                                                 NULL);
+               awidget=glade_xml_get_widget(glade_xml, "ISReplyToEntry");
+               gtk_entry_set_text(GTK_ENTRY(awidget), tmptext);
+
+               g_free(tmptext);
+       }
+
+       gtk_widget_show_all(id_dialog);
+
+       do {
+               result=gtk_dialog_run(GTK_DIALOG(id_dialog));
+
+               switch (result) {
+               case GTK_RESPONSE_OK:
+                       account_added_successfully = add_identity(glade_xml, modest_ui, accounts_model);
+                       break;
+               default:
+                       account_added_successfully = FALSE;
+                       break;
+               }
+       } while(result!=GTK_RESPONSE_DELETE_EVENT && result!=GTK_RESPONSE_CANCEL && account_added_successfully!=TRUE);
+
+       gtk_widget_destroy(id_dialog);
+       g_object_unref(glade_xml);
+}
+
+
+static CallbackData *
+setup_callback_data(GtkWidget *id_tree_view,
+                   GtkWidget *acc_tree_view,
+                   ModestUI *modest_ui)
+{
+       CallbackData *self;
+       self = g_malloc(sizeof(CallbackData));
+       self->modest_ui=modest_ui;
+       self->id_tree_view=id_tree_view;
+       self->acc_tree_view=acc_tree_view;
+       return self;
+}
+
+static void
+free_callback_data(CallbackData *data)
+{
+       g_free(data);
+}
+
+static GtkTreeModel *
+create_identities_model(ModestIdentityMgr *id_mgr) {
+
+       GSList *id_names_list;
+       GSList *id_names_list_iter;
+       GtkListStore *id_list_store;
+       GtkTreeIter id_list_store_iter;
+       gchar *tmptext1;
+       gchar *tmptext2;
+
+       id_names_list = modest_identity_mgr_identity_names(id_mgr, NULL);
+       id_list_store = gtk_list_store_new(IDENTITY_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
+
+       for (id_names_list_iter=id_names_list;
+            id_names_list_iter!=NULL;
+            id_names_list_iter=g_slist_next(id_names_list_iter)) {
+               gtk_list_store_append(id_list_store, &id_list_store_iter);
+               tmptext1=modest_identity_mgr_get_identity_string(id_mgr,
+                                                                id_names_list_iter->data,
+                                                                MODEST_IDENTITY_EMAIL,
+                                                                NULL);
+               tmptext2=modest_identity_mgr_get_identity_string(id_mgr,
+                                                                id_names_list_iter->data,
+                                                                MODEST_IDENTITY_ID_VIA,
+                                                                NULL);
+               gtk_list_store_set(id_list_store, &id_list_store_iter,
+                                  IDENTITY_NAME, id_names_list_iter->data,
+                                  IDENTITY_ADDRESS, tmptext1,
+                                  IDENTITY_VIA, tmptext2,
+                                  -1);
+               g_free(tmptext1);
+               g_free(tmptext2);
+       }
+
+       g_slist_free(id_names_list);
+
+       return GTK_TREE_MODEL(id_list_store);
+}
+
+static GtkTreeModel *
+create_accounts_model(ModestAccountMgr *acc_mgr) {
+
+       GSList *acc_names_list;
+       GSList *acc_names_list_iter;
+       GtkListStore *acc_list_store;
+       GtkTreeIter acc_list_store_iter;
+       gchar *tmptext;
+
+       acc_names_list = modest_account_mgr_server_account_names(acc_mgr,
+                                                                NULL,
+                                                                MODEST_PROTO_TYPE_ANY,
+                                                                NULL,
+                                                                FALSE);
+       acc_list_store = gtk_list_store_new(ACCOUNT_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
+
+       for (acc_names_list_iter=acc_names_list;
+            acc_names_list_iter!=NULL;
+            acc_names_list_iter=g_slist_next(acc_names_list_iter)) {
+               gtk_list_store_append(acc_list_store, &acc_list_store_iter);
+               tmptext=modest_account_mgr_get_server_account_string(acc_mgr,
+                                                                    acc_names_list_iter->data,
+                                                                    MODEST_ACCOUNT_HOSTNAME,
+                                                                    NULL);
+               gtk_list_store_set(acc_list_store, &acc_list_store_iter,
+                                  ACCOUNT_NAME, acc_names_list_iter->data,
+                                  ACCOUNT_HOST, tmptext,
+                                  -1);
+               g_free(tmptext);
+       }
+
+       g_slist_free(acc_names_list);
+
+       return GTK_TREE_MODEL(acc_list_store);
+}
+
+
+static void
+accounts_and_identities_dialog (gpointer user_data)
+{
+       GladeXML *glade_xml;
+       GtkWidget *main_dialog;
+       GtkWidget *identities_tree_view;
+       GtkWidget *accounts_tree_view;
+       GtkTreeModel *identities_model;
+       GtkTreeModel *accounts_model;
+       ModestUI *modest_ui;
+       ModestUIPrivate *priv;
+       gint retval;
+       GtkCellRenderer *renderer;
+       GtkTreeViewColumn *column;
+       CallbackData *cb_data;
+       GtkWidget *abutton;
+
+       g_return_if_fail(MODEST_IS_UI(user_data));
+       modest_ui = (ModestUI *) user_data;
+       priv = MODEST_UI_GET_PRIVATE(modest_ui);
+
+       glade_xml = glade_xml_new(MODEST_GLADE, "IdentitiesAndAccountsDialog", NULL);
+       main_dialog = glade_xml_get_widget(glade_xml, "IdentitiesAndAccountsDialog");
+
+       /* Accounts */
+       accounts_tree_view = glade_xml_get_widget(glade_xml, "AccountsTreeview");
+       accounts_model=create_accounts_model(priv->modest_acc_mgr);
+       gtk_tree_view_set_model(GTK_TREE_VIEW(accounts_tree_view), accounts_model);
+       /* Account -> Accountname */
+       renderer = gtk_cell_renderer_text_new ();
+       column = gtk_tree_view_column_new_with_attributes ("Account",
+                                                          renderer,
+                                                          "text", ACCOUNT_NAME,
+                                                          NULL);
+       gtk_tree_view_append_column (GTK_TREE_VIEW(accounts_tree_view), column);
+       /* Account -> Hostname */
+       renderer = gtk_cell_renderer_text_new ();
+       column = gtk_tree_view_column_new_with_attributes ("Hostname",
+                                                          renderer,
+                                                          "text", ACCOUNT_HOST,
+                                                          NULL);
+       gtk_tree_view_append_column (GTK_TREE_VIEW(accounts_tree_view), column);
+
+       /* Identities */
+       identities_tree_view = glade_xml_get_widget(glade_xml, "IdentitiesTreeview");
+       identities_model=create_identities_model(priv->modest_id_mgr);
+       gtk_tree_view_set_model(GTK_TREE_VIEW(identities_tree_view), identities_model);
+
+       /* Identities -> Identityname */
+       renderer = gtk_cell_renderer_text_new ();
+       column = gtk_tree_view_column_new_with_attributes ("Identity",
+                                                          renderer,
+                                                          "text", IDENTITY_NAME,
+                                                          NULL);
+       gtk_tree_view_append_column (GTK_TREE_VIEW(identities_tree_view), column);
+
+       /* Identities -> E-mail address */
+       renderer = gtk_cell_renderer_text_new ();
+       column = gtk_tree_view_column_new_with_attributes ("E-mail address",
+                                                          renderer,
+                                                          "text", IDENTITY_ADDRESS,
+                                                          NULL);
+       gtk_tree_view_append_column (GTK_TREE_VIEW(identities_tree_view), column);
+
+       /* Identities -> Relay */
+       renderer = gtk_cell_renderer_text_new ();
+       column = gtk_tree_view_column_new_with_attributes ("Transport",
+                                                          renderer,
+                                                          "text", IDENTITY_VIA,
+                                                          NULL);
+       gtk_tree_view_append_column (GTK_TREE_VIEW(identities_tree_view), column);
+
+       cb_data=setup_callback_data(identities_tree_view, accounts_tree_view, modest_ui);
+
+       abutton=glade_xml_get_widget(glade_xml, "IdentityCreateButton");
+       g_signal_connect(abutton,
+                        "clicked",
+                        G_CALLBACK(create_action),
+                        cb_data);
+       abutton=glade_xml_get_widget(glade_xml, "IdentityEditButton");
+       g_signal_connect(abutton,
+                        "clicked",
+                        G_CALLBACK(edit_action),
+                        cb_data);
+       abutton=glade_xml_get_widget(glade_xml, "IdentityDeleteButton");
+       g_signal_connect(abutton,
+                        "clicked",
+                        G_CALLBACK(delete_action),
+                        cb_data);
+
+       /* FIXME: the edit/delete buttons are sensitive by default
+        * but we have no selection by default.
+        */
+
+       activate_buttons_on_identity(NULL, glade_xml);
+
+       gtk_widget_show_all(GTK_WIDGET(main_dialog));
+
+       retval=gtk_dialog_run(GTK_DIALOG(main_dialog));
+
+       gtk_widget_destroy(GTK_WIDGET(main_dialog));
+       g_object_unref(accounts_model);
+       g_object_unref(identities_model);
+       free_callback_data(cb_data);
+       g_object_unref(glade_xml);
+}
+
+void account_settings (GtkWidget *widget,
+                      gpointer user_data)
+{
+       accounts_and_identities_dialog (MODEST_UI(user_data));
+}
+
diff --git a/src/hildon/modest-ui-account-setup.h b/src/hildon/modest-ui-account-setup.h
new file mode 100644 (file)
index 0000000..77b0a5e
--- /dev/null
@@ -0,0 +1,13 @@
+/* modest-ui-account-setup.h */
+/* insert (c)/licensing information) */
+
+#ifndef __MODEST_UI_ACCOUNT_SETUP_H__
+#define __MODEST_UI_ACCOUNT_SETUP_H__
+
+#include "modest-ui-glade.h"
+
+void account_settings (GtkWidget *,
+                       gpointer);
+
+#endif /* __MODEST_UI_ACCOUNT_SETUP_H__ */
+
diff --git a/src/hildon/modest-ui-glade.h b/src/hildon/modest-ui-glade.h
new file mode 100644 (file)
index 0000000..7c66c73
--- /dev/null
@@ -0,0 +1,39 @@
+/* modest-ui-glade.h */
+/* insert (c)/licensing information) */
+
+#ifndef __MODEST_UI_GLADE_H__
+#define __MODEST_UI_GLADE_H__
+
+#include "../modest-ui.h"
+#include "../modest-account-mgr.h"
+#include "../modest-identity-mgr.h"
+#include "../modest-window-mgr.h"
+#include "../modest-tny-account-store.h"
+
+#define MODEST_GLADE          PREFIX "/share/modest/glade/modest.glade"
+#define MODEST_GLADE_MAIN_WIN "main"
+#define MODEST_GLADE_EDIT_WIN "new_mail"
+
+typedef struct _ModestUIPrivate ModestUIPrivate;
+struct _ModestUIPrivate {
+
+       ModestConf           *modest_conf;
+       ModestAccountMgr     *modest_acc_mgr;
+       ModestIdentityMgr    *modest_id_mgr;
+       ModestWindowMgr      *modest_window_mgr;
+       TnyAccountStoreIface *account_store;
+       GtkWidget            *folder_view;
+       GtkWidget            *header_view;
+       GtkWidget            *message_view;
+
+       GtkWindow            *main_window;
+       GladeXML             *glade_xml;
+
+       TnyMsgFolderIface    *current_folder;
+};
+
+#define MODEST_UI_GET_PRIVATE(o)      (G_TYPE_INSTANCE_GET_PRIVATE((o), \
+                                       MODEST_TYPE_UI, \
+                                       ModestUIPrivate))
+
+#endif /* __MODEST_UI_GLADE_H__ */
diff --git a/src/hildon/modest-ui-main-view.c b/src/hildon/modest-ui-main-view.c
new file mode 100644 (file)
index 0000000..45a5a49
--- /dev/null
@@ -0,0 +1,600 @@
+#include <gtk/gtk.h>
+#include <glade/glade.h>
+#include <glib/gi18n.h>
+#include <string.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif /*HAVE_CONFIG_H*/
+
+/* TODO: put in auto* */
+#include <tny-text-buffer-stream.h>
+#include <tny-msg-folder.h>
+
+#include "../modest-ui.h"
+#include "../modest-window-mgr.h"
+#include "../modest-account-mgr.h"
+#include "../modest-account-mgr.h"
+#include "../modest-identity-mgr.h"
+
+#include "../modest-tny-account-store.h"
+#include "../modest-tny-folder-tree-view.h"
+#include "../modest-tny-header-tree-view.h"
+#include "../modest-tny-msg-view.h"
+#include "../modest-tny-transport-actions.h"
+#include "../modest-tny-store-actions.h"
+
+#include "../modest-text-utils.h"
+#include "../modest-tny-msg-actions.h"
+
+#include "../modest-editor-window.h"
+
+#include "modest-ui-glade.h"
+#include "modest-ui-wizard.h"
+#include "modest-ui-account-setup.h"
+
+#include "modest-ui-main-view.h"
+#include "modest-ui-message-editor.h"
+#include "modest-ui-message-viewer.h"
+
+
+static GtkWidget* modest_main_window_folder_tree (ModestAccountMgr *modest_acc_mgr,
+                                                 TnyAccountStoreIface *account_store);
+
+static GtkWidget* modest_main_window_header_tree (TnyMsgFolderIface *folder);
+
+static void on_folder_clicked (ModestTnyFolderTreeView *folder_tree,
+                              TnyMsgFolderIface *folder,
+                              gpointer data);
+
+static void on_message_clicked (ModestTnyFolderTreeView *folder_tree,
+                               TnyMsgIface *message,
+                               gpointer data);
+
+static void on_reply_clicked (GtkWidget *widget, gpointer user_data);
+
+static void on_forward_clicked (GtkWidget *widget, gpointer user_data);
+
+static void on_delete_clicked (GtkWidget *widget, gpointer user_data);
+
+static void on_view_attachments_toggled(GtkWidget *widget, gpointer user_data);
+
+static void on_sendreceive_button_clicked (GtkWidget *widget, gpointer user_data);
+
+static void on_forward_attached_activated (GtkWidget *widget, gpointer user_data);
+
+static void on_headers_status_update (GtkWidget *header_view, const gchar *msg, gint status,
+                         gpointer user_data);
+static void on_status_cleanup (gpointer user_data);
+
+static void register_toolbar_callbacks (ModestUI *modest_ui);
+
+
+static void
+modest_ui_main_view_destroy (GtkWidget *win, GdkEvent *event, gpointer data)
+{
+       ModestUIPrivate *priv;
+
+       g_return_if_fail (data);
+       g_return_if_fail(MODEST_IS_UI(data));
+       priv = MODEST_UI_GET_PRIVATE((ModestUI *)data);
+       g_return_if_fail(priv);
+       if (!modest_window_mgr_unregister (priv->modest_window_mgr, G_OBJECT(win)))
+               g_warning ("modest window mgr: failed to unregister %p",
+                          G_OBJECT(win));
+       else
+               gtk_widget_hide(win);
+}
+
+
+gboolean
+modest_ui_show_main_window (ModestUI *modest_ui)
+{
+       GtkWidget       *win;
+       gint              height, width;
+       ModestUIPrivate *priv;
+       GtkWidget     *folder_view, *header_view;
+       GtkWidget     *message_view;
+       GtkWidget     *account_settings_item;
+       GtkWidget     *forward_attached_menu_item;
+       GtkWidget     *delete_item;
+       GtkWidget     *open_item;
+       GtkWidget     *view_attachments_item;
+       GtkWidget     *new_account_item;
+       
+       GtkWidget  *folder_view_holder,
+               *header_view_holder,
+               *mail_paned;
+       gboolean show_attachments_inline;
+
+       priv = MODEST_UI_GET_PRIVATE(modest_ui);
+       
+       height = modest_conf_get_int (priv->modest_conf,
+                                     MODEST_CONF_MAIN_WINDOW_HEIGHT,NULL);
+       width  = modest_conf_get_int (priv->modest_conf,
+                                     MODEST_CONF_MAIN_WINDOW_WIDTH,NULL);
+
+       win = glade_xml_get_widget (priv->glade_xml, "main");
+       if (!win) {
+               g_warning ("could not create main window");
+               return FALSE;
+       }
+
+       folder_view = GTK_WIDGET(modest_main_window_folder_tree(priv->modest_acc_mgr,
+                                                         priv->account_store));
+       priv->folder_view = folder_view;
+       folder_view_holder = glade_xml_get_widget (priv->glade_xml, "folders");
+       if (!folder_view||!folder_view_holder) {
+               g_warning ("failed to create folder tree");
+               return FALSE;
+       }
+       gtk_container_add (GTK_CONTAINER(folder_view_holder), folder_view);
+
+       header_view  =  GTK_WIDGET(modest_main_window_header_tree (NULL));
+       priv->header_view = header_view;
+       header_view_holder = glade_xml_get_widget (priv->glade_xml, "mail_list");
+       if (!header_view) {
+               g_warning ("failed to create header tree");
+               return FALSE;
+       }
+       gtk_container_add (GTK_CONTAINER(header_view_holder), header_view);
+
+       g_signal_connect (G_OBJECT(folder_view), "folder_selected",
+                         G_CALLBACK(on_folder_clicked), modest_ui);
+
+       show_attachments_inline = modest_conf_get_bool(priv->modest_conf,
+                                            MODEST_CONF_MSG_VIEW_SHOW_ATTACHMENTS_INLINE,
+                                            NULL);
+
+       message_view  = GTK_WIDGET(modest_tny_msg_view_new (NULL, show_attachments_inline));
+       priv->message_view = message_view;
+       if (!message_view) {
+               g_warning ("failed to create message view");
+               return FALSE;
+       }
+
+       mail_paned = glade_xml_get_widget (priv->glade_xml, "mail_paned");
+       gtk_paned_add2 (GTK_PANED(mail_paned), message_view);
+
+       g_signal_connect (header_view, "message_selected",
+                         G_CALLBACK(on_message_clicked),
+                          modest_ui);
+
+       g_signal_connect (header_view, "status_update",
+                         G_CALLBACK(on_headers_status_update), modest_ui);
+
+       g_signal_connect (header_view, "row-activated",
+                         G_CALLBACK(on_message_activated),
+                          modest_ui);
+
+       account_settings_item = glade_xml_get_widget (priv->glade_xml, "AccountSettingsMenuItem");
+       if (!account_settings_item) {
+               g_warning ("The account settings item isn't available!\n");
+               return FALSE;
+       }
+
+        g_signal_connect (account_settings_item, "activate",
+                          G_CALLBACK(account_settings), modest_ui);
+
+       new_account_item = glade_xml_get_widget (priv->glade_xml, "NewAccountWizardMenuItem");
+       if (!new_account_item) {
+               g_warning ("The new account item isn't available!\n");
+               return FALSE;
+       }
+
+       g_signal_connect (new_account_item, "activate",
+               G_CALLBACK(new_wizard_account), modest_ui);
+
+       open_item = glade_xml_get_widget (priv->glade_xml, "open1");
+       if (!open_item) {
+               g_warning ("The open item isn't available!\n");
+               return FALSE;
+       }
+       g_signal_connect (open_item, "activate", G_CALLBACK(on_open_message_clicked),
+                         modest_ui);
+
+       delete_item = glade_xml_get_widget (priv->glade_xml, "delete1");
+       if (!delete_item) {
+               g_warning ("The delete item isn't available!\n");
+               return FALSE;
+       }
+       g_signal_connect (delete_item, "activate", G_CALLBACK(on_delete_clicked),
+                         modest_ui);
+
+       view_attachments_item = glade_xml_get_widget (priv->glade_xml, "menu_view_attachments");
+       if (!view_attachments_item) {
+               g_warning ("The view_attachments_item isn't available!");
+               return FALSE;
+       }
+
+       forward_attached_menu_item = glade_xml_get_widget (priv->glade_xml, "forward_attached");
+       if (!forward_attached_menu_item) {
+               g_warning ("The forward_attached_menu_item isn't available!");
+               return FALSE;
+       }
+       g_signal_connect (forward_attached_menu_item, "activate", G_CALLBACK(on_forward_attached_activated),
+                         modest_ui);
+
+       gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(view_attachments_item),
+                                       modest_conf_get_bool(priv->modest_conf,
+                                       MODEST_CONF_MSG_VIEW_SHOW_ATTACHMENTS_INLINE,
+                                       NULL));
+
+       g_signal_connect (view_attachments_item, "toggled",
+                               G_CALLBACK(on_view_attachments_toggled), modest_ui);
+
+       register_toolbar_callbacks (modest_ui);
+
+       modest_window_mgr_register (priv->modest_window_mgr,
+                                   G_OBJECT(win), MODEST_MAIN_WINDOW, 0);
+       g_signal_connect (win, "destroy-event", G_CALLBACK(modest_ui_main_view_destroy),
+                         modest_ui);
+       g_signal_connect (win, "delete-event", G_CALLBACK(modest_ui_main_view_destroy),
+                         modest_ui);
+       gtk_widget_set_usize (GTK_WIDGET(win), width, height);
+       gtk_window_set_title (GTK_WINDOW(win), PACKAGE_STRING);
+
+       gtk_widget_show_all (win);
+       return TRUE;
+}
+
+
+static void
+register_toolbar_callbacks (ModestUI *modest_ui)
+{
+       ModestUIPrivate *priv;
+       GtkWidget *button;
+
+       g_return_if_fail (modest_ui);
+
+       priv = MODEST_UI_GET_PRIVATE (modest_ui);
+
+       button = glade_xml_get_widget (priv->glade_xml, "toolb_new_mail");
+       if (button)
+               g_signal_connect (button, "clicked",
+                                 G_CALLBACK(on_new_mail_clicked), modest_ui);
+
+       button = glade_xml_get_widget (priv->glade_xml, "toolb_reply");
+       if (button) {
+               g_signal_connect (button, "clicked",
+                                 G_CALLBACK(on_reply_clicked), modest_ui);
+               gtk_widget_set_sensitive(button, FALSE);
+       }
+
+       button = glade_xml_get_widget (priv->glade_xml, "toolb_reply_all");
+       if (button) {
+               //g_signal_connect (button, "clicked",
+               //                G_CALLBACK(on_reply_all_clicked), modest_ui);
+               gtk_widget_set_sensitive(button, FALSE);
+       }
+
+       button = glade_xml_get_widget (priv->glade_xml, "toolb_forward");
+       if (button) {
+               g_signal_connect (button, "clicked",
+                                 G_CALLBACK(on_forward_clicked), modest_ui);
+               gtk_widget_set_sensitive(button, FALSE);
+       }
+
+       button = glade_xml_get_widget (priv->glade_xml, "toolb_move_to");
+       if (button) {
+               //g_signal_connect (button, "clicked",
+               //                G_CALLBACK(on_move_to_clicked), modest_ui);
+               gtk_widget_set_sensitive(button, FALSE);
+       }
+
+       button = glade_xml_get_widget (priv->glade_xml, "toolb_delete");
+       if (button) {
+               g_signal_connect (button, "clicked",
+                                 G_CALLBACK(on_delete_clicked), modest_ui);
+               gtk_widget_set_sensitive(button, FALSE);
+       }
+
+       button = glade_xml_get_widget (priv->glade_xml, "toolb_send_receive");
+       if (button) {
+               g_signal_connect (button, "clicked",
+                                 G_CALLBACK(on_sendreceive_button_clicked), modest_ui);
+               gtk_widget_set_sensitive(button, TRUE);
+       }
+}
+
+
+static void
+on_folder_clicked (ModestTnyFolderTreeView *folder_tree,
+                  TnyMsgFolderIface *folder,
+                  gpointer data)
+{
+       GtkWidget *win;
+       GtkWidget *button;
+       ModestTnyHeaderTreeView *tree_view;
+       ModestTnyMsgView *msg_view;
+       ModestUIPrivate *priv;
+       GtkWidget *scrollview;
+
+       g_return_if_fail (folder);
+       g_return_if_fail (data);
+
+       priv = MODEST_UI_GET_PRIVATE(data);
+       scrollview = glade_xml_get_widget (priv->glade_xml,"mail_list");
+
+       tree_view = MODEST_TNY_HEADER_TREE_VIEW (priv->header_view);
+
+       win = glade_xml_get_widget (priv->glade_xml, "main");
+       gtk_window_set_title (GTK_WINDOW(win),
+                             tny_msg_folder_iface_get_name(folder));
+
+       modest_tny_header_tree_view_set_folder (tree_view, folder);
+       priv->current_folder = folder;
+
+       button = glade_xml_get_widget (priv->glade_xml, "toolb_reply");
+       if (button) {
+               gtk_widget_set_sensitive(button, FALSE);
+       }
+
+       button = glade_xml_get_widget (priv->glade_xml, "toolb_forward");
+       if (button) {
+               gtk_widget_set_sensitive(button, FALSE);
+       }
+
+       button = glade_xml_get_widget (priv->glade_xml, "toolb_delete");
+       if (button) {
+               gtk_widget_set_sensitive(button, FALSE);
+       }
+
+       msg_view = MODEST_TNY_MSG_VIEW (priv->message_view);
+       g_return_if_fail (msg_view);
+
+       modest_tny_msg_view_set_message  (msg_view, NULL);
+}
+
+
+static void
+on_message_clicked (ModestTnyFolderTreeView *folder_tree,
+                               TnyMsgIface *message,
+                               gpointer data)
+{
+       GtkWidget *button;
+       ModestTnyMsgView *msg_view;
+       ModestUIPrivate *priv;
+
+       g_return_if_fail (data);
+
+       priv = MODEST_UI_GET_PRIVATE (data);
+       msg_view = MODEST_TNY_MSG_VIEW (priv->message_view);
+
+       modest_tny_msg_view_set_message (msg_view, message);
+       
+       button = glade_xml_get_widget (priv->glade_xml, "toolb_reply");
+       if (button) {
+               gtk_widget_set_sensitive(button, TRUE);
+       }
+       button = glade_xml_get_widget (priv->glade_xml, "toolb_forward");
+       if (button) {
+               gtk_widget_set_sensitive(button, TRUE);
+       }
+       button = glade_xml_get_widget (priv->glade_xml, "toolb_delete");
+       if (button) {
+               gtk_widget_set_sensitive(button, TRUE);
+       }
+}
+
+
+static GtkWidget*
+modest_main_window_header_tree (TnyMsgFolderIface *folder)
+{
+       int i;
+       GSList *columns = NULL;
+       GtkWidget *header_tree;
+       ModestTnyHeaderTreeViewColumn cols[] = {
+               MODEST_TNY_HEADER_TREE_VIEW_COLUMN_MSGTYPE,
+               MODEST_TNY_HEADER_TREE_VIEW_COLUMN_ATTACH,
+               MODEST_TNY_HEADER_TREE_VIEW_COLUMN_FROM,
+               MODEST_TNY_HEADER_TREE_VIEW_COLUMN_SUBJECT,
+               MODEST_TNY_HEADER_TREE_VIEW_COLUMN_RECEIVED_DATE
+       };
+
+       for (i = 0 ; i != sizeof(cols) / sizeof(ModestTnyHeaderTreeViewColumn); ++i)
+               columns = g_slist_append (columns, GINT_TO_POINTER(cols[i]));
+
+       header_tree = GTK_WIDGET(modest_tny_header_tree_view_new(folder, columns,
+                                                                MODEST_TNY_HEADER_TREE_VIEW_STYLE_NORMAL));
+       g_slist_free (columns);
+
+       if (!header_tree) {
+               g_warning ("could not create header tree");
+               return NULL;
+       }
+
+       return GTK_WIDGET(header_tree);
+}
+
+
+static GtkWidget*
+modest_main_window_folder_tree (ModestAccountMgr *modest_acc_mgr,
+                               TnyAccountStoreIface *account_store)
+{
+       GtkWidget *folder_tree;
+
+       folder_tree = GTK_WIDGET (modest_tny_folder_tree_view_new (account_store));
+       if (!folder_tree) {
+               g_warning ("could not create folder list");
+               return NULL;
+       }
+
+       return folder_tree;
+}
+
+
+static void
+on_reply_clicked (GtkWidget *widget, gpointer user_data)
+{
+       ModestUI *modest_ui = (ModestUI *)user_data;
+
+       quoted_send_msg (modest_ui, QUOTED_SEND_REPLY);
+}
+
+
+static void
+on_forward_clicked (GtkWidget *widget, gpointer user_data)
+{
+       ModestUI *modest_ui = (ModestUI *)user_data;
+
+       quoted_send_msg (modest_ui, QUOTED_SEND_FORWARD);
+}
+
+
+static void
+on_view_attachments_toggled(GtkWidget *widget, gpointer user_data)
+{
+       ModestUI *modest_ui = (ModestUI *)user_data;
+       GtkWidget *view_attachments_item;
+       ModestTnyMsgView *msg_view;
+       ModestUIPrivate *priv;
+       gboolean view_attachments_inline;
+
+       priv = MODEST_UI_GET_PRIVATE(modest_ui);
+       view_attachments_item = glade_xml_get_widget (priv->glade_xml, "menu_view_attachments");
+       g_return_if_fail(view_attachments_item);
+
+       msg_view = MODEST_TNY_MSG_VIEW(priv->message_view);
+
+       view_attachments_inline = gtk_check_menu_item_get_active(
+                                       GTK_CHECK_MENU_ITEM(view_attachments_item));
+
+       modest_conf_set_bool(priv->modest_conf,
+                            MODEST_CONF_MSG_VIEW_SHOW_ATTACHMENTS_INLINE,
+                            view_attachments_inline,
+                            NULL);
+
+       modest_tny_msg_view_set_show_attachments_inline_flag(msg_view, view_attachments_inline);
+}
+
+
+static void
+on_delete_clicked (GtkWidget *widget, gpointer user_data)
+{
+       ModestUI *modest_ui = (ModestUI *)user_data;
+       GtkTreeSelection *sel;
+       GtkTreeModel *model;
+       GtkTreeIter iter;
+       GtkTreeModel *mymodel;
+
+       ModestTnyHeaderTreeView *header_view;
+       ModestTnyMsgView *msg_view;
+       ModestUIPrivate *priv;
+
+       g_return_if_fail (modest_ui);
+
+       priv = MODEST_UI_GET_PRIVATE(modest_ui);
+
+       msg_view = MODEST_TNY_MSG_VIEW(priv->message_view);
+       g_return_if_fail (msg_view);
+
+       header_view = MODEST_TNY_HEADER_TREE_VIEW(priv->header_view);
+       g_return_if_fail (header_view);
+
+       sel = gtk_tree_view_get_selection (GTK_TREE_VIEW(header_view));
+       g_return_if_fail (sel);
+
+       /* get all selected mails */
+       if (G_LIKELY (gtk_tree_selection_get_selected (sel, &model, &iter))) {
+               TnyMsgHeaderIface *header;
+
+               gtk_tree_model_get (model, &iter, TNY_MSG_HEADER_LIST_MODEL_INSTANCE_COLUMN,
+                       &header, -1);
+
+               if (G_LIKELY (header)) {
+                       TnyMsgFolderIface *folder;
+                       // const TnyMsgIface *msg;
+
+                       if (GTK_IS_TREE_MODEL_SORT (model)) {
+                               mymodel = gtk_tree_model_sort_get_model
+                                       (GTK_TREE_MODEL_SORT (model));
+                       } else
+                               mymodel = model;
+
+                       folder = (TnyMsgFolderIface*)tny_msg_header_iface_get_folder (header);
+
+                       /* this will make the message as deleted */
+                       /*      tny_msg_folder_iface_expunge (folder); will finally delete messages */
+                       if (TNY_IS_MSG_FOLDER (folder))
+                               tny_msg_folder_iface_remove_message (folder, header);
+                       gtk_widget_queue_draw (GTK_WIDGET (header_view));
+               }
+       }
+}
+
+
+static void
+on_sendreceive_button_clicked (GtkWidget *widget, gpointer user_data)
+{
+       ModestUI *modest_ui = (ModestUI *)user_data;
+       ModestUIPrivate *priv;
+       TnyAccountStoreIface *account_store;
+       const GList *store_accounts;
+       const GList *iter;
+
+       g_return_if_fail (modest_ui);
+       priv = MODEST_UI_GET_PRIVATE(modest_ui);
+
+       account_store = priv->account_store;
+       store_accounts =
+               tny_account_store_iface_get_store_accounts (account_store);
+               
+       for (iter = store_accounts; iter; iter = iter->next) {
+               modest_tny_store_actions_update_folders (TNY_STORE_ACCOUNT_IFACE (iter->data));
+
+       }
+       
+       if (priv->header_view && priv->current_folder) {
+                       
+               modest_tny_header_tree_view_set_folder (MODEST_TNY_HEADER_TREE_VIEW(priv->header_view),
+                                                       priv->current_folder);
+               gtk_widget_queue_draw (priv->header_view);
+       }
+}
+static void
+on_forward_attached_activated (GtkWidget *widget, gpointer user_data)
+{
+       ModestUI *modest_ui = (ModestUI *)user_data;
+
+       quoted_send_msg (modest_ui, QUOTED_SEND_FORWARD_ATTACHED);
+}
+
+static void
+on_headers_status_update (GtkWidget *header_view, const gchar *msg, gint status_id,
+                         gpointer user_data)
+{
+       ModestUIPrivate *priv;
+       ModestUI *modest_ui;
+
+       GtkStatusbar *status_bar;
+       GtkProgressBar *progress_bar;
+       GtkWidget    *status_box;
+       
+       modest_ui = MODEST_UI (user_data);
+       priv      = MODEST_UI_GET_PRIVATE(modest_ui);
+
+       progress_bar = GTK_PROGRESS_BAR(glade_xml_get_widget
+                                       (priv->glade_xml, "progressbar"));
+       status_bar   = GTK_STATUSBAR  (glade_xml_get_widget
+                                      (priv->glade_xml, "statusbar"));
+
+       
+       status_box   = glade_xml_get_widget (priv->glade_xml, "statusbox");
+       
+       
+       if (!status_bar || !progress_bar) {
+               g_warning ("failed to find status / progress bar");
+               return;
+       }
+
+       if (msg && status_id) {
+               gtk_widget_show (status_box);
+               gtk_progress_bar_pulse (progress_bar);
+               gtk_statusbar_push (status_bar, status_id, msg);
+       } else {
+               gtk_widget_hide   (status_box);
+               gtk_statusbar_pop (status_bar, status_id);
+       }
+}              
+
diff --git a/src/hildon/modest-ui-main-view.h b/src/hildon/modest-ui-main-view.h
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/src/hildon/modest-ui-message-editor.c b/src/hildon/modest-ui-message-editor.c
new file mode 100644 (file)
index 0000000..4171aa0
--- /dev/null
@@ -0,0 +1,545 @@
+#include <gtk/gtk.h>
+#include <glade/glade.h>
+#include <glib/gi18n.h>
+#include <string.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif /*HAVE_CONFIG_H*/
+
+/* TODO: put in auto* */
+#include <tny-text-buffer-stream.h>
+#include <tny-msg-folder.h>
+
+#include "../modest-ui.h"
+#include "../modest-window-mgr.h"
+#include "../modest-account-mgr.h"
+#include "../modest-account-mgr.h"
+#include "../modest-identity-mgr.h"
+
+#include "../modest-tny-account-store.h"
+#include "../modest-tny-folder-tree-view.h"
+#include "../modest-tny-header-tree-view.h"
+#include "../modest-tny-msg-view.h"
+#include "../modest-tny-transport-actions.h"
+#include "../modest-tny-store-actions.h"
+
+#include "../modest-text-utils.h"
+#include "../modest-tny-msg-actions.h"
+
+#include "../modest-tny-attachment.h"
+
+#include "../modest-editor-window.h"
+
+#include "modest-ui-glade.h"
+#include "modest-ui-wizard.h"
+
+#include "modest-ui-message-editor.h"
+
+
+static void on_attach_button_clicked (GtkWidget *widget, ModestEditorWindow *modest_editwin);
+
+static void on_send_button_clicked (GtkWidget *widget, ModestEditorWindow *modest_editwin);
+
+
+typedef struct {
+       ModestUI *modest_ui;
+       ModestEditorWindow *edit_win;
+       GladeXML *glade_xml;
+       GList *attachments;
+} EditWinData;
+
+
+static gboolean close_edit_confirm_dialog(ModestEditorWindow *edit_win)
+{
+       GtkWidget *mdialog;
+       gint res;
+
+       mdialog = gtk_message_dialog_new(GTK_WINDOW(edit_win),
+                       GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+                       GTK_MESSAGE_QUESTION,
+                       GTK_BUTTONS_YES_NO,
+                       _("Message was modified.\nDiscard Changes?"));
+       gtk_widget_show_all (mdialog);
+
+       res=gtk_dialog_run(GTK_DIALOG(mdialog));
+       gtk_widget_destroy (mdialog);
+       if (res == GTK_RESPONSE_YES)
+               return TRUE;
+       else
+               return FALSE;
+}
+
+static void
+close_edit_window (GtkWidget *win, GdkEvent *event, gpointer data)
+{
+       ModestEditorWindow *edit_win;
+       ModestUIPrivate *priv;
+       EditWinData *win_data;
+
+       edit_win = (ModestEditorWindow *)data;
+       win_data = modest_editor_window_get_data(edit_win);
+       priv = MODEST_UI_GET_PRIVATE(win_data->modest_ui);
+
+       // g_message("window was %s modified", modest_editor_window_get_modified(edit_win) ? "" : "not");
+
+       if (modest_editor_window_get_modified(edit_win)) {
+               if (close_edit_confirm_dialog(edit_win)) {
+                       gtk_widget_hide (GTK_WIDGET(edit_win));
+                       modest_window_mgr_unregister(priv->modest_window_mgr, G_OBJECT(edit_win));
+                       gtk_widget_destroy(GTK_WIDGET(edit_win));
+                       g_message("closing window");
+               } else {
+                       g_message("not closing window");
+               }
+       } else {
+               gtk_widget_hide (GTK_WIDGET(edit_win));
+               modest_window_mgr_unregister(priv->modest_window_mgr, G_OBJECT(edit_win));
+               gtk_widget_destroy(GTK_WIDGET(edit_win));
+               g_message("closing window");
+       }
+}
+
+
+GtkContainer
+*modest_ui_new_editor_window (ModestUI *modest_ui, gpointer *user_data)
+{
+       GtkWidget       *top_container;
+       GladeXML                *glade_xml;
+       EditWinData             *win_data;
+
+       glade_xml = glade_xml_new(MODEST_GLADE, "new_mail_top_container", NULL);
+       if (!glade_xml)
+               return NULL;
+
+       win_data = g_malloc(sizeof(EditWinData));
+       win_data->modest_ui = modest_ui;
+       win_data->glade_xml = glade_xml;
+       win_data->attachments = NULL;
+
+       *user_data = win_data;
+
+       top_container = glade_xml_get_widget(glade_xml, "new_mail_top_container");
+       if (!top_container) {
+               g_object_unref(G_OBJECT(glade_xml));
+               return NULL;
+       }
+       
+       return GTK_CONTAINER(top_container);
+}
+
+
+gboolean
+modest_ui_editor_window_set_to_header(const gchar *to, gpointer window_data)
+{
+       GladeXML *glade_xml;
+       GtkWidget *w;
+       EditWinData *win_data;
+
+       win_data = (EditWinData *)window_data;
+       glade_xml = win_data->glade_xml;
+       w = glade_xml_get_widget(glade_xml, "to_entry");
+       gtk_entry_set_text(GTK_ENTRY(w), to);
+
+       return TRUE;
+}
+
+
+gboolean
+modest_ui_editor_window_set_cc_header(const gchar *cc, gpointer window_data)
+{
+       GladeXML *glade_xml;
+       // GtkWidget *w;
+       EditWinData *win_data;
+
+       win_data = (EditWinData *)window_data;
+       glade_xml = win_data->glade_xml;
+/*
+       w = glade_xml_get_widget(glade_xml, "cc_entry");
+       gtk_entry_set_text(GTK_ENTRY(w), cc);
+*/
+       return TRUE;
+}
+
+
+gboolean
+modest_ui_editor_window_set_bcc_header(const gchar *bcc, gpointer window_data)
+{
+       GladeXML *glade_xml;
+       // GtkWidget *w;
+       EditWinData *win_data;
+
+       win_data = (EditWinData *)window_data;
+       glade_xml = win_data->glade_xml;
+/*
+       w = glade_xml_get_widget(glade_xml, "bcc_entry");
+       gtk_entry_set_text(GTK_ENTRY(w), bcc);
+*/
+       return TRUE;
+}
+
+
+gboolean
+modest_ui_editor_window_set_subject_header(const gchar *subject, gpointer window_data)
+{
+       GladeXML *glade_xml;
+       GtkWidget *w;
+       EditWinData *win_data;
+
+       win_data = (EditWinData *)window_data;
+       glade_xml = win_data->glade_xml;
+
+       w = glade_xml_get_widget(glade_xml, "subject_entry");
+       gtk_entry_set_text(GTK_ENTRY(w), subject);
+
+       return TRUE;
+}
+
+
+gboolean
+modest_ui_editor_window_set_body(const gchar *body, gpointer window_data)
+{
+       GladeXML *glade_xml;
+       GtkWidget *body_view;
+       GtkTextBuffer *buf;
+       EditWinData *win_data;
+
+       win_data = (EditWinData *)window_data;
+       glade_xml = win_data->glade_xml;
+
+       body_view = glade_xml_get_widget(glade_xml, "body_view");
+       buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(body_view));
+
+       gtk_text_buffer_set_text(GTK_TEXT_BUFFER(buf), body, -1);
+
+       return TRUE;
+}
+
+
+gboolean
+modest_ui_editor_window_update_attachments(gpointer window_data)
+{
+       GladeXML *glade_xml;
+       
+       glade_xml = ((EditWinData *) window_data)->glade_xml;
+
+       //body_view = glade_xml_get_widget(glade_xml, "body_view");
+       
+       return TRUE;
+}
+
+
+static
+void on_editor_entry_changed(GtkEditable *editable,
+                                            gpointer     user_data)
+{
+       GtkWidget *edit_win;
+       EditWinData *windata;
+
+       edit_win = (GtkWidget *)user_data;
+       windata = (EditWinData *)modest_editor_window_get_data(MODEST_EDITOR_WINDOW(edit_win));
+
+       modest_editor_window_set_modified(MODEST_EDITOR_WINDOW(edit_win), TRUE);
+}
+
+
+static
+void on_editor_buffer_changed (GtkTextBuffer *textbuffer,
+                                            gpointer       user_data)
+{
+       GtkWidget *edit_win;
+       
+       edit_win = (GtkWidget *)user_data;
+       modest_editor_window_set_modified(MODEST_EDITOR_WINDOW(edit_win), TRUE);
+}
+
+
+static void
+new_editor_with_presets (ModestUI *modest_ui, const gchar *to_header,
+                                                       const gchar *cc_header, const gchar *bcc_header,
+                                                       const gchar *subject_header, const gchar *body,
+                            const GList *attachments)
+{
+       GtkWidget *edit_win;
+       GladeXML *glade_xml;
+       GtkWidget *btn, *w;
+       GtkTextBuffer *buf;
+       EditWinData *windata;
+       ModestUIPrivate *priv;
+       gint height, width;
+
+       g_return_if_fail (modest_ui);
+
+       edit_win = modest_editor_window_new(modest_ui);
+       windata = (EditWinData *)modest_editor_window_get_data(MODEST_EDITOR_WINDOW(edit_win));
+       g_return_if_fail(windata);
+
+       glade_xml = windata->glade_xml;
+       btn = glade_xml_get_widget (glade_xml, "toolb_send");
+       g_signal_connect (btn, "clicked", G_CALLBACK(on_send_button_clicked),
+                         edit_win);
+       btn = glade_xml_get_widget (glade_xml, "toolb_attach");
+       g_signal_connect (btn, "clicked", G_CALLBACK(on_attach_button_clicked),
+                         edit_win);
+
+       w = glade_xml_get_widget (glade_xml, "to_entry");
+       g_signal_connect(w, "changed", G_CALLBACK(on_editor_entry_changed), edit_win);
+       w = glade_xml_get_widget (glade_xml, "subject_entry");
+       g_signal_connect(w, "changed", G_CALLBACK(on_editor_entry_changed), edit_win);
+       w = glade_xml_get_widget (glade_xml, "body_view");
+       buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(w));
+       g_signal_connect(buf, "changed", G_CALLBACK(on_editor_buffer_changed), edit_win);
+
+       g_signal_connect (edit_win, "destroy-event", G_CALLBACK(close_edit_window),
+                         edit_win);
+       g_signal_connect (edit_win, "delete-event", G_CALLBACK(close_edit_window),
+                         edit_win);
+
+       priv = MODEST_UI_GET_PRIVATE(modest_ui);
+       height = modest_conf_get_int (priv->modest_conf,
+                                         MODEST_CONF_EDIT_WINDOW_HEIGHT, NULL);
+       width  = modest_conf_get_int (priv->modest_conf,
+                                         MODEST_CONF_EDIT_WINDOW_WIDTH, NULL);
+
+       // g_message("new editor win@%dx%d", width, height);
+
+       gtk_widget_set_usize (GTK_WIDGET(edit_win), width, height);
+       if (strlen(subject_header) > 0)
+               gtk_window_set_title (GTK_WINDOW(edit_win), subject_header);
+       else
+               gtk_window_set_title (GTK_WINDOW(edit_win), _("Untitled"));
+
+       modest_window_mgr_register(priv->modest_window_mgr, G_OBJECT(edit_win), MODEST_EDIT_WINDOW, 0);
+
+       modest_editor_window_set_to_header(MODEST_EDITOR_WINDOW(edit_win), to_header);
+       modest_editor_window_set_cc_header(MODEST_EDITOR_WINDOW(edit_win), cc_header);
+       modest_editor_window_set_bcc_header(MODEST_EDITOR_WINDOW(edit_win), bcc_header);
+       modest_editor_window_set_subject_header(MODEST_EDITOR_WINDOW(edit_win), subject_header);
+       modest_editor_window_set_body(MODEST_EDITOR_WINDOW(edit_win), body);
+       modest_editor_window_set_attachments(MODEST_EDITOR_WINDOW(edit_win), attachments);
+
+       modest_editor_window_set_modified(MODEST_EDITOR_WINDOW(edit_win), FALSE);
+
+       gtk_widget_show(edit_win);
+}
+
+
+void
+on_new_mail_clicked (GtkWidget *widget, gpointer user_data)
+{
+       ModestUI *modest_ui = (ModestUI *) modest_ui;
+
+       new_editor_with_presets(modest_ui, "", "", "", "", "", NULL);
+}
+
+
+void
+quoted_send_msg (ModestUI *modest_ui, quoted_send_type qstype)
+{
+       GtkTreeSelection *sel;
+       GtkTreeModel *model;
+       GtkTreeIter iter;
+
+       TnyMsgHeaderIface *header;
+
+       ModestTnyHeaderTreeView *header_view;
+       ModestTnyMsgView *msg_view;
+       ModestUIPrivate *priv;
+
+       const TnyMsgIface *msg;
+       const TnyMsgFolderIface *folder;
+       GString *re_sub;
+       const gchar *subject, *from;
+       gchar *unquoted, *quoted;
+       time_t sent_date;
+       gint line_limit = 76;
+       
+       GList *attachments = NULL;
+
+       g_return_if_fail (modest_ui);
+
+       priv = MODEST_UI_GET_PRIVATE(modest_ui);
+
+       msg_view = MODEST_TNY_MSG_VIEW(priv->message_view);
+       g_return_if_fail (msg_view);
+
+       header_view = MODEST_TNY_HEADER_TREE_VIEW(priv->header_view);
+       g_return_if_fail (header_view);
+
+       sel = gtk_tree_view_get_selection (GTK_TREE_VIEW(header_view));
+       g_return_if_fail (sel);
+
+       if (!gtk_tree_selection_get_selected (sel, &model, &iter)) {
+               g_warning("nothing to reply to");
+               return;
+       }
+
+       gtk_tree_model_get (model, &iter,
+                           TNY_MSG_HEADER_LIST_MODEL_INSTANCE_COLUMN,
+                           &header, -1);
+
+       if (!header) {
+               g_warning("no header");
+               return;
+       }
+
+       folder = tny_msg_header_iface_get_folder (TNY_MSG_HEADER_IFACE(header));
+       if (!folder) {
+               g_warning ("cannot find folder");
+               return;
+       }
+
+       msg = tny_msg_folder_iface_get_message (TNY_MSG_FOLDER_IFACE(folder), header);
+       if (!msg) {
+               g_warning ("cannot find msg");
+               return;
+       }
+
+       subject = tny_msg_header_iface_get_subject(header);
+       re_sub = g_string_new(subject);
+       /* FIXME: honor replyto, cc */
+       from = tny_msg_header_iface_get_from(header);
+       sent_date = tny_msg_header_iface_get_date_sent(header);
+
+       unquoted = modest_tny_msg_view_get_selected_text(msg_view);
+       quoted = modest_tny_msg_actions_quote(msg, from, sent_date, line_limit, unquoted);
+
+       switch (qstype) {
+               case QUOTED_SEND_REPLY:
+                       g_string_prepend(re_sub, _("Re: "));
+                       new_editor_with_presets(modest_ui, from, /* cc */ "", /* bcc */ "", re_sub->str, quoted, attachments);
+                       break;
+               case QUOTED_SEND_FORWARD:
+                       attachments = modest_tny_attachment_new_list_from_msg(msg, FALSE);
+                       g_string_prepend(re_sub, _("Fwd: "));
+                       new_editor_with_presets(modest_ui, /* from */ "", /* cc */ "", /* bcc */ "", re_sub->str, quoted, attachments);
+                       break;
+               case QUOTED_SEND_FORWARD_ATTACHED:
+                       attachments = modest_tny_attachment_new_list_from_msg(msg, TRUE);
+                       g_string_prepend(re_sub, _("Fwd: "));
+                       new_editor_with_presets(modest_ui, /* from */ "", /* cc */ "", /* bcc */ "", re_sub->str, "", attachments);
+                       break;
+               default:
+                       break;
+       }
+       g_free(quoted);
+       g_free(unquoted);
+       g_string_free(re_sub, TRUE);
+}
+
+
+static void
+on_attach_button_clicked (GtkWidget *widget, ModestEditorWindow *modest_editwin)
+{
+       /* open file selector */
+       GtkWidget *dialog;
+       ModestTnyAttachment *attachment;
+       gchar *filename = NULL;
+       
+       dialog = gtk_file_chooser_dialog_new ("Open File",
+                                                                                 GTK_WINDOW(modest_editwin),
+                                                                                 GTK_FILE_CHOOSER_ACTION_OPEN,
+                                                                                 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+                                                                                 GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+                                                                                 NULL);
+
+       if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
+       {
+
+               filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+               printf ("file:%s\n", filename);
+       }
+       gtk_widget_destroy (dialog);
+      
+       /* check file */
+       if (!filename)
+               return;
+       
+       attachment = modest_tny_attachment_new();
+       modest_tny_attachment_set_filename(attachment, filename);
+       modest_tny_attachment_guess_mime_type(attachment);
+       
+       modest_editor_window_attach_file(modest_editwin, attachment);
+       
+       g_free (filename);
+}
+
+
+static void
+on_send_button_clicked (GtkWidget *widget, ModestEditorWindow *modest_editwin)
+{
+       ModestTnyTransportActions *actions;
+       ModestUI *modest_ui;
+       ModestUIPrivate *priv;
+       GtkWidget *to_entry, *subject_entry, *body_view;
+       const gchar *to, *subject, *email_from;
+       gchar *body;
+       GtkTextIter start, end;
+       GtkTextBuffer *buf;
+       TnyAccountStoreIface *account_store;
+       const GList *transport_accounts;
+       TnyTransportAccountIface *transport_account;
+       ModestIdentityMgr *id_mgr;
+       EditWinData *win_data;
+       GList * attachments;
+
+
+       win_data = modest_editor_window_get_data(modest_editwin);
+       modest_ui = win_data->modest_ui;
+
+       g_return_if_fail (modest_ui);
+
+       actions = MODEST_TNY_TRANSPORT_ACTIONS
+               (modest_tny_transport_actions_new ());
+
+       priv = MODEST_UI_GET_PRIVATE(modest_ui);
+
+       account_store = priv->account_store;
+       transport_accounts =
+               tny_account_store_iface_get_transport_accounts (account_store);
+       if (!transport_accounts) {
+               g_message ("cannot send message: no transport account defined");
+               return;
+       } else /* take the first one! */
+               transport_account =
+                       TNY_TRANSPORT_ACCOUNT_IFACE(transport_accounts->data);
+
+       to_entry      = glade_xml_get_widget (win_data->glade_xml, "to_entry");
+       subject_entry = glade_xml_get_widget (win_data->glade_xml, "subject_entry");
+       body_view     = glade_xml_get_widget (win_data->glade_xml, "body_view");
+
+       to      = gtk_entry_get_text (GTK_ENTRY(to_entry));
+       subject = gtk_entry_get_text (GTK_ENTRY(subject_entry));
+
+       buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(body_view));
+       gtk_text_buffer_get_bounds (buf, &start, &end);
+       body    = gtk_text_buffer_get_text (buf, &start, &end, FALSE);
+
+       id_mgr = priv->modest_id_mgr;
+       email_from = modest_identity_mgr_get_identity_string(id_mgr,
+                                                            MODEST_IDENTITY_DEFAULT_IDENTITY,
+                                                            MODEST_IDENTITY_EMAIL, NULL);
+       attachments = modest_editor_window_get_attachments(modest_editwin);
+       if (!email_from)
+               email_from = "";
+       
+       g_message("sending \"%s\" %s ==> %s", subject, email_from, to);
+
+       modest_tny_transport_actions_send_message (actions,
+                                                  transport_account,
+                                                  email_from,
+                                                  to, "", "", subject,
+                                                  body,
+                                                  attachments);
+
+       modest_tny_attachment_free_list(attachments);
+       g_free (body);
+       g_object_unref (G_OBJECT(actions));
+
+       gtk_widget_hide (GTK_WIDGET(modest_editwin));
+       modest_window_mgr_unregister(priv->modest_window_mgr, G_OBJECT(modest_editwin));
+       if (GTK_IS_WIDGET(modest_editwin)) {
+               gtk_widget_destroy(GTK_WIDGET(modest_editwin));
+       } else
+               g_warning("editor window has vanished!");
+}
diff --git a/src/hildon/modest-ui-message-editor.h b/src/hildon/modest-ui-message-editor.h
new file mode 100644 (file)
index 0000000..39ca412
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef _MODEST_UI_MESSAGE_EDITOR_H
+#define _MODEST_UI_MESSAGE_EDITOR_H
+
+typedef enum {
+       QUOTED_SEND_REPLY,
+       QUOTED_SEND_REPLY_ALL,
+       QUOTED_SEND_FORWARD,
+       QUOTED_SEND_FORWARD_ATTACHED
+} quoted_send_type;
+
+/**
+ * quoted_send_msg:
+ * @modest_ui: a ModestUI instance
+ * @qstype: determines whether to REPLY, REPLY_ALL or FORWARD
+ *
+ * open a new editor window quoting the currently selected message
+ * the quote type determines which parts are to be quoted
+ */
+void quoted_send_msg (ModestUI *modest_ui, quoted_send_type qstype);
+
+/**
+ * on_new_mail_clicked:
+ * @widget: the button widget that received the signal
+ * @user_data: pointer to user-data, here ModestUI
+ *
+ * callback used in main-window
+ * called when user presses the "New Mail" button
+ */
+void on_new_mail_clicked (GtkWidget *widget, gpointer user_data);
+
+#endif /* _MODEST_UI_MESSAGE_EDITOR_H */
diff --git a/src/hildon/modest-ui-message-viewer.c b/src/hildon/modest-ui-message-viewer.c
new file mode 100644 (file)
index 0000000..4a50fbb
--- /dev/null
@@ -0,0 +1,200 @@
+#include <gtk/gtk.h>
+#include <glade/glade.h>
+#include <glib/gi18n.h>
+#include <string.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif /*HAVE_CONFIG_H*/
+
+/* TODO: put in auto* */
+#include <tny-text-buffer-stream.h>
+#include <tny-msg-folder.h>
+
+#include "../modest-ui.h"
+#include "../modest-window-mgr.h"
+#include "../modest-account-mgr.h"
+#include "../modest-account-mgr.h"
+#include "../modest-identity-mgr.h"
+
+#include "../modest-tny-account-store.h"
+#include "../modest-tny-folder-tree-view.h"
+#include "../modest-tny-header-tree-view.h"
+#include "../modest-tny-msg-view.h"
+#include "../modest-tny-transport-actions.h"
+#include "../modest-tny-store-actions.h"
+
+#include "../modest-text-utils.h"
+#include "../modest-tny-msg-actions.h"
+
+#include "../modest-viewer-window.h"
+
+#include "modest-ui-glade.h"
+#include "modest-ui-message-viewer.h"
+
+
+
+typedef struct {
+       ModestUI *modest_ui;
+       ModestViewerWindow *viewer_win;
+       GladeXML *glade_xml;
+} ViewerWinData;
+
+
+GtkContainer
+*modest_ui_new_viewer_window (ModestUI *modest_ui, GtkWidget *msg_view, TnyMsgIface *msg, gpointer *user_data)
+{
+       GtkWidget       *top_container;
+       GladeXML        *glade_xml;
+       ViewerWinData   *win_data;
+       GtkWidget       *paned;
+
+       glade_xml = glade_xml_new(MODEST_GLADE, "viewer_top_container", NULL);
+       if (!glade_xml)
+               return NULL;
+
+       win_data = g_malloc(sizeof(ViewerWinData));
+       win_data->modest_ui = modest_ui;
+       win_data->glade_xml = glade_xml;
+
+       *user_data = win_data;
+
+       top_container = glade_xml_get_widget(glade_xml, "viewer_top_container");
+       if (!top_container) {
+               g_object_unref(G_OBJECT(glade_xml));
+               return NULL;
+       }
+
+       if (!GTK_IS_WIDGET(msg_view))
+               return NULL;
+       paned = glade_xml_get_widget(glade_xml, "vpaned3");
+       gtk_paned_add2(GTK_PANED(paned), msg_view);
+       gtk_widget_show_all(msg_view);
+
+       return GTK_CONTAINER(top_container);
+}
+
+
+static void
+close_viewer_window(GtkWidget *win, GdkEvent *event, gpointer data)
+{
+       ModestViewerWindow *viewer_win;
+       ModestUIPrivate *priv;
+       ViewerWinData *win_data;
+
+       viewer_win = (ModestViewerWindow *)data;
+       win_data = modest_viewer_window_get_data(viewer_win);
+       priv = MODEST_UI_GET_PRIVATE(win_data->modest_ui);
+
+       modest_window_mgr_unregister(priv->modest_window_mgr, G_OBJECT(viewer_win));
+       gtk_widget_hide (GTK_WIDGET(viewer_win));
+       gtk_widget_destroy(GTK_WIDGET(viewer_win));
+}
+
+
+static void
+open_message_viewer_window(ModestUI *modest_ui)
+{
+       GtkWidget *viewer_win;
+       ModestUIPrivate *priv;
+       gint width, height;
+       ViewerWinData *windata;
+       GtkWidget *paned;
+       GtkTreeSelection *sel;
+       GtkTreeModel *model;
+       GtkTreeIter iter;
+       GtkScrolledWindow *scroll;
+       ModestTnyHeaderTreeView *header_view;
+       TnyMsgHeaderIface *header;
+       const TnyMsgFolderIface *folder;
+       TnyMsgIface *msg;
+       const gchar *subject, *to, *from;
+       time_t sent_date;
+       gchar date_str[101];
+       GtkWidget *w;
+
+       priv = MODEST_UI_GET_PRIVATE(modest_ui);
+       /* FIXME: maybe use seperate viewer defaults? */
+       height = modest_conf_get_int (priv->modest_conf, MODEST_CONF_EDIT_WINDOW_HEIGHT, NULL);
+       width  = modest_conf_get_int (priv->modest_conf, MODEST_CONF_EDIT_WINDOW_WIDTH, NULL);
+
+       paned = glade_xml_get_widget (priv->glade_xml,"mail_paned");
+       g_return_if_fail (paned);
+
+       scroll = GTK_SCROLLED_WINDOW(gtk_paned_get_child1 (GTK_PANED(paned)));
+        g_return_if_fail (scroll);
+
+       header_view = MODEST_TNY_HEADER_TREE_VIEW(gtk_bin_get_child (GTK_BIN(scroll)));
+       g_return_if_fail (header_view);
+
+       sel = gtk_tree_view_get_selection (GTK_TREE_VIEW(header_view));
+       g_return_if_fail (sel);
+
+       if (!gtk_tree_selection_get_selected (sel, &model, &iter)) {
+               g_warning("nothing to display");
+               return;
+       }
+
+       gtk_tree_model_get (model, &iter,
+               TNY_MSG_HEADER_LIST_MODEL_INSTANCE_COLUMN, &header, -1);
+
+       if (!header) {
+               g_warning("no header");
+               return;
+       }
+
+       folder = tny_msg_header_iface_get_folder (TNY_MSG_HEADER_IFACE(header));
+       if (!folder) {
+               g_warning ("cannot find folder");
+               return;
+       }
+
+       msg = (TnyMsgIface *) tny_msg_folder_iface_get_message (TNY_MSG_FOLDER_IFACE(folder), header);
+       if (!msg) {
+               g_warning ("cannot find msg");
+               return;
+       }
+
+       viewer_win = modest_viewer_window_new(modest_ui, msg);
+       windata = (ViewerWinData *)modest_viewer_window_get_data(MODEST_VIEWER_WINDOW(viewer_win));
+       g_return_if_fail(windata);
+
+       subject = tny_msg_header_iface_get_subject(header);
+       from = tny_msg_header_iface_get_from(header);
+       to = tny_msg_header_iface_get_to(header);
+       sent_date = tny_msg_header_iface_get_date_sent(header);
+       strftime (date_str, 100, "%c", localtime (&sent_date));
+
+       w = glade_xml_get_widget (windata->glade_xml, "from");
+       gtk_label_set_text(GTK_LABEL(w), from);
+       w = glade_xml_get_widget (windata->glade_xml, "to");
+       gtk_label_set_text(GTK_LABEL(w), to);
+       w = glade_xml_get_widget (windata->glade_xml, "subject");
+       gtk_label_set_text(GTK_LABEL(w), subject);
+       w = glade_xml_get_widget (windata->glade_xml, "date");
+       gtk_label_set_text(GTK_LABEL(w), date_str);
+
+       // g_message("new viewer win@%dx%d", width, height);
+       gtk_widget_set_usize (GTK_WIDGET(viewer_win), width, height);
+       gtk_widget_show(viewer_win);
+       modest_window_mgr_register(priv->modest_window_mgr, G_OBJECT(viewer_win), MODEST_VIEW_WINDOW, 0);
+       g_signal_connect (viewer_win, "destroy-event", G_CALLBACK(close_viewer_window), viewer_win);
+       g_signal_connect (viewer_win, "delete-event", G_CALLBACK(close_viewer_window), viewer_win);
+}
+
+
+void
+on_open_message_clicked (GtkWidget *widget, gpointer user_data)
+{
+       ModestUI *modest_ui = (ModestUI *)user_data;
+
+       open_message_viewer_window(modest_ui);
+}
+
+void
+on_message_activated (GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data)
+{
+       ModestUI *modest_ui = (ModestUI *)user_data;
+
+       open_message_viewer_window(modest_ui);
+}
diff --git a/src/hildon/modest-ui-message-viewer.h b/src/hildon/modest-ui-message-viewer.h
new file mode 100644 (file)
index 0000000..447aaf3
--- /dev/null
@@ -0,0 +1,17 @@
+
+#ifndef _MODEST_UI_MESSAGE_VIEWER_H
+#define _MODEST_UI_MESSAGE_VIEWER_H
+
+/*
+ * callback used in main-window
+ * called when the menu-item "Open" is activated
+ */
+void on_open_message_clicked (GtkWidget *widget, gpointer user_data);
+
+/*
+ * callback used in main-window
+ * called when double clicking on a message header
+ */
+void on_message_activated (GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data);
+
+#endif /* _MODEST_UI_MESSAGE_VIEWER_H */
diff --git a/src/hildon/modest-ui-wizard.c b/src/hildon/modest-ui-wizard.c
new file mode 100644 (file)
index 0000000..3edf494
--- /dev/null
@@ -0,0 +1,303 @@
+/* modest-ui-wizard.c */
+
+/* insert (c)/licensing information) */
+
+#include <gtk/gtk.h>
+#include <glade/glade.h>
+#include <glib/gi18n.h>
+#include <string.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif /*HAVE_CONFIG_H*/
+
+#include "../modest-account-mgr.h"
+#include "../modest-identity-mgr.h"
+
+#include "modest-ui-glade.h"
+#include "modest-ui-wizard.h"
+
+
+static void wizard_incoming_button_toggled(GtkWidget *button,
+                                          gpointer userdata) {
+       GtkWidget *awidget;
+       if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button))==TRUE) {
+               awidget=glade_xml_get_widget(GLADE_XML(userdata), "AWOutUserNameEntry");
+               gtk_widget_set_sensitive(GTK_WIDGET(awidget), FALSE);
+               awidget=glade_xml_get_widget(GLADE_XML(userdata), "AWOutPasswordEntry");
+               gtk_widget_set_sensitive(GTK_WIDGET(awidget), FALSE);
+       }
+       else {
+               awidget=glade_xml_get_widget(GLADE_XML(userdata), "AWOutUserNameEntry");
+               gtk_widget_set_sensitive(GTK_WIDGET(awidget), TRUE);
+               awidget=glade_xml_get_widget(GLADE_XML(userdata), "AWOutPasswordEntry");
+               gtk_widget_set_sensitive(GTK_WIDGET(awidget), TRUE);
+       }
+}
+
+void wizard_missing_notification(GtkWindow *parent, gchar *info_message) {
+        GtkWidget *DenyDialog;
+
+        DenyDialog=gtk_message_dialog_new(parent,
+                                          GTK_DIALOG_MODAL,
+                                          GTK_MESSAGE_INFO,
+                                          GTK_BUTTONS_OK,
+                                          "%s",
+                                          info_message);
+
+        gtk_dialog_run(GTK_DIALOG(DenyDialog));
+
+        gtk_widget_destroy(DenyDialog);
+}
+
+gchar *get_text_from_combobox (GtkWidget *combobox){
+        /* Remember to free the returned variable after usage! */
+
+       GtkTreeModel *model = gtk_combo_box_get_model(GTK_COMBO_BOX(combobox));
+       GtkTreeIter iter;
+
+       gchar *value;
+
+       if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(combobox), &iter)) {
+               gtk_tree_model_get(GTK_TREE_MODEL(model),
+                                  &iter,
+                                  0, &value,
+                                  -1);
+       }
+
+        return value;
+}
+
+
+gboolean advance_sanity_check(GladeXML *glade_xml, gint cp) {
+        gchar *tmptext;
+
+       /* FIXME:
+        * all calls to wizard_missing_notification lack the parent window.
+        */
+
+        switch (cp) {
+       case 1:
+               /* Only needed if the "mailbox name" field is used in the first page of the wizard.
+                 * if (strlen(gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWMailboxnameEntry"))))==0)
+                 * {
+                 *         wizard_missing_notification(NULL, "Please enter mailbox name");
+                 *         return FALSE;
+                * }
+                */
+               if (strlen(gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWEMailAddressEntry"))))==0) {
+                       wizard_missing_notification(NULL, "Please enter the E-Mail address.");
+                       return FALSE;
+               }
+                return TRUE;
+               break;
+       case 2:
+                tmptext=gtk_combo_box_get_active_text(GTK_COMBO_BOX(glade_xml_get_widget(glade_xml, "AWMailboxtypeComboBox")));
+                if (tmptext==NULL) {
+                        wizard_missing_notification(NULL, "Please select mailbox type.");
+                        return FALSE;
+               }
+               g_free(tmptext);
+               if (strlen(gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWInServerComboEntry"))))==0) {
+                       wizard_missing_notification(NULL, "Please specify incoming server adress.");
+                       return FALSE;
+               }
+               if (strlen(gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWUserNameEntry"))))==0) {
+                       wizard_missing_notification(NULL, "Please enter user name.");
+                       return FALSE;
+               }
+               return TRUE;
+               break;
+       case 3:
+               if (strlen(gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWOutServerComboEntry"))))==0) {
+                       wizard_missing_notification(NULL, "Please specify outgoing server address.");
+                       return FALSE;
+               }
+               /* smtp servers may work without a username
+               if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(glade_xml, "AWUseIncomingCheckButton")))==FALSE
+                   && strlen(gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWOutUserNameEntry"))))==0) {
+                       wizard_missing_notification(NULL, "Please enter user name.");
+                       return FALSE;
+               } */
+
+               return TRUE;
+               break;
+        }
+
+        return FALSE;
+}
+
+gchar *search_unused_account_or_identity_name(gpointer mgr, gchar *draft) {
+       GString *tmpaccount_name;
+       gint counter;
+
+       tmpaccount_name=g_string_new("");
+       g_string_printf(tmpaccount_name, "%s", draft);
+       if(MODEST_IS_ACCOUNT_MGR(mgr)) {
+               for(counter=0; modest_account_mgr_server_account_exists(mgr, tmpaccount_name->str, NULL); counter++)
+                       g_string_printf(tmpaccount_name, "%s%d", draft, counter);
+       }
+       else
+               for(counter=0;      modest_identity_mgr_identity_exists(mgr, tmpaccount_name->str, NULL); counter++)
+                       g_string_printf(tmpaccount_name, "%s%d", draft, counter);
+
+       return g_string_free(tmpaccount_name, FALSE);
+}
+
+gboolean wizard_account_add(GladeXML *glade_xml, ModestUI *modest_ui)
+{
+       ModestAccountMgr *acc_mgr;
+       ModestIdentityMgr *id_mgr;
+        gchar *store;
+        gchar *transport;
+        gchar *identity;
+       ModestUIPrivate *priv;
+       ModestConf *conf;
+       gchar *tmptext;
+       gchar *tmptext2;
+
+       g_return_val_if_fail (MODEST_IS_UI(modest_ui), FALSE);
+       priv = MODEST_UI_GET_PRIVATE(MODEST_UI(modest_ui));
+       conf = priv->modest_conf;
+
+       acc_mgr = priv->modest_acc_mgr;
+       id_mgr = priv->modest_id_mgr;
+
+       tmptext2=get_text_from_combobox(glade_xml_get_widget(glade_xml, "AWMailboxtypeComboBox"));
+       tmptext=g_utf8_strdown(tmptext2, -1);
+       g_free(tmptext2);
+
+       store=search_unused_account_or_identity_name(acc_mgr, "incoming");
+       modest_account_mgr_add_server_account (acc_mgr,
+                                              store,
+                                              gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWInServerComboEntry"))),
+                                              gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWUserNameEntry"))),
+                                              gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWPasswordEntry"))),
+                                              tmptext);
+       g_free(store);
+       g_free(tmptext);
+
+        transport=search_unused_account_or_identity_name(acc_mgr, "outgoing");
+       if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(glade_xml, "AWUseIncomingCheckButton")))==TRUE)
+               modest_account_mgr_add_server_account (acc_mgr,
+                                                      transport,
+                                                      gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWOutServerComboEntry"))),
+                                                      gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWUserNameEntry"))),
+                                                      gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWPasswordEntry"))),
+                                                      "smtp");
+       else
+               modest_account_mgr_add_server_account (acc_mgr,
+                                                      transport,
+                                                      gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWOutServerComboEntry"))),
+                                                      gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWOutUserNameEntry"))),
+                                                      gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWOutPasswordEntry"))),
+                                                      "smtp");
+
+       identity=search_unused_account_or_identity_name(id_mgr, MODEST_IDENTITY_DEFAULT_IDENTITY);
+       if (!modest_identity_mgr_add_identity (id_mgr,
+                                               identity,
+                                              gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWRealNameEntry"))),
+                                              gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "AWEMailAddressEntry"))),
+                                              "", "", FALSE, transport, FALSE ))
+               g_warning ("failed to add default identity");
+
+       g_free(transport);
+       g_free(identity);
+       return TRUE;
+}
+
+
+void wizard_account_dialog(ModestUI *modest_ui)
+{
+       GladeXML *glade_xml;
+       GtkWidget *dialog;
+       ModestUIPrivate *priv;
+       GtkWidget *finish_button;
+       GtkWidget *back_button;
+       GtkWidget *next_button;
+       GtkWidget *cancel_button;
+       GtkWidget *notebook;
+       GtkWidget *use_incoming_button;
+       gint cp;
+       gint result;
+       gboolean account_added_successfully=FALSE;
+
+       g_return_if_fail(MODEST_IS_UI(modest_ui));
+       priv = MODEST_UI_GET_PRIVATE(MODEST_UI(modest_ui));
+
+       glade_xml = glade_xml_new(MODEST_GLADE, "account_wizard", NULL);
+
+       dialog = glade_xml_get_widget(glade_xml, "account_wizard");
+
+       gtk_widget_show_all(dialog);
+
+       finish_button=glade_xml_get_widget(glade_xml, "AWFinishButton");
+       back_button=glade_xml_get_widget(glade_xml, "AWBackButton");
+       next_button=glade_xml_get_widget(glade_xml, "AWNextButton");
+       cancel_button=glade_xml_get_widget(glade_xml, "AWCancelButton");
+       notebook=glade_xml_get_widget(glade_xml, "AWNotebook");
+
+       gtk_widget_set_sensitive(finish_button, FALSE);
+
+       use_incoming_button=glade_xml_get_widget(glade_xml, "AWUseIncomingCheckButton");
+       g_signal_connect(use_incoming_button,
+                        "toggled",
+                        G_CALLBACK(wizard_incoming_button_toggled),
+                        glade_xml);
+
+       /* First page not used currently. It's reserved for the account preset. */
+       gtk_notebook_set_current_page (GTK_NOTEBOOK(notebook), 1);
+
+       do {
+               cp=gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook));
+               switch (cp) {
+               case 1:
+                       gtk_widget_set_sensitive(back_button, FALSE);
+                       break;
+               case 2:
+                       gtk_widget_set_sensitive(back_button, TRUE);
+                       break;
+               case 3:
+                       gtk_widget_set_sensitive(finish_button, FALSE);
+                       gtk_widget_set_sensitive(next_button, TRUE);
+                       break;
+               case 4:
+                       gtk_widget_set_sensitive(finish_button, TRUE);
+                       gtk_widget_set_sensitive(next_button, FALSE);
+                       break;
+               default:
+                       g_error("I'm on page %d of notebook AWNotebook, which shouldn't have happened. Pulling emergency breaks.", cp);
+                       break;
+               }
+
+               result=gtk_dialog_run(GTK_DIALOG(dialog));
+
+               switch (result) {
+               case 1:
+                       if (advance_sanity_check(glade_xml, cp)==TRUE)
+                               gtk_notebook_next_page(GTK_NOTEBOOK(notebook));
+                       break;
+               case 2:
+                       gtk_notebook_prev_page(GTK_NOTEBOOK(notebook));
+                       break;
+               case GTK_RESPONSE_ACCEPT:
+                       account_added_successfully=wizard_account_add(glade_xml, modest_ui);
+                       break;
+               default:
+                       account_added_successfully=FALSE;
+                }
+        }
+        while(result!=GTK_RESPONSE_DELETE_EVENT && result!=GTK_RESPONSE_CANCEL && account_added_successfully!=TRUE);
+
+       gtk_widget_destroy(dialog);
+       g_object_unref(glade_xml);
+}
+
+void new_wizard_account (GtkWidget *widget,
+                        gpointer user_data)
+{
+       /* This will probably never be used to modify any existing account. */
+       wizard_account_dialog(MODEST_UI(user_data));
+}
+
+
diff --git a/src/hildon/modest-ui-wizard.h b/src/hildon/modest-ui-wizard.h
new file mode 100644 (file)
index 0000000..1086831
--- /dev/null
@@ -0,0 +1,17 @@
+/* modest-ui-wizard.h */
+/* insert (c)/licensing information) */
+
+#ifndef __MODEST_UI_WIZARD_H__
+#define __MODEST_UI_WIZARD_H__
+
+#include "modest-ui-glade.h"
+
+void
+wizard_account_dialog(ModestUI *modest_ui);
+
+void
+new_wizard_account (GtkWidget *,
+                    gpointer);
+
+#endif /* __MODEST_UI_WIZARD_H__ */
+
diff --git a/src/hildon/modest-ui.c b/src/hildon/modest-ui.c
new file mode 100644 (file)
index 0000000..a34aac5
--- /dev/null
@@ -0,0 +1,298 @@
+/* modest-ui.c */
+
+/* insert (c)/licensing information) */
+
+#include <gtk/gtk.h>
+#include <glade/glade.h>
+#include <glib/gi18n.h>
+#include <string.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif /*HAVE_CONFIG_H*/
+
+/* TODO: put in auto* */
+#include <tny-text-buffer-stream.h>
+#include <tny-msg-folder.h>
+
+#include "../modest-ui.h"
+#include "../modest-window-mgr.h"
+#include "../modest-account-mgr.h"
+#include "../modest-account-mgr.h"
+#include "../modest-identity-mgr.h"
+
+#include "../modest-tny-account-store.h"
+#include "../modest-tny-folder-tree-view.h"
+#include "../modest-tny-header-tree-view.h"
+#include "../modest-tny-msg-view.h"
+#include "../modest-tny-transport-actions.h"
+#include "../modest-tny-store-actions.h"
+
+#include "../modest-text-utils.h"
+#include "../modest-tny-msg-actions.h"
+
+#include "../modest-editor-window.h"
+
+#include "modest-ui-glade.h"
+#include "modest-ui-wizard.h"
+
+/* 'private'/'protected' functions */
+static void   modest_ui_class_init     (ModestUIClass *klass);
+static void   modest_ui_init           (ModestUI *obj);
+static void   modest_ui_finalize       (GObject *obj);
+
+static void   modest_ui_window_destroy    (GtkWidget *win, GdkEvent *event, gpointer data);
+static void   modest_ui_last_window_closed (GObject *obj, gpointer data);
+
+static void   on_password_requested (ModestTnyAccountStore *account_store, const gchar *account_name, gpointer user_data);
+
+/* list my signals */
+enum {
+       /* MY_SIGNAL_1, */
+       /* MY_SIGNAL_2, */
+       LAST_SIGNAL
+};
+
+/* globals */
+static GObjectClass *parent_class = NULL;
+
+
+GType
+modest_ui_get_type (void)
+{
+       static GType my_type = 0;
+       if (!my_type) {
+               static const GTypeInfo my_info = {
+                       sizeof(ModestUIClass),
+                       NULL,           /* base init */
+                       NULL,           /* base finalize */
+                       (GClassInitFunc) modest_ui_class_init,
+                       NULL,           /* class finalize */
+                       NULL,           /* class data */
+                       sizeof(ModestUI),
+                       1,              /* n_preallocs */
+                       (GInstanceInitFunc) modest_ui_init,
+               };
+               my_type = g_type_register_static (G_TYPE_OBJECT,
+                                                 "ModestUI",
+                                                 &my_info, 0);
+       }
+       return my_type;
+}
+
+
+static void
+modest_ui_class_init (ModestUIClass *klass)
+{
+       GObjectClass *gobject_class;
+       gobject_class = (GObjectClass*) klass;
+
+       parent_class            = g_type_class_peek_parent (klass);
+       gobject_class->finalize = modest_ui_finalize;
+
+       g_type_class_add_private (gobject_class, sizeof(ModestUIPrivate));
+
+       /* signal definitions go here, e.g.: */
+/*     signals[MY_SIGNAL_1] = */
+/*             g_signal_new ("my_signal_1",....); */
+/*     signals[MY_SIGNAL_2] = */
+/*             g_signal_new ("my_signal_2",....); */
+/*     etc. */
+}
+
+
+static void
+modest_ui_init (ModestUI *obj)
+{
+       ModestUIPrivate *priv = MODEST_UI_GET_PRIVATE(obj);
+
+       priv->modest_acc_mgr    = NULL;
+       priv->modest_id_mgr     = NULL;
+       priv->modest_conf       = NULL;
+       priv->modest_window_mgr = NULL;
+       priv->glade_xml         = NULL;
+       priv->folder_view       = NULL;
+       priv->header_view       = NULL;
+       priv->message_view      = NULL;
+       priv->current_folder    = NULL;
+}
+
+
+static void
+modest_ui_finalize (GObject *obj)
+{
+       ModestUIPrivate *priv = MODEST_UI_GET_PRIVATE(obj);
+
+       if (priv->modest_acc_mgr)
+               g_object_unref (priv->modest_acc_mgr);
+       priv->modest_acc_mgr = NULL;
+
+       if (priv->modest_id_mgr)
+               g_object_unref (priv->modest_id_mgr);
+       priv->modest_id_mgr = NULL;
+
+       if (priv->modest_conf)
+               g_object_unref (priv->modest_conf);
+       priv->modest_conf = NULL;
+
+       if (priv->modest_window_mgr)
+               g_object_unref (priv->modest_window_mgr);
+       priv->modest_window_mgr = NULL;
+}
+
+
+GObject*
+modest_ui_new (ModestConf *modest_conf)
+{
+       GObject *obj;
+       ModestUIPrivate *priv;
+       ModestAccountMgr *modest_acc_mgr;
+       ModestIdentityMgr *modest_id_mgr;
+       TnyAccountStoreIface *account_store_iface;
+       GSList *account_names_list;
+       GSList *identities_list;
+
+       g_return_val_if_fail (modest_conf, NULL);
+
+       obj = g_object_new(MODEST_TYPE_UI, NULL);
+       priv = MODEST_UI_GET_PRIVATE(obj);
+
+       modest_acc_mgr = MODEST_ACCOUNT_MGR(modest_account_mgr_new (modest_conf));
+       if (!modest_acc_mgr) {
+               g_warning ("could not create ModestAccountMgr instance");
+               g_object_unref (obj);
+               return NULL;
+       }
+
+       modest_id_mgr = MODEST_IDENTITY_MGR(modest_identity_mgr_new (modest_conf));
+       if (!modest_id_mgr) {
+               g_warning ("could not create ModestIdentityMgr instance");
+               g_object_unref (obj);
+               return NULL;
+       }
+
+       account_store_iface =
+               TNY_ACCOUNT_STORE_IFACE(modest_tny_account_store_new (modest_acc_mgr));
+       if (!account_store_iface) {
+               g_warning ("could not initialze ModestTnyAccountStore");
+               return NULL;
+       }
+       g_signal_connect (account_store_iface, "password_requested",
+                         G_CALLBACK(on_password_requested),
+                         NULL);
+
+       glade_init ();
+       priv->glade_xml = glade_xml_new (MODEST_GLADE, NULL, NULL);
+       if (!priv->glade_xml) {
+               g_warning ("failed to do glade stuff");
+               g_object_unref (obj);
+               return NULL;
+       }
+
+       /* FIXME: could be used, but doesn't work atm.
+        * glade_xml_signal_autoconnect(priv->glade_xml);
+        */
+
+       priv->modest_acc_mgr = modest_acc_mgr;
+       priv->modest_id_mgr  = modest_id_mgr;
+       g_object_ref (priv->modest_conf = modest_conf);
+
+       priv->account_store = account_store_iface;
+
+       priv->modest_window_mgr = MODEST_WINDOW_MGR(modest_window_mgr_new());
+       g_signal_connect (priv->modest_window_mgr, "last_window_closed",
+                         G_CALLBACK(modest_ui_last_window_closed),
+                         NULL);
+
+       account_names_list = modest_account_mgr_server_account_names(modest_acc_mgr,
+                                       NULL, MODEST_PROTO_TYPE_ANY, NULL, FALSE);
+       identities_list = modest_identity_mgr_identity_names(modest_id_mgr, NULL);
+       if (!(account_names_list != NULL || identities_list != NULL))
+               wizard_account_dialog(MODEST_UI(obj));
+       g_slist_free(account_names_list);
+       g_slist_free(identities_list);
+
+       return obj;
+}
+
+
+static void
+modest_ui_last_window_closed (GObject *obj, gpointer data)
+{
+       /* FIXME: Other cleanups todo? Finalize Tinymail? */
+       gtk_main_quit ();
+}
+
+
+static void
+on_password_requested (ModestTnyAccountStore *account_store,
+                      const gchar *account_name, gpointer user_data)
+{
+
+       GtkWidget *passdialog;
+       GtkWidget *vbox;
+       GtkWidget *infolabel;
+       GtkWidget *passentry;
+       gint retval;
+       const gchar *infostring = g_strconcat(_("Please enter the password for "), account_name, ".", NULL);
+
+       passdialog = gtk_dialog_new_with_buttons(_("Password"),
+                                                NULL,
+                                                GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
+                                                GTK_STOCK_OK,
+                                                GTK_RESPONSE_ACCEPT,
+                                                GTK_STOCK_CANCEL,
+                                                GTK_RESPONSE_REJECT,
+                                                NULL);
+
+       vbox = gtk_vbox_new(FALSE, 0);
+
+       infolabel = gtk_label_new(infostring);
+       passentry = gtk_entry_new();
+
+       gtk_box_pack_start(GTK_BOX(GTK_DIALOG(passdialog)->vbox), infolabel, FALSE, FALSE, 0);
+       gtk_box_pack_start(GTK_BOX(GTK_DIALOG(passdialog)->vbox), passentry, FALSE, FALSE, 0);
+       gtk_widget_show_all(passdialog);
+
+       retval = gtk_dialog_run (GTK_DIALOG(passdialog));
+
+       switch (retval) {
+               case GTK_RESPONSE_ACCEPT:
+                       modest_account_mgr_set_server_account_string(modest_tny_account_store_get_accout_mgr(account_store),
+                                                            account_name,
+                                                            "password",
+                                                            gtk_entry_get_text(GTK_ENTRY(passentry)),
+                                                            NULL);
+                       break;
+               case GTK_RESPONSE_CANCEL:
+                       /* FIXME:
+                        * What happens, if canceled?"
+                        */
+                       break;
+       }
+
+       gtk_widget_destroy (passdialog);
+}
+
+
+void
+on_account_selector_selection_changed (GtkWidget *widget, gpointer user_data)
+{
+       GtkTreeModel *model = gtk_combo_box_get_model(GTK_COMBO_BOX(widget));
+       GtkTreeIter iter;
+
+       gchar *account_name;
+
+       if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(widget), &iter)) {
+               gtk_tree_model_get(GTK_TREE_MODEL(model), &iter,
+                                  0, &account_name, -1);
+       } else {
+               account_name="empty";
+       }
+
+       g_message("Value: '%s'\n", account_name);
+
+       free(account_name);
+}
+
+
diff --git a/src/hildon/modest-ui_1.c b/src/hildon/modest-ui_1.c
new file mode 100644 (file)
index 0000000..375e9ce
--- /dev/null
@@ -0,0 +1,1034 @@
+/* modest-ui.c */
+
+/* insert (c)/licensing information) */
+
+#include <gtk/gtk.h>
+#include <glade/glade.h>
+#include <glib/gi18n.h>
+#include <string.h>
+
+/* TODO: put in auto* */
+#include <tny-text-buffer-stream.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif /*HAVE_CONFIG_H*/
+
+#include "../modest-ui.h"
+#include "../modest-window-mgr.h"
+#include "../modest-account-mgr.h"
+
+#include "../modest-tny-account-store.h"
+#include "../modest-tny-folder-tree-view.h"
+#include "../modest-tny-header-tree-view.h"
+#include "../modest-tny-msg-view.h"
+#include "../modest-tny-transport-actions.h"
+
+
+#define MODEST_GLADE          PREFIX "/share/modest/glade/modest.glade"
+#define MODEST_GLADE_MAIN_WIN "main"
+#define MODEST_GLADE_EDIT_WIN "new_mail"
+
+
+/* 'private'/'protected' functions */
+static void   modest_ui_class_init     (ModestUIClass *klass);
+static void   modest_ui_init           (ModestUI *obj);
+static void   modest_ui_finalize       (GObject *obj);
+
+static void    modest_ui_window_destroy    (GtkWidget *win, gpointer data);
+static void    modest_ui_last_window_closed (GObject *obj, gpointer data);
+
+static GtkWidget* modest_main_window_toolbar (void);
+static GtkWidget* modest_main_window_folder_tree (ModestAccountMgr *modest_acc_mgr,
+                                                 TnyAccountStoreIface *account_store);
+static GtkWidget* modest_main_window_header_tree (TnyMsgFolderIface *folder);
+
+
+void on_account_settings1_activate (GtkMenuItem *,
+                                          gpointer);
+static void on_password_requested (ModestTnyAccountStore *account_store,
+                                  const gchar *account_name, gpointer user_data);
+
+static void on_folder_clicked (ModestTnyFolderTreeView *folder_tree,
+                              TnyMsgFolderIface *folder,
+                              gpointer data);
+static void on_message_clicked (ModestTnyFolderTreeView *folder_tree,
+                               TnyMsgIface *message,
+                               gpointer data);
+static void on_new_mail_clicked (GtkWidget *widget, ModestUI *modest_ui);
+
+static void on_reply_clicked (GtkWidget *widget, ModestUI *modest_ui);
+
+static void on_send_button_clicked (GtkWidget *widget, ModestUI *modest_ui);
+
+static void register_toolbar_callbacks (ModestUI *modest_ui);
+
+
+/* list my signals */
+enum {
+       /* MY_SIGNAL_1, */
+       /* MY_SIGNAL_2, */
+       LAST_SIGNAL
+};
+
+
+typedef struct _ModestUIPrivate ModestUIPrivate;
+struct _ModestUIPrivate {
+
+       ModestConf           *modest_conf;
+       ModestAccountMgr     *modest_acc_mgr;
+       ModestWindowMgr      *modest_window_mgr;
+       TnyAccountStoreIface *account_store;
+
+       GtkWindow            *main_window;
+       GladeXML             *glade_xml;
+
+
+};
+#define MODEST_UI_GET_PRIVATE(o)      (G_TYPE_INSTANCE_GET_PRIVATE((o), \
+                                       MODEST_TYPE_UI, \
+                                       ModestUIPrivate))
+/* globals */
+static GObjectClass *parent_class = NULL;
+
+/* uncomment the following if you have defined any signals */
+/* static guint signals[LAST_SIGNAL] = {0}; */
+
+GType
+modest_ui_get_type (void)
+{
+       static GType my_type = 0;
+       if (!my_type) {
+               static const GTypeInfo my_info = {
+                       sizeof(ModestUIClass),
+                       NULL,           /* base init */
+                       NULL,           /* base finalize */
+                       (GClassInitFunc) modest_ui_class_init,
+                       NULL,           /* class finalize */
+                       NULL,           /* class data */
+                       sizeof(ModestUI),
+                       1,              /* n_preallocs */
+                       (GInstanceInitFunc) modest_ui_init,
+               };
+               my_type = g_type_register_static (G_TYPE_OBJECT,
+                                                 "ModestUI",
+                                                 &my_info, 0);
+       }
+       return my_type;
+}
+
+static void
+modest_ui_class_init (ModestUIClass *klass)
+{
+       GObjectClass *gobject_class;
+       gobject_class = (GObjectClass*) klass;
+
+       parent_class            = g_type_class_peek_parent (klass);
+       gobject_class->finalize = modest_ui_finalize;
+
+       g_type_class_add_private (gobject_class, sizeof(ModestUIPrivate));
+
+       /* signal definitions go here, e.g.: */
+/*     signals[MY_SIGNAL_1] = */
+/*             g_signal_new ("my_signal_1",....); */
+/*     signals[MY_SIGNAL_2] = */
+/*             g_signal_new ("my_signal_2",....); */
+/*     etc. */
+}
+
+static void
+modest_ui_init (ModestUI *obj)
+{
+       ModestUIPrivate *priv = MODEST_UI_GET_PRIVATE(obj);
+
+       priv->modest_acc_mgr    = NULL;
+       priv->modest_conf       = NULL;
+       priv->modest_window_mgr = NULL;
+       priv->glade_xml         = NULL;
+
+}
+
+static void
+modest_ui_finalize (GObject *obj)
+{
+       ModestUIPrivate *priv = MODEST_UI_GET_PRIVATE(obj);
+
+       if (priv->modest_acc_mgr)
+               g_object_unref (priv->modest_acc_mgr);
+       priv->modest_acc_mgr = NULL;
+
+       if (priv->modest_conf)
+               g_object_unref (priv->modest_conf);
+       priv->modest_conf = NULL;
+
+       if (priv->modest_window_mgr)
+               g_object_unref (priv->modest_window_mgr);
+       priv->modest_window_mgr = NULL;
+}
+
+GObject*
+modest_ui_new (ModestConf *modest_conf)
+{
+       GObject *obj;
+       ModestUIPrivate *priv;
+       ModestAccountMgr *modest_acc_mgr;
+       TnyAccountStoreIface *account_store_iface;
+
+       g_return_val_if_fail (modest_conf, NULL);
+
+       obj = g_object_new(MODEST_TYPE_UI, NULL);
+       priv = MODEST_UI_GET_PRIVATE(obj);
+
+       modest_acc_mgr =
+               MODEST_ACCOUNT_MGR(modest_account_mgr_new (modest_conf));
+       if (!modest_acc_mgr) {
+               g_warning ("could not create ModestAccountMgr instance");
+               g_object_unref (obj);
+               return NULL;
+       }
+
+       account_store_iface =
+               TNY_ACCOUNT_STORE_IFACE(modest_tny_account_store_new (modest_acc_mgr));
+       if (!account_store_iface) {
+               g_warning ("could not initialze ModestTnyAccountStore");
+               return NULL;
+       }
+       g_signal_connect (account_store_iface, "password_requested",
+                         G_CALLBACK(on_password_requested),
+                         NULL);
+       glade_init ();
+       priv->glade_xml = glade_xml_new (MODEST_GLADE,
+                                        NULL,NULL);
+       if (!priv->glade_xml) {
+               g_warning ("failed to do glade stuff");
+               g_object_unref (obj);
+               return NULL;
+       }
+
+       /* FIXME: could be used, but doesn't work atm.
+        * glade_xml_signal_autoconnect(priv->glade_xml);
+        */
+
+       priv->modest_acc_mgr = modest_acc_mgr;
+       g_object_ref (priv->modest_conf = modest_conf);
+
+       priv->account_store = account_store_iface;
+
+       priv->modest_window_mgr = MODEST_WINDOW_MGR(modest_window_mgr_new());
+       g_signal_connect (priv->modest_window_mgr, "last_window_closed",
+                         G_CALLBACK(modest_ui_last_window_closed),
+                         NULL);
+       return obj;
+}
+
+
+gboolean
+modest_ui_show_main_window (ModestUI *modest_ui)
+{
+       GtkWidget       *win;
+       int              height, width;
+       ModestUIPrivate *priv;
+       GtkWidget     *folder_view, *header_view;
+       GtkWidget     *message_view;
+       GtkWidget *account_settings_item;
+
+       GtkWidget  *folder_view_holder,
+               *header_view_holder,
+               *mail_paned;
+
+       priv = MODEST_UI_GET_PRIVATE(modest_ui);
+
+       height = modest_conf_get_int (priv->modest_conf,
+                                     MODEST_CONF_MAIN_WINDOW_HEIGHT,NULL);
+       width  = modest_conf_get_int (priv->modest_conf,
+                                     MODEST_CONF_MAIN_WINDOW_WIDTH,NULL);
+
+       win = glade_xml_get_widget (priv->glade_xml, "main");
+       if (!win) {
+               g_warning ("could not create main window");
+               return FALSE;
+       }
+
+       folder_view =
+               GTK_WIDGET(modest_main_window_folder_tree(priv->modest_acc_mgr,
+                                                         priv->account_store));
+       folder_view_holder = glade_xml_get_widget (priv->glade_xml, "folders");
+       if (!folder_view||!folder_view_holder) {
+               g_warning ("failed to create folder tree");
+               return FALSE;
+       }
+       gtk_container_add (GTK_CONTAINER(folder_view_holder), folder_view);
+
+       header_view  =  GTK_WIDGET(modest_main_window_header_tree (NULL));
+       header_view_holder = glade_xml_get_widget (priv->glade_xml, "mail_list");
+       if (!header_view) {
+               g_warning ("failed to create header tree");
+               return FALSE;
+       }
+       gtk_container_add (GTK_CONTAINER(header_view_holder), header_view);
+
+       g_signal_connect (G_OBJECT(folder_view), "folder_selected",
+                         G_CALLBACK(on_folder_clicked), modest_ui);
+
+       message_view  = GTK_WIDGET(modest_tny_msg_view_new (NULL));
+       if (!message_view) {
+               g_warning ("failed to create message view");
+               return FALSE;
+       }
+       mail_paned = glade_xml_get_widget (priv->glade_xml, "mail_paned");
+       gtk_paned_add2 (GTK_PANED(mail_paned), message_view);
+
+       g_signal_connect (header_view, "message_selected",
+                         G_CALLBACK(on_message_clicked),
+                         modest_ui);
+
+       account_settings_item = glade_xml_get_widget (priv->glade_xml, "account_settings1");
+       if (!account_settings_item)
+       {
+               g_warning ("The account settings item isn't available!\n");
+               return FALSE;
+       }
+
+       g_signal_connect (account_settings_item, "activate",
+                         G_CALLBACK(on_account_settings1_activate),
+                         modest_ui);
+
+       register_toolbar_callbacks (modest_ui);
+
+       modest_window_mgr_register (priv->modest_window_mgr,
+                                   G_OBJECT(win), MODEST_MAIN_WINDOW, 0);
+       g_signal_connect (win, "destroy", G_CALLBACK(modest_ui_window_destroy),
+                         modest_ui);
+       gtk_widget_set_usize (GTK_WIDGET(win), height, width);
+       gtk_window_set_title (GTK_WINDOW(win), PACKAGE_STRING);
+
+       gtk_widget_show_all (win);
+       return TRUE;
+}
+
+
+static void
+register_toolbar_callbacks (ModestUI *modest_ui)
+{
+       ModestUIPrivate *priv;
+       GtkWidget *button;
+
+       g_return_if_fail (modest_ui);
+
+       priv = MODEST_UI_GET_PRIVATE (modest_ui);
+
+       button = glade_xml_get_widget (priv->glade_xml, "toolb_new_mail");
+       if (button)
+               g_signal_connect (button, "clicked",
+                                 G_CALLBACK(on_new_mail_clicked), modest_ui);
+
+       button = glade_xml_get_widget (priv->glade_xml, "toolb_reply");
+       if (button)
+               g_signal_connect (button, "clicked",
+                                 G_CALLBACK(on_reply_clicked), modest_ui);
+}
+
+
+
+static void
+hide_edit_window (GtkWidget *win, gpointer data)
+{
+       gtk_widget_hide (win);
+}
+
+
+
+
+gboolean
+modest_ui_show_edit_window (ModestUI *modest_ui, const gchar* to,
+                           const gchar* cc, const gchar* bcc,
+                           const gchar* subject, const gchar *body,
+                           const GSList* att)
+{
+       GtkWidget       *win, *to_entry, *subject_entry, *body_view;
+
+       ModestUIPrivate *priv;
+       GtkWidget       *btn;
+       GtkTextBuffer   *buf;
+
+       priv = MODEST_UI_GET_PRIVATE(modest_ui);
+       int height = modest_conf_get_int (priv->modest_conf,
+                                         MODEST_CONF_EDIT_WINDOW_HEIGHT,NULL);
+       int width  = modest_conf_get_int (priv->modest_conf,
+                                         MODEST_CONF_EDIT_WINDOW_WIDTH,NULL);
+
+       win = glade_xml_get_widget (priv->glade_xml, "new_mail");
+       if (!win) {
+               g_warning ("could not create new mail  window");
+               return FALSE;
+       }
+
+       modest_window_mgr_register (priv->modest_window_mgr,
+                                   G_OBJECT(win), MODEST_EDIT_WINDOW, 0);
+       to_entry      = glade_xml_get_widget (priv->glade_xml, "to_entry");
+       subject_entry = glade_xml_get_widget (priv->glade_xml, "subject_entry");
+       body_view     = glade_xml_get_widget (priv->glade_xml, "body_view");
+
+       gtk_entry_set_text(GTK_ENTRY(subject_entry), subject);
+       gtk_entry_set_text(GTK_ENTRY(to_entry), to);
+
+       buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(body_view));
+       gtk_text_buffer_set_text(buf, body, -1);
+
+       g_signal_connect (win, "destroy", G_CALLBACK(hide_edit_window),
+                         NULL);
+
+       gtk_widget_set_usize (GTK_WIDGET(win), height, width);
+       gtk_window_set_title (GTK_WINDOW(win),
+                             subject ? subject : "Untitled");
+
+
+       btn = glade_xml_get_widget (priv->glade_xml, "toolb_send");
+       g_signal_connect (btn, "clicked", G_CALLBACK(on_send_button_clicked),
+                         modest_ui);
+
+       gtk_widget_show_all (win);
+
+       return TRUE;
+}
+
+
+static void
+modest_ui_window_destroy (GtkWidget *win, gpointer data)
+{
+       ModestUIPrivate *priv;
+
+       g_return_if_fail (data);
+
+       priv = MODEST_UI_GET_PRIVATE((ModestUI*)data);
+       if (!modest_window_mgr_unregister (priv->modest_window_mgr, G_OBJECT(win)))
+               g_warning ("modest window mgr: failed to unregister %p",
+                          G_OBJECT(win));
+}
+
+
+static void
+modest_ui_last_window_closed (GObject *obj, gpointer data)
+{
+       gtk_main_quit ();
+}
+
+void
+on_account_selector_selection_changed(GtkWidget *widget,
+       gpointer user_data)
+{
+       GtkTreeModel *model = gtk_combo_box_get_model(GTK_COMBO_BOX(widget));
+       GtkTreeIter iter;
+
+       gchar *account_name;
+
+       if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(widget), &iter))
+       {
+               gtk_tree_model_get(GTK_TREE_MODEL(model),
+                                  &iter,
+                                  0, &account_name,
+                                  -1);
+       }
+       else
+       {
+               account_name="empty";
+       }
+
+       g_message("Value: '%s'\n", account_name);
+}
+
+void
+on_account_settings1_activate (GtkMenuItem *menuitem,
+                              gpointer user_data)
+{
+       GladeXML *glade_xml;
+       GtkWidget *advanced_account_setup;
+       ModestUIPrivate *priv;
+       gint retval;
+       GSList *account_name_list;
+       GSList *account_name_list_iter;
+       GtkListStore *account_names;
+       GtkTreeIter account_names_iter;
+       GtkWidget *account_selector;
+       GtkCellRenderer *renderer;
+
+       priv = MODEST_UI_GET_PRIVATE(MODEST_UI(user_data));
+
+       glade_xml = glade_xml_new(MODEST_GLADE, "mailbox_setup_advanced", NULL);
+       advanced_account_setup = glade_xml_get_widget(glade_xml, "mailbox_setup_advanced");
+
+       account_name_list=modest_account_mgr_account_names(priv->modest_acc_mgr, NULL);
+       account_names = gtk_list_store_new(1, G_TYPE_STRING);
+
+       for (account_name_list_iter=account_name_list;
+            account_name_list_iter!=NULL;
+            account_name_list_iter=g_slist_next(account_name_list_iter))
+       {
+               gtk_list_store_append(account_names, &account_names_iter);
+               gtk_list_store_set(account_names, &account_names_iter,
+                                  0, account_name_list_iter->data,
+                                  -1);
+       }
+
+       g_slist_free(account_name_list);
+
+       account_selector = glade_xml_get_widget(glade_xml, "account_selector");
+       gtk_combo_box_set_model(GTK_COMBO_BOX(account_selector), GTK_TREE_MODEL(account_names));
+
+       renderer = gtk_cell_renderer_text_new ();
+       gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (account_selector), renderer, TRUE);
+       gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (account_selector), renderer,
+                                       "text", 0,
+                                       NULL);
+
+       g_signal_connect(GTK_WIDGET(account_selector), "changed",
+                        G_CALLBACK(on_account_selector_selection_changed),
+                        GTK_WIDGET(advanced_account_setup));
+
+       gtk_combo_box_set_active(GTK_COMBO_BOX(account_selector), 0);
+
+       gtk_widget_show_all(GTK_WIDGET(advanced_account_setup));
+
+       retval=gtk_dialog_run(GTK_DIALOG(advanced_account_setup));
+
+       g_object_unref(account_names);
+
+       gtk_widget_destroy(GTK_WIDGET(advanced_account_setup));
+
+       g_object_unref(glade_xml);
+}
+
+
+static void
+on_folder_clicked (ModestTnyFolderTreeView *folder_tree,
+                  TnyMsgFolderIface *folder,
+                  gpointer data)
+{
+       GtkWidget *win;
+       ModestTnyHeaderTreeView *tree_view;
+       ModestUIPrivate *priv;
+       GtkWidget *scrollview;
+
+       g_return_if_fail (folder);
+       g_return_if_fail (data);
+
+       priv = MODEST_UI_GET_PRIVATE(data);
+       scrollview = glade_xml_get_widget (priv->glade_xml,"mail_list");
+
+       tree_view = MODEST_TNY_HEADER_TREE_VIEW(
+               gtk_bin_get_child(GTK_BIN(scrollview)));
+       win = glade_xml_get_widget (priv->glade_xml, "main");
+       gtk_window_set_title (GTK_WINDOW(win),
+                             tny_msg_folder_iface_get_name(folder));
+
+       modest_tny_header_tree_view_set_folder (tree_view,
+                                               folder);
+}
+
+
+
+static void on_message_clicked (ModestTnyFolderTreeView *folder_tree,
+                               TnyMsgIface *message,
+                               gpointer data)
+{
+       GtkWidget *paned;
+       ModestTnyMsgView *msg_view;
+       ModestUIPrivate *priv;
+
+       g_return_if_fail (message);
+       g_return_if_fail (data);
+
+       priv = MODEST_UI_GET_PRIVATE(data);
+       paned = glade_xml_get_widget (priv->glade_xml,"mail_paned");
+       msg_view = MODEST_TNY_MSG_VIEW(gtk_paned_get_child2 (GTK_PANED(paned)));
+
+       modest_tny_msg_view_set_message (msg_view,
+                                        message);
+}
+
+static void
+on_password_requested (ModestTnyAccountStore *account_store,
+                      const gchar *account_name, gpointer user_data)
+{
+
+       GtkWidget *passdialog;
+       GtkWidget *vbox;
+       GtkWidget *infolabel;
+       GtkWidget *passentry;
+       gint retval;
+       const gchar *infostring=g_strconcat("Please enter the password for ", account_name, ".", NULL);
+
+       passdialog = gtk_dialog_new_with_buttons("MyDialog",
+                                                NULL,
+                                                GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
+                                                GTK_STOCK_OK,
+                                                GTK_RESPONSE_ACCEPT,
+                                                GTK_STOCK_CANCEL,
+                                                GTK_RESPONSE_REJECT,
+                                                NULL);
+
+       vbox=gtk_vbox_new(FALSE, 0);
+
+       infolabel=gtk_label_new(infostring);
+       passentry=gtk_entry_new();
+
+       gtk_box_pack_start(GTK_BOX(GTK_DIALOG(passdialog)->vbox), infolabel, FALSE, FALSE, 0);
+       gtk_box_pack_start(GTK_BOX(GTK_DIALOG(passdialog)->vbox), passentry, FALSE, FALSE, 0);
+       gtk_widget_show_all(passdialog);
+
+       retval = gtk_dialog_run (GTK_DIALOG(passdialog));
+
+       switch (retval)
+       {
+       case GTK_RESPONSE_ACCEPT:
+               modest_account_mgr_set_server_account_string(modest_tny_account_store_get_accout_mgr(account_store),
+                                                            account_name,
+                                                            "password",
+                                                            gtk_entry_get_text(GTK_ENTRY(passentry)),
+                                                            NULL);
+               break;
+       case GTK_RESPONSE_CANCEL:
+               /* FIXME:
+                * What happens, if canceled?"
+                */
+               break;
+       }
+
+       gtk_widget_destroy (passdialog);
+}
+
+
+
+
+
+
+static GtkWidget*
+modest_main_window_header_tree (TnyMsgFolderIface *folder)
+{
+       GtkWidget *header_tree;
+
+       header_tree = GTK_WIDGET(modest_tny_header_tree_view_new(folder));
+       if (!header_tree) {
+               g_warning ("could not create header tree");
+               return NULL;
+       }
+
+       return GTK_WIDGET(header_tree);
+}
+
+
+
+static GtkWidget*
+modest_main_window_folder_tree (ModestAccountMgr *modest_acc_mgr,
+                               TnyAccountStoreIface *account_store)
+{
+       GtkTreeViewColumn *column;
+       GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
+       GtkWidget *folder_tree;
+
+       folder_tree = GTK_WIDGET(modest_tny_folder_tree_view_new (account_store));
+       if (!folder_tree) {
+               g_warning ("could not create folder list");
+               return NULL;
+       }
+
+       column = gtk_tree_view_column_new_with_attributes(_("All Mail Folders"),
+                                                         renderer,"text",
+                                                         TNY_ACCOUNT_TREE_MODEL_NAME_COLUMN,
+                                                         NULL);
+       gtk_tree_view_column_set_resizable (column, TRUE);
+       gtk_tree_view_append_column (GTK_TREE_VIEW(folder_tree), column);
+
+       column = gtk_tree_view_column_new_with_attributes(_("Unread"),
+                                                         renderer, "text",
+                                                         TNY_ACCOUNT_TREE_MODEL_UNREAD_COLUMN,
+                                                         NULL);
+       gtk_tree_view_column_set_resizable (column, TRUE);
+       gtk_tree_view_append_column (GTK_TREE_VIEW(folder_tree), column);
+
+
+       gtk_tree_view_set_headers_visible   (GTK_TREE_VIEW(folder_tree), TRUE);
+       gtk_tree_view_set_headers_clickable (GTK_TREE_VIEW(folder_tree), TRUE);
+
+       return folder_tree;
+}
+
+
+static void
+on_new_mail_clicked (GtkWidget *widget, ModestUI *modest_ui)
+{
+       g_return_if_fail (modest_ui);
+       modest_ui_show_edit_window (modest_ui, "", "", "", "", "", NULL);
+}
+
+static gchar*
+modest_ui_quote_msg(const TnyMsgIface *src, const gchar *from, time_t sent_date)
+{
+       GList *parts;
+       TnyMsgMimePartIface *part;
+       TnyStreamIface* stream;
+       TnyTextBufferStream *dest;
+       TnyMsgMimePartIface *body = NULL;
+       GtkTextBuffer *buf;
+       GtkTextIter begin, end, iter1, iter2, iter3;
+       gchar *txt, *line;
+       gint tmp;
+       gint indent;
+       gboolean break_line;
+<<<<<<< .mine
+       gchar sent_str[101];
+       gchar from_cut[82];
+       gchar reply_head[202];
+               
+=======
+
+>>>>>>> .r91
+       buf = gtk_text_buffer_new(NULL);
+       dest = tny_text_buffer_stream_new(buf);
+       parts  = (GList*) tny_msg_iface_get_parts (src);
+
+       while (parts) {
+               /* TODO: maybe we'd like to quote more than one part?
+                *       cleanup, fix leaks
+                */
+               TnyMsgMimePartIface *part =
+                       TNY_MSG_MIME_PART_IFACE(parts->data);
+               if (tny_msg_mime_part_iface_content_type_is (part, "text/plain")) {
+                       body = part;
+                       break;
+               }
+               parts = parts->next;
+       }
+       if (!body) {
+               return "";
+       }
+       buf    = gtk_text_buffer_new (NULL);
+       stream = TNY_STREAM_IFACE(tny_text_buffer_stream_new (buf));
+
+       tny_stream_iface_reset (stream);
+       tny_msg_mime_part_iface_decode_to_stream (body, stream);
+       tny_stream_iface_reset (stream);
+
+       /* format sent_date */
+       strftime(sent_str, 100, "%c", localtime(&sent_date));
+       strncpy(from_cut, from, 80);
+       sprintf(reply_head, "On %s, %s wrote:\n", sent_str, from_cut);
+       
+       gtk_text_buffer_get_iter_at_line(buf, &iter1, 0);
+       gtk_text_buffer_insert(buf, &iter1, reply_head, -1);
+       gtk_text_buffer_get_iter_at_line(buf, &iter1, 1);
+       while (TRUE) {
+               /* at each beginning of this while, iter1 must be at the beginning of
+                  the (next) line to quote */
+
+               iter2 = iter1;
+<<<<<<< .mine
+               if (gtk_text_iter_get_chars_in_line(&iter1) > 1) {
+                       /* check whether line is already quoted */
+                       iter2 = iter1;
+                       gtk_text_iter_forward_char (&iter2);
+                       txt = gtk_text_buffer_get_text (buf, &iter1, &iter2, FALSE);
+               } else {
+                       txt = "";
+               }
+=======
+               gtk_text_iter_forward_to_line_end(&iter2);
+               txt = gtk_text_buffer_get_text (buf, &iter1, &iter2, FALSE);
+               printf("%s\n", txt);
+               /* check whether line is already quoted */
+               iter2 = iter1;
+
+               gtk_text_iter_forward_word_end(&iter2);
+               txt = gtk_text_buffer_get_text (buf, &iter1, &iter2, FALSE);
+
+>>>>>>> .r91
+               /* insert quotation mark */
+               tmp = gtk_text_iter_get_offset(&iter1);
+               gtk_text_buffer_insert(buf, &iter1, "> ", -1);
+
+               /* still at the beginning of the line */
+               gtk_text_buffer_get_iter_at_offset(buf, &iter1, tmp);
+               iter2 = iter1;
+
+               if (strcmp(txt, ">") != 0) {
+
+                       /* line was not already quoted */
+
+                       /* now check whether the line must be broken: */
+                       if (gtk_text_iter_get_chars_in_line(&iter2) >= 79) {
+
+                               gtk_text_iter_set_line_offset(&iter2, 79);
+
+                               /* move iter1 behind quote mark at the beginnig of the line */
+                               gtk_text_iter_forward_word_end(&iter1);
+
+                               /* save iter2 position */
+                               iter3 = iter2;
+
+                               /* move iter2 back one word (from breakpoint in line) */
+                               gtk_text_iter_backward_word_start(&iter2);
+
+                               /* check for one-word line (up to iter2) */
+                               if (!gtk_text_iter_compare(&iter1, &iter2) < 0) {
+                                       gtk_text_iter_forward_word_end(&iter2); /* BUG? */
+                               }
+
+                               /* insert linebreak */
+                               tmp = gtk_text_iter_get_offset(&iter2);
+<<<<<<< .mine
+                               gtk_text_buffer_insert(buf, &iter2, "\n", -1);
+=======
+                               gtk_text_buffer_insert(buf, &iter2, "\n#", -1);
+
+>>>>>>> .r91
+                               gtk_text_buffer_get_iter_at_offset(buf, &iter1, tmp);
+
+                               /* move to the beginning of the "new" line */
+                               gtk_text_iter_forward_line(&iter1);
+
+                               /* try to kill 1 space */
+                               iter2 = iter1;
+                               gtk_text_iter_forward_char(&iter2);
+                               txt = gtk_text_buffer_get_text(buf, &iter1, &iter2, FALSE);
+                               if (strcmp(txt, " ") == 0) {
+                                       tmp = gtk_text_iter_get_offset(&iter1);
+                                       gtk_text_buffer_delete(buf, &iter1, &iter2);
+                                       gtk_text_buffer_get_iter_at_offset(buf, &iter1, tmp);
+                               }
+                               
+                               /* check whether there is a next line to merge */
+                               iter3 = iter1;
+                               if (!gtk_text_iter_forward_line(&iter3)) {
+                                       continue;
+                               }
+<<<<<<< .mine
+                               /* iter3 is now at the beginning of the next line.*/
+                               
+=======
+
+>>>>>>> .r91
+                               /* check for empty line */
+                               if (gtk_text_iter_get_chars_in_line(&iter3) < 2) {
+                                       continue;
+                               }
+
+                               /* check for quote */
+                               iter2 = iter3;
+                               gtk_text_iter_forward_char (&iter2);
+                               txt = gtk_text_buffer_get_text(buf, &iter3, &iter2, FALSE);
+                               if (strcmp(txt, ">") == 0) {
+                                       /* iter1 is still at the beginning of the newly broken
+                                        * so we don't have to cleanup */
+                                       continue;
+                               }
+<<<<<<< .mine
+                               
+=======
+
+                               /* now merge in the next line */
+>>>>>>> .r91
+                               if (!gtk_text_iter_forward_to_line_end(&iter1)) {
+                                       /* no further lines to merge */
+                                       continue;
+                               }
+                               
+                               /* "mark" newline */
+                               iter2 = iter1;
+                               gtk_text_iter_forward_char(&iter2);
+<<<<<<< .mine
+                                       
+                               /* do the merge */
+=======
+
+>>>>>>> .r91
+                               tmp = gtk_text_iter_get_offset(&iter1);
+<<<<<<< .mine
+=======
+
+                               /* do the merge */
+>>>>>>> .r91
+                               gtk_text_buffer_delete (buf, &iter1, &iter2);
+                               gtk_text_buffer_get_iter_at_offset (buf, &iter1, tmp);
+
+                               /* insert space */
+                               gtk_text_buffer_insert(buf, &iter1, " ", -1);
+                               gtk_text_buffer_get_iter_at_offset (buf, &iter1, tmp);
+                               
+                               /* move to beginning of line and continue */
+                               gtk_text_iter_set_line_offset(&iter1, 0);
+<<<<<<< .mine
+                               continue;
+                               
+=======
+
+>>>>>>> .r91
+                       } else {
+                               /* line doesn't have to be broken, we're done. */
+                               if (!gtk_text_iter_forward_line(&iter1)) {
+                                       break;
+                               }
+                               continue;
+                       }
+               } else {
+                       /* line was already quoted */
+                       if (!gtk_text_iter_forward_line(&iter1)) {
+                               break;
+                       }
+                       continue;
+               }
+       }
+
+       gtk_text_buffer_get_bounds (buf, &begin, &end);
+       txt = gtk_text_buffer_get_text (buf, &begin, &end, FALSE);
+
+       return txt;
+}
+
+static void
+modest_ui_reply_to_msg (ModestUI *modest_ui, TnyMsgHeaderIface *header,
+                                               ModestTnyMsgView *msg_view) {
+       const gchar *subject, *from, *quoted;
+       time_t sent_date;
+       const TnyMsgIface *msg;
+       const TnyMsgFolderIface *folder;
+       gchar *re_sub;
+
+       quoted = "";
+       if (header) {
+               folder = tny_msg_header_iface_get_folder (TNY_MSG_HEADER_IFACE(header));
+               if (!folder) {
+                       g_warning ("cannot find folder");
+                       return;
+               }
+
+               msg = tny_msg_folder_iface_get_message (TNY_MSG_FOLDER_IFACE(folder), header);
+               if (!msg) {
+                       g_warning ("cannot find msg");
+                       return;
+               }
+               subject = tny_msg_header_iface_get_subject(header);
+               /* TODO: checks, free */
+               re_sub = malloc(strlen(subject) + 5);
+               strcpy (re_sub, "Re: ");
+               strcat (re_sub, subject);
+               /* FIXME: honor replyto, cc */
+               from = tny_msg_header_iface_get_from(header);
+               sent_date = tny_msg_header_iface_get_date_sent(header);
+               quoted = modest_ui_quote_msg(msg, from, sent_date);
+
+       } else {
+               printf("no header\n");
+               return;
+       }
+
+       modest_ui_show_edit_window (modest_ui, from, "FIXME:cc", /* bcc */ "", re_sub, quoted, NULL);
+}
+
+
+/* WIP, testing az */
+static void
+on_reply_clicked (GtkWidget *widget, ModestUI *modest_ui)
+{
+       GtkTreeSelection *sel;
+       GtkWidget *paned;
+       GtkTreeModel *model;
+       GtkTreeIter iter;
+       GtkScrolledWindow *scroll;
+
+       TnyMsgHeaderIface *header;
+
+       ModestTnyHeaderTreeView *header_view;
+       ModestTnyMsgView *msg_view;
+       ModestUIPrivate *priv;
+
+       g_return_if_fail (modest_ui);
+
+       priv = MODEST_UI_GET_PRIVATE(modest_ui);
+
+       paned = glade_xml_get_widget (priv->glade_xml,"mail_paned");
+       g_return_if_fail (paned);
+
+       scroll = GTK_SCROLLED_WINDOW(gtk_paned_get_child1 (GTK_PANED(paned)));
+       g_return_if_fail (scroll);
+
+       msg_view = MODEST_TNY_MSG_VIEW(gtk_paned_get_child2 (GTK_PANED(paned)));
+       g_return_if_fail (msg_view);
+
+       header_view = MODEST_TNY_HEADER_TREE_VIEW(gtk_bin_get_child (GTK_BIN(scroll)));
+       g_return_if_fail (header_view);
+
+       sel = gtk_tree_view_get_selection (GTK_TREE_VIEW(header_view));
+       g_return_if_fail (sel);
+
+       if (!gtk_tree_selection_get_selected (sel, &model, &iter))
+               /* no message was selected. TODO: disable reply button in this case */
+               return;
+
+       gtk_tree_model_get (model, &iter,
+                           TNY_MSG_HEADER_LIST_MODEL_INSTANCE_COLUMN,
+                           &header, -1);
+
+       modest_ui_reply_to_msg (modest_ui, header, msg_view);
+}
+
+
+
+/* FIXME: truly evil --> we cannot really assume that
+ * there is only one edit window open...
+ */
+static void
+on_send_button_clicked (GtkWidget *widget, ModestUI *modest_ui)
+{
+       ModestTnyTransportActions *actions;
+       ModestUIPrivate *priv;
+       GtkWidget *to_entry, *subject_entry, *body_view;
+       const gchar *to, *subject;
+       gchar *body;
+       GtkTextIter start, end;
+       GtkTextBuffer *buf;
+       TnyAccountStoreIface *account_store;
+       const GList *transport_accounts;
+       TnyTransportAccountIface *transport_account;
+
+       g_return_if_fail (modest_ui);
+
+       actions = MODEST_TNY_TRANSPORT_ACTIONS
+               (modest_tny_transport_actions_new ());
+       priv = MODEST_UI_GET_PRIVATE(modest_ui);
+
+       account_store = priv->account_store;
+       transport_accounts =
+               tny_account_store_iface_get_transport_accounts (account_store);
+       if (!transport_accounts) {
+               g_message ("cannot send message: no transport account defined");
+               return;
+       } else /* take the first one! */
+               transport_account =
+                       TNY_TRANSPORT_ACCOUNT_IFACE(transport_accounts->data);
+
+       to_entry      = glade_xml_get_widget (priv->glade_xml, "to_entry");
+       subject_entry = glade_xml_get_widget (priv->glade_xml, "subject_entry");
+       body_view     = glade_xml_get_widget (priv->glade_xml, "body_view");
+
+       to      = gtk_entry_get_text (GTK_ENTRY(to_entry));
+       subject = gtk_entry_get_text (GTK_ENTRY(subject_entry));
+
+       buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(body_view));
+       gtk_text_buffer_get_bounds (buf, &start, &end);
+       body    = gtk_text_buffer_get_text (buf, &start, &end, FALSE);
+
+       g_message ("sending %s ==> %s", subject, to);
+       modest_tny_transport_actions_send_message (actions,
+                                                  transport_account,
+                                                  "dirk-jan.binnema@nokia.com",
+                                                  to, "", "", subject,
+                                                  body);
+       g_free (body);
+       g_object_unref (G_OBJECT(actions));
+
+       gtk_entry_set_text (GTK_ENTRY(to_entry), "");
+       gtk_entry_set_text (GTK_ENTRY(subject_entry), "");
+       gtk_text_buffer_set_text (buf, "", 0);
+
+       gtk_widget_hide (glade_xml_get_widget (priv->glade_xml, "new_mail"));
+}
diff --git a/src/hildon/modest.glade b/src/hildon/modest.glade
new file mode 100644 (file)
index 0000000..3ef8b9c
--- /dev/null
@@ -0,0 +1,4557 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
+
+<glade-interface>
+
+<widget class="GtkWindow" id="main">
+  <property name="title" translatable="yes">Modest</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="default_width">800</property>
+  <property name="default_height">600</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="icon">qgn_toolb_messagin.png</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
+
+  <child>
+    <widget class="GtkVBox" id="main_top_container">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child>
+       <widget class="GtkMenuBar" id="menubar1">
+         <property name="visible">True</property>
+
+         <child>
+           <widget class="GtkMenuItem" id="MessageMenuItem">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Message</property>
+             <property name="use_underline">True</property>
+
+             <child>
+               <widget class="GtkMenu" id="MessageMenuItem_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="new_e-mail1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">New e-mail</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_new_e-mail1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                     <accelerator key="N" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="open1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Open</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_open1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                     <accelerator key="O" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separator1">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="reply1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Reply</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_reply1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="reply_to_all1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Reply to all</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_reply_to_all1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="forward1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Forward</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_forward1_activate" last_modification_time="Fri, 28 Apr 2006 12:05:09 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="forward_attached">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Forward attached</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_forward_attached_activate" last_modification_time="Tue, 13 Jun 2006 16:41:33 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separator2">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="delete1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Delete</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_delete1_activate" last_modification_time="Fri, 28 Apr 2006 12:05:09 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separator3">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="details1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Details</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_details1_activate" last_modification_time="Fri, 28 Apr 2006 12:05:09 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="EditMenuItem">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Edit</property>
+             <property name="use_underline">True</property>
+
+             <child>
+               <widget class="GtkMenu" id="EditMenuItem_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="undo1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Undo</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_undo1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separator4">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="cut1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Cut</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_cut1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="copy1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Copy</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_copy1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="paste1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Paste</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_paste1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="select1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">_Select</property>
+                     <property name="use_underline">True</property>
+
+                     <child>
+                       <widget class="GtkMenu" id="select1_menu">
+
+                         <child>
+                           <widget class="GtkMenuItem" id="mark_all1">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">Mark all</property>
+                             <property name="use_underline">True</property>
+                             <signal name="activate" handler="on_mark_all1_activate" last_modification_time="Fri, 28 Apr 2006 12:10:20 GMT"/>
+                           </widget>
+                         </child>
+
+                         <child>
+                           <widget class="GtkMenuItem" id="unmark_all1">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">Unmark all</property>
+                             <property name="use_underline">True</property>
+                             <signal name="activate" handler="on_unmark_all1_activate" last_modification_time="Fri, 28 Apr 2006 12:10:20 GMT"/>
+                           </widget>
+                         </child>
+                       </widget>
+                     </child>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separator6">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="move_to1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Move to...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_move_to1_activate" last_modification_time="Fri, 28 Apr 2006 12:12:30 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="FoldersMenuItem">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Folders</property>
+             <property name="use_underline">True</property>
+
+             <child>
+               <widget class="GtkMenu" id="FoldersMenuItem_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="new_folder1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">New folder...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_new_folder1_activate" last_modification_time="Fri, 28 Apr 2006 12:15:47 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="manage_folders1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Manage folders</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_manage_folders1_activate" last_modification_time="Fri, 28 Apr 2006 12:15:47 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separator7">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="details2">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Details</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_details2_activate" last_modification_time="Fri, 28 Apr 2006 12:15:47 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="folder_settings1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Folder settings...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_folder_settings1_activate" last_modification_time="Fri, 28 Apr 2006 12:15:47 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separator8">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkRadioMenuItem" id="inbox1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Inbox</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">True</property>
+                     <signal name="activate" handler="on_inbox1_activate" last_modification_time="Fri, 28 Apr 2006 12:15:47 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkRadioMenuItem" id="outbox1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Outbox</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">True</property>
+                     <property name="group">inbox1</property>
+                     <signal name="activate" handler="on_outbox1_activate" last_modification_time="Fri, 28 Apr 2006 12:15:47 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkRadioMenuItem" id="drafts1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Drafts</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">True</property>
+                     <property name="group">inbox1</property>
+                     <signal name="activate" handler="on_drafts1_activate" last_modification_time="Fri, 28 Apr 2006 12:15:47 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkRadioMenuItem" id="sent1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Sent</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">True</property>
+                     <property name="group">inbox1</property>
+                     <signal name="activate" handler="on_sent1_activate" last_modification_time="Fri, 28 Apr 2006 12:15:47 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkRadioMenuItem" id="archive1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Archive</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">True</property>
+                     <property name="group">inbox1</property>
+                     <signal name="activate" handler="on_archive1_activate" last_modification_time="Fri, 28 Apr 2006 12:15:47 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="ViewMenuItem">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_View</property>
+             <property name="use_underline">True</property>
+
+             <child>
+               <widget class="GtkMenu" id="ViewMenuItem_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="sort1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Sort...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_sort1_activate" last_modification_time="Fri, 28 Apr 2006 12:17:29 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separator9">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="show_toolbar1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">_Show toolbar</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_show_toolbar1_activate" last_modification_time="Fri, 28 Apr 2006 12:17:29 GMT"/>
+
+                     <child>
+                       <widget class="GtkMenu" id="show_toolbar1_menu">
+
+                         <child>
+                           <widget class="GtkCheckMenuItem" id="normal_screen1">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">Normal screen</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <signal name="activate" handler="on_normal_screen1_activate" last_modification_time="Fri, 28 Apr 2006 12:17:29 GMT"/>
+                           </widget>
+                         </child>
+
+                         <child>
+                           <widget class="GtkCheckMenuItem" id="full_screen2">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">Full screen</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <signal name="activate" handler="on_full_screen2_activate" last_modification_time="Fri, 28 Apr 2006 12:17:29 GMT"/>
+                           </widget>
+                         </child>
+                       </widget>
+                     </child>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkCheckMenuItem" id="folders1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Folders</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">True</property>
+                     <signal name="activate" handler="on_folders1_activate" last_modification_time="Fri, 28 Apr 2006 12:17:29 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkCheckMenuItem" id="menu_view_attachments">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Attachments</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">True</property>
+                     <signal name="toggled" handler="on_view_attachments_toggled" last_modification_time="Fri, 09 Jun 2006 14:17:29 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkCheckMenuItem" id="full_screen1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Full screen</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">False</property>
+                     <signal name="activate" handler="on_full_screen1_activate" last_modification_time="Fri, 28 Apr 2006 12:17:29 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="EMailMenuItem">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">E-m_ail</property>
+             <property name="use_underline">True</property>
+             <signal name="activate" handler="on_e-mail1_activate" last_modification_time="Fri, 28 Apr 2006 12:12:02 GMT"/>
+
+             <child>
+               <widget class="GtkMenu" id="EMailMenuItem_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="send_&amp;_receive1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Send &amp; receive</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_send_&amp;_receive1_activate" last_modification_time="Fri, 28 Apr 2006 12:21:50 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="retrieve_e-mail_contents1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Retrieve e-mail contents</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_retrieve_e-mail_contents1_activate" last_modification_time="Fri, 28 Apr 2006 12:21:50 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="purge_attacments1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Purge attacments</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_purge_attacments1_activate" last_modification_time="Fri, 28 Apr 2006 12:21:50 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="ToolsMenuItem">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Tools</property>
+             <property name="use_underline">True</property>
+             <signal name="activate" handler="on_tools1_activate" last_modification_time="Fri, 28 Apr 2006 12:12:02 GMT"/>
+
+             <child>
+               <widget class="GtkMenu" id="ToolsMenuItem_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="OpenContactsMenuItem">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Open contacts...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_open_contacts1_activate" last_modification_time="Fri, 28 Apr 2006 12:23:17 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separator11">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="NewAccountWizardMenuItem">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">New Identity</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_new_account1_activate" last_modification_time="Fri, 28 Apr 2006 12:23:17 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="AccountSettingsMenuItem">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Identities and accounts</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_account_settings1_activate" last_modification_time="Fri, 28 Apr 2006 12:23:17 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="OptionsMenuItem">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Options</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_options1_activate" last_modification_time="Fri, 28 Apr 2006 12:23:17 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separator10">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="SearchEMailsMenuItem">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Search e-mails...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_search_e-mails1_activate" last_modification_time="Fri, 28 Apr 2006 12:23:17 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separator12">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="HelpMenuItem">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Help</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_help1_activate" last_modification_time="Fri, 28 Apr 2006 12:23:17 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="CloseMenuItem">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Close</property>
+             <property name="use_underline">True</property>
+
+             <child>
+               <widget class="GtkMenu" id="CloseMenuItem_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="about1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Close window</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_about1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="close_all_windows1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Close all windows</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_close_all_windows1_activate" last_modification_time="Fri, 28 Apr 2006 12:24:02 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">False</property>
+         <property name="fill">False</property>
+       </packing>
+      </child>
+
+      <child>
+       <widget class="GtkToolbar" id="toolbar1">
+         <property name="visible">True</property>
+         <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
+         <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
+         <property name="tooltips">True</property>
+         <property name="show_arrow">True</property>
+
+         <child>
+           <widget class="GtkToolButton" id="toolb_new_mail">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">Compose new e-mail message</property>
+             <property name="label" translatable="yes">New e-mail</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_toolb_messagin_new.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkToolButton" id="toolb_reply">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">Reply</property>
+             <property name="label" translatable="yes">Reply</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_toolb_messagin_reply.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkToolButton" id="toolb_reply_all">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">Reply all</property>
+             <property name="label" translatable="yes">Reply all</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_toolb_messagin_replytoall.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkToolButton" id="toolb_forward">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">Forward</property>
+             <property name="label" translatable="yes">Forward</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_toolb_messagin_forward.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkToolButton" id="toolb_move_to">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">Move message to other location</property>
+             <property name="label" translatable="yes">Move to...</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_toolb_messagin_moveto.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkToolButton" id="toolb_delete">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">Delete message</property>
+             <property name="label" translatable="yes">Delete</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_toolb_messagin_delete.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkToolButton" id="toolb_send_receive">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">Send and receive</property>
+             <property name="label" translatable="yes">Send &amp; receive</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_toolb_messagin_sendreceive.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">False</property>
+         <property name="fill">False</property>
+       </packing>
+      </child>
+
+      <child>
+       <widget class="GtkHPaned" id="hpaned1">
+         <property name="visible">True</property>
+         <property name="can_focus">True</property>
+         <property name="position">170</property>
+
+         <child>
+           <widget class="GtkScrolledWindow" id="folders">
+             <property name="visible">True</property>
+             <property name="can_focus">True</property>
+             <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+             <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+             <property name="shadow_type">GTK_SHADOW_NONE</property>
+             <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+             <child>
+               <placeholder/>
+             </child>
+           </widget>
+           <packing>
+             <property name="shrink">True</property>
+             <property name="resize">False</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkVPaned" id="mail_paned">
+             <property name="visible">True</property>
+             <property name="can_focus">True</property>
+             <property name="position">150</property>
+
+             <child>
+               <widget class="GtkScrolledWindow" id="mail_list">
+                 <property name="visible">True</property>
+                 <property name="can_focus">True</property>
+                 <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+                 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                 <property name="shadow_type">GTK_SHADOW_NONE</property>
+                 <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+                 <child>
+                   <placeholder/>
+                 </child>
+               </widget>
+               <packing>
+                 <property name="shrink">True</property>
+                 <property name="resize">False</property>
+               </packing>
+             </child>
+
+             <child>
+               <placeholder/>
+             </child>
+           </widget>
+           <packing>
+             <property name="shrink">True</property>
+             <property name="resize">True</property>
+           </packing>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">True</property>
+         <property name="fill">True</property>
+       </packing>
+      </child>
+
+      <child>
+       <widget class="GtkHBox" id="statusbox">
+         <property name="homogeneous">True</property>
+         <property name="spacing">0</property>
+
+         <child>
+           <widget class="GtkProgressBar" id="progressbar">
+             <property name="visible">True</property>
+             <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
+             <property name="fraction">0</property>
+             <property name="pulse_step">0.10000000149</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+           </widget>
+           <packing>
+             <property name="padding">0</property>
+             <property name="expand">False</property>
+             <property name="fill">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkStatusbar" id="statusbar">
+             <property name="visible">True</property>
+             <property name="has_resize_grip">True</property>
+           </widget>
+           <packing>
+             <property name="padding">0</property>
+             <property name="expand">False</property>
+             <property name="fill">True</property>
+           </packing>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">False</property>
+         <property name="fill">False</property>
+       </packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkWindow" id="new_mail">
+  <property name="title" translatable="yes">Modest - New message</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="default_width">800</property>
+  <property name="default_height">600</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="icon">qgn_toolb_messagin.png</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
+
+  <child>
+    <widget class="GtkVBox" id="new_mail_top_container">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child>
+       <widget class="GtkMenuBar" id="menubar2">
+         <property name="visible">True</property>
+
+         <child>
+           <widget class="GtkMenuItem" id="menuitem5">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Message</property>
+             <property name="use_underline">True</property>
+
+             <child>
+               <widget class="GtkMenu" id="menuitem5_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem6">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Send</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_new_e-mail1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separator13">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem7">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">New e-mail</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_open1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                     <accelerator key="O" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separatormenuitem1">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem8">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Delete message</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_reply1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separator14">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem9">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Select recipients...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_reply_to_all1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem10">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Check names</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_forward1_activate" last_modification_time="Fri, 28 Apr 2006 12:05:09 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="menuitem13">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Edit</property>
+             <property name="use_underline">True</property>
+
+             <child>
+               <widget class="GtkMenu" id="menuitem13_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem14">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Undo</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_undo1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separatormenuitem4">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem15">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Cut</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_cut1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem16">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Copy</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_copy1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem17">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Paste</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_paste1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem18">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Select all</property>
+                     <property name="use_underline">True</property>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="menuitem22">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Attachments</property>
+             <property name="use_underline">True</property>
+
+             <child>
+               <widget class="GtkMenu" id="menuitem22_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem23">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Attach file...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_new_folder1_activate" last_modification_time="Fri, 28 Apr 2006 12:15:47 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem24">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Insert inline image</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_manage_folders1_activate" last_modification_time="Fri, 28 Apr 2006 12:15:47 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separator15">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem25">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Remove attachment</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_details2_activate" last_modification_time="Fri, 28 Apr 2006 12:15:47 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="menuitem27">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_View</property>
+             <property name="use_underline">True</property>
+
+             <child>
+               <widget class="GtkMenu" id="menuitem27_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem28">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">_Zoom</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_sort1_activate" last_modification_time="Fri, 28 Apr 2006 12:17:29 GMT"/>
+
+                     <child>
+                       <widget class="GtkMenu" id="menuitem28_menu">
+
+                         <child>
+                           <widget class="GtkRadioMenuItem" id="50%1">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">50%</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <signal name="activate" handler="on_50%1_activate" last_modification_time="Fri, 28 Apr 2006 13:25:43 GMT"/>
+                           </widget>
+                         </child>
+
+                         <child>
+                           <widget class="GtkRadioMenuItem" id="100%1">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">100%</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <property name="group">50%1</property>
+                             <signal name="activate" handler="on_100%1_activate" last_modification_time="Fri, 28 Apr 2006 13:25:43 GMT"/>
+                           </widget>
+                         </child>
+
+                         <child>
+                           <widget class="GtkRadioMenuItem" id="150%1">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">150%</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <property name="group">50%1</property>
+                             <signal name="activate" handler="on_150%1_activate" last_modification_time="Fri, 28 Apr 2006 13:25:43 GMT"/>
+                           </widget>
+                         </child>
+
+                         <child>
+                           <widget class="GtkRadioMenuItem" id="200%1">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">200%</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <property name="group">50%1</property>
+                             <signal name="activate" handler="on_200%1_activate" last_modification_time="Fri, 28 Apr 2006 13:25:43 GMT"/>
+                           </widget>
+                         </child>
+                       </widget>
+                     </child>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem29">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Show toolbar</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_show_toolbar1_activate" last_modification_time="Fri, 28 Apr 2006 12:17:29 GMT"/>
+
+                     <child>
+                       <widget class="GtkMenu" id="menuitem29_menu">
+
+                         <child>
+                           <widget class="GtkCheckMenuItem" id="checkmenuitem1">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">Normal screen</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <signal name="activate" handler="on_normal_screen1_activate" last_modification_time="Fri, 28 Apr 2006 12:17:29 GMT"/>
+                           </widget>
+                         </child>
+
+                         <child>
+                           <widget class="GtkCheckMenuItem" id="checkmenuitem2">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">Full screen</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <signal name="activate" handler="on_full_screen2_activate" last_modification_time="Fri, 28 Apr 2006 12:17:29 GMT"/>
+                           </widget>
+                         </child>
+                       </widget>
+                     </child>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkCheckMenuItem" id="checkmenuitem4">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Full screen</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">False</property>
+                     <signal name="activate" handler="on_full_screen1_activate" last_modification_time="Fri, 28 Apr 2006 12:17:29 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separator16">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkCheckMenuItem" id="show_cc1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Show Cc</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">False</property>
+                     <signal name="activate" handler="on_show_cc1_activate" last_modification_time="Fri, 28 Apr 2006 13:25:43 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkCheckMenuItem" id="show_bcc1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Show Bcc</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">False</property>
+                     <signal name="activate" handler="on_show_bcc1_activate" last_modification_time="Fri, 28 Apr 2006 13:25:43 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="menuitem30">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Format</property>
+             <property name="use_underline">True</property>
+             <signal name="activate" handler="on_e-mail1_activate" last_modification_time="Fri, 28 Apr 2006 12:12:02 GMT"/>
+
+             <child>
+               <widget class="GtkMenu" id="menuitem30_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem31">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Font...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_send_&amp;_receive1_activate" last_modification_time="Fri, 28 Apr 2006 12:21:50 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem32">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Bullets</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_retrieve_e-mail_contents1_activate" last_modification_time="Fri, 28 Apr 2006 12:21:50 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem33">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Numbers</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_purge_attacments1_activate" last_modification_time="Fri, 28 Apr 2006 12:21:50 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="alignment1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Alignment</property>
+                     <property name="use_underline">True</property>
+
+                     <child>
+                       <widget class="GtkMenu" id="alignment1_menu">
+
+                         <child>
+                           <widget class="GtkRadioMenuItem" id="left1">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">Left</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <signal name="activate" handler="on_left1_activate" last_modification_time="Fri, 28 Apr 2006 13:28:18 GMT"/>
+                           </widget>
+                         </child>
+
+                         <child>
+                           <widget class="GtkRadioMenuItem" id="center1">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">Center</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <property name="group">left1</property>
+                             <signal name="activate" handler="on_center1_activate" last_modification_time="Fri, 28 Apr 2006 13:28:18 GMT"/>
+                           </widget>
+                         </child>
+
+                         <child>
+                           <widget class="GtkRadioMenuItem" id="right1">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">Right</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <property name="group">left1</property>
+                             <signal name="activate" handler="on_right1_activate" last_modification_time="Fri, 28 Apr 2006 13:28:18 GMT"/>
+                           </widget>
+                         </child>
+                       </widget>
+                     </child>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="background_colour1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Background colour</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_background_colour1_activate" last_modification_time="Fri, 28 Apr 2006 13:28:54 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="menuitem34">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Tools</property>
+             <property name="use_underline">True</property>
+             <signal name="activate" handler="on_tools1_activate" last_modification_time="Fri, 28 Apr 2006 12:12:02 GMT"/>
+
+             <child>
+               <widget class="GtkMenu" id="menuitem34_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem35">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Sending options...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_open_contacts1_activate" last_modification_time="Fri, 28 Apr 2006 12:23:17 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separatormenuitem9">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem36">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Find on page...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_new_account1_activate" last_modification_time="Fri, 28 Apr 2006 12:23:17 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem39">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Search e-mails...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_search_e-mails1_activate" last_modification_time="Fri, 28 Apr 2006 12:23:17 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separatormenuitem11">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem40">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Help</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_help1_activate" last_modification_time="Fri, 28 Apr 2006 12:23:17 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="security1">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Security</property>
+             <property name="use_underline">True</property>
+             <signal name="activate" handler="on_security1_activate" last_modification_time="Fri, 28 Apr 2006 13:30:35 GMT"/>
+
+             <child>
+               <widget class="GtkMenu" id="security1_menu">
+
+                 <child>
+                   <widget class="GtkRadioMenuItem" id="none1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">None</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">True</property>
+                     <signal name="activate" handler="on_none1_activate" last_modification_time="Fri, 28 Apr 2006 13:32:29 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkRadioMenuItem" id="encrypt1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Encrypt</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">False</property>
+                     <property name="group">none1</property>
+                     <signal name="activate" handler="on_encrypt1_activate" last_modification_time="Fri, 28 Apr 2006 13:32:29 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkRadioMenuItem" id="digitally_sign1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Digitally sign</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">False</property>
+                     <property name="group">none1</property>
+                     <signal name="activate" handler="on_digitally_sign1_activate" last_modification_time="Fri, 28 Apr 2006 13:32:29 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkRadioMenuItem" id="digitally_sign_and_encrypt1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Digitally sign and encrypt</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">False</property>
+                     <property name="group">none1</property>
+                     <signal name="activate" handler="on_digitally_sign_and_encrypt1_activate" last_modification_time="Fri, 28 Apr 2006 13:32:29 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="menuitem41">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Close</property>
+             <property name="use_underline">True</property>
+
+             <child>
+               <widget class="GtkMenu" id="menuitem41_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem42">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Close window</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_about1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem43">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Close all windows</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_close_all_windows1_activate" last_modification_time="Fri, 28 Apr 2006 12:24:02 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">False</property>
+         <property name="fill">False</property>
+       </packing>
+      </child>
+
+      <child>
+       <widget class="GtkToolbar" id="toolbar2">
+         <property name="visible">True</property>
+         <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
+         <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
+         <property name="tooltips">True</property>
+         <property name="show_arrow">True</property>
+
+         <child>
+           <widget class="GtkToolButton" id="toolb_send">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">Send message</property>
+             <property name="label" translatable="yes">Send</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_toolb_messagin_send.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkToolButton" id="toolb_attach">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">Add attachment</property>
+             <property name="label" translatable="yes">Attach</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_list_gene_attacpap.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkToolButton" id="toolb_recipients">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">Add reipients</property>
+             <property name="label" translatable="yes">Recipients</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_list_gene_contacts.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">False</property>
+         <property name="fill">False</property>
+       </packing>
+      </child>
+
+      <child>
+       <widget class="GtkVPaned" id="vpaned2">
+         <property name="visible">True</property>
+         <property name="can_focus">True</property>
+         <property name="position">65</property>
+
+         <child>
+           <widget class="GtkTable" id="table1">
+             <property name="border_width">10</property>
+             <property name="visible">True</property>
+             <property name="n_rows">2</property>
+             <property name="n_columns">2</property>
+             <property name="homogeneous">False</property>
+             <property name="row_spacing">10</property>
+             <property name="column_spacing">10</property>
+
+             <child>
+               <widget class="GtkLabel" id="label1">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">&lt;b&gt;To:&lt;/b&gt;</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">True</property>
+                 <property name="justify">GTK_JUSTIFY_RIGHT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">1</property>
+                 <property name="top_attach">0</property>
+                 <property name="bottom_attach">1</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="label2">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">&lt;b&gt;Subject:&lt;/b&gt;</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">True</property>
+                 <property name="justify">GTK_JUSTIFY_RIGHT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">1</property>
+                 <property name="top_attach">1</property>
+                 <property name="bottom_attach">2</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkEntry" id="to_entry">
+                 <property name="visible">True</property>
+                 <property name="can_focus">True</property>
+                 <property name="editable">True</property>
+                 <property name="visibility">True</property>
+                 <property name="max_length">0</property>
+                 <property name="text" translatable="yes"></property>
+                 <property name="has_frame">True</property>
+                 <property name="invisible_char">*</property>
+                 <property name="activates_default">False</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">1</property>
+                 <property name="right_attach">2</property>
+                 <property name="top_attach">0</property>
+                 <property name="bottom_attach">1</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkEntry" id="subject_entry">
+                 <property name="visible">True</property>
+                 <property name="can_focus">True</property>
+                 <property name="editable">True</property>
+                 <property name="visibility">True</property>
+                 <property name="max_length">0</property>
+                 <property name="text" translatable="yes"></property>
+                 <property name="has_frame">True</property>
+                 <property name="invisible_char">*</property>
+                 <property name="activates_default">False</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">1</property>
+                 <property name="right_attach">2</property>
+                 <property name="top_attach">1</property>
+                 <property name="bottom_attach">2</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+           </widget>
+           <packing>
+             <property name="shrink">False</property>
+             <property name="resize">False</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkScrolledWindow" id="scrolledwindow9">
+             <property name="visible">True</property>
+             <property name="can_focus">True</property>
+             <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+             <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+             <property name="shadow_type">GTK_SHADOW_IN</property>
+             <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+             <child>
+               <widget class="GtkTextView" id="body_view">
+                 <property name="visible">True</property>
+                 <property name="can_focus">True</property>
+                 <property name="editable">True</property>
+                 <property name="overwrite">False</property>
+                 <property name="accepts_tab">True</property>
+                 <property name="justification">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap_mode">GTK_WRAP_NONE</property>
+                 <property name="cursor_visible">True</property>
+                 <property name="pixels_above_lines">0</property>
+                 <property name="pixels_below_lines">0</property>
+                 <property name="pixels_inside_wrap">0</property>
+                 <property name="left_margin">0</property>
+                 <property name="right_margin">0</property>
+                 <property name="indent">0</property>
+                 <property name="text" translatable="yes">     </property>
+               </widget>
+             </child>
+           </widget>
+           <packing>
+             <property name="shrink">True</property>
+             <property name="resize">True</property>
+           </packing>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">True</property>
+         <property name="fill">True</property>
+       </packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkWindow" id="viewer">
+  <property name="title" translatable="yes">Modest - Message viewer</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="default_width">800</property>
+  <property name="default_height">600</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="icon">qgn_toolb_messagin.png</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
+
+  <child>
+    <widget class="GtkVBox" id="viewer_top_container">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child>
+       <widget class="GtkMenuBar" id="menubar3">
+         <property name="visible">True</property>
+
+         <child>
+           <widget class="GtkMenuItem" id="menuitem44">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Message</property>
+             <property name="use_underline">True</property>
+
+             <child>
+               <widget class="GtkMenu" id="menuitem44_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="reply">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Reply</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_new_reply_activate" last_modification_time="Wed, 03 May 2006 12:23:21 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="reply_to_all2">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Reply to all</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_reply_to_all_activate" last_modification_time="Wed, 03 May 2006 12:23:21 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="forward2">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Forward</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_forward2_activate" last_modification_time="Wed, 03 May 2006 12:16:14 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separatormenuitem12">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem46">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">New e-mail</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_open1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                     <accelerator key="N" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separatormenuitem13">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem47">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Delete</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_delete_activate" last_modification_time="Wed, 03 May 2006 12:16:14 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="menuitem50">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Edit</property>
+             <property name="use_underline">True</property>
+
+             <child>
+               <widget class="GtkMenu" id="menuitem50_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem52">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Cut</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_cut1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem53">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Copy</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_copy1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem54">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Paste</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_paste1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem55">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Select all</property>
+                     <property name="use_underline">True</property>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="menuitem56">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Attachments</property>
+             <property name="use_underline">True</property>
+
+             <child>
+               <widget class="GtkMenu" id="menuitem56_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="view_attacments">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">View</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_view_attachments_activate" last_modification_time="Wed, 03 May 2006 12:20:03 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="save_attachments">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Save attachments...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_save_attachments_activate" last_modification_time="Wed, 03 May 2006 12:20:03 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="purge_attachments">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Purge attachments</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_purge_attachments_activate" last_modification_time="Wed, 03 May 2006 12:20:03 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="menuitem60">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_View</property>
+             <property name="use_underline">True</property>
+
+             <child>
+               <widget class="GtkMenu" id="menuitem60_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem61">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Zoom</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_sort1_activate" last_modification_time="Fri, 28 Apr 2006 12:17:29 GMT"/>
+
+                     <child>
+                       <widget class="GtkMenu" id="menuitem61_menu">
+
+                         <child>
+                           <widget class="GtkRadioMenuItem" id="radiomenuitem1">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">50%</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <signal name="activate" handler="on_50%1_activate" last_modification_time="Fri, 28 Apr 2006 13:25:43 GMT"/>
+                           </widget>
+                         </child>
+
+                         <child>
+                           <widget class="GtkRadioMenuItem" id="radiomenuitem2">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">100%</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <signal name="activate" handler="on_100%1_activate" last_modification_time="Fri, 28 Apr 2006 13:25:43 GMT"/>
+                           </widget>
+                         </child>
+
+                         <child>
+                           <widget class="GtkRadioMenuItem" id="radiomenuitem3">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">150%</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <signal name="activate" handler="on_150%1_activate" last_modification_time="Fri, 28 Apr 2006 13:25:43 GMT"/>
+                           </widget>
+                         </child>
+
+                         <child>
+                           <widget class="GtkRadioMenuItem" id="radiomenuitem4">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">200%</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <signal name="activate" handler="on_200%1_activate" last_modification_time="Fri, 28 Apr 2006 13:25:43 GMT"/>
+                           </widget>
+                         </child>
+                       </widget>
+                     </child>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem62">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Show toolbar</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_show_toolbar1_activate" last_modification_time="Fri, 28 Apr 2006 12:17:29 GMT"/>
+
+                     <child>
+                       <widget class="GtkMenu" id="menuitem62_menu">
+
+                         <child>
+                           <widget class="GtkCheckMenuItem" id="checkmenuitem5">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">Normal screen</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <signal name="activate" handler="on_normal_screen1_activate" last_modification_time="Fri, 28 Apr 2006 12:17:29 GMT"/>
+                           </widget>
+                         </child>
+
+                         <child>
+                           <widget class="GtkCheckMenuItem" id="checkmenuitem6">
+                             <property name="visible">True</property>
+                             <property name="label" translatable="yes">Full screen</property>
+                             <property name="use_underline">True</property>
+                             <property name="active">True</property>
+                             <signal name="activate" handler="on_full_screen2_activate" last_modification_time="Fri, 28 Apr 2006 12:17:29 GMT"/>
+                           </widget>
+                         </child>
+                       </widget>
+                     </child>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkCheckMenuItem" id="checkmenuitem7">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Full screen</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">False</property>
+                     <signal name="activate" handler="on_full_screen1_activate" last_modification_time="Fri, 28 Apr 2006 12:17:29 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separatormenuitem17">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkCheckMenuItem" id="checkmenuitem8">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Next message</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">False</property>
+                     <signal name="activate" handler="on_show_next_message_activate" last_modification_time="Wed, 03 May 2006 09:44:13 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkCheckMenuItem" id="checkmenuitem9">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Previous message</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">False</property>
+                     <signal name="activate" handler="on_show_previous_message_activate" last_modification_time="Wed, 03 May 2006 09:44:13 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="menuitem69">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Tools</property>
+             <property name="use_underline">True</property>
+             <signal name="activate" handler="on_tools1_activate" last_modification_time="Fri, 28 Apr 2006 12:12:02 GMT"/>
+
+             <child>
+               <widget class="GtkMenu" id="menuitem69_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="add_contact">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Add contact...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_add_contact_activate" last_modification_time="Wed, 03 May 2006 12:22:42 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separatormenuitem18">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="font_settings1">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Font settings...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_font_settings1_activate" last_modification_time="Wed, 03 May 2006 12:22:42 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separator17">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem71">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Find on page...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_new_account1_activate" last_modification_time="Fri, 28 Apr 2006 12:23:17 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem72">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Search e-mails...</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_search_e-mails1_activate" last_modification_time="Fri, 28 Apr 2006 12:23:17 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkSeparatorMenuItem" id="separatormenuitem19">
+                     <property name="visible">True</property>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem73">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Help</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_help1_activate" last_modification_time="Fri, 28 Apr 2006 12:23:17 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="menuitem74">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Security</property>
+             <property name="use_underline">True</property>
+             <signal name="activate" handler="on_security1_activate" last_modification_time="Fri, 28 Apr 2006 13:30:35 GMT"/>
+
+             <child>
+               <widget class="GtkMenu" id="menuitem74_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="details">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Details</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_details_activate" last_modification_time="Wed, 03 May 2006 12:22:42 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkMenuItem" id="menuitem75">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">_Close</property>
+             <property name="use_underline">True</property>
+
+             <child>
+               <widget class="GtkMenu" id="menuitem75_menu">
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem76">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Close window</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_about1_activate" last_modification_time="Fri, 28 Apr 2006 11:10:18 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkMenuItem" id="menuitem77">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Close all windows</property>
+                     <property name="use_underline">True</property>
+                     <signal name="activate" handler="on_close_all_windows1_activate" last_modification_time="Fri, 28 Apr 2006 12:24:02 GMT"/>
+                   </widget>
+                 </child>
+               </widget>
+             </child>
+           </widget>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">False</property>
+         <property name="fill">False</property>
+       </packing>
+      </child>
+
+      <child>
+       <widget class="GtkToolbar" id="toolbar3">
+         <property name="visible">True</property>
+         <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
+         <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
+         <property name="tooltips">True</property>
+         <property name="show_arrow">True</property>
+
+         <child>
+           <widget class="GtkToolButton" id="reply">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">Reply</property>
+             <property name="label" translatable="yes">Reply</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_toolb_messagin_reply.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkToolButton" id="reply all">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">Reply all</property>
+             <property name="label" translatable="yes">Reply all</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_toolb_messagin_replytoall.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkToolButton" id="forward">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">Forward</property>
+             <property name="label" translatable="yes">Forward</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_toolb_messagin_forward.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkToolButton" id="save_attacment">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">Save attached files</property>
+             <property name="label" translatable="yes">Save Attacments...</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_toolb_messagin_saveattachment.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkToolButton" id="move_to">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">Move message to other location</property>
+             <property name="label" translatable="yes">Move to...</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_toolb_messagin_moveto.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkToolButton" id="toolbutton12">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">View previous message</property>
+             <property name="label" translatable="yes">Previous</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_toolb_messagin_previous.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkToolButton" id="toolbutton13">
+             <property name="visible">True</property>
+             <property name="tooltip" translatable="yes">View next message</property>
+             <property name="label" translatable="yes">Next</property>
+             <property name="use_underline">True</property>
+             <property name="icon">qgn_toolb_messagin_next.png</property>
+             <property name="visible_horizontal">True</property>
+             <property name="visible_vertical">True</property>
+             <property name="is_important">False</property>
+           </widget>
+           <packing>
+             <property name="expand">False</property>
+             <property name="homogeneous">True</property>
+           </packing>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">False</property>
+         <property name="fill">False</property>
+       </packing>
+      </child>
+
+      <child>
+       <widget class="GtkVPaned" id="vpaned3">
+         <property name="visible">True</property>
+         <property name="can_focus">True</property>
+         <property name="position">100</property>
+
+         <child>
+           <widget class="GtkTable" id="table2">
+             <property name="border_width">10</property>
+             <property name="visible">True</property>
+             <property name="n_rows">4</property>
+             <property name="n_columns">2</property>
+             <property name="homogeneous">False</property>
+             <property name="row_spacing">10</property>
+             <property name="column_spacing">10</property>
+
+             <child>
+               <widget class="GtkLabel" id="label_from">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">&lt;b&gt;From:&lt;/b&gt;</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">True</property>
+                 <property name="justify">GTK_JUSTIFY_RIGHT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">1</property>
+                 <property name="top_attach">0</property>
+                 <property name="bottom_attach">1</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="label_subject">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">&lt;b&gt;Subject:&lt;/b&gt;</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">True</property>
+                 <property name="justify">GTK_JUSTIFY_RIGHT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">1</property>
+                 <property name="top_attach">2</property>
+                 <property name="bottom_attach">3</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="label_date">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">&lt;b&gt;Date:&lt;/b&gt;</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">True</property>
+                 <property name="justify">GTK_JUSTIFY_RIGHT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">1</property>
+                 <property name="top_attach">3</property>
+                 <property name="bottom_attach">4</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="from">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes"></property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">1</property>
+                 <property name="right_attach">2</property>
+                 <property name="top_attach">0</property>
+                 <property name="bottom_attach">1</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="to">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes"></property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">1</property>
+                 <property name="right_attach">2</property>
+                 <property name="top_attach">1</property>
+                 <property name="bottom_attach">2</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="subject">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes"></property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">1</property>
+                 <property name="right_attach">2</property>
+                 <property name="top_attach">2</property>
+                 <property name="bottom_attach">3</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="date">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes"></property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">1</property>
+                 <property name="right_attach">2</property>
+                 <property name="top_attach">3</property>
+                 <property name="bottom_attach">4</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="label_to">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">&lt;b&gt;To:&lt;/b&gt;</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">True</property>
+                 <property name="justify">GTK_JUSTIFY_RIGHT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">1</property>
+                 <property name="top_attach">1</property>
+                 <property name="bottom_attach">2</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+           </widget>
+           <packing>
+             <property name="shrink">False</property>
+             <property name="resize">False</property>
+           </packing>
+         </child>
+
+         <child>
+           <placeholder/>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">True</property>
+         <property name="fill">True</property>
+       </packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkDialog" id="account_wizard">
+  <property name="border_width">10</property>
+  <property name="title" translatable="yes">Account Setup</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="default_width">500</property>
+  <property name="default_height">400</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="account_wizzard_top_container">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+       <widget class="GtkHButtonBox" id="dialog1-action_area">
+         <property name="visible">True</property>
+         <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+         <child>
+           <widget class="GtkButton" id="AWFinishButton">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes" context="yes">Finish</property>
+             <property name="use_underline">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <property name="response_id">-3</property>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkButton" id="AWBackButton">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes" context="yes">Back</property>
+             <property name="use_underline">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <property name="response_id">2</property>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkButton" id="AWNextButton">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes" context="yes">Next</property>
+             <property name="use_underline">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <property name="response_id">1</property>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkButton" id="AWCancelButton">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes" context="yes">Cancel</property>
+             <property name="use_underline">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <property name="response_id">-6</property>
+           </widget>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">False</property>
+         <property name="fill">True</property>
+         <property name="pack_type">GTK_PACK_END</property>
+       </packing>
+      </child>
+
+      <child>
+       <widget class="GtkNotebook" id="AWNotebook">
+         <property name="visible">True</property>
+         <property name="show_tabs">False</property>
+         <property name="show_border">False</property>
+         <property name="tab_pos">GTK_POS_TOP</property>
+         <property name="scrollable">False</property>
+         <property name="enable_popup">False</property>
+
+         <child>
+           <widget class="GtkVBox" id="PresetPage">
+             <property name="visible">True</property>
+             <property name="homogeneous">False</property>
+             <property name="spacing">10</property>
+
+             <child>
+               <widget class="GtkHBox" id="hbox17">
+                 <property name="visible">True</property>
+                 <property name="homogeneous">False</property>
+                 <property name="spacing">0</property>
+
+                 <child>
+                   <widget class="GtkLabel" id="label53">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes" context="yes">Mailbox setup wizard allows you to define mailboxes for use on your device.</property>
+                     <property name="use_underline">False</property>
+                     <property name="use_markup">False</property>
+                     <property name="justify">GTK_JUSTIFY_LEFT</property>
+                     <property name="wrap">False</property>
+                     <property name="selectable">False</property>
+                     <property name="xalign">0.5</property>
+                     <property name="yalign">0.5</property>
+                     <property name="xpad">0</property>
+                     <property name="ypad">10</property>
+                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                     <property name="width_chars">-1</property>
+                     <property name="single_line_mode">False</property>
+                     <property name="angle">0</property>
+                   </widget>
+                   <packing>
+                     <property name="padding">0</property>
+                     <property name="expand">False</property>
+                     <property name="fill">False</property>
+                   </packing>
+                 </child>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">False</property>
+                 <property name="fill">False</property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkHSeparator" id="hseparator6">
+                 <property name="visible">True</property>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">False</property>
+                 <property name="fill">True</property>
+               </packing>
+             </child>
+           </widget>
+           <packing>
+             <property name="tab_expand">False</property>
+             <property name="tab_fill">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="label57">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes"></property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">0.5</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="type">tab</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkTable" id="EMailAdressPage">
+             <property name="visible">True</property>
+             <property name="n_rows">2</property>
+             <property name="n_columns">2</property>
+             <property name="homogeneous">False</property>
+             <property name="row_spacing">10</property>
+             <property name="column_spacing">10</property>
+
+             <child>
+               <widget class="GtkLabel" id="AWEMailAddressLabel">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes" context="yes">E-mail address:</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">1</property>
+                 <property name="top_attach">0</property>
+                 <property name="bottom_attach">1</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkEntry" id="AWEMailAddressEntry">
+                 <property name="visible">True</property>
+                 <property name="editable">True</property>
+                 <property name="visibility">True</property>
+                 <property name="max_length">0</property>
+                 <property name="text" translatable="yes"></property>
+                 <property name="has_frame">True</property>
+                 <property name="invisible_char">*</property>
+                 <property name="activates_default">False</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">1</property>
+                 <property name="right_attach">2</property>
+                 <property name="top_attach">0</property>
+                 <property name="bottom_attach">1</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="AWRealNameLabel">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes" context="yes">Your name:</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">1</property>
+                 <property name="top_attach">1</property>
+                 <property name="bottom_attach">2</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkEntry" id="AWRealNameEntry">
+                 <property name="visible">True</property>
+                 <property name="editable">True</property>
+                 <property name="visibility">True</property>
+                 <property name="max_length">0</property>
+                 <property name="text" translatable="yes"></property>
+                 <property name="has_frame">True</property>
+                 <property name="invisible_char">*</property>
+                 <property name="activates_default">False</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">1</property>
+                 <property name="right_attach">2</property>
+                 <property name="top_attach">1</property>
+                 <property name="bottom_attach">2</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+           </widget>
+           <packing>
+             <property name="tab_expand">False</property>
+             <property name="tab_fill">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="label64">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes"></property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">0.5</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="type">tab</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkTable" id="IncomingPage">
+             <property name="visible">True</property>
+             <property name="n_rows">5</property>
+             <property name="n_columns">3</property>
+             <property name="homogeneous">False</property>
+             <property name="row_spacing">10</property>
+             <property name="column_spacing">10</property>
+
+             <child>
+               <widget class="GtkLabel" id="AWPasswordLabel">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes" context="yes">Password:</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">1</property>
+                 <property name="top_attach">4</property>
+                 <property name="bottom_attach">5</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="AWUserNameLabel">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes" context="yes">User name:</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">1</property>
+                 <property name="top_attach">3</property>
+                 <property name="bottom_attach">4</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="AWInServerLabel">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes" context="yes">Incoming server:</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">1</property>
+                 <property name="top_attach">2</property>
+                 <property name="bottom_attach">3</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="label15">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes" context="yes">Mailbox type:</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">1</property>
+                 <property name="top_attach">0</property>
+                 <property name="bottom_attach">1</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkEntry" id="AWInServerComboEntry">
+                 <property name="visible">True</property>
+                 <property name="editable">True</property>
+                 <property name="visibility">True</property>
+                 <property name="max_length">0</property>
+                 <property name="text" translatable="yes"></property>
+                 <property name="has_frame">True</property>
+                 <property name="invisible_char">*</property>
+                 <property name="activates_default">False</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">1</property>
+                 <property name="right_attach">2</property>
+                 <property name="top_attach">2</property>
+                 <property name="bottom_attach">3</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkComboBox" id="AWMailboxtypeComboBox">
+                 <property name="visible">True</property>
+                 <property name="items" translatable="yes" context="yes">IMAP
+POP
+LOCAL</property>
+                 <property name="add_tearoffs">False</property>
+                 <property name="focus_on_click">True</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">1</property>
+                 <property name="right_attach">3</property>
+                 <property name="top_attach">0</property>
+                 <property name="bottom_attach">1</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options">fill</property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkCheckButton" id="AWInSSLCheckButton">
+                 <property name="visible">True</property>
+                 <property name="sensitive">False</property>
+                 <property name="can_focus">True</property>
+                 <property name="label" translatable="yes">Use SSL</property>
+                 <property name="use_underline">True</property>
+                 <property name="relief">GTK_RELIEF_NORMAL</property>
+                 <property name="focus_on_click">True</property>
+                 <property name="active">False</property>
+                 <property name="inconsistent">False</property>
+                 <property name="draw_indicator">True</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">2</property>
+                 <property name="right_attach">3</property>
+                 <property name="top_attach">2</property>
+                 <property name="bottom_attach">3</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="MailboxTypeNoteLabel">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes" context="yes">Note: You cannot edit mailbox type once setup is complete!</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">1</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">10</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">3</property>
+                 <property name="top_attach">1</property>
+                 <property name="bottom_attach">2</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkEntry" id="AWUserNameEntry">
+                 <property name="visible">True</property>
+                 <property name="editable">True</property>
+                 <property name="visibility">True</property>
+                 <property name="max_length">0</property>
+                 <property name="text" translatable="yes"></property>
+                 <property name="has_frame">True</property>
+                 <property name="invisible_char">*</property>
+                 <property name="activates_default">False</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">1</property>
+                 <property name="right_attach">3</property>
+                 <property name="top_attach">3</property>
+                 <property name="bottom_attach">4</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkEntry" id="AWPasswordEntry">
+                 <property name="visible">True</property>
+                 <property name="editable">True</property>
+                 <property name="visibility">False</property>
+                 <property name="max_length">0</property>
+                 <property name="text" translatable="yes"></property>
+                 <property name="has_frame">True</property>
+                 <property name="invisible_char">*</property>
+                 <property name="activates_default">False</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">1</property>
+                 <property name="right_attach">3</property>
+                 <property name="top_attach">4</property>
+                 <property name="bottom_attach">5</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+           </widget>
+           <packing>
+             <property name="tab_expand">False</property>
+             <property name="tab_fill">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="label65">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes"></property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">0.5</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="type">tab</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkTable" id="OutgoingPage">
+             <property name="visible">True</property>
+             <property name="n_rows">4</property>
+             <property name="n_columns">3</property>
+             <property name="homogeneous">False</property>
+             <property name="row_spacing">10</property>
+             <property name="column_spacing">10</property>
+
+             <child>
+               <widget class="GtkLabel" id="AWOutPasswordLabel">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">Password:</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">1</property>
+                 <property name="top_attach">3</property>
+                 <property name="bottom_attach">4</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="AWOutUserLabel">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">User name:</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">1</property>
+                 <property name="top_attach">2</property>
+                 <property name="bottom_attach">3</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="label70">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes"></property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">1</property>
+                 <property name="top_attach">1</property>
+                 <property name="bottom_attach">2</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkLabel" id="AWOutServerLabel">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes" context="yes">Outgoing server:</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">0</property>
+                 <property name="right_attach">1</property>
+                 <property name="top_attach">0</property>
+                 <property name="bottom_attach">1</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkEntry" id="AWOutServerComboEntry">
+                 <property name="visible">True</property>
+                 <property name="editable">True</property>
+                 <property name="visibility">True</property>
+                 <property name="max_length">0</property>
+                 <property name="text" translatable="yes"></property>
+                 <property name="has_frame">True</property>
+                 <property name="invisible_char">*</property>
+                 <property name="activates_default">False</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">1</property>
+                 <property name="right_attach">2</property>
+                 <property name="top_attach">0</property>
+                 <property name="bottom_attach">1</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkCheckButton" id="AWOutSSLCheckButton">
+                 <property name="visible">True</property>
+                 <property name="sensitive">False</property>
+                 <property name="can_focus">True</property>
+                 <property name="label" translatable="yes">Use SSL</property>
+                 <property name="use_underline">True</property>
+                 <property name="relief">GTK_RELIEF_NORMAL</property>
+                 <property name="focus_on_click">True</property>
+                 <property name="active">False</property>
+                 <property name="inconsistent">False</property>
+                 <property name="draw_indicator">True</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">2</property>
+                 <property name="right_attach">3</property>
+                 <property name="top_attach">0</property>
+                 <property name="bottom_attach">1</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkCheckButton" id="AWUseIncomingCheckButton">
+                 <property name="visible">True</property>
+                 <property name="can_focus">True</property>
+                 <property name="label" translatable="yes">Use incoming settings</property>
+                 <property name="use_underline">True</property>
+                 <property name="relief">GTK_RELIEF_NORMAL</property>
+                 <property name="focus_on_click">True</property>
+                 <property name="active">True</property>
+                 <property name="inconsistent">False</property>
+                 <property name="draw_indicator">True</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">1</property>
+                 <property name="right_attach">3</property>
+                 <property name="top_attach">1</property>
+                 <property name="bottom_attach">2</property>
+                 <property name="x_options">fill</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkEntry" id="AWOutUserNameEntry">
+                 <property name="visible">True</property>
+                 <property name="sensitive">False</property>
+                 <property name="can_focus">True</property>
+                 <property name="editable">True</property>
+                 <property name="visibility">True</property>
+                 <property name="max_length">0</property>
+                 <property name="text" translatable="yes"></property>
+                 <property name="has_frame">True</property>
+                 <property name="invisible_char">*</property>
+                 <property name="activates_default">False</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">1</property>
+                 <property name="right_attach">3</property>
+                 <property name="top_attach">2</property>
+                 <property name="bottom_attach">3</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkEntry" id="AWOutPasswordEntry">
+                 <property name="visible">True</property>
+                 <property name="sensitive">False</property>
+                 <property name="can_focus">True</property>
+                 <property name="editable">True</property>
+                 <property name="visibility">False</property>
+                 <property name="max_length">0</property>
+                 <property name="text" translatable="yes"></property>
+                 <property name="has_frame">True</property>
+                 <property name="invisible_char">*</property>
+                 <property name="activates_default">False</property>
+               </widget>
+               <packing>
+                 <property name="left_attach">1</property>
+                 <property name="right_attach">3</property>
+                 <property name="top_attach">3</property>
+                 <property name="bottom_attach">4</property>
+                 <property name="y_options"></property>
+               </packing>
+             </child>
+           </widget>
+           <packing>
+             <property name="tab_expand">False</property>
+             <property name="tab_fill">False</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="label58">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes"></property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">0.5</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="type">tab</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkHBox" id="FinishPage">
+             <property name="visible">True</property>
+             <property name="homogeneous">False</property>
+             <property name="spacing">0</property>
+
+             <child>
+               <widget class="GtkLabel" id="label56">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes" context="yes">Mailbox setup is complete.
+
+Tap 'Finish' to save or 'Cancel' to discard the settings.
+Tap 'Advanced' to edit the advanced e-mail settings.</property>
+                 <property name="use_underline">False</property>
+                 <property name="use_markup">False</property>
+                 <property name="justify">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap">False</property>
+                 <property name="selectable">False</property>
+                 <property name="xalign">0.5</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">False</property>
+                 <property name="fill">False</property>
+               </packing>
+             </child>
+           </widget>
+           <packing>
+             <property name="tab_expand">False</property>
+             <property name="tab_fill">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="label60">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes"></property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">0.5</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="type">tab</property>
+           </packing>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">False</property>
+         <property name="fill">False</property>
+       </packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkDialog" id="IdentitySetupDialog">
+  <property name="border_width">10</property>
+  <property name="title" translatable="yes">Identity setup</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="default_width">500</property>
+  <property name="default_height">400</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="IdentitySetup_top_container">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+       <widget class="GtkHButtonBox" id="dialog-action_area1">
+         <property name="visible">True</property>
+         <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+         <child>
+           <widget class="GtkButton" id="button1">
+             <property name="visible">True</property>
+             <property name="can_default">True</property>
+             <property name="can_focus">True</property>
+             <property name="label">gtk-cancel</property>
+             <property name="use_stock">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <property name="response_id">-6</property>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkButton" id="button2">
+             <property name="visible">True</property>
+             <property name="can_default">True</property>
+             <property name="can_focus">True</property>
+             <property name="label">gtk-ok</property>
+             <property name="use_stock">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <property name="response_id">-5</property>
+           </widget>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">False</property>
+         <property name="fill">True</property>
+         <property name="pack_type">GTK_PACK_END</property>
+       </packing>
+      </child>
+
+      <child>
+       <widget class="GtkTable" id="table10">
+         <property name="visible">True</property>
+         <property name="n_rows">7</property>
+         <property name="n_columns">2</property>
+         <property name="homogeneous">False</property>
+         <property name="row_spacing">10</property>
+         <property name="column_spacing">10</property>
+
+         <child>
+           <widget class="GtkLabel" id="ISEMailAddressLabel">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">E-mail address:</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">1</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="left_attach">0</property>
+             <property name="right_attach">1</property>
+             <property name="top_attach">1</property>
+             <property name="bottom_attach">2</property>
+             <property name="x_options">fill</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="ISRealNameLabel">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">Your name:</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">1</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="left_attach">0</property>
+             <property name="right_attach">1</property>
+             <property name="top_attach">2</property>
+             <property name="bottom_attach">3</property>
+             <property name="x_options">fill</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkEntry" id="ISNameEntry">
+             <property name="visible">True</property>
+             <property name="can_focus">True</property>
+             <property name="editable">True</property>
+             <property name="visibility">True</property>
+             <property name="max_length">0</property>
+             <property name="text" translatable="yes"></property>
+             <property name="has_frame">True</property>
+             <property name="invisible_char">*</property>
+             <property name="activates_default">False</property>
+           </widget>
+           <packing>
+             <property name="left_attach">1</property>
+             <property name="right_attach">2</property>
+             <property name="top_attach">2</property>
+             <property name="bottom_attach">3</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkEntry" id="ISEMailAddress">
+             <property name="visible">True</property>
+             <property name="can_focus">True</property>
+             <property name="editable">True</property>
+             <property name="visibility">True</property>
+             <property name="max_length">0</property>
+             <property name="text" translatable="yes"></property>
+             <property name="has_frame">True</property>
+             <property name="invisible_char">*</property>
+             <property name="activates_default">False</property>
+           </widget>
+           <packing>
+             <property name="left_attach">1</property>
+             <property name="right_attach">2</property>
+             <property name="top_attach">1</property>
+             <property name="bottom_attach">2</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkCheckButton" id="ISUseSignatureCheckButton">
+             <property name="visible">True</property>
+             <property name="can_focus">True</property>
+             <property name="label" translatable="yes"></property>
+             <property name="use_underline">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <property name="active">False</property>
+             <property name="inconsistent">False</property>
+             <property name="draw_indicator">True</property>
+           </widget>
+           <packing>
+             <property name="left_attach">1</property>
+             <property name="right_attach">2</property>
+             <property name="top_attach">5</property>
+             <property name="bottom_attach">6</property>
+             <property name="x_options">fill</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="ISUseSignatureLabel">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">Use Signature:</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">1</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="left_attach">0</property>
+             <property name="right_attach">1</property>
+             <property name="top_attach">5</property>
+             <property name="bottom_attach">6</property>
+             <property name="x_options">fill</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkScrolledWindow" id="scrolledwindow11">
+             <property name="visible">True</property>
+             <property name="can_focus">True</property>
+             <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+             <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+             <property name="shadow_type">GTK_SHADOW_IN</property>
+             <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+             <child>
+               <widget class="GtkTextView" id="ISSignatureTextView">
+                 <property name="visible">True</property>
+                 <property name="sensitive">False</property>
+                 <property name="can_focus">True</property>
+                 <property name="editable">True</property>
+                 <property name="overwrite">False</property>
+                 <property name="accepts_tab">True</property>
+                 <property name="justification">GTK_JUSTIFY_LEFT</property>
+                 <property name="wrap_mode">GTK_WRAP_NONE</property>
+                 <property name="cursor_visible">True</property>
+                 <property name="pixels_above_lines">0</property>
+                 <property name="pixels_below_lines">0</property>
+                 <property name="pixels_inside_wrap">0</property>
+                 <property name="left_margin">0</property>
+                 <property name="right_margin">0</property>
+                 <property name="indent">0</property>
+                 <property name="text" translatable="yes"></property>
+               </widget>
+             </child>
+           </widget>
+           <packing>
+             <property name="left_attach">0</property>
+             <property name="right_attach">2</property>
+             <property name="top_attach">6</property>
+             <property name="bottom_attach">7</property>
+             <property name="x_options">fill</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="ISIdentityLabel">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">Identity</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">1</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="left_attach">0</property>
+             <property name="right_attach">1</property>
+             <property name="top_attach">0</property>
+             <property name="bottom_attach">1</property>
+             <property name="x_options">fill</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkEntry" id="ISIdentityEntry">
+             <property name="visible">True</property>
+             <property name="can_focus">True</property>
+             <property name="editable">True</property>
+             <property name="visibility">True</property>
+             <property name="max_length">0</property>
+             <property name="text" translatable="yes"></property>
+             <property name="has_frame">True</property>
+             <property name="invisible_char">*</property>
+             <property name="activates_default">False</property>
+           </widget>
+           <packing>
+             <property name="left_attach">1</property>
+             <property name="right_attach">2</property>
+             <property name="top_attach">0</property>
+             <property name="bottom_attach">1</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="ISOutServerLabel">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">Outgoing Server:</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">1</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="left_attach">0</property>
+             <property name="right_attach">1</property>
+             <property name="top_attach">4</property>
+             <property name="bottom_attach">5</property>
+             <property name="x_options">fill</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="ISReplyToLabel">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">Reply-To:</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">1</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="left_attach">0</property>
+             <property name="right_attach">1</property>
+             <property name="top_attach">3</property>
+             <property name="bottom_attach">4</property>
+             <property name="x_options">fill</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkComboBox" id="ISOutServerComboBox">
+             <property name="visible">True</property>
+             <property name="add_tearoffs">False</property>
+             <property name="focus_on_click">True</property>
+           </widget>
+           <packing>
+             <property name="left_attach">1</property>
+             <property name="right_attach">2</property>
+             <property name="top_attach">4</property>
+             <property name="bottom_attach">5</property>
+             <property name="x_options">fill</property>
+             <property name="y_options">fill</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkEntry" id="ISReplyToEntry">
+             <property name="visible">True</property>
+             <property name="can_focus">True</property>
+             <property name="editable">True</property>
+             <property name="visibility">True</property>
+             <property name="max_length">0</property>
+             <property name="text" translatable="yes"></property>
+             <property name="has_frame">True</property>
+             <property name="invisible_char">*</property>
+             <property name="activates_default">False</property>
+           </widget>
+           <packing>
+             <property name="left_attach">1</property>
+             <property name="right_attach">2</property>
+             <property name="top_attach">3</property>
+             <property name="bottom_attach">4</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">True</property>
+         <property name="fill">True</property>
+       </packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkDialog" id="IdentitiesAndAccountsDialog">
+  <property name="title" translatable="yes">Identities and Accounts</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="default_width">500</property>
+  <property name="default_height">400</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="IdentitiesAndAccounts_top_container">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+       <widget class="GtkHButtonBox" id="dialog-action_area3">
+         <property name="visible">True</property>
+         <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+         <child>
+           <widget class="GtkButton" id="okbutton3">
+             <property name="visible">True</property>
+             <property name="can_default">True</property>
+             <property name="can_focus">True</property>
+             <property name="label">gtk-close</property>
+             <property name="use_stock">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <property name="response_id">-7</property>
+           </widget>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">False</property>
+         <property name="fill">True</property>
+         <property name="pack_type">GTK_PACK_END</property>
+       </packing>
+      </child>
+
+      <child>
+       <widget class="GtkNotebook" id="notebook2">
+         <property name="visible">True</property>
+         <property name="can_focus">True</property>
+         <property name="show_tabs">True</property>
+         <property name="show_border">True</property>
+         <property name="tab_pos">GTK_POS_TOP</property>
+         <property name="scrollable">False</property>
+         <property name="enable_popup">False</property>
+
+         <child>
+           <widget class="GtkHBox" id="IdentitiesPage">
+             <property name="visible">True</property>
+             <property name="homogeneous">False</property>
+             <property name="spacing">10</property>
+
+             <child>
+               <widget class="GtkScrolledWindow" id="scrolledwindow12">
+                 <property name="visible">True</property>
+                 <property name="can_focus">True</property>
+                 <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                 <property name="shadow_type">GTK_SHADOW_IN</property>
+                 <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+                 <child>
+                   <widget class="GtkTreeView" id="IdentitiesTreeview">
+                     <property name="visible">True</property>
+                     <property name="can_focus">True</property>
+                     <property name="headers_visible">True</property>
+                     <property name="rules_hint">False</property>
+                     <property name="reorderable">False</property>
+                     <property name="enable_search">True</property>
+                     <property name="fixed_height_mode">False</property>
+                     <property name="hover_selection">False</property>
+                     <property name="hover_expand">False</property>
+                   </widget>
+                 </child>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">True</property>
+                 <property name="fill">True</property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkVBox" id="IdentityButtons">
+                 <property name="visible">True</property>
+                 <property name="homogeneous">False</property>
+                 <property name="spacing">10</property>
+
+                 <child>
+                   <widget class="GtkButton" id="IdentityCreateButton">
+                     <property name="visible">True</property>
+                     <property name="can_focus">True</property>
+                     <property name="label" translatable="yes">Create new</property>
+                     <property name="use_underline">True</property>
+                     <property name="relief">GTK_RELIEF_NORMAL</property>
+                     <property name="focus_on_click">True</property>
+                   </widget>
+                   <packing>
+                     <property name="padding">0</property>
+                     <property name="expand">False</property>
+                     <property name="fill">False</property>
+                   </packing>
+                 </child>
+
+                 <child>
+                   <widget class="GtkButton" id="IdentityEditButton">
+                     <property name="visible">True</property>
+                     <property name="sensitive">False</property>
+                     <property name="can_focus">True</property>
+                     <property name="label" translatable="yes">Edit</property>
+                     <property name="use_underline">True</property>
+                     <property name="relief">GTK_RELIEF_NORMAL</property>
+                     <property name="focus_on_click">True</property>
+                   </widget>
+                   <packing>
+                     <property name="padding">0</property>
+                     <property name="expand">False</property>
+                     <property name="fill">False</property>
+                   </packing>
+                 </child>
+
+                 <child>
+                   <widget class="GtkButton" id="IdentityDeleteButton">
+                     <property name="visible">True</property>
+                     <property name="sensitive">False</property>
+                     <property name="can_focus">True</property>
+                     <property name="label" translatable="yes">Delete</property>
+                     <property name="use_underline">True</property>
+                     <property name="relief">GTK_RELIEF_NORMAL</property>
+                     <property name="focus_on_click">True</property>
+                   </widget>
+                   <packing>
+                     <property name="padding">0</property>
+                     <property name="expand">False</property>
+                     <property name="fill">False</property>
+                   </packing>
+                 </child>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">False</property>
+                 <property name="fill">False</property>
+               </packing>
+             </child>
+           </widget>
+           <packing>
+             <property name="tab_expand">False</property>
+             <property name="tab_fill">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="IdentitiesTabLabel">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">Identities</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">0.5</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="type">tab</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkHBox" id="AccountsPage">
+             <property name="visible">True</property>
+             <property name="homogeneous">False</property>
+             <property name="spacing">10</property>
+
+             <child>
+               <widget class="GtkScrolledWindow" id="scrolledwindow13">
+                 <property name="visible">True</property>
+                 <property name="can_focus">True</property>
+                 <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                 <property name="shadow_type">GTK_SHADOW_IN</property>
+                 <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+                 <child>
+                   <widget class="GtkTreeView" id="AccountsTreeview">
+                     <property name="visible">True</property>
+                     <property name="can_focus">True</property>
+                     <property name="headers_visible">True</property>
+                     <property name="rules_hint">False</property>
+                     <property name="reorderable">False</property>
+                     <property name="enable_search">True</property>
+                     <property name="fixed_height_mode">False</property>
+                     <property name="hover_selection">False</property>
+                     <property name="hover_expand">False</property>
+                   </widget>
+                 </child>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">True</property>
+                 <property name="fill">True</property>
+               </packing>
+             </child>
+
+             <child>
+               <widget class="GtkVBox" id="AccountButtons">
+                 <property name="visible">True</property>
+                 <property name="homogeneous">False</property>
+                 <property name="spacing">10</property>
+
+                 <child>
+                   <widget class="GtkButton" id="AccountCreateButton">
+                     <property name="visible">True</property>
+                     <property name="can_focus">True</property>
+                     <property name="label" translatable="yes">Create new</property>
+                     <property name="use_underline">True</property>
+                     <property name="relief">GTK_RELIEF_NORMAL</property>
+                     <property name="focus_on_click">True</property>
+                   </widget>
+                   <packing>
+                     <property name="padding">0</property>
+                     <property name="expand">False</property>
+                     <property name="fill">False</property>
+                   </packing>
+                 </child>
+
+                 <child>
+                   <widget class="GtkButton" id="AccountEditButton">
+                     <property name="visible">True</property>
+                     <property name="sensitive">False</property>
+                     <property name="can_focus">True</property>
+                     <property name="label" translatable="yes">Edit</property>
+                     <property name="use_underline">True</property>
+                     <property name="relief">GTK_RELIEF_NORMAL</property>
+                     <property name="focus_on_click">True</property>
+                   </widget>
+                   <packing>
+                     <property name="padding">0</property>
+                     <property name="expand">False</property>
+                     <property name="fill">False</property>
+                   </packing>
+                 </child>
+
+                 <child>
+                   <widget class="GtkButton" id="AccountDeleteButton">
+                     <property name="visible">True</property>
+                     <property name="sensitive">False</property>
+                     <property name="can_focus">True</property>
+                     <property name="label" translatable="yes">Delete</property>
+                     <property name="use_underline">True</property>
+                     <property name="relief">GTK_RELIEF_NORMAL</property>
+                     <property name="focus_on_click">True</property>
+                   </widget>
+                   <packing>
+                     <property name="padding">0</property>
+                     <property name="expand">False</property>
+                     <property name="fill">False</property>
+                   </packing>
+                 </child>
+               </widget>
+               <packing>
+                 <property name="padding">0</property>
+                 <property name="expand">False</property>
+                 <property name="fill">False</property>
+               </packing>
+             </child>
+           </widget>
+           <packing>
+             <property name="tab_expand">False</property>
+             <property name="tab_fill">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="AccountsTabLabel">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">Accounts</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">0.5</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="type">tab</property>
+           </packing>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">True</property>
+         <property name="fill">True</property>
+       </packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkDialog" id="AccountSetupDialog">
+  <property name="border_width">10</property>
+  <property name="title" translatable="yes">Account setup</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="default_width">500</property>
+  <property name="default_height">400</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox1">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+       <widget class="GtkHButtonBox" id="dialog-action_area4">
+         <property name="visible">True</property>
+         <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+         <child>
+           <widget class="GtkButton" id="cancelbutton4">
+             <property name="visible">True</property>
+             <property name="can_default">True</property>
+             <property name="can_focus">True</property>
+             <property name="label">gtk-cancel</property>
+             <property name="use_stock">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <property name="response_id">-6</property>
+           </widget>
+         </child>
+
+         <child>
+           <widget class="GtkButton" id="okbutton4">
+             <property name="visible">True</property>
+             <property name="can_default">True</property>
+             <property name="can_focus">True</property>
+             <property name="label">gtk-ok</property>
+             <property name="use_stock">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <property name="response_id">-5</property>
+           </widget>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">False</property>
+         <property name="fill">True</property>
+         <property name="pack_type">GTK_PACK_END</property>
+       </packing>
+      </child>
+
+      <child>
+       <widget class="GtkTable" id="table11">
+         <property name="visible">True</property>
+         <property name="n_rows">5</property>
+         <property name="n_columns">3</property>
+         <property name="homogeneous">False</property>
+         <property name="row_spacing">10</property>
+         <property name="column_spacing">10</property>
+
+         <child>
+           <widget class="GtkLabel" id="ASTypeLabel">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">Type:</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">0</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="left_attach">0</property>
+             <property name="right_attach">1</property>
+             <property name="top_attach">1</property>
+             <property name="bottom_attach">2</property>
+             <property name="x_options">fill</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="ASHostnameLabel">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">Hostname:</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">0</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="left_attach">0</property>
+             <property name="right_attach">1</property>
+             <property name="top_attach">2</property>
+             <property name="bottom_attach">3</property>
+             <property name="x_options">fill</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkCheckButton" id="ASUseSSLCheckButton">
+             <property name="visible">True</property>
+             <property name="sensitive">False</property>
+             <property name="can_focus">True</property>
+             <property name="label" translatable="yes">Use SSL</property>
+             <property name="use_underline">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <property name="active">False</property>
+             <property name="inconsistent">False</property>
+             <property name="draw_indicator">True</property>
+           </widget>
+           <packing>
+             <property name="left_attach">2</property>
+             <property name="right_attach">3</property>
+             <property name="top_attach">2</property>
+             <property name="bottom_attach">3</property>
+             <property name="x_options">fill</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="ASUsernameLabel">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">User name:</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">0</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="left_attach">0</property>
+             <property name="right_attach">1</property>
+             <property name="top_attach">3</property>
+             <property name="bottom_attach">4</property>
+             <property name="x_options">fill</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="ASPassowordLabel">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">Password:</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">0</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="left_attach">0</property>
+             <property name="right_attach">1</property>
+             <property name="top_attach">4</property>
+             <property name="bottom_attach">5</property>
+             <property name="x_options">fill</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkEntry" id="ASHostnameEntry">
+             <property name="visible">True</property>
+             <property name="can_focus">True</property>
+             <property name="editable">True</property>
+             <property name="visibility">True</property>
+             <property name="max_length">0</property>
+             <property name="text" translatable="yes"></property>
+             <property name="has_frame">True</property>
+             <property name="invisible_char">*</property>
+             <property name="activates_default">False</property>
+           </widget>
+           <packing>
+             <property name="left_attach">1</property>
+             <property name="right_attach">2</property>
+             <property name="top_attach">2</property>
+             <property name="bottom_attach">3</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkEntry" id="ASUsernameEntry">
+             <property name="visible">True</property>
+             <property name="can_focus">True</property>
+             <property name="editable">True</property>
+             <property name="visibility">True</property>
+             <property name="max_length">0</property>
+             <property name="text" translatable="yes"></property>
+             <property name="has_frame">True</property>
+             <property name="invisible_char">*</property>
+             <property name="activates_default">False</property>
+           </widget>
+           <packing>
+             <property name="left_attach">1</property>
+             <property name="right_attach">3</property>
+             <property name="top_attach">3</property>
+             <property name="bottom_attach">4</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkEntry" id="ASPasswordEntry">
+             <property name="visible">True</property>
+             <property name="can_focus">True</property>
+             <property name="editable">True</property>
+             <property name="visibility">False</property>
+             <property name="max_length">0</property>
+             <property name="text" translatable="yes"></property>
+             <property name="has_frame">True</property>
+             <property name="invisible_char">*</property>
+             <property name="activates_default">False</property>
+           </widget>
+           <packing>
+             <property name="left_attach">1</property>
+             <property name="right_attach">3</property>
+             <property name="top_attach">4</property>
+             <property name="bottom_attach">5</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="ASDisplaynameLabel">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">Name:</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">0</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="left_attach">0</property>
+             <property name="right_attach">1</property>
+             <property name="top_attach">0</property>
+             <property name="bottom_attach">1</property>
+             <property name="x_options">fill</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkEntry" id="ASDisplaynameEntry">
+             <property name="visible">True</property>
+             <property name="can_focus">True</property>
+             <property name="editable">True</property>
+             <property name="visibility">True</property>
+             <property name="max_length">0</property>
+             <property name="text" translatable="yes"></property>
+             <property name="has_frame">True</property>
+             <property name="invisible_char">*</property>
+             <property name="activates_default">False</property>
+           </widget>
+           <packing>
+             <property name="left_attach">1</property>
+             <property name="right_attach">3</property>
+             <property name="top_attach">0</property>
+             <property name="bottom_attach">1</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkComboBox" id="ASProtocolComboBox">
+             <property name="visible">True</property>
+             <property name="items" translatable="yes">SMTP
+IMAP
+POP
+LOCAL</property>
+             <property name="add_tearoffs">False</property>
+             <property name="focus_on_click">True</property>
+           </widget>
+           <packing>
+             <property name="left_attach">1</property>
+             <property name="right_attach">3</property>
+             <property name="top_attach">1</property>
+             <property name="bottom_attach">2</property>
+             <property name="x_options">fill</property>
+             <property name="y_options">fill</property>
+           </packing>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">True</property>
+         <property name="fill">True</property>
+       </packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+</glade-interface>
diff --git a/src/hildon/pixmaps/qgn_addr_icon_user_group.png b/src/hildon/pixmaps/qgn_addr_icon_user_group.png
new file mode 100644 (file)
index 0000000..c5b9f6c
Binary files /dev/null and b/src/hildon/pixmaps/qgn_addr_icon_user_group.png differ
diff --git a/src/hildon/pixmaps/qgn_list_gene_attacpap.png b/src/hildon/pixmaps/qgn_list_gene_attacpap.png
new file mode 100644 (file)
index 0000000..0448a7d
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_gene_attacpap.png differ
diff --git a/src/hildon/pixmaps/qgn_list_gene_fldr_clp.png b/src/hildon/pixmaps/qgn_list_gene_fldr_clp.png
new file mode 100644 (file)
index 0000000..0034909
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_gene_fldr_clp.png differ
diff --git a/src/hildon/pixmaps/qgn_list_gene_fldr_cls.png b/src/hildon/pixmaps/qgn_list_gene_fldr_cls.png
new file mode 100644 (file)
index 0000000..976155c
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_gene_fldr_cls.png differ
diff --git a/src/hildon/pixmaps/qgn_list_gene_fldr_exp.png b/src/hildon/pixmaps/qgn_list_gene_fldr_exp.png
new file mode 100644 (file)
index 0000000..28a583f
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_gene_fldr_exp.png differ
diff --git a/src/hildon/pixmaps/qgn_list_gene_fldr_opn.png b/src/hildon/pixmaps/qgn_list_gene_fldr_opn.png
new file mode 100644 (file)
index 0000000..2bf04f2
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_gene_fldr_opn.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin.png b/src/hildon/pixmaps/qgn_list_messagin.png
new file mode 100644 (file)
index 0000000..173f657
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_drafts.png b/src/hildon/pixmaps/qgn_list_messagin_drafts.png
new file mode 100644 (file)
index 0000000..c16cdcd
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_drafts.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_editor.png b/src/hildon/pixmaps/qgn_list_messagin_editor.png
new file mode 100644 (file)
index 0000000..c68ef5e
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_editor.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr.png b/src/hildon/pixmaps/qgn_list_messagin_hdr.png
new file mode 100644 (file)
index 0000000..c61cc32
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_encrypted.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_encrypted.png
new file mode 100644 (file)
index 0000000..9c27686
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_encrypted.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_encrypted_high.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_encrypted_high.png
new file mode 100644 (file)
index 0000000..699a464
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_encrypted_high.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_encrypted_low.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_encrypted_low.png
new file mode 100644 (file)
index 0000000..10287d5
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_encrypted_low.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_high.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_high.png
new file mode 100644 (file)
index 0000000..00328bc
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_high.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_high_unread.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_high_unread.png
new file mode 100644 (file)
index 0000000..0c1f206
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_high_unread.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_low.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_low.png
new file mode 100644 (file)
index 0000000..7b9493b
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_low.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_low_unread.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_low_unread.png
new file mode 100644 (file)
index 0000000..61d8b56
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_low_unread.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_signed.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_signed.png
new file mode 100644 (file)
index 0000000..ff95a21
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_signed.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_signed_high.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_signed_high.png
new file mode 100644 (file)
index 0000000..3071acd
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_signed_high.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_signed_low.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_signed_low.png
new file mode 100644 (file)
index 0000000..014d02f
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_signed_low.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_unread.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_unread.png
new file mode 100644 (file)
index 0000000..1c0c5f9
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_unread.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_encrypted.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_encrypted.png
new file mode 100644 (file)
index 0000000..c44ecb5
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_encrypted.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_encrypted_high.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_encrypted_high.png
new file mode 100644 (file)
index 0000000..7fc702d
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_encrypted_high.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_encrypted_low.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_encrypted_low.png
new file mode 100644 (file)
index 0000000..cc0e90e
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_encrypted_low.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_signed.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_signed.png
new file mode 100644 (file)
index 0000000..ec1cc23
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_signed.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_signed_high.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_signed_high.png
new file mode 100644 (file)
index 0000000..c9c4bbb
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_signed_high.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_signed_low.png b/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_signed_low.png
new file mode 100644 (file)
index 0000000..9e60c21
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_hdr_unread_signed_low.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_inbox.png b/src/hildon/pixmaps/qgn_list_messagin_inbox.png
new file mode 100644 (file)
index 0000000..eb79b09
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_inbox.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail.png b/src/hildon/pixmaps/qgn_list_messagin_mail.png
new file mode 100644 (file)
index 0000000..4038776
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_deleted.png b/src/hildon/pixmaps/qgn_list_messagin_mail_deleted.png
new file mode 100644 (file)
index 0000000..0e8df2d
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_deleted.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_read.png b/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_read.png
new file mode 100644 (file)
index 0000000..2395b98
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_read.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_read_high.png b/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_read_high.png
new file mode 100644 (file)
index 0000000..2ddb3f5
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_read_high.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_read_low.png b/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_read_low.png
new file mode 100644 (file)
index 0000000..6bf9e47
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_read_low.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_unread.png b/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_unread.png
new file mode 100644 (file)
index 0000000..e85b88c
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_unread.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_unread_high.png b/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_unread_high.png
new file mode 100644 (file)
index 0000000..4a34249
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_unread_high.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_unread_low.png b/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_unread_low.png
new file mode 100644 (file)
index 0000000..76dd826
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_encrypted_unread_low.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_high.png b/src/hildon/pixmaps/qgn_list_messagin_mail_high.png
new file mode 100644 (file)
index 0000000..92799de
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_high.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_high_unread.png b/src/hildon/pixmaps/qgn_list_messagin_mail_high_unread.png
new file mode 100644 (file)
index 0000000..f19237b
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_high_unread.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_low.png b/src/hildon/pixmaps/qgn_list_messagin_mail_low.png
new file mode 100644 (file)
index 0000000..6ee833c
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_low.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_low_unread.png b/src/hildon/pixmaps/qgn_list_messagin_mail_low_unread.png
new file mode 100644 (file)
index 0000000..739fc52
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_low_unread.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_signed_read.png b/src/hildon/pixmaps/qgn_list_messagin_mail_signed_read.png
new file mode 100644 (file)
index 0000000..5f7dd8f
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_signed_read.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_signed_read_high.png b/src/hildon/pixmaps/qgn_list_messagin_mail_signed_read_high.png
new file mode 100644 (file)
index 0000000..8d00684
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_signed_read_high.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_signed_read_low.png b/src/hildon/pixmaps/qgn_list_messagin_mail_signed_read_low.png
new file mode 100644 (file)
index 0000000..0c6b647
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_signed_read_low.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_signed_unread.png b/src/hildon/pixmaps/qgn_list_messagin_mail_signed_unread.png
new file mode 100644 (file)
index 0000000..7ff25a5
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_signed_unread.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_signed_unread_high.png b/src/hildon/pixmaps/qgn_list_messagin_mail_signed_unread_high.png
new file mode 100644 (file)
index 0000000..c25a609
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_signed_unread_high.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_signed_unread_low.png b/src/hildon/pixmaps/qgn_list_messagin_mail_signed_unread_low.png
new file mode 100644 (file)
index 0000000..b07cacb
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_signed_unread_low.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_mail_unread.png b/src/hildon/pixmaps/qgn_list_messagin_mail_unread.png
new file mode 100644 (file)
index 0000000..3d15a38
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_mail_unread.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_outbox.png b/src/hildon/pixmaps/qgn_list_messagin_outbox.png
new file mode 100644 (file)
index 0000000..2b5a10a
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_outbox.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_sent.png b/src/hildon/pixmaps/qgn_list_messagin_sent.png
new file mode 100644 (file)
index 0000000..73c8c27
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_sent.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messagin_viewer.png b/src/hildon/pixmaps/qgn_list_messagin_viewer.png
new file mode 100644 (file)
index 0000000..2ee8ca1
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messagin_viewer.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messaging_high.png b/src/hildon/pixmaps/qgn_list_messaging_high.png
new file mode 100644 (file)
index 0000000..ed8cd61
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messaging_high.png differ
diff --git a/src/hildon/pixmaps/qgn_list_messaging_low.png b/src/hildon/pixmaps/qgn_list_messaging_low.png
new file mode 100644 (file)
index 0000000..fe2ff2c
Binary files /dev/null and b/src/hildon/pixmaps/qgn_list_messaging_low.png differ
diff --git a/src/hildon/pixmaps/qgn_widg_datedit.png b/src/hildon/pixmaps/qgn_widg_datedit.png
new file mode 100644 (file)
index 0000000..b942504
Binary files /dev/null and b/src/hildon/pixmaps/qgn_widg_datedit.png differ