[byzanz] Replace-deprecated-func-in-paneltogglebutton.c



commit 74a1e9273edbf077c0b1fadf5718c0cf734bebc8
Author: Markus Koschany <apo gambaru de>
Date:   Mon Oct 1 12:36:06 2012 +0200

    Replace-deprecated-func-in-paneltogglebutton.c
    
    Use gtk_widget_get_preferred_size and gtk_render_background
    instead of their deprecated counterparts in
    src/paneltogglebutton.c which fixes a FTBFS with GTK 3.4.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=685310

 src/paneltogglebutton.c |   35 +++++++++++++++++++++++++++++++----
 1 files changed, 31 insertions(+), 4 deletions(-)
---
diff --git a/src/paneltogglebutton.c b/src/paneltogglebutton.c
index 2a76e28..d1ab637 100644
--- a/src/paneltogglebutton.c
+++ b/src/paneltogglebutton.c
@@ -35,7 +35,7 @@ panel_toggle_button_size_request (GtkWidget *widget,
   child = gtk_bin_get_child (GTK_BIN (widget));
 
   if (child) {
-    gtk_widget_size_request (child, requisition);
+    gtk_widget_get_preferred_size (child, requisition, NULL);
   } else {
     requisition->width = requisition->height = 0;
   }
@@ -91,6 +91,8 @@ panel_toggle_button_draw (GtkWidget *widget, cairo_t *cr)
   GtkStateType state_type;
   GtkShadowType shadow_type;
   GtkAllocation allocation;
+  GtkStyleContext *context = gtk_widget_get_style_context (widget);
+  GtkStateFlags flags = 0;
 
   state_type = gtk_widget_get_state (widget);
     
@@ -107,9 +109,34 @@ panel_toggle_button_draw (GtkWidget *widget, cairo_t *cr)
     state_type = GTK_STATE_SELECTED;
   /* FIXME: better detail? */
   gtk_widget_get_allocation (widget, &allocation);
-  gtk_paint_flat_box (gtk_widget_get_style (widget), cr, state_type, shadow_type,
-                      widget, "togglebutton", allocation.x,
-                      allocation.y, allocation.width, allocation.height);
+  gtk_style_context_add_class (context, "togglebutton");
+  switch (state_type)
+    {
+    case GTK_STATE_PRELIGHT:
+      flags |= GTK_STATE_FLAG_PRELIGHT;
+      break;
+    case GTK_STATE_SELECTED:
+      flags |= GTK_STATE_FLAG_SELECTED;
+      break;
+    case GTK_STATE_INSENSITIVE:
+      flags |= GTK_STATE_FLAG_INSENSITIVE;
+      break;
+    case GTK_STATE_ACTIVE:
+      flags |= GTK_STATE_FLAG_ACTIVE;
+      break;
+    case GTK_STATE_FOCUSED:
+      flags |= GTK_STATE_FLAG_FOCUSED;
+      break;
+    case GTK_STATE_NORMAL:
+    case GTK_STATE_INCONSISTENT:
+    default:
+      break;
+  }
+
+  gtk_style_context_set_state (context, flags);
+  gtk_render_background (context, cr, (gdouble) allocation.x, (gdouble) allocation.y,
+                                 (gdouble) allocation.width, (gdouble) allocation.height);
+  (void) shadow_type;
 
   if (child)
     gtk_container_propagate_draw (GTK_CONTAINER (widget), child, cr);



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