[aisleriot] prop-editor: Sync with gtk+



commit 2c93fa4ccec64d231f7b5958c7c98420665b96da
Author: Christian Persch <chpe gnome org>
Date:   Mon Nov 21 14:15:41 2011 +0100

    prop-editor: Sync with gtk+

 src/prop-editor.c |  686 +++++++++++++++++++++++++++++------------------------
 src/prop-editor.h |    6 +-
 2 files changed, 380 insertions(+), 312 deletions(-)
---
diff --git a/src/prop-editor.c b/src/prop-editor.c
index 61513fe..71b83eb 100644
--- a/src/prop-editor.c
+++ b/src/prop-editor.c
@@ -2,16 +2,16 @@
  * Copyright (C) 2000  Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
+ * modify it under the terms of the GNU Library General Public
  * License as published by the Free Software Foundation; either
  * version 3 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
+ * Library General Public License for more details.
  *
- * You should have received a copy of the GNU Lesser General Public
+ * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
@@ -35,13 +35,13 @@ static void
 disconnect_func (gpointer data)
 {
   DisconnectData *dd = data;
-  
+
   g_signal_handler_disconnect (dd->instance, dd->id);
 }
 
 static void
 signal_removed (gpointer  data,
-		GClosure *closure)
+                GClosure *closure)
 {
   DisconnectData *dd = data;
 
@@ -58,13 +58,13 @@ is_child_property (GParamSpec *pspec)
 static void
 mark_child_property (GParamSpec *pspec)
 {
-  g_param_spec_set_qdata (pspec, g_quark_from_string ("is-child-prop"), 
-			  GINT_TO_POINTER (TRUE));
+  g_param_spec_set_qdata (pspec, g_quark_from_string ("is-child-prop"),
+                          GINT_TO_POINTER (TRUE));
 }
 
 static void
 g_object_connect_property (GObject     *object,
-			   GParamSpec  *spec,
+                           GParamSpec  *spec,
                            GCallback    func,
                            gpointer     data,
                            GObject     *alive_object)
@@ -85,20 +85,20 @@ g_object_connect_property (GObject     *object,
   g_closure_add_invalidate_notifier (closure, dd, signal_removed);
 
   dd->id = g_signal_connect_closure (object, with_detail,
-				     closure, FALSE);
+                                     closure, FALSE);
 
   dd->instance = object;
   dd->alive_object = alive_object;
-  
+
   g_object_set_data_full (G_OBJECT (alive_object),
                           "alive-object-data",
                           dd,
                           disconnect_func);
-  
+
   g_free (with_detail);
 }
 
-typedef struct 
+typedef struct
 {
   GObject *obj;
   GParamSpec *spec;
@@ -113,9 +113,9 @@ free_object_property (ObjectProperty *p)
 
 static void
 connect_controller (GObject     *controller,
-                    const gchar *signal,
+                    const gchar *signal_name,
                     GObject     *model,
-		    GParamSpec  *spec,
+                    GParamSpec  *spec,
                     GCallback    func)
 {
   ObjectProperty *p;
@@ -124,9 +124,9 @@ connect_controller (GObject     *controller,
   p->obj = model;
   p->spec = spec;
 
-  p->modified_id = g_signal_connect_data (controller, signal, func, p,
-					  (GClosureNotify)free_object_property,
-					  0);
+  p->modified_id = g_signal_connect_data (controller, signal_name, func, p,
+                                          (GClosureNotify)free_object_property,
+                                          0);
   g_object_set_data (controller, "object-property", p);
 }
 
@@ -158,8 +158,8 @@ int_modified (GtkAdjustment *adj, gpointer data)
       GtkWidget *widget = GTK_WIDGET (p->obj);
       GtkWidget *parent = gtk_widget_get_parent (widget);
 
-      gtk_container_child_set (GTK_CONTAINER (parent), 
-			       widget, p->spec->name, (int) gtk_adjustment_get_value (adj), NULL);
+      gtk_container_child_set (GTK_CONTAINER (parent),
+                               widget, p->spec->name, (int) gtk_adjustment_get_value (adj), NULL);
     }
   else
     g_object_set (p->obj, p->spec->name, (int) gtk_adjustment_get_value (adj), NULL);
@@ -174,7 +174,7 @@ get_property_value (GObject *object, GParamSpec *pspec, GValue *value)
       GtkWidget *parent = gtk_widget_get_parent (widget);
 
       gtk_container_child_get_property (GTK_CONTAINER (parent),
-					widget, pspec->name, value);
+                                        widget, pspec->name, value);
     }
   else
     g_object_get_property (object, pspec->name, value);
@@ -184,7 +184,7 @@ static void
 int_changed (GObject *object, GParamSpec *pspec, gpointer data)
 {
   GtkAdjustment *adj = GTK_ADJUSTMENT (data);
-  GValue val = { 0, };  
+  GValue val = G_VALUE_INIT;
 
   g_value_init (&val, G_TYPE_INT);
 
@@ -210,8 +210,8 @@ uint_modified (GtkAdjustment *adj, gpointer data)
       GtkWidget *widget = GTK_WIDGET (p->obj);
       GtkWidget *parent = gtk_widget_get_parent (widget);
 
-      gtk_container_child_set (GTK_CONTAINER (parent), 
-			       widget, p->spec->name, (guint) gtk_adjustment_get_value (adj), NULL);
+      gtk_container_child_set (GTK_CONTAINER (parent),
+                               widget, p->spec->name, (guint) gtk_adjustment_get_value (adj), NULL);
     }
   else
     g_object_set (p->obj, p->spec->name, (guint) gtk_adjustment_get_value (adj), NULL);
@@ -221,7 +221,7 @@ static void
 uint_changed (GObject *object, GParamSpec *pspec, gpointer data)
 {
   GtkAdjustment *adj = GTK_ADJUSTMENT (data);
-  GValue val = { 0, };  
+  GValue val = G_VALUE_INIT;
 
   g_value_init (&val, G_TYPE_UINT);
   get_property_value (object, pspec, &val);
@@ -246,8 +246,8 @@ float_modified (GtkAdjustment *adj, gpointer data)
       GtkWidget *widget = GTK_WIDGET (p->obj);
       GtkWidget *parent = gtk_widget_get_parent (widget);
 
-      gtk_container_child_set (GTK_CONTAINER (parent), 
-			       widget, p->spec->name, (float) gtk_adjustment_get_value (adj), NULL);
+      gtk_container_child_set (GTK_CONTAINER (parent),
+                               widget, p->spec->name, (float) gtk_adjustment_get_value (adj), NULL);
     }
   else
     g_object_set (p->obj, p->spec->name, (float) gtk_adjustment_get_value (adj), NULL);
