2004-11-17 [christoph] 0.9.12cvs157
authorChristoph Hohmann <reboot@gmx.ch>
Wed, 17 Nov 2004 21:21:54 +0000 (21:21 +0000)
committerChristoph Hohmann <reboot@gmx.ch>
Wed, 17 Nov 2004 21:21:54 +0000 (21:21 +0000)
* src/mainwindow.c
* src/prefs_common.c
integrate "Common preferences" into new preferences dialog

ChangeLog.claws
PATCHSETS
configure.ac
src/mainwindow.c
src/prefs_common.c

index c014290..d0d4bf9 100644 (file)
@@ -1,3 +1,9 @@
+2004-11-17 [christoph] 0.9.12cvs157
+
+       * src/mainwindow.c
+       * src/prefs_common.c
+               integrate "Common preferences" into new preferences dialog
+
 2004-11-17 [colin]     0.9.12cvs156
 
        * src/prefs_account.c
index 6f7832d..0fbd981 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.11 -r 1.12 src/privacy.c; ) > 0.9.12cvs154.patchset
 ( cvs diff -u -r 1.455 -r 1.456 src/compose.c; cvs diff -u -r 1.173 -r 1.174 src/procmsg.c; cvs diff -u -r 1.55 -r 1.56 src/toolbar.c; ) > 0.9.12cvs155.patchset
 ( cvs diff -u -r 1.120 -r 1.121 src/prefs_account.c; cvs diff -u -r 1.55 -r 1.56 src/prefs_account.h; cvs diff -u -r 1.174 -r 1.175 src/procmsg.c; ) > 0.9.12cvs156.patchset
+( cvs diff -u -r 1.313 -r 1.314 src/mainwindow.c; cvs diff -u -r 1.230 -r 1.231 src/prefs_common.c; ) > 0.9.12cvs157.patchset
index 3587bf8..2ee7cf5 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=12
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=156
+EXTRA_VERSION=157
 EXTRA_RELEASE=
 
 if test \( $EXTRA_VERSION -eq 0 \) -o \( "x$EXTRA_RELEASE" != "x" \); then
index a966804..12ae4b5 100644 (file)
@@ -747,8 +747,8 @@ static GtkItemFactoryEntry mainwin_entries[] =
        {N_("/_Configuration/_Edit accounts..."),
                                                NULL, account_edit_open, 0, NULL},
        {N_("/_Configuration/---"),             NULL, NULL, 0, "<Separator>"},
-       {N_("/_Configuration/_Common preferences..."),
-                                               NULL, prefs_common_open_cb, 0, NULL},
+       {N_("/_Configuration/_Preferences..."),
+                                               NULL, prefs_open_cb, 0, NULL},
        {N_("/_Configuration/Pre-processing..."),
                                                NULL, prefs_pre_processing_open_cb, 0, NULL},
        {N_("/_Configuration/Post-processing..."),
@@ -757,7 +757,6 @@ static GtkItemFactoryEntry mainwin_entries[] =
                                                NULL, prefs_filtering_open_cb, 0, NULL},
        {N_("/_Configuration/_Templates..."),   NULL, prefs_template_open_cb, 0, NULL},
        {N_("/_Configuration/_Actions..."),     NULL, prefs_actions_open_cb, 0, NULL},
-       {N_("/_Configuration/_Other Preferences..."),  NULL, prefs_open_cb, 0, NULL},
        {N_("/_Configuration/Plugins..."),      NULL, plugins_open_cb, 0, NULL},
 
        {N_("/_Help"),                          NULL, NULL, 0, "<Branch>"},
@@ -2905,7 +2904,7 @@ static void create_processing_cb(MainWindow *mainwin, guint action,
 static void prefs_common_open_cb(MainWindow *mainwin, guint action,
                                 GtkWidget *widget)
 {
-       prefs_common_open();
+       /* prefs_common_open(); */
 }
 
 static void prefs_pre_processing_open_cb(MainWindow *mainwin, guint action,
index 28d49a5..cb2c230 100644 (file)
 #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;
@@ -760,19 +761,67 @@ static void prefs_keybind_key_pressed             (GtkWidget      *widget,
 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 void 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)
@@ -856,68 +905,41 @@ void prefs_common_write_config(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_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"));
-       gtk_signal_connect (GTK_OBJECT(dialog.window), "delete_event",
-                           GTK_SIGNAL_FUNC(prefs_common_deleted), NULL);
-       gtk_signal_connect (GTK_OBJECT(dialog.window), "key_press_event",
-                           GTK_SIGNAL_FUNC(prefs_common_key_pressed), NULL);
-       MANAGE_WINDOW_SIGNALS_CONNECT(dialog.window);
-
-       gtk_signal_connect (GTK_OBJECT(dialog.ok_btn), "clicked",
-                           GTK_SIGNAL_FUNC(prefs_common_ok), NULL);
-       gtk_signal_connect (GTK_OBJECT(dialog.apply_btn), "clicked",
-                           GTK_SIGNAL_FUNC(prefs_common_apply), NULL);
-       gtk_signal_connect_object (GTK_OBJECT(dialog.cancel_btn), "clicked",
-                                  GTK_SIGNAL_FUNC(prefs_common_cancel),
-                                  GTK_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++);
+       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)
@@ -958,7 +980,7 @@ 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"));
@@ -1143,7 +1165,7 @@ static void prefs_send_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);
 
        vbox2 = gtk_vbox_new (FALSE, 0);
@@ -1320,7 +1342,7 @@ static void prefs_compose_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);
 
         /* Account autoselection */
@@ -1445,7 +1467,7 @@ static void prefs_quote_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);
 
        /* reply */
@@ -1599,7 +1621,7 @@ static void prefs_display_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);
 
        vbox2 = gtk_vbox_new (FALSE, 0);
@@ -1733,7 +1755,7 @@ static void prefs_message_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);
 
        vbox2 = gtk_vbox_new (FALSE, 0);
@@ -1882,7 +1904,7 @@ static void prefs_interface_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);
 
        vbox2 = gtk_vbox_new (FALSE, 0);
@@ -2009,7 +2031,7 @@ static void prefs_other_create(void)
 #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"));
@@ -2051,8 +2073,6 @@ static void prefs_other_create(void)
        gtk_tooltips_set_tip(GTK_TOOLTIPS(loglength_tooltip), loglength_entry,
                             _("0 to stop logging in the log window"),
                             NULL);
-       gtk_box_pack_start (GTK_BOX (hbox_cliplog), loglength_label,
-                           FALSE, TRUE, 0);
        SET_TOGGLE_SENSITIVITY(checkbtn_cliplog, loglength_entry);
 
 #if 0
@@ -2892,28 +2912,6 @@ static void prefs_common_send_dialog_set_optmenu(PrefParam *pparam)
        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 void prefs_common_key_pressed(GtkWidget *widget, GdkEventKey *event,
-                                    gpointer data)
-{
-       if (event && event->keyval == GDK_Escape)
-               prefs_common_cancel();
-}
-
-static void prefs_common_ok(void)
-{
-       prefs_common_apply();
-       gtk_widget_hide(dialog.window);
-
-       inc_unlock();
-}
-
 static void prefs_common_apply(void)
 {
        MainWindow *mainwindow;
@@ -2968,12 +2966,13 @@ static void prefs_nextunreadmsgdialog_set_optmenu(PrefParam *pparam)
        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)
 {