2007-05-23 [wwp] 2.9.2cvs13
[claws.git] / src / quote_fmt.c
1 /*
2  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
3  * Copyright (C) 1999-2007 Hiroyuki Yamamoto and the Claws Mail team
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18  */
19
20 #ifdef HAVE_CONFIG_H
21 #  include "config.h"
22 #endif
23
24 #include <glib.h>
25 #include <glib/gi18n.h>
26 #include <gtk/gtk.h>
27 #include <gdk/gdkkeysyms.h>
28
29 #include "manage_window.h"
30 #include "description_window.h"
31 #include "gtkutils.h"
32
33
34 /*
35  * Strings describing quote format strings
36  * 
37  * When adding new lines, remember to put 2 strings for each line
38  */
39 static gchar *quote_desc_strings[] = {
40         N_("<span weight=\"bold\">symbols:</span>"),                            NULL,
41         "%date_fmt{<span style=\"oblique\">fmt</span>} (%D{<span style=\"oblique\">fmt</span>})",       N_("customized date format (see 'man strftime')"), /* date expression */
42         "%date (%d)",                           N_("Date"), /* date */
43         "%from (%f)",                           N_("From"), /* from */
44         "%email (%A)",                          N_("email address of sender"), /* email address */
45         "%fullname (%N)",                       N_("full name of sender"), /* full name */
46         "%firstname (%F)",                      N_("first name of sender"), /* first name */
47         "%lastname (%L)",                       N_("last name of sender"), /* last name */
48         "%initials (%I)",                       N_("initials of sender"), /* initial of sender */
49         "%subject (%s)",                        N_("Subject"), /* subject */ 
50         "%to (%t)",                                     N_("To"), /* to */ 
51         "%cc (%c)",                                     N_("Cc"), /* cc */ 
52         "%newsgroups (%n)",                     N_("Newsgroups"), /* newsgroups */ 
53         "%references (%r)",                     N_("References"), /* references */ 
54         "%messageid (%i)",                      N_("Message-ID"), /* message-id */ 
55         "%msg (%M)",                            N_("message body"), /* message */
56         "%quoted_msg (%Q)",                     N_("quoted message body"), /* quoted message */
57         "%msg_no_sig (%m)",                     N_("message body without signature"), /* message with no signature */
58         "%quoted_msg_no_sig (%q)",      N_("quoted message body without signature"), /* quoted message with no signature */
59         "%dict (%T)",                           N_("current dictionary"), /* current dictionary */
60         "%cursor (%X)",                         N_("cursor position"), /* X marks the cursor spot */
61         "%account_fullname (%af)",      N_("account property: your name"), /* full name in compose account */
62         "%account_email (%ae)",         N_("account property: your email address"), /* mail address in compose account */
63         "%account_name (%an)",          N_("account property: account name"), /* compose account name itself */
64         "%account_org (%ao)",           N_("account property: organization"), /* organization in compose account */
65         "%account_dict (%aT)",          N_("account property: default dictionary"), /* main dict (if enabled) in account */
66         "%addrbook_cc (%ABc)",          N_("address book <span style=\"oblique\">completion</span>: Cc"), /* completion of 'Cc' from address book */
67         "%addrbook_from (%ABf)",        N_("address book <span style=\"oblique\">completion</span>: From"), /* completion of 'From' from address book */
68         "%addrbook_to (%ABt)",          N_("address book <span style=\"oblique\">completion</span>: To"), /* completion of 'To' from address book */
69         "\\%",                          N_("literal %"),
70         "\\\\",                         N_("literal backslash"),
71         "\\?",                          N_("literal question mark"),
72         "\\!",                          N_("literal exclamation mark"),
73         "\\|",                          N_("literal pipe"),
74         "\\{",                          N_("literal opening curly brace"),
75         "\\}",                          N_("literal closing curly brace"),
76         "\\t",                          N_("tab"),
77         "\\n",                          N_("new line"),
78         "",                                     NULL,
79         N_("<span weight=\"bold\">commands:</span>"),           NULL,
80         "?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)"),
81         "!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)"),
82         "|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 */
83         "|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 */
84         "|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 */
85         "",                                     NULL,
86         N_("<span weight=\"bold\">definition of terms:</span>"),        NULL,
87         "<span style=\"oblique\">expr</span>\n",                        N_("text that can contain any of the symbols or\ncommands above"),
88         "<span style=\"oblique\">sub_expr</span>\n",            N_("text that can contain any of the symbols (no\ncommands) above"),
89         "<span style=\"oblique\">completion</span>\n\n\n",      N_("completion from address book only works with the first\naddress of the header, it outputs the full name\nof the contact if that address matches exactly\none contact in the address book"),
90         NULL,NULL
91 };
92
93 static DescriptionWindow quote_desc_win = { 
94         NULL,
95         NULL,
96         2,
97         N_("Description of symbols"),
98         N_("The following symbols and commands can be used:"),
99         quote_desc_strings
100 };
101
102
103 void quote_fmt_quote_description(GtkWidget *widget, GtkWidget *pref_window)
104 {
105         quote_desc_win.parent = pref_window;
106         description_window_create(&quote_desc_win);
107 }
108