diff gtk/dw.c @ 193:efd4703450fa

Build test application on Unix too... and also fixed GTK to allow OS/2 style colors in dw_color_xxx_set().
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Fri, 17 Jan 2003 23:52:44 +0000
parents f55677513954
children b023d363fc09
line wrap: on
line diff
--- a/gtk/dw.c	Fri Jan 17 23:28:28 2003 +0000
+++ b/gtk/dw.c	Fri Jan 17 23:52:44 2003 +0000
@@ -4595,6 +4595,19 @@
 	return tmp;
 }
 
+/* Returns a GdkColor from a DW color */
+GdkColor _internal_color(unsigned long value)
+{
+	if(DW_RGB_COLOR & value)
+	{
+		GdkColor color = { 0, DW_RED_VALUE(value) << 8, DW_GREEN_VALUE(value) << 8, DW_BLUE_VALUE(value) << 8 };
+		return color;
+	}
+	else if (value < 16)
+		return _colors[value];
+	return _colors[0];
+}
+
 /* Sets the current foreground drawing color.
  * Parameters:
  *       red: red value.
@@ -4604,7 +4617,7 @@
 void dw_color_foreground_set(unsigned long value)
 {
 	int _locked_by_me = FALSE, index = _find_thread_index(dw_thread_id());
-	GdkColor color = { 0, DW_RED_VALUE(value) << 8, DW_GREEN_VALUE(value) << 8, DW_BLUE_VALUE(value) << 8 };
+	GdkColor color = _internal_color(value);
 
 	DW_MUTEX_LOCK;
 	gdk_color_alloc(_dw_cmap, &color);
@@ -4621,7 +4634,7 @@
 void dw_color_background_set(unsigned long value)
 {
 	int _locked_by_me = FALSE, index = _find_thread_index(dw_thread_id());
-	GdkColor color = { 0, DW_RED_VALUE(value) << 8, DW_GREEN_VALUE(value) << 8, DW_BLUE_VALUE(value) << 8 };
+	GdkColor color = _internal_color(value);
 
 	DW_MUTEX_LOCK;
 	gdk_color_alloc(_dw_cmap, &color);