Mercurial > dwindows
comparison 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 |
comparison
equal
deleted
inserted
replaced
192:d946e329670c | 193:efd4703450fa |
---|---|
4593 gtk_widget_show(tmp); | 4593 gtk_widget_show(tmp); |
4594 DW_MUTEX_UNLOCK; | 4594 DW_MUTEX_UNLOCK; |
4595 return tmp; | 4595 return tmp; |
4596 } | 4596 } |
4597 | 4597 |
4598 /* Returns a GdkColor from a DW color */ | |
4599 GdkColor _internal_color(unsigned long value) | |
4600 { | |
4601 if(DW_RGB_COLOR & value) | |
4602 { | |
4603 GdkColor color = { 0, DW_RED_VALUE(value) << 8, DW_GREEN_VALUE(value) << 8, DW_BLUE_VALUE(value) << 8 }; | |
4604 return color; | |
4605 } | |
4606 else if (value < 16) | |
4607 return _colors[value]; | |
4608 return _colors[0]; | |
4609 } | |
4610 | |
4598 /* Sets the current foreground drawing color. | 4611 /* Sets the current foreground drawing color. |
4599 * Parameters: | 4612 * Parameters: |
4600 * red: red value. | 4613 * red: red value. |
4601 * green: green value. | 4614 * green: green value. |
4602 * blue: blue value. | 4615 * blue: blue value. |
4603 */ | 4616 */ |
4604 void dw_color_foreground_set(unsigned long value) | 4617 void dw_color_foreground_set(unsigned long value) |
4605 { | 4618 { |
4606 int _locked_by_me = FALSE, index = _find_thread_index(dw_thread_id()); | 4619 int _locked_by_me = FALSE, index = _find_thread_index(dw_thread_id()); |
4607 GdkColor color = { 0, DW_RED_VALUE(value) << 8, DW_GREEN_VALUE(value) << 8, DW_BLUE_VALUE(value) << 8 }; | 4620 GdkColor color = _internal_color(value); |
4608 | 4621 |
4609 DW_MUTEX_LOCK; | 4622 DW_MUTEX_LOCK; |
4610 gdk_color_alloc(_dw_cmap, &color); | 4623 gdk_color_alloc(_dw_cmap, &color); |
4611 _foreground[index] = color; | 4624 _foreground[index] = color; |
4612 DW_MUTEX_UNLOCK; | 4625 DW_MUTEX_UNLOCK; |
4619 * blue: blue value. | 4632 * blue: blue value. |
4620 */ | 4633 */ |
4621 void dw_color_background_set(unsigned long value) | 4634 void dw_color_background_set(unsigned long value) |
4622 { | 4635 { |
4623 int _locked_by_me = FALSE, index = _find_thread_index(dw_thread_id()); | 4636 int _locked_by_me = FALSE, index = _find_thread_index(dw_thread_id()); |
4624 GdkColor color = { 0, DW_RED_VALUE(value) << 8, DW_GREEN_VALUE(value) << 8, DW_BLUE_VALUE(value) << 8 }; | 4637 GdkColor color = _internal_color(value); |
4625 | 4638 |
4626 DW_MUTEX_LOCK; | 4639 DW_MUTEX_LOCK; |
4627 gdk_color_alloc(_dw_cmap, &color); | 4640 gdk_color_alloc(_dw_cmap, &color); |
4628 _background[index] = color; | 4641 _background[index] = color; |
4629 DW_MUTEX_UNLOCK; | 4642 DW_MUTEX_UNLOCK; |