2004-11-12 [paul] 0.9.12cvs146.4
[claws.git] / src / prefs_spelling.c
index b0ae2455e47ac7e61952128fdbbff501f60c9900..ea3c0e8d6de1d57a9d9a44fc2655711d351d2b7d 100644 (file)
@@ -92,12 +92,12 @@ static void prefs_spelling_btn_aspell_path_clicked_cb(GtkWidget *widget,
        gchar *file_path;
        GtkWidget *new_menu;
 
-       file_path = filesel_select_file(_("Select dictionaries location"),
+       file_path = filesel_select_file_open(_("Select dictionaries location"),
                                        prefs_common.aspell_path);
        if (file_path != NULL) {
                gchar *tmp_path, *tmp;
 
-               tmp_path = g_dirname(file_path);
+               tmp_path = g_path_get_dirname(file_path);
                tmp = g_strdup_printf("%s%s", tmp_path, G_DIR_SEPARATOR_S);
                g_free(tmp_path);
 
@@ -139,7 +139,6 @@ void prefs_spelling_create_widget(PrefsPage *_page, GtkWindow *window, gpointer
        GtkWidget *checkbtn_enable_aspell;
        GtkWidget *checkbtn_check_while_typing;
        GtkWidget *checkbtn_use_alternate;
-       GtkWidget *label1;
        GtkWidget *label2;
        GtkWidget *entry_aspell_path;
        GtkWidget *label3;
@@ -152,6 +151,9 @@ void prefs_spelling_create_widget(PrefsPage *_page, GtkWindow *window, gpointer
        GtkWidget *btn_aspell_path;
        GtkWidget *hbox1;
        GtkWidget *misspelled_btn;
+       GtkTooltips *tooltips;
+
+       tooltips = gtk_tooltips_new ();
 
        table = gtk_table_new(8, 3, FALSE);
        gtk_widget_show(table);
@@ -180,15 +182,8 @@ void prefs_spelling_create_widget(PrefsPage *_page, GtkWindow *window, gpointer
        gtk_table_attach(GTK_TABLE(table), checkbtn_use_alternate, 0, 3, 2,
                         3, (GtkAttachOptions) (GTK_FILL),
                         (GtkAttachOptions) (0), 0, 0);
-
-       label1 =
-           gtk_label_new(_
-                         ("Enabling an alternate dictionary makes switching\nwith the last used dictionary faster"));
-       gtk_widget_show(label1);
-       gtk_table_attach(GTK_TABLE(table), label1, 0, 3, 3, 4,
-                        (GtkAttachOptions) (GTK_FILL),
-                        (GtkAttachOptions) (0), 0, 0);
-       gtk_misc_set_alignment(GTK_MISC(label1), 7.45058e-09, 0.5);
+       gtk_tooltips_set_tip (tooltips, checkbtn_use_alternate, 
+                       _("Faster switching with last used dictionary"), NULL);
 
        label2 = gtk_label_new(_("Dictionaries path:"));
        gtk_widget_show(label2);
@@ -274,14 +269,14 @@ void prefs_spelling_create_widget(PrefsPage *_page, GtkWindow *window, gpointer
        gtk_entry_set_text(GTK_ENTRY(entry_aspell_path), 
                           SAFE_STRING(prefs_common.aspell_path));
 
-       gtk_signal_connect(GTK_OBJECT(checkbtn_enable_aspell), "toggled",
-                          GTK_SIGNAL_FUNC(prefs_spelling_checkbtn_enable_aspell_toggle_cb),
-                          prefs_spelling);
-       gtk_signal_connect(GTK_OBJECT(btn_aspell_path), "clicked", 
-                          GTK_SIGNAL_FUNC(prefs_spelling_btn_aspell_path_clicked_cb),
-                          prefs_spelling);
-       gtk_signal_connect(GTK_OBJECT(misspelled_btn), "clicked",
-                          GTK_SIGNAL_FUNC(prefs_spelling_colorsel), prefs_spelling);
+       g_signal_connect(G_OBJECT(checkbtn_enable_aspell), "toggled",
+                        G_CALLBACK(prefs_spelling_checkbtn_enable_aspell_toggle_cb),
+                        prefs_spelling);
+       g_signal_connect(G_OBJECT(btn_aspell_path), "clicked", 
+                        G_CALLBACK(prefs_spelling_btn_aspell_path_clicked_cb),
+                        prefs_spelling);
+       g_signal_connect(G_OBJECT(misspelled_btn), "clicked",
+                        G_CALLBACK(prefs_spelling_colorsel), prefs_spelling);
 
        gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu_dictionary),
                                 gtkaspell_dictionary_option_menu_new(prefs_common.aspell_path));
@@ -361,15 +356,35 @@ SpellingPage *prefs_spelling;
 void prefs_spelling_init(void)
 {
        SpellingPage *page;
+       static gchar *path[3];
+
+       path[0] = _("Compose");
+       path[1] = _("Spell Checker");
+       path[2] = NULL;
 
        page = g_new0(SpellingPage, 1);
-       page->page.path = _("Compose/Spell Checker");
+       page->page.path = path;
        page->page.create_widget = prefs_spelling_create_widget;
        page->page.destroy_widget = prefs_spelling_destroy_widget;
        page->page.save_page = prefs_spelling_save;
        page->page.weight = 50.0;
+
        prefs_gtk_register_page((PrefsPage *) page);
        prefs_spelling = page;
+       
+       if (!prefs_common.dictionary)
+               prefs_common.dictionary = g_strdup_printf("%s%s",
+                                               prefs_common.aspell_path,
+                                               g_getenv("LANG"));
+       if (!strlen(prefs_common.dictionary)
+       ||  !strcmp(prefs_common.dictionary,"(None"))
+               prefs_common.dictionary = g_strdup_printf("%s%s",
+                                               prefs_common.aspell_path,
+                                               g_getenv("LANG"));
+       if (strcasestr(prefs_common.dictionary,".utf"))
+               *(strcasestr(prefs_common.dictionary,".utf")) = '\0';
+       if (strstr(prefs_common.dictionary,"@"))
+               *(strstr(prefs_common.dictionary,"@")) = '\0';
 }
 
 void prefs_spelling_done(void)