static GtkWidget* get_grid (MuMsg *msg) { GtkWidget *grid; int row; row = 0; grid = gtk_grid_new (); /* 5 2 */ gtk_grid_insert_column (GTK_GRID(grid), 0); gtk_grid_insert_column (GTK_GRID(grid), 1); if (add_row (grid, row, "From", mu_msg_get_from (msg), TRUE)) ++row; if (add_row (grid, row, "To", mu_msg_get_to (msg), FALSE)) ++row; if (add_row (grid, row, "Cc", mu_msg_get_cc (msg), FALSE)) ++row; if (add_row (grid, row, "Subject", mu_msg_get_subject (msg), TRUE)) ++row; if (add_row (grid, row, "Date", mu_date_str_s ("%c", mu_msg_get_date (msg)),TRUE)) ++row; return grid; }
/* we ignore fields for now */ static gboolean view_msg_plain (MuMsg *msg, const gchar *fields, gboolean summary, gboolean color) { gchar *attachs; time_t date; const GSList *lst; print_field ("From", mu_msg_get_from (msg), color); print_field ("To", mu_msg_get_to (msg), color); print_field ("Cc", mu_msg_get_cc (msg), color); print_field ("Bcc", mu_msg_get_bcc (msg), color); print_field ("Subject", mu_msg_get_subject (msg), color); if ((date = mu_msg_get_date (msg))) print_field ("Date", mu_date_str_s ("%c", date), color); if ((lst = mu_msg_get_tags (msg))) { gchar *tags; tags = mu_str_from_list (lst,','); print_field ("Tags", tags, color); g_free (tags); } if ((attachs = get_attach_str (msg))) { print_field ("Attachments", attachs, color); g_free (attachs); } body_or_summary (msg, summary, color); return TRUE; }
GtkWidget * get_table (MuMsg *msg) { GtkWidget *table; int row; row = 0; table = gtk_table_new (5, 2, FALSE); if (add_row (table, row, "From", mu_msg_get_from (msg), TRUE)) ++row; if (add_row (table, row, "To", mu_msg_get_to (msg), FALSE)) ++row; if (add_row (table, row, "Cc", mu_msg_get_cc (msg), FALSE)) ++row; if (add_row (table, row, "Subject", mu_msg_get_subject (msg), TRUE)) ++row; if (add_row (table, row, "Date", mu_date_str_s ("%c", mu_msg_get_date (msg)),TRUE)) ++row; gtk_table_resize (GTK_TABLE(table), row, 2); return table; }
static void msg_contact_foreach_doc (MuMsg *msg, MuMsgContactForeachFunc func, gpointer user_data) { addresses_foreach (mu_msg_get_from (msg), MU_MSG_CONTACT_TYPE_FROM, func, user_data); addresses_foreach (mu_msg_get_to (msg), MU_MSG_CONTACT_TYPE_TO, func, user_data); addresses_foreach (mu_msg_get_cc (msg), MU_MSG_CONTACT_TYPE_CC, func, user_data); addresses_foreach (mu_msg_get_bcc (msg), MU_MSG_CONTACT_TYPE_BCC, func, user_data); }
static gboolean output_xml (MuMsg *msg, MuMsgIter *iter, MuConfig *opts, GError **err) { g_print ("\t<message>\n"); print_attr_xml ("from", mu_msg_get_from (msg)); print_attr_xml ("to", mu_msg_get_to (msg)); print_attr_xml ("cc", mu_msg_get_cc (msg)); print_attr_xml ("subject", mu_msg_get_subject (msg)); g_print ("\t\t<date>%u</date>\n", (unsigned)mu_msg_get_date (msg)); g_print ("\t\t<size>%u</size>\n", (unsigned)mu_msg_get_size (msg)); print_attr_xml ("msgid", mu_msg_get_msgid (msg)); print_attr_xml ("path", mu_msg_get_path (msg)); print_attr_xml ("maildir", mu_msg_get_maildir (msg)); g_print ("\t</message>\n"); return TRUE; }
/* return the path to the output file, or NULL in case of error */ static gboolean convert_to_pdf (MuMsg *msg, GError **err) { GString *gstr; const char *body; gchar *data; gboolean rv; gstr = g_string_sized_new (4096); add_header (gstr, "From", mu_msg_get_from (msg)); add_header (gstr, "To", mu_msg_get_to (msg)); add_header (gstr, "Cc", mu_msg_get_cc (msg)); add_header (gstr, "Subject", mu_msg_get_subject (msg)); add_header (gstr, "Date", mu_date_str_s ("%c", mu_msg_get_date(msg))); gstr = g_string_append (gstr, "<hr>\n"); body = mu_msg_get_body_html (msg, MU_MSG_OPTION_NONE); if (body) g_string_append_printf (gstr, "%s", body); else { body = mu_msg_get_body_text (msg, MU_MSG_OPTION_NONE); if (body) { gchar *esc; esc = g_markup_escape_text (body, -1); g_string_append_printf (gstr, "<pre>\n%s\n</pre>", esc); g_free (esc); } else gstr = g_string_append (gstr, "<i>No body</i>\n"); } data = g_string_free (gstr, FALSE); rv = generate_pdf (msg, data, err); g_free (data); return rv; }
static void json_add_recipients(JsonBuilder *builder, MuMsg *msg) { InternetAddressList *addr_from; InternetAddressList *addr_to; InternetAddressList *addr_cc; addr_from = internet_address_list_parse_string( mu_msg_get_from (msg) ); if (addr_from) { json_builder_set_member_name (builder, "from"); json_builder_begin_array (builder); json_add_address_list(builder, addr_from); json_builder_end_array (builder); g_object_unref(addr_from); } addr_to = internet_address_list_parse_string( mu_msg_get_to (msg) ); if (addr_to) { json_builder_set_member_name (builder, "to"); json_builder_begin_array (builder); json_add_address_list(builder, addr_to); json_builder_end_array (builder); g_object_unref(addr_to); } addr_cc = internet_address_list_parse_string( mu_msg_get_cc (msg) ); if (addr_cc) { json_builder_set_member_name (builder, "cc"); json_builder_begin_array (builder); json_add_address_list(builder, addr_cc); json_builder_end_array (builder); g_object_unref(addr_cc); } }