static guint signals[LAST_SIGNAL] = {0};
static void
+add_date_time_header (ModestMailHeaderView *mail_header, const gchar *name, time_t date)
+{
+ const guint BUF_SIZE = 64;
+ gchar date_buf [BUF_SIZE];
+ gchar time_buf [BUF_SIZE];
+
+ ModestMailHeaderViewPriv *priv = MODEST_MAIL_HEADER_VIEW_GET_PRIVATE (mail_header);
+ GtkWidget *hbox, *date_hbox, *time_hbox;
+ GtkWidget *label;
+ gchar *bolded_field = NULL;
+
+ modest_text_utils_strftime (date_buf, BUF_SIZE, "%x", date);
+ modest_text_utils_strftime (time_buf, BUF_SIZE, "%X", date);
+
+ hbox = gtk_hbox_new (FALSE, 48);
+ date_hbox = gtk_hbox_new (FALSE, 12);
+ time_hbox = gtk_hbox_new (FALSE, 12);
+
+ label = gtk_label_new (NULL);
+ bolded_field = g_strconcat ("<b>", name, "</b>", NULL);
+ gtk_label_set_markup (GTK_LABEL (label), bolded_field);
+ g_free (bolded_field);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
+ gtk_box_pack_start (GTK_BOX (date_hbox), label, FALSE, FALSE, 0);
+ gtk_size_group_add_widget (priv->labels_size_group, label);
+
+ label = gtk_label_new(date_buf);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
+ gtk_box_pack_start (GTK_BOX (date_hbox), label, TRUE, TRUE, 0);
+
+ gtk_box_pack_start (GTK_BOX (hbox), date_hbox, FALSE, FALSE, 0);
+
+ label = gtk_label_new(NULL);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
+ bolded_field = g_strconcat ("<b>", _("mail_va_time"), "</b>", NULL);
+ gtk_label_set_markup (GTK_LABEL (label), bolded_field);
+ g_free (bolded_field);
+ gtk_box_pack_start (GTK_BOX (time_hbox), label, FALSE, FALSE, 0);
+
+ label = gtk_label_new(time_buf);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
+ gtk_box_pack_start (GTK_BOX (time_hbox), label, TRUE, TRUE, 0);
+
+ gtk_box_pack_start (GTK_BOX (hbox), time_hbox, TRUE, TRUE, 0);
+
+ gtk_box_pack_start (GTK_BOX (priv->headers_vbox), hbox, FALSE, FALSE, 0);
+ gtk_widget_show (hbox);
+}
+
+static void
activate_recpt (GtkWidget *recpt_view, const gchar *address, gpointer user_data)
{
ModestMailHeaderView * view = MODEST_MAIL_HEADER_VIEW (user_data);
g_signal_emit (G_OBJECT (view), signals[RECPT_ACTIVATED_SIGNAL], 0, address);
}
+#if 0 /* This function is not used. murrayc. */
static void
add_header (ModestMailHeaderView *widget, const gchar *field, const gchar *value)
{
GtkWidget *label_field, *label_value;
GtkWidget *scroll_text;
GtkTextBuffer *text_buffer;
+ gchar *bolded_field = NULL;
hbox = gtk_hbox_new (FALSE, 12);
label_field = gtk_label_new (NULL);
- gtk_label_set_markup (GTK_LABEL (label_field), field);
+ if (field)
+ bolded_field = g_strconcat ("<b>", field, "</b>", NULL);
+ gtk_label_set_markup (GTK_LABEL (label_field), bolded_field);
+ g_free (bolded_field);
gtk_misc_set_alignment (GTK_MISC (label_field), 0.0, 0.0);
scroll_text = modest_scroll_text_new (NULL, 2);
label_value = (GtkWidget *) modest_scroll_text_get_text_view (MODEST_SCROLL_TEXT (scroll_text));
gtk_widget_show (hbox);
}
+#endif
+
static void
add_recpt_header (ModestMailHeaderView *widget, const gchar *field, const gchar *value)
ModestMailHeaderViewPriv *priv = MODEST_MAIL_HEADER_VIEW_GET_PRIVATE (widget);
GtkWidget *hbox;
GtkWidget *label_field, *label_value;
+ gchar *bolded_field = NULL;
hbox = gtk_hbox_new (FALSE, 12);
label_field = gtk_label_new (NULL);
- gtk_label_set_markup (GTK_LABEL (label_field), field);
+ if (field != NULL)
+ bolded_field = g_strconcat ("<b>", field, "</b>", NULL);
+ gtk_label_set_markup (GTK_LABEL (label_field), bolded_field);
+ g_free (bolded_field);
gtk_misc_set_alignment (GTK_MISC (label_field), 0.0, 0.0);
label_value = modest_recpt_view_new ();
modest_recpt_view_set_recipients (MODEST_RECPT_VIEW(label_value), value);
if (header && G_IS_OBJECT (header))
{
const gchar *to, *from, *subject, *bcc, *cc;
+ GtkWidget *subject_box, *subject_label;
g_object_ref (G_OBJECT (header));
priv->header = header;
cc = tny_header_get_cc (header);
bcc = tny_header_get_bcc (header);
+ subject_box = gtk_hbox_new (FALSE, 12);
+ subject_label = gtk_label_new (NULL);
if (subject)
- add_header (MODEST_MAIL_HEADER_VIEW (self), _("<b>Subject:</b>"), subject);
+ gtk_label_set_text (GTK_LABEL (subject_label), subject);
+ else
+ gtk_label_set_text (GTK_LABEL (subject_label), _("mail_va_no_subject"));
+ gtk_label_set_single_line_mode (GTK_LABEL (subject_label), TRUE);
+ gtk_label_set_ellipsize (GTK_LABEL (subject_label), PANGO_ELLIPSIZE_END);
+ gtk_label_set_selectable (GTK_LABEL (subject_label), TRUE);
+ gtk_misc_set_alignment (GTK_MISC (subject_label), 0.0, 0.0);
+
+ /* TODO: code disabled until we can get real priority information from message */
+/* if (tny_header_get_flags (header) & TNY_HEADER_FLAG_PRIORITY) { */
+/* GtkWidget *priority_icon = gtk_image_new_from_icon_name ("qgn_list_messaging_high", GTK_ICON_SIZE_MENU); */
+/* gtk_box_pack_start (GTK_BOX (subject_box), priority_icon, FALSE, FALSE, 0); */
+/* } */
+ gtk_box_pack_start (GTK_BOX (subject_box), subject_label, TRUE, TRUE, 0);
if (priv->is_outgoing) {
- gchar *sent = modest_text_utils_get_display_date (tny_header_get_date_sent (header));
- gtk_label_set_markup (GTK_LABEL (priv->fromto_label), _("<b>To:</b>"));
+ gchar *bolded_label = g_strconcat ("<b>", _("mail_va_to"), "</b>", NULL);
+ gtk_label_set_markup (GTK_LABEL (priv->fromto_label), bolded_label);
+ g_free (bolded_label);
if (to)
modest_recpt_view_set_recipients (MODEST_RECPT_VIEW (priv->fromto_contents), to);
+ if (cc)
+ add_recpt_header (MODEST_MAIL_HEADER_VIEW (self), _("mail_va_cc"), cc);
+ if (bcc)
+ add_recpt_header (MODEST_MAIL_HEADER_VIEW (self), _("mail_va_hotfix1"), bcc);
+ if (priv->is_draft&& from)
+ add_recpt_header (MODEST_MAIL_HEADER_VIEW (self), _("mail_va_from"), from);
+ modest_mail_header_view_add_custom_header (MODEST_MAIL_HEADER_VIEW (self), _("mail_va_subject"), subject_box, TRUE, TRUE);
if (priv->is_draft)
- add_header (MODEST_MAIL_HEADER_VIEW (self), _("<b>Last saved:</b>"), sent);
+ add_date_time_header (MODEST_MAIL_HEADER_VIEW (self), _("fixme_Last saved:"), tny_header_get_date_sent (header));
else
- add_header (MODEST_MAIL_HEADER_VIEW (self), _("<b>Sent:</b>"), sent);
- g_free (sent);
+ add_date_time_header (MODEST_MAIL_HEADER_VIEW (self), _("fixme_Sent:"), tny_header_get_date_sent (header));
} else {
- gchar *received = modest_text_utils_get_display_date (tny_header_get_date_received (header));
- gtk_label_set_markup (GTK_LABEL (priv->fromto_label), _("<b>From:</b>"));
+ gchar *bolded_label = g_strconcat ("<b>", _("mail_va_from"), "</b>", NULL);
+ gtk_label_set_markup (GTK_LABEL (priv->fromto_label), bolded_label);
+ g_free (bolded_label);
if (from)
modest_recpt_view_set_recipients (MODEST_RECPT_VIEW (priv->fromto_contents), from);
- add_header (MODEST_MAIL_HEADER_VIEW (self), _("<b>Received:</b>"), received);
- g_free (received);
+ if (cc)
+ add_recpt_header (MODEST_MAIL_HEADER_VIEW (self), _("mail_va_cc"), cc);
+ if (bcc)
+ add_recpt_header (MODEST_MAIL_HEADER_VIEW (self), _("mail_va_hotfix1"), bcc);
+ if (to)
+ add_recpt_header (MODEST_MAIL_HEADER_VIEW (self), _("mail_va_to"), to);
+ modest_mail_header_view_add_custom_header (MODEST_MAIL_HEADER_VIEW (self), _("mail_va_subject"), subject_box, TRUE, TRUE);
+ add_date_time_header (MODEST_MAIL_HEADER_VIEW (self), _("fixme_Received:"), tny_header_get_date_received (header));
}
- if (cc)
- add_recpt_header (MODEST_MAIL_HEADER_VIEW (self), _("<b>Cc:</b>"), cc);
- if (bcc)
- add_recpt_header (MODEST_MAIL_HEADER_VIEW (self), _("<b>Bcc:</b>"), bcc);
}
gtk_widget_show_all (GTK_WIDGET (self));
gtk_widget_queue_draw (GTK_WIDGET (priv->expander));
}
+const GtkWidget *
+modest_mail_header_view_add_custom_header (ModestMailHeaderView *header_view,
+ const gchar *label,
+ GtkWidget *custom_widget,
+ gboolean with_expander,
+ gboolean start)
+{
+ ModestMailHeaderViewPriv *priv;
+ g_return_val_if_fail (MODEST_IS_MAIL_HEADER_VIEW (header_view), NULL);
+ GtkWidget *hbox;
+ GtkWidget *label_field;
+ gchar *bolded_field = NULL;
+
+ priv = MODEST_MAIL_HEADER_VIEW_GET_PRIVATE (header_view);
+ hbox = gtk_hbox_new (FALSE, 12);
+ label_field = gtk_label_new (NULL);
+ if (label != NULL)
+ bolded_field = g_strconcat ("<b>", label, "</b>", NULL);
+ gtk_label_set_markup (GTK_LABEL (label_field), bolded_field);
+ g_free (bolded_field);
+ gtk_misc_set_alignment (GTK_MISC (label_field), 0.0, 0.0);
+ gtk_box_pack_start (GTK_BOX (hbox), label_field, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox), custom_widget, TRUE, TRUE, 0);
+ gtk_size_group_add_widget (priv->labels_size_group, label_field);
+
+ if (with_expander) {
+ if (start)
+ gtk_box_pack_start (GTK_BOX (priv->headers_vbox), hbox, FALSE, FALSE, 0);
+ else
+ gtk_box_pack_end (GTK_BOX (priv->headers_vbox), hbox, FALSE, FALSE, 0);
+ } else {
+ if (start)
+ gtk_box_pack_start (GTK_BOX (priv->main_vbox), hbox, FALSE, FALSE, 0);
+ else
+ gtk_box_pack_end (GTK_BOX (priv->main_vbox), hbox, FALSE, FALSE, 0);
+ }
+
+ return hbox;
+}
+
/**
* modest_mail_header_view_new:
*
g_type_class_add_private (object_class, sizeof (ModestMailHeaderViewPriv));
signals[RECPT_ACTIVATED_SIGNAL] =
- g_signal_new ("recpt-activated",
+ g_signal_new ("recpt_activated",
G_TYPE_FROM_CLASS (object_class),
G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
G_STRUCT_OFFSET(ModestMailHeaderViewClass, recpt_activated),