static void toolbar_compose_cb (GtkWidget *widget,
gpointer data);
+static void toolbar_compose_news_cb (GtkWidget *widget,
+ gpointer data);
+static void toolbar_compose_mail_cb (GtkWidget *widget,
+ gpointer data);
static void toolbar_reply_cb (GtkWidget *widget,
gpointer data);
static void toolbar_reply_to_all_cb (GtkWidget *widget,
static void compose_cb (MainWindow *mainwin,
guint action,
GtkWidget *widget);
+static void compose_mail_cb(MainWindow *mainwin, guint action,
+ GtkWidget *widget);
+static void compose_news_cb(MainWindow *mainwin, guint action,
+ GtkWidget *widget);
static void reply_cb (MainWindow *mainwin,
guint action,
GtkWidget *widget);
{N_("/_Message/Send queued messa_ges"),
NULL, send_queue_cb, 0, NULL},
{N_("/_Message/---"), NULL, NULL, 0, "<Separator>"},
- {N_("/_Message/Compose _new message"), "<alt>N", compose_cb, 0, NULL},
+ {N_("/_Message/Compose a _new mail"), "<alt>N", compose_mail_cb, 0, NULL},
+ {N_("/_Message/Compose a news message"), NULL, compose_news_cb, 0, NULL},
{N_("/_Message/_Reply"), "<alt>R", reply_cb, COMPOSE_REPLY, NULL},
{N_("/_Message/Repl_y to sender"), "<control><alt>R", reply_cb, COMPOSE_REPLY_TO_SENDER, NULL},
{N_("/_Message/Reply to a_ll"), "<shift><alt>R", reply_cb, COMPOSE_REPLY_TO_ALL, NULL},
CREATE_TOOLBAR_ICON(stock_mail_compose_xpm);
compose_btn = gtk_toolbar_append_item(GTK_TOOLBAR(toolbar),
- _("Compose"),
- _("Compose new message"),
+ _("New mail"),
+ _("Compose a new mail"),
+ "New",
+ icon_wid,
+ toolbar_compose_mail_cb,
+ mainwin);
+ CREATE_TOOLBAR_ICON(stock_mail_compose_xpm);
+ compose_btn = gtk_toolbar_append_item(GTK_TOOLBAR(toolbar),
+ _("New news"),
+ _("Compose a news message"),
"New",
icon_wid,
- toolbar_compose_cb,
+ toolbar_compose_news_cb,
mainwin);
CREATE_TOOLBAR_ICON(stock_mail_reply_xpm);
reply_btn = gtk_toolbar_append_item(GTK_TOOLBAR(toolbar),
compose_cb(mainwin, 0, NULL);
}
+static void toolbar_compose_news_cb (GtkWidget *widget,
+ gpointer data)
+{
+ MainWindow *mainwin = (MainWindow *)data;
+
+ compose_news_cb(mainwin, 0, NULL);
+}
+
+static void toolbar_compose_mail_cb (GtkWidget *widget,
+ gpointer data)
+{
+ MainWindow *mainwin = (MainWindow *)data;
+
+ compose_mail_cb(mainwin, 0, NULL);
+}
+
static void toolbar_reply_cb (GtkWidget *widget,
gpointer data)
{
{
MainWindow *mainwin = (MainWindow *)data;
- reply_cb(mainwin, COMPOSE_FORWARD, NULL);
+ if (prefs_common.forward_as_attachment)
+ reply_cb(mainwin, COMPOSE_FORWARD_AS_ATTACH, NULL);
+ else
+ reply_cb(mainwin, COMPOSE_FORWARD, NULL);
}
static void toolbar_delete_cb (GtkWidget *widget,
compose_new(NULL);
}
+static void compose_mail_cb(MainWindow *mainwin, guint action,
+ GtkWidget *widget)
+{
+ PrefsAccount * ac;
+ GList * list;
+ GList * cur;
+
+ if (mainwin->summaryview->folder_item) {
+ ac = mainwin->summaryview->folder_item->folder->account;
+ if (ac && ac->protocol != A_NNTP) {
+ compose_new(ac);
+ return;
+ }
+ }
+
+ list = account_get_list();
+ for(cur = list ; cur != NULL ; cur = g_list_next(cur)) {
+ ac = (PrefsAccount *) cur->data;
+ if (ac->protocol != A_NNTP) {
+ compose_new(ac);
+ return;
+ }
+ }
+}
+
+static void compose_news_cb(MainWindow *mainwin, guint action,
+ GtkWidget *widget)
+{
+ PrefsAccount * ac;
+ GList * list;
+ GList * cur;
+
+ if (mainwin->summaryview->folder_item) {
+ ac = mainwin->summaryview->folder_item->folder->account;
+ if (ac && ac->protocol == A_NNTP) {
+ FolderItem * item = mainwin->summaryview->folder_item;
+ compose_new_with_recipient(ac, item->path);
+ return;
+ }
+ }
+
+ list = account_get_list();
+ for(cur = list ; cur != NULL ; cur = g_list_next(cur)) {
+ ac = (PrefsAccount *) cur->data;
+ if (ac->protocol == A_NNTP) {
+ compose_new(ac);
+ return;
+ }
+ }
+}
+
static void reply_cb(MainWindow *mainwin, guint action, GtkWidget *widget)
{
MsgInfo *msginfo;
GtkObject *spinbtn_linewrap_adj;
GtkWidget *checkbtn_wrapquote;
GtkWidget *checkbtn_wrapatsend;
+
+ GtkWidget * checkbtn_forward_as_attachment;
} compose;
static struct Display {
&prefs_common.linewrap_at_send, P_BOOL,
&compose.checkbtn_wrapatsend,
prefs_set_data_from_toggle, prefs_set_toggle},
+ {"forward_as_attachment", "FALSE", &prefs_common.forward_as_attachment,
+ P_BOOL, &compose.checkbtn_forward_as_attachment,
+ prefs_set_data_from_toggle, prefs_set_toggle},
{"show_ruler", "TRUE", &prefs_common.show_ruler, P_BOOL,
NULL, NULL, NULL},
GtkWidget *checkbtn_wrapquote;
GtkWidget *checkbtn_wrapatsend;
+ GtkWidget *checkbtn_forward_as_attachment;
+
vbox1 = gtk_vbox_new (FALSE, VSPACING);
gtk_widget_show (vbox1);
gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
PACK_CHECK_BUTTON
(hbox4, checkbtn_wrapatsend, _("Wrap before sending"));
+ PACK_CHECK_BUTTON (vbox1, checkbtn_forward_as_attachment,
+ _("Forward as attachment"));
+
+
/*
compose.checkbtn_quote = checkbtn_quote;
compose.entry_quotemark = entry_quotemark;
compose.spinbtn_linewrap_adj = spinbtn_linewrap_adj;
compose.checkbtn_wrapquote = checkbtn_wrapquote;
compose.checkbtn_wrapatsend = checkbtn_wrapatsend;
+
+ compose.checkbtn_forward_as_attachment =
+ checkbtn_forward_as_attachment;
}
static void date_format_ok_btn_clicked(GtkButton *button, GtkWidget **widget)
"\n"
"%M\n"
"%Q\n"
+ "%m\n"
+ "%q\n"
"%%");
gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
"\n"
"Message body\n"
"Quoted message body\n"
+ "Message body without signature\n"
+ "Quoted message body without signature\n"
"%"));
gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
%token SHOW_SENDER_INITIAL SHOW_SUBJECT SHOW_TO SHOW_MESSAGEID
%token SHOW_PERCENT SHOW_CC SHOW_REFERENCES SHOW_MESSAGE
%token SHOW_QUOTED_MESSAGE SHOW_BACKSLASH SHOW_TAB
+%token SHOW_QUOTED_MESSAGE_NO_SIGNATURE SHOW_MESSAGE_NO_SIGNATURE
%token SHOW_EOL SHOW_QUESTION_MARK SHOW_OPARENT SHOW_CPARENT
%token QUERY_DATE QUERY_FROM
%token QUERY_FULLNAME QUERY_SUBJECT QUERY_TO QUERY_NEWSGROUPS
}
fclose(fp);
}
+ | SHOW_MESSAGE_NO_SIGNATURE
+ {
+ gchar buf[BUFFSIZE];
+ FILE * fp;
+
+ if ((fp = procmime_get_text_part(msginfo)) == NULL)
+ g_warning(_("Can't get text part\n"));
+ while (fgets(buf, sizeof(buf), fp) != NULL) {
+ if (strncmp(buf, "-- ", 3) == 0)
+ break;
+ INSERT(buf);
+ }
+ fclose(fp);
+ }
+ | SHOW_QUOTED_MESSAGE_NO_SIGNATURE
+ {
+ gchar buf[BUFFSIZE];
+ FILE * fp;
+
+ if ((fp = procmime_get_text_part(msginfo)) == NULL)
+ g_warning(_("Can't get text part\n"));
+ while (fgets(buf, sizeof(buf), fp) != NULL) {
+ if (strncmp(buf, "-- ", 3) == 0)
+ break;
+ if (quote_str)
+ INSERT(quote_str);
+ INSERT(buf);
+ }
+ fclose(fp);
+ }
| SHOW_BACKSLASH
{
INSERT("\\");