2006-12-28 [wwp] 2.6.1cvs82
[claws.git] / src / prefs_common.h
index 7b31bfea3f3e3ea7b57694b08e99f53e71e211c6..b69087bf4b682f66debdfd500c67195fb90e4002 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2004 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2006 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
@@ -14,7 +14,7 @@
  *
  * 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.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 #ifndef __PREFS_COMMON_H__
 
 #include "mainwindow.h"
 #include "summaryview.h"
+#include "folderview.h"
 #include "codeconv.h"
 #include "textview.h"
+#include "procmime.h"
+#include "prefs_msg_colors.h"
 
 typedef struct _PrefsCommon    PrefsCommon;
 
@@ -39,6 +42,12 @@ typedef enum {
        RECV_DIALOG_NEVER
 } RecvDialogMode;
 
+typedef enum {
+       COMPOSE_DND_ASK,
+       COMPOSE_DND_INSERT,
+       COMPOSE_DND_ATTACH
+} ComposeDndInsertOrAttach;
+
 typedef enum {
        CTE_AUTO,
        CTE_BASE64,
@@ -52,6 +61,18 @@ typedef enum {
        SEND_DIALOG_NEVER
 } SendDialogMode;
 
+typedef enum
+{
+/* U = unread, N = new, M = marked */
+       SELECTONENTRY_NOTHING,
+       SELECTONENTRY_UNM,
+       SELECTONENTRY_UMN,
+       SELECTONENTRY_NUM,
+       SELECTONENTRY_NMU,
+       SELECTONENTRY_MNU,
+       SELECTONENTRY_MUN
+} SelectOnEntry;
+
 typedef enum
 {
        NEXTUNREADMSGDIALOG_ALWAYS,
@@ -68,16 +89,22 @@ struct _PrefsCommon
        gboolean autochk_newmail;
        gint autochk_itv;
        gboolean chk_on_startup;
+       gboolean open_inbox_on_inc;
        gboolean newmail_notify_auto;
        gboolean newmail_notify_manu;
        gchar   *newmail_notify_cmd;
        RecvDialogMode recv_dialog_mode;
+       gint receivewin_width;
+       gint receivewin_height;
        gboolean close_recv_dialog;
        gboolean no_recv_err_panel;
 
        /* Send */
        gboolean savemsg;
+       gboolean confirm_send_queued_messages;
        SendDialogMode send_dialog_mode;
+       gint sendwin_width;
+       gint sendwin_height;
        gchar *outgoing_charset;
        TransferEncodingMethod encoding_method;
 
@@ -87,8 +114,8 @@ struct _PrefsCommon
        gint undolevels;
        gint linewrap_len;
        gboolean linewrap_quote;
+       gboolean linewrap_pastes;
        gboolean autowrap;
-       gboolean linewrap_at_send;
        gboolean auto_exteditor;
        gboolean reply_account_autosel;
        gboolean default_reply_list;
@@ -97,7 +124,12 @@ struct _PrefsCommon
        gboolean show_ruler;
        gboolean autosave;
        gint autosave_length;
-       
+       gboolean compose_no_markup;
+       ComposeDndInsertOrAttach compose_dnd_mode;
+       gboolean compose_with_format;
+       gchar *compose_subject_format;
+       gchar *compose_body_format;
+
        /* Quote */
        gboolean reply_with_quote;
        gchar *quotemark;
@@ -106,7 +138,6 @@ struct _PrefsCommon
        gchar *fw_quotefmt;
        gboolean forward_as_attachment;
        gboolean redirect_keep_from;
-       gboolean smart_wrapping;
        gboolean block_cursor;
        gchar *quote_chars;
        
@@ -114,10 +145,13 @@ struct _PrefsCommon
        gboolean enable_aspell;
        gchar *aspell_path;
        gchar *dictionary;
+       gchar *alt_dictionary;
        gulong misspelled_col;
        gint aspell_sugmode;
        gboolean check_while_typing;
+       gboolean recheck_when_changing_dict;
        gboolean use_alternate;
+       gboolean use_both_dicts;
 #endif
         
        /* Display */
@@ -131,21 +165,33 @@ struct _PrefsCommon
        /* new fonts */
        gchar *widgetfont;
        gchar *textfont;
+        gchar *printfont;
        gchar *normalfont;
-       gchar *boldfont;
        gchar *smallfont;
        gchar *titlefont;
 
+       /* custom colors */
+       ColorlabelPrefs custom_colorlabel[COLORLABELS];
+
+       /* image viewer */
+       gboolean display_img;
+       gboolean resize_img;
+       gboolean inline_img;
+
        gboolean trans_hdr;
        gboolean display_folder_unread;
        gint ng_abbrev_len;
 
        gboolean show_searchbar;
-       gboolean swap_from;
        gboolean expand_thread;
+       gboolean swap_from;
        gboolean use_addr_book;
        gchar *date_format;
 
+       gboolean use_stripes_everywhere;
+       gboolean use_stripes_in_summaries; /* overrides if use_stripes_everywhere is set to TRUE */
+       gint stripes_color_offset;
+       gboolean enable_dotted_lines;
        gboolean enable_hscrollbar;
        gboolean bold_unread;
        gboolean enable_thread;
@@ -154,6 +200,7 @@ struct _PrefsCommon
                                         *   by subject (days) */
 
        ToolbarStyle toolbar_style;
+       gboolean toolbar_detachable;
        gboolean show_statusbar;
 
        gint folderview_vscrollbar_policy;
@@ -172,6 +219,10 @@ struct _PrefsCommon
        gint summary_col_pos[N_SUMMARY_COLS];
        gint summary_col_size[N_SUMMARY_COLS];
 
+       gboolean folder_col_visible[N_FOLDER_COLS];
+       gint folder_col_pos[N_FOLDER_COLS];
+       gint folder_col_size[N_FOLDER_COLS];
+
        /* Widget visibility, position and size */
        gint folderwin_x;
        gint folderwin_y;
@@ -179,11 +230,6 @@ struct _PrefsCommon
        gint folderview_height;
        gboolean folderview_visible;
 
-       gint folder_col_folder;
-       gint folder_col_new;
-       gint folder_col_unread;
-       gint folder_col_total;
-
        gint summaryview_width;
        gint summaryview_height;
 
@@ -215,34 +261,40 @@ struct _PrefsCommon
 
        /* Message */
        gboolean enable_color;
+       gboolean enable_bgcolor;
        gulong quote_level1_col;
        gulong quote_level2_col;
        gulong quote_level3_col;
+       gulong quote_level1_bgcol;
+       gulong quote_level2_bgcol;
+       gulong quote_level3_bgcol;
        gulong uri_col;
        gulong tgt_folder_col;
        gulong signature_col;
        gboolean recycle_quote_colors;
-       gboolean conv_mb_alnum;
        gboolean display_header_pane;
        gboolean display_header;
-       gboolean head_space;
+       gboolean display_xface;
        gint line_space;
+       gboolean render_html;
+       gboolean invoke_plugin_on_html;
+       gboolean textview_cursor_visible;
        gboolean enable_smooth_scroll;
        gint scroll_step;
        gboolean scroll_halfpage;
-
-       gchar *force_charset;
+       gboolean respect_flowed_format;
 
        gboolean show_other_header;
+       gboolean use_different_print_font;
        GSList *disphdr_list;
 
        gboolean attach_desc;
 
        /* MIME viewer */
-       gchar *mime_image_viewer;
-       gchar *mime_audio_player;
+       gchar *mime_textviewer;
        gchar *mime_open_cmd;
        gchar *attach_save_dir;
+       gchar *attach_load_dir;
 
        GList *mime_open_cmd_history;
 
@@ -256,41 +308,49 @@ struct _PrefsCommon
        gboolean gpg_warning;
 #endif /* USE_GPGME */
 
+       /* Addressbook */
+       gboolean addressbook_use_editaddress_dialog;
+       gint addressbook_hpaned_pos;
+       gint addressbook_vpaned_pos;
+
        /* Interface */
        gboolean sep_folder;
        gboolean sep_msg;
+       gint statusbar_update_step;
        gboolean emulate_emacs;
        gboolean always_show_msg;
-       gboolean open_unread_on_enter;
        gboolean mark_as_read_on_new_window;
-       gboolean open_inbox_on_inc;
+       gboolean mark_as_read_delay;
        gboolean immediate_exec;
+       SelectOnEntry select_on_entry;
        NextUnreadMsgDialogShow next_unread_msg_dialog;
        gboolean add_address_by_click;
        gchar *pixmap_theme_path;
        int hover_timeout; /* msecs mouse hover timeout */
+       gboolean ask_mark_all_read;
+       gboolean ask_apply_per_account_filtering_rules;
+       gint apply_per_account_filtering_rules;
 
        /* Other */
        gchar *uri_cmd;
        gchar *print_cmd;
        gchar *ext_editor_cmd;
 
-        gboolean cliplog;
-        guint loglength;
+    gboolean cliplog;
+    guint loglength;
+       gulong log_msg_color;
+       gulong log_warn_color;
+       gulong log_error_color;
+       gulong log_in_color;
+       gulong log_out_color;
 
-        gboolean confirm_on_exit;
+    gboolean confirm_on_exit;
        gboolean clean_on_exit;
        gboolean ask_on_clean;
        gboolean warn_queued_on_exit;
 
        gint io_timeout_secs;
        
-#if 0
-#ifdef USE_OPENSSL
-       gboolean ssl_ask_unknown_valid;
-#endif
-#endif
-
        /* Memory cache*/
        gint cache_max_mem_usage;
        gint cache_min_keep_time;
@@ -301,17 +361,73 @@ struct _PrefsCommon
        
        gint summary_quicksearch_type;
        gint summary_quicksearch_sticky;
+       gint summary_quicksearch_recurse;
+       gint summary_quicksearch_dynamic;
        gulong color_new;
        
        GList *summary_quicksearch_history;
+       GList *summary_search_from_history;
+       GList *summary_search_to_history;
+       GList *summary_search_subject_history;
+       GList *summary_search_body_history;
+       GList *summary_search_adv_condition_history;
+       GList *message_search_history;
+
+       gint filteringwin_width;
+       gint filteringwin_height;
+       gint filteringactionwin_width;
+       gint filteringactionwin_height;
+       gint matcherwin_width;
+       gint matcherwin_height;
+       gint templateswin_width;
+       gint templateswin_height;
+       gint actionswin_width;
+       gint actionswin_height;
+       gint addressbookwin_width;
+       gint addressbookwin_height;
+       gint addressbookeditpersonwin_width;
+       gint addressbookeditpersonwin_height;
+       gint addressbookeditgroupwin_width;
+       gint addressbookeditgroupwin_height;
+       gint pluginswin_width;
+       gint pluginswin_height;
+       gint prefswin_width;
+       gint prefswin_height;
+       gint folderitemwin_width;
+       gint folderitemwin_height;
+       gint editaccountwin_width;
+       gint editaccountwin_height;
+       gint accountswin_width;
+       gint accountswin_height;
+       gint logwin_width;
+       gint logwin_height;
+       gint folderselwin_width;
+       gint folderselwin_height;
+       gint addressaddwin_width;
+       gint addressaddwin_height;
+       gint addressbook_folderselwin_width;
+       gint addressbook_folderselwin_height;
+
+       gint warn_dnd;
+       gint broken_are_utf8;
+       gint skip_ssl_cert_check;
+       gint live_dangerously;
+       gint never_send_retrcpt;
+       gint hide_quotes;
+       gboolean unsafe_ssl_certs;
 };
 
 extern PrefsCommon prefs_common;
 
-void prefs_common_init         (void);
 void prefs_common_read_config  (void);
-void prefs_common_save_config  (void);
+void prefs_common_write_config (void);
 void prefs_common_open         (void);
 PrefsCommon *prefs_common_get  (void);
+void pref_get_unescaped_pref(gchar *out, const gchar *in);
+void pref_get_escaped_pref(gchar *out, const gchar *in);
+void pref_set_textview_from_pref(GtkTextView *textview, const gchar *txt);
+void pref_set_entry_from_pref(GtkEntry *entry, const gchar *txt);
+gchar *pref_get_pref_from_textview(GtkTextView *textview);
+gchar *pref_get_pref_from_entry(GtkEntry *entry);
 
 #endif /* __PREFS_COMMON_H__ */