From 2848d0359a8bc433ba9de56ccc93a04d2f6bbdf2 Mon Sep 17 00:00:00 2001 From: Wolfgang Ulbrich Date: Fri, 8 Jan 2016 20:16:20 +0100 Subject: GTK3 eel-gdk-extensions: add eel_make_color_inactive() to public API taken from: https://git.gnome.org/browse/nautilus/commit/?h=gnome-3-0&id=42e7268 --- eel/eel-gdk-extensions.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'eel/eel-gdk-extensions.c') diff --git a/eel/eel-gdk-extensions.c b/eel/eel-gdk-extensions.c index 3d68d9a5..bbb8a69a 100644 --- a/eel/eel-gdk-extensions.c +++ b/eel/eel-gdk-extensions.c @@ -510,6 +510,38 @@ eel_gdk_draw_layout_with_drop_shadow (GdkDrawable *drawable, #endif } +#if GTK_CHECK_VERSION(3,0,0) +#define CLAMP_COLOR(v) (t = (v), CLAMP (t, 0, G_MAXUSHORT)) +#define SATURATE(v) ((1.0 - saturation) * intensity + saturation * (v)) + +void +eel_make_color_inactive (GdkColor *color) +{ + double intensity, saturation; + gushort t; + + saturation = 0.7; + intensity = color->red * 0.30 + color->green * 0.59 + color->blue * 0.11; + color->red = SATURATE (color->red); + color->green = SATURATE (color->green); + color->blue = SATURATE (color->blue); + + if (intensity > G_MAXUSHORT / 2) { + color->red *= 0.9; + color->green *= 0.9; + color->blue *= 0.9; + } else { + color->red *= 1.25; + color->green *= 1.25; + color->blue *= 1.25; + } + + color->red = CLAMP_COLOR (color->red); + color->green = CLAMP_COLOR (color->green); + color->blue = CLAMP_COLOR (color->blue); +} +#endif + #if ! defined (EEL_OMIT_SELF_CHECK) static char * -- cgit v1.2.1