[gimp/gtk3-port: 229/237] app: add gimp_get_style_color() to simplify GdkRGBA style property lookup



commit c6a503552e57a413bfe407ff4cf9b9bbebebc785
Author: Michael Natterer <mitch gimp org>
Date:   Mon Feb 7 22:16:05 2011 +0100

    app: add gimp_get_style_color() to simplify GdkRGBA style property lookup

 app/widgets/gimpwidgets-utils.c |   32 ++++++++++++++++++++++++++++++++
 app/widgets/gimpwidgets-utils.h |    3 +++
 2 files changed, 35 insertions(+), 0 deletions(-)
---
diff --git a/app/widgets/gimpwidgets-utils.c b/app/widgets/gimpwidgets-utils.c
index 7c6a741..71e1b2a 100644
--- a/app/widgets/gimpwidgets-utils.c
+++ b/app/widgets/gimpwidgets-utils.c
@@ -801,6 +801,38 @@ gimp_rgb_set_gdk_color (GimpRGB        *rgb,
   gimp_rgb_set_uchar (rgb, r, g, b);
 }
 
+gboolean
+gimp_get_style_color (GtkWidget   *widget,
+                      const gchar *property_name,
+                      GdkRGBA     *color)
+{
+  GdkRGBA *c = NULL;
+
+  g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
+  g_return_val_if_fail (property_name != NULL, FALSE);
+  g_return_val_if_fail (color != NULL, FALSE);
+
+  gtk_widget_style_get (widget,
+                        property_name, &c,
+                        NULL);
+
+  if (c)
+    {
+      *color = *c;
+      gdk_rgba_free (c);
+
+      return TRUE;
+    }
+
+  /* return ugly magenta to indicate that something is wrong */
+  color->red   = 1.0;
+  color->green = 1.0;
+  color->blue  = 0.0;
+  color->alpha = 1.0;
+
+  return FALSE;
+}
+
 void
 gimp_window_set_hint (GtkWindow      *window,
                       GimpWindowHint  hint)
diff --git a/app/widgets/gimpwidgets-utils.h b/app/widgets/gimpwidgets-utils.h
index 2468f0d..0059330 100644
--- a/app/widgets/gimpwidgets-utils.h
+++ b/app/widgets/gimpwidgets-utils.h
@@ -67,6 +67,9 @@ void              gimp_rgb_get_gdk_color           (const GimpRGB        *rgb,
                                                     GdkColor             *gdk_color);
 void              gimp_rgb_set_gdk_color           (GimpRGB              *rgb,
                                                     const GdkColor       *gdk_color);
+gboolean          gimp_get_style_color             (GtkWidget            *widget,
+                                                    const gchar          *property_name,
+                                                    GdkRGBA              *color);
 void              gimp_window_set_hint             (GtkWindow            *window,
                                                     GimpWindowHint        hint);
 guint32           gimp_window_get_native_id        (GtkWindow            *window);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]