Mercurial > dwindows
comparison gtk3/dw.c @ 1847:ff80ad40a5d6
Initial attempt at allowing DW_CLR_DEFAULT clear color style overrides on GTK2/3.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Fri, 28 Dec 2012 01:24:39 +0000 |
parents | cd4ff1eb34a3 |
children | 4790589f52a9 |
comparison
equal
deleted
inserted
replaced
1846:905f8632005b | 1847:ff80ad40a5d6 |
---|---|
2734 static int _set_color(HWND handle, unsigned long fore, unsigned long back) | 2734 static int _set_color(HWND handle, unsigned long fore, unsigned long back) |
2735 { | 2735 { |
2736 /* Remember that each color component in X11 use 16 bit no matter | 2736 /* Remember that each color component in X11 use 16 bit no matter |
2737 * what the destination display supports. (and thus GDK) | 2737 * what the destination display supports. (and thus GDK) |
2738 */ | 2738 */ |
2739 GdkRGBA forecolor, backcolor; | 2739 GdkRGBA forecolor = {0}, backcolor = {0}; |
2740 | 2740 |
2741 if(fore & DW_RGB_COLOR) | 2741 if(fore & DW_RGB_COLOR) |
2742 { | 2742 { |
2743 forecolor.alpha = 1.0; | 2743 forecolor.alpha = 1.0; |
2744 forecolor.red = (gdouble)DW_RED_VALUE(fore) / 255.0; | 2744 forecolor.red = (gdouble)DW_RED_VALUE(fore) / 255.0; |
2745 forecolor.green = (gdouble)DW_GREEN_VALUE(fore) / 255.0; | 2745 forecolor.green = (gdouble)DW_GREEN_VALUE(fore) / 255.0; |
2746 forecolor.blue = (gdouble)DW_BLUE_VALUE(fore) / 255.0; | 2746 forecolor.blue = (gdouble)DW_BLUE_VALUE(fore) / 255.0; |
2747 | |
2748 gtk_widget_override_color(handle, GTK_STATE_NORMAL, &forecolor); | |
2749 gtk_widget_override_color(handle, GTK_STATE_ACTIVE, &forecolor); | |
2750 } | 2747 } |
2751 else if(fore != DW_CLR_DEFAULT) | 2748 else if(fore != DW_CLR_DEFAULT) |
2752 { | |
2753 forecolor = _colors[fore]; | 2749 forecolor = _colors[fore]; |
2754 | 2750 |
2755 gtk_widget_override_color(handle, GTK_STATE_NORMAL, &forecolor); | 2751 gtk_widget_override_color(handle, GTK_STATE_NORMAL, fore != DW_CLR_DEFAULT ? &forecolor : NULL); |
2756 gtk_widget_override_color(handle, GTK_STATE_ACTIVE, &forecolor); | 2752 gtk_widget_override_color(handle, GTK_STATE_ACTIVE, fore != DW_CLR_DEFAULT ? &forecolor : NULL); |
2757 } | 2753 |
2758 if(back & DW_RGB_COLOR) | 2754 if(back & DW_RGB_COLOR) |
2759 { | 2755 { |
2760 backcolor.alpha = 1.0; | 2756 backcolor.alpha = 1.0; |
2761 backcolor.red = (gdouble)DW_RED_VALUE(back) / 255.0; | 2757 backcolor.red = (gdouble)DW_RED_VALUE(back) / 255.0; |
2762 backcolor.green = (gdouble)DW_GREEN_VALUE(back) / 255.0; | 2758 backcolor.green = (gdouble)DW_GREEN_VALUE(back) / 255.0; |
2763 backcolor.blue = (gdouble)DW_BLUE_VALUE(back) / 255.0; | 2759 backcolor.blue = (gdouble)DW_BLUE_VALUE(back) / 255.0; |
2764 | |
2765 gtk_widget_override_background_color(handle, GTK_STATE_NORMAL, &backcolor); | |
2766 gtk_widget_override_background_color(handle, GTK_STATE_ACTIVE, &backcolor); | |
2767 } | 2760 } |
2768 else if(back != DW_CLR_DEFAULT) | 2761 else if(back != DW_CLR_DEFAULT) |
2769 { | |
2770 backcolor = _colors[back]; | 2762 backcolor = _colors[back]; |
2771 | 2763 |
2772 gtk_widget_override_background_color(handle, GTK_STATE_NORMAL, &backcolor); | 2764 gtk_widget_override_background_color(handle, GTK_STATE_NORMAL, back != DW_CLR_DEFAULT ? &backcolor : NULL); |
2773 gtk_widget_override_background_color(handle, GTK_STATE_ACTIVE, &backcolor); | 2765 gtk_widget_override_background_color(handle, GTK_STATE_ACTIVE, back != DW_CLR_DEFAULT ? &backcolor : NULL); |
2774 } | |
2775 | 2766 |
2776 _save_gdk_colors(handle, forecolor, backcolor); | 2767 _save_gdk_colors(handle, forecolor, backcolor); |
2777 | 2768 |
2778 return TRUE; | 2769 return TRUE; |
2779 } | 2770 } |