diff console/libgnt/gntcolors.c @ 13964:0a0d2a1fd2bc

[gaim-migrate @ 16520] Add multi-column support for GntTree. Use it for email-notifications. Restore colors before exiting. committer: Tailor Script <tailor@pidgin.im>
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Wed, 19 Jul 2006 07:12:59 +0000
parents b210409cdc56
children 06f75fb84a78
line wrap: on
line diff
--- a/console/libgnt/gntcolors.c	Tue Jul 18 07:18:05 2006 +0000
+++ b/console/libgnt/gntcolors.c	Wed Jul 19 07:12:59 2006 +0000
@@ -1,10 +1,40 @@
 #include <ncursesw/ncurses.h>
 #include "gntcolors.h"
 
+static struct
+{
+	short r, g, b;
+} colors[GNT_TOTAL_COLORS];
+
+static void
+backup_colors()
+{
+	short i;
+	for (i = 0; i < GNT_TOTAL_COLORS; i++)
+	{
+		color_content(i, &colors[i].r,
+				&colors[i].g, &colors[i].b);
+	}
+}
+
+static void
+restore_colors()
+{
+	short i;
+	for (i = 0; i < GNT_TOTAL_COLORS; i++)
+	{
+		init_color(i, colors[i].r,
+				colors[i].g, colors[i].b);
+	}
+}
+
 void gnt_init_colors()
 {
+	start_color();
 	if (can_change_color())
 	{
+		backup_colors();
+
 		/* XXX: Do some init_color()s */
 		init_color(GNT_COLOR_BLACK, 0, 0, 0);
 		init_color(GNT_COLOR_RED, 1000, 0, 0);
@@ -39,3 +69,9 @@
 	}
 }
 
+void
+gnt_uninit_colors()
+{
+	restore_colors();
+}
+