@@ -257,7 +257,7 @@ static void
 float_changed (GObject *object, GParamSpec *pspec, gpointer data)
 {
   GtkAdjustment *adj = GTK_ADJUSTMENT (data);
-  GValue val = { 0, };  
+  GValue val = G_VALUE_INIT;
 
   g_value_init (&val, G_TYPE_FLOAT);
   get_property_value (object, pspec, &val);
@@ -282,8 +282,8 @@ double_modified (GtkAdjustment *adj, gpointer data)
       GtkWidget *widget = GTK_WIDGET (p->obj);
       GtkWidget *parent = gtk_widget_get_parent (widget);
 
-      gtk_container_child_set (GTK_CONTAINER (parent), 
-			       widget, p->spec->name, (double) gtk_adjustment_get_value (adj), NULL);
+      gtk_container_child_set (GTK_CONTAINER (parent),
+                               widget, p->spec->name, (double) gtk_adjustment_get_value (adj), NULL);
     }
   else
     g_object_set (p->obj, p->spec->name, (double) gtk_adjustment_get_value (adj), NULL);
@@ -293,7 +293,7 @@ static void
 double_changed (GObject *object, GParamSpec *pspec, gpointer data)
 {
   GtkAdjustment *adj = GTK_ADJUSTMENT (data);
-  GValue val = { 0, };  
+  GValue val = G_VALUE_INIT;
 
   g_value_init (&val, G_TYPE_DOUBLE);
   get_property_value (object, pspec, &val);
@@ -321,8 +321,8 @@ string_modified (GtkEntry *entry, gpointer data)
       GtkWidget *widget = GTK_WIDGET (p->obj);
       GtkWidget *parent = gtk_widget_get_parent (widget);
 
-      gtk_container_child_set (GTK_CONTAINER (parent), 
-			       widget, p->spec->name, text, NULL);
+      gtk_container_child_set (GTK_CONTAINER (parent),
+                               widget, p->spec->name, text, NULL);
     }
   else
     g_object_set (p->obj, p->spec->name, text, NULL);
@@ -332,10 +332,10 @@ static void
 string_changed (GObject *object, GParamSpec *pspec, gpointer data)
 {
   GtkEntry *entry = GTK_ENTRY (data);
-  GValue val = { 0, };  
+  GValue val = G_VALUE_INIT;
   const gchar *str;
   const gchar *text;
-  
+
   g_value_init (&val, G_TYPE_STRING);
   get_property_value (object, pspec, &val);
 
@@ -350,7 +350,7 @@ string_changed (GObject *object, GParamSpec *pspec, gpointer data)
       gtk_entry_set_text (entry, str);
       unblock_controller (G_OBJECT (entry));
     }
-  
+
   g_value_unset (&val);
 }
 
@@ -377,8 +377,8 @@ bool_changed (GObject *object, GParamSpec *pspec, gpointer data)
 {
   GtkToggleButton *tb = GTK_TOGGLE_BUTTON (data);
   GtkWidget *child;
-  GValue val = { 0, };  
-  
+  GValue val = G_VALUE_INIT;
+
   g_value_init (&val, G_TYPE_BOOLEAN);
   get_property_value (object, pspec, &val);
 
@@ -392,7 +392,7 @@ bool_changed (GObject *object, GParamSpec *pspec, gpointer data)
   child = gtk_bin_get_child (GTK_BIN (tb));
   gtk_label_set_text (GTK_LABEL (child),
                       g_value_get_boolean (&val) ? "TRUE" : "FALSE");
-  
+
   g_value_unset (&val);
 }
 
@@ -403,7 +403,7 @@ enum_modified (GtkComboBox *cb, gpointer data)
   ObjectProperty *p = data;
   gint i;
   GEnumClass *eclass;
-  
+
   eclass = G_ENUM_CLASS (g_type_class_peek (p->spec->value_type));
 
   i = gtk_combo_box_get_active (cb);
@@ -414,8 +414,8 @@ enum_modified (GtkComboBox *cb, gpointer data)
       GtkWidget *widget = GTK_WIDGET (p->obj);
       GtkWidget *parent = gtk_widget_get_parent (widget);
 
-      gtk_container_child_set (GTK_CONTAINER (parent), 
-			       widget, p->spec->name, eclass->values[i].value, NULL);
+      gtk_container_child_set (GTK_CONTAINER (parent),
+                               widget, p->spec->name, eclass->values[i].value, NULL);
     }
   else
     g_object_set (p->obj, p->spec->name, eclass->values[i].value, NULL);
@@ -425,12 +425,12 @@ static void
 enum_changed (GObject *object, GParamSpec *pspec, gpointer data)
 {
   GtkComboBox *cb = GTK_COMBO_BOX (data);
-  GValue val = { 0, };  
+  GValue val = G_VALUE_INIT;
   GEnumClass *eclass;
   gint i;
 
   eclass = G_ENUM_CLASS (g_type_class_peek (pspec->value_type));
-  
+
   g_value_init (&val, pspec->value_type);
   get_property_value (object, pspec, &val);
 
@@ -441,14 +441,14 @@ enum_changed (GObject *object, GParamSpec *pspec, gpointer data)
         break;
       ++i;
     }
-  
+
   if (gtk_combo_box_get_active (cb) != i)
     {
       block_controller (G_OBJECT (cb));
       gtk_combo_box_set_active (cb, i);
       unblock_controller (G_OBJECT (cb));
     }
-  
+
   g_value_unset (&val);
 
 }
@@ -461,9 +461,9 @@ flags_modified (GtkCheckButton *button, gpointer data)
   GFlagsClass *fclass;
   guint flags;
   gint i;
-  
+
   fclass = G_FLAGS_CLASS (g_type_class_peek (p->spec->value_type));
-  
+
   active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button));
   i = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), "index"));
 
