[gtk+/wip/colorchooser-v2: 45/77] color-swatch: add a color-light/color-dark style class for intensity
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/colorchooser-v2: 45/77] color-swatch: add a color-light/color-dark style class for intensity
- Date: Thu, 9 Feb 2012 21:30:06 +0000 (UTC)
commit 97fa7f8d9aa4e26adb6c7a89ea3e34f91a52367c
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Wed Feb 8 16:35:57 2012 -0500
color-swatch: add a color-light/color-dark style class for intensity
Themes might want to set different colors on the badge if the displayed
color is light or dark. Use a style class for this when we set a color
on the swatch.
gtk/gtkcolorswatch.c | 24 ++++++++++++++++++++----
1 files changed, 20 insertions(+), 4 deletions(-)
---
diff --git a/gtk/gtkcolorswatch.c b/gtk/gtkcolorswatch.c
index 8e4b38d..d994729 100644
--- a/gtk/gtkcolorswatch.c
+++ b/gtk/gtkcolorswatch.c
@@ -612,15 +612,31 @@ void
gtk_color_swatch_set_rgba (GtkColorSwatch *swatch,
const GdkRGBA *color)
{
+ GtkStyleContext *context;
+
+ context = gtk_widget_get_style_context (GTK_WIDGET (swatch));
+
if (!swatch->priv->has_color)
- gtk_drag_source_set (GTK_WIDGET (swatch),
- GDK_BUTTON1_MASK | GDK_BUTTON3_MASK,
- dnd_targets, G_N_ELEMENTS (dnd_targets),
- GDK_ACTION_COPY | GDK_ACTION_MOVE);
+ {
+ gtk_drag_source_set (GTK_WIDGET (swatch),
+ GDK_BUTTON1_MASK | GDK_BUTTON3_MASK,
+ dnd_targets, G_N_ELEMENTS (dnd_targets),
+ GDK_ACTION_COPY | GDK_ACTION_MOVE);
+ }
+ else
+ {
+ gtk_style_context_remove_class (context, "color-light");
+ gtk_style_context_remove_class (context, "color-dark");
+ }
swatch->priv->has_color = TRUE;
swatch->priv->color = *color;
+ if (INTENSITY (swatch->priv->color.red, swatch->priv->color.green, swatch->priv->color.blue) > 0.5)
+ gtk_style_context_add_class (context, "color-light");
+ else
+ gtk_style_context_add_class (context, "color-dark");
+
gtk_widget_queue_draw (GTK_WIDGET (swatch));
g_object_notify (G_OBJECT (swatch), "rgba");
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]