Fix untranslatable concatenated strings (i.e. "Default "+"To:"),
[claws.git] / src / quote_fmt.c
index 2b0677c6a543f3a755414ecd60c2c8442b79d5f2..673be3850b7a892dcddb248e6abe50b3190adf9c 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2009 Hiroyuki Yamamoto and the Claws Mail team
+ * Copyright (C) 1999-2012 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
@@ -19,6 +19,7 @@
 
 #ifdef HAVE_CONFIG_H
 #  include "config.h"
+#include "claws-features.h"
 #endif
 
 #include <glib.h>
@@ -92,6 +93,7 @@ static gchar *quote_desc_strings[] = {
        "|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 */
        "|attach{<span style=\"oblique\">sub_expr</span>}\n(|a{<span style=\"oblique\">sub_expr</span>})",              N_("attach file:\n<span style=\"oblique\">sub_expr</span> is evaluated as the path of the file to attach"), /* attach file */
+       "|attach_output{<span style=\"oblique\">sub_expr</span>}\n(|A{<span style=\"oblique\">sub_expr</span>})",       N_("attach file:\n<span style=\"oblique\">sub_expr</span> is evaluated as a command-line to get\nthe filename from"), /* attach file whose name's got from program output */
        "",                                     NULL,
        N_("<span weight=\"bold\">definition of terms:</span>"),        NULL,
        "<span style=\"oblique\">expr</span>\n",                        N_("text that can contain any of the symbols or\ncommands above"),
@@ -103,6 +105,7 @@ static gchar *quote_desc_strings[] = {
 static DescriptionWindow quote_desc_win = { 
         NULL,
        NULL,
+       TRUE,
         2,
         N_("Description of symbols"),
        N_("The following symbols and commands can be used:"),
@@ -116,6 +119,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,
@@ -158,8 +179,6 @@ 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);
@@ -230,10 +249,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;
@@ -241,6 +258,8 @@ void quotefmt_create_new_msg_fmt_widgets(GtkWindow *parent_window,
                *override_from_format = entry_from;
        *edit_subject_format = entry_subject;
        *edit_body_format = text_format;
+
+       g_object_unref(G_OBJECT(size_group));
 }
 
 void quotefmt_create_reply_fmt_widgets(GtkWindow *parent_window,
@@ -286,13 +305,11 @@ 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 (prefs_common_translated_header_name("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);
@@ -362,10 +379,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;
@@ -373,6 +388,8 @@ void quotefmt_create_reply_fmt_widgets(GtkWindow *parent_window,
        if (override_from_format)
                *override_from_format = entry_from;
        *edit_reply_format = text_quotefmt;
+
+       g_object_unref(G_OBJECT(size_group));
 }
 
 void quotefmt_create_forward_fmt_widgets(GtkWindow *parent_window,
@@ -418,13 +435,11 @@ 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 (prefs_common_translated_header_name("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);
@@ -496,10 +511,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;
@@ -507,21 +520,17 @@ void quotefmt_create_forward_fmt_widgets(GtkWindow *parent_window,
        if (override_from_format)
                *override_from_format = entry_from;
        *edit_fw_format = text_fw_quotefmt;
+       
+       g_object_unref(G_OBJECT(size_group));
 }
 
 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);
-
        btn_formatdesc = gtk_button_new_from_stock(GTK_STOCK_INFO);
        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 +539,15 @@ void quotefmt_add_defaults_button(GtkWindow *parent_window,
                                                                  GtkWidget *parent_box,
                                                                  void(*set_defaults_func)(void))
 {
-       GtkWidget *hbox_formatdesc;
        GtkWidget *btn_formatdesc;
 
        cm_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);
-
        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));
 }