@@ -472,15 +472,15 @@ flags_modified (GtkCheckButton *button, gpointer data)
       GtkWidget *widget = GTK_WIDGET (p->obj);
       GtkWidget *parent = gtk_widget_get_parent (widget);
 
-      gtk_container_child_get (GTK_CONTAINER (parent), 
-			       widget, p->spec->name, &flags, NULL);
+      gtk_container_child_get (GTK_CONTAINER (parent),
+                               widget, p->spec->name, &flags, NULL);
       if (active)
         flags |= fclass->values[i].value;
       else
         flags &= ~fclass->values[i].value;
 
-      gtk_container_child_set (GTK_CONTAINER (parent), 
-			       widget, p->spec->name, flags, NULL);
+      gtk_container_child_set (GTK_CONTAINER (parent),
+                               widget, p->spec->name, flags, NULL);
     }
   else
     {
@@ -499,13 +499,13 @@ static void
 flags_changed (GObject *object, GParamSpec *pspec, gpointer data)
 {
   GList *children, *c;
-  GValue val = { 0, };  
+  GValue val = G_VALUE_INIT;
   GFlagsClass *fclass;
   guint flags;
   gint i;
 
   fclass = G_FLAGS_CLASS (g_type_class_peek (pspec->value_type));
-  
+
   g_value_init (&val, pspec->value_type);
   get_property_value (object, pspec, &val);
   flags = g_value_get_flags (&val);
@@ -528,7 +528,7 @@ static gunichar
 unichar_get_value (GtkEntry *entry)
 {
   const gchar *text = gtk_entry_get_text (entry);
-  
+
   if (text[0])
     return g_utf8_get_char (text);
   else
@@ -546,8 +546,8 @@ unichar_modified (GtkEntry *entry, gpointer data)
       GtkWidget *widget = GTK_WIDGET (p->obj);
       GtkWidget *parent = gtk_widget_get_parent (widget);
 
-      gtk_container_child_set (GTK_CONTAINER (parent), 
-			       widget, p->spec->name, val, NULL);
+      gtk_container_child_set (GTK_CONTAINER (parent),
+                               widget, p->spec->name, val, NULL);
     }
   else
     g_object_set (p->obj, p->spec->name, val, NULL);
@@ -559,10 +559,10 @@ unichar_changed (GObject *object, GParamSpec *pspec, gpointer data)
   GtkEntry *entry = GTK_ENTRY (data);
   gunichar new_val;
   gunichar old_val = unichar_get_value (entry);
-  GValue val = { 0, };
+  GValue val = G_VALUE_INIT;
   gchar buf[7];
   gint len;
-  
+
   g_value_init (&val, pspec->value_type);
   get_property_value (object, pspec, &val);
   new_val = (gunichar)g_value_get_uint (&val);
@@ -570,12 +570,12 @@ unichar_changed (GObject *object, GParamSpec *pspec, gpointer data)
   if (new_val != old_val)
     {
       if (!new_val)
-	len = 0;
+        len = 0;
       else
-	len = g_unichar_to_utf8 (new_val, buf);
-      
+        len = g_unichar_to_utf8 (new_val, buf);
+
       buf[len] = '\0';
-      
+
       block_controller (G_OBJECT (entry));
       gtk_entry_set_text (entry, buf);
       unblock_controller (G_OBJECT (entry));
@@ -588,7 +588,7 @@ pointer_changed (GObject *object, GParamSpec *pspec, gpointer data)
   GtkLabel *label = GTK_LABEL (data);
   gchar *str;
   gpointer ptr;
-  
+
   g_object_get (object, pspec->name, &ptr, NULL);
 
   str = g_strdup_printf ("Pointer: %p", ptr);
@@ -616,15 +616,15 @@ object_changed (GObject *object, GParamSpec *pspec, gpointer data)
   GtkWidget *label, *button;
   gchar *str;
   GObject *obj;
-  
-  GList *children = gtk_container_get_children (GTK_CONTAINER (data)); 
+
+  GList *children = gtk_container_get_children (GTK_CONTAINER (data));
   label = GTK_WIDGET (children->data);
   button = GTK_WIDGET (children->next->data);
   g_object_get (object, pspec->name, &obj, NULL);
   g_list_free (children);
 
   str = object_label (obj, pspec);
-  
+
   gtk_label_set_text (GTK_LABEL (label), str);
   gtk_widget_set_sensitive (button, G_IS_OBJECT (obj));
 
@@ -648,19 +648,63 @@ window_destroy (gpointer data)
 }
 
 static void
-object_properties (GtkWidget *button, 
-		   GObject   *object)
+object_properties (GtkWidget *button,
+                   GObject   *object)
 {
   gchar *name;
   GObject *obj;
 
   name = (gchar *) g_object_get_data (G_OBJECT (button), "property-name");
   g_object_get (object, name, &obj, NULL);
-  if (G_IS_OBJECT (obj)) 
+  if (G_IS_OBJECT (obj))
     create_prop_editor (obj, 0);
 }
 
 static void
+rgba_modified (GtkColorButton *cb, gpointer data)
+{
+  ObjectProperty *p = data;
+  GdkRGBA color;
+
+  gtk_color_button_get_rgba (cb, &color);
+
+  if (is_child_property (p->spec))
+    {
+      GtkWidget *widget = GTK_WIDGET (p->obj);
+      GtkWidget *parent = gtk_widget_get_parent (widget);
+
+      gtk_container_child_set (GTK_CONTAINER (parent),
+                               widget, p->spec->name, &color, NULL);
+    }
+  else
+    g_object_set (p->obj, p->spec->name, &color, NULL);
+}
+
+static void
+rgba_changed (GObject *object, GParamSpec *pspec, gpointer data)
+{
+  GtkColorButton *cb = GTK_COLOR_BUTTON (data);
+  GValue val = G_VALUE_INIT;
+  GdkRGBA *color;
+  GdkRGBA cb_color;
+
+  g_value_init (&val, GDK_TYPE_RGBA);
+  get_property_value (object, pspec, &val);
+
+  color = g_value_get_boxed (&val);
+  gtk_color_button_get_rgba (cb, &cb_color);
+
+  if (color != NULL && !gdk_rgba_equal (color, &cb_color))
+    {
+      block_controller (G_OBJECT (cb));
+      gtk_color_button_set_rgba (cb, color);
+      unblock_controller (G_OBJECT (cb));
+    }
+
+  g_value_unset (&val);
+}
+
+static void
 color_modified (GtkColorButton *cb, gpointer data)
 {
   ObjectProperty *p = data;
@@ -684,7 +728,7 @@ static void
 color_changed (GObject *object, GParamSpec *pspec, gpointer data)
 {
   GtkColorButton *cb = GTK_COLOR_BUTTON (data);
-  GValue val = { 0, };
+  GValue val = G_VALUE_INIT;
   GdkColor *color;
   GdkColor cb_color;
 
@@ -705,12 +749,12 @@ color_changed (GObject *object, GParamSpec *pspec, gpointer data)
 }
 
 static void
-rgba_modified (GtkColorButton *cb, gpointer data)
+font_modified (GtkFontChooser *fb, GParamSpec *pspec, gpointer data)
 {
   ObjectProperty *p = data;
-  GdkRGBA color;
+  PangoFontDescription *font_desc;
 
-  gtk_color_button_get_rgba (cb, &color);
+  font_desc = gtk_font_chooser_get_font_desc (fb);
 
   if (is_child_property (p->spec))
     {
@@ -718,40 +762,46 @@ rgba_modified (GtkColorButton *cb, gpointer data)
       GtkWidget *parent = gtk_widget_get_parent (widget);
 
       gtk_container_child_set (GTK_CONTAINER (parent),
-                               widget, p->spec->name, &color, NULL);
+                               widget, p->spec->name, font_desc, NULL);
     }
   else
-    g_object_set (p->obj, p->spec->name, &color, NULL);
+    g_object_set (p->obj, p->spec->name, font_desc, NULL);
+
+  pango_font_description_free (font_desc);
 }
 
 static void
-rgba_changed (GObject *object, GParamSpec *pspec, gpointer data)
+font_changed (GObject *object, GParamSpec *pspec, gpointer data)
 {
-  GtkColorButton *cb = GTK_COLOR_BUTTON (data);
-  GValue val = { 0, };
-  GdkRGBA *color;
-  GdkRGBA cb_color;
+  GtkFontChooser *fb = GTK_FONT_CHOOSER (data);
+  GValue val = G_VALUE_INIT;
+  const PangoFontDescription *font_desc;
+  PangoFontDescription *fb_font_desc;
 
-  g_value_init (&val, GDK_TYPE_RGBA);
+  g_value_init (&val, PANGO_TYPE_FONT_DESCRIPTION);
   get_property_value (object, pspec, &val);
 
-  color = g_value_get_boxed (&val);
-  gtk_color_button_get_rgba (cb, &cb_color);
+  font_desc = g_value_get_boxed (&val);
+  fb_font_desc = gtk_font_chooser_get_font_desc (fb);
 
-  if (color != NULL && !gdk_rgba_equal (color, &cb_color))
+  if (font_desc == NULL ||
+      (fb_font_desc != NULL &&
+       !pango_font_description_equal (fb_font_desc, font_desc)))
     {
-      block_controller (G_OBJECT (cb));
-      gtk_color_button_set_rgba (cb, color);
-      unblock_controller (G_OBJECT (cb));
+      block_controller (G_OBJECT (fb));
+      gtk_font_chooser_set_font_desc (fb, font_desc);
+      unblock_controller (G_OBJECT (fb));
     }
 
   g_value_unset (&val);
+  pango_font_description_free (fb_font_desc);
 }
 
+
 static GtkWidget *
-property_widget (GObject    *object, 
-		 GParamSpec *spec, 
-		 gboolean    can_modify)
+property_widget (GObject    *object,
+                 GParamSpec *spec,
+                 gboolean    can_modify)
 {
   GtkWidget *prop_edit;
   GtkAdjustment *adj;
@@ -768,14 +818,14 @@ property_widget (GObject    *object,
                                 0.0);
 
       prop_edit = gtk_spin_button_new (adj, 1.0, 0);
-      
-      g_object_connect_property (object, spec, 
-				 G_CALLBACK (int_changed), 
-				 adj, G_OBJECT (adj));
-      
+
+      g_object_connect_property (object, spec,
+                                 G_CALLBACK (int_changed),
+                                 adj, G_OBJECT (adj));
+
       if (can_modify)
-	connect_controller (G_OBJECT (adj), "value_changed",
-			    object, spec, G_CALLBACK (int_modified));
+        connect_controller (G_OBJECT (adj), "value_changed",
+                            object, spec, G_CALLBACK (int_modified));
     }
   else if (type == G_TYPE_PARAM_UINT)
     {
@@ -787,14 +837,14 @@ property_widget (GObject    *object,
                                 0.0);
 
       prop_edit = gtk_spin_button_new (adj, 1.0, 0);
-      
-      g_object_connect_property (object, spec, 
-				 G_CALLBACK (uint_changed), 
-				 adj, G_OBJECT (adj));
-      
+
+      g_object_connect_property (object, spec,
+                                 G_CALLBACK (uint_changed),
+                                 adj, G_OBJECT (adj));
+
       if (can_modify)
-	connect_controller (G_OBJECT (adj), "value_changed",
-			    object, spec, G_CALLBACK (uint_modified));
+        connect_controller (G_OBJECT (adj), "value_changed",
+                            object, spec, G_CALLBACK (uint_modified));
     }
   else if (type == G_TYPE_PARAM_FLOAT)
     {
@@ -806,14 +856,14 @@ property_widget (GObject    *object,
                                 0.0);
 
       prop_edit = gtk_spin_button_new (adj, 0.1, 2);
-      
-      g_object_connect_property (object, spec, 
-				 G_CALLBACK (float_changed), 
-				 adj, G_OBJECT (adj));
-      
+
+      g_object_connect_property (object, spec,
+                                 G_CALLBACK (float_changed),
+                                 adj, G_OBJECT (adj));
+
       if (can_modify)
-	connect_controller (G_OBJECT (adj), "value_changed",
-			    object, spec, G_CALLBACK (float_modified));
+        connect_controller (G_OBJECT (adj), "value_changed",
+                            object, spec, G_CALLBACK (float_modified));
     }
   else if (type == G_TYPE_PARAM_DOUBLE)
     {
@@ -825,118 +875,118 @@ property_widget (GObject    *object,
                                 0.0);
 
       prop_edit = gtk_spin_button_new (adj, 0.1, 2);
-      
-      g_object_connect_property (object, spec, 
-				 G_CALLBACK (double_changed), 
-				 adj, G_OBJECT (adj));
-      
+
+      g_object_connect_property (object, spec,
+                                 G_CALLBACK (double_changed),
+                                 adj, G_OBJECT (adj));
+
       if (can_modify)
-	connect_controller (G_OBJECT (adj), "value_changed",
-			    object, spec, G_CALLBACK (double_modified));
+        connect_controller (G_OBJECT (adj), "value_changed",
+                            object, spec, G_CALLBACK (double_modified));
     }
   else if (type == G_TYPE_PARAM_STRING)
     {
       prop_edit = gtk_entry_new ();
-      
-      g_object_connect_property (object, spec, 
-				 G_CALLBACK (string_changed),
-				 prop_edit, G_OBJECT (prop_edit));
-      
+
+      g_object_connect_property (object, spec,
+                                 G_CALLBACK (string_changed),
+                                 prop_edit, G_OBJECT (prop_edit));
+
       if (can_modify)
-	connect_controller (G_OBJECT (prop_edit), "changed",
-			    object, spec, G_CALLBACK (string_modified));
+        connect_controller (G_OBJECT (prop_edit), "changed",
+                            object, spec, G_CALLBACK (string_modified));
     }
   else if (type == G_TYPE_PARAM_BOOLEAN)
     {
       prop_edit = gtk_toggle_button_new_with_label ("");
-      
-      g_object_connect_property (object, spec, 
-				 G_CALLBACK (bool_changed),
-				 prop_edit, G_OBJECT (prop_edit));
-      
+
+      g_object_connect_property (object, spec,
+                                 G_CALLBACK (bool_changed),
+                                 prop_edit, G_OBJECT (prop_edit));
+
       if (can_modify)
-	connect_controller (G_OBJECT (prop_edit), "toggled",
-			    object, spec, G_CALLBACK (bool_modified));
+        connect_controller (G_OBJECT (prop_edit), "toggled",
+                            object, spec, G_CALLBACK (bool_modified));
     }
   else if (type == G_TYPE_PARAM_ENUM)
     {
       {
-	GEnumClass *eclass;
-	gint j;
-	
-	prop_edit = gtk_combo_box_text_new ();
-	
-	eclass = G_ENUM_CLASS (g_type_class_ref (spec->value_type));
-	
-	j = 0;
-	while (j < eclass->n_values)
-	  {
-	    gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (prop_edit),
-	                                    eclass->values[j].value_name);
-	    ++j;
-	  }
-	
-	g_type_class_unref (eclass);
-	
-	g_object_connect_property (object, spec,
-				   G_CALLBACK (enum_changed),
-				   prop_edit, G_OBJECT (prop_edit));
-	
-	if (can_modify)
-	  connect_controller (G_OBJECT (prop_edit), "changed",
-			      object, spec, G_CALLBACK (enum_modified));
+        GEnumClass *eclass;
+        gint j;
+
+        prop_edit = gtk_combo_box_text_new ();
+
+        eclass = G_ENUM_CLASS (g_type_class_ref (spec->value_type));
+
+        j = 0;
+        while (j < eclass->n_values)
+          {
+            gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (prop_edit),
+                                            eclass->values[j].value_name);
+            ++j;
+          }
+
+        g_type_class_unref (eclass);
+
+        g_object_connect_property (object, spec,
+                                   G_CALLBACK (enum_changed),
+                                   prop_edit, G_OBJECT (prop_edit));
+
+        if (can_modify)
+          connect_controller (G_OBJECT (prop_edit), "changed",
+                              object, spec, G_CALLBACK (enum_modified));
       }
     }
   else if (type == G_TYPE_PARAM_FLAGS)
     {
       {
-	GFlagsClass *fclass;
-	gint j;
-	
-	prop_edit = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-	
-	fclass = G_FLAGS_CLASS (g_type_class_ref (spec->value_type));
-	
-	for (j = 0; j < fclass->n_values; j++)
-	  {
-	    GtkWidget *b;
-	    
-	    b = gtk_check_button_new_with_label (fclass->values[j].value_name);
+        GFlagsClass *fclass;
+        gint j;
+
+        prop_edit = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+
+        fclass = G_FLAGS_CLASS (g_type_class_ref (spec->value_type));
+
+        for (j = 0; j < fclass->n_values; j++)
+          {
+            GtkWidget *b;
+
+            b = gtk_check_button_new_with_label (fclass->values[j].value_name);
             g_object_set_data (G_OBJECT (b), "index", GINT_TO_POINTER (j));
-	    gtk_widget_show (b);
-	    gtk_box_pack_start (GTK_BOX (prop_edit), b, FALSE, FALSE, 0);
-	    if (can_modify) 
-	      connect_controller (G_OBJECT (b), "toggled",
-	     	                  object, spec, G_CALLBACK (flags_modified));
-	  }
-	
-	g_type_class_unref (fclass);
-	
-	g_object_connect_property (object, spec,
-				   G_CALLBACK (flags_changed),
-				   prop_edit, G_OBJECT (prop_edit));
+            gtk_widget_show (b);
+            gtk_box_pack_start (GTK_BOX (prop_edit), b, FALSE, FALSE, 0);
+            if (can_modify)
+              connect_controller (G_OBJECT (b), "toggled",
+                                  object, spec, G_CALLBACK (flags_modified));
+          }
+
+        g_type_class_unref (fclass);
+
+        g_object_connect_property (object, spec,
+                                   G_CALLBACK (flags_changed),
+                                   prop_edit, G_OBJECT (prop_edit));
       }
     }
   else if (type == G_TYPE_PARAM_UNICHAR)
     {
       prop_edit = gtk_entry_new ();
       gtk_entry_set_max_length (GTK_ENTRY (prop_edit), 1);
-      
+
       g_object_connect_property (object, spec,
-				 G_CALLBACK (unichar_changed),
-				 prop_edit, G_OBJECT (prop_edit));
-      
+                                 G_CALLBACK (unichar_changed),
+                                 prop_edit, G_OBJECT (prop_edit));
+
       if (can_modify)
