Mercurial > pidgin.yaz
changeset 12067:e859c1663a27
[gaim-migrate @ 14362]
Revert GtkSpell dynamic loading. A GtkSpell plugin is a better idea, and nosnilmot says he has one that's close to fully functional.
committer: Tailor Script <tailor@pidgin.im>
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Sun, 13 Nov 2005 01:44:11 +0000 |
parents | ee8312c764b1 |
children | 8e9c18896431 |
files | COPYRIGHT ChangeLog configure.ac plugins/ChangeLog.API src/gtkconv.c src/gtkdialogs.c src/gtkprefs.c src/gtkrequest.c src/gtkutils.c src/gtkutils.h |
diffstat | 10 files changed, 24 insertions(+), 138 deletions(-) [+] |
line wrap: on
line diff
--- a/COPYRIGHT Sun Nov 13 01:32:31 2005 +0000 +++ b/COPYRIGHT Sun Nov 13 01:44:11 2005 +0000 @@ -103,7 +103,6 @@ Andrew Hart (arhart) G. Sumner Hayes Michael R. Head -Michael Hearn Mike Heffner Benjamin Herrenschmidt Fernando Herrera
--- a/ChangeLog Sun Nov 13 01:32:31 2005 +0000 +++ b/ChangeLog Sun Nov 13 01:44:11 2005 +0000 @@ -110,7 +110,6 @@ * GNOME users can open received files by clicking on "Open" in the file transfer window * Mouse-over hyperlink coloring is now themeable - * GtkSpell is now loaded dynamically at runtime (Michael Hearn) Preference Changes: * Preferences have been substantially reorganized and cleaned up
--- a/configure.ac Sun Nov 13 01:32:31 2005 +0000 +++ b/configure.ac Sun Nov 13 01:44:11 2005 +0000 @@ -1280,6 +1280,7 @@ PKG_CHECK_MODULES(GTKSPELL, gtkspell-2.0 >= 2.0.2, , enable_gtkspell=no) if test "$enable_gtkspell" = "yes" ; then AC_SUBST(GTKSPELL_CFLAGS) + AC_SUBST(GTKSPELL_LIBS) AC_DEFINE(USE_GTKSPELL,,[do we have gtkspell?]) fi fi
--- a/plugins/ChangeLog.API Sun Nov 13 01:32:31 2005 +0000 +++ b/plugins/ChangeLog.API Sun Nov 13 01:44:11 2005 +0000 @@ -143,8 +143,6 @@ a visibility manager - see the docs for more information * gaim_gtk_conversations_get_first_unseen() to find the first conv with an "unseen" state >= to the specified state - * gaim_gtk_gtkspell_is_available() - * gaim_gtk_gtkspell_unsetup() Signals - Changed: * "received-im-msg" and "received-chat-msg" to match, both now pass a
--- a/src/gtkconv.c Sun Nov 13 01:32:31 2005 +0000 +++ b/src/gtkconv.c Sun Nov 13 01:44:11 2005 +0000 @@ -5426,9 +5426,11 @@ gtkconv = GAIM_GTK_CONVERSATION(conv); if (value) - gaim_gtk_gtkspell_setup(GTK_TEXT_VIEW(gtkconv->entry)); - else - gaim_gtk_gtkspell_unsetup(GTK_TEXT_VIEW(gtkconv->entry)); + gaim_gtk_setup_gtkspell(GTK_TEXT_VIEW(gtkconv->entry)); + else { + spell = gtkspell_get_from_text_view(GTK_TEXT_VIEW(gtkconv->entry)); + gtkspell_detach(spell); + } } #endif }
--- a/src/gtkdialogs.c Sun Nov 13 01:32:31 2005 +0000 +++ b/src/gtkdialogs.c Sun Nov 13 01:44:11 2005 +0000 @@ -374,12 +374,9 @@ #endif #ifdef USE_GTKSPELL - if (gaim_gtk_gtkspell_is_available()) - g_string_append(str, " <b>GtkSpell:</b> Enabled<br/>"); - else - g_string_append(str, " <b>GtkSpell:</b> Disabled (Library Not Found)<br/>"); + g_string_append(str, " <b>GtkSpell:</b> Enabled<br/>"); #else - g_string_append(str, " <b>GtkSpell:</b> Disabled (Not Compiled)<br/>"); + g_string_append(str, " <b>GtkSpell:</b> Disabled<br/>"); #endif #ifdef HAVE_GNUTLS
--- a/src/gtkprefs.c Sun Nov 13 01:32:31 2005 +0000 +++ b/src/gtkprefs.c Sun Nov 13 01:44:11 2005 +0000 @@ -798,7 +798,6 @@ GtkWidget *vbox2; GtkWidget *iconpref1; GtkWidget *iconpref2; - GtkWidget *spellpref; ret = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE); gtk_container_set_border_width(GTK_CONTAINER(ret), GAIM_HIG_BORDER); @@ -821,21 +820,10 @@ gaim_gtk_prefs_checkbox(_("_Notify buddies that you are typing to them"), "/core/conversations/im/send_typing", vbox); - - spellpref = gaim_gtk_prefs_checkbox(_("_Highlight misspelled words"), - "/gaim/gtk/conversations/spellcheck", vbox); - - if (!gaim_gtk_gtkspell_is_available()) - { - gboolean gtkspell_enabled = gaim_prefs_get_bool("/gaim/gtk/conversations/spellcheck"); - - gtk_widget_set_sensitive(spellpref, FALSE); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(spellpref), FALSE); - - /* Preserve the preference. If the user had it enabled, we want it to - * stay enabled if they install gtkspell again. */ - gaim_prefs_set_bool("/gaim/gtk/conversations/spellcheck", gtkspell_enabled); - } +#ifdef USE_GTKSPELL + gaim_gtk_prefs_checkbox(_("_Highlight misspelled words"), + "/gaim/gtk/conversations/spellcheck", vbox); +#endif frame = gaim_gtk_create_imhtml(TRUE, &imhtml, &toolbar); gtk_widget_set_name(imhtml, "gaim_gtkprefs_font_imhtml");
--- a/src/gtkrequest.c Sun Nov 13 01:32:31 2005 +0000 +++ b/src/gtkrequest.c Sun Nov 13 01:44:11 2005 +0000 @@ -398,7 +398,7 @@ gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); if (gaim_prefs_get_bool("/gaim/gtk/conversations/spellcheck")) - gaim_gtk_gtkspell_setup(GTK_TEXT_VIEW(entry)); + gaim_gtk_setup_gtkspell(GTK_TEXT_VIEW(entry)); gtk_container_add(GTK_CONTAINER(sw), entry); } @@ -1085,7 +1085,7 @@ GTK_WRAP_WORD_CHAR); if (gaim_prefs_get_bool("/gaim/gtk/conversations/spellcheck")) - gaim_gtk_gtkspell_setup(GTK_TEXT_VIEW(textview)); + gaim_gtk_setup_gtkspell(GTK_TEXT_VIEW(textview)); gtk_container_add(GTK_CONTAINER(widget), textview); gtk_widget_show(textview);
--- a/src/gtkutils.c Sun Nov 13 01:32:31 2005 +0000 +++ b/src/gtkutils.c Sun Nov 13 01:44:11 2005 +0000 @@ -147,7 +147,7 @@ gtk_imhtml_set_format_functions(GTK_IMHTML(imhtml), GTK_IMHTML_ALL ^ GTK_IMHTML_IMAGE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(imhtml), GTK_WRAP_WORD_CHAR); if (editable && gaim_prefs_get_bool("/gaim/gtk/conversations/spellcheck")) - gaim_gtk_gtkspell_setup(GTK_TEXT_VIEW(imhtml)); + gaim_gtk_setup_gtkspell(GTK_TEXT_VIEW(imhtml)); gtk_widget_show(imhtml); if (editable) { @@ -897,105 +897,25 @@ return buf; } -#ifdef USE_GTKSPELL -static GtkSpell* (*gtkspell_get_from_text_view_ptr)(GtkTextView *view); -static void (*gtkspell_detach_ptr)(GtkSpell *spell); -static GtkSpell* (*gtkspell_new_attach_ptr)(GtkTextView *view, const gchar *lang, GError **error); -static int gtkspell_available = -1; /* -1 unknown, 0 false, 1 true */ - -#define GTKSPELL_SONAME "libgtkspell." G_MODULE_SUFFIX ".0" - -static void -setup_gtkspell() +void +gaim_gtk_setup_gtkspell(GtkTextView *textview) { -#if GLIB_CHECK_VERSION(2,3,3) - GModule *handle = g_module_open(GTKSPELL_SONAME, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL); -#else - GModule *handle = g_module_open(GTKSPELL_SONAME, G_MODULE_BIND_LAZY); -#endif - - if (handle != NULL) - { - gpointer ptr; /* squash GCC strict aliasing warnings */ - - g_module_symbol(handle, "gtkspell_new_attach", &ptr); - gtkspell_new_attach_ptr = ptr; - - g_module_symbol(handle, "gtkspell_detach", &ptr); - gtkspell_detach_ptr = ptr; - - g_module_symbol(handle, "gtkspell_get_from_text_view", &ptr); - gtkspell_get_from_text_view_ptr = ptr; - - gtkspell_available = TRUE; - } - else - { - gaim_debug_warning("gtkspell", "Failed to load %s: %s\n", GTKSPELL_SONAME, g_module_error()); - gtkspell_available = FALSE; - } -} - -gboolean -gaim_gtk_gtkspell_is_available() -{ - if (gtkspell_available == -1) - setup_gtkspell(); - - return gtkspell_available; -} - -void -gaim_gtk_gtkspell_setup(GtkTextView *textview) -{ +#ifdef USE_GTKSPELL GError *error = NULL; char *locale = NULL; g_return_if_fail(textview != NULL); g_return_if_fail(GTK_IS_TEXT_VIEW(textview)); - if (!gaim_gtk_gtkspell_is_available()) - return; - - if (gtkspell_new_attach_ptr(textview, locale, &error) == NULL && error) + if (gtkspell_new_attach(textview, locale, &error) == NULL && error) { - gaim_debug_warning("gtkspell", "Failed to setup GtkSpell: %s\n", error->message); + gaim_debug_warning("gtkspell", "Failed to setup GtkSpell: %s\n", + error->message); g_error_free(error); } -} - -void -gaim_gtk_gtkspell_unsetup(GtkTextView *textview) -{ - GtkSpell *spell; - - if (!gtkspell_available) - return; - - spell = gtkspell_get_from_text_view_ptr(textview); - gtkspell_detach_ptr(spell); +#endif /* USE_GTKSPELL */ } -#else /* !USE_GTKSPELL */ - -gboolean -gaim_gtk_gtkspell_is_available() -{ - return FALSE; -} - -void -gaim_gtk_gtkspell_setup(GtkTextView *textview) -{ -} - -void -gaim_gtk_gtkspell_unsetup(GtkTextView *textview) -{ -} - -#endif /* !USE_GTKSPELL */ - void gaim_gtk_save_accels_cb(GtkAccelGroup *accel_group, guint arg1, GdkModifierType arg2, GClosure *arg3,
--- a/src/gtkutils.h Sun Nov 13 01:32:31 2005 +0000 +++ b/src/gtkutils.h Sun Nov 13 01:44:11 2005 +0000 @@ -259,32 +259,14 @@ gboolean gaim_gtk_check_if_dir(const char *path, GtkFileSelection *filesel); /** - * Returns @c TRUE if Gaim was compiled with GtkSpell support and the - * library is available at runtime. - */ -gboolean gaim_gtk_gtkspell_is_available(); - -/** * Sets up GtkSpell for the given GtkTextView, reporting errors * if encountered. * - * This does nothing if Gaim is not compiled with GtkSpell support, or - * the GtkSpell library cannot be located at runtime. + * This does nothing if Gaim is not compiled with GtkSpell support. * * @param textview The textview widget to setup spellchecking for. */ -void gaim_gtk_gtkspell_setup(GtkTextView *textview); - -/** - * Does the inverse of gaim_gtk_setup_gtkspell, detaching the spelling - * checker from the text view widget. - * - * This does nothing if Gaim is not compiled with GtkSpell support, or - * the GtkSpell library cannot be located at runtime. - * - * @param textview The textview widget to unsetup spellchecking for. - */ -void gaim_gtk_gtkspell_unsetup(GtkTextView *textview); +void gaim_gtk_setup_gtkspell(GtkTextView *textview); /** * Stylizes the specified text using HTML, according to the current