void haikuSetGlobalColors(void) { rgb_color color; color = ui_color(B_PANEL_BACKGROUND_COLOR); // or B_CONTROL_BACKGROUND_COLOR ? iupGlobalSetDefaultColorAttrib("DLGBGCOLOR", color.red, color.green, color.blue); color = ui_color(B_PANEL_TEXT_COLOR); // or B_CONTROL_TEXT_COLOR ? iupGlobalSetDefaultColorAttrib("DLFBGCOLOR", color.red, color.green, color.blue); color = ui_color(B_DOCUMENT_BACKGROUND_COLOR); iupGlobalSetDefaultColorAttrib("TXTBGCOLOR", color.red, color.green, color.blue); color = ui_color(B_DOCUMENT_TEXT_COLOR); iupGlobalSetDefaultColorAttrib("TXTFGCOLOR", color.red, color.green, color.blue); }
static void winSetGlobalColor(int index, const char* name) { COLORREF color = GetSysColor(index); iupGlobalSetDefaultColorAttrib(name, (int)GetRValue(color), (int)GetGValue(color), (int)GetBValue(color)); }
static void gtkSetGlobalColorAttrib(const char* name, GdkColor *color) { iupGlobalSetDefaultColorAttrib(name, (int)iupCOLOR16TO8(color->red), (int)iupCOLOR16TO8(color->green), (int)iupCOLOR16TO8(color->blue)); }
static void gtkUpdateGlobalColors(GtkWidget* dialog, GtkWidget* text) { #if GTK_CHECK_VERSION(3, 0, 0) #ifdef WIN32 /* TODO: Workaround for GTK3 on Win32, should remove this code in the future */ #define gtkColorToRGBA(color, color3) {color3.red = color.red/65535.0; color3.green = color.green/65535.0; color3.blue = color.blue/65535.0; color3.alpha = 1.0;} GdkRGBA color3; GtkStyle* style = gtk_widget_get_style(dialog); GdkColor color = style->bg[GTK_STATE_NORMAL]; gtkColorToRGBA(color, color3); gtkSetGlobalColorAttrib("DLGBGCOLOR", &color3); color = style->fg[GTK_STATE_NORMAL]; gtkColorToRGBA(color, color3); gtkSetGlobalColorAttrib("DLGFGCOLOR", &color3); style = gtk_widget_get_style(text); color = style->base[GTK_STATE_NORMAL]; gtkColorToRGBA(color, color3); gtkSetGlobalColorAttrib("TXTBGCOLOR", &color3); color = style->text[GTK_STATE_NORMAL]; gtkColorToRGBA(color, color3); gtkSetGlobalColorAttrib("TXTFGCOLOR", &color3); color = style->base[GTK_STATE_SELECTED]; gtkColorToRGBA(color, color3); gtkSetGlobalColorAttrib("TXTHLCOLOR", &color3); #else GdkRGBA color; GtkStyleContext* context = gtk_widget_get_style_context(dialog); gtk_style_context_get_background_color(context, GTK_STATE_FLAG_NORMAL, &color); gtkSetGlobalColorAttrib("DLGBGCOLOR", &color); gtk_style_context_get_color(context, GTK_STATE_FLAG_NORMAL, &color); gtkSetGlobalColorAttrib("DLGFGCOLOR", &color); context = gtk_widget_get_style_context(text); gtk_style_context_get_background_color(context, GTK_STATE_FLAG_NORMAL, &color); gtkSetGlobalColorAttrib("TXTBGCOLOR", &color); gtk_style_context_get_color(context, GTK_STATE_FLAG_NORMAL, &color); gtkSetGlobalColorAttrib("TXTFGCOLOR", &color); gtk_style_context_get_background_color(context, GTK_STATE_FLAG_SELECTED, &color); gtkSetGlobalColorAttrib("TXTHLCOLOR", &color); #endif #else GtkStyle* style = gtk_widget_get_style(dialog); GdkColor color = style->bg[GTK_STATE_NORMAL]; gtkSetGlobalColorAttrib("DLGBGCOLOR", &color); color = style->fg[GTK_STATE_NORMAL]; gtkSetGlobalColorAttrib("DLGFGCOLOR", &color); style = gtk_widget_get_style(text); color = style->base[GTK_STATE_NORMAL]; gtkSetGlobalColorAttrib("TXTBGCOLOR", &color); color = style->text[GTK_STATE_NORMAL]; gtkSetGlobalColorAttrib("TXTFGCOLOR", &color); color = style->base[GTK_STATE_SELECTED]; gtkSetGlobalColorAttrib("TXTHLCOLOR", &color); #endif iupGlobalSetDefaultColorAttrib("LINKFGCOLOR", 0, 0, 238); }