-	connect_controller (G_OBJECT (prop_edit), "changed",
-			    object, spec, G_CALLBACK (unichar_modified));
+        connect_controller (G_OBJECT (prop_edit), "changed",
+                            object, spec, G_CALLBACK (unichar_modified));
     }
   else if (type == G_TYPE_PARAM_POINTER)
     {
       prop_edit = gtk_label_new ("");
-      
-      g_object_connect_property (object, spec, 
-				 G_CALLBACK (pointer_changed),
-				 prop_edit, G_OBJECT (prop_edit));
+
+      g_object_connect_property (object, spec,
+                                 G_CALLBACK (pointer_changed),
+                                 prop_edit, G_OBJECT (prop_edit));
     }
   else if (type == G_TYPE_PARAM_OBJECT)
     {
@@ -946,57 +996,71 @@ property_widget (GObject    *object,
 
       label = gtk_label_new ("");
       button = gtk_button_new_with_label ("Properties");
-      g_object_set_data (G_OBJECT (button), "property-name", spec->name);
-      g_signal_connect (button, "clicked", 
-			G_CALLBACK (object_properties), 
-			object);
+      g_object_set_data (G_OBJECT (button), "property-name", (gpointer) spec->name);
+      g_signal_connect (button, "clicked",
+                        G_CALLBACK (object_properties),
+                        object);
 
       gtk_container_add (GTK_CONTAINER (prop_edit), label);
       gtk_container_add (GTK_CONTAINER (prop_edit), button);
 
       g_object_connect_property (object, spec,
-				 G_CALLBACK (object_changed),
-				 prop_edit, G_OBJECT (label));
+                                 G_CALLBACK (object_changed),
+                                 prop_edit, G_OBJECT (label));
 
       /* The Properties button is not really modifying, anyway */
       can_modify = TRUE;
     }
   else if (type == G_TYPE_PARAM_BOXED &&
-           G_PARAM_SPEC_VALUE_TYPE (spec) == GDK_TYPE_COLOR)
+           G_PARAM_SPEC_VALUE_TYPE (spec) == GDK_TYPE_RGBA)
     {
       prop_edit = gtk_color_button_new ();
+      gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (prop_edit), TRUE);
 
       g_object_connect_property (object, spec,
-				 G_CALLBACK (color_changed),
-				 prop_edit, G_OBJECT (prop_edit));
+                                 G_CALLBACK (rgba_changed),
+                                 prop_edit, G_OBJECT (prop_edit));
 
       if (can_modify)
