+2005-05-31 [colin] 1.9.11cvs24
+
+ * src/Makefile.am
+ * src/main.c
+ * src/prefs_quote.c ** ADDED **
+ * src/prefs_quote.h ** ADDED **
+ Move Common/Quote to Compose/Quoting
+ * src/prefs_common.c
+ * src/prefs_common.h
+ Remove old quote stuff, add
+ convenience functions for GtkTextView prefs
+ * src/gtk/prefswindow.c
+ Set default height higher
+
2005-05-30 [colin] 1.9.11cvs23
* src/Makefile.am
( cvs diff -u -r 1.382.2.122 -r 1.382.2.123 src/compose.c; cvs diff -u -r 1.52.2.10 -r 1.52.2.11 src/prefs_folder_item.c; cvs diff -u -r 1.49.2.41 -r 1.49.2.42 src/procmime.c; ) > 1.9.11cvs21.patchset
( cvs diff -u -r 1.36.2.30 -r 1.36.2.31 src/common/utils.c; cvs diff -u -r 1.100.2.20 -r 1.100.2.21 AUTHORS; ) > 1.9.11cvs22.patchset
( cvs diff -u -r 1.155.2.22 -r 1.155.2.23 src/Makefile.am; cvs diff -u -r 1.115.2.34 -r 1.115.2.35 src/main.c; cvs diff -u -r 1.204.2.39 -r 1.204.2.40 src/prefs_common.c; cvs diff -u -r 0 -r 1 src/prefs_compose_writing.c; cvs diff -u -r 0 -r 1 src/prefs_compose_writing.h; ) > 1.9.11cvs23.patchset
+( cvs diff -u -r 1.155.2.23 -r 1.155.2.24 src/Makefile.am; cvs diff -u -r 1.115.2.35 -r 1.115.2.36 src/main.c; cvs diff -u -r 1.204.2.40 -r 1.204.2.41 src/prefs_common.c; cvs diff -u -r 1.103.2.17 -r 1.103.2.18 src/prefs_common.h; cvs diff -u -r 0 -r 1 src/prefs_quote.c; cvs diff -u -r 0 -r 1 src/prefs_quote.h; cvs diff -u -r 1.12.2.17 -r 1.12.2.18 src/gtk/prefswindow.c; ) > 1.9.11cvs24.patchset
MICRO_VERSION=11
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=23
+EXTRA_VERSION=24
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
prefs_image_viewer.c \
prefs_matcher.c \
prefs_msg_colors.c \
+ prefs_quote.c \
prefs_spelling.c \
prefs_summary_column.c \
prefs_template.c \
prefs_image_viewer.h \
prefs_matcher.h \
prefs_msg_colors.h \
+ prefs_quote.h \
prefs_spelling.h \
prefs_summary_column.h \
prefs_template.h \
prefswindow->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(prefswindow->window), title);
- gtk_window_set_default_size(GTK_WINDOW(prefswindow->window), 600, 340);
+ gtk_window_set_default_size(GTK_WINDOW(prefswindow->window), 600, 440);
gtk_window_set_position (GTK_WINDOW(prefswindow->window), GTK_WIN_POS_CENTER);
gtk_window_set_modal (GTK_WINDOW (prefswindow->window), TRUE);
gtk_window_set_resizable (GTK_WINDOW(prefswindow->window), TRUE);
#include "prefs_fonts.h"
#include "prefs_image_viewer.h"
#include "prefs_msg_colors.h"
+#include "prefs_quote.h"
#include "prefs_spelling.h"
#include "prefs_themes.h"
#include "prefs_wrapping.h"
prefs_msg_colors_init();
image_viewer_init();
prefs_image_viewer_init();
+ prefs_quote_init();
#ifdef USE_ASPELL
gtkaspell_checkers_init();
prefs_spelling_init();
prefs_msg_colors_done();
prefs_image_viewer_done();
image_viewer_done();
+ prefs_quote_done();
#ifdef USE_ASPELL
prefs_spelling_done();
gtkaspell_checkers_quit();
#include "filesel.h"
#include "folderview.h"
#include "stock_pixmap.h"
-#include "quote_fmt.h"
#include "prefswindow.h"
enum {
GtkWidget *optmenu_encoding_method;
} p_send;
-static struct Compose {
- GtkWidget *entry_fw_quotemark;
- GtkWidget *text_fw_quotefmt;
-
- GtkWidget *checkbtn_autoextedit;
- GtkWidget *spinbtn_undolevel;
- GtkObject *spinbtn_undolevel_adj;
-
- GtkWidget *checkbtn_reply_account_autosel;
- GtkWidget *checkbtn_forward_account_autosel;
- GtkWidget *checkbtn_reedit_account_autosel;
- GtkWidget *checkbtn_quote;
- GtkWidget *checkbtn_default_reply_list;
- GtkWidget *checkbtn_forward_as_attachment;
- GtkWidget *checkbtn_redirect_keep_from;
- GtkWidget *checkbtn_reply_with_quote;
-
- GtkWidget *checkbtn_autosave;
- GtkWidget *entry_autosave_length;
-} compose;
-
-static struct Quote {
- GtkWidget *entry_quotemark;
- GtkWidget *text_quotefmt;
-
- GtkWidget *entry_fw_quotemark;
- GtkWidget *text_fw_quotefmt;
-
- GtkWidget *entry_quote_chars;
-} quote;
-
static struct Display {
GtkWidget *chkbtn_folder_unread;
GtkWidget *entry_ng_abbrev_len;
/* Quote */
{"reply_quote_mark", "> ", &prefs_common.quotemark, P_STRING,
- "e.entry_quotemark, prefs_set_data_from_entry, prefs_set_entry},
+ NULL, NULL, NULL},
{"reply_quote_format", "On %d\\n%f wrote:\\n\\n%q",
- &prefs_common.quotefmt, P_STRING, "e.text_quotefmt,
- prefs_set_data_from_text, prefs_set_text},
+ &prefs_common.quotefmt, P_STRING, NULL, NULL, NULL},
{"forward_quote_mark", "> ", &prefs_common.fw_quotemark, P_STRING,
- "e.entry_fw_quotemark,
- prefs_set_data_from_entry, prefs_set_entry},
+ NULL, NULL, NULL},
{"forward_quote_format",
"\\n\\nBegin forwarded message:\\n\\n"
"?d{Date: %d\\n}?f{From: %f\\n}?t{To: %t\\n}?c{Cc: %c\\n}"
"?n{Newsgroups: %n\\n}?s{Subject: %s\\n}\\n\\n%M",
- &prefs_common.fw_quotefmt, P_STRING, "e.text_fw_quotefmt,
- prefs_set_data_from_text, prefs_set_text},
+ &prefs_common.fw_quotefmt, P_STRING, NULL, NULL, NULL},
{"quote_chars", ">", &prefs_common.quote_chars, P_STRING,
- "e.entry_quote_chars, prefs_set_data_from_entry, prefs_set_entry},
+ NULL, NULL, NULL},
/* Display */
/* Obsolete fonts. For coexisting with Gtk+-1.2 version */
static void prefs_common_create (void);
static void prefs_receive_create (void);
static void prefs_send_create (void);
-static void prefs_quote_create (void);
static void prefs_display_create (void);
static void prefs_message_create (void);
static void prefs_interface_create (void);
SET_NOTEBOOK_LABEL(notebook, _("Receive"), page++);
prefs_send_create();
SET_NOTEBOOK_LABEL(notebook, _("Send"), page++);
- prefs_quote_create();
- SET_NOTEBOOK_LABEL(notebook, _("Quote"), page++);
prefs_display_create();
SET_NOTEBOOK_LABEL(notebook, _("Display"), page++);
prefs_message_create();
gtk_widget_set_sensitive(receive.hbox_newmail_notify, toggled);
}
-static void prefs_quote_create(void)
-{
- GtkWidget *vbox1;
- GtkWidget *frame_quote;
- GtkWidget *vbox_quote;
- GtkWidget *hbox1;
- GtkWidget *hbox2;
- GtkWidget *label_quotemark;
- GtkWidget *entry_quotemark;
- GtkWidget *scrolledwin_quotefmt;
- GtkWidget *text_quotefmt;
-
- GtkWidget *entry_fw_quotemark;
- GtkWidget *text_fw_quotefmt;
-
- GtkWidget *entry_quote_chars;
- GtkWidget *label_quote_chars;
-
- GtkWidget *btn_quotedesc;
-
- GtkWidget *checkbtn_reply_with_quote;
-
- vbox1 = gtk_vbox_new (FALSE, VSPACING);
- gtk_widget_show (vbox1);
- gtk_container_add (GTK_CONTAINER (notebook), vbox1);
- gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
-
- /* reply */
-
- PACK_CHECK_BUTTON (vbox1, checkbtn_reply_with_quote, _("Reply will quote by default"));
-
- PACK_FRAME (vbox1, frame_quote, _("Reply format"));
-
- vbox_quote = gtk_vbox_new (FALSE, VSPACING_NARROW);
- gtk_widget_show (vbox_quote);
- gtk_container_add (GTK_CONTAINER (frame_quote), vbox_quote);
- gtk_container_set_border_width (GTK_CONTAINER (vbox_quote), 8);
-
- hbox1 = gtk_hbox_new (FALSE, 32);
- gtk_widget_show (hbox1);
- gtk_box_pack_start (GTK_BOX (vbox_quote), hbox1, FALSE, FALSE, 0);
-
- hbox2 = gtk_hbox_new (FALSE, 8);
- gtk_widget_show (hbox2);
- gtk_box_pack_start (GTK_BOX (hbox1), hbox2, FALSE, FALSE, 0);
-
- label_quotemark = gtk_label_new (_("Quotation mark"));
- gtk_widget_show (label_quotemark);
- gtk_box_pack_start (GTK_BOX (hbox2), label_quotemark, FALSE, FALSE, 0);
-
- entry_quotemark = gtk_entry_new ();
- gtk_widget_show (entry_quotemark);
- gtk_box_pack_start (GTK_BOX (hbox2), entry_quotemark, FALSE, FALSE, 0);
- gtk_widget_set_size_request (entry_quotemark, 64, -1);
-
- scrolledwin_quotefmt = gtk_scrolled_window_new (NULL, NULL);
- gtk_widget_show (scrolledwin_quotefmt);
- gtk_box_pack_start (GTK_BOX (vbox_quote), scrolledwin_quotefmt,
- TRUE, TRUE, 0);
- gtk_scrolled_window_set_policy
- (GTK_SCROLLED_WINDOW (scrolledwin_quotefmt),
- GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_set_shadow_type
- (GTK_SCROLLED_WINDOW (scrolledwin_quotefmt), GTK_SHADOW_IN);
-
- text_quotefmt = gtk_text_view_new ();
- gtk_widget_show (text_quotefmt);
- gtk_container_add(GTK_CONTAINER(scrolledwin_quotefmt), text_quotefmt);
- gtk_text_view_set_editable (GTK_TEXT_VIEW (text_quotefmt), TRUE);
- gtk_widget_set_size_request(text_quotefmt, -1, 60);
-
- /* forward */
-
- PACK_FRAME (vbox1, frame_quote, _("Forward format"));
-
- vbox_quote = gtk_vbox_new (FALSE, VSPACING_NARROW);
- gtk_widget_show (vbox_quote);
- gtk_container_add (GTK_CONTAINER (frame_quote), vbox_quote);
- gtk_container_set_border_width (GTK_CONTAINER (vbox_quote), 8);
-
- hbox1 = gtk_hbox_new (FALSE, 32);
- gtk_widget_show (hbox1);
- gtk_box_pack_start (GTK_BOX (vbox_quote), hbox1, FALSE, FALSE, 0);
-
- hbox2 = gtk_hbox_new (FALSE, 8);
- gtk_widget_show (hbox2);
- gtk_box_pack_start (GTK_BOX (hbox1), hbox2, FALSE, FALSE, 0);
-
- label_quotemark = gtk_label_new (_("Quotation mark"));
- gtk_widget_show (label_quotemark);
- gtk_box_pack_start (GTK_BOX (hbox2), label_quotemark, FALSE, FALSE, 0);
-
- entry_fw_quotemark = gtk_entry_new ();
- gtk_widget_show (entry_fw_quotemark);
- gtk_box_pack_start (GTK_BOX (hbox2), entry_fw_quotemark,
- FALSE, FALSE, 0);
- gtk_widget_set_size_request (entry_fw_quotemark, 64, -1);
-
- scrolledwin_quotefmt = gtk_scrolled_window_new (NULL, NULL);
- gtk_widget_show (scrolledwin_quotefmt);
- gtk_box_pack_start (GTK_BOX (vbox_quote), scrolledwin_quotefmt,
- TRUE, TRUE, 0);
- gtk_scrolled_window_set_policy
- (GTK_SCROLLED_WINDOW (scrolledwin_quotefmt),
- GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_set_shadow_type
- (GTK_SCROLLED_WINDOW (scrolledwin_quotefmt), GTK_SHADOW_IN);
-
- text_fw_quotefmt = gtk_text_view_new ();
- gtk_widget_show (text_fw_quotefmt);
- gtk_container_add(GTK_CONTAINER(scrolledwin_quotefmt),
- text_fw_quotefmt);
- gtk_text_view_set_editable (GTK_TEXT_VIEW (text_fw_quotefmt), TRUE);
- gtk_widget_set_size_request (text_fw_quotefmt, -1, 60);
-
- hbox1 = gtk_hbox_new (FALSE, 32);
- gtk_widget_show (hbox1);
- gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);
-
- btn_quotedesc =
- gtk_button_new_with_label (_(" Description of symbols "));
- gtk_widget_show (btn_quotedesc);
- gtk_box_pack_start (GTK_BOX (hbox1), btn_quotedesc, FALSE, FALSE, 0);
- g_signal_connect(G_OBJECT(btn_quotedesc), "clicked",
- G_CALLBACK(quote_fmt_quote_description), NULL);
-
- /* quote chars */
-
- PACK_FRAME (vbox1, frame_quote, _("Quotation characters"));
-
- vbox_quote = gtk_vbox_new (FALSE, VSPACING_NARROW);
- gtk_widget_show (vbox_quote);
- gtk_container_add (GTK_CONTAINER (frame_quote), vbox_quote);
- gtk_container_set_border_width (GTK_CONTAINER (vbox_quote), 8);
-
- hbox1 = gtk_hbox_new (FALSE, 32);
- gtk_widget_show (hbox1);
- gtk_box_pack_start (GTK_BOX (vbox_quote), hbox1, FALSE, FALSE, 0);
-
- hbox2 = gtk_hbox_new (FALSE, 8);
- gtk_widget_show (hbox2);
- gtk_box_pack_start (GTK_BOX (hbox1), hbox2, FALSE, FALSE, 0);
-
- label_quote_chars = gtk_label_new (_("Treat these characters as quotation marks: "));
- gtk_widget_show (label_quote_chars);
- gtk_box_pack_start (GTK_BOX (hbox2), label_quote_chars, FALSE, FALSE, 0);
-
- entry_quote_chars = gtk_entry_new ();
- gtk_widget_show (entry_quote_chars);
- gtk_box_pack_start (GTK_BOX (hbox2), entry_quote_chars,
- FALSE, FALSE, 0);
- gtk_widget_set_size_request (entry_quote_chars, 64, -1);
-
-
- compose.checkbtn_reply_with_quote= checkbtn_reply_with_quote;
- quote.entry_quotemark = entry_quotemark;
- quote.text_quotefmt = text_quotefmt;
- quote.entry_fw_quotemark = entry_fw_quotemark;
- quote.text_fw_quotefmt = text_fw_quotefmt;
- quote.entry_quote_chars = entry_quote_chars;
-}
-
static void prefs_display_create(void)
{
GtkWidget *vbox1;
gtk_menu_item_activate(GTK_MENU_ITEM(menuitem));
}
-/*
-static void prefs_common_cancel(void)
-{
- gtk_widget_hide(dialog.window);
- inc_unlock();
-}
-*/
-
-/* static void prefs_recvdialog_set_data_from_optmenu(PrefParam *pparam)
+void pref_set_textview_from_pref(GtkTextView *textview, gchar *txt)
{
- GtkWidget *menu;
- GtkWidget *menuitem;
+ GtkTextBuffer *buffer = gtk_text_view_get_buffer(textview);
+ gchar *o_out, *out = malloc(txt?(strlen(txt)+1):1);
+ gchar *t = txt;
+ memset(out, 0, strlen(txt)+1);
+ o_out = out;
+ while (*t != '\0') {
+ if (*t == '\\' && *(t+1) == 'n') {
+ *out++ = '\n';
+ t++;
+ } else if (*t == '\\') {
+ t++;
+ } else {
+ *out++ = *t;
+ }
+ t++;
+ }
+ *out='\0';
- menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(*pparam->widget));
- menuitem = gtk_menu_get_active(GTK_MENU(menu));
- *((RecvDialogShow *)pparam->data) = GPOINTER_TO_INT
- (gtk_object_get_user_data(GTK_OBJECT(menuitem)));
-} */
+ gtk_text_buffer_set_text(buffer, o_out?o_out:"", -1);
+ g_free(o_out);
+}
-/* static void prefs_recvdialog_set_optmenu(PrefParam *pparam)
+gchar *pref_get_pref_from_textview(GtkTextView *textview)
{
- RecvDialogShow dialog_show;
- GtkOptionMenu *optmenu = GTK_OPTION_MENU(*pparam->widget);
- GtkWidget *menu;
- GtkWidget *menuitem;
-
- dialog_show = *((RecvDialogShow *)pparam->data);
-
- switch (dialog_show) {
- case RECVDIALOG_ALWAYS:
- gtk_option_menu_set_history(optmenu, 0);
- break;
- case RECVDIALOG_WINDOW_ACTIVE:
- gtk_option_menu_set_history(optmenu, 1);
- break;
- case RECVDIALOG_NEVER:
- gtk_option_menu_set_history(optmenu, 2);
- break;
- default:
+ GtkTextBuffer *buffer;
+ GtkTextIter start, end;
+ gchar *o_out, *out, *tmp, *t;
+
+ buffer = gtk_text_view_get_buffer(textview);
+ gtk_text_buffer_get_start_iter(buffer, &start);
+ gtk_text_buffer_get_iter_at_offset(buffer, &end, -1);
+ tmp = gtk_text_buffer_get_text(buffer, &start, &end, FALSE);
+ t = tmp;
+ o_out = out = malloc(2*strlen(tmp)+1);
+
+ while (*t != '\0') {
+ if (*t == '\n') {
+ *out++ = '\\';
+ *out++ = 'n';
+ } else if (*t == '\\') {
+ *out++ = '\\';
+ *out++ = '\\';
+ } else {
+ *out++ = *t;
+ }
+ t++;
}
+ *out = '\0';
+ g_free(tmp);
- menu = gtk_option_menu_get_menu(optmenu);
- menuitem = gtk_menu_get_active(GTK_MENU(menu));
- gtk_menu_item_activate(GTK_MENU_ITEM(menuitem));
-} */
+ return o_out;
+}
void prefs_common_write_config (void);
void prefs_common_open (void);
PrefsCommon *prefs_common_get (void);
+void pref_set_textview_from_pref(GtkTextView *textview, gchar *txt);
+gchar *pref_get_pref_from_textview(GtkTextView *textview);
#endif /* __PREFS_COMMON_H__ */
--- /dev/null
+/*
+ * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
+ * Copyright (C) 2004 Hiroyuki Yamamoto & The Sylpheed-Claws 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "defs.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include <gdk/gdkkeysyms.h>
+
+#include "prefs_common.h"
+#include "prefs_gtk.h"
+
+#include "gtk/gtkutils.h"
+#include "gtk/prefswindow.h"
+
+#include "manage_window.h"
+#include "quote_fmt.h"
+
+typedef struct _QuotePage
+{
+ PrefsPage page;
+
+ GtkWidget *window;
+
+ GtkWidget *entry_quotemark;
+ GtkWidget *text_quotefmt;
+ GtkWidget *entry_fw_quotemark;
+ GtkWidget *text_fw_quotefmt;
+ GtkWidget *entry_quote_chars;
+ GtkWidget *label_quote_chars;
+ GtkWidget *btn_quotedesc;
+ GtkWidget *checkbtn_reply_with_quote;
+} QuotePage;
+
+void prefs_quote_create_widget(PrefsPage *_page, GtkWindow *window,
+ gpointer data)
+{
+ QuotePage *prefs_quote = (QuotePage *) _page;
+
+ GtkWidget *vbox1;
+ GtkWidget *frame_quote;
+ GtkWidget *vbox_quote;
+ GtkWidget *hbox1;
+ GtkWidget *hbox2;
+ GtkWidget *label_quotemark;
+ GtkWidget *entry_quotemark;
+ GtkWidget *scrolledwin_quotefmt;
+ GtkWidget *text_quotefmt;
+
+ GtkWidget *entry_fw_quotemark;
+ GtkWidget *text_fw_quotefmt;
+
+ GtkWidget *entry_quote_chars;
+ GtkWidget *label_quote_chars;
+
+ GtkWidget *btn_quotedesc;
+
+ GtkWidget *checkbtn_reply_with_quote;
+
+ GtkTextBuffer *buffer;
+
+ vbox1 = gtk_vbox_new (FALSE, VSPACING);
+ gtk_widget_show (vbox1);
+ gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
+
+ /* reply */
+
+ PACK_CHECK_BUTTON (vbox1, checkbtn_reply_with_quote, _("Reply will quote by default"));
+
+ PACK_FRAME (vbox1, frame_quote, _("Reply format"));
+
+ vbox_quote = gtk_vbox_new (FALSE, VSPACING_NARROW);
+ gtk_widget_show (vbox_quote);
+ gtk_container_add (GTK_CONTAINER (frame_quote), vbox_quote);
+ gtk_container_set_border_width (GTK_CONTAINER (vbox_quote), 8);
+
+ hbox1 = gtk_hbox_new (FALSE, 32);
+ gtk_widget_show (hbox1);
+ gtk_box_pack_start (GTK_BOX (vbox_quote), hbox1, FALSE, FALSE, 0);
+
+ hbox2 = gtk_hbox_new (FALSE, 8);
+ gtk_widget_show (hbox2);
+ gtk_box_pack_start (GTK_BOX (hbox1), hbox2, FALSE, FALSE, 0);
+
+ label_quotemark = gtk_label_new (_("Quotation mark"));
+ gtk_widget_show (label_quotemark);
+ gtk_box_pack_start (GTK_BOX (hbox2), label_quotemark, FALSE, FALSE, 0);
+
+ entry_quotemark = gtk_entry_new ();
+ gtk_widget_show (entry_quotemark);
+ gtk_box_pack_start (GTK_BOX (hbox2), entry_quotemark, FALSE, FALSE, 0);
+ gtk_widget_set_size_request (entry_quotemark, 64, -1);
+
+ scrolledwin_quotefmt = gtk_scrolled_window_new (NULL, NULL);
+ gtk_widget_show (scrolledwin_quotefmt);
+ gtk_box_pack_start (GTK_BOX (vbox_quote), scrolledwin_quotefmt,
+ TRUE, TRUE, 0);
+ gtk_scrolled_window_set_policy
+ (GTK_SCROLLED_WINDOW (scrolledwin_quotefmt),
+ GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_set_shadow_type
+ (GTK_SCROLLED_WINDOW (scrolledwin_quotefmt), GTK_SHADOW_IN);
+
+ text_quotefmt = gtk_text_view_new ();
+ gtk_widget_show (text_quotefmt);
+ gtk_container_add(GTK_CONTAINER(scrolledwin_quotefmt), text_quotefmt);
+ gtk_text_view_set_editable (GTK_TEXT_VIEW (text_quotefmt), TRUE);
+ gtk_widget_set_size_request(text_quotefmt, -1, 60);
+
+ /* forward */
+
+ PACK_FRAME (vbox1, frame_quote, _("Forward format"));
+
+ vbox_quote = gtk_vbox_new (FALSE, VSPACING_NARROW);
+ gtk_widget_show (vbox_quote);
+ gtk_container_add (GTK_CONTAINER (frame_quote), vbox_quote);
+ gtk_container_set_border_width (GTK_CONTAINER (vbox_quote), 8);
+
+ hbox1 = gtk_hbox_new (FALSE, 32);
+ gtk_widget_show (hbox1);
+ gtk_box_pack_start (GTK_BOX (vbox_quote), hbox1, FALSE, FALSE, 0);
+
+ hbox2 = gtk_hbox_new (FALSE, 8);
+ gtk_widget_show (hbox2);
+ gtk_box_pack_start (GTK_BOX (hbox1), hbox2, FALSE, FALSE, 0);
+
+ label_quotemark = gtk_label_new (_("Quotation mark"));
+ gtk_widget_show (label_quotemark);
+ gtk_box_pack_start (GTK_BOX (hbox2), label_quotemark, FALSE, FALSE, 0);
+
+ entry_fw_quotemark = gtk_entry_new ();
+ gtk_widget_show (entry_fw_quotemark);
+ gtk_box_pack_start (GTK_BOX (hbox2), entry_fw_quotemark,
+ FALSE, FALSE, 0);
+ gtk_widget_set_size_request (entry_fw_quotemark, 64, -1);
+
+ scrolledwin_quotefmt = gtk_scrolled_window_new (NULL, NULL);
+ gtk_widget_show (scrolledwin_quotefmt);
+ gtk_box_pack_start (GTK_BOX (vbox_quote), scrolledwin_quotefmt,
+ TRUE, TRUE, 0);
+ gtk_scrolled_window_set_policy
+ (GTK_SCROLLED_WINDOW (scrolledwin_quotefmt),
+ GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_set_shadow_type
+ (GTK_SCROLLED_WINDOW (scrolledwin_quotefmt), GTK_SHADOW_IN);
+
+ text_fw_quotefmt = gtk_text_view_new ();
+ gtk_widget_show (text_fw_quotefmt);
+ gtk_container_add(GTK_CONTAINER(scrolledwin_quotefmt),
+ text_fw_quotefmt);
+ gtk_text_view_set_editable (GTK_TEXT_VIEW (text_fw_quotefmt), TRUE);
+ gtk_widget_set_size_request (text_fw_quotefmt, -1, 60);
+
+ hbox1 = gtk_hbox_new (FALSE, 32);
+ gtk_widget_show (hbox1);
+ gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);
+
+ btn_quotedesc =
+ gtk_button_new_with_label (_(" Description of symbols "));
+ gtk_widget_show (btn_quotedesc);
+ gtk_box_pack_start (GTK_BOX (hbox1), btn_quotedesc, FALSE, FALSE, 0);
+ g_signal_connect(G_OBJECT(btn_quotedesc), "clicked",
+ G_CALLBACK(quote_fmt_quote_description), NULL);
+
+ /* quote chars */
+
+ PACK_FRAME (vbox1, frame_quote, _("Quotation characters"));
+
+ vbox_quote = gtk_vbox_new (FALSE, VSPACING_NARROW);
+ gtk_widget_show (vbox_quote);
+ gtk_container_add (GTK_CONTAINER (frame_quote), vbox_quote);
+ gtk_container_set_border_width (GTK_CONTAINER (vbox_quote), 8);
+
+ hbox1 = gtk_hbox_new (FALSE, 32);
+ gtk_widget_show (hbox1);
+ gtk_box_pack_start (GTK_BOX (vbox_quote), hbox1, FALSE, FALSE, 0);
+
+ hbox2 = gtk_hbox_new (FALSE, 8);
+ gtk_widget_show (hbox2);
+ gtk_box_pack_start (GTK_BOX (hbox1), hbox2, FALSE, FALSE, 0);
+
+ label_quote_chars = gtk_label_new (_("Treat these characters as quotation marks: "));
+ gtk_widget_show (label_quote_chars);
+ gtk_box_pack_start (GTK_BOX (hbox2), label_quote_chars, FALSE, FALSE, 0);
+
+ entry_quote_chars = gtk_entry_new ();
+ gtk_widget_show (entry_quote_chars);
+ gtk_box_pack_start (GTK_BOX (hbox2), entry_quote_chars,
+ FALSE, FALSE, 0);
+ gtk_widget_set_size_request (entry_quote_chars, 64, -1);
+
+ pref_set_textview_from_pref(GTK_TEXT_VIEW(text_quotefmt), prefs_common.quotefmt);
+ pref_set_textview_from_pref(GTK_TEXT_VIEW(text_fw_quotefmt), prefs_common.fw_quotefmt);
+
+ gtk_entry_set_text(GTK_ENTRY(entry_quotemark),
+ prefs_common.quotemark?prefs_common.quotemark:"");
+ gtk_entry_set_text(GTK_ENTRY(entry_fw_quotemark),
+ prefs_common.fw_quotemark?prefs_common.fw_quotemark:"");
+ gtk_entry_set_text(GTK_ENTRY(entry_quote_chars),
+ prefs_common.quote_chars?prefs_common.quote_chars:"");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_reply_with_quote),
+ prefs_common.reply_with_quote);
+
+ prefs_quote->window = GTK_WIDGET(window);
+ prefs_quote->text_quotefmt = text_quotefmt;
+ prefs_quote->text_fw_quotefmt = text_fw_quotefmt;
+ prefs_quote->entry_quotemark = entry_quotemark;
+ prefs_quote->entry_fw_quotemark = entry_fw_quotemark;
+ prefs_quote->entry_quote_chars = entry_quote_chars;
+ prefs_quote->checkbtn_reply_with_quote
+ = checkbtn_reply_with_quote;
+ prefs_quote->page.widget = vbox1;
+}
+
+void prefs_quote_save(PrefsPage *_page)
+{
+ QuotePage *page = (QuotePage *) _page;
+ GtkTextBuffer *buffer;
+ GtkTextIter start, end;
+
+ g_free(prefs_common.quotefmt);
+ prefs_common.quotefmt = NULL;
+ g_free(prefs_common.fw_quotefmt);
+ prefs_common.fw_quotefmt = NULL;
+ g_free(prefs_common.quotemark);
+ prefs_common.quotemark = NULL;
+ g_free(prefs_common.fw_quotemark);
+ prefs_common.fw_quotemark = NULL;
+ g_free(prefs_common.quote_chars);
+ prefs_common.quote_chars = NULL;
+
+ prefs_common.quotefmt = pref_get_pref_from_textview(
+ GTK_TEXT_VIEW(page->text_quotefmt));
+
+ prefs_common.fw_quotefmt = pref_get_pref_from_textview(
+ GTK_TEXT_VIEW(page->text_fw_quotefmt));
+
+ prefs_common.quotemark = gtk_editable_get_chars(
+ GTK_EDITABLE(page->entry_quotemark), 0, -1);
+ prefs_common.fw_quotemark = gtk_editable_get_chars(
+ GTK_EDITABLE(page->entry_fw_quotemark), 0, -1);
+ prefs_common.quote_chars = gtk_editable_get_chars(
+ GTK_EDITABLE(page->entry_quote_chars), 0, -1);
+ prefs_common.reply_with_quote = gtk_toggle_button_get_active(
+ GTK_TOGGLE_BUTTON(page->checkbtn_reply_with_quote));
+}
+
+static void prefs_quote_destroy_widget(PrefsPage *_page)
+{
+}
+
+QuotePage *prefs_quote;
+
+void prefs_quote_init(void)
+{
+ QuotePage *page;
+ static gchar *path[3];
+
+ path[0] = _("Compose");
+ path[1] = _("Quoting");
+ path[2] = NULL;
+
+ page = g_new0(QuotePage, 1);
+ page->page.path = path;
+ page->page.create_widget = prefs_quote_create_widget;
+ page->page.destroy_widget = prefs_quote_destroy_widget;
+ page->page.save_page = prefs_quote_save;
+ page->page.weight = 60.0;
+ prefs_gtk_register_page((PrefsPage *) page);
+ prefs_quote = page;
+}
+
+void prefs_quote_done(void)
+{
+ prefs_gtk_unregister_page((PrefsPage *) prefs_quote);
+ g_free(prefs_quote);
+}
--- /dev/null
+/*
+ * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
+ * Copyright (C) 2004 Hiroyuki Yamamoto & the Sylpheed-Claws 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PREFS_QUOTE_H
+#define PREFS_QUOTE_H
+
+void prefs_quote_init (void);
+void prefs_quote_done (void);
+
+#endif /* PREFS_QUOTE_H */