summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--config-win32.h2
-rw-r--r--configure.ac41
-rw-r--r--src/fe-gtk/Makefile.am9
-rw-r--r--src/fe-gtk/fe-gtk.c4
-rw-r--r--src/fe-gtk/fe-gtk.h10
-rw-r--r--src/fe-gtk/fkeys.c11
-rw-r--r--src/fe-gtk/maingui.c86
-rw-r--r--src/fe-gtk/setup.c31
8 files changed, 12 insertions, 182 deletions
diff --git a/config-win32.h b/config-win32.h
index 4ceeaa5e..af6dcb07 100644
--- a/config-win32.h
+++ b/config-win32.h
@@ -3,7 +3,7 @@
 #define USE_GMODULE
 #define USE_PLUGIN
 #define USE_OPENSSL
-#define USE_LIBSEXY
+#define USE_SPELL
 #define USE_IPV6
 #define HAVE_ISO_CODES
 #define PACKAGE_NAME "hexchat"
diff --git a/configure.ac b/configure.ac
index ee0bf7e7..93802522 100644
--- a/configure.ac
+++ b/configure.ac
@@ -41,8 +41,7 @@ AH_VERBATIM([HEXCHATSHAREDIR],[#undef HEXCHATSHAREDIR])
 AH_VERBATIM([SOCKS],[#undef SOCKS])
 AH_VERBATIM([USE_MSPROXY],[#undef USE_MSPROXY])
 AH_VERBATIM([USE_LIBPROXY],[#undef USE_LIBPROXY])
-AH_VERBATIM([USE_GTKSPELL],[#undef USE_GTKSPELL])
-AH_VERBATIM([USE_LIBSEXY],[#undef USE_LIBSEXY])
+AH_VERBATIM([USE_SPELL],[#undef USE_SPELL])
 AH_VERBATIM([HAVE_ISO_CODES],[#undef HAVE_ISO_CODES])
 AH_VERBATIM([USE_LIBNOTIFY],[#undef USE_LIBNOTIFY])
 AH_VERBATIM([USE_LIBCANBERRA],[#undef USE_LIBCANBERRA])
@@ -145,8 +144,8 @@ AC_ARG_ENABLE(libcanberra,
 		libcanberra=$enableval, libcanberra=yes)
 
 AC_ARG_ENABLE(spell,
-	[AS_HELP_STRING([--enable-spell=type],[enable spelling type: none static libsexy gtkspell])],
-		  spell=$enableval, spell=libsexy)
+	[AS_HELP_STRING([--enable-spell],[enable spellcheck, (default: yes)])],
+		  spell=$enableval, spell=yes)
 
 AC_ARG_ENABLE(ntlm,
 	[AS_HELP_STRING([--enable-ntlm],[enable Microsoft\'s NTLM auth (libntlm) library support (default: no)])],
@@ -540,33 +539,10 @@ dnl *********************************************************************
 dnl ** SPELL ************************************************************
 dnl *********************************************************************
 
-if test "$spell" = "gtkspell" ; then
-	PKG_CHECK_MODULES(GTKSPELL, gtkspell-2.0 >= 2.0.2, [], [
-		spell=no
-	])
-	if test "$spell" != "no" ; then
-		GUI_LIBS="$GUI_LIBS $GTKSPELL_LIBS"
-		GUI_CFLAGS="$GUI_CFLAGS $GTKSPELL_CFLAGS"
-		AC_DEFINE(USE_GTKSPELL)
-	fi
-fi
-
-if test "$spell" = "libsexy" ; then
-	PKG_CHECK_MODULES([LIBSEXY], [libsexy >= 0.1.8], [
-		libsexy=yes
-		GUI_LIBS="$GUI_LIBS $LIBSEXY_LIBS"
-		GUI_CFLAGS="$GUI_CFLAGS $LIBSEXY_CFLAGS"
-		AC_DEFINE(USE_LIBSEXY)
-	], [
-		dnl use builtin static one
-		spell="static"
-	])
-fi
-
-if test "$spell" = "static" ; then
+if test "$spell" = "xyes" ; then
 	PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.0.0, [
 	AC_DEFINE(HAVE_ISO_CODES)
-	AC_DEFINE(USE_LIBSEXY)
+	AC_DEFINE(USE_SPELL)
 	GUI_CFLAGS="$GUI_CFLAGS $LIBXML2_CFLAGS"
 	LIBS="$LIBS -lxml2"
 	], [
@@ -579,7 +555,7 @@ dnl ** CONDITIONALS *****************************************************
 dnl *********************************************************************
 
 AM_CONDITIONAL(USE_OPENSSL, test "x$openssl" = "xyes")
-AM_CONDITIONAL(USE_LIBSEXY, test "x$spell" = "xstatic")
+AM_CONDITIONAL(USE_SPELL, test "x$spell" = "xyes")
 AM_CONDITIONAL(USE_LIBNOTIFY, test "x$libnotify" = "xyes")
 AM_CONDITIONAL(USE_LIBCANBERRA, test "x$libcanberra" = "xyes")
 AM_CONDITIONAL(DO_TEXT, test "x$textfe" = "xyes")
@@ -865,10 +841,5 @@ if test "$gtkfe" = no; then
 	echo
 fi
 
-if test "$spell" = "gtkspell"; then
-	echo Warning: GTK SPELL is not the recommended spelling library.
-	echo
-fi
-
 echo configure complete, now type \'make\' and pray.
 echo
diff --git a/src/fe-gtk/Makefile.am b/src/fe-gtk/Makefile.am
index 9ae2d084..259d2c89 100644
--- a/src/fe-gtk/Makefile.am
+++ b/src/fe-gtk/Makefile.am
@@ -18,16 +18,11 @@ if DO_PLUGIN
 plugingui_c = plugingui.c
 endif
 
-if USE_LIBSEXY
-sexy_spell = \
-	sexy-iso-codes.c sexy-marshal.c sexy-spell-entry.c
-endif
-
 hexchat_SOURCES = ascii.c banlist.c chanlist.c chanview.c custom-list.c \
 	dccgui.c editlist.c fe-gtk.c fkeys.c gtkutil.c ignoregui.c joind.c menu.c \
 	maingui.c notifygui.c palette.c pixmaps.c plugin-tray.c $(plugingui_c) \
-	rawlog.c resources.c servlistgui.c setup.c $(sexy_spell) textgui.c \
-	urlgrab.c userlistgui.c xtext.c
+	rawlog.c resources.c servlistgui.c setup.c sexy-iso-codes.c sexy-marshal.c \
+	sexy-spell-entry.c textgui.c urlgrab.c userlistgui.c xtext.c
 
 resources.c: ../../data/hexchat.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=../../data --generate-dependencies ../../data/hexchat.gresource.xml)
 	$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=../../data --generate-source $<
diff --git a/src/fe-gtk/fe-gtk.c b/src/fe-gtk/fe-gtk.c
index 7fce696c..97067f90 100644
--- a/src/fe-gtk/fe-gtk.c
+++ b/src/fe-gtk/fe-gtk.c
@@ -240,11 +240,7 @@ fe_args (int argc, char *argv[])
 const char cursor_color_rc[] =
 	"style \"xc-ib-st\""
 	"{"
-#ifdef USE_GTKSPELL
-		"GtkTextView::cursor-color=\"#%02x%02x%02x\""
-#else
 		"GtkEntry::cursor-color=\"#%02x%02x%02x\""
-#endif
 	"}"
 	"widget \"*.hexchat-inputbox\" style : application \"xc-ib-st\"";
 
diff --git a/src/fe-gtk/fe-gtk.h b/src/fe-gtk/fe-gtk.h
index 440d98ea..6f5b47c5 100644
--- a/src/fe-gtk/fe-gtk.h
+++ b/src/fe-gtk/fe-gtk.h
@@ -197,21 +197,11 @@ typedef struct session_gui
 extern GdkPixmap *channelwin_pix;
 extern GdkPixmap *dialogwin_pix;
 
-
-#ifdef USE_GTKSPELL
-char *SPELL_ENTRY_GET_TEXT (GtkWidget *entry);
-#define SPELL_ENTRY_SET_TEXT(e,txt) gtk_text_buffer_set_text (gtk_text_view_get_buffer(GTK_TEXT_VIEW(e)),txt,-1);
-#define SPELL_ENTRY_SET_EDITABLE(e,v) gtk_text_view_set_editable(GTK_TEXT_VIEW(e), v)
-int SPELL_ENTRY_GET_POS (GtkWidget *entry);
-void SPELL_ENTRY_SET_POS (GtkWidget *entry, int pos);
-void SPELL_ENTRY_INSERT (GtkWidget *entry, const char *text, int len, int *pos);
-#else
 #define SPELL_ENTRY_GET_TEXT(e) ((char *)(gtk_entry_get_text (GTK_ENTRY(e))))
 #define SPELL_ENTRY_SET_TEXT(e,txt) gtk_entry_set_text(GTK_ENTRY(e),txt)
 #define SPELL_ENTRY_SET_EDITABLE(e,v) gtk_editable_set_editable(GTK_EDITABLE(e),v)
 #define SPELL_ENTRY_GET_POS(e) gtk_editable_get_position(GTK_EDITABLE(e))
 #define SPELL_ENTRY_SET_POS(e,p) gtk_editable_set_position(GTK_EDITABLE(e),p);
 #define SPELL_ENTRY_INSERT(e,t,l,p) gtk_editable_insert_text(GTK_EDITABLE(e),t,l,p)
-#endif
 
 #endif
diff --git a/src/fe-gtk/fkeys.c b/src/fe-gtk/fkeys.c
index 52f5d901..bf21c452 100644
--- a/src/fe-gtk/fkeys.c
+++ b/src/fe-gtk/fkeys.c
@@ -300,17 +300,6 @@ key_handle_key_press (GtkWidget *wid, GdkEventKey *evt, session *sess)
 	case GDK_KEY_space:
 		key_action_tab_clean ();
 		break;
-
-#if defined(USE_GTKSPELL)/* && !defined(WIN32) */
-	/* gtktextview has no 'activate' event, so we trap ENTER here */
-	case GDK_KEY_Return:
-	case GDK_KEY_KP_Enter:
-		if (!(evt->state & STATE_CTRL))
-		{
-			g_signal_stop_emission_by_name (G_OBJECT (wid), "key_press_event");
-			mg_inputbox_cb (wid, sess->gui);
-		}
-#endif
 	}
 
 	return 0;
diff --git a/src/fe-gtk/maingui.c b/src/fe-gtk/maingui.c
index 933d6948..f064c7f7 100644
--- a/src/fe-gtk/maingui.c
+++ b/src/fe-gtk/maingui.c
@@ -50,14 +50,7 @@
 #include "pixmaps.h"
 #include "plugin-tray.h"
 #include "xtext.h"
-
-#ifdef USE_GTKSPELL
-#include <gtkspell/gtkspell.h>
-#endif
-
-#ifdef USE_LIBSEXY
 #include "sexy-spell-entry.h"
-#endif
 
 #define GUI_SPACING (3)
 #define GUI_BORDER (0)
@@ -99,59 +92,6 @@ static PangoAttrList *nickseen_list;
 static PangoAttrList *newmsg_list;
 static PangoAttrList *plain_list = NULL;
 
-
-#ifdef USE_GTKSPELL
-
-/* use these when it's a GtkTextView instead of GtkEntry */
-
-char *
-SPELL_ENTRY_GET_TEXT (GtkWidget *entry)
-{
-	static char *last = NULL;	/* warning: don't overlap 2 GET_TEXT calls! */
-	GtkTextBuffer *buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (entry));
-	GtkTextIter start_iter, end_iter;
-
-	gtk_text_buffer_get_iter_at_offset (buf, &start_iter, 0);
-	gtk_text_buffer_get_end_iter (buf, &end_iter);
-	g_free (last);
-	last = gtk_text_buffer_get_text (buf, &start_iter, &end_iter, FALSE);
-	return last;
-}
-
-void
-SPELL_ENTRY_SET_POS (GtkWidget *entry, int pos)
-{
-	GtkTextIter iter;
-	GtkTextBuffer *buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (entry));
-
-	gtk_text_buffer_get_iter_at_offset (buf, &iter, pos);
-	gtk_text_buffer_place_cursor (buf, &iter);
-}
-
-int
-SPELL_ENTRY_GET_POS (GtkWidget *entry)
-{
-	GtkTextIter cursor;
-	GtkTextBuffer *buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (entry));
-
-	gtk_text_buffer_get_iter_at_mark (buf, &cursor, gtk_text_buffer_get_insert (buf));
-	return gtk_text_iter_get_offset (&cursor);
-}
-
-void
-SPELL_ENTRY_INSERT (GtkWidget *entry, const char *text, int len, int *pos)
-{
-	GtkTextIter iter;
-	GtkTextBuffer *buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (entry));
-
-	/* len is bytes. pos is chars. */
-	gtk_text_buffer_get_iter_at_offset (buf, &iter, *pos);
-	gtk_text_buffer_insert (buf, &iter, text, len);
-	*pos += g_utf8_strlen (text, len);
-}
-
-#endif
-
 static PangoAttrList *
 mg_attr_list_create (GdkColor *col, int size)
 {
@@ -2999,9 +2939,6 @@ static void
 mg_create_entry (session *sess, GtkWidget *box)
 {
 	GtkWidget *hbox, *but, *entry;
-#ifdef USE_GTKSPELL
-	GtkWidget *sw;
-#endif
 	session_gui *gui = sess->gui;
 
 	hbox = gtk_hbox_new (FALSE, 0);
@@ -3017,34 +2954,13 @@ mg_create_entry (session *sess, GtkWidget *box)
 	g_signal_connect (G_OBJECT (but), "clicked",
 							G_CALLBACK (mg_nickclick_cb), NULL);
 
-#ifdef USE_GTKSPELL
-	gui->input_box = entry = gtk_text_view_new ();
-	gtk_widget_set_size_request (entry, 0, 1);
-	gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (entry), GTK_WRAP_NONE);
-	gtk_text_view_set_accepts_tab (GTK_TEXT_VIEW (entry), FALSE);
-	if (prefs.hex_gui_input_spell)
-		gtkspell_new_attach (GTK_TEXT_VIEW (entry), NULL, NULL);
-
-	sw = gtk_scrolled_window_new (NULL, NULL);
-	gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),
-													 GTK_SHADOW_IN);
-	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
-												GTK_POLICY_NEVER,
-												GTK_POLICY_AUTOMATIC);
-	gtk_container_add (GTK_CONTAINER (sw), entry);
-	gtk_container_add (GTK_CONTAINER (hbox), sw);
-#else
-#ifdef USE_LIBSEXY
 	gui->input_box = entry = sexy_spell_entry_new ();
 	sexy_spell_entry_set_checked ((SexySpellEntry *)entry, prefs.hex_gui_input_spell);
-#else
-	gui->input_box = entry = gtk_entry_new ();
-#endif
+
 	gtk_entry_set_max_length (GTK_ENTRY (gui->input_box), 0);
 	g_signal_connect (G_OBJECT (entry), "activate",
 							G_CALLBACK (mg_inputbox_cb), gui);
 	gtk_container_add (GTK_CONTAINER (hbox), entry);
-#endif
 
 	gtk_widget_set_name (entry, "hexchat-inputbox");
 	g_signal_connect (G_OBJECT (entry), "key_press_event",
diff --git a/src/fe-gtk/setup.c b/src/fe-gtk/setup.c
index 41b50ac7..3dd09568 100644
--- a/src/fe-gtk/setup.c
+++ b/src/fe-gtk/setup.c
@@ -40,12 +40,7 @@
 #ifdef WIN32
 #include "../common/fe.h"
 #endif
-#ifdef USE_GTKSPELL
-#include <gtkspell/gtkspell.h>
-#endif
-#ifdef USE_LIBSEXY
 #include "sexy-spell-entry.h"
-#endif
 
 GtkStyle *create_input_style (GtkStyle *);
 
@@ -194,7 +189,7 @@ static const setting inputbox_settings[] =
 	{ST_TOGGLE, N_("Use the Text box font and colors"), P_OFFINTNL(hex_gui_input_style),0,0,0},
 	{ST_TOGGLE, N_("Show nick box"), P_OFFINTNL(hex_gui_input_nick),0,0,1},
 	{ST_TOGGLE, N_("Show user mode icon in nick box"), P_OFFINTNL(hex_gui_input_icon),0,0,0},
-#ifdef HAVE_ISO_CODES /* Defined with static spelling */
+#ifdef USE_SPELL
 	{ST_TOGGLE, N_("Spell checking"), P_OFFINTNL(hex_gui_input_spell),0,0,1},
 	{ST_ENTRY,	N_("Dictionaries to use:"), P_OFFSETNL(hex_text_spell_langs),0,0,sizeof prefs.hex_text_spell_langs},
 #ifdef WIN32
@@ -202,10 +197,6 @@ static const setting inputbox_settings[] =
 #else
 	{ST_LABEL,	N_("Use language codes. Separate multiple entries with commas.")},
 #endif
-#else
-#if defined(USE_GTKSPELL) || defined(USE_LIBSEXY)
-	{ST_TOGGLE, N_("Spell checking"), P_OFFINTNL(hex_gui_input_spell),0,0,0},
-#endif
 #endif
 
 	{ST_HEADER, N_("Nick Completion"),0,0,0},
@@ -2004,10 +1995,6 @@ setup_apply_entry_style (GtkWidget *entry)
 static void
 setup_apply_to_sess (session_gui *gui)
 {
-#ifdef USE_GTKSPELL
-	GtkSpell *spell;
-#endif
-
 	mg_update_xtext (gui->xtext);
 
 	if (prefs.hex_gui_ulist_style)
@@ -2034,21 +2021,7 @@ setup_apply_to_sess (session_gui *gui)
 	else
 		gtk_widget_hide (gui->button_box);
 
-#ifdef USE_GTKSPELL
-	spell = gtkspell_get_from_text_view (GTK_TEXT_VIEW (gui->input_box));
-	if (prefs.hex_gui_input_spell)
-	{
-		if (!spell)
-			gtkspell_new_attach (GTK_TEXT_VIEW (gui->input_box), NULL, NULL);
-	}
-	else
-	{
-		if (spell)
-			gtkspell_detach (spell);
-	}
-#endif
-
-#ifdef USE_LIBSEXY
+#ifdef USE_SPELL
 	/* update active languages */
 	sexy_spell_entry_deactivate_language((SexySpellEntry *)gui->input_box,NULL);
 	sexy_spell_entry_activate_default_languages((SexySpellEntry *)gui->input_box);