-	connect_controller (G_OBJECT (prop_edit), "color-set",
-			    object, spec, G_CALLBACK (color_modified));
+        connect_controller (G_OBJECT (prop_edit), "color-set",
+                            object, spec, G_CALLBACK (rgba_modified));
     }
   else if (type == G_TYPE_PARAM_BOXED &&
-           G_PARAM_SPEC_VALUE_TYPE (spec) == GDK_TYPE_RGBA)
+           G_PARAM_SPEC_VALUE_TYPE (spec) == GDK_TYPE_COLOR)
     {
       prop_edit = gtk_color_button_new ();
-      gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (prop_edit), TRUE);
 
       g_object_connect_property (object, spec,
-                                 G_CALLBACK (rgba_changed),
+                                 G_CALLBACK (color_changed),
                                  prop_edit, G_OBJECT (prop_edit));
 
       if (can_modify)
         connect_controller (G_OBJECT (prop_edit), "color-set",
-                            object, spec, G_CALLBACK (rgba_modified));
+                            object, spec, G_CALLBACK (color_modified));
+    }
+  else if (type == G_TYPE_PARAM_BOXED &&
+           G_PARAM_SPEC_VALUE_TYPE (spec) == PANGO_TYPE_FONT_DESCRIPTION)
+    {
+      prop_edit = gtk_font_button_new ();
+
+      g_object_connect_property (object, spec,
+                                 G_CALLBACK (font_changed),
+                                 prop_edit, G_OBJECT (prop_edit));
+
+      if (can_modify)
+        connect_controller (G_OBJECT (prop_edit), "notify::font-desc",
+                            object, spec, G_CALLBACK (font_modified));
     }
   else
