summaryrefslogtreecommitdiff
path: root/eel
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2010-10-07 11:24:16 +0200
committerCosimo Cecchi <cosimoc@gnome.org>2010-10-09 15:41:07 +0200
commit42e726853157e561dc99d61180cae036f751fef8 (patch)
tree8858dc206f31afe5b19fe3dd3250a3d70c746ece /eel
parent407666719856127547f5c2f3f03f6a050858239a (diff)
downloadnautilus-42e726853157e561dc99d61180cae036f751fef8.tar.gz
eel-gdk-extensions: add eel_make_color_inactive() to public API
Diffstat (limited to 'eel')
-rw-r--r--eel/eel-gdk-extensions.c30
-rw-r--r--eel/eel-gdk-extensions.h2
2 files changed, 32 insertions, 0 deletions
diff --git a/eel/eel-gdk-extensions.c b/eel/eel-gdk-extensions.c
index 31ff008eb..2dc66c31c 100644
--- a/eel/eel-gdk-extensions.c
+++ b/eel/eel-gdk-extensions.c
@@ -474,6 +474,36 @@ eel_cairo_draw_layout_with_drop_shadow (cairo_t *cr,
cairo_restore (cr);
}
+#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);
+}
+
#if ! defined (EEL_OMIT_SELF_CHECK)
static char *
diff --git a/eel/eel-gdk-extensions.h b/eel/eel-gdk-extensions.h
index b3778c6f3..b135264e8 100644
--- a/eel/eel-gdk-extensions.h
+++ b/eel/eel-gdk-extensions.h
@@ -123,4 +123,6 @@ void eel_cairo_draw_layout_with_drop_shadow (cairo_t
int x,
int y,
PangoLayout *layout);
+void eel_make_color_inactive (GdkColor *color);
+
#endif /* EEL_GDK_EXTENSIONS_H */