summary refs log tree commit diff stats
path: root/src/fe-gtk
diff options
context:
space:
mode:
authorberkeviktor@aol.com <berkeviktor@aol.com>2011-06-05 06:12:31 +0200
committerberkeviktor@aol.com <berkeviktor@aol.com>2011-06-05 06:12:31 +0200
commit87b68a17adb0d254d56c995fbaff7a5a94175297 (patch)
tree87f3eea3b1205229001cb31306402a084f00b175 /src/fe-gtk
parent5ea4855bc32844474df3f542800fcd801d1037fb (diff)
add option for changing spell checker color
Diffstat (limited to 'src/fe-gtk')
-rw-r--r--src/fe-gtk/palette.c3
-rw-r--r--src/fe-gtk/palette.h1
-rw-r--r--src/fe-gtk/setup.c1
-rw-r--r--src/fe-gtk/sexy-spell-entry.c42
4 files changed, 44 insertions, 3 deletions
diff --git a/src/fe-gtk/palette.c b/src/fe-gtk/palette.c
index 8d2ee062..b94ac874 100644
--- a/src/fe-gtk/palette.c
+++ b/src/fe-gtk/palette.c
@@ -77,8 +77,9 @@ GdkColor colors[] = {
 	{0, 0x0000, 0x0000, 0xffff}, /* 38 tab Nick Mentioned (blue) */
 	{0, 0xffff, 0x0000, 0x0000}, /* 39 tab New Message (red) */
 	{0, 0x9595, 0x9595, 0x9595}, /* 40 away user (grey) */
+	{0, 0xffff, 0x0000, 0x0000}, /* 41 spell checker color (red) */
 };
-#define MAX_COL 40
+#define MAX_COL 41
 
 
 void
diff --git a/src/fe-gtk/palette.h b/src/fe-gtk/palette.h
index c97693bb..627c6963 100644
--- a/src/fe-gtk/palette.h
+++ b/src/fe-gtk/palette.h
@@ -9,6 +9,7 @@ extern GdkColor colors[];
 #define COL_HILIGHT 38
 #define COL_NEW_MSG 39
 #define COL_AWAY 40
+#define COL_SPELL 41
 
 void palette_alloc (GtkWidget * widget);
 void palette_load (void);
diff --git a/src/fe-gtk/setup.c b/src/fe-gtk/setup.c
index eef6761d..250accc5 100644
--- a/src/fe-gtk/setup.c
+++ b/src/fe-gtk/setup.c
@@ -1358,6 +1358,7 @@ setup_create_color_page (void)
 	setup_create_other_color (_("New message:"), COL_NEW_MSG, 10, tab);
 	setup_create_other_colorR (_("Away user:"), COL_AWAY, 10, tab);
 	setup_create_other_color (_("Highlight:"), COL_HILIGHT, 11, tab);
+	setup_create_other_colorR (_("Spell checker:"), COL_SPELL, 11, tab);
 
 	return box;
 }
diff --git a/src/fe-gtk/sexy-spell-entry.c b/src/fe-gtk/sexy-spell-entry.c
index d2c6a8a8..6bc4f0b5 100644
--- a/src/fe-gtk/sexy-spell-entry.c
+++ b/src/fe-gtk/sexy-spell-entry.c
@@ -26,13 +26,17 @@
 #include <gtk/gtk.h>
 #include "sexy-spell-entry.h"
 #include <string.h>
+#include <fcntl.h>
 #include <glib/gi18n.h>
 #include <sys/types.h>
+#include <sys/stat.h>
 /*#include "gtkspell-iso-codes.h"
 #include "sexy-marshal.h"*/
 
 #include "typedef.h"
 
+#include "../common/cfgfiles.h"
+
 /*
  * Bunch of poop to make enchant into a runtime dependency rather than a
  * compile-time dependency.  This makes it so I don't have to hear the
@@ -260,8 +264,42 @@ gtk_entry_find_position (GtkEntry *entry, gint x)
 static void
 insert_underline(SexySpellEntry *entry, guint start, guint end)
 {
-	PangoAttribute *ucolor = pango_attr_underline_color_new (65535, 0, 0);
-	PangoAttribute *unline = pango_attr_underline_new (PANGO_UNDERLINE_ERROR);
+	int fh, l;
+	int red, green, blue;
+	struct stat st;
+	char *cfg;
+	PangoAttribute *ucolor;
+	PangoAttribute *unline;
+
+	fh = xchat_open_file ("colors.conf", O_RDONLY, 0, 0);
+
+	if (fh != -1)
+	{
+		fstat (fh, &st);
+		cfg = malloc (st.st_size + 1);
+
+		if (cfg)
+		{
+			cfg[0] = '\0';
+			l = read (fh, cfg, st.st_size);
+			if (l >= 0)
+			{
+				cfg[l] = '\0';
+			}
+
+			cfg_get_color (cfg, "color_265", &red, &green, &blue);
+			free (cfg);
+		}
+
+		close (fh);
+	} else
+	{
+		red = 65535;
+		green = blue = 0;
+	}
+
+	ucolor = pango_attr_underline_color_new (red, green, blue);
+	unline = pango_attr_underline_new (PANGO_UNDERLINE_ERROR);
 
 	ucolor->start_index = start;
 	unline->start_index = start;