-    {  
+    {
       msg = g_strdup_printf ("uneditable property type: %s",
-			     g_type_name (G_PARAM_SPEC_TYPE (spec)));
-      prop_edit = gtk_label_new (msg);            
+                             g_type_name (G_PARAM_SPEC_TYPE (spec)));
+      prop_edit = gtk_label_new (msg);
       g_free (msg);
-      gtk_misc_set_alignment (GTK_MISC (prop_edit), 0.0, 0.5);
+      gtk_widget_set_halign (prop_edit, GTK_ALIGN_START);
+      gtk_widget_set_valign (prop_edit, GTK_ALIGN_CENTER);
     }
-  
+
   if (!can_modify)
     gtk_widget_set_sensitive (prop_edit, FALSE);
 
@@ -1008,13 +1072,13 @@ property_widget (GObject    *object,
 
 static GtkWidget *
 properties_from_type (GObject *object,
-		      GType    type)
+                      GType    type)
 {
   GtkWidget *prop_edit;
   GtkWidget *label;
   GtkWidget *sw;
   GtkWidget *vbox;
-  GtkWidget *table;
+  GtkWidget *grid;
   GParamSpec **specs;
   guint n_specs;
   int i;
@@ -1029,47 +1093,48 @@ properties_from_type (GObject *object,
       GObjectClass *class = G_OBJECT_CLASS (g_type_class_peek (type));
       specs = g_object_class_list_properties (class, &n_specs);
     }
-        
+
   if (n_specs == 0) {
     g_free (specs);
     return NULL;
   }
-  
-  table = gtk_table_new (n_specs, 2, FALSE);
-  gtk_table_set_col_spacing (GTK_TABLE (table), 0, 10);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 3);
+
+  grid = gtk_grid_new ();
+  gtk_grid_set_column_spacing (GTK_GRID (grid), 10);
+  gtk_grid_set_row_spacing (GTK_GRID (grid), 3);
 
   i = 0;
   while (i < n_specs)
     {
       GParamSpec *spec = specs[i];
       gboolean can_modify;
-      
+
       prop_edit = NULL;
 
       can_modify = ((spec->flags & G_PARAM_WRITABLE) != 0 &&
                     (spec->flags & G_PARAM_CONSTRUCT_ONLY) == 0);
-      
+
       if ((spec->flags & G_PARAM_READABLE) == 0)
         {
           /* can't display unreadable properties */
           ++i;
           continue;
         }
-      
+
       if (spec->owner_type != type)
-	{
-	  /* we're only interested in params of type */
-	  ++i;
-	  continue;
-	}
+        {
+          /* we're only interested in params of type */
+          ++i;
+          continue;
+        }
 
       label = gtk_label_new (g_param_spec_get_nick (spec));
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
-      gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, i, i + 1);
-      
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
+      gtk_grid_attach (GTK_GRID (grid), label, 0, i, 1, 1);
+
       prop_edit = property_widget (object, spec, can_modify);
