summaryrefslogtreecommitdiff
path: root/eel
diff options
context:
space:
mode:
Diffstat (limited to 'eel')
-rw-r--r--eel/eel-gdk-extensions.c32
-rw-r--r--eel/eel-gdk-extensions.h3
2 files changed, 35 insertions, 0 deletions
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 *
diff --git a/eel/eel-gdk-extensions.h b/eel/eel-gdk-extensions.h
index 2036eec4..fedb2c22 100644
--- a/eel/eel-gdk-extensions.h
+++ b/eel/eel-gdk-extensions.h
@@ -132,4 +132,7 @@ void eel_gdk_draw_layout_with_drop_shadow (GdkDrawable
int x,
int y,
PangoLayout *layout);
+#if GTK_CHECK_VERSION(3,0,0)
+void eel_make_color_inactive (GdkColor *color);
+#endif
#endif /* EEL_GDK_EXTENSIONS_H */