[gtk+] hsla: Add _gtk_hsla_shade()
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] hsla: Add _gtk_hsla_shade()
- Date: Sun, 25 Nov 2012 03:20:05 +0000 (UTC)
commit 9aac4dffc537e7cb9f4eb86b1f3197394a884319
Author: Benjamin Otte <otte redhat com>
Date: Sun Nov 25 03:24:47 2012 +0100
hsla: Add _gtk_hsla_shade()
We use it in multiple places, so better split it out.
gtk/gtkcsscolorvalue.c | 7 +------
gtk/gtkhsla.c | 18 ++++++++++++++++++
gtk/gtkhslaprivate.h | 4 ++++
3 files changed, 23 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkcsscolorvalue.c b/gtk/gtkcsscolorvalue.c
index 5e6a7f0..0633786 100644
--- a/gtk/gtkcsscolorvalue.c
+++ b/gtk/gtkcsscolorvalue.c
@@ -184,12 +184,7 @@ _gtk_css_color_value_resolve (GtkCssValue *color,
*dependencies = _gtk_css_dependencies_union (*dependencies, 0);
_gtk_hsla_init_from_rgba (&hsla, _gtk_css_rgba_value_get_rgba (val));
-
- hsla.lightness *= color->sym_col.shade.factor;
- hsla.lightness = CLAMP (hsla.lightness, 0.0, 1.0);
-
- hsla.saturation *= color->sym_col.shade.factor;
- hsla.saturation = CLAMP (hsla.saturation, 0.0, 1.0);
+ _gtk_hsla_shade (&hsla, &hsla, color->sym_col.shade.factor);
_gdk_rgba_init_from_hsla (&shade, &hsla);
diff --git a/gtk/gtkhsla.c b/gtk/gtkhsla.c
index a788497..78ccaec 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;
+}
diff --git a/gtk/gtkhslaprivate.h b/gtk/gtkhslaprivate.h
index 3cc97d9..9f038cc 100644
--- a/gtk/gtkhslaprivate.h
+++ b/gtk/gtkhslaprivate.h
@@ -42,6 +42,10 @@ void _gtk_hsla_init_from_rgba (GtkHSLA *hsla,
void _gdk_rgba_init_from_hsla (GdkRGBA *rgba,
const GtkHSLA *hsla);
+void _gtk_hsla_shade (GtkHSLA *dest,
+ const GtkHSLA *src,
+ double factor);
+
G_END_DECLS
#endif /* __GTK_HSLA_PRIVATE_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]