summaryrefslogtreecommitdiff
path: root/gtk/gtkhsla.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2012-11-25 03:24:47 +0100
committerBenjamin Otte <otte@redhat.com>2012-11-25 03:25:15 +0100
commit9aac4dffc537e7cb9f4eb86b1f3197394a884319 (patch)
tree2df665e2aa3b849407ff2757568c534d34186170 /gtk/gtkhsla.c
parent4f9a8e6b3d16f3a12aade5e40f45e02094545f1f (diff)
downloadgtk+-9aac4dffc537e7cb9f4eb86b1f3197394a884319.tar.gz
hsla: Add _gtk_hsla_shade()
We use it in multiple places, so better split it out.
Diffstat (limited to 'gtk/gtkhsla.c')
-rw-r--r--gtk/gtkhsla.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/gtk/gtkhsla.c b/gtk/gtkhsla.c
index a78849789d..78ccaec19f 100644
--- a/gtk/gtkhsla.c
+++ b/gtk/gtkhsla.c
@@ -183,3 +183,21 @@ _gdk_rgba_init_from_hsla (GdkRGBA *rgba,
}
}
+void
+_gtk_hsla_shade (GtkHSLA *dest,
+ const GtkHSLA *src,
+ double factor)
+{
+ g_return_if_fail (dest != NULL);
+ g_return_if_fail (src != NULL);
+
+ dest->hue = src->hue;
+
+ dest->lightness = src->lightness * factor;
+ dest->lightness = CLAMP (dest->lightness, 0.0, 1.0);
+
+ dest->saturation = src->saturation * factor;
+ dest->saturation = CLAMP (dest->saturation, 0.0, 1.0);
+
+ dest->alpha = src->alpha;
+}