[gimp/gtk3-port: 138/228] app: port GimpSpinScale to GtkStyleContext



commit b13cf51ee2fb1b93c0b30edf32dfe3c29234af52
Author: Michael Natterer <mitch gimp org>
Date:   Wed Dec 22 23:32:42 2010 +0100

    app: port GimpSpinScale to GtkStyleContext

 app/widgets/gimpspinscale.c |   34 +++++++++++++---------------------
 1 files changed, 13 insertions(+), 21 deletions(-)
---
diff --git a/app/widgets/gimpspinscale.c b/app/widgets/gimpspinscale.c
index 6ac5ddb..1202016 100644
--- a/app/widgets/gimpspinscale.c
+++ b/app/widgets/gimpspinscale.c
@@ -88,8 +88,7 @@ static void       gimp_spin_scale_get_preferred_width  (GtkWidget        *widget
 static void       gimp_spin_scale_get_preferred_height (GtkWidget        *widget,
                                                         gint             *minimum_width,
                                                         gint             *natural_width);
-static void       gimp_spin_scale_style_set            (GtkWidget        *widget,
-                                                        GtkStyle         *prev_style);
+static void       gimp_spin_scale_style_updated        (GtkWidget        *widget);
 static gboolean   gimp_spin_scale_draw                 (GtkWidget        *widget,
                                                         cairo_t          *cr);
 static gboolean   gimp_spin_scale_button_press         (GtkWidget        *widget,
@@ -123,7 +122,7 @@ gimp_spin_scale_class_init (GimpSpinScaleClass *klass)
 
   widget_class->get_preferred_width  = gimp_spin_scale_get_preferred_width;
   widget_class->get_preferred_height = gimp_spin_scale_get_preferred_height;
-  widget_class->style_set            = gimp_spin_scale_style_set;
+  widget_class->style_updated        = gimp_spin_scale_style_updated;
   widget_class->draw                 = gimp_spin_scale_draw;
   widget_class->button_press_event   = gimp_spin_scale_button_press;
   widget_class->button_release_event = gimp_spin_scale_button_release;
@@ -240,7 +239,6 @@ gimp_spin_scale_get_preferred_width (GtkWidget *widget,
                                      gint      *natural_width)
 {
   GimpSpinScalePrivate *private = GET_PRIVATE (widget);
-  GtkStyle             *style   = gtk_widget_get_style (widget);
   PangoContext         *context = gtk_widget_get_pango_context (widget);
   PangoFontMetrics     *metrics;
 
@@ -248,7 +246,8 @@ gimp_spin_scale_get_preferred_width (GtkWidget *widget,
                                                         minimum_width,
                                                         natural_width);
 
-  metrics = pango_context_get_metrics (context, style->font_desc,
+  metrics = pango_context_get_metrics (context,
+                                       pango_context_get_font_description (context),
                                        pango_context_get_language (context));
 
   if (private->label)
@@ -274,7 +273,6 @@ gimp_spin_scale_get_preferred_height (GtkWidget *widget,
                                       gint      *minimum_height,
                                       gint      *natural_height)
 {
-  GtkStyle         *style   = gtk_widget_get_style (widget);
   PangoContext     *context = gtk_widget_get_pango_context (widget);
   PangoFontMetrics *metrics;
   gint              height;
@@ -283,7 +281,8 @@ gimp_spin_scale_get_preferred_height (GtkWidget *widget,
                                                          minimum_height,
                                                          natural_height);
 
-  metrics = pango_context_get_metrics (context, style->font_desc,
+  metrics = pango_context_get_metrics (context,
+                                       pango_context_get_font_description (context),
                                        pango_context_get_language (context));
 
   height = PANGO_PIXELS (pango_font_metrics_get_ascent (metrics) +
@@ -296,12 +295,11 @@ gimp_spin_scale_get_preferred_height (GtkWidget *widget,
 }
 
 static void
-gimp_spin_scale_style_set (GtkWidget *widget,
-                           GtkStyle  *prev_style)
+gimp_spin_scale_style_updated (GtkWidget *widget)
 {
   GimpSpinScalePrivate *private = GET_PRIVATE (widget);
 
-  GTK_WIDGET_CLASS (parent_class)->style_set (widget, prev_style);
+  GTK_WIDGET_CLASS (parent_class)->style_updated (widget);
 
   if (private->layout)
     {
@@ -315,8 +313,9 @@ gimp_spin_scale_draw (GtkWidget *widget,
                       cairo_t   *cr)
 {
   GimpSpinScalePrivate *private = GET_PRIVATE (widget);
-  GtkStyle             *style   = gtk_widget_get_style (widget);
+  GtkStyleContext      *style   = gtk_widget_get_style_context (widget);
   GtkAllocation         allocation;
+  GdkRGBA               color;
 
   cairo_save (cr);
   GTK_WIDGET_CLASS (parent_class)->draw (widget, cr);
@@ -324,14 +323,6 @@ gimp_spin_scale_draw (GtkWidget *widget,
 
   gtk_widget_get_allocation (widget, &allocation);
 
-  cairo_set_line_width (cr, 1.0);
-
-  cairo_rectangle (cr, 0.5, 0.5,
-                   allocation.width - 1.0, allocation.height - 1.0);
-  gdk_cairo_set_source_color (cr,
-                              &style->text[gtk_widget_get_state (widget)]);
-  cairo_stroke (cr);
-
   if (private->label)
     {
       GdkRectangle   text_area;
@@ -370,8 +361,9 @@ gimp_spin_scale_draw (GtkWidget *widget,
 
       cairo_move_to (cr, layout_offset_x, text_area.y + layout_offset_y);
 
-      gdk_cairo_set_source_color (cr,
-                                  &style->text[gtk_widget_get_state (widget)]);
+      gtk_style_context_get_color (style, gtk_widget_get_state_flags (widget),
+                                   &color);
+      gdk_cairo_set_source_rgba (cr, &color);
 
       pango_cairo_show_layout (cr, private->layout);
     }



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