Mercurial > dwindows
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);