2011-01-06 [pawel] 3.7.8cvs33
[claws.git] / src / quote_fmt.c
index e653321784804fde2ebd62a03118d29a64e73eec..7b31c6eaa6090753d2b926209e6d40dccb6f0d0c 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2007 Hiroyuki Yamamoto and the Claws Mail team
+ * Copyright (C) 1999-2009 Hiroyuki Yamamoto and the Claws Mail team
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -69,6 +69,8 @@ static gchar *quote_desc_strings[] = {
        "%account_email (%am)",         N_("account property: your email address"), /* mail address in compose account */
        "%account_name (%an)",          N_("account property: account name"), /* compose account name itself */
        "%account_org (%ao)",           N_("account property: organization"), /* organization in compose account */
+       "%account_sig (%as)",           N_("account property: signature"), /* signature set in account prefs */
+       "%account_sigpath (%asp)",      N_("account property: signature path"), /* signature path set in account prefs */
        "%account_dict (%aT)",          N_("account property: default dictionary"), /* main dict (if enabled) in account */
        "%addrbook_cc (%ABc)",          N_("address book <span style=\"oblique\">completion</span>: Cc"), /* completion of 'Cc' from address book */
        "%addrbook_from (%ABf)",        N_("address book <span style=\"oblique\">completion</span>: From"), /* completion of 'From' from address book */
@@ -84,8 +86,8 @@ static gchar *quote_desc_strings[] = {
        "\\n",                          N_("new line"),
        "",                                     NULL,
        N_("<span weight=\"bold\">commands:</span>"),           NULL,
-       "?x{<span style=\"oblique\">expr</span>}\n\n",          N_("insert <span style=\"oblique\">expr</span> if x is set, where x is one of\nthe [dfNFLIstcnriT, ad, af, ao, aT, ABc, ABf, ABt]\nsymbols (or their long equivalent)"),
-       "!x{<span style=\"oblique\">expr</span>}\n\n",          N_("insert <span style=\"oblique\">expr</span> if x is not set, where x is one of\nthe [dfNFLIstcnriT, ad, af, ao, aT, ABc, ABf, ABt]\nsymbols (or their long equivalent)"),
+       "?x{<span style=\"oblique\">expr</span>}\n\n",          N_("insert <span style=\"oblique\">expr</span> if x is set, where x is one of\nthe [dfNFLIstcnriT, ad, af, ao, as, asp, aT, ABc, ABf, ABt]\nsymbols (or their long equivalent)"),
+       "!x{<span style=\"oblique\">expr</span>}\n\n",          N_("insert <span style=\"oblique\">expr</span> if x is not set, where x is one of\nthe [dfNFLIstcnriT, ad, af, ao, as, asp, aT, ABc, ABf, ABt]\nsymbols (or their long equivalent)"),
        "|file{<span style=\"oblique\">sub_expr</span>}\n(|f{<span style=\"oblique\">sub_expr</span>})",                N_("insert file:\n<span style=\"oblique\">sub_expr</span> is evaluated as the path of the file to insert"), /* insert file */
        "|program{<span style=\"oblique\">sub_expr</span>}\n(|p{<span style=\"oblique\">sub_expr</span>})\n",   N_("insert program output:\n<span style=\"oblique\">sub_expr</span> is evaluated as a command-line to get\nthe output from"), /* insert program output */
        "|input{<span style=\"oblique\">sub_expr</span>}\n(|i{<span style=\"oblique\">sub_expr</span>})\n",             N_("insert user input:\n<span style=\"oblique\">sub_expr</span> is a variable to be replaced by\nuser-entered text"), /* insert user input */
@@ -114,6 +116,24 @@ void quote_fmt_quote_description(GtkWidget *widget, GtkWidget *pref_window)
        description_window_create(&quote_desc_win);
 }
 
+static void quote_fmt_add_buttons(GtkWindow* parent_window, GtkWidget *parent_box,
+                       gboolean add_info_button, void(*set_defaults_func)(void)) {
+       GtkWidget *hbox_btns;
+       
+       if (!add_info_button && !set_defaults_func)
+               return;
+       
+       hbox_btns = gtk_hbox_new(FALSE, 0);
+       gtk_box_pack_end (GTK_BOX(parent_box), hbox_btns, FALSE, TRUE, 0);      
+
+       if (add_info_button)
+               quotefmt_add_info_button(parent_window, hbox_btns);
+       if (set_defaults_func)
+               quotefmt_add_defaults_button(parent_window, hbox_btns, set_defaults_func);
+
+       gtk_widget_show(GTK_WIDGET(hbox_btns));
+}
+
 void quotefmt_create_new_msg_fmt_widgets(GtkWindow *parent_window,
                                                GtkWidget *parent_box,
                                                GtkWidget **checkbtn_compose_with_format,
@@ -136,13 +156,13 @@ void quotefmt_create_new_msg_fmt_widgets(GtkWindow *parent_window,
        GtkSizeGroup *size_group;
 
        if (add_info_button)
-               g_return_if_fail(parent_window != NULL);
-       g_return_if_fail(parent_box != NULL);
+               cm_return_if_fail(parent_window != NULL);
+       cm_return_if_fail(parent_box != NULL);
        if (checkbtn_compose_with_format)
-               g_return_if_fail(checkbtn_compose_with_format != NULL);
+               cm_return_if_fail(checkbtn_compose_with_format != NULL);
 
-       g_return_if_fail(edit_subject_format != NULL);
-       g_return_if_fail(edit_body_format != NULL);
+       cm_return_if_fail(edit_subject_format != NULL);
+       cm_return_if_fail(edit_body_format != NULL);
 
        size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
 
@@ -156,11 +176,13 @@ void quotefmt_create_new_msg_fmt_widgets(GtkWindow *parent_window,
        gtk_container_set_border_width (GTK_CONTAINER (vbox_format), 8);
 
        if (override_from_format) {
+               CLAWS_TIP_DECL();
+
                hbox2_format = gtk_hbox_new (FALSE, 8);
                gtk_widget_show (hbox2_format);
                gtk_box_pack_start (GTK_BOX (vbox_format), hbox2_format, FALSE, FALSE, 0);
 
-               label_from = gtk_label_new (_("From"));
+               label_from = gtk_label_new (prefs_common_translated_header_name("From"));
                gtk_misc_set_alignment(GTK_MISC(label_from), 1, 0.5);
                gtk_widget_show (label_from);
                gtk_box_pack_start (GTK_BOX (hbox2_format), label_from, FALSE, FALSE, 0);
@@ -171,16 +193,15 @@ void quotefmt_create_new_msg_fmt_widgets(GtkWindow *parent_window,
                gtk_box_pack_start (GTK_BOX (hbox2_format), entry_from, TRUE, TRUE, 0);
                gtk_widget_set_size_request (entry_from, 100, -1);
 
-               gtk_tooltips_set_tip(gtk_tooltips_new(), entry_from,
-                               _("Override From header. This doesn't change the account used to compose the new message."),
-                               NULL);
+               CLAWS_SET_TIP(entry_from,
+                               _("Override From header. This doesn't change the account used to compose the new message."));
        }
 
        hbox_format = gtk_hbox_new (FALSE, 8);
        gtk_widget_show (hbox_format);
        gtk_box_pack_start (GTK_BOX (vbox_format), hbox_format, FALSE, FALSE, 0);
 
-       label_subject = gtk_label_new (_("Subject"));
+       label_subject = gtk_label_new (prefs_common_translated_header_name("Subject"));
        gtk_misc_set_alignment(GTK_MISC(label_subject), 1, 0.5);
        gtk_widget_show (label_subject);
        gtk_box_pack_start (GTK_BOX (hbox_format), label_subject, FALSE, FALSE, 0);
@@ -227,10 +248,8 @@ void quotefmt_create_new_msg_fmt_widgets(GtkWindow *parent_window,
                SET_TOGGLE_SENSITIVITY(checkbtn_use_format, text_format);
        }
 
-       if (add_info_button)
-               quotefmt_add_info_button(parent_window, vbox_format);
-       if (set_defaults_func)
-               quotefmt_add_defaults_button(parent_window, vbox_format, set_defaults_func);
+       quote_fmt_add_buttons(parent_window, vbox_format,
+                               add_info_button, set_defaults_func);
 
        if (checkbtn_compose_with_format)
                *checkbtn_compose_with_format = checkbtn_use_format;
@@ -263,13 +282,13 @@ void quotefmt_create_reply_fmt_widgets(GtkWindow *parent_window,
        GtkSizeGroup *size_group;
 
        if (add_info_button)
-               g_return_if_fail(parent_window != NULL);
-       g_return_if_fail(parent_box != NULL);
+               cm_return_if_fail(parent_window != NULL);
+       cm_return_if_fail(parent_box != NULL);
        if (checkbtn_reply_with_format)
-               g_return_if_fail(checkbtn_reply_with_format != NULL);
+               cm_return_if_fail(checkbtn_reply_with_format != NULL);
 
-       g_return_if_fail(edit_reply_quotemark != NULL);
-       g_return_if_fail(edit_reply_format != NULL);
+       cm_return_if_fail(edit_reply_quotemark != NULL);
+       cm_return_if_fail(edit_reply_format != NULL);
 
        size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
 
@@ -283,11 +302,13 @@ void quotefmt_create_reply_fmt_widgets(GtkWindow *parent_window,
        gtk_container_set_border_width (GTK_CONTAINER (vbox_quote), 8);
 
        if (override_from_format) {
+               CLAWS_TIP_DECL();
+
                hbox3 = gtk_hbox_new (FALSE, 8);
                gtk_widget_show (hbox3);
                gtk_box_pack_start (GTK_BOX (vbox_quote), hbox3, FALSE, FALSE, 0);
 
-               label_from = gtk_label_new (_("From"));
+               label_from = gtk_label_new (prefs_common_translated_header_name("From"));
                gtk_misc_set_alignment(GTK_MISC(label_from), 1, 0.5);
                gtk_widget_show (label_from);
                gtk_box_pack_start (GTK_BOX (hbox3), label_from, FALSE, FALSE, 0);
@@ -298,9 +319,8 @@ void quotefmt_create_reply_fmt_widgets(GtkWindow *parent_window,
                gtk_box_pack_start (GTK_BOX (hbox3), entry_from, TRUE, TRUE, 0);
                gtk_widget_set_size_request (entry_from, 100, -1);
 
-               gtk_tooltips_set_tip(gtk_tooltips_new(), entry_from,
-                               _("Override From header. This doesn't change the account used to reply."),
-                               NULL);
+               CLAWS_SET_TIP(entry_from,
+                               _("Override From header. This doesn't change the account used to reply."));
        }
 
        hbox1 = gtk_hbox_new (FALSE, 32);
@@ -358,10 +378,8 @@ void quotefmt_create_reply_fmt_widgets(GtkWindow *parent_window,
                SET_TOGGLE_SENSITIVITY(checkbtn_use_format, text_quotefmt);
        }
 
-       if (add_info_button)
-               quotefmt_add_info_button(parent_window, vbox_quote);
-       if (set_defaults_func)
-               quotefmt_add_defaults_button(parent_window, vbox_quote, set_defaults_func);
+       quote_fmt_add_buttons(parent_window, vbox_quote,
+                               add_info_button, set_defaults_func);
 
        if (checkbtn_reply_with_format)
                *checkbtn_reply_with_format = checkbtn_use_format;
@@ -394,13 +412,13 @@ void quotefmt_create_forward_fmt_widgets(GtkWindow *parent_window,
        GtkSizeGroup *size_group;
 
        if (add_info_button)
-               g_return_if_fail(parent_window != NULL);
-       g_return_if_fail(parent_box != NULL);
+               cm_return_if_fail(parent_window != NULL);
+       cm_return_if_fail(parent_box != NULL);
        if (checkbtn_forward_with_format) {
-               g_return_if_fail(checkbtn_forward_with_format != NULL);
+               cm_return_if_fail(checkbtn_forward_with_format != NULL);
        }
-       g_return_if_fail(edit_fw_quotemark != NULL);
-       g_return_if_fail(edit_fw_format != NULL);
+       cm_return_if_fail(edit_fw_quotemark != NULL);
+       cm_return_if_fail(edit_fw_format != NULL);
 
        size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
 
@@ -414,11 +432,13 @@ void quotefmt_create_forward_fmt_widgets(GtkWindow *parent_window,
        gtk_container_set_border_width (GTK_CONTAINER (vbox_quote), 8);
 
        if (override_from_format) {
+               CLAWS_TIP_DECL();
+
                hbox3 = gtk_hbox_new (FALSE, 8);
                gtk_widget_show (hbox3);
                gtk_box_pack_start (GTK_BOX (vbox_quote), hbox3, FALSE, FALSE, 0);
 
-               label_from = gtk_label_new (_("From"));
+               label_from = gtk_label_new (prefs_common_translated_header_name("From"));
                gtk_misc_set_alignment(GTK_MISC(label_from), 1, 0.5);
                gtk_widget_show (label_from);
                gtk_box_pack_start (GTK_BOX (hbox3), label_from, FALSE, FALSE, 0);
@@ -429,9 +449,8 @@ void quotefmt_create_forward_fmt_widgets(GtkWindow *parent_window,
                gtk_box_pack_start (GTK_BOX (hbox3), entry_from, TRUE, TRUE, 0);
                gtk_widget_set_size_request (entry_from, 100, -1);
 
-               gtk_tooltips_set_tip(gtk_tooltips_new(), entry_from,
-                               _("Override From header. This doesn't change the account used to forward."),
-                               NULL);
+               CLAWS_SET_TIP(entry_from,
+                               _("Override From header. This doesn't change the account used to forward."));
        }
 
        hbox1 = gtk_hbox_new (FALSE, 32);
@@ -491,10 +510,8 @@ void quotefmt_create_forward_fmt_widgets(GtkWindow *parent_window,
                SET_TOGGLE_SENSITIVITY(checkbtn_use_format, text_fw_quotefmt);
        }
 
-       if (add_info_button)
-               quotefmt_add_info_button(parent_window, vbox_quote);
-       if (set_defaults_func)
-               quotefmt_add_defaults_button(parent_window, vbox_quote, set_defaults_func);
+       quote_fmt_add_buttons(parent_window, vbox_quote,
+                               add_info_button, set_defaults_func);
 
        if (checkbtn_forward_with_format)
                *checkbtn_forward_with_format = checkbtn_use_format;
@@ -506,22 +523,11 @@ void quotefmt_create_forward_fmt_widgets(GtkWindow *parent_window,
 
 void quotefmt_add_info_button(GtkWindow *parent_window, GtkWidget *parent_box)
 {
-       GtkWidget *hbox_formatdesc;
        GtkWidget *btn_formatdesc;
 
-       hbox_formatdesc = gtk_hbox_new (FALSE, 32);
-       gtk_widget_show (hbox_formatdesc);
-       gtk_box_pack_start (GTK_BOX (parent_box), hbox_formatdesc, FALSE, FALSE,
-                               VBOX_BORDER);
-
-#if GTK_CHECK_VERSION(2, 8, 0)
        btn_formatdesc = gtk_button_new_from_stock(GTK_STOCK_INFO);
-#else
-       btn_formatdesc =
-               gtk_button_new_with_label (_("Description of symbols..."));
-#endif
        gtk_widget_show (btn_formatdesc);
-       gtk_box_pack_start (GTK_BOX (hbox_formatdesc), btn_formatdesc, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX (parent_box), btn_formatdesc, FALSE, FALSE, 0);
        g_signal_connect(G_OBJECT(btn_formatdesc), "clicked",
                         G_CALLBACK(quote_fmt_quote_description), GTK_WIDGET(parent_window));
 }
@@ -530,21 +536,15 @@ void quotefmt_add_defaults_button(GtkWindow *parent_window,
                                                                  GtkWidget *parent_box,
                                                                  void(*set_defaults_func)(void))
 {
-       GtkWidget *hbox_formatdesc;
        GtkWidget *btn_formatdesc;
 
-       g_return_if_fail(set_defaults_func != NULL);
-
-       hbox_formatdesc = gtk_hbox_new (FALSE, 32);
-       gtk_widget_show (hbox_formatdesc);
-       gtk_box_pack_start (GTK_BOX (parent_box), hbox_formatdesc, FALSE, FALSE,
-                               VBOX_BORDER);
+       cm_return_if_fail(set_defaults_func != NULL);
 
        btn_formatdesc = gtk_button_new_with_mnemonic (_("Defaults"));
        gtk_button_set_image (GTK_BUTTON(btn_formatdesc),
                gtk_image_new_from_stock(GTK_STOCK_UNDO, GTK_ICON_SIZE_BUTTON));
        gtk_widget_show (btn_formatdesc);
-       gtk_box_pack_start (GTK_BOX (hbox_formatdesc), btn_formatdesc, FALSE, FALSE, 0);
+       gtk_box_pack_end (GTK_BOX (parent_box), btn_formatdesc, FALSE, FALSE, 0);
        g_signal_connect(G_OBJECT(btn_formatdesc), "clicked",
                         G_CALLBACK(set_defaults_func), GTK_WIDGET(parent_window));
 }
@@ -558,13 +558,13 @@ void quotefmt_check_new_msg_formats(gboolean use_format,
                gint line;
 
                if (override_from_fmt && !prefs_template_string_is_valid(override_from_fmt, NULL, TRUE, TRUE))
-                       alertpanel_error(_("New message From format error."));
+                       alertpanel_error(_("The \"From\" field of the \"New message\" template contains an invalid email address."));
 
                if (!prefs_template_string_is_valid(subject_fmt, NULL, TRUE, FALSE))
-                       alertpanel_error(_("New message subject format error."));
+                       alertpanel_error(_("The \"Subject\" field of the \"New message\" template is invalid."));
 
                if (!prefs_template_string_is_valid(body_fmt, &line, TRUE, FALSE)) {
-                       alertpanel_error(_("New message body format error at line %d."), line);
+                       alertpanel_error(_("The body of the \"New message\" template has an error at line %d."), line);
                }
        }
 }
@@ -578,13 +578,13 @@ void quotefmt_check_reply_formats(gboolean use_format,
                gint line;
 
                if (!prefs_template_string_is_valid(quotation_mark, NULL, TRUE, FALSE))
-                       alertpanel_error(_("Message reply quotation mark format error."));
+                       alertpanel_error(_("The \"Quotation mark\" field of the \"Reply\" template is invalid."));
 
                if (override_from_fmt && !prefs_template_string_is_valid(override_from_fmt, NULL, TRUE, TRUE))
-                       alertpanel_error(_("Message reply From format error."));
+                       alertpanel_error(_("The \"From\" field of the \"Reply\" template contains an invalid email address."));
 
                if (!prefs_template_string_is_valid(body_fmt, &line, TRUE, FALSE)) {
-                       alertpanel_error(_("Message reply format error at line %d."), line);
+                       alertpanel_error(_("The body of the \"Reply\" template has an error at line %d."), line);
                }
        }
 }
@@ -598,13 +598,13 @@ void quotefmt_check_forward_formats(gboolean use_format,
                gint line;
 
                if (!prefs_template_string_is_valid(quotation_mark, NULL, TRUE, FALSE))
-                       alertpanel_error(_("Message forward quotation mark format error."));
+                       alertpanel_error(_("The \"Quotation mark\" field of the \"Forward\" template is invalid."));
 
                if (override_from_fmt && !prefs_template_string_is_valid(override_from_fmt, NULL, TRUE, TRUE))
-                       alertpanel_error(_("Message forward From format error."));
+                       alertpanel_error(_("The \"From\" field of the \"Forward\" template contains an invalid email address."));
 
                if (!prefs_template_string_is_valid(body_fmt, &line, TRUE, FALSE)) {
-                       alertpanel_error(_("Message forward format error at line %d."), line);
+                       alertpanel_error(_("The body of the \"Forward\" template has an error at line %d."), line);
                }
        }
 }