-      gtk_table_attach_defaults (GTK_TABLE (table), prop_edit, 1, 2, i, i + 1);
+      gtk_grid_attach (GTK_GRID (grid), prop_edit, 1, i, 1, 1);
 
       /* set initial value */
       g_object_notify (object, spec->name);
@@ -1079,12 +1144,12 @@ properties_from_type (GObject *object,
 
 
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-  gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0);
+  gtk_box_pack_start (GTK_BOX (vbox), grid, FALSE, FALSE, 0);
 
   sw = gtk_scrolled_window_new (NULL, NULL);
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
                                   GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
-  
+
   gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (sw), vbox);
 
   g_free (specs);
@@ -1099,7 +1164,7 @@ child_properties_from_object (GObject *object)
   GtkWidget *label;
   GtkWidget *sw;
   GtkWidget *vbox;
-  GtkWidget *table;
+  GtkWidget *grid;
   GtkWidget *parent;
   GParamSpec **specs;
   guint n_specs;
@@ -1115,35 +1180,36 @@ child_properties_from_object (GObject *object)
 
   specs = gtk_container_class_list_child_properties (G_OBJECT_GET_CLASS (parent), &n_specs);
 
-  table = gtk_table_new (n_specs, 2, FALSE);
-  gtk_table_set_col_spacing (GTK_TABLE (table), 0, 10);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 3);
+  grid = gtk_grid_new ();
+  gtk_grid_set_column_spacing (GTK_GRID (grid), 10);
+  gtk_grid_set_row_spacing (GTK_GRID (grid), 3);
 
   i = 0;
   while (i < n_specs)
     {
       GParamSpec *spec = specs[i];
       gboolean can_modify;
-      
+
       prop_edit = NULL;
 
       can_modify = ((spec->flags & G_PARAM_WRITABLE) != 0 &&
                     (spec->flags & G_PARAM_CONSTRUCT_ONLY) == 0);
-      
+
       if ((spec->flags & G_PARAM_READABLE) == 0)
         {
           /* can't display unreadable properties */
           ++i;
           continue;
         }
-      
+
       label = gtk_label_new (g_param_spec_get_nick (spec));
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
-      gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, i, i + 1);
-      
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
+      gtk_grid_attach (GTK_GRID (grid), label, 0, i, 1, 1);
+
       mark_child_property (spec);
       prop_edit = property_widget (object, spec, can_modify);
-      gtk_table_attach_defaults (GTK_TABLE (table), prop_edit, 1, 2, i, i + 1);
+      gtk_grid_attach (GTK_GRID (grid), prop_edit, 1, i, 1, 1);
 
       /* set initial value */
       gtk_widget_child_notify (GTK_WIDGET (object), spec->name);
@@ -1152,12 +1218,12 @@ child_properties_from_object (GObject *object)
     }
 
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-  gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0);
+  gtk_box_pack_start (GTK_BOX (vbox), grid, FALSE, FALSE, 0);
 
   sw = gtk_scrolled_window_new (NULL, NULL);
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
                                   GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
-  
+
   gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (sw), vbox);
 
   g_free (specs);
@@ -1166,8 +1232,8 @@ child_properties_from_object (GObject *object)
 }
 
 static void
-child_properties (GtkWidget *button, 
-		  GObject   *object)
+child_properties (GtkWidget *button,
+                  GObject   *object)
 {
   create_prop_editor (object, 0);
 }
@@ -1176,7 +1242,7 @@ static GtkWidget *
 children_from_object (GObject *object)
 {
   GList *children, *c;
-  GtkWidget *table, *label, *prop_edit, *button, *vbox, *sw;
+  GtkWidget *grid, *label, *prop_edit, *button, *vbox, *sw;
   gchar *str;
   gint i;
 
@@ -1185,17 +1251,18 @@ children_from_object (GObject *object)
 
   children = gtk_container_get_children (GTK_CONTAINER (object));
 
-  table = gtk_table_new (g_list_length (children), 2, FALSE);
-  gtk_table_set_col_spacing (GTK_TABLE (table), 0, 10);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 3);
- 
+  grid = gtk_grid_new ();
+  gtk_grid_set_column_spacing (GTK_GRID (grid), 10);
+  gtk_grid_set_row_spacing (GTK_GRID (grid), 3);
+
   for (c = children, i = 0; c; c = c->next, i++)
     {
       object = c->data;
 
       label = gtk_label_new ("Child");
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
-      gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, i, i + 1);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
+      gtk_grid_attach (GTK_GRID (grid), label, 0, i, 1, 1);
 
       prop_edit = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
 
@@ -1210,16 +1277,16 @@ children_from_object (GObject *object)
       gtk_container_add (GTK_CONTAINER (prop_edit), label);
       gtk_container_add (GTK_CONTAINER (prop_edit), button);
 
-      gtk_table_attach_defaults (GTK_TABLE (table), prop_edit, 1, 2, i, i + 1);
+      gtk_grid_attach (GTK_GRID (grid), prop_edit, 1, i, 1, 1);
     }
 
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-  gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0);
+  gtk_box_pack_start (GTK_BOX (vbox), grid, FALSE, FALSE, 0);
 
   sw = gtk_scrolled_window_new (NULL, NULL);
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
                                   GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
-  
+
   gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (sw), vbox);
 
   g_list_free (children);
