#include "folderview.h"
#include "stock_pixmap.h"
#include "quote_fmt.h"
+#include "prefswindow.h"
PrefsCommon prefs_common;
-static PrefsDialog dialog;
+GtkWidget *notebook;
static struct Receive {
GtkWidget *checkbtn_incext;
GtkWidget *chkbtn_attach_desc;
} message;
-#if USE_GPGME
-static struct Privacy {
- GtkWidget *checkbtn_auto_check_signatures;
- GtkWidget *checkbtn_store_passphrase;
- GtkWidget *spinbtn_store_passphrase;
- GtkObject *spinbtn_store_passphrase_adj;
- GtkWidget *checkbtn_passphrase_grab;
- GtkWidget *checkbtn_gpg_warning;
-} privacy;
-#endif
-
static struct Interface {
/* GtkWidget *checkbtn_emacs; */
GtkWidget *checkbtn_always_show_msg;
{"mime_open_command", "gedit '%s'",
&prefs_common.mime_open_cmd, P_STRING, NULL, NULL, NULL},
-#if USE_GPGME
- /* Privacy */
- {"auto_check_signatures", "TRUE",
- &prefs_common.auto_check_signatures, P_BOOL,
- &privacy.checkbtn_auto_check_signatures,
- prefs_set_data_from_toggle, prefs_set_toggle},
- {"store_passphrase", "FALSE", &prefs_common.store_passphrase, P_BOOL,
- &privacy.checkbtn_store_passphrase,
- prefs_set_data_from_toggle, prefs_set_toggle},
- {"store_passphrase_timeout", "0",
- &prefs_common.store_passphrase_timeout, P_INT,
- &privacy.spinbtn_store_passphrase,
- prefs_set_data_from_spinbtn, prefs_set_spinbtn},
-#ifndef __MINGW32__
- {"passphrase_grab", "FALSE", &prefs_common.passphrase_grab, P_BOOL,
- &privacy.checkbtn_passphrase_grab,
- prefs_set_data_from_toggle, prefs_set_toggle},
-#endif /* __MINGW32__ */
- {"gpg_warning", "TRUE", &prefs_common.gpg_warning, P_BOOL,
- &privacy.checkbtn_gpg_warning,
- prefs_set_data_from_toggle, prefs_set_toggle},
-#endif /* USE_GPGME */
-
/* Interface */
{"separate_folder", "FALSE", &prefs_common.sep_folder, P_BOOL,
NULL, NULL, NULL},
static void prefs_quote_create (void);
static void prefs_display_create (void);
static void prefs_message_create (void);
-#if USE_GPGME
-static void prefs_privacy_create (void);
-#endif
static void prefs_interface_create (void);
static void prefs_other_create (void);
static void prefs_keybind_cancel (void);
static void prefs_keybind_apply_clicked (GtkWidget *widget);
-static gint prefs_common_deleted (GtkWidget *widget,
- GdkEventAny *event,
- gpointer data);
-static gboolean prefs_common_key_pressed(GtkWidget *widget,
- GdkEventKey *event,
- gpointer data);
-static void prefs_common_ok (void);
static void prefs_common_apply (void);
-static void prefs_common_cancel (void);
+
+typedef struct CommonPage
+{
+ PrefsPage page;
+
+ GtkWidget *vbox;
+} CommonPage;
+
+static CommonPage common_page;
+
+static void create_widget_func(PrefsPage * _page,
+ GtkWindow * window,
+ gpointer data)
+{
+ CommonPage *page = (CommonPage *) _page;
+ GtkWidget *vbox;
+
+ vbox = gtk_vbox_new(FALSE, 6);
+ gtk_widget_show(vbox);
+
+ if (notebook == NULL)
+ prefs_common_create();
+ gtk_box_pack_start (GTK_BOX (vbox), notebook, TRUE, TRUE, 0);
+ gtk_notebook_set_page(GTK_NOTEBOOK(notebook), 0);
+
+ prefs_set_dialog(param);
+
+ page->vbox = vbox;
+
+ page->page.widget = vbox;
+}
+
+static void destroy_widget_func(PrefsPage *_page)
+{
+ CommonPage *page = (CommonPage *) _page;
+
+ gtk_container_remove(GTK_CONTAINER (page->vbox), notebook);
+}
+
+static void save_func(PrefsPage * _page)
+{
+ prefs_common_apply();
+}
void prefs_common_init(void)
{
+ static gchar *path[2];
+
prefs_common.disphdr_list = NULL;
+
+ path[0] = _("Common");
+ path[2] = NULL;
+
+ common_page.page.path = path;
+ common_page.page.weight = 1000.0;
+ common_page.page.create_widget = create_widget_func;
+ common_page.page.destroy_widget = destroy_widget_func;
+ common_page.page.save_page = save_func;
+
+ prefs_gtk_register_page((PrefsPage *) &common_page);
}
PrefsCommon *prefs_common_get(void)
prefs_common.summary_quicksearch_history);
}
-void prefs_common_open(void)
-{
- if (prefs_rc_is_readonly(COMMON_RC))
- return;
-
- inc_lock();
-
- if (!dialog.window) {
- prefs_common_create();
- }
-
- manage_window_set_transient(GTK_WINDOW(dialog.window));
- gtk_notebook_set_current_page(GTK_NOTEBOOK(dialog.notebook), 0);
- gtk_widget_grab_focus(dialog.ok_btn);
-
- prefs_set_dialog(param);
-
- gtk_widget_show(dialog.window);
-}
-
static void prefs_common_create(void)
{
gint page = 0;
debug_print("Creating common preferences window...\n");
- prefs_dialog_create(&dialog);
- gtk_window_set_title (GTK_WINDOW(dialog.window),
- _("Common Preferences"));
- g_signal_connect (G_OBJECT(dialog.window), "delete_event",
- G_CALLBACK(prefs_common_deleted), NULL);
- g_signal_connect (G_OBJECT(dialog.window), "key_press_event",
- G_CALLBACK(prefs_common_key_pressed), NULL);
- MANAGE_WINDOW_SIGNALS_CONNECT(dialog.window);
-
- g_signal_connect (G_OBJECT(dialog.ok_btn), "clicked",
- G_CALLBACK(prefs_common_ok), NULL);
- g_signal_connect (G_OBJECT(dialog.apply_btn), "clicked",
- G_CALLBACK(prefs_common_apply), NULL);
- g_signal_connect_swapped(G_OBJECT(dialog.cancel_btn), "clicked",
- G_CALLBACK(prefs_common_cancel),
- G_OBJECT(dialog.window));
+ notebook = gtk_notebook_new ();
+ gtk_widget_show(notebook);
+ gtk_container_set_border_width (GTK_CONTAINER (notebook), 2);
+ /* GTK_WIDGET_UNSET_FLAGS (notebook, GTK_CAN_FOCUS); */
+ gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE);
+
+ gtk_notebook_popup_enable (GTK_NOTEBOOK (notebook));
+
+ gtk_widget_ref(notebook);
/* create all widgets on notebook */
prefs_receive_create();
- SET_NOTEBOOK_LABEL(dialog.notebook, _("Receive"), page++);
+ SET_NOTEBOOK_LABEL(notebook, _("Receive"), page++);
prefs_send_create();
- SET_NOTEBOOK_LABEL(dialog.notebook, _("Send"), page++);
+ SET_NOTEBOOK_LABEL(notebook, _("Send"), page++);
prefs_compose_create();
- SET_NOTEBOOK_LABEL(dialog.notebook, _("Compose"), page++);
+ SET_NOTEBOOK_LABEL(notebook, _("Compose"), page++);
prefs_quote_create();
- SET_NOTEBOOK_LABEL(dialog.notebook, _("Quote"), page++);
+ SET_NOTEBOOK_LABEL(notebook, _("Quote"), page++);
prefs_display_create();
- SET_NOTEBOOK_LABEL(dialog.notebook, _("Display"), page++);
+ SET_NOTEBOOK_LABEL(notebook, _("Display"), page++);
prefs_message_create();
- SET_NOTEBOOK_LABEL(dialog.notebook, _("Message"), page++);
-#if USE_GPGME
- prefs_privacy_create();
- SET_NOTEBOOK_LABEL(dialog.notebook, _("Privacy"), page++);
-#endif
+ SET_NOTEBOOK_LABEL(notebook, _("Message"), page++);
prefs_interface_create();
- SET_NOTEBOOK_LABEL(dialog.notebook, _("Interface"), page++);
+ SET_NOTEBOOK_LABEL(notebook, _("Interface"), page++);
prefs_other_create();
- SET_NOTEBOOK_LABEL(dialog.notebook, _("Other"), page++);
+ SET_NOTEBOOK_LABEL(notebook, _("Other"), page++);
- gtk_widget_show_all(dialog.window);
+ gtk_widget_show_all(notebook);
}
static void prefs_receive_create(void)
vbox1 = gtk_vbox_new (FALSE, VSPACING);
gtk_widget_show (vbox1);
- gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
+ gtk_container_add (GTK_CONTAINER (notebook), vbox1);
gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
PACK_FRAME(vbox1, frame_incext, _("External program"));
vbox1 = gtk_vbox_new (FALSE, VSPACING);
gtk_widget_show (vbox1);
- gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
+ gtk_container_add (GTK_CONTAINER (notebook), vbox1);
gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
vbox2 = gtk_vbox_new (FALSE, 0);
vbox1 = gtk_vbox_new (FALSE, VSPACING);
gtk_widget_show (vbox1);
- gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
+ gtk_container_add (GTK_CONTAINER (notebook), vbox1);
gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
/* Account autoselection */
vbox1 = gtk_vbox_new (FALSE, VSPACING);
gtk_widget_show (vbox1);
- gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
+ gtk_container_add (GTK_CONTAINER (notebook), vbox1);
gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
/* reply */
vbox1 = gtk_vbox_new (FALSE, VSPACING);
gtk_widget_show (vbox1);
- gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
+ gtk_container_add (GTK_CONTAINER (notebook), vbox1);
gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
vbox2 = gtk_vbox_new (FALSE, 0);
vbox1 = gtk_vbox_new (FALSE, VSPACING);
gtk_widget_show (vbox1);
- gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
+ gtk_container_add (GTK_CONTAINER (notebook), vbox1);
gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
vbox2 = gtk_vbox_new (FALSE, 0);
message.chkbtn_attach_desc = chkbtn_attach_desc;
}
-#if USE_GPGME
-static void prefs_privacy_create(void)
-{
- GtkWidget *vbox1;
- GtkWidget *vbox2;
- GtkWidget *vbox3;
- GtkWidget *hbox1;
- GtkWidget *hbox_spc;
- GtkWidget *label;
- GtkWidget *checkbtn_auto_check_signatures;
- GtkWidget *checkbtn_store_passphrase;
- GtkObject *spinbtn_store_passphrase_adj;
- GtkWidget *spinbtn_store_passphrase;
- GtkTooltips *store_tooltip;
- GtkWidget *checkbtn_passphrase_grab;
- GtkWidget *checkbtn_gpg_warning;
-
- vbox1 = gtk_vbox_new (FALSE, VSPACING);
- gtk_widget_show (vbox1);
- gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
- gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
-
- vbox2 = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (vbox2);
- gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, FALSE, 0);
-
- PACK_CHECK_BUTTON (vbox2, checkbtn_auto_check_signatures,
- _("Automatically check signatures"));
-
- PACK_CHECK_BUTTON (vbox2, checkbtn_store_passphrase,
- _("Store passphrase in memory temporarily"));
-
- vbox3 = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (vbox3);
- gtk_box_pack_start (GTK_BOX (vbox2), vbox3, FALSE, FALSE, 0);
-
- hbox1 = gtk_hbox_new (FALSE, 8);
- gtk_widget_show (hbox1);
- gtk_box_pack_start (GTK_BOX (vbox3), hbox1, FALSE, FALSE, 0);
-
- hbox_spc = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (hbox_spc);
- gtk_box_pack_start (GTK_BOX (hbox1), hbox_spc, FALSE, FALSE, 0);
- gtk_widget_set_size_request (hbox_spc, 12, -1);
-
- label = gtk_label_new (_("Expire after"));
- gtk_widget_show (label);
- gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 0);
-
- store_tooltip = gtk_tooltips_new();
-
- spinbtn_store_passphrase_adj = gtk_adjustment_new (0, 0, 1440, 1, 5, 5);
- spinbtn_store_passphrase = gtk_spin_button_new
- (GTK_ADJUSTMENT (spinbtn_store_passphrase_adj), 1, 0);
- gtk_widget_show (spinbtn_store_passphrase);
- gtk_tooltips_set_tip(GTK_TOOLTIPS(store_tooltip), spinbtn_store_passphrase,
- _("Setting to '0' will store the passphrase"
- " for the whole session"),
- NULL);
- gtk_box_pack_start (GTK_BOX (hbox1), spinbtn_store_passphrase, FALSE, FALSE, 0);
- gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_store_passphrase),
- TRUE);
- gtk_widget_set_size_request (spinbtn_store_passphrase, 64, -1);
-
- label = gtk_label_new (_("minute(s) "));
- gtk_widget_show (label);
- gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 0);
-
- hbox1 = gtk_hbox_new (FALSE, 8);
- gtk_widget_show (hbox1);
- gtk_box_pack_start (GTK_BOX (vbox3), hbox1, FALSE, FALSE, 0);
-
- hbox_spc = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (hbox_spc);
- gtk_box_pack_start (GTK_BOX (hbox1), hbox_spc, FALSE, FALSE, 0);
- gtk_widget_set_size_request (hbox_spc, 12, -1);
-
- SET_TOGGLE_SENSITIVITY (checkbtn_store_passphrase, vbox3);
-
-#ifndef __MINGW32__
- PACK_CHECK_BUTTON (vbox2, checkbtn_passphrase_grab,
- _("Grab input while entering a passphrase"));
-#endif
-
- PACK_CHECK_BUTTON
- (vbox2, checkbtn_gpg_warning,
- _("Display warning on startup if GnuPG doesn't work"));
-
- hbox1 = gtk_hbox_new (FALSE, 8);
- gtk_widget_show (hbox1);
- gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);
-
- privacy.checkbtn_auto_check_signatures
- = checkbtn_auto_check_signatures;
- privacy.checkbtn_store_passphrase = checkbtn_store_passphrase;
- privacy.spinbtn_store_passphrase = spinbtn_store_passphrase;
- privacy.spinbtn_store_passphrase_adj = spinbtn_store_passphrase_adj;
- privacy.checkbtn_passphrase_grab = checkbtn_passphrase_grab;
- privacy.checkbtn_gpg_warning = checkbtn_gpg_warning;
-}
-#endif /* USE_GPGME */
-
static void prefs_interface_create(void)
{
GtkWidget *vbox1;
vbox1 = gtk_vbox_new (FALSE, VSPACING);
gtk_widget_show (vbox1);
- gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
+ gtk_container_add (GTK_CONTAINER (notebook), vbox1);
gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
vbox2 = gtk_vbox_new (FALSE, 0);
#endif
vbox1 = gtk_vbox_new (FALSE, VSPACING);
gtk_widget_show (vbox1);
- gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
+ gtk_container_add (GTK_CONTAINER (notebook), vbox1);
gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
PACK_FRAME (vbox1, frame_addr, _("Address book"));
gtk_menu_item_activate(GTK_MENU_ITEM(menuitem));
}
-static gint prefs_common_deleted(GtkWidget *widget, GdkEventAny *event,
- gpointer data)
-{
- prefs_common_cancel();
- return TRUE;
-}
-
-static gboolean prefs_common_key_pressed(GtkWidget *widget, GdkEventKey *event,
- gpointer data)
-{
- if (event && event->keyval == GDK_Escape)
- prefs_common_cancel();
- return FALSE;
-}
-
-static void prefs_common_ok(void)
-{
- prefs_common_apply();
- gtk_widget_hide(dialog.window);
-
- inc_unlock();
-}
-
static void prefs_common_apply(void)
{
MainWindow *mainwindow;
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)
{