[gimp/gtk3-port: 178/444] app: port GimpColorFrame away from GtkStyle, using a new style property



commit 277b7cd07943097f1b98a8d999e51f3006645c54
Author: Michael Natterer <mitch gimp org>
Date:   Sun Feb 6 17:18:47 2011 +0100

    app: port GimpColorFrame away from GtkStyle, using a new style property

 app/widgets/gimpcolorframe.c |   22 ++++++++++++++++++++--
 themes/Small/gimp.css        |    4 ++++
 themes/System/gimp.css       |    4 ++++
 3 files changed, 28 insertions(+), 2 deletions(-)
---
diff --git a/app/widgets/gimpcolorframe.c b/app/widgets/gimpcolorframe.c
index bd8895d..7a1bb5c 100644
--- a/app/widgets/gimpcolorframe.c
+++ b/app/widgets/gimpcolorframe.c
@@ -129,6 +129,12 @@ gimp_color_frame_class_init (GimpColorFrameClass *klass)
                                                       PANGO_TYPE_ELLIPSIZE_MODE,
                                                       PANGO_ELLIPSIZE_NONE,
                                                       GIMP_PARAM_READWRITE));
+
+  gtk_widget_class_install_style_property (widget_class,
+                                           g_param_spec_boxed ("number-color",
+                                                               NULL, NULL,
+                                                               GDK_TYPE_RGBA,
+                                                               GIMP_PARAM_READWRITE));
 }
 
 static void
@@ -340,23 +346,33 @@ gimp_color_frame_draw (GtkWidget *widget,
 
   if (frame->has_number)
     {
-      GtkStyle      *style = gtk_widget_get_style (widget);
       GtkAllocation  allocation;
       GtkAllocation  menu_allocation;
       GtkAllocation  color_area_allocation;
       GtkAllocation  coords_box_x_allocation;
       GtkAllocation  coords_box_y_allocation;
+      GdkRGBA       *color;
       gchar          buf[8];
       gint           w, h;
       gdouble        scale;
 
+      cairo_save (cr);
+
       gtk_widget_get_allocation (widget, &allocation);
       gtk_widget_get_allocation (frame->menu, &menu_allocation);
       gtk_widget_get_allocation (frame->color_area, &color_area_allocation);
       gtk_widget_get_allocation (frame->coords_box_x, &coords_box_x_allocation);
       gtk_widget_get_allocation (frame->coords_box_y, &coords_box_y_allocation);
 
-      gdk_cairo_set_source_color (cr, &style->light[GTK_STATE_NORMAL]);
+      gtk_widget_style_get (widget,
+                            "number-color", &color,
+                            NULL);
+
+      if (color)
+        {
+          gdk_cairo_set_source_rgba (cr, color);
+          gdk_rgba_free (color);
+        }
 
       g_snprintf (buf, sizeof (buf), "%d", frame->number);
 
@@ -383,6 +399,8 @@ gimp_color_frame_draw (GtkWidget *widget,
                       coords_box_x_allocation.height / 2.0 +
                       coords_box_y_allocation.height / 2.0) / scale - h / 2.0);
       pango_cairo_show_layout (cr, frame->number_layout);
+
+      cairo_restore (cr);
     }
 
   return GTK_WIDGET_CLASS (parent_class)->draw (widget, cr);
diff --git a/themes/Small/gimp.css b/themes/Small/gimp.css
index a8ceef6..f513c5e 100644
--- a/themes/Small/gimp.css
+++ b/themes/Small/gimp.css
@@ -64,6 +64,10 @@ GimpDisplayShell {
   -GtkButton-focus-padding:       0;
 }
 
+GimpColorFrame {
+  -GimpColorFrame-number-color: lighter (@bg_color);
+}
+
 GimpOverlayFrame {
   -GtkButton-focus-line-width: 1;
 }
diff --git a/themes/System/gimp.css b/themes/System/gimp.css
index cb6aa45..58cc23c 100644
--- a/themes/System/gimp.css
+++ b/themes/System/gimp.css
@@ -64,6 +64,10 @@ GimpDisplayShell {
   -GtkButton-focus-padding:       0;
 }
 
+GimpColorFrame {
+  -GimpColorFrame-number-color: lighter (@bg_color);
+}
+
 GimpOverlayFrame {
   -GtkButton-focus-line-width: 1;
 }


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