@@ -1231,7 +1298,7 @@ static GtkWidget *
 cells_from_object (GObject *object)
 {
   GList *cells, *c;
-  GtkWidget *table, *label, *prop_edit, *button, *vbox, *sw;
+  GtkWidget *grid, *label, *prop_edit, *button, *vbox, *sw;
   gchar *str;
   gint i;
 
@@ -1240,17 +1307,18 @@ cells_from_object (GObject *object)
 
   cells = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (object));
 
-  table = gtk_table_new (g_list_length (cells), 2, FALSE);
-  gtk_table_set_col_spacing (GTK_TABLE (table), 0, 10);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 3);
- 
+  grid = gtk_grid_new ();
+  gtk_grid_set_column_spacing (GTK_GRID (grid), 10);
+  gtk_grid_set_row_spacing (GTK_GRID (grid), 3);
+
   for (c = cells, i = 0; c; c = c->next, i++)
     {
       object = c->data;
 
       label = gtk_label_new ("Cell");
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
-      gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, i, i + 1);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
+      gtk_grid_attach (GTK_GRID (grid), label, 0, i, 1, 1);
 
       prop_edit = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
 
@@ -1265,16 +1333,16 @@ cells_from_object (GObject *object)
       gtk_container_add (GTK_CONTAINER (prop_edit), label);
       gtk_container_add (GTK_CONTAINER (prop_edit), button);
 
-      gtk_table_attach_defaults (GTK_TABLE (table), prop_edit, 1, 2, i, i + 1);
+      gtk_grid_attach (GTK_GRID (grid), prop_edit, 1, i, 1, 1);
     }
 
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-  gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0);
+  gtk_box_pack_start (GTK_BOX (vbox), grid, FALSE, FALSE, 0);
 
   sw = gtk_scrolled_window_new (NULL, NULL);
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
                                   GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
-  
+
   gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (sw), vbox);
 
   g_list_free (cells);
@@ -1285,7 +1353,7 @@ cells_from_object (GObject *object)
 /* Pass zero for type if you want all properties */
 GtkWidget*
 create_prop_editor (GObject   *object,
-		    GType      type)
+                    GType      type)
 {
   GtkWidget *win;
   GtkWidget *notebook;
@@ -1294,7 +1362,7 @@ create_prop_editor (GObject   *object,
   gchar *title;
   GType *ifaces;
   guint n_ifaces;
-  
+
   if ((win = g_object_get_data (G_OBJECT (object), "prop-editor-win")))
     {
       gtk_window_present (GTK_WINDOW (win));
@@ -1304,7 +1372,7 @@ create_prop_editor (GObject   *object,
   win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   if (GTK_IS_WIDGET (object))
     gtk_window_set_screen (GTK_WINDOW (win),
-			   gtk_widget_get_screen (GTK_WIDGET (object)));
+                           gtk_widget_get_screen (GTK_WIDGET (object)));
 
   /* hold a weak ref to the object we're editing */
   g_object_set_data_full (G_OBJECT (object), "prop-editor-win", win, model_destroy);
@@ -1314,65 +1382,65 @@ create_prop_editor (GObject   *object,
     {
       notebook = gtk_notebook_new ();
       gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_LEFT);
-      
+
       gtk_container_add (GTK_CONTAINER (win), notebook);
-      
+
       type = G_TYPE_FROM_INSTANCE (object);
 
       title = g_strdup_printf ("Properties of %s widget", g_type_name (type));
       gtk_window_set_title (GTK_WINDOW (win), title);
       g_free (title);
-      
+
       while (type)
-	{
-	  properties = properties_from_type (object, type);
-	  if (properties)
-	    {
-	      label = gtk_label_new (g_type_name (type));
-	      gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
-					properties, label);
-	    }
-	  
-	  type = g_type_parent (type);
-	}
+        {
+          properties = properties_from_type (object, type);
+          if (properties)
+            {
+              label = gtk_label_new (g_type_name (type));
+              gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
+                                        properties, label);
+            }
+
+          type = g_type_parent (type);
+        }
 
       ifaces = g_type_interfaces (G_TYPE_FROM_INSTANCE (object), &n_ifaces);
       while (n_ifaces--)
-	{
-	  properties = properties_from_type (object, ifaces[n_ifaces]);
-	  if (properties)
-	    {
-	      label = gtk_label_new (g_type_name (ifaces[n_ifaces]));
-	      gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
-					properties, label);
-	    }
-	}
+        {
+          properties = properties_from_type (object, ifaces[n_ifaces]);
+          if (properties)
+            {
+              label = gtk_label_new (g_type_name (ifaces[n_ifaces]));
+              gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
+                                        properties, label);
+            }
+        }
 
       g_free (ifaces);
 
       properties = child_properties_from_object (object);
       if (properties)
-	{
-	  label = gtk_label_new ("Child properties");
-	  gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
-				    properties, label);
-	}
+        {
+          label = gtk_label_new ("Child properties");
+          gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
+                                    properties, label);
+        }
 
       properties = children_from_object (object);
       if (properties)
-	{
-	  label = gtk_label_new ("Children");
-	  gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
-				    properties, label);
-	}
+        {
+          label = gtk_label_new ("Children");
+          gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
+                                    properties, label);
+        }
 
       properties = cells_from_object (object);
       if (properties)
-	{
-	  label = gtk_label_new ("Cell renderers");
-	  gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
-				    properties, label);
-	}
+        {
+          label = gtk_label_new ("Cell renderers");
+          gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
+                                    properties, label);
+        }
     }
   else
     {
@@ -1382,9 +1450,9 @@ create_prop_editor (GObject   *object,
       gtk_window_set_title (GTK_WINDOW (win), title);
       g_free (title);
     }
-  
+
   gtk_window_set_default_size (GTK_WINDOW (win), -1, 400);
-  
+
   gtk_widget_show_all (win);
 
   return win;
diff --git a/src/prop-editor.h b/src/prop-editor.h
index 7741290..9d1ced2 100644
--- a/src/prop-editor.h
+++ b/src/prop-editor.h
@@ -2,16 +2,16 @@
  * Copyright (C) 2000  Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
+ * modify it under the terms of the GNU Library General Public
  * License as published by the Free Software Foundation; either
  * version 3 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
+ * Library General Public License for more details.
  *
- * You should have received a copy of the GNU Lesser General Public
